Example #1
0
        public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
        {
            switch (item.Property2)
            {
                case 0:
                    if (player.IsLiving)
                    {
                        player.AddBlood(item.Property3);
                    }
                    break;
                case 1:
                    List<Player> temps = player.Game.GetAllFightPlayers();
                    foreach (Player p in temps)
                    {
                        if (p.IsLiving && p.Team == player.Team)
                        {
                            p.AddBlood(item.Property3);
                        }
                    }

                    break;
                default:
                    break;
            }
        }
        public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
        {
            if (player.HasPaymentTakeCard == false)
            {
                if (player.PlayerDetail.RemoveMoney(100) > 0&&player.PlayerDetail.RemoveGiftToken(429)>0)
                {
                    int index = packet.ReadByte();
                    player.CanTakeOut += 1;
                    player.FinishTakeCard = false;
                    player.HasPaymentTakeCard = true;
                    player.PlayerDetail.LogAddMoney(AddMoneyType.Game, AddMoneyType.Game_PaymentTakeCard, player.PlayerDetail.PlayerCharacter.ID, 100, player.PlayerDetail.PlayerCharacter.Money);

                    if (index < 0 || index > game.Cards.Length)
                    {
                        game.TakeCard(player);
                    }
                    else
                    {
                        game.TakeCard(player, index);
                    }
                }
                else
                {
                    player.PlayerDetail.SendInsufficientMoney((int)eBattleRemoveMoneyType.PaymentTakeCard);
                }
            }
        }
Example #3
0
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     if(game is PVEGame)
     {
         PVEGame pve = game as PVEGame;
         int tryAgain = packet.ReadInt();
         bool isHost = packet.ReadBoolean();
         if (isHost == true)
         {
             if (tryAgain == 1)
             {
                 if (player.PlayerDetail.RemoveMoney(100) > 0)
                 {
                     //退回关卡结算
                     pve.WantTryAgain = 1;
                     game.SendToAll(packet);
                     player.PlayerDetail.LogAddMoney(AddMoneyType.Game, AddMoneyType.Game_TryAgain, player.PlayerDetail.PlayerCharacter.ID, 100, player.PlayerDetail.PlayerCharacter.Money);
                 }
                 else
                 {
                     player.PlayerDetail.SendInsufficientMoney((int)eBattleRemoveMoneyType.TryAgain);
                 }
             }
             else
             {
                 //退回房间
                 pve.WantTryAgain = 0;
                 game.SendToAll(packet);
             }
             pve.CheckState(0);
         }
     }
 }
Example #4
0
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     if (player.IsAttacking)
     {
         player.Skip(packet.ReadByte());
     }
 }
Example #5
0
        public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
        {
            if (game.GameState != eGameState.Playing || player.GetSealState())
                return;

            int type = packet.ReadByte();
            int place = packet.ReadInt();
            int templateID = packet.ReadInt();

            ItemTemplateInfo template = ItemMgr.FindItemTemplate(templateID);
            if (player.CanUseItem(template))
            {
                //if (player.CurrentBall.ID == 3 && template.TemplateID == 10003)
                //    return;

                //if (player.PlayerDetail.UsePropItem(game, type, place, templateID, player.IsLiving))
                //{
                //    if (player.UseItem(template) == false)
                //    {
                //        BaseGame.log.Error("Using prop error");
                //    }
                //}
                if (player.PlayerDetail.UsePropItem(game, type, place, templateID, player.IsLiving))
                {
                    if (player.UseItem(template) == false)
                    {
                        BaseGame.log.Error("Using prop error");
                    }
                }
                else
                {
                    player.UseItem(template);
                }
            }
        }
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     if (game is PVEGame)
     {
         PVEGame pve = game as PVEGame;
         if (pve.BossCardCount + 1 > 0)
         {
             int index = packet.ReadByte();
             if (index < 0 || index > pve.BossCards.Length)
             {
                 if (pve.IsBossWar != "")
                 {
                     pve.TakeBossCard(player);
                 }
                 else pve.TakeCard(player);
             }
             else
             {
                 if (pve.IsBossWar != "")
                 {
                     pve.TakeBossCard(player, index);
                 }
                 else pve.TakeCard(player, index);
             }
         }
     }
 }
