From 04e661b2b7112b2defbedf91cdad698d0eff7798 Mon Sep 17 00:00:00 2001 From: Mikhail Tyukin Date: Sat, 27 Sep 2025 12:35:26 -0400 Subject: [PATCH] update to 138, use mpk by default --- EpinelPS/Data/GameData.cs | 4 +- EpinelPS/Data/JsonStaticData.cs | 55 +++++++++++-------- .../LobbyServer/LobbyUser/EnterLobbyServer.cs | 2 +- .../LobbyServer/Misc/GetStaticDataPackNew.cs | 8 +-- EpinelPS/Utils/AdminCommands.cs | 8 +-- EpinelPS/gameconfig.json | 12 ++-- EpinelPS/gameversion.json | 18 +++--- 7 files changed, 57 insertions(+), 50 deletions(-) diff --git a/EpinelPS/Data/GameData.cs b/EpinelPS/Data/GameData.cs index ae8c050..d70016c 100644 --- a/EpinelPS/Data/GameData.cs +++ b/EpinelPS/Data/GameData.cs @@ -1,4 +1,4 @@ -using System.Data; +using System.Data; using System.Diagnostics; using System.Security.Cryptography; using EpinelPS.Database; @@ -33,7 +33,7 @@ namespace EpinelPS.Data private int currentFile; // TODO: all of the data types need to be changed to match the game - private bool UseMemoryPack = false; + private bool UseMemoryPack = true; public readonly Dictionary MapData = []; diff --git a/EpinelPS/Data/JsonStaticData.cs b/EpinelPS/Data/JsonStaticData.cs index 7d4af54..53fb3c1 100644 --- a/EpinelPS/Data/JsonStaticData.cs +++ b/EpinelPS/Data/JsonStaticData.cs @@ -1,4 +1,4 @@ -using MemoryPack; +using MemoryPack; using System.Data; using System.Runtime.Serialization; @@ -323,10 +323,17 @@ namespace EpinelPS.Data public partial class OutpostBattleTableRecord { public int id; + public int battle_box_level; + public int main_stage_clear_count; + public int reward_id; public int credit; + public int time_credit; public int character_exp1; - public int character_exp2; + public int time_charexp1; public int user_exp; + public int time_user_exp; + public int character_exp2; + public int time_charexp2; } [MemoryPackable] @@ -1175,8 +1182,8 @@ namespace EpinelPS.Data public EventPlaySodaGameType game_type; public int step; public int reward_id; - } - + } + [MemoryPackable] public partial class EventMVGQuestRecord_Raw { @@ -1269,32 +1276,32 @@ namespace EpinelPS.Data { Daily, Achievement - } - + } + public enum EventMVGMIssionSubType { None, - MonsterKill, - BossMonsterKill, - GetItem, - ChapterClear, + MonsterKill, + BossMonsterKill, + GetItem, + ChapterClear, Explorer - } - + } + public enum EventMVGMissionConditionType { - KillMonster, - KillBossMonster, - GetCurrency, - GetCollectable, - None, - ClearAchievement, - TargetPoint, - ClearMap, - GetUpgradeMax, - GetModule, - UseKey, - GetMemory, + KillMonster, + KillBossMonster, + GetCurrency, + GetCollectable, + None, + ClearAchievement, + TargetPoint, + ClearMap, + GetUpgradeMax, + GetModule, + UseKey, + GetMemory, PlayMVG, } } diff --git a/EpinelPS/LobbyServer/LobbyUser/EnterLobbyServer.cs b/EpinelPS/LobbyServer/LobbyUser/EnterLobbyServer.cs index cb64fbf..f2d0f2d 100644 --- a/EpinelPS/LobbyServer/LobbyUser/EnterLobbyServer.cs +++ b/EpinelPS/LobbyServer/LobbyUser/EnterLobbyServer.cs @@ -1,4 +1,4 @@ -using EpinelPS.Data; +using EpinelPS.Data; using EpinelPS.Database; using EpinelPS.Utils; diff --git a/EpinelPS/LobbyServer/Misc/GetStaticDataPackNew.cs b/EpinelPS/LobbyServer/Misc/GetStaticDataPackNew.cs index 39dc6bb..4a13642 100644 --- a/EpinelPS/LobbyServer/Misc/GetStaticDataPackNew.cs +++ b/EpinelPS/LobbyServer/Misc/GetStaticDataPackNew.cs @@ -4,7 +4,7 @@ using Google.Protobuf; namespace EpinelPS.LobbyServer.Misc { - [PacketPath("/get-static-data-pack-info")] + [PacketPath("/get-static-data-pack-info-mpk")] public class GetStaticDataPackNew : LobbyMsgHandler { protected override async Task HandleAsync() @@ -13,14 +13,14 @@ namespace EpinelPS.LobbyServer.Misc Console.WriteLine("Requesting " + req.Type); - StaticData data = req.Type == StaticDataPackType.Mpk ? GameConfig.Root.StaticDataMpk : GameConfig.Root.StaticData; + StaticData data = GameConfig.Root.StaticDataMpk; ResStaticDataPackInfoV2 r = new() { Url = data.Url, Version = data.Version, - Size = req.Type == StaticDataPackType.Mpk ? GameData.Instance.MpkSize : GameData.Instance.Size, - Sha256Sum = ByteString.CopyFrom(req.Type == StaticDataPackType.Mpk ? GameData.Instance.MpkHash : GameData.Instance.Sha256Hash), + Size = GameData.Instance.MpkSize, + Sha256Sum = ByteString.CopyFrom(GameData.Instance.MpkHash), Salt1 = ByteString.CopyFrom(Convert.FromBase64String(data.Salt1)), Salt2 = ByteString.CopyFrom(Convert.FromBase64String(data.Salt2)) }; diff --git a/EpinelPS/Utils/AdminCommands.cs b/EpinelPS/Utils/AdminCommands.cs index 4610bdd..890ab16 100644 --- a/EpinelPS/Utils/AdminCommands.cs +++ b/EpinelPS/Utils/AdminCommands.cs @@ -403,7 +403,7 @@ namespace EpinelPS.Utils return new RunCmdResponse() { error = "failed to get real server ip, check internet connection" }; // Get latest static data info from server - ResStaticDataPackInfoV2? staticData = await FetchProtobuf(staticDataUrl, new ReqStaticDataPackInfoV2() + /*ResStaticDataPackInfoV2? staticData = await FetchProtobuf(staticDataUrl, new ReqStaticDataPackInfoV2() { Type = StaticDataPackType.Json }); @@ -411,7 +411,7 @@ namespace EpinelPS.Utils { Logging.WriteLine("failed to fetch static data", LogType.Error); return new RunCmdResponse() { error = "failed to fetch static data" }; - } + }*/ // Get latest static data info from server ResStaticDataPackInfoV2? staticData2 = await FetchProtobuf(staticDataUrl, @@ -434,10 +434,10 @@ namespace EpinelPS.Utils } GameConfig.Root.ResourceBaseURL = resources.BaseUrl; - GameConfig.Root.StaticData.Salt1 = staticData.Salt1.ToBase64(); + /*GameConfig.Root.StaticData.Salt1 = staticData.Salt1.ToBase64(); GameConfig.Root.StaticData.Salt2 = staticData.Salt2.ToBase64(); GameConfig.Root.StaticData.Version = staticData.Version; - GameConfig.Root.StaticData.Url = staticData.Url; + GameConfig.Root.StaticData.Url = staticData.Url;*/ GameConfig.Root.StaticDataMpk.Salt1 = staticData2.Salt1.ToBase64(); GameConfig.Root.StaticDataMpk.Salt2 = staticData2.Salt2.ToBase64(); diff --git a/EpinelPS/gameconfig.json b/EpinelPS/gameconfig.json index 6d1cdf9..4380b79 100644 --- a/EpinelPS/gameconfig.json +++ b/EpinelPS/gameconfig.json @@ -6,13 +6,13 @@ "Salt2": "VwXjh0/SPpN+Osa8bvroFVNYIKd5F06vS1KYlIaVGAY=" }, "StaticDataMpk": { - "Url": "https://cloud.nikke-kr.com/prdenv/137-ca2cdb9fcd/staticdata/data/qa-250904-09b/453421/mpk/StaticData.pack", - "Version": "data/qa-250904-09b/453421", - "Salt1": "y/K4n/++KE1v1UGqSfoXV2+ilMqXlJP2AJzGTvy7F70=", - "Salt2": "AFdGkgz20UZQ6C9p8z4IE6Dv5fzz46ggE9Wv6m6pTjI=" + "Url": "https://cloud.nikke-kr.com/prdenv/138-c33f99fd4f/staticdata/data/qa-250924-09c/461037/mpk/StaticData.pack", + "Version": "data/qa-250924-09c/461037", + "Salt1": "mSeQrFtpXu5ExqxZKo79PMMbr8mm1F2Und+yt/xrsWE=", + "Salt2": "eHer1RRkj8MCDRyb8J76cULrTUsEJY7OExTr4sKz6Wk=" }, - "ResourceBaseURL": "https://cloud.nikke-kr.com/prdenv/137-b7e4a25fec/{Platform}", + "ResourceBaseURL": "https://cloud.nikke-kr.com/prdenv/138-b89af37c16/{Platform}", "GameMinVer": "100.0.1", "GameMaxVer": "150.0.2", - "TargetVersion": "137.8.9" + "TargetVersion": "138.8.14" } \ No newline at end of file diff --git a/EpinelPS/gameversion.json b/EpinelPS/gameversion.json index 76ec843..61eb89f 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.56", - "version_name": "NIKKE.PC_Offcial_GL_137.8.7", + "version_id": "0.0.0.57", + "version_name": "NIKKE.PC_Offcial_GL_138.8.14", "version_status": 7, "service_status": 0, - "build_id": "3063", - "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\":\"f7f158a20392f3355b15e6908f0f5e75\",\"chunk_size\":115232,\"chunk_uncompress_md5\":\"f7f158a20392f3355b15e6908f0f5e75\",\"chunk_uncompress_size\":115232}],\"file_url\":\"/manifestv2/48_5937488248518599460_0.manifest\",\"manifest_md5\":\"f7f158a20392f3355b15e6908f0f5e75\",\"manifest_size\":115232}],\"manifest_flag\":13,\"manifest_id\":5937488248518600000,\"manifest_version\":2,\"patch_size\":182554328,\"repository_desc\":{\"zh_CN\":\"game repo\"},\"repository_id\":48,\"repository_name\":{\"en_US\":\"Game\",\"zh_CN\":\"Game\"},\"repository_size\":462051623,\"repository_type\":\"Game\",\"repository_uncompress_size\":950326914}]", - "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\":5937488248518601723}]", - "key_file_info": "[{\"crc\":1522599809,\"path\":\"NIKKE\\\\game\\\\nikke.exe\"}]", + "build_id": "3071", + "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\":\"9aaa5675f669d16941839867e012e902\",\"chunk_size\":115864,\"chunk_uncompress_md5\":\"9aaa5675f669d16941839867e012e902\",\"chunk_uncompress_size\":115864}],\"file_url\":\"/manifestv2/48_5937488248518605394_0.manifest\",\"manifest_md5\":\"9aaa5675f669d16941839867e012e902\",\"manifest_size\":115864}],\"manifest_flag\":13,\"manifest_id\":5937488248518606000,\"manifest_version\":2,\"patch_size\":103713164,\"repository_desc\":{\"zh_CN\":\"game repo\"},\"repository_id\":48,\"repository_name\":{\"en_US\":\"Game\",\"zh_CN\":\"Game\"},\"repository_size\":469227674,\"repository_type\":\"Game\",\"repository_uncompress_size\":963221126}]", + "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\":5937488248518607246}]", + "key_file_info": "[{\"crc\":4219392621,\"path\":\"NIKKE\\\\game\\\\nikke.exe\"}]", "install_script": "{\"script_content\":{\"executable\":[]}}", - "installer_size": "462051623", - "installed_size": "950326914", - "publish_time_in_unix": "1756953540", + "installer_size": "469227674", + "installed_size": "963221126", + "publish_time_in_unix": "1758641891", "is_first_version_in_branch": "1", "version_description": "[{\"lang_code\":\"en\",\"text\":\"\"},{\"lang_code\":\"ja\",\"text\":\"\"},{\"lang_code\":\"ko\",\"text\":\"\"}]", "update_type": 0