//设置人数 VOID CServerListData::SetServerOnLineCount(WORD wServerID, DWORD dwOnLineCount) { //搜索房间 CGameServerItem * pGameServerItem=SearchGameServer(wServerID); //设置人数 if (pGameServerItem!=NULL) { //设置变量 m_dwAllOnLineCount -= pGameServerItem->m_GameServer.dwOnLineCount; m_dwAllOnLineCount += dwOnLineCount; //设置变量 pGameServerItem->m_GameServer.dwOnLineCount=dwOnLineCount; //事件通知 ASSERT(m_pIServerListDataSink!=NULL); if (m_pIServerListDataSink!=NULL) m_pIServerListDataSink->OnGameItemUpdate(pGameServerItem); //查找类型 CGameKindItem * pGameKindItem = SearchGameKind(pGameServerItem->m_GameServer.wKindID); if(pGameKindItem) { //变量定义 DWORD dwGameKindOnline=0; POSITION Position=NULL; do { //获取房间 CGameServerItem * pGameServerItem2=EmunGameServerItem(Position); //设置房间 if((pGameServerItem2 != NULL) && (pGameServerItem2->m_GameServer.wKindID == pGameServerItem->m_GameServer.wKindID)) { dwGameKindOnline += pGameServerItem2->m_GameServer.dwOnLineCount; } } while (Position!=NULL); //设置变量 pGameKindItem->m_GameKind.dwOnLineCount = dwGameKindOnline; //事件通知 ASSERT(m_pIServerListDataSink!=NULL); if (m_pIServerListDataSink!=NULL) m_pIServerListDataSink->OnGameItemUpdate(pGameKindItem); } } return; }
//更新人数 bool __cdecl CServerListCenter::UpdateServerOnLineCount(WORD wKindID, WORD wServerID, DWORD dwOnLineCount) { tagGameServerItem * pGameServerItem=SearchGameServer(wKindID,wServerID); if (pGameServerItem!=NULL) { //更新房间 pGameServerItem->dwUpdateTime=(DWORD)time(NULL); pGameServerItem->GameServer.dwOnLineCount=dwOnLineCount; //更新人数 UpdateKindOnLineCount(wKindID); return true; } return false; }