Esempio n. 1
0
    public static void MsgHit(ClientState c, MsgBase msgBase)
    {
        MsgHit msg    = msgBase as MsgHit;
        Player player = c.player;

        Player targetPlayer = PlayerManager.GetPlayer(msg.targetId);

        if (player == null || targetPlayer == null)
        {
            return;
        }


        Room room = RoomManager.GetRoom(player.roomId);

        if (room == null || room.status != Room.Status.FIGHT)
        {
            return;
        }

        if (player.id != msg.id)
        {
            return;
        }

        int damage = 35;

        targetPlayer.hp -= damage;
        msg.id           = player.id;
        msg.hp           = targetPlayer.hp;
        msg.damage       = damage;
        room.Broadcast(msg);
    }
Esempio n. 2
0
    //收到击中协议
    public void OnMsgHit(MsgBase msgBase)
    {
        MsgHit msg = (MsgHit)msgBase;

        if (msg.targetId == GameMain.id)
        {
            BaseTank tank = BattleManager.GetCtrlTank();
            if (tank != null)
            {
                ReflashHp(Mathf.CeilToInt(tank.hp));
            }
        }
        ReflashCampInfo();
    }
Esempio n. 3
0
    private static void OnMsgHit(MsgBase msgBase)
    {
        MsgHit msg = (MsgHit)msgBase;
        // 找坦克
        SyncTank tank = (SyncTank)GetTank(msg.id);

        if (tank == null)
        {
            return;
        }

        // 同步
        tank.Attacked(msg.damage);
    }
Esempio n. 4
0
    //击中协议
    public static void MsgHit(ClientState c, MsgBase msgBase)
    {
        MsgHit msg    = (MsgHit)msgBase;
        Player player = c.player;

        if (player == null)
        {
            return;
        }
        //targetPlayer
        Player targetPlayer = PlayerManager.GetPlayer(msg.targetId);

        if (targetPlayer == null)
        {
            return;
        }
        //room
        Room room = RoomManager.GetRoom(player.roomId);

        if (room == null)
        {
            return;
        }
        //status
        if (room.status != Room.Status.FIGHT)
        {
            return;
        }
        //发送者校验
        if (player.id != msg.id)
        {
            return;
        }
        //状态
        int damage = 35;

        targetPlayer.hp -= damage;
        //广播
        msg.id     = player.id;
        msg.hp     = player.hp;
        msg.damage = damage;
        room.Broadcast(msg);
    }
Esempio n. 5
0
    private void SendMsgHit(BaseTank tank, BaseTank hitTank)
    {
        if (hitTank == null || hitTank == null)
        {
            return;
        }
        // 不是自己发射的炮弹
        if (tank.id != GameMain.id)
        {
            return;
        }
        MsgHit msg = new MsgHit();

        msg.targetId = hitTank.id;
        msg.id       = tank.id;
        msg.x        = transform.position.x;
        msg.y        = transform.position.y;
        msg.z        = transform.position.z;
        NetManager.Send(msg);
    }
Esempio n. 6
0
    //收到击中协议
    public static void OnMsgHit(MsgBase msgBase)
    {
        MsgHit msg = (MsgHit)msgBase;
        //查找坦克
        BaseTank tank = GetTank(msg.targetId);

        if (tank == null)
        {
            return;
        }
        bool isDie = tank.IsDie();

        //被击中
        tank.Attacked(msg.damage);
        //击杀提示
        if (!isDie && tank.IsDie() && msg.id == GameMain.id)
        {
            PanelManager.Open <KillPanel>();
        }
    }