private void HandleQuitRoom(NodeMessage msg, int handle, uint seq)
{
GameFrameworkMessage.NodeMessageWithGuid headerMsg = msg.m_NodeHeader as GameFrameworkMessage.NodeMessageWithGuid;
if (null != headerMsg) {
GameFrameworkMessage.QuitRoom protoMsg = msg.m_ProtoData as GameFrameworkMessage.QuitRoom;
if (null != protoMsg) {
ulong guid = headerMsg.m_Guid;
bool is_quit_room = protoMsg.m_IsQuitRoom;
byte[] originalMsgData = msg.m_OriginalMsgData;
UserInfo user = UserServer.Instance.UserProcessScheduler.GetUserInfo(guid);
if (user != null) {
if (user.CurrentState == UserState.Room) {
UserServer.Instance.ForwardToBigworld(user, originalMsgData);
} else {
user.CurrentState = UserState.Online;
}
LogSys.Log(LOG_TYPE.INFO, "QuitRoom Guid {0} state {1}", guid, user.CurrentState);
}
}
}
}