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); }
//收到击中协议 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(); }
private static void OnMsgHit(MsgBase msgBase) { MsgHit msg = (MsgHit)msgBase; // 找坦克 SyncTank tank = (SyncTank)GetTank(msg.id); if (tank == null) { return; } // 同步 tank.Attacked(msg.damage); }
//击中协议 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); }
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); }
//收到击中协议 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>(); } }