Esempio n. 1
0
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();
}
Esempio n. 2
0
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();
    }
}
Esempio n. 3
0
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();
    }
}
Esempio n. 4
0
/* <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;
}