void AShooterGameMode::PostLogin(APlayerController* NewPlayer) { Super::PostLogin(NewPlayer); // update spectator location for client AShooterPlayerController* NewPC = Cast<AShooterPlayerController>(NewPlayer); if (NewPC && NewPC->GetPawn() == NULL) { NewPC->ClientSetSpectatorCamera(NewPC->GetSpawnLocation(), NewPC->GetControlRotation()); } // notify new player if match is already in progress if (NewPC && IsMatchInProgress()) { NewPC->ClientGameStarted(); NewPC->ClientStartOnlineGame(); } }
void AShooterGameMode::HandleMatchHasStarted() { bNeedsBotCreation = true; Super::HandleMatchHasStarted(); AShooterGameState* const MyGameState = Cast<AShooterGameState>(GameState); MyGameState->RemainingTime = RoundTime; StartBots(); // notify players for (FConstControllerIterator It = GetWorld()->GetControllerIterator(); It; ++It) { AShooterPlayerController* PC = Cast<AShooterPlayerController>(*It); if (PC) { PC->ClientGameStarted(); } } }