Example #7
0
 public LivingSealAction(Living Living, Player target, int type, int delay)
     : base(delay, 2000)
 {
     m_Living = Living;
     m_Target = target;
     m_Type = type;
 }
Example #8
0
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     if(player.IsAttacking)
     {
         player.UseFlySkill();
     }
 }
        protected override void OnRemovedFromPlayer(Player player)
        {
            player.PlayerShoot -= new PlayerEventHandle(ChangeProperty);
            player.AfterKillingLiving -= new KillLivingEventHanlde(player_AfterKillingLiving);


        }
Example #10
0
 public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
 {
     if (player.IsLiving)
     {
         new SealEffect(item.Property3, 1).Start(player);
     }
 }
 public void MoveToPlayer(Player player)
 {
     int dis = Game.Random.Next(((SimpleNpc)Body).NpcInfo.MoveMin, ((SimpleNpc)Body).NpcInfo.MoveMax);
     if (player.X > Body.X)
     {
         if (Body.X + dis >= player.X)
         {
             Body.MoveTo(player.X - 10, Body.Y, "walk", 2000, new LivingCallBack(Beat));
         }
         else
         {
             Body.MoveTo(Body.X + dis, Body.Y, "walk", 2000, new LivingCallBack(Beat));
         }
     }
     else
     {
         if (Body.X - dis <= player.X)
         {
             Body.MoveTo(player.X + 10, Body.Y, "walk", 2000, new LivingCallBack(Beat));
         }
         else
         {
             Body.MoveTo(Body.X - dis, Body.Y, "walk", 2000, new LivingCallBack(Beat));
         }
     }
 }
 private void RandomShootPlayer()
 {
     List<Player> players = Game.GetAllLivingPlayers();
     int index = Game.Random.Next(0, players.Count);
     m_target = players[index];
     NpcAttack();
 }
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     if (player.IsLiving == false)
     {
         player.TargetPoint.X = packet.ReadInt();
         player.TargetPoint.Y = packet.ReadInt();
     }
 }
 private void ChangeProperty(Player player)
 {
     if (rand.Next(100) < m_probability)
     {
         SpellMgr.ExecuteSpell(player.Game, player, ItemMgr.FindItemTemplate(10022));
         player.Game.SendEquipEffect(player, LanguageMgr.GetTranslation("AtomBombEquipEffect.Success"));
     }
 }
Example #15
0
 public GhostMoveAction(Player player, Point target)
     : base(0, 1000)
 {
     m_player = player;
     m_target = target;
     m_v = new Point(target.X - m_player.X, target.Y - m_player.Y);
     m_v.Normalize(2);
 }
Example #16
0
        public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
        {
            if (player.IsAttacking)
            {

                player.UseSpecialSkill();
                player.CurrentShootMinus *= (float)player.CurrentBall.Power;
            }
        }
Example #17
0
 void playerShot(Player player)
 {
     IsTrigger = false;
     if (rand.Next(100) < m_probability)
     {
         IsTrigger = true;
         player.EffectTrigger = true;
     }
 }
 private void ChangeProperty(Player player)
 {
     if (rand.Next(100) < m_probability)
     {
         SpellMgr.ExecuteSpell(player.Game, player, ItemMgr.FindItemTemplate(10015));
         // player.Game.SendEquipEffect(player, LanguageMgr.GetTranslation("IceFronzeEquipEffect.Success"));
         //player.Game.SendAttackEffect(player, 1);
     }
 }
Example #19
0
        public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
        {
            if (game.GameState != eGameState.Playing || player.GetSealState())
                return;

            int killID = packet.ReadInt();
            //game.SendPetUseKill(player, killID, true);
            player.PetUseKill(killID);
        }
 private void ChangeProperty(Player player)
 {
     if (rand.Next(100) < m_probability)
     {
         player.Delay = player.DefaultDelay;
         player.Game.SendEquipEffect(player, LanguageMgr.GetTranslation("AddTurnEquipEffect.Success"));
         //player.Game.SendAttackEffect(player, 1);
     }
 }
Example #21
0
 private void ChangeProperty(Player player)
 {
     IsTrigger = false;
     if (rand.Next(100) < m_probability)
     {
         IsTrigger = true;
         player.EffectTrigger = true;
         player.Game.SendEquipEffect(player, LanguageMgr.GetTranslation("SealEquipEffect.Success"));
     }
 }
Example #22
0
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     if (player.IsLiving && game.GameState == eGameState.Playing)
     {
         packet.Parameter1 = player.Id;
         game.SendToAll(packet);
         player.Die();
         game.CheckState(0);
     }
 }
 private void ChangeProperty(Player player)
 {
     IsTrigger = false;
     if (rand.Next(100) < m_probability)
     {
         IsTrigger = true;
         player.EffectTrigger = true;
         player.Game.SendEquipEffect(player, LanguageMgr.GetTranslation("ArmorPiercerEquipEffect.Success"));
         // player.Game.SendAttackEffect(player, 1);reEn
     }
 }
 private void ChangeProperty(Player player)
 {
     IsTrigger = false;
     if (rand.Next(100) < m_probability)
     {
         IsTrigger = true;
         player.EffectTrigger = true;
         player.Game.SendEquipEffect(player, LanguageMgr.GetTranslation("ContinueReduceDamageEquipEffect.Success"));
         //player.Game.SendAttackEffect(player, 1);
     }
 }
Example #25
0
 public static void ExecuteSpell(BaseGame game,Player player,ItemTemplateInfo item)
 {
     try
     {
         ISpellHandler spellHandler = SpellMgr.LoadSpellHandler(item.Property1);
         spellHandler.Execute(game, player, item);
     }
     catch (Exception ex)
     {
         log.Error("Execute Spell Error:", ex);
     }
 }
Example #26
0
 private void ChangeProperty(Player player)
 {
     IsTrigger = false;
     if (rand.Next(100) < m_probability)
     {
         player.ShootMovieDelay = 50;
         IsTrigger = true;
         player.EffectTrigger = true;
         if (player.CurrentBall.ID != 3)
             player.ControlBall = true;
         player.Game.SendEquipEffect(player, LanguageMgr.GetTranslation("FatalEffect.Success"));
         //player.Game.SendAttackEffect(player, 1);
     }
 }
        public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
        {
            if (player.IsSpecialSkill)
                return;

            if ((player.CurrentBall.ID == 3 || player.CurrentBall.ID == 5 || player.CurrentBall.ID == 1) && item.TemplateID == 10003)
            {
                player.BallCount = 1;
            }
            else
            {
                player.CurrentDamagePlus *= 0.5f;
                player.BallCount = item.Property2;
            }
        }
Example #28
0
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     //if (player.FinishTakeCard == false && player.CanTakeOut > 0)
     //{
         int index = packet.ReadByte();
         if (index < 0 || index > game.Cards.Length)
         {
             game.TakeCard(player);
         }
         else
         {
             game.TakeCard(player,index);
         }
     //}
 }
 public override void OnStartAttacking()
 {
     base.OnStartAttacking();
     m_target = Game.FindNearestPlayer(Body.X, Body.Y);
     m_targetDis = (int)m_target.Distance(Body.X, Body.Y);
     if (m_targetDis <= 50)
     {
         Body.PlayMovie("beatA", 100, 0);
         Body.RangeAttacking(Body.X - 50, Body.X + 50, "cry", 1500, null);
         Body.Die(1000);
     }
     else
     {
         MoveToPlayer(m_target);
     }
 }
Example #30
0
        public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
        {
            if (player.IsAttacking)
            {
                int x = packet.ReadInt();
                int y = packet.ReadInt();

                //检查开炮点的距离有效性
                if (player.CheckShootPoint(x, y) == false)
                    return;

                int force = packet.ReadInt();
                int angle = packet.ReadInt();
                player.Shoot(x, y, force, angle);
            }
        }