public void MsgHandle(List <GameMessage> list) { for (int i = 0; i < list.Count; i++) { GameMessage message = list[i]; Protocol protocol = (Protocol)message.type[0]; switch (protocol) { case Protocol.ReqStartMove: using (MemoryStream stream = new MemoryStream(message.data)) { ReqStartMove mReqStartMove = Serializer.Deserialize <ReqStartMove>(stream); Process(mReqStartMove); break; } case Protocol.ReqChangeDir: using (MemoryStream stream = new MemoryStream(message.data)) { ReqChangeDir mReqChangeDir = Serializer.Deserialize <ReqChangeDir>(stream); Process(mReqChangeDir); break; } case Protocol.ReqEndMove: using (MemoryStream stream = new MemoryStream(message.data)) { ReqEndMove mReqEndMove = Serializer.Deserialize <ReqEndMove>(stream); Process(mReqEndMove); break; } } } }
void Process(ReqEndMove tReqEndMove) { uint userid = tReqEndMove.userid; Actor actor = GameManager.Instance.GetActor(userid); if (actor != null) { actor.TransState(ActorStateType.Idle); } }
public void SendEndMove() { ReqEndMove mReqEndMove = new ReqEndMove(); mReqEndMove.userid = NetData.Instance.mUserData.Userid; mReqEndMove.roomid = NetData.Instance.mFightData.RoomId; using (MemoryStream stream = new MemoryStream()) { Serializer.Serialize(stream, mReqEndMove); Send(Protocol.ReqEndMove, stream.ToArray()); } }
internal static void MessageHandle(byte tType, byte[] tData, byte[] bytes, Server tServer, IPEndPoint tSenderPoint) { uint userid = 0; uint roomid = 0; Protocol mType = (Protocol)tType; using (MemoryStream stream = new MemoryStream(tData)) { switch (mType) { case Protocol.ReqGameStart: ReqGameStart reqGameStart = Serializer.Deserialize <ReqGameStart>(stream); userid = reqGameStart.userid; roomid = reqGameStart.roomid; break; case Protocol.ReqStartMove: ReqStartMove reqStartMove = Serializer.Deserialize <ReqStartMove>(stream); userid = reqStartMove.userid; roomid = reqStartMove.roomid; break; case Protocol.ReqChangeDir: ReqChangeDir reqChangeDir = Serializer.Deserialize <ReqChangeDir>(stream); userid = reqChangeDir.userid; roomid = reqChangeDir.roomid; break; case Protocol.ReqEndMove: ReqEndMove reqEndMove = Serializer.Deserialize <ReqEndMove>(stream); userid = reqEndMove.userid; roomid = reqEndMove.roomid; break; } } if (userid != 0 && roomid != 0) { Room room = tServer.m_RoomManager.GetRoom(roomid); if (mType == Protocol.ReqGameStart) { room.HeroReady(userid, tSenderPoint); } else { if (room != null) { room.Receive(bytes, userid, tSenderPoint); } } } }