int NFCMasterNet_ServerModule::OnRefreshWorldInfoProcess(const int nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen) { NFGUID nPlayerID; NFMsg::ServerInfoReportList xMsg; if (!RecivePB(nSockIndex, nMsgID, msg, nLen, xMsg, nPlayerID)) { return 0; } for (int i = 0; i < xMsg.server_list_size(); ++i) { NFMsg::ServerInfoReport* pData = xMsg.mutable_server_list(i); NF_SHARE_PTR<ServerData> pServerData = mWorldMap.GetElement(pData->server_id()); if (!pServerData.get()) { pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData()); mWorldMap.AddElement(pData->server_id(), pServerData); } pServerData->nFD = nSockIndex; *(pServerData->pData) = *pData; m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, pData->server_id()), pData->server_name(), "RefreshWorldInfo"); } SynWorldToLogin(); return 0; }
int NFCWorldNet_ServerModule::OnProxyServerRegisteredProcess(const NFIPacket& msg) { NFIDENTID nPlayerID; NFMsg::ServerInfoReportList xMsg; if (!RecivePB(msg, xMsg, nPlayerID)) { return 0; } for (int i = 0; i < xMsg.server_list_size(); ++i) { NFMsg::ServerInfoReport* pData = xMsg.mutable_server_list(i); NF_SHARE_PTR<ServerData> pServerData = mProxyMap.GetElement(pData->server_id()); if (!pServerData) { pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData()); mProxyMap.AddElement(pData->server_id(), pServerData); } pServerData->nFD = msg.GetFd(); *(pServerData->pData) = *pData; m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFIDENTID(0, pData->server_id()), pData->server_name(), "Proxy Registered"); SynGameToProxy(msg.GetFd()); } return 0; }
int NFCMasterNet_ServerModule::OnWorldUnRegisteredProcess(const int nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen) { NFGUID nPlayerID; NFMsg::ServerInfoReportList xMsg; if (!RecivePB(nSockIndex, nMsgID, msg, nLen, xMsg, nPlayerID)) { return 0; } for (int i = 0; i < xMsg.server_list_size(); ++i) { NFMsg::ServerInfoReport* pData = xMsg.mutable_server_list(i); mWorldMap.RemoveElement(pData->server_id()); m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, pData->server_id()), pData->server_name(), "WorldUnRegistered"); } SynWorldToLogin(); return 0; }