5
.接受登录成功后,接收GameSrv服务器发送的消息:
接收 GameGate发送的消息:CClientSocket::OnSocketMessage的FD_READ事件中,PacketQ.PushQ((BYTE*)pszPacket);把接收到的消息,压入PacketQ队列中。处理PacketQ队列数据是由
CGameProcess::Load()
时调用OnTimer在CGameProcess::OnTimer中处理的,
处理过程为:
OnMessageReceive;
ProcessPacket();
ProcessDefaultPacket();
OnMessageReceive
函数;
1.
判断是否收到心跳数据包,发送 '*',发送心跳数据包。
2.
调用 OnSocketMessageRecieve函数。这个函数里面详细处理了客户端的游戏执行逻辑。如果是‘+’开头(数据包)则调用OnProcPacketNotEncode处理这种类型数据包。否则得到_TDEFAULTMESSAGE数据包,进行游戏逻辑处理。
OnProcPacketNotEncode说明:
收到 GameSrv服务器的相应消息:
"GOOD":可以执行动作。 m_bMotionLock为假。
"FAIL":不允许执行动作。人物被拉回移动前位置。
"LNG":
"ULNG":
"WID":
<