Exemple #1
0
        private static void Resurrect_OnTick(object state)
        {
            object[]     states = (object[])state;
            PlayerMobile owner  = (PlayerMobile)states[0];
            SoulOrb      arp    = (SoulOrb)states[1];

            if (owner != null && !owner.Deleted && arp != null && !arp.Deleted)
            {
                if (owner.Alive)
                {
                    return;
                }

                if (arp.Name == "blood of a vampire")
                {
                    owner.SendMessage("The blood pours out of the bottle, restoring your life.");
                }
                else if (arp.Name == "cloning crystal")
                {
                    owner.SendMessage("The crystal forms a clone of your body, restoring your life.");
                }
                else
                {
                    owner.SendMessage("The orb glows, releasing your soul.");
                }
                owner.Resurrect();
                Server.Misc.Death.Penalty(owner, false);
                arp.Delete();
            }
        }
Exemple #2
0
        private static void Resurrect_OnTick(object state)
        {
            object[]     states = (object[])state;
            PlayerMobile owner  = (PlayerMobile)states[0];
            SoulOrb      arp    = (SoulOrb)states[1];

            if (owner != null && !owner.Deleted && arp != null && !arp.Deleted)
            {
                if (owner.Alive)
                {
                    return;
                }

                if (arp.Name == "blood of a vampire")
                {
                    owner.SendMessage("The blood pours out of the bottle, restoring your life.");
                }
                else
                {
                    owner.SendMessage("The orb glows, releasing your soul.");
                }
                owner.Resurrect();
                arp.Delete();
            }
        }
Exemple #3
0
        public static void OnSummoned(Mobile from, SoulOrb orb)
        {
            if (m_ResList == null)
            {
                m_ResList = new Dictionary <Mobile, SoulOrb>();
            }

            if (from != null && orb != null && !m_ResList.ContainsValue(orb))
            {
                m_ResList.Add(from, orb);
            }
        }
Exemple #4
0
        private static void EventSink_Death(PlayerDeathEventArgs e)
        {
            PlayerMobile owner = e.Mobile as PlayerMobile;

            if (owner != null && !owner.Deleted)
            {
                if (owner.Alive)
                {
                    return;
                }

                if (m_ResList != null && m_ResList.ContainsKey(owner))
                {
                    SoulOrb arp = m_ResList[owner];
                    if (arp == null || arp.Deleted)
                    {
                        m_ResList.Remove(owner);
                        return;
                    }
                    arp.m_Timer = Timer.DelayCall(m_Delay, new TimerStateCallback(Resurrect_OnTick), new object[] { owner, arp });
                    m_ResList.Remove(owner);
                }
            }
        }