From cb1fb566afd46d41198811aa0df02a2ca782bf64 Mon Sep 17 00:00:00 2001 From: Mikhail Tyukin Date: Tue, 24 Jun 2025 19:17:53 +0400 Subject: [PATCH] update game version, push changes --- EpinelPS/Controllers/LauncherController.cs | 1 + EpinelPS/Database/JsonDb.cs | 2 ++ .../LobbyServer/Intercept/GetInterceptData.cs | 9 +++++---- .../LobbyServer/Intercept/InterceptClear.cs | 18 +++++++++++++++--- .../LobbyServer/Intercept/InterceptEnter.cs | 3 +++ .../Intercept/InterceptFastClear.cs | 7 ++++--- EpinelPS/LobbyServer/LobbyMsgHandler.cs | 10 ++++++++++ EpinelPS/Utils/AdminCommands.cs | 4 ++-- EpinelPS/gameversion.json | 18 +++++++++--------- 9 files changed, 51 insertions(+), 21 deletions(-) diff --git a/EpinelPS/Controllers/LauncherController.cs b/EpinelPS/Controllers/LauncherController.cs index 495e4d8..7e088fd 100644 --- a/EpinelPS/Controllers/LauncherController.cs +++ b/EpinelPS/Controllers/LauncherController.cs @@ -102,6 +102,7 @@ namespace EpinelPS.Controllers public class LauncherVersionRequest { public int game_id {get;set;} + public int branch_id { get; set; } } } } diff --git a/EpinelPS/Database/JsonDb.cs b/EpinelPS/Database/JsonDb.cs index b412740..15735c4 100644 --- a/EpinelPS/Database/JsonDb.cs +++ b/EpinelPS/Database/JsonDb.cs @@ -590,6 +590,8 @@ namespace EpinelPS.Database public byte[] LauncherTokenKey = []; public byte[] EncryptionTokenKey = []; public LogType LogLevel = LogType.Debug; + + public int MaxInterceptionCount = 3; } internal class JsonDb { diff --git a/EpinelPS/LobbyServer/Intercept/GetInterceptData.cs b/EpinelPS/LobbyServer/Intercept/GetInterceptData.cs index 8633dfd..9ea5d5c 100644 --- a/EpinelPS/LobbyServer/Intercept/GetInterceptData.cs +++ b/EpinelPS/LobbyServer/Intercept/GetInterceptData.cs @@ -1,4 +1,5 @@ -using EpinelPS.Utils; +using EpinelPS.Database; +using EpinelPS.Utils; namespace EpinelPS.LobbyServer.Intercept { @@ -12,9 +13,9 @@ namespace EpinelPS.LobbyServer.Intercept var response = new ResGetInterceptData { NormalInterceptGroup = 1, - SpecialInterceptId = 1, - TicketCount = 5, - MaxTicketCount = 10 + SpecialInterceptId = 1, // TODO switch this out each reset + TicketCount = User.ResetableData.InterceptionTickets, + MaxTicketCount = JsonDb.Instance.MaxInterceptionCount }; await WriteDataAsync(response); diff --git a/EpinelPS/LobbyServer/Intercept/InterceptClear.cs b/EpinelPS/LobbyServer/Intercept/InterceptClear.cs index 8f21eb2..fd24f2a 100644 --- a/EpinelPS/LobbyServer/Intercept/InterceptClear.cs +++ b/EpinelPS/LobbyServer/Intercept/InterceptClear.cs @@ -1,3 +1,4 @@ +using EpinelPS.Database; using EpinelPS.Utils; namespace EpinelPS.LobbyServer.Intercept @@ -9,18 +10,29 @@ namespace EpinelPS.LobbyServer.Intercept { var req = await ReadData(); var user = GetUser(); + + if (user.ResetableData.InterceptionTickets == 0) + { + Logging.WriteLine("Attempted to clear interception when 0 tickets remain", LogType.WarningAntiCheat); + + } var sRes = InterceptionHelper.Clear(user, req.Intercept, req.InterceptId, req.Damage); + + user.ResetableData.InterceptionTickets--; var response = new ResClearIntercept { Intercept = req.Intercept, InterceptId = req.InterceptId, - TicketCount = 5, - MaxTicketCount = 10, + TicketCount = user.ResetableData.InterceptionTickets, + MaxTicketCount = JsonDb.Instance.MaxInterceptionCount, NormalReward = sRes.NormalReward, - }; + user.AddTrigger(Data.TriggerType.InterceptClear, 1); + + JsonDb.Save(); + await WriteDataAsync(response); } } diff --git a/EpinelPS/LobbyServer/Intercept/InterceptEnter.cs b/EpinelPS/LobbyServer/Intercept/InterceptEnter.cs index 61cba62..68cf515 100644 --- a/EpinelPS/LobbyServer/Intercept/InterceptEnter.cs +++ b/EpinelPS/LobbyServer/Intercept/InterceptEnter.cs @@ -8,9 +8,12 @@ namespace EpinelPS.LobbyServer.Intercept protected override async Task HandleAsync() { var req = await ReadData(); + var user = GetUser(); var response = new ResEnterIntercept(); + user.AddTrigger(Data.TriggerType.InterceptStart, 1); + await WriteDataAsync(response); } } diff --git a/EpinelPS/LobbyServer/Intercept/InterceptFastClear.cs b/EpinelPS/LobbyServer/Intercept/InterceptFastClear.cs index 42a669b..15a027e 100644 --- a/EpinelPS/LobbyServer/Intercept/InterceptFastClear.cs +++ b/EpinelPS/LobbyServer/Intercept/InterceptFastClear.cs @@ -1,3 +1,4 @@ +using EpinelPS.Database; using EpinelPS.Utils; namespace EpinelPS.LobbyServer.Intercept @@ -11,9 +12,9 @@ namespace EpinelPS.LobbyServer.Intercept var response = new ResFastClearIntercept { - TicketCount = 3, - MaxTicketCount = 10, - Damage = 2 + TicketCount = User.ResetableData.InterceptionTickets, + MaxTicketCount = JsonDb.Instance.MaxInterceptionCount, + Damage = 0 }; await WriteDataAsync(response); diff --git a/EpinelPS/LobbyServer/LobbyMsgHandler.cs b/EpinelPS/LobbyServer/LobbyMsgHandler.cs index 9fdc29f..59f31bf 100644 --- a/EpinelPS/LobbyServer/LobbyMsgHandler.cs +++ b/EpinelPS/LobbyServer/LobbyMsgHandler.cs @@ -14,6 +14,16 @@ namespace EpinelPS.LobbyServer public byte[] ReturnBytes = []; public byte[] Contents = []; + public User User + { + get + { + if (UserId == 0) throw new UnauthorizedAccessException(); + + return JsonDb.GetUser(UserId) ?? throw new InvalidDataException(); + } + } + /// /// Call before calling HandleAsync /// diff --git a/EpinelPS/Utils/AdminCommands.cs b/EpinelPS/Utils/AdminCommands.cs index 4c83bb4..37b71c2 100644 --- a/EpinelPS/Utils/AdminCommands.cs +++ b/EpinelPS/Utils/AdminCommands.cs @@ -420,13 +420,13 @@ namespace EpinelPS.Utils if (staticDataHttpResponse == null) { Console.WriteLine($"failed to post {url}"); - return default(T); + return default; } if (!staticDataHttpResponse.IsSuccessStatusCode) { Console.WriteLine($"POST {url} failed with {staticDataHttpResponse.StatusCode}"); - return default(T); + return default; } byte[] staticDataHttpResponseBytes = await staticDataHttpResponse.Content.ReadAsByteArrayAsync(); diff --git a/EpinelPS/gameversion.json b/EpinelPS/gameversion.json index ede143c..e1c9a08 100644 --- a/EpinelPS/gameversion.json +++ b/EpinelPS/gameversion.json @@ -6,18 +6,18 @@ "version_info": { "game_id": "16601", "branch_id": "1", - "version_id": "0.0.0.51", - "version_name": "NIKKE.PC_Offcial_GL_134.8.13", + "version_id": "0.0.0.52", + "version_name": "NIKKE.PC_Offcial_GL_134.12.5", "version_status": 7, "service_status": 0, - "build_id": "3020", - "cos_repo_files": "[{\"cdn_root\":\"https://cloud.nikke-kr.com/PC/prod/rid.48-r.02587\",\"chunk_encrypt_flag\":0,\"manifest_files\":[{\"chunks\":[{\"chunk_index\":0,\"chunk_md5\":\"bc7b45d953ee4929def7aa8f68c209f5\",\"chunk_size\":111552,\"chunk_uncompress_md5\":\"bc7b45d953ee4929def7aa8f68c209f5\",\"chunk_uncompress_size\":111552}],\"file_url\":\"/manifestv2/48_5937488248518577280_0.manifest\",\"manifest_md5\":\"bc7b45d953ee4929def7aa8f68c209f5\",\"manifest_size\":111552}],\"manifest_flag\":13,\"manifest_id\":5937488248518577000,\"manifest_version\":2,\"patch_size\":95550949,\"repository_desc\":{\"zh_CN\":\"game repo\"},\"repository_id\":48,\"repository_name\":{\"en_US\":\"Game\",\"zh_CN\":\"Game\"},\"repository_size\":352461033,\"repository_type\":\"Game\",\"repository_uncompress_size\":790247240}]", - "cos_access_info": "[{\"repository_id\":48,\"repository_type\":\"Game\",\"repository_name\":\"Game\",\"repository_name_en\":\"Game\",\"description\":\"game repo\",\"cos_list\":[{\"public_cdn_domain\":\"https://cloud.nikke-kr.com\"}],\"encrytion_key\":\"158f36bf7e611c945320c399294c4a6d\",\"encrytion_algorithm_id\":6,\"manifest_encrytion_key\":\"0f448b096bb4dc5b339debdce77c4572\",\"manifest_encrytion_algorithm_id\":6,\"game_id\":16601,\"manifest_id\":5937488248518577663}]", - "key_file_info": "[{\"crc\":635045207,\"path\":\"NIKKE\\\\game\\\\nikke.exe\"}]", + "build_id": "3028", + "cos_repo_files": "[{\"cdn_root\":\"https://cloud.nikke-kr.com/PC/prod/rid.48-r.02587\",\"chunk_encrypt_flag\":0,\"manifest_files\":[{\"chunks\":[{\"chunk_index\":0,\"chunk_md5\":\"733b7a0aba8b4aa4817ce9ebb7e40ea4\",\"chunk_size\":114328,\"chunk_uncompress_md5\":\"733b7a0aba8b4aa4817ce9ebb7e40ea4\",\"chunk_uncompress_size\":114328}],\"file_url\":\"/manifestv2/48_5937488248518581082_0.manifest\",\"manifest_md5\":\"733b7a0aba8b4aa4817ce9ebb7e40ea4\",\"manifest_size\":114328}],\"manifest_flag\":13,\"manifest_id\":5937488248518581000,\"manifest_version\":2,\"patch_size\":99114613,\"repository_desc\":{\"zh_CN\":\"game repo\"},\"repository_id\":48,\"repository_name\":{\"en_US\":\"Game\",\"zh_CN\":\"Game\"},\"repository_size\":361649767,\"repository_type\":\"Game\",\"repository_uncompress_size\":854972912}]", + "cos_access_info": "[{\"repository_id\":48,\"repository_type\":\"Game\",\"repository_name\":\"Game\",\"repository_name_en\":\"Game\",\"description\":\"game repo\",\"cos_list\":[{\"public_cdn_domain\":\"https://cloud.nikke-kr.com\"}],\"encrytion_key\":\"158f36bf7e611c945320c399294c4a6d\",\"encrytion_algorithm_id\":6,\"manifest_encrytion_key\":\"0f448b096bb4dc5b339debdce77c4572\",\"manifest_encrytion_algorithm_id\":6,\"game_id\":16601,\"manifest_id\":5937488248518581298}]", + "key_file_info": "[{\"crc\":1124400173,\"path\":\"NIKKE\\\\game\\\\nikke.exe\"}]", "install_script": "{\"script_content\":{\"executable\":[]}}", - "installer_size": "352461033", - "installed_size": "790247240", - "publish_time_in_unix": "1749655317", + "installer_size": "361649767", + "installed_size": "854972912", + "publish_time_in_unix": "1750731475", "is_first_version_in_branch": "1", "version_description": "[{\"lang_code\":\"en\",\"text\":\"\"},{\"lang_code\":\"ja\",\"text\":\"\"},{\"lang_code\":\"ko\",\"text\":\"\"}]", "update_type": 0