public byte[] GenerateState(SendData data, int hashCode) { ByteArray array = new ByteArray(10); array.writeChar((char)data.cmd); array.writeInt(hashCode); array.writeInt(GameGlobalData.fd); array.writeByteArray(SendStateData.ToBytes(data.state)); return(array.getByteData()); }
public static byte[] ToBytes(SendStateData data) { ByteArray array = new ByteArray(10); array.writeChar(data.state); if (data.state == (char)PlayerState.Trap) { array.writeChar(data.trapData.trapLevel); } return(array.getByteData()); }
public void SendDeathState() { SendData data = new SendData(); data.fd = GameGlobalData.fd; data.cmd = SendDataType.State; SendStateData stateData = new SendStateData(); stateData.state = (char)PlayerState.Death; data.state = stateData; logicSwap.ForceSend(data); }
//*************State public void SendTrapState(TrapLevel level) { SendData data = new SendData(); data.fd = GameGlobalData.fd; data.cmd = SendDataType.State; SendStateData stateData = new SendStateData(); stateData.state = (char)PlayerState.Trap; stateData.trapData = new SendStateData.SendTrapData(); stateData.trapData.trapLevel = (char)level; data.state = stateData; logicSwap.ForceSend(data); }
//从客户端发送给服务器的回应消息 public void DispatchMessage(SendData data) { switch ((SendDataType)data.cmd) { case SendDataType.Action: SendActionData action = data.action; DispatchPlayerAction(data.action); break; case SendDataType.State: SendStateData state = data.state; DispatchPlayerState(data.state); break; case SendDataType.CheckTime: break; } }
public void DispatchPlayerState(SendStateData data) { //当玩家进入trap或者save或者death的状态的时候是自动所以在玩家发送以前就已经进入这个状态了所以这里就不需要再处理了 }