void NFCWorldNet_ServerModule::OnRefreshDBServerInfoProcess(const NFSOCK nSockIndex, const int nMsgID, const char * msg, const uint32_t nLen) { NFGUID nPlayerID; NFMsg::ServerInfoReportList xMsg; if (!m_pNetModule->ReceivePB(nMsgID, msg, nLen, xMsg, nPlayerID)) { return; } for (int i = 0; i < xMsg.server_list_size(); ++i) { const NFMsg::ServerInfoReport& xData = xMsg.server_list(i); NF_SHARE_PTR<ServerData> pServerData = mDBMap.GetElement(xData.server_id()); if (!pServerData) { pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData()); mDBMap.AddElement(xData.server_id(), pServerData); } pServerData->nFD = nSockIndex; *(pServerData->pData) = xData; m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, xData.server_id()), xData.server_name(), "Proxy Registered"); SynDBToGame(nSockIndex); } }
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) { const NFMsg::ServerInfoReport& xData = xMsg.server_list(i); NF_SHARE_PTR<ServerData> pServerData = mWorldMap.GetElement(xData.server_id()); if (!pServerData.get()) { pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData()); mWorldMap.AddElement(xData.server_id(), pServerData); } pServerData->nFD = nSockIndex; *(pServerData->pData) = xData; m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, xData.server_id()), xData.server_name(), "RefreshWorldInfo"); } SynWorldToLogin(); return 0; }
void NFCWorldNet_ServerModule::OnGameServerUnRegisteredProcess(const NFSOCK nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen) { NFGUID nPlayerID; NFMsg::ServerInfoReportList xMsg; if (!m_pNetModule->ReceivePB( nMsgID, msg, nLen, xMsg, nPlayerID)) { return; } for (int i = 0; i < xMsg.server_list_size(); ++i) { const NFMsg::ServerInfoReport& xData = xMsg.server_list(i); mGameMap.RemoveElement(xData.server_id()); m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, xData.server_id()), xData.server_name(), "GameServerRegistered"); } }
void NFCProxyServerToWorldModule::OnServerInfoProcess(const NFSOCK nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen) { NFGUID nPlayerID; NFMsg::ServerInfoReportList xMsg; if (!NFINetModule::ReceivePB( nMsgID, msg, nLen, xMsg, nPlayerID)) { return; } for (int i = 0; i < xMsg.server_list_size(); ++i) { const NFMsg::ServerInfoReport& xData = xMsg.server_list(i); //type ConnectData xServerData; xServerData.nGameID = xData.server_id(); xServerData.strIP = xData.server_ip(); xServerData.nPort = xData.server_port(); xServerData.strName = xData.server_name(); //xServerData.eState = pData->server_state(); xServerData.eServerType = (NF_SERVER_TYPES)xData.server_type(); switch (xServerData.eServerType) { case NF_SERVER_TYPES::NF_ST_GAME: { m_pNetClientModule->AddServer(xServerData); } break; case NF_SERVER_TYPES::NF_ST_WORLD: { m_pNetClientModule->AddServer(xServerData); } break; default: break; } } }
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) { const NFMsg::ServerInfoReport& xData = xMsg.server_list(i); mWorldMap.RemoveElement(xData.server_id()); m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, xData.server_id()), xData.server_name(), "WorldUnRegistered"); } SynWorldToLogin(); return 0; }
void NFCWorldNet_ServerModule::OnServerInfoProcess(const NFSOCK nSockIndex, const int nMsgID, const char * msg, const uint32_t nLen) { NFGUID nPlayerID; NFMsg::ServerInfoReportList xMsg; if (!NFINetModule::ReceivePB(nMsgID, msg, nLen, xMsg, nPlayerID)) { return; } for (int i = 0; i < xMsg.server_list_size(); ++i) { const NFMsg::ServerInfoReport& xData = xMsg.server_list(i); if (xData.server_type() == NF_SERVER_TYPES::NF_ST_WORLD) { NF_SHARE_PTR<ServerData> pServerData = mWorldMap.GetElement(xData.server_id()); if (!pServerData) { pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData()); mWorldMap.AddElement(xData.server_id(), pServerData); } pServerData->nFD = nSockIndex; *(pServerData->pData) = xData; m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, xData.server_id()), xData.server_name(), "GameServerRegistered"); } } //sync to proxy SynWorldToProxy(); //sync to game SynWorldToGame(); }