/** * Delegate fired when a session start request has completed * * @param SessionName the name of the session this callback is for * @param bWasSuccessful true if the async action completed without error, false if there was an error */ void URadeGameInstance::OnStartOnlineGameComplete(FName SessionName, bool bWasSuccessful) { //GEngine->AddOnScreenDebugMessage(-1, 10.f, FColor::Red, FString::Printf(TEXT("OnStartSessionComplete %s, %d"), *SessionName.ToString(), bWasSuccessful)); // Get the Online Subsystem so we can get the Session Interface IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get(); if (OnlineSub) { // Get the Session Interface to clear the Delegate IOnlineSessionPtr Sessions = OnlineSub->GetSessionInterface(); if (Sessions.IsValid()) { // Clear the delegate, since we are done with this call Sessions->ClearOnStartSessionCompleteDelegate_Handle(OnStartSessionCompleteDelegateHandle); } } // If the start was successful, we can open a NewMap if we want. Make sure to use "listen" as a parameter! if (bWasSuccessful) { //BattleArena UGameplayStatics::OpenLevel(GetWorld(), *TheMapName, true, "listen"); } }
void UOnlineSessionClient::OnStartSessionComplete(FName SessionName, bool bWasSuccessful) { UE_LOG(LogOnline, Verbose, TEXT("OnStartSessionComplete %s bSuccess: %d"), *SessionName.ToString(), bWasSuccessful); IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(GetWorld()); if (SessionInterface.IsValid()) { SessionInterface->ClearOnStartSessionCompleteDelegate_Handle(StartSessionCompleteHandle); } }
void UtrnetDemoGameInstance::OnStartOnlineGameComplete(FName SessionName, bool bWasSuccessful) { GEngine->AddOnScreenDebugMessage(-1, 10.f, FColor::Red, FString::Printf(TEXT("OnStartSessionComplete %s, %s"), *SessionName.ToString(), bWasSuccessful ? TEXT("sucess"): TEXT("fail"))); // Get the Session Interface to clear the Delegate IOnlineSessionPtr Sessions = GetSession(); if (Sessions.IsValid()) { // Clear the delegate, since we are done with this call Sessions->ClearOnStartSessionCompleteDelegate_Handle(OnStartSessionCompleteDelegateHandle); } // If the start was successful, we can open a NewMap if we want. Make sure to use "listen" as a parameter! if (bWasSuccessful) { UGameplayStatics::OpenLevel(GetWorld(), "ThirdPersonExampleMap", true, "listen"); } }
void UUModGameInstance::OnStartOnlineGameComplete(FName SessionName, bool bWasSuccessful) { GEngine->AddOnScreenDebugMessage(-1, 10.f, FColor::Red, FString::Printf(TEXT("OnStartSessionComplete %s, %d"), *SessionName.ToString(), bWasSuccessful)); IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get(); if (OnlineSub) { IOnlineSessionPtr Sessions = OnlineSub->GetSessionInterface(); if (Sessions.IsValid()) { Sessions->ClearOnStartSessionCompleteDelegate_Handle(OnStartSessionCompleteDelegateHandle); } } if (bWasSuccessful) { DelayedRunMap = true; } }