Exemple #1
0
        public override bool OnMoveOver( Mobile m )
        {
            if(m_refresh) {
                m.PlaySound( 0x214 );
                m.FixedEffect( 0x376A, 10, 16 );

                m.Resurrect();

                m.Hits = m.HitsMax;
                m.Stam = m.Dex;
                m.Mana = m.Int;
            } else {
                if ( !m.Alive && m.Map != null && m.Map.CanFit( m.Location, 16, false, false ) )
                {
                    m.PlaySound( 0x214 );
                    m.FixedEffect( 0x376A, 10, 16 );

                    m.CloseGump( typeof( ResurrectGump ) );
                    m.SendGump( new ResurrectGump( m ) );
                }
                else
                {
                    m.SendLocalizedMessage( 502391 ); // Thou can not be resurrected there!
                }
            }

            return false;
        }
Exemple #2
0
		public static void Resurrect( Mobile m, Item item )
		{
            if ( m.InRange(item, 2) && m.InLOS(item))
            {
                if (!m.Alive)
                {
                    if (m.Map == null || !m.Map.CanFit(m.Location, 16, false, false))
                    {
                        m.SendLocalizedMessage(502391); // Thou can not be resurrected there!
                    }
                    else if (m.Region is HouseRegion)
                    {
                        m.SendAsciiMessage("You can't get resurrected in house regions.");
                    }
                    else
                    {
                        m.PlaySound(0x214);
                        m.FixedEffect(0x376A, 10, 16);

                        m.Resurrect();

                        //m.CloseGump(typeof(ResurrectGump));
                        //m.SendGump(new ResurrectGump(m, item, ResurrectMessage.VirtueShrine));
                    }
                }
            }
            else
            {
                m.LocalOverheadMessage(MessageType.Regular, 906, 1019045); // I can't reach that.
            }	
        }
Exemple #3
0
		public override bool OnMoveOver( Mobile m )
		{
			if( m.SolidHueOverride != -1 )
				return true;
		    if( m.Player && !m.Alive ) // mobile is dead
		    {
		        m.SolidHueOverride = -1;

		        if( m_TargetMap != null && m_TargetMap != Map.Internal )
		        {
		            m.MoveToWorld( m_Target, m_TargetMap );
		            BaseCreature.TeleportPets( m, m_Target, m_TargetMap );
		        }
		        else
		            m.SendAsciiMessage( "This has not yet been activated" );

		        m.Combatant = null;
		        m.Warmode = false;
		        m.Resurrect();
		        return false;
		    }
		    if( ( m.Player ) && ( m.Hits < m.HitsMax ) )
		        m.LocalOverheadMessage( MessageType.Regular, 906, true, "You do not have full HP." );
		    else if( m.Player && m.SolidHueOverride != 2535 )
		    {
		        new RuneTimer( this, m ).Start();
		        m.SolidHueOverride = 2535;
		    }

		    return true;
		}
Exemple #4
0
        public override void OnDoubleClick(Mobile from)
        {
            if (m_User == from && from.AccessLevel == AccessLevel.Player)
            {
                try
                {
                    from.AccessLevel = m_AL;
                    m_User = null;
                    m_AL = AccessLevel.Player;

                    if ( !from.Alive )
                    {
                        from.Hidden = true;
                        from.Resurrect();
                    }
                }
                catch
                {
                    from.SendMessage("An error occurred... Contact your supervisor or something! Don't stand there. I get so tired of people like you, gosh.");
                }
            }
            else if (m_User == null && from.AccessLevel > AccessLevel.Player)
            {
                m_AL = from.AccessLevel;
                m_User = from;
                from.AccessLevel = AccessLevel.Player;

                if ( from.Backpack != null && (!this.IsChildOf(from) || !this.IsAccessibleTo(from)))
                    from.Backpack.DropItem(this);
            }
            else
            {
                from.SendMessage("You can't use this...");
            }
        }
		public override bool OnMoveOver( Mobile m )
		{
			if( m.SolidHueOverride != -1 )
				return true;
			else if( m.Player && !m.Alive ) // mobile is dead
			{
				m.SolidHueOverride = -1;

				if( m_TargetMap != null && m_TargetMap != Map.Internal )
				{
					m.MoveToWorld( m_Target, m_TargetMap );
					BaseCreature.TeleportPets( m, m_Target, m_TargetMap );
				}
				else
					m.SendAsciiMessage( "This has not yet been activated" );

				m.Combatant = null;
				m.Warmode = false;
				m.Resurrect();
				return false;
			}
			else if( ( m.Player ) && ( m.Hits < m.HitsMax ) )
				m.LocalOverheadMessage( MessageType.Regular, 906, true, "For liablity issues, we require all visitors to be in perfect health!" );
			else if( m.Player && m.SolidHueOverride != 2544 )
			{
                m_CasinoTimer = new CasinoTimer(this, m);
                m_CasinoTimer.Start();				
				m.SolidHueOverride = 2544;
				m.SendAsciiMessage( "You are about to enter the Casino!" );
			}

			return true;
		}
Exemple #6
0
 public override void OnDoubleClickDead(Mobile from)//Edit what you want the steed to say when resurrecting below:
 {
     this.Say("There you go, Enjoy life!");
     if (!from.Alive)
     {
         from.Resurrect();
     }
 }
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            from.CloseGump(typeof(GameTeamSelector));

            if (!GameJoinStone.IsNaked(from))
            {
                from.SendMessage("You must be naked to join.");
                return;
            }

            if (m_Game.Deleted)
            {
                return;
            }

            if (info.ButtonID == 0)
            {
                return;
            }

            CTFTeam team = null;

            if (m_RandomTeam)
            {
                team = m_Game.RandomTeam();
            }
            else
            {
                team = m_Game.GetTeam(info.ButtonID - 1);
            }

            if (team != null && team.ActiveMemberCount < m_TeamSize)
            {
                bool freeze = from.Frozen;

                from.Kill();
                if (from.Corpse != null && !from.Corpse.Deleted)
                {
                    from.Corpse.Delete();
                }
                from.Location = team.Home;
                from.Map      = team.Map;
                from.Resurrect();

                from.Frozen = freeze;

                m_Game.SwitchTeams(from, team);

                from.SendMessage("You have joined team {0}!", team.Name);
            }
            else
            {
                from.SendMessage("That team is full, please try again.");
                from.SendGump(new GameTeamSelector(m_Game, m_RandomTeam));
            }
        }
Exemple #8
0
        public override void Execute(CommandEventArgs e, object obj)
        {
            Mobile mob  = (Mobile)obj;
            Mobile from = e.Mobile;

            if (m_Value)
            {
                if (!mob.Alive)
                {
                    LogFailure("They are already dead.");
                }
                else if (!mob.CanBeDamaged())
                {
                    LogFailure("They cannot be harmed.");
                }
                else
                {
                    CommandLogging.WriteLine(from, "{0} {1} killing {2}", from.AccessLevel, CommandLogging.Format(from), CommandLogging.Format(mob));
                    mob.Kill();

                    AddResponse("They have been killed.");
                }
            }
            else
            {
                if (mob.IsDeadBondedPet)
                {
                    BaseCreature bc = mob as BaseCreature;

                    if (bc != null)
                    {
                        CommandLogging.WriteLine(from, "{0} {1} resurrecting {2}", from.AccessLevel, CommandLogging.Format(from), CommandLogging.Format(mob));

                        bc.PlaySound(0x214);
                        bc.FixedEffect(0x376A, 10, 16);

                        bc.ResurrectPet();

                        AddResponse("It has been resurrected.");
                    }
                }
                else if (!mob.Alive)
                {
                    CommandLogging.WriteLine(from, "{0} {1} resurrecting {2}", from.AccessLevel, CommandLogging.Format(from), CommandLogging.Format(mob));

                    mob.PlaySound(0x214);
                    mob.FixedEffect(0x376A, 10, 16);

                    mob.Resurrect();

                    AddResponse("They have been resurrected.");
                }
                else
                {
                    LogFailure("They are not dead.");
                }
            }
        }
Exemple #9
0
        private void HandleMatchEnd(Mobile from, bool kick)
        {
            if (!from.Alive)
            {
                from.Resurrect();

                if (from.Corpse != null && from.Corpse is Corpse)
                {
                    Corpse c = (Corpse)from.Corpse;

                    for (int i = 0; i < c.Items.Count; ++i)
                    {
                        Item item = c.Items[i];

                        c.SetRestoreInfo(item, item.Location);
                    }

                    c.Open(from, true);
                    c.Delete();
                }
            }

            from.Criminal = false;
            from.Blessed  = false;
            from.Frozen   = false;

            from.CurePoison(from);
            from.StatMods.Clear();
            from.Hits = from.HitsMax;
            from.Mana = from.ManaMax;
            from.Stam = from.StamMax;

            Targeting.Target.Cancel(from);
            from.MagicDamageAbsorb = 0;
            from.MeleeDamageAbsorb = 0;
            ProtectionSpell.Registry.Remove(from);
            DefensiveSpell.Nullify(from);
            from.Combatant = null;

            from.Delta(MobileDelta.Noto);               //Update notoriety

            from.Location = m_SpectatorDest;

            if (kick && from.NetState == null)
            {
                Match m = FindMatch(from);

                if (m.Attackers.Contains(from))
                {
                    m.Attackers.Remove(from);
                }
                else if (m.Defenders.Contains(from))
                {
                    m.Defenders.Remove(from);
                }
            }
        }
Exemple #10
0
 protected override void OnTick()
 {
     if (m_DMStone != null && m_DMStone.m_Started && PvpCore.IsInDeathmatch(m_From))
     {
         m_From.Frozen = false;
         m_From.Resurrect();
         m_DMStone.RemovePlayer(m_From, true);
     }
 }
        public override void OnDoubleClickDead(Mobile from)
        {
            if (!from.Alive)
            {
                from.Resurrect();

                from.PlaySound(0x214);
                from.FixedEffect(0x376A, 10, 16);
            }
        }
Exemple #12
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            from.CloseGump(typeof(ResurrectGump));

            if (info.ButtonID == 1 || info.ButtonID == 2)
            {
                if (from.Map == null || !from.Map.CanFit(from.Location, 16, false, false))
                {
                    from.SendLocalizedMessage(502391); // Thou can not be resurrected there!
                    return;
                }

                if (m_Price > 0)
                {
                    if (info.IsSwitched(1))
                    {
                        if (Banker.Withdraw(from, m_Price))
                        {
                            from.SendLocalizedMessage(1060398, m_Price.ToString());                 // ~1_AMOUNT~ gold has been withdrawn from your bank box.
                            from.SendLocalizedMessage(1060022, Banker.GetBalance(from).ToString()); // You have ~1_AMOUNT~ gold in cash remaining in your bank box.
                        }

                        else
                        {
                            from.SendLocalizedMessage(1060020); // Unfortunately, you do not have enough cash in your bank to cover the cost of the healing.
                            return;
                        }
                    }

                    else
                    {
                        from.SendLocalizedMessage(1060019); // You decide against paying the healer, and thus remain dead.
                        return;
                    }
                }

                from.PlaySound(0x214);
                from.FixedEffect(0x376A, 10, 16);

                from.Resurrect();

                if (from.Fame > 0)
                {
                    int amount = from.Fame / 10;
                    Misc.FameKarmaTitles.AwardFame(from, -amount, true);
                }

                if (from.Alive && m_HitsScalar > 0)
                {
                    from.Hits = (int)(from.HitsMax * m_HitsScalar);
                }
            }
        }
Exemple #13
0
        private void ResurrectPlayer(object o)
        {
            if (o is PlayerMobile)
            {
                Mobile m = o as Mobile;

                m.Resurrect();
                m.MoveToWorld(LeaveLocation, LeaveMap);
                FixPlayer(m);
            }
        }
Exemple #14
0
            protected override void OnTick()
            {
                m_Mobile.Resurrect();
                m_Mobile.SendMessage("¤Res¤ You have been resurrected!");

                new BlessedTimer(m_Mobile).Start();
                m_Mobile.SendMessage("¤Res¤ You will be blessed for 60 seconds.");

                m_Mobile.Blessed = true;
                Stop();
            }
        private static void PaidRes(object obj)
        {
            Mobile m = (Mobile)obj;

            m.Resurrect();
            m.Hits   = m.HitsMax;
            m.Mana   = m.ManaMax;
            m.Frozen = false;
            m.PlaySound(0x214);
            m.FixedEffect(0x376A, 10, 16);
        }
Exemple #16
0
            protected override void OnTick()
            {
                m_Mobile.Resurrect();
                m_Mobile.SendMessage("You should be more careful in the future.");

                new BlessedTimer(m_Mobile).Start();
                m_Mobile.SendMessage("You will be blessed for 30 seconds.");

                m_Mobile.Blessed = true;
                Stop();
            }
        }                                                                     // Tell the core that we implement OnMovement

        public override void OnMovement(Mobile m, Point3D oldLocation)
        {
            if (Utility.InRange(Location, m.Location, 15) && m is PlayerMobile && !m.Alive)
            {
                m.PlaySound(0x214);
                m.FixedEffect(0x376A, 10, 16);
                m.Resurrect();
                Server.Misc.Death.Penalty(m, false);
                m.Hidden = true;
                m.SendMessage("The magic of the fountain has returned your life to you.");
            }
        }
Exemple #18
0
 public void HandleDeath(Mobile m)
 {
     HandleCorpse(m);
     SpawnMobile(m);
     m.Resurrect();
     FixPlayer(m, true);
     FixPlayer(m.LastKiller, false);
     if (m.LastKiller != null)
     {
         m.LastKiller.SendMessage(38, "You have been rewarded health, mana, and stamina for your kill");
     }
     UpdateScores(m, m.LastKiller);
 }
Exemple #19
0
 internal void doResurrection(Mobile from)
 {
     from.Frozen = false;
     if (m_ResurrectionTimers.ContainsKey(from.Serial))
     {
         m_ResurrectionTimers[from.Serial].Stop();
         m_ResurrectionTimers.Remove(from.Serial);
     }
     from.Resurrect();
     SpawnMobile(from);
     FixPlayer(from, true);
     DMHorse.TryGiveHorse(from);
 }
Exemple #20
0
        public virtual void RemovePlayer(Mobile player)
        {
            if (player == null || player.Deleted)
            {
                return;
            }

            if (!Players.Contains(player))
            {
                return;
            }

            if (!player.Alive)
            {
                player.Resurrect();
            }

            if (player is PlayerMobile)
            {
                ((PlayerMobile)player).CurrentEvent = null;
                ((PlayerMobile)player).IsInEvent    = false;
                ((PlayerMobile)player).Score        = 0;
            }

            player.Blessed = false;

            if (player.Map != Map.Internal)
            {
                player.Location = m_Lobby;
                player.Map      = m_LobbyMap;
            }
            else
            {
                player.LogoutLocation = m_Lobby;
                player.LogoutMap      = m_LobbyMap;
            }
            m_Players.Remove(player);

            if (m_PlayerSupplies.ContainsKey((PlayerMobile)player))
            {
                SupplySystem.RemoveEventGear(player);
                EquipmentStorage storage = m_PlayerSupplies[(PlayerMobile)player];
                if (storage != null)
                {
                    storage.OnDoubleClick(player);
                    m_PlayerSupplies.Remove((PlayerMobile)player);
                }
            }
            player.Delta(MobileDelta.Noto);
            SendPlayerGumps();
        }
Exemple #21
0
            protected override void OnTick()
            {
                if (!m_From.Alive && m_From.Map is BaseInstance)                   //Does it have to be the same map that they died on?
                {
                    BaseInstance instance = m_From.Map as BaseInstance;

                    m_From.MoveToWorld(instance.DestPoint, instance.DestMap);
                    m_From.Resurrect();
                    m_From.Hits = m_From.HitsMax;
                    m_From.Mana = m_From.ManaMax;
                    m_From.Stam = m_From.StamMax;
                    //A death message?
                }
            }
Exemple #22
0
        public void ResetGame()
        {
            PlayerMessage("The game has started.");

            m_StartTime = DateTime.Now;

            m_GameTimer = Timer.DelayCall(Length, new TimerCallback(EndGame));
            m_Running   = true;

            if (m_ScoreTimer == null)
            {
                m_ScoreTimer = new ScoreTimer(this);
            }
            m_ScoreTimer.Start();

            for (int i = 0; i < m_Teams.Count; i++)
            {
                CTFTeam team = (CTFTeam)m_Teams[i];

                team.Points = 0;
                if (team.Flag != null)
                {
                    team.Flag.ReturnToHome();
                }

                for (int j = 0; j < team.Members.Count; j++)
                {
                    Mobile m = (Mobile)team.Members[j];

                    m.Kill();
                    if (m.Corpse != null && !m.Corpse.Deleted)
                    {
                        m.Corpse.Delete();
                    }

                    m.LogoutLocation = team.Home;
                    m.Location       = team.Home;
                    m.Location       = team.Home;
                    m.Map            = team.Map;

                    m.Resurrect();

                    m.Hits = m.HitsMax;
                    m.Mana = m.ManaMax;
                    m.Stam = m.StamMax;
                }
            }
        }
Exemple #23
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            from.CloseGump <ResurrectGump>();

            if (info.ButtonID == 2)
            {
                from.PlaySound(0x214);
                from.Resurrect();

                from.Hits = (int)(from.HitsMax * 0.8);

                FontOfFortune.AddCooldown(from);
            }
        }
Exemple #24
0
 public override bool OnMoveOver(Mobile m)
 {
     if (m is PlayerMobile && !m.Alive)
     {
         m.PlaySound(0x214);
         m.FixedEffect(0x376A, 10, 16);
         m.Resurrect();
         m.Hidden = true;
         m.SendMessage("The aura here has brought you back from the dead.");
     }
     else
     {
         m.SendMessage("You feel a powerful life giving energy here.");
     }
     return(true);
 }
Exemple #25
0
        public override bool OnMoveOver(Mobile mobile)
        {
            if (mobile.Player)
            {
                if (!mobile.Alive)
                {
                    mobile.Resurrect();
                }
                else
                {
                    mobile.SendSuccessMessage("Your body begins to feel warm.");
                }
            }

            return(true);
        }
            public override void OnResponse(NetState sender, RelayInfo info)
            {
                if (sender.Mobile == null || sender.Mobile.Alive)
                {
                    return;
                }
                else if (info.ButtonID == 0)
                {
                    return;
                }

                Mobile m = sender.Mobile;

                AutoLifeSpell.ResurrectEffect(m);

                if (m is PlayerMobile)
                {
                    AutoLifeSpell.EndAutoLife((PlayerMobile)m);
                }

                Misc.Titles.AwardFame(m, -(m.Fame / 10), true);
                m.Resurrect();

                if (m.AccessLevel == AccessLevel.Player)
                {
                    VirtueLevel level = VirtueHelper.GetLevel(m, VirtueName.Compassion);

                    switch (level)
                    {
                    case VirtueLevel.Seeker: m.Hits = AOS.Scale(m.HitsMax, 20); break;

                    case VirtueLevel.Follower: m.Hits = AOS.Scale(m.HitsMax, 40); break;

                    case VirtueLevel.Knight: m.Hits = AOS.Scale(m.HitsMax, 80); break;

                    default: m.Hits = 10; break;
                    }
                }
                else
                {
                    m.Hits      = m.HitsMax;
                    m.Stam      = m.StamMax;
                    m.Mana      = m.ManaMax;
                    m.Karma     = m.Fame = 0;
                    m.BodyValue = 987;
                }
            }
Exemple #27
0
 public static void TryLeaveDM(Mobile from, bool kicked)
 {
     if (IsInDeathmatch(from))
     {
         DMStone s = GetPlayerStone(from);
         from.Frozen = false;
         if (!from.Alive)
             from.Resurrect();
         if (s != null)
         {
             if (kicked)
                 s.RemovePlayer(from, true);
             else
                 s.RemovePlayer(from, false);
         }
     }
 }
        public bool Resurrect(Mobile m)
        {
            if (m.Alive)
            {
                m.SendMessage("You may look and feel dead, but you are not!");
                return(false);
            }

            m.Resurrect();

            if (!m.Alive)
            {
                return(false);
            }

            Consume();
            return(true);
        }
Exemple #29
0
        public override bool OnMoveOver(Mobile m)
        {
            if (!m.Alive && m.Map != null && m.Map.CanFit(m.Location, 16, false, false))
            {
                m.PlaySound(0x214);
                m.FixedEffect(0x376A, 10, 16);
                m.Resurrect();

                m.Hits = m.HitsMax;
                m.Mana = m.ManaMax;
                m.Stam = m.StamMax;
            }
            else
            {
                m.SendLocalizedMessage(502391);                   // Thou can not be resurrected there!
            }

            return(false);
        }
Exemple #30
0
        public override bool OnMoveOver(Mobile m)
        {
            if (!m.Alive && m.Map != null && m.Map.CanFit(m.Location, 16, false, false))
            {
                m.PlaySound(0x214);
                m.FixedEffect(0x376A, 10, 16);
                m.Resurrect();

                /*m.CloseGump( typeof( ResurrectGump ) );
                m.SendGump( new ResurrectGump( m ) );
                Taran: removed resurrect gump */
            }
            else
            {
                m.SendLocalizedMessage(502391); // Thou can not be resurrected there!
            }

            return false;
        }
Exemple #31
0
        public override bool OnMoveOver(Mobile m)
        {
            if (!m.Alive && m.Map != null && m.Map.CanFit(m.Location, 16, false, false))
            {
                m.PlaySound(0x214);
                m.FixedEffect(0x376A, 10, 16);
                m.Resurrect();

                /*m.CloseGump( typeof( ResurrectGump ) );
                 * m.SendGump( new ResurrectGump( m ) );
                 * Taran: removed resurrect gump */
            }
            else
            {
                m.SendLocalizedMessage(502391); // Thou can not be resurrected there!
            }

            return(false);
        }
Exemple #32
0
        public override void OnDeath(Mobile m)
        {
            if (m is PlayerMobile)
            {
                m.MoveToWorld(new Point3D(5703, 639, 0), Map);

                if (!DeathList.Contains(m))
                {
                    m.Resurrect();
                    DeathList.Add(m);
                }
                else
                {
                    DeathList.Remove(m);
                }

                Timer.DelayCall(TimeSpan.FromSeconds(2), () => m.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1152076)); // You are captured by the jailor and returned to your cell.
            }
        }
		public override bool OnMoveOver( Mobile m )
		{
			if ( !m.Alive && m.Map != null && m.Map.CanFit( m.Location, 16, false, false ) )
			{
				m.PlaySound( 0x214 );
				m.FixedEffect( 0x376A, 10, 16 );
				m.Resurrect();

				m.Hits = m.HitsMax;
				m.Mana = m.ManaMax;
				m.Stam = m.StamMax;
			}
			else
			{
				m.SendLocalizedMessage( 502391 ); // Thou can not be resurrected there!
			}

			return false;
		}
Exemple #34
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            from.CloseGump(typeof(ResurrectCostGump));

            if (info.ButtonID == 1)
            {
                if (from.Map == null || !from.Map.CanFit(from.Location, 16, false, false))
                {
                    from.SendLocalizedMessage(502391);                       // Thou can not be resurrected there!
                    return;
                }

                if (m_ResurrectType == 2 && Banker.Withdraw(from, m_Price))
                {
                    from.SendLocalizedMessage(1060398, m_Price.ToString());                       // ~1_AMOUNT~ gold has been withdrawn from your bank box.
                    from.SendLocalizedMessage(1060022, Banker.GetBalance(from).ToString());       // You have ~1_AMOUNT~ gold in cash remaining in your bank box.
                    Server.Misc.Death.Penalty(from, false);
                }
                else if (m_ResurrectType == 1 && from.SkillsTotal > 200 && (from.RawDex + from.RawInt + from.RawStr) > 90)
                {
                    Server.Misc.Death.Penalty(from, true);
                }

                from.PlaySound(0x214);
                from.FixedEffect(0x376A, 10, 16);

                from.Resurrect();

                from.Hits   = from.HitsMax;
                from.Stam   = from.StamMax;
                from.Mana   = from.ManaMax;
                from.Hidden = true;
            }
            else
            {
                from.SendMessage("You decide to remain in the spirit realm.");
                Timer.DelayCall(TimeSpan.FromSeconds(5.0), ResurrectNow, from);
                return;
            }
        }
Exemple #35
0
            protected override void OnTick()
            {
                if (m_Mob.Corpse != null && !m_Mob.Corpse.Deleted)
                {
                    m_Mob.Corpse.Delete();
                }

                if (!m_Mob.Alive)
                {
                    m_Mob.Location = m_Team.Home;
                    m_Mob.Map      = m_Team.Map;
                    m_Mob.Resurrect();
                    m_Mob.Hits = m_Mob.HitsMax / 2;
                    m_Mob.Mana = m_Mob.ManaMax / 2;
                }

                if (m_Team.Game.DeathPoint)
                {
                    --m_Team.Points;
                }
            }
Exemple #36
0
        public override void OnDoubleClickDead(Mobile from)
        {
            if (!from.Alive)
            {
                from.SendMessage("Dont Die Again!");
                from.Resurrect();

                from.PlaySound(0x214);
                from.FixedEffect(0x376A, 10, 16);
            }
            else
            {
                if (from == this.ControlMaster)
                {
                }
                else
                {
                    from.SendMessage("That is not your horse!");
                }
            }
        }
Exemple #37
0
        public virtual void RefreshPlayer(Mobile from)
        {
            if (from == null)
            {
                return;
            }

            if (!from.Alive)
            {
                from.Resurrect();
            }

            Container pack    = from.Backpack;
            Item      holding = from.Holding;

            if (holding != null && pack != null)
            {
                pack.DropItem(holding);
            }

            from.RevealingAction();

            from.Poison = null;
            from.StatMods.Clear();

            Factions.Faction.ClearSkillLoss(from);

            from.Hits = from.HitsMax;
            from.Mana = from.ManaMax;
            from.Stam = from.StamMax;

            Targeting.Target.Cancel(from);
            from.MagicDamageAbsorb = 0;
            from.MeleeDamageAbsorb = 0;
            Spells.Second.ProtectionSpell.Registry.Remove(from);
            DefensiveSpell.Nullify(from);
            from.Combatant = null;

            from.Delta(MobileDelta.Noto);               //Update notoriety
        }
            protected override void OnTick()
            {
                if (DateTime.Now < m_End)
                {
                    m_Mobile.Frozen = true;
                }
                else
                {
                    m_Mobile.Frozen = false;
                    Stop();

                    if (Factions.Sigil.ExistsOn(m_Mobile))
                    {
                        m_Mobile.SendLocalizedMessage(1061632);                           // You can't do that while carrying the sigil.
                        return;
                    }

                    //int idx = Utility.Random( m_Destination.Locations.Length );
                    //Point3D dest = m_Destination.Locations[idx];

                    //Map destMap;
                    //if ( m_Mobile.Map == Map.Trammel )
                    //    destMap = Map.Trammel;
                    //else if ( m_Mobile.Map == Map.Felucca )
                    //    destMap = Map.Felucca;
                    //else
                    //    destMap = m_Mobile.Kills >= 5 ? Map.Felucca : Map.Trammel;

                    if (m_Mobile.Alive == false)
                    {
                        m_Mobile.Resurrect();
                    }

                    Point3D dest    = new Point3D(5140, 1761, 5);
                    Map     destMap = Map.Trammel;

                    Mobiles.BaseCreature.TeleportPets(m_Mobile, dest, destMap);
                    m_Mobile.MoveToWorld(dest, destMap);
                }
            }
Exemple #39
0
        public override void OnDoubleClickDead(Mobile from)
        {
            if (!from.Alive && from is PlayerMobile)
            {
                ((PlayerMobile)from).ForceResurrect();
                CommandLogging.WriteLine(from, "Refreshing and resurrecting " + from.Name);
            }
            else if (!from.Alive)
            {
                from.Resurrect();
                CommandLogging.WriteLine(from, "Refreshing and resurrecting " + from.Name);
            }

            CommandLogging.WriteLine(from, "Refreshing but not resurrecting " + from.Name);

            from.PublicOverheadMessage(MessageType.Regular, from.SpeechHue, true, "I've been refreshed.");

            from.Hits = from.HitsMax;
            from.Stam = from.StamMax;
            from.Mana = from.ManaMax;
            from.CurePoison(from);
        }
Exemple #40
0
        private void ReadyPlayer(Mobile m)
        {
            if (!m_ScoreTable.ContainsKey(m.Serial))
                m_ScoreTable.Add(m.Serial, new ScoreKeeper(m));

            if (!m_UseSphereRules)
            {
                #region DistroCode

                bool MagicWeapons = MagicWeaponRule == pMagicWeaponRule.Allowed;
                bool MagicArmor = MagicArmorRule == pMagicArmorRule.Allowed;
                bool Potions = PotionRule == pPotionRule.Allowed;
                bool Bandages = BandageRule == pBandaidRule.Allowed;
                bool Pets = PetRule == pPetRule.Allowed;
                bool Mounts = MountRule == pMountRule.Allowed;

                if (!m.Alive)
                    m.Resurrect();

                Container bp = m.Backpack;
                Container bag = new Bag();
                bag.Hue = 38;
                BankBox bank = m.BankBox;
                Item oncurs = m.Holding;

                if (oncurs != null)
                    bp.DropItem(oncurs);

                m.CurePoison(m);

                m.Hits = m.HitsMax;
                m.Mana = m.ManaMax;
                m.Stam = m.StamMax;

                m.StatMods.Clear();

                List<Item> items = new List<Item>();

                foreach (Layer layer in PvpCore.EquipmentLayers)
                {
                    Item item = m.FindItemOnLayer(layer);

                    if (item != null)
                    {
                        if (item is BaseWeapon && !MagicWeapons)
                        {
                            BaseWeapon weapon = (BaseWeapon)item;

                            if (weapon.AccuracyLevel != WeaponAccuracyLevel.Regular)
                                items.Add(weapon);
                            else if (weapon.DamageLevel != WeaponDamageLevel.Regular)
                                items.Add(weapon);
                            else if (weapon.DurabilityLevel != WeaponDurabilityLevel.Regular)
                                items.Add(weapon);
                        }
                        else if (item is BaseArmor && !MagicArmor)
                        {
                            BaseArmor armor = (BaseArmor)item;

                            if (armor.Durability != ArmorDurabilityLevel.Regular)
                                items.Add(armor);
                            else if (armor.ProtectionLevel != ArmorProtectionLevel.Regular)
                                items.Add(armor);
                        }
                    }
                }

                if (m.Backpack != null)
                {
                    foreach (Item item in m.Backpack.Items)
                    {
                        if (item != null)
                        {
                            if (item is BaseWeapon && !MagicWeapons)
                            {
                                BaseWeapon weapon = (BaseWeapon) item;

                                if (weapon.AccuracyLevel != WeaponAccuracyLevel.Regular)
                                    items.Add(weapon);
                                else if (weapon.DamageLevel != WeaponDamageLevel.Regular)
                                    items.Add(weapon);
                                else if (weapon.DurabilityLevel != WeaponDurabilityLevel.Regular)
                                    items.Add(weapon);
                            }
                            else if (item is BaseArmor && !MagicArmor)
                            {
                                BaseArmor armor = (BaseArmor) item;

                                if (armor.Durability != ArmorDurabilityLevel.Regular)
                                    items.Add(armor);
                                else if (armor.ProtectionLevel != ArmorProtectionLevel.Regular)
                                    items.Add(armor);
                            }
                            else if (item is BasePotion && !Potions)
                                items.Add(item);
                            else if (item is EtherealMount && !Mounts)
                                items.Add(item);
                            else if (item is Bandage && !Bandages)
                                items.Add(item);
                        }
                    }
                }

                if (!Mounts)
                {
                    if (m.Mount != null)
                    {
                        IMount mount = m.Mount;
                        mount.Rider = null;
                        if (mount is BaseMount)
                        {
                            if (mount is BaseCreature)
                            {
                                BaseCreature bc = (BaseCreature)mount;
                                bc.ControlTarget = null;
                                bc.ControlOrder = OrderType.Stay;
                                bc.Internalize();

                                bc.SetControlMaster(null);
                                bc.SummonMaster = null;

                                bc.IsStabled = true;
                                m.Stabled.Add(bc);
                                MountCollection.Add(m.Serial, bc);
                                m.SendMessage(38, "Your mount has been moved to the your stables");
                            }
                        }
                    }
                }

                if (items.Count > 0)
                    m.SendMessage(38, "You had items that did not meet the requirements for the deathmatch and were thus moved to your bank.");

                foreach (Item item in items)
                    bag.AddItem(item);

                if (bag.Items.Count > 0)
                    bank.DropItem(bag);
                else
                    bag.Delete();

                #endregion
            }
            
            if (m_EventSupplier != null)
                m_EventSupplier.OnMoveOver(m);

            Contestants.Add(m);

            SpawnMobile(m);

            if ( m_GiveHorses )
                DMHorse.TryGiveHorse(m);

            if (m.NetState != null)
            {
                m.SendMessage(38, "You have joined a deathmatch");
                m.SendMessage(38, "You can check the score with \".DMScore\"");
            }
        }
Exemple #41
0
 internal void doResurrection(Mobile from)
 {
     from.Frozen = false;
     if (m_ResurrectionTimers.ContainsKey(from.Serial))
     {
         m_ResurrectionTimers[from.Serial].Stop();
         m_ResurrectionTimers.Remove(from.Serial);
     }
     from.Resurrect();
     SpawnMobile(from);
     FixPlayer(from, true);
     DMHorse.TryGiveHorse(from);
 }
Exemple #42
0
		public void Refresh( Mobile mob, Container cont )
		{
			if ( !mob.Alive )
			{
				mob.Resurrect();

				DeathRobe robe = mob.FindItemOnLayer( Layer.OuterTorso ) as DeathRobe;

				if ( robe != null )
					robe.Delete();

				if ( cont is Corpse )
				{
					Corpse corpse = (Corpse) cont;

					for ( int i = 0; i < corpse.EquipItems.Count; ++i )
					{
						Item item = corpse.EquipItems[i];

						if ( item.Movable && item.Layer != Layer.Hair && item.Layer != Layer.FacialHair && item.IsChildOf( mob.Backpack ) )
							mob.EquipItem( item );
					}
				}
			}

			mob.Hits = mob.HitsMax;
			mob.Stam = mob.StamMax;
			mob.Mana = mob.ManaMax;

			mob.Poison = null;
		}
Exemple #43
0
        public virtual void RemovePlayer(Mobile player)
        {
            if (player == null || player.Deleted)
                return;

            if (!Players.Contains(player))
                return;

            if (!player.Alive)
                player.Resurrect();

            if (player is PlayerMobile)
            {
                ((PlayerMobile)player).CurrentEvent = null;
                ((PlayerMobile)player).IsInEvent = false;
                ((PlayerMobile)player).Score = 0;
            }

            player.Blessed = false;

            if (player.Map != Map.Internal)
            {
                player.Location = m_Lobby;
                player.Map = m_LobbyMap;
            }
            else
            {
                player.LogoutLocation = m_Lobby;
                player.LogoutMap = m_LobbyMap;
            }
            m_Players.Remove(player);

            if (m_PlayerSupplies.ContainsKey((PlayerMobile)player))
            {
                SupplySystem.RemoveEventGear(player);
                EquipmentStorage storage = m_PlayerSupplies[(PlayerMobile)player];
                if (storage != null)
                {
                    storage.OnDoubleClick(player);
                    m_PlayerSupplies.Remove((PlayerMobile)player);
                }
            }
            player.Delta(MobileDelta.Noto);
            SendPlayerGumps();
        }
		public void Target( Mobile m )
		{
			if ( !Caster.CanSee( m ) )
			{
				Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
			}
			else if ( m == Caster )
			{
				Caster.SendLocalizedMessage( 501039 ); // Thou can not resurrect thyself.
			}
			else if ( !Caster.Alive )
			{
				Caster.SendLocalizedMessage( 501040 ); // The resurrecter must be alive.
			}
			else if ( m.Alive )
			{
				Caster.SendLocalizedMessage( 501041 ); // Target is not dead.
			}
			else if ( !Caster.InRange( m, 10 ) )//XUO Chro xuo respell style
			{
				Caster.SendLocalizedMessage( 501042 ); // Target is not close enough.
			}
			else if ( !m.Player )
			{
				Caster.SendLocalizedMessage( 501043 ); // Target is not a being.
			}
			else if ( m.Map == null || !m.Map.CanFit( m.Location, 16, false, false ) )
			{
				Caster.SendLocalizedMessage( 501042 ); // Target can not be resurrected at that location.
				m.SendLocalizedMessage( 502391 ); // Thou can not be resurrected there!
			}
			else if ( CheckBSequence( m, true ) )
			{
                 BaseHouse house = null;

                if (m.Region is HouseRegion)
                    house = (m.Region as HouseRegion).House;

                if (house != null)
                {
                    //if (house.IsCoOwner(m) || house.IsFriend(m) || house.IsOwner(m))
                    //{
                    //    m.PlaySound(0x214);
                    //    m.FixedEffect(0x376A, 10, 16);
                    //    m.Resurrect();
                    //}
                    //else if (house.IsCoOwner(Caster) || house.IsOwner(Caster))
                    //{
                    //    m.PlaySound(0x214);
                    //    m.FixedEffect(0x376A, 10, 16);
                    //    m.Resurrect();
                    //}
                    //else
                    //{
                        m.SendAsciiMessage("You cannot be resurrected in a house!");
                        Caster.SendAsciiMessage("You cannot resurrect in a house!");
                    //}
                }
                else
                {
                    m.PlaySound(Sound);
                    m.FixedEffect(0x376A, 10, 15);
                    m.Resurrect();
                }
			}

			FinishSequence();
		}
            public void attrib(Mobile who)
            {
                PlayerMobile m = who as PlayerMobile;

                RemoveRing(m);
                m.Aggressed.Clear();
                m.Aggressors.Clear();
                if (!who.Alive)
                    who.Resurrect();

                if (m.TempMount != null)
                {
                    m.TempMount.Rider = m;
                    m.TempMount = null;
                }
                m.Criminal = false;
                m.Warmode = false;
                m.PlaySound(0x214);
                m.FixedEffect(0x376A, 10, 16);
                m.Hits = m.HitsMax;
                m.Mana = m.ManaMax;
                m.Stam = m.StamMax;
            }
Exemple #46
0
		private void FixMobile(Mobile m)
		{
			if (!m.Alive)
				m.Resurrect();

			HandleCorpse(m);

			m.Aggressed.Clear();
			m.Aggressors.Clear();
			m.Hits = m.HitsMax;
			m.Stam = m.StamMax;
			m.Mana = m.ManaMax;
			m.DamageEntries.Clear();
			m.Combatant = null;
			m.InvalidateProperties();

            m.Criminal = false;

			StatMod mod;

			mod = m.GetStatMod("[Magic] Str Offset");
			if (mod != null && mod.Offset < 0)
				m.RemoveStatMod("[Magic] Str Offset");

			mod = m.GetStatMod("[Magic] Dex Offset");
			if (mod != null && mod.Offset < 0)
				m.RemoveStatMod("[Magic] Dex Offset");

			mod = m.GetStatMod("[Magic] Int Offset");
			if (mod != null && mod.Offset < 0)
				m.RemoveStatMod("[Magic] Int Offset");

			m.Paralyzed = false;
			m.CurePoison(m);

			// EvilOmenSpell.CheckEffect(m);
			StrangleSpell.RemoveCurse(m);
			CorpseSkinSpell.RemoveCurse(m);

			#region Buff Icons
			if (m is PlayerMobile)
			{
				PlayerMobile pm = (PlayerMobile)m;
				pm.RemoveBuff(BuffIcon.Clumsy);
				pm.RemoveBuff(BuffIcon.CorpseSkin);
				pm.RemoveBuff(BuffIcon.EvilOmen);
				pm.RemoveBuff(BuffIcon.Curse);
				pm.RemoveBuff(BuffIcon.FeebleMind);
				pm.RemoveBuff(BuffIcon.MassCurse);
				pm.RemoveBuff(BuffIcon.Paralyze);
				pm.RemoveBuff(BuffIcon.Poison);
				pm.RemoveBuff(BuffIcon.Strangle);
				pm.RemoveBuff(BuffIcon.Weaken);
			}
			#endregion

			m.SendMessage("The duel has ended.");
		}
Exemple #47
0
		public BandageContext( Mobile healer, Mobile patient, TimeSpan delay, Bandage origin )
		{
			m_Healer = healer;
			m_Patient = patient;

			if( m_Patient != null && !m_Patient.Alive )
			{
				if( m_Healer.Skills[SkillName.Anatomy].Base < 100.0 || m_Healer.Skills[SkillName.Healing].Base < 100.0 )
				{
					if( m_Healer.Skills[SkillName.Anatomy].Base < 100.0 && m_Healer.Skills[SkillName.Healing].Base < 100.0 )
					{
						m_Healer.SendAsciiMessage( "You need GM healing and anatomy to resurrect your target." );
						return;
					}
					else if( m_Healer.Skills[SkillName.Anatomy].Base < 100.0 )
					{
						m_Healer.SendAsciiMessage( "You need GM anatomy to resurrect your target." );
						return;
					}
					else if( m_Healer.Skills[SkillName.Healing].Base < 100.0 )
					{
						m_Healer.SendAsciiMessage( "You need GM healing to resurrect your target." );
						return;
					}
				}

				if( m_Healer.Hits <= 50 )
				{
					m_Healer.SendAsciiMessage( "You need to have more than 50 hp to resurrect your target" );
					return;
				}

				if( m_Patient.Region is HouseRegion )
				{
					m_Healer.SendAsciiMessage( "You can't resurrect people in house regions." );

					//Server.Multis.BaseHouse patientHouse = (m_Patient.Region as HouseRegion).House;

					////The owner can resurrect who ever he wants.
					//if (patientHouse.IsOwner(m_Healer) || patientHouse.IsCoOwner(m_Healer))
					//{
					//    m_Patient.Resurrect();
					//    m_Patient.Hits = 10;
					//    m_Healer.PublicOverheadMessage(MessageType.Regular, 0x22, true, "*You see " + m_Healer.Name + " resurrecting " + m_Patient.Name + "*");
					//    m_Healer.Hits -= 50;
					//}
					////The patient can be ressed by anoyone as long as he is an owner, co owner or friend
					//else if (patientHouse.IsOwner(m_Patient) || patientHouse.IsCoOwner(m_Patient) || patientHouse.IsFriend(m_Patient))
					//{
					//    m_Patient.Resurrect();
					//    m_Patient.Hits = 10;
					//    m_Healer.PublicOverheadMessage(MessageType.Regular, 0x22, true, "*You see " + m_Healer.Name + " resurrecting " + m_Patient.Name + "*");
					//    m_Healer.Hits -= 50;
					//}
					//else
					//{
					//    m_Patient.SendAsciiMessage("You cannot be resurrected in this region!");
					//    m_Healer.SendAsciiMessage("You cannot resurrect in this region!");
					//}
				}
				else
				{
					m_Patient.PlaySound( 0x214 );
					m_Patient.Resurrect();
					m_Patient.Hits = 10;
					m_Healer.PublicOverheadMessage( MessageType.Regular, 0x22, true, "*You see " + m_Healer.Name + " resurrecting " + m_Patient.Name + "*" );
					m_Healer.Hits -= 50;
                    origin.Consume(1);
				}
			}
			else
			{
				m_Timer = new InternalTimer( this, delay, origin );
				m_Timer.Start();
			}
		}
        public override bool OnMoveOver( Mobile m )
		{
            if (m.SolidHueOverride != -1)
                return true;

            if (m.IsInEvent && !AllowIsInEvent)
            {
                m.SendAsciiMessage("You cannot use this while in an event");
                return true;
            }

            if (m is PlayerMobile && !m.Alive && !AllowDead)
            {
                m.SendAsciiMessage("You cannot use this while dead");
                return true;
            }

            if (!AllowMounted && m.Player && m.Mounted)
            {
                m.SendAsciiMessage("You cannot use this while mounted");
                return true;
            }

		    if( m is PlayerMobile && ((!m.Alive && AllowDead && DeadTeleInstantly) || DelayWithCount <= 0) )
			{
                if (!base.OnMoveOver(m))
                {
                    if (!m.Alive && ResurrectDead)
                        m.Resurrect();

                    return false;
                }
                return true;
			}

            if ((m is PlayerMobile) && (m.Hits < m.HitsMax) && MustBeFullyHealed && m.Alive)
            {
                m.LocalOverheadMessage(MessageType.Regular, 906, true, "You must be fully healed to use this!");
                return true;
            }

            if (CombatCheck && SpellHelper.CheckCombat(m))
            {
                m.SendLocalizedMessage(1005564, "", 0x22); // Wouldst thou flee during the heat of battle??
                return true;
            }

            if (!AllowCriminals && (m.Criminal || Misc.NotorietyHandlers.IsGuardCandidate(m)))
            {
                m.SendAsciiMessage("Criminals or murderers can't use this teleporter!");
                return true;
            }

            if (m is PlayerMobile && m.SolidHueOverride != OnMoveOverHue)
            {
                m_TeleportTimer = new TeleportTimer(this, m);
                m_TeleportTimer.Start();
                m.SolidHueOverride = OnMoveOverHue;
                if (!String.IsNullOrEmpty(OnMoveOverMessage))
                    m.SendAsciiMessage(OnMoveOverMessage);
                return true;
            }

		    return true;
		}
Exemple #49
0
        public static void ResurrectPlayers(string arglist, Mobile triggermob, object refobject, out string status_str)
        {
            status_str = null;
            Item refitem = null;
            Mobile refmob = null;
            if (refobject is Item)
            {
                refitem = (Item)refobject;
            }
            else if (refobject is Mobile)
            {
                refmob = (Mobile)refobject;
            }
            // syntax is RESURRECT[,range][,PETS]
            // look for the range arg
            string[] str = ParseString(arglist, 3, ",");
            int range = 0;
            bool petres = false;

            if (str.Length > 1)
            {
                try
                {
                    range = int.Parse(str[1]);
                }
                catch
                {
                    status_str = "bad range arg in RESURRECT";
                }
            }
            if (str.Length > 2)
            {
                // get the range arg
                if (str[2] == "PETS")
                {
                    petres = true;
                }
            }

            try
            {
                if ((range > 0) || (triggermob != null && !triggermob.Deleted))
                {
                    // resurrect all players within range if range is > 0
                    if (range > 0)
                    {
                        IPooledEnumerable rangelist = null;
                        if (refitem != null && !refitem.Deleted)
                        {
                            rangelist = refitem.GetMobilesInRange(range);
                        }
                        else if (refmob != null && !refmob.Deleted)
                        {
                            rangelist = refmob.GetMobilesInRange(range);
                        }

                        if (rangelist != null)
                        {
                            foreach (Mobile p in rangelist)
                            {
                                if (!petres && p is PlayerMobile && p.Body.IsGhost)
                                {
                                    p.Resurrect();
                                }
                                else if (petres && p is BaseCreature && ((BaseCreature)p).ControlMaster == triggermob && ((BaseCreature)p).Controlled && ((BaseCreature)p).IsDeadPet)
                                {
                                    ((BaseCreature)p).ResurrectPet();
                                }
                            }
                            rangelist.Free();
                        }
                    }
                    else
                    {
                        // just send it to the mob who triggered
                        if (triggermob.Body.IsGhost)
                            triggermob.Resurrect();
                    }
                }
            }
            catch
            {
            }
        }
		public static void EndTeleOut( DuelStone ds, Mobile toTele )
		{
			if( toTele != null )
				if( ds != null )
				{
					if( !ds.StoneType.ToString().Contains( "Loot" ) && !toTele.Alive )
					{
						if( toTele.Corpse != null )
							toTele.MoveToWorld( toTele.Corpse.Location, toTele.Corpse.Map );

						toTele.Resurrect();
					}
					else if( toTele.Alive )
					{
						toTele.Hits = toTele.HitsMax;
						toTele.Mana = toTele.ManaMax;
						toTele.Stam = toTele.StamMax;
					}

					toTele.Location = ds.AfterDuelLocation;
					toTele.Frozen = false;

					if( !toTele.Alive )
						toTele.Resurrect();

					(toTele).HasFilter = false;

                    // Clear aggressor list
                    List<AggressorInfo> toRemove = new List<AggressorInfo>();
                    foreach (AggressorInfo aI in toTele.Aggressors)
                    {
                        if (aI.Attacker == toTele || aI.Defender == toTele)
                            toRemove.Add(aI);
                    }
                    if (toRemove.Count > 0)
                        foreach (AggressorInfo aI in toRemove)
                            toTele.Aggressors.Remove(aI);

                    toRemove.Clear();
                    foreach (AggressorInfo aI in toTele.Aggressed)
                    {
                        if (aI.Attacker == toTele || aI.Defender == toTele)
                            toRemove.Add(aI);
                    }
                    if (toRemove.Count > 0)
                        foreach (AggressorInfo aI in toRemove)
                            toTele.Aggressed.Remove(aI);


                    //AggressorInfo toRemove = null;
                    //foreach (AggressorInfo aI in toTele.Aggressors)
                    //{
                    //    if (aI.Attacker == toTele) // Might also want to 
                    //        toRemove = aI; //Add a break here
                    //}

				}
				else
					toTele.SendAsciiMessage( "Error with the stone, page a GM" );
		}
        public void makeready(Mobile who)
        {
            PlayerMobile c = (PlayerMobile)who;
            if (!who.Alive)
                who.Resurrect();

            Container bp = c.Backpack;
            Container bankbag = new Bag();
            bankbag.Hue = 63;
            BankBox bank = c.BankBox;
            Item oncurs = c.Holding;

            if (oncurs != null)
                bp.DropItem(oncurs);

            c.SendMessage("You have 10 seconds until the duel begins");
            c.SendMessage(63, "After one of you dies, both of you will be teleported out");

            c.Criminal = true;
            c.CurePoison(c);

            c.Blessed = true;
            c.Frozen = true;

            c.Hits = c.HitsMax;
            c.Mana = c.ManaMax;
            c.Stam = c.StamMax;

            c.StatMods.Clear();

            if (bp != null)
            {
                Item toDisarm = c.FindItemOnLayer(Layer.OneHanded);

                if (toDisarm == null || !toDisarm.Movable)
                    toDisarm = c.FindItemOnLayer(Layer.TwoHanded);

                if (toDisarm != null)
                    bp.DropItem(toDisarm);

                if (c.Mount != null)
                {
                    IMount mount = c.Mount;
                    mount.Rider = null;
                    if (mount is BaseMount)
                    {
                        BaseMount oldMount = (BaseMount)mount;
                        oldMount.Map = Map.Internal;
                        c.TempMount = oldMount;
                    }
                }

                while ((BasePotion)bp.FindItemByType(typeof(BasePotion)) != null)
                {
                    BasePotion potion = (BasePotion)bp.FindItemByType(typeof(BasePotion));
                    bankbag.DropItem(potion);
                }
                while ((EtherealMount)bp.FindItemByType(typeof(EtherealMount)) != null)
                {
                    EtherealMount mount = (EtherealMount)bp.FindItemByType(typeof(EtherealMount));
                    bankbag.DropItem(mount);
                }
                /*Item[] weps = bp.FindItemsByType( typeof( BaseWeapon ) ); 
                for ( int i = 0; i < weps.Length; ++i ) 
                { 
                    Item item = (Item)weps[i];
                    BaseWeapon weapon = item as BaseWeapon;
                    if( weapon.DamageLevel > WeaponDamageLevel.Regular ) 
                                bankbag.DropItem( item );
                }*/
                if (bankbag.Items.Count > 0)
                    bank.DropItem(bankbag);
                else
                    bankbag.Delete();
            }
        }