protected override void OnTick() { if (m_Corpse.Deleted || m_Ghost.Deleted || m_Healer.Deleted) { return; } if (!m_Healer.Alive) { m_Healer.SendMessage("You were unable to finish your work before your died."); return; } if (m_Healer.CheckSkill(SkillName.Healing, 40.0, 120.0)) { m_Ghost.Location = m_Corpse.Location; m_Ghost.Resurrect(); if (m_Healer is TeiravonMobile && (((TeiravonMobile)m_Healer).IsCleric() || ((TeiravonMobile)m_Healer).IsDarkCleric() || ((TeiravonMobile)m_Healer).IsForester() || ((TeiravonMobile)m_Healer).IsPaladin())) { Titles.AwardExp((TeiravonMobile)(m_Healer), m_Ghost.Fame); } Titles.AwardFame(m_Ghost, -(m_Ghost.Fame / 15), true); m_Corpse.Open(m_Ghost, true); m_Ghost.Animate(m_Ghost.Body == 17 ? 2 : 21, 4, 1, false, false, 0); m_Ghost.Emote("*Gasps back to life!*"); m_Ghost.PlaySound(m_Ghost.Female ? 0x319 : 0x429); m_Healer.SendMessage("You revive the fallen!"); Titles.AwardFame(m_Healer, m_Ghost.Fame / 20, true); } else { m_Healer.SendMessage("You were unable to revive the body."); } }
public override void OnClick() { Corpse corpse = Owner.Target as Corpse; if (corpse != null && Owner.From.CheckAlive()) { corpse.Open(Owner.From, false); } }
public override void OnClick() { Corpse corpse = Owner.Target as Corpse; if (corpse != null && Owner.From.CheckAlive()) { corpse.Open(Owner.From, false); #region Enhance Client if (corpse != null) { Owner.From.NetState.Send(new RemoveWaypoint(corpse.Serial)); } #endregion } }