예제 #1
0
 private static void KickPlayerFromEvent_Target(Mobile from, object o, object state)
 {
     if (o is PlayerMobile)
     {
         PlayerMobile player = (PlayerMobile)o;
         if (player.CurrentEvent != null)
         {
             player.CurrentEvent.RemovePlayer(player);
             from.SendMessage("The player has been kicked.");
         }
         else if (PvpCore.IsInDeathmatch(player))
         {
             PvpCore.TryLeaveDM(player, true);
             from.SendMessage("The player has been kicked.");
         }
         else if (TournamentCore.IsInTournament(player))
         {
             TournamentCore.TryLeaveTournament(player, true);
             from.SendMessage("The player has been kicked.");
         }
         else
         {
             from.SendMessage("That player is not in a game");
         }
     }
     else
     {
         from.BeginTarget(-1, false, TargetFlags.None, new TargetStateCallback(KickPlayerFromEvent_Target), false);
         from.SendMessage("Target the player.");
     }
 }
예제 #2
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);
     }
 }
예제 #3
0
        private static void Execute(CommandEventArgs e)
        {
            Mobile  from  = e.Mobile;
            DMStone stone = PvpCore.GetPlayerStone(e.Mobile);

            if (stone != null && stone.Started && PvpCore.IsInDeathmatch(from) && !from.Alive)
            {
                stone.doResurrection(from);
            }
        }
예제 #4
0
 protected override void OnTick()
 {
     if (m_From.Alive || !PvpCore.IsInDeathmatch(m_From))
     {
         Stop();
     }
     else if (m_Count <= 0)
     {
         Stop();
     }
     else
     {
         m_From.SendMessage(String.Format(m_DeathMessage, m_Count * 10));
         m_Count--;
     }
 }
예제 #5
0
        private static void ScoreEvent_Command(CommandEventArgs e)
        {
            BaseGame Game = ((PlayerMobile)e.Mobile).CurrentEvent;

            if (Game != null)
            {
                Game.AnnounceScore(e.Mobile);
            }
            else if (PvpCore.IsInDeathmatch(e.Mobile))
            {
                PvpCore.TryShowScoreBoard(e.Mobile);
            }
            else
            {
                e.Mobile.SendAsciiMessage("You are not in an event.");
            }
        }
예제 #6
0
        private static void ShowScore_Target(Mobile from, object o)
        {
            if (o is PlayerMobile)
            {
                PlayerMobile pm   = o as PlayerMobile;
                BaseGame     Game = pm.CurrentEvent;
                if (Game != null)
                {
                    Game.AnnounceScore(from);
                }
                else if (PvpCore.IsInDeathmatch(pm))
                {
                    DMStone s = PvpCore.GetPlayerStone(pm);
                    if (s != null)
                    {
                        s.ShowScore(from);
                    }
                }
                else
                {
                    from.BeginTarget(-1, false, TargetFlags.None, ShowScore_Target);
                    from.SendMessage("Target a player in a game or a deathmatch stone");
                }
            }
            else if (o is DMStone)
            {
                DMStone game = (DMStone)o;

                if (game.Started)
                {
                    game.ShowScore(from);
                }
                else
                {
                    from.SendAsciiMessage("This deathmatch is not running");
                }
            }
            else
            {
                from.BeginTarget(-1, false, TargetFlags.None, ShowScore_Target);
                from.SendMessage("Target a player in a game or a deathmatch stone");
            }
        }
예제 #7
0
        public override bool OnMoveOver(Mobile m)
        {
            if (!Visible)
            {
                return(true);
            }

            if (m == null || !m.Player)
            {
                return(true);
            }

            if (!PvpCore.IsInDeathmatch(m))
            {
                return(true);
            }

            Visible = false;

            StatMod mod = m.GetStatMod(String.Format("[DM] {0}", m_PowerUp));

            if (mod != null)
            {
                m.RemoveStatMod(String.Format("[DM] {0}", m_PowerUp));
            }

            switch (m_PowerUp)
            {
            case PowerUpType.Dex:
            {
                m.FixedParticles(0x3779, 10, 15, 5009, EffectLayer.Waist);
                m.PlaySound(0x1E6);
                m.AddStatMod(new StatMod(StatType.Dex, String.Format("[DM] {0}", m_PowerUp), 5, TimeSpan.FromMinutes(1.0)));
                break;
            }

            case PowerUpType.Fury:
            {
                m.FixedParticles(0x3779, 10, 15, 5009, EffectLayer.Waist);
                m.PlaySound(0x1E6);
                m.AddStatMod(new StatMod(StatType.All, String.Format("[DM] {0}", m_PowerUp), 5, TimeSpan.FromMinutes(1.0)));
                break;
            }

            case PowerUpType.Int:
            {
                m.FixedParticles(0x3779, 10, 15, 5009, EffectLayer.Waist);
                m.PlaySound(0x1E6);
                m.AddStatMod(new StatMod(StatType.Int, String.Format("[DM] {0}", m_PowerUp), 5, TimeSpan.FromMinutes(1.0)));
                break;
            }

            case PowerUpType.Rage:
            {
                m.FixedParticles(0x3779, 10, 15, 5009, EffectLayer.Waist);
                m.PlaySound(0x1E6);
                m.AddStatMod(new StatMod(StatType.All, String.Format("[DM] {0}", m_PowerUp), 10, TimeSpan.FromMinutes(1.0)));
                break;
            }

            case PowerUpType.Spirit:
            {
                m.FixedParticles(0x3779, 10, 15, 5009, EffectLayer.Waist);
                m.PlaySound(0x1E6);
                m.AddStatMod(new StatMod(StatType.Int, String.Format("[DM] {0}", m_PowerUp), 15, TimeSpan.FromMinutes(1.0)));
                break;
            }

            case PowerUpType.Str:
            {
                m.FixedParticles(0x3779, 10, 15, 5009, EffectLayer.Waist);
                m.PlaySound(0x1E6);
                m.AddStatMod(new StatMod(StatType.Str, String.Format("[DM] {0}", m_PowerUp), 5, TimeSpan.FromMinutes(1.0)));
                break;
            }

            case PowerUpType.Supremacy:
            {
                m.FixedParticles(0x3779, 10, 15, 5009, EffectLayer.Waist);
                m.PlaySound(0x1E6);
                m.AddStatMod(new StatMod(StatType.All, String.Format("[DM] {0}", m_PowerUp), 20, TimeSpan.FromSeconds(20.0)));
                break;
            }
            }

            new RespawnTimer(this).Start();
            return(true);
        }