public void AnalyzeMessage(CSID messageId, byte[] bodyData) { switch (messageId) { case CSID.UDP_BATTLE_READY: { //接收战斗准备 UdpBattleReady _mes = CSData.DeserializeData <UdpBattleReady> (bodyData); CheckBattleBegin(_mes.battleID); dic_udp [_mes.battleID].RecvClientReady(_mes.uid); } break; case CSID.UDP_UP_PLAYER_OPERATIONS: { UdpUpPlayerOperations pb_ReceiveMes = CSData.DeserializeData <UdpUpPlayerOperations>(bodyData); UpdatePlayerOperation(pb_ReceiveMes.operation, pb_ReceiveMes.mesID); } break; case CSID.UDP_UP_DELTA_FRAMES: { UdpUpDeltaFrames pb_ReceiveMes = CSData.DeserializeData <UdpUpDeltaFrames>(bodyData); UdpDownDeltaFrames _downData = new UdpDownDeltaFrames(); for (int i = 0; i < pb_ReceiveMes.frames.Count; i++) { int framIndex = pb_ReceiveMes.frames [i]; UdpDownFrameOperations _downOp = new UdpDownFrameOperations(); _downOp.frameID = framIndex; _downOp.operations = dic_gameOperation [framIndex]; _downData.framesData.Add(_downOp); } byte[] _data = CSData.GetSendMessage <UdpDownDeltaFrames> (_downData, SCID.UDP_DOWN_DELTA_FRAMES); dic_udp [pb_ReceiveMes.battleID].SendMessage(_data); } break; case CSID.UDP_UP_GAME_OVER: { UdpUpGameOver pb_ReceiveMes = CSData.DeserializeData <UdpUpGameOver>(bodyData); UpdatePlayerGameOver(pb_ReceiveMes.battleID); UdpDownGameOver _downData = new UdpDownGameOver(); byte[] _data = CSData.GetSendMessage <UdpDownGameOver> (_downData, SCID.UDP_DOWN_GAME_OVER); dic_udp [pb_ReceiveMes.battleID].SendMessage(_data); } break; default: break; } }
public void SendOperation() { mesNum++; UdpUpPlayerOperations _up = new UdpUpPlayerOperations(); _up.mesID = mesNum; _up.operation = BattleData.Instance.selfOperation; // _up.operation = new PlayerOperation (); // _up.operation.battleID = BattleData.Instance.selfOperation.battleID; // _up.operation.move = BattleData.Instance.selfOperation.move; // // if (BattleData.Instance.selfOperation.rightOperation != RightOpType.noop) { // _up.operation.operationID = BattleData.Instance.selfOperation.operationID; // _up.operation.rightOperation = BattleData.Instance.selfOperation.rightOperation; // _up.operation.operationValue1 = BattleData.Instance.selfOperation.operationValue1; // _up.operation.operationValue2 = BattleData.Instance.selfOperation.operationValue2; // } _upd.SendMessage(CSData.GetSendMessage <UdpUpPlayerOperations>(_up, CSID.UDP_UP_PLAYER_OPERATIONS)); }