From af27cfe6c766f265de7ccd3df56e4a2e97f65d3e Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 30 Aug 2022 05:42:39 +0300 Subject: [PATCH] wip --- Localization/INT/MSKGS.int | Bin 1092 -> 1050 bytes Localization/RUS/MSKGS.rus | Bin 1042 -> 1000 bytes MSKGS-SRV/Classes/CfgSrvRank.uc | 7 ++++--- MSKGS-SRV/Classes/CfgXPBoost.uc | 18 ++++++++++++----- MSKGS-SRV/Classes/MSKGS.uc | 1 + MSKGS-SRV/Classes/MSKGS_GameInfo.uc | 20 +++++++++++-------- MSKGS/Classes/MSKGS_RepInfo.uc | 30 ++++++++++++++++++++++++---- builder.cfg | 2 +- 8 files changed, 57 insertions(+), 21 deletions(-) diff --git a/Localization/INT/MSKGS.int b/Localization/INT/MSKGS.int index 08e2f5dd652224ba2ccb347a92054c75f85aace0..87a9137a27d455e17a7c4da25d6be1bd99a66adf 100644 GIT binary patch delta 29 lcmX@YF^gkE7SrSkrY2Tf1|^1o$s3tPCo3_>P3~jf1^|h~2^s(Z delta 59 tcmbQmafD+-789=vLn=cWLn1>dLk>g9b!G?CX#mE1^bCMPoQ1OU(j548XQ diff --git a/Localization/RUS/MSKGS.rus b/Localization/RUS/MSKGS.rus index a30001671d837bbab36d67a4146a87c470242c8f..150a1c7252e5995e4eca5dd0ca9172a7f9a94cc2 100644 GIT binary patch delta 19 bcmbQl@q&GW71Lx7rk=@MP*FfRfCNqGl; delta 59 tcmaFCK8a(46%(%uLn=cWLn1>dLk>g9WJ{)AG?AlBjoe6TCOb1P1pvf14=Mlv diff --git a/MSKGS-SRV/Classes/CfgSrvRank.uc b/MSKGS-SRV/Classes/CfgSrvRank.uc index 58b3912..d356b72 100644 --- a/MSKGS-SRV/Classes/CfgSrvRank.uc +++ b/MSKGS-SRV/Classes/CfgSrvRank.uc @@ -2,9 +2,10 @@ class CfgSrvRank extends Object config(MSKGS) abstract; -var public config bool bAuto; -var public config bool bCustom; -var public config bool bUsesStats; +var public config bool bAuto; +var public config bool bCustom; +var public config bool bUsesStats; +var public config String PasswdText; public static function InitConfig(int Version, int LatestVersion, E_LogLevel LogLevel) { diff --git a/MSKGS-SRV/Classes/CfgXPBoost.uc b/MSKGS-SRV/Classes/CfgXPBoost.uc index 29b60d2..2302f3e 100644 --- a/MSKGS-SRV/Classes/CfgXPBoost.uc +++ b/MSKGS-SRV/Classes/CfgXPBoost.uc @@ -16,6 +16,7 @@ var public config String HexColorPlayer; var public config String HexColorLeave; var public config int CheckGroupTimer; +var public config int MaxRetries; public static function InitConfig(int Version, int LatestVersion, E_LogLevel LogLevel) { @@ -72,7 +73,13 @@ public static function Load(E_LogLevel LogLevel) if (default.CheckGroupTimer < 0) { `Log_Error("CheckGroupTimer" @ "(" $ default.CheckGroupTimer $ ")" @ "must be equal or greater than 0"); - default.CheckGroupTimer = 0; + default.CheckGroupTimer = 1; + } + + if (default.MaxRetries < 0) + { + `Log_Error("MaxRetries" @ "(" $ default.MaxRetries $ ")" @ "must be equal or greater than 0"); + default.MaxRetries = 60; } if (!IsValidHexColor(default.HexColorOwner, LogLevel)) @@ -112,13 +119,14 @@ private static function ApplyDefault(E_LogLevel LogLevel) default.BoostGroup = 10; default.BoostPlayer = 0; - default.HexColorOwner = "00FF00"; - default.HexColorAdmin = "00FF00"; + default.HexColorOwner = "0099FF"; + default.HexColorAdmin = "FF0000"; default.HexColorGroup = "00FF00"; default.HexColorPlayer = "FFFFFF"; - default.HexColorLeave = "FF0000"; + default.HexColorLeave = "FFFF00"; - default.CheckGroupTimer = 0; + default.CheckGroupTimer = 2; + default.MaxRetries = 60; } private static function bool IsValidHexColor(String HexColor, E_LogLevel LogLevel) diff --git a/MSKGS-SRV/Classes/MSKGS.uc b/MSKGS-SRV/Classes/MSKGS.uc index 7c1d289..37d756e 100644 --- a/MSKGS-SRV/Classes/MSKGS.uc +++ b/MSKGS-SRV/Classes/MSKGS.uc @@ -413,6 +413,7 @@ public function MSKGS_RepInfo CreateRepInfo(Controller C) Self, GroupID, CfgXPBoost.default.CheckGroupTimer, + CfgXPBoost.default.MaxRetries, C.PlayerReplicationInfo.UniqueId == OwnerID); RepInfos.AddItem(RepInfo); diff --git a/MSKGS-SRV/Classes/MSKGS_GameInfo.uc b/MSKGS-SRV/Classes/MSKGS_GameInfo.uc index 51cfee2..ff6682f 100644 --- a/MSKGS-SRV/Classes/MSKGS_GameInfo.uc +++ b/MSKGS-SRV/Classes/MSKGS_GameInfo.uc @@ -5,11 +5,11 @@ const CfgXPBoost = class'CfgXPBoost'; const CfgSrvRank = class'CfgSrvRank'; public static function UpdateGameSettings( -KFGameInfo_Survival KFGI, -String GameModeClass, -IMSKGS MSKGS, -bool bCustomGame, -bool bUsesStats) + KFGameInfo_Survival KFGI, + String GameModeClass, + IMSKGS MSKGS, + bool bCustomGame, + bool bUsesStats) { local name SessionName; local KFOnlineGameSettings KFGameSettings; @@ -74,17 +74,21 @@ bool bUsesStats) KFGameSettings.NumWaves = KFGI.WaveMax - 1; } - if (MSKGS == None || !MSKGS.GetXPNotifications() || MSKGS.GetXPBoost() <= 0) + if (KFGI.RequiresPassword() && CfgSrvRank.default.PasswdText != "") + { + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName @ "|" @ CfgSrvRank.default.PasswdText; + } + else if (MSKGS == None || !MSKGS.GetXPNotifications() || MSKGS.GetXPBoost() <= 0) { KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName; } else if (MSKGS.GetXPBoost() >= CfgXPBoost.default.MaxBoost) { - KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName $ " | +" $ CfgXPBoost.default.MaxBoost $ "% XP"; + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName @ "| +" $ CfgXPBoost.default.MaxBoost $ "% XP"; } else { - KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName $ " | +" $ MSKGS.GetXPBoost() $ "% XP"; + KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName @ "| +" $ MSKGS.GetXPBoost() $ "% XP"; } KFGameSettings.NumPublicConnections = KFGI.MaxPlayersAllowed; diff --git a/MSKGS/Classes/MSKGS_RepInfo.uc b/MSKGS/Classes/MSKGS_RepInfo.uc index 1f9b6af..a98dd19 100644 --- a/MSKGS/Classes/MSKGS_RepInfo.uc +++ b/MSKGS/Classes/MSKGS_RepInfo.uc @@ -19,10 +19,13 @@ var private bool Admin; var private repnotify E_LogLevel LogLevel; var private repnotify UniqueNetId GroupID; var private repnotify float CheckGroupTimer; +var private repnotify int MaxRetries; +var private int Retries; var private bool ObtainLogLevel; var private bool ObtainGroupID; var private bool ObtainCheckGroupTimer; +var private bool ObtainMaxRetries; var private KFPlayerController KFPC; var private OnlineSubsystemSteamworks OSS; @@ -30,7 +33,7 @@ var private OnlineSubsystemSteamworks OSS; replication { if (bNetInitial) - LogLevel, GroupID, CheckGroupTimer, ServerOwner; + LogLevel, GroupID, CheckGroupTimer, MaxRetries, ServerOwner; } public simulated event ReplicatedEvent(name VarName) @@ -45,12 +48,17 @@ public simulated event ReplicatedEvent(name VarName) break; case 'GroupID': - ObtainGroupID = true; + ObtainGroupID = true; CheckGroupMembership(); break; case 'CheckGroupTimer': - ObtainCheckGroupTimer = true; + ObtainCheckGroupTimer = true; + CheckGroupMembership(); + break; + + case 'MaxRetries': + ObtainMaxRetries = true; CheckGroupMembership(); break; @@ -65,12 +73,14 @@ public function Init( IMSKGS _MSKGS, UniqueNetId _GroupID, float _CheckGroupTimer, + float _MaxRetries, bool _ServerOwner) { LogLevel = _LogLevel; MSKGS = _MSKGS; GroupID = _GroupID; CheckGroupTimer = _CheckGroupTimer; + MaxRetries = _MaxRetries; ServerOwner = _ServerOwner; `Log_Trace(); @@ -104,11 +114,19 @@ private simulated function CheckGroupMembership() `Log_Trace(); if (WorldInfo.NetMode == NM_StandAlone - || (ObtainLogLevel && ObtainGroupID && ObtainCheckGroupTimer && Role < ROLE_Authority)) + || (ObtainLogLevel && ObtainGroupID && ObtainCheckGroupTimer && ObtainMaxRetries && Role < ROLE_Authority)) { if (GetKFPC() != None && KFPC.bIsEosPlayer) { `Log_Debug("EGS Player, skip group check"); + ClearTimer(nameof(CheckGroupMembership)); + return; + } + + if (Retries++ >= MaxRetries) + { + `Log_Info("Stop checking group membership due to MaxRetries"); + ClearTimer(nameof(CheckGroupMembership)); return; } @@ -121,6 +139,7 @@ private simulated function CheckGroupMembership() { if (OSS.CheckPlayerGroup(GroupID)) { + `Log_Info("Obtain membership (retries:" @ Retries $ "), notify server"); ClearTimer(nameof(CheckGroupMembership)); GroupMember = true; ServerApplyMembership(); @@ -298,4 +317,7 @@ defaultproperties ObtainLogLevel = false; ObtainGroupID = false; ObtainCheckGroupTimer = false; + ObtainMaxRetries = false; + + Retries = 0 } \ No newline at end of file diff --git a/builder.cfg b/builder.cfg index c3ad626..1924fed 100644 --- a/builder.cfg +++ b/builder.cfg @@ -16,7 +16,7 @@ PackageBuildOrder="MSKGS MSKGS-SRV" # Mutators that will be uploaded to the workshop # Specify them with a space as a separator, # The order doesn't matter -PackageUpload="MSKGS MSKGS-SRV" +PackageUpload="MSKGS" ### Test parameters ###