void ANimModGameState::OnRestartTimerExpired() { GetWorld()->GetTimerManager().ClearTimer(restartHandle); if (ISSERVER) { UNimModGameInstance *gameInstance = Cast<UNimModGameInstance>(GetGameInstance()); if (gameInstance) { gameInstance->SaveTeamsForRoundRestart(this->Teams); } } UWorld *world = GetWorld(); if (world != nullptr) { for (FConstControllerIterator Iterator = world->GetControllerIterator(); Iterator; ++Iterator) { AController* Controller = *Iterator; ANimModPlayerController* PlayerController = Cast<ANimModPlayerController>(Controller); if (PlayerController) PlayerController->ClientRestartRound(); } } RestartRound(); UnfreezePlayers(); }
void TWorld::OnNewPlayer(size_t playerId) { TPlayer player; player.Id = playerId; player.Name = "noob"; player.Color = (Space::EColor)(playerId + 1); Players[player.Id] = player; if (Players.size() >= 2) { RestartRound(); } }
void TWorld::CheckRoundEnd() { std::unordered_set<int> playersLeft; for (size_t i = 0; i < (size_t)Planets.size(); ++i) { if (Planets[i].PlayerId == -1) { continue; } playersLeft.insert(Planets[i].PlayerId); } if (playersLeft.size() == 1) { // todo: lobby RestartRound(); } }
/* <36a3b6> ../cstrike/dlls/bot/cs_bot_manager.cpp:331 */ void CCSBotManager::__MAKE_VHOOK(ServerActivate)(void) { DestroyNavigationMap(); IMPLEMENT_ARRAY(m_isMapDataLoaded) = false; m_zoneCount = 0; m_gameScenario = SCENARIO_DEATHMATCH; ValidateMapData(); RestartRound(); IMPLEMENT_ARRAY(m_isLearningMap) = false; IMPLEMENT_ARRAY(m_isAnalysisRequested) = false; m_bServerActive = true; AddServerCommands(); TheBotPhrases->m_placeCount = 0; }