void CTDMServer::endGame() { _inEndGame = true; // Tiempo de espera hasta la siguiente partida _gameTime = _voteMap ? 40000 : 15000; // Notificar a los clientes de que estamos en la fase endGame Net::NetMessageType endGameMsg = Net::END_GAME; _netMgr->broadcast( &endGameMsg, sizeof(endGameMsg) ); // Desactivamos los componentes relevantes en el servidor para asegurarnos // de que aunque el cliente haga chetos no se muevan los jugadores sin permiso // ni se hagan daño. Logic::CEntity* player; std::vector<std::string> componentList; componentList.reserve(4); componentList.push_back("CAvatarController"); componentList.push_back("CPhysicController"); componentList.push_back("CLife"); componentList.push_back("CSpawnPlayer"); for(auto it = _playersMgr->begin(); it != _playersMgr->end(); ++it) { if( it->getEntityId().second ) { player = _map->getEntityByID( it->getEntityId().first ); player->deactivateComponents(componentList); } } // @todo // Parar la partida (el server y el cliente ya no hacen tick) // Poner la cámara mirando al jugador y que al girar el ratón rote alrededor // del player - cliente // Poner la cámara de los demás jugadores mirando al ganador - cliente // Mostrar el scoreboard durante unos 10 segundos - cliente // Si votemap está activo mostrar el menú de votemap durante unos 30 segs // Si votemap no está activo entonces pasar al siguiente mapa de los configurados // y si no ha habido ningun mapa puesto en lista salir }