From c9f410adc182dcc92c8adc1c6c923d25d11b300d Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Wed, 27 Apr 2022 22:19:55 +0200 Subject: [PATCH] Added some stuff --- Config/DefaultEngine.ini | 18 ++++++- Config/DefaultGame.ini | 8 +++ Content/Maps/GameStartupMap.umap | Bin 0 -> 54830 bytes Content/Maps/Lobby.umap | Bin 0 -> 43891 bytes .../MultiplayerSessions/Private/Menu.cpp | 19 ++++++- .../Private/MultiplayerSessionsSubsystem.cpp | 50 +++++++++++++++++- .../Source/MultiplayerSessions/Public/Menu.h | 3 +- .../Public/MultiplayerSessionsSubsystem.h | 4 ++ 8 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 Content/Maps/GameStartupMap.umap create mode 100644 Content/Maps/Lobby.umap diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index b5ff937..e7739b4 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -1,8 +1,8 @@ [/Script/EngineSettings.GameMapsSettings] -GameDefaultMap=/Engine/Maps/Templates/OpenWorld - +GameDefaultMap=/Game/Maps/GameStartupMap.GameStartupMap +EditorStartupMap=/Game/Maps/GameStartupMap.GameStartupMap [/Script/HardwareTargeting.HardwareTargetingSettings] TargetedHardwareClass=Desktop @@ -41,3 +41,17 @@ ConnectionType=USBOnly bUseManualIPAddress=False ManualIPAddress= +[/Script/Engine.GameEngine] ++NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") + +[OnlineSubsystem] +DefaultPlatformService=Steam + +[OnlineSubsystemSteam] +bEnabled=true +SteamDevAppId=480 +bInitServerOnClient=true + +[/Script/OnlineSubsystemSteam.SteamNetDriver] +NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" + diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index 866291b..b767302 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -1,3 +1,11 @@ + [/Script/EngineSettings.GeneralProjectSettings] ProjectID=DD573C214B328A1AEDE15DA9E4FBD4B4 + +[/Script/Engine.GameSession] +MaxPlayers=100 + +[/Script/UnrealEd.ProjectPackagingSettings] ++MapsToCook=(FilePath="/Game/Maps/Lobby") ++MapsToCook=(FilePath="/Game/Maps/GameStartupMap") \ No newline at end of file diff --git a/Content/Maps/GameStartupMap.umap b/Content/Maps/GameStartupMap.umap new file mode 100644 index 0000000000000000000000000000000000000000..1580559b81c9205164eb936457011ebd4ba685d0 GIT binary patch literal 54830 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 A;Q#;t literal 0 HcmV?d00001 diff --git a/Content/Maps/Lobby.umap b/Content/Maps/Lobby.umap new file mode 100644 index 0000000000000000000000000000000000000000..46d4476f0c4ebe4248d2a8cbd235c491eab3ab11 GIT binary patch literal 43891 zcmeHw34ByV@_$DG5d{SA`9B}Jz2M->ca;y;TjuGNpDsgn6&uz

vUjLVA+Z9&bg=mV>wxa2=>#+ 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%0AKFKszH|;8)+49W2M6$Yo(B6h=p$U?ekb0}0XPoS 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"/Game/ThirdPerson/Maps/Lobby?listen")); + World->ServerTravel(FString(PathToLobby)); } } else @@ -102,6 +103,7 @@ void UMenu::OnCreateSession(bool bWasSuccessful) FColor::Red, FString(TEXT("Failed to create session!"))); } + HostButton->SetIsEnabled(true); } } @@ -122,6 +124,10 @@ void UMenu::OnFindSessions(const TArray& SessionResu return; } } + if (!bWasSuccessful || SessionResults.Num() == 0) + { + JoinButton->SetIsEnabled(true); + } } void UMenu::OnJoinSession(EOnJoinSessionCompleteResult::Type Result) @@ -143,6 +149,11 @@ void UMenu::OnJoinSession(EOnJoinSessionCompleteResult::Type Result) } } } + + if (Result != EOnJoinSessionCompleteResult::Success) + { + JoinButton->SetIsEnabled(true); + } } void UMenu::OnDestroySession(bool bWasSuccessful) @@ -155,6 +166,8 @@ void UMenu::OnStartSession(bool bWasSuccessful) void UMenu::HostButtonClicked() { + HostButton->SetIsEnabled(false); + if (MultiplayerSessionsSubsystem) { MultiplayerSessionsSubsystem->CreateSession(NumPublicConnections, MatchType); @@ -163,6 +176,8 @@ void UMenu::HostButtonClicked() void UMenu::JoinButtonClicked() { + JoinButton->SetIsEnabled(false); + if (MultiplayerSessionsSubsystem) { MultiplayerSessionsSubsystem->FindSessions(10000); diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessionsSubsystem.cpp b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessionsSubsystem.cpp index 30561ca..f366c88 100644 --- a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessionsSubsystem.cpp +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessionsSubsystem.cpp @@ -31,7 +31,11 @@ void UMultiplayerSessionsSubsystem::CreateSession(int32 NumPublicConnections, FS auto ExistingSession = SessionInterface->GetNamedSession(NAME_GameSession); if (ExistingSession != nullptr) { - SessionInterface->DestroySession(NAME_GameSession); + bCreateSessionOnDestroy = true; + LastNumPublicConnections = NumPublicConnections; + LastMatchType = MatchType; + + DestroySession(); } // Store the delegate in a FDelegateHandle so we can later remove it from the delegate list @@ -102,10 +106,36 @@ void UMultiplayerSessionsSubsystem::JoinSession(const FOnlineSessionSearchResult void UMultiplayerSessionsSubsystem::DestroySession() { + if (!SessionInterface.IsValid()) + { + MultiplayerOnDestroySessionComplete.Broadcast(false); + return; + } + + DestroySessionCompleteDelegateHandle = SessionInterface->AddOnDestroySessionCompleteDelegate_Handle(DestroySessionCompleteDelegate); + + if (!SessionInterface->DestroySession(NAME_GameSession)) + { + SessionInterface->ClearOnDestroySessionCompleteDelegate_Handle(DestroySessionCompleteDelegateHandle); + MultiplayerOnDestroySessionComplete.Broadcast(false); + } } void UMultiplayerSessionsSubsystem::StartSession() { + if (!SessionInterface.IsValid()) + { + return; + } + + StartSessionCompleteDelegateHandle = SessionInterface->AddOnStartSessionCompleteDelegate_Handle(StartSessionCompleteDelegate); + + if (!SessionInterface->StartSession(NAME_GameSession)) + { + SessionInterface->ClearOnStartSessionCompleteDelegate_Handle(StartSessionCompleteDelegateHandle); + + MultiplayerOnStartSessionComplete.Broadcast(false); + } } void UMultiplayerSessionsSubsystem::OnCreateSessionComplete(FName SessionName, bool bWasSuccessful) @@ -146,8 +176,26 @@ void UMultiplayerSessionsSubsystem::OnJoinSessionComplete(FName SessionName, EOn void UMultiplayerSessionsSubsystem::OnDestroySessionComplete(FName SessionName, bool bWasSuccessful) { + if (SessionInterface) + { + SessionInterface->ClearOnDestroySessionCompleteDelegate_Handle(DestroySessionCompleteDelegateHandle); + } + + if (bWasSuccessful && bCreateSessionOnDestroy) + { + bCreateSessionOnDestroy = false; + CreateSession(LastNumPublicConnections, LastMatchType); + } + + MultiplayerOnDestroySessionComplete.Broadcast(bWasSuccessful); } void UMultiplayerSessionsSubsystem::OnStartSessionComplete(FName SessionNAme, bool bWasSuccessful) { + if (SessionInterface) + { + SessionInterface->ClearOnStartSessionCompleteDelegate_Handle(StartSessionCompleteDelegateHandle); + } + + MultiplayerOnStartSessionComplete.Broadcast(bWasSuccessful); } diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/Menu.h b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/Menu.h index a53cbd5..93359b7 100644 --- a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/Menu.h +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/Menu.h @@ -18,7 +18,7 @@ class MULTIPLAYERSESSIONS_API UMenu : public UUserWidget public: UFUNCTION(BlueprintCallable) - void MenuSetup(int32 NumberOfPublicConnections = 4, FString TypeOfMatch = FString(TEXT("FreeForAll"))); + void MenuSetup(int32 NumberOfPublicConnections = 4, FString TypeOfMatch = FString(TEXT("FreeForAll")), FString LobbyPath = FString(TEXT("/Game/ThirdPerson/Maps/Lobby"))); protected: @@ -58,4 +58,5 @@ private: int32 NumPublicConnections {4}; FString MatchType {TEXT("FreeForAll")}; + FString PathToLobby { TEXT("")}; }; diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessionsSubsystem.h b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessionsSubsystem.h index 7db1c11..c975cae 100644 --- a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessionsSubsystem.h +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessionsSubsystem.h @@ -78,4 +78,8 @@ private: FDelegateHandle DestroySessionCompleteDelegateHandle; FOnStartSessionCompleteDelegate StartSessionCompleteDelegate; FDelegateHandle StartSessionCompleteDelegateHandle; + + bool bCreateSessionOnDestroy { false }; + int32 LastNumPublicConnections; + FString LastMatchType; };