From 61a03b5957a97e1e5575c6f34a2e16cdf27a8d6e Mon Sep 17 00:00:00 2001 From: CAtlas0784 Date: Mon, 2 Nov 2026 02:55:25 +0700 Subject: [PATCH] fix readme --- .idea/.gitignore | 3 + .idea/.name | 1 + .idea/AndroidProjectSystem.xml | 6 + .idea/codeStyles/Project.xml | 123 + .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/compiler.xml | 6 + .idea/deploymentTargetSelector.xml | 11 + .idea/deviceManager.xml | 13 + .idea/gradle.xml | 19 + .idea/migrations.xml | 10 + .idea/misc.xml | 10 + .idea/runConfigurations.xml | 17 + .idea/vcs.xml | 6 + README_EN.md => Docs/README_EN.md | 2 +- README_ZH.md => Docs/README_ZH.md | 2 +- README.md | 2 +- app/src/main/assets/chaquopy/app.imy | Bin 6437 -> 11604 bytes app/src/main/assets/chaquopy/build.json | 44 +- app/src/main/assets/cmd_ids_4_6.json | 2209 +++++++++++++++++ .../com/gacy/android/data/UpdateRepository.kt | 54 +- app/src/main/python/run_ppsr.py | 562 ++++- run_ppsr_reference.py | 200 ++ 22 files changed, 3234 insertions(+), 71 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/AndroidProjectSystem.xml create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/deploymentTargetSelector.xml create mode 100644 .idea/deviceManager.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/migrations.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml rename README_EN.md => Docs/README_EN.md (97%) rename README_ZH.md => Docs/README_ZH.md (97%) create mode 100644 app/src/main/assets/cmd_ids_4_6.json create mode 100644 run_ppsr_reference.py diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..a1d4e28 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +GaCy-Android \ No newline at end of file diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..7643783 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,123 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..ca16a99 --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml new file mode 100644 index 0000000..91f9558 --- /dev/null +++ b/.idea/deviceManager.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..639c779 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a4f09e2 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..16660f1 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README_EN.md b/Docs/README_EN.md similarity index 97% rename from README_EN.md rename to Docs/README_EN.md index 406d551..d752e32 100644 --- a/README_EN.md +++ b/Docs/README_EN.md @@ -1,6 +1,6 @@ # GaCy Android -[ภาษาไทย](README.md) | English | [简体中文](README_ZH.md) +[ภาษาไทย](./README.md) | English | [简体中文](./README_ZH.md) GaCy Android is an Android companion and local server manager for the GaC-hkrpg-go project. The diff --git a/README_ZH.md b/Docs/README_ZH.md similarity index 97% rename from README_ZH.md rename to Docs/README_ZH.md index 1cac78d..2c7d093 100644 --- a/README_ZH.md +++ b/Docs/README_ZH.md @@ -1,6 +1,6 @@ # GaCy Android -[ภาษาไทย](README.md) | [English](README_EN.md) | 简体中文 +[ภาษาไทย](README.md) | [English](./README_EN.md) | 简体中文 GaCy Android 是 GaC-hkrpg-go 的 Android 辅助应用和本地服务器管理器。移植仍在进行中:应用可通过前台服务启动 diff --git a/README.md b/README.md index 4834f0a..a15d285 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Built with **Kotlin**, **Jetpack Compose**, and **Material Design 3**. [![Target ABI](https://img.shields.io/badge/ABI-arm64--v8a-blue?style=flat)](https://developer.android.com/ndk) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[ภาษาไทย](README.md) | [English](README_EN.md) | [简体中文](README_ZH.md) +ภาษาไทย | [English](./Docs/README_EN.md) | [简体中文](./Docs/README_ZH.md) diff --git a/app/src/main/assets/chaquopy/app.imy b/app/src/main/assets/chaquopy/app.imy index 5812ac97d984f2a22ec39e0b99b6db5e44aafd0c..4fe3e928d1baf7c0cf6f9af75875f8e631754bd1 100644 GIT binary patch delta 9437 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 diff --git a/app/src/main/assets/chaquopy/build.json b/app/src/main/assets/chaquopy/build.json index e686216..0e060c3 100644 --- a/app/src/main/assets/chaquopy/build.json +++ b/app/src/main/assets/chaquopy/build.json @@ -1,23 +1,23 @@ { - "assets": { - "bootstrap-native/arm64-v8a/_struct.cpython-314-aarch64-linux-android.so": "9b083e7b97e92291f73d80d7495c9cee8351596b", - "requirements-arm64-v8a.imy": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33", - "bootstrap-native/arm64-v8a/java/chaquopy.so": "1284a42a1b74c8fc5c8705a4f6f309134ecef4a8", - "bootstrap.imy": "6c6d7c85e4764e96924001f9d6290501bfbfc704", - "bootstrap-native/arm64-v8a/math.cpython-314-aarch64-linux-android.so": "dc859c93d3fc01f2d087471052895f230f732436", - "cacert.pem": "fec7b8c0a17c1c555fd33baee53678f31b7645ee", - "bootstrap-native/arm64-v8a/_bz2.cpython-314-aarch64-linux-android.so": "b48b9abf1f87d587a5f5beb4b38bb17acf29c4d3", - "bootstrap-native/arm64-v8a/_ctypes.cpython-314-aarch64-linux-android.so": "50a6a36dab6a9ebe4fca5797872e8d2c3538db56", - "bootstrap-native/arm64-v8a/mmap.cpython-314-aarch64-linux-android.so": "b571492fdceac1279bedc8163e27ac205e104b14", - "app.imy": "8e998f6e20dc7152ab075f8edf0644d411cd7f76", - "stdlib-common.imy": "8715635411fe145000fbf3b7ce4c3a085646d300", - "bootstrap-native/arm64-v8a/_random.cpython-314-aarch64-linux-android.so": "1c6c12f9f43546da0e108031f824b7fd6e79a36a", - "bootstrap-native/arm64-v8a/_lzma.cpython-314-aarch64-linux-android.so": "6f3f86f607b4d775452c128858fa26d19c7da56a", - "bootstrap-native/arm64-v8a/zlib.cpython-314-aarch64-linux-android.so": "2d164f648a0f97c1d8710d41cb66754e9daff44e", - "bootstrap-native/arm64-v8a/binascii.cpython-314-aarch64-linux-android.so": "ff4d2c47c081af6518c8a6a6fa07edcc077b1b6b", - "stdlib-arm64-v8a.imy": "ebebf5dc919d7e686936904604fe9a29fede81e9", - "requirements-common.imy": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33" - }, - "extract_packages": [], - "python_version": "3.14" -} \ No newline at end of file + "assets": { + "bootstrap-native/arm64-v8a/_struct.cpython-314-aarch64-linux-android.so": "9b083e7b97e92291f73d80d7495c9cee8351596b", + "requirements-arm64-v8a.imy": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33", + "bootstrap-native/arm64-v8a/java/chaquopy.so": "1284a42a1b74c8fc5c8705a4f6f309134ecef4a8", + "bootstrap.imy": "6c6d7c85e4764e96924001f9d6290501bfbfc704", + "bootstrap-native/arm64-v8a/math.cpython-314-aarch64-linux-android.so": "dc859c93d3fc01f2d087471052895f230f732436", + "cacert.pem": "fec7b8c0a17c1c555fd33baee53678f31b7645ee", + "bootstrap-native/arm64-v8a/_bz2.cpython-314-aarch64-linux-android.so": "b48b9abf1f87d587a5f5beb4b38bb17acf29c4d3", + "bootstrap-native/arm64-v8a/_ctypes.cpython-314-aarch64-linux-android.so": "50a6a36dab6a9ebe4fca5797872e8d2c3538db56", + "bootstrap-native/arm64-v8a/mmap.cpython-314-aarch64-linux-android.so": "b571492fdceac1279bedc8163e27ac205e104b14", + "app.imy": "fea5d90dd93b0e7264079d53d95d61e7a6f232c0", + "stdlib-common.imy": "8715635411fe145000fbf3b7ce4c3a085646d300", + "bootstrap-native/arm64-v8a/_random.cpython-314-aarch64-linux-android.so": "1c6c12f9f43546da0e108031f824b7fd6e79a36a", + "bootstrap-native/arm64-v8a/_lzma.cpython-314-aarch64-linux-android.so": "6f3f86f607b4d775452c128858fa26d19c7da56a", + "bootstrap-native/arm64-v8a/zlib.cpython-314-aarch64-linux-android.so": "2d164f648a0f97c1d8710d41cb66754e9daff44e", + "bootstrap-native/arm64-v8a/binascii.cpython-314-aarch64-linux-android.so": "ff4d2c47c081af6518c8a6a6fa07edcc077b1b6b", + "stdlib-arm64-v8a.imy": "ebebf5dc919d7e686936904604fe9a29fede81e9", + "requirements-common.imy": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33" + }, + "extract_packages": [], + "python_version": "3.14" +} diff --git a/app/src/main/assets/cmd_ids_4_6.json b/app/src/main/assets/cmd_ids_4_6.json new file mode 100644 index 0000000..cf6a05f --- /dev/null +++ b/app/src/main/assets/cmd_ids_4_6.json @@ -0,0 +1,2209 @@ +{ + "CmdTakeActiveActivityRewardCsReq": 9554, + "CmdGetActiveActivityDataScRsp": 9558, + "CmdGetActiveActivityDataCsReq": 9565, + "CmdActiveActivityDataChangeScNotify": 9566, + "CmdTakeActiveActivityRewardScRsp": 9570, + "CmdActivityType_NLCDGIPGFDJ": 0, + "CmdActivityType_KNHKONMNGOG": 2601, + "CmdSubmitMaterialSubmitActivityMaterialScRsp": 2604, + "CmdGetActivityScheduleConfigCsReq": 2605, + "CmdGetMaterialSubmitActivityDataScRsp": 2608, + "CmdChooseAvatarCsReq": 2609, + "CmdChooseAvatarScRsp": 2613, + "CmdStartTrialActivityCsReq": 2616, + "CmdTakeRewardCsReq": 2617, + "CmdGetLoginActivityScRsp": 2619, + "CmdGetDataCsReq": 2630, + "CmdTakeLoginActivityRewardCsReq": 2631, + "CmdTrialActivityNotify": 2636, + "CmdGetDataScRsp": 2638, + "CmdGetTrialActivityDataCsReq": 2639, + "CmdEnterTrialActivityStageCsReq": 2641, + "CmdTakeTrialActivityRewardScRsp": 2645, + "CmdTrialActivityDataChangeScNotify": 2655, + "CmdTakeMaterialSubmitActivityRewardScRsp": 2657, + "CmdGetTrialActivityDataScRsp": 2664, + "CmdTakeRewardScRsp": 2669, + "CmdGetActivityScheduleConfigScRsp": 2671, + "CmdGetLoginActivityCsReq": 2674, + "CmdGetMaterialSubmitActivityDataCsReq": 2675, + "CmdLeaveTrialActivityScRsp": 2684, + "CmdLeaveTrialActivityCsReq": 2685, + "CmdTakeLoginActivityRewardScRsp": 2687, + "CmdSubmitMaterialSubmitActivityMaterialCsReq": 2692, + "CmdTakeMaterialSubmitActivityRewardCsReq": 2694, + "CmdTakeTrialActivityRewardCsReq": 2695, + "CmdEnterTrialActivityStageScRsp": 2700, + "CmdGetActivityHotDataCsReq": 9113, + "CmdGetActivityRewardCountDataScRsp": 9114, + "CmdGetActivityHotDataScRsp": 9116, + "CmdGetAllActivityRewardCountDataCsReq": 9117, + "CmdGetActivityRewardCountDataCsReq": 9118, + "CmdGetAllActivityRewardCountDataScRsp": 9120, + "CmdSyncActivityVoracityInvasionDataScNotify": 10664, + "CmdGetActivityVoracityInvasionDataScRsp": 10668, + "CmdGetActivityVoracityInvasionDataCsReq": 10675, + "CmdStartQuickCocoonStageCsReq": 1305, + "CmdCocoonSweepCsReq": 1306, + "CmdFarmElementSweepCsReq": 1327, + "CmdGetFarmStageGachaInfoCsReq": 1331, + "CmdFarmElementSweepScRsp": 1352, + "CmdStartQuickFarmElementCsReq": 1359, + "CmdCocoonSweepScRsp": 1370, + "CmdGetFarmStageGachaInfoScRsp": 1387, + "CmdAetherDivideRefreshEndlessScNotify": 4801, + "CmdGetAetherDivideChallengeInfoCsReq": 4803, + "CmdStartAetherDivideStageBattleScRsp": 4806, + "CmdStartAetherDivideStageBattleCsReq": 4808, + "CmdSwitchAetherDivideLineUpSlotScRsp": 4809, + "CmdSetAetherDivideLineUpScRsp": 4810, + "CmdAetherDivideLineupScNotify": 4813, + "CmdAetherDivideSkillItemScNotify": 4814, + "CmdSwitchAetherDivideLineUpSlotCsReq": 4815, + "CmdTakeOffSkillCoreScRsp": 4816, + "CmdAetherDivideRefreshEndlessCsReq": 4817, + "CmdAetherDivideFinishChallengeScNotify": 4818, + "CmdAetherDivideTakeChallengeRewardScRsp": 4821, + "CmdAetherDivideSpiritExpUpScRsp": 4822, + "CmdStartAetherDivideChallengeBattleScRsp": 4824, + "CmdEquipSkillCoreScRsp": 4825, + "CmdGetAetherDivideInfoScRsp": 4826, + "CmdAetherDivideTainerInfoScNotify": 4827, + "CmdGetAetherDivideChallengeInfoScRsp": 4829, + "CmdStartAetherDivideSceneBattleCsReq": 4830, + "CmdAetherDivideSpiritExpUpCsReq": 4831, + "CmdSetAetherDivideLineUpCsReq": 4832, + "CmdStartAetherDivideChallengeBattleCsReq": 4834, + "CmdStartAetherDivideSceneBattleScRsp": 4835, + "CmdAetherDivideRefreshEndlessScRsp": 4840, + "CmdEquipAetherDividePassiveSkillCsReq": 4841, + "CmdAetherDivideTakeChallengeRewardCsReq": 4843, + "CmdClearAetherDividePassiveSkillCsReq": 4844, + "CmdGetAetherDivideInfoCsReq": 4845, + "CmdAetherDivideSpiritInfoScNotify": 4846, + "CmdLeaveAetherDivideSceneCsReq": 4848, + "CmdLeaveAetherDivideSceneScRsp": 4850, + "CmdAiPamMotionScNotify": 9509, + "CmdAiPamResponseFeedbackCommentCsReq": 9510, + "CmdGetAiPamChatInfoCsReq": 9511, + "CmdUpdateAiPamSettingsScRsp": 9515, + "CmdUpdateAiPamSettingsCsReq": 9516, + "CmdTriggerAiPamSpeakCsReq": 9525, + "CmdAiPamResponseFeedbackCsReq": 9526, + "CmdAiPamResponseFeedbackScRsp": 9532, + "CmdGetAiPamNextQuestionScRsp": 9534, + "CmdGetAiPamChatHistoryScRsp": 9535, + "CmdAiPamSendMsgScRsp": 9538, + "CmdAiPamResponseFeedbackCommentScRsp": 9541, + "CmdAiPamSendMsgCsReq": 9542, + "CmdTriggerAiPamSpeakScRsp": 9544, + "CmdGetAiPamChatInfoScRsp": 9545, + "CmdAiPamAskSettlementScNotify": 9546, + "CmdRecvAiPamChatEventScNotify": 9548, + "CmdGetAiPamChatHistoryCsReq": 9550, + "CmdGetArchiveDataScRsp": 2319, + "CmdGetUpdatedArchiveDataCsReq": 2331, + "CmdGetArchiveDataCsReq": 2374, + "CmdGetUpdatedArchiveDataScRsp": 2387, + "CmdAvatarType_NLCDGIPGFDJ": 0, + "CmdTakePromotionRewardCsReq": 304, + "CmdUnlockSkillTreeCsReq": 305, + "CmdDressAvatarCsReq": 306, + "CmdTakeOffRelicCsReq": 308, + "CmdSetPlayerOutfitScRsp": 312, + "CmdTakeOffAvatarSkinCsReq": 315, + "CmdPromoteAvatarScRsp": 318, + "CmdGetAvatarDataScRsp": 319, + "CmdSetMultipleAvatarPathsCsReq": 320, + "CmdSetAvatarEnhancedIdScRsp": 322, + "CmdTakeOffAvatarSkinScRsp": 323, + "CmdTakeOffEquipmentCsReq": 327, + "CmdUnlockAvatarSkinScNotify": 328, + "CmdUnlockAvatarPathCsReq": 329, + "CmdAvatarExpUpCsReq": 331, + "CmdAddAvatarScNotify": 335, + "CmdAvatarSpecialSkilltreeUnlockScNotify": 339, + "CmdAvatarType_MILFFHPMLMN": 341, + "CmdSetAvatarPathCsReq": 343, + "CmdUnlockAvatarPathScRsp": 346, + "CmdRankUpAvatarScRsp": 347, + "CmdDressRelicAvatarCsReq": 348, + "CmdGetPreAvatarActivityListCsReq": 349, + "CmdGetPreAvatarGrowthInfoScRsp": 350, + "CmdSetGrowthTargetAvatarScRsp": 351, + "CmdTakeOffEquipmentScRsp": 352, + "CmdSetAvatarPathScRsp": 353, + "CmdAvatarType_BBDLPCFBNMF": 354, + "CmdAvatarType_KELLLHMHFHL": 355, + "CmdDressAvatarSkinCsReq": 357, + "CmdPromoteAvatarCsReq": 359, + "CmdAvatarPathChangedNotify": 360, + "CmdAddMultiPathAvatarScNotify": 362, + "CmdMarkAvatarScRsp": 363, + "CmdAvatarType_PMOEBOIPGDH": 364, + "CmdGetPreAvatarActivityListScRsp": 366, + "CmdMarkAvatarCsReq": 367, + "CmdDressAvatarScRsp": 370, + "CmdUnlockSkilltreeScRsp": 371, + "CmdGetAvatarDataCsReq": 374, + "CmdDressRelicAvatarScRsp": 375, + "CmdSetMultipleAvatarPathsScRsp": 378, + "CmdSetGrowthTargetAvatarCsReq": 380, + "CmdSetAvatarEnhancedIdCsReq": 381, + "CmdDressAvatarSkinScRsp": 382, + "CmdAvatarExpUpScRsp": 387, + "CmdGetPreAvatarGrowthInfoCsReq": 389, + "CmdSetPlayerOutfitCsReq": 390, + "CmdTakeOffRelicScRsp": 392, + "CmdTakePromotionRewardScRsp": 394, + "CmdAvatarType_ENKEIJOLCNO": 395, + "CmdRankUpAvatarCsReq": 398, + "CmdAvatarType_IEBELJFAFDM": 400, + "CmdB51RacingType_NLCDGIPGFDJ": 0, + "CmdB51RacingType_OLEMIBOLPFD": 9981, + "CmdB51RacingType_CNONDPPLOAE": 9983, + "CmdB51RacingType_OLLHKHLOOBL": 9984, + "CmdB51RacingType_FNILGHMIHLF": 9985, + "CmdB51RacingType_EKIODNFJGID": 9986, + "CmdB51RacingType_EBMGCHJJNFL": 9987, + "CmdB51RacingGetDataScRsp": 9988, + "CmdB51RacingType_COIILIPCCEI": 9989, + "CmdB51RacingType_IAMNFNCLBLF": 9990, + "CmdB51RacingType_MBBCAFHLCHM": 9991, + "CmdB51RacingType_FMLDALFNHNG": 9992, + "CmdB51RacingType_EHNLHGMDNGH": 9993, + "CmdB51RacingType_PBOJLCIMHJK": 9994, + "CmdB51RacingGetDataCsReq": 9995, + "CmdB51RacingType_FKLNOLLBCMP": 9996, + "CmdB51RacingType_ANBEEACODJP": 9997, + "CmdB51RacingType_ODOMHCJKMCE": 9998, + "CmdB51RacingType_HKKLENMJIIB": 9999, + "CmdB51RacingType_NJCCGCPJGGD": 10000, + "CmdGetBadgeInfoCsReq": 7173, + "CmdGetBadgeInfoScRsp": 7176, + "CmdBadgeInfoScNotify": 7177, + "CmdBattleType_NLCDGIPGFDJ": 0, + "CmdGetCurBattleInfoCsReq": 105, + "CmdQuitBattleScNotify": 106, + "CmdSyncClientResVersionScRsp": 118, + "CmdPVEBattleResultScRsp": 119, + "CmdQuitBattleCsReq": 131, + "CmdBattleReplayScNotify": 147, + "CmdSyncClientResVersionCsReq": 159, + "CmdGetCurBattleInfoScRsp": 171, + "CmdPVEBattleResultCsReq": 174, + "CmdQuitBattleScRsp": 187, + "CmdRebattleByClientCsNotify": 198, + "CmdStartBattleCollegeScRsp": 5705, + "CmdGetBattleCollegeDataScRsp": 5719, + "CmdSyncBattleCollegeDataChangeScNotify": 5731, + "CmdGetBattleCollegeDataCsReq": 5774, + "CmdStartBattleCollegeCsReq": 5787, + "CmdTakeBpRewardScRsp": 3005, + "CmdTakeAllRewardScRsp": 3006, + "CmdTakeAllRewardCsReq": 3018, + "CmdBuyBpLevelScRsp": 3059, + "CmdBuyBpLevelCsReq": 3071, + "CmdBattlePassInfoNotify": 3074, + "CmdTakeBpRewardCsReq": 3087, + "CmdJoinBenefitActivityCsReq": 4880, + "CmdJoinBenefitActivityScRsp": 4885, + "CmdGetBenefitActivityInfoCsReq": 4892, + "CmdTakeBenefitActivityRewardCsReq": 4898, + "CmdTakeBenefitActivityRewardScRsp": 4900, + "CmdBlindBoxGetDataScRsp": 10039, + "CmdBlindBoxOpenBoxCsReq": 10046, + "CmdBlindBoxGetDataCsReq": 10052, + "CmdBlindBoxOpenBoxScRsp": 10058, + "CmdPublishPrivateOrderCsReq": 10068, + "CmdConfirmOrderCsReq": 10082, + "CmdBlindBoxTradeChangeScNotify": 10083, + "CmdStartBoxingClubBattleCsReq": 4205, + "CmdBoxingClubRewardScNotify": 4206, + "CmdGiveUpBoxingClubChallengeScRsp": 4218, + "CmdGetBoxingClubInfoScRsp": 4219, + "CmdChooseBoxingClubResonanceCsReq": 4227, + "CmdMatchBoxingClubOpponentCsReq": 4231, + "CmdSetBoxingClubResonanceCsReq": 4235, + "CmdChooseBoxingClubStageOptionalBuffCsReq": 4247, + "CmdChooseBoxingClubStageOptionalBuffScRsp": 4248, + "CmdChooseBoxingClubResonanceScRsp": 4252, + "CmdGiveUpBoxingClubChallengeCsReq": 4259, + "CmdBoxingClubChallengeUpdateScNotify": 4270, + "CmdStartBoxingClubBattleScRsp": 4271, + "CmdGetBoxingClubInfoCsReq": 4274, + "CmdMatchBoxingClubOpponentScRsp": 4287, + "CmdSetBoxingClubResonanceScRsp": 4298, + "CmdCakeRaceLikeFriendRankingInfoScRsp": 9124, + "CmdCakeRaceCoinScoreChangeScNotify": 9125, + "CmdCakeRaceGetDataScRsp": 9129, + "CmdCakeRaceGetDailyLikeScRsp": 9130, + "CmdCakeRaceGetFriendRankingInfoListScRsp": 9131, + "CmdCakeRaceFinishPVECsReq": 9132, + "CmdCakeRaceUpdatePVEScRsp": 9133, + "CmdCakeRaceStartPVECsReq": 9135, + "CmdCakeRaceLoanCsReq": 9136, + "CmdCakeRaceBetCoinPVECsReq": 9139, + "CmdCakeRaceGetDailyLikeCsReq": 9141, + "CmdCakeRaceGetDataCsReq": 9142, + "CmdCakeRaceGetFriendRankingInfoListCsReq": 9143, + "CmdCakeRaceFinishPVEScRsp": 9144, + "CmdCakeRaceGetHandbookCsReq": 9145, + "CmdCakeRaceGetHandbookScRsp": 9146, + "CmdCakeRaceLikeFriendRankingInfoCsReq": 9147, + "CmdCakeRaceLoanScRsp": 9148, + "CmdCakeRaceFinishFieldRewardScNotify": 9149, + "CmdCakeRaceStartPVEScRsp": 9150, + "CmdChallengeType_NLCDGIPGFDJ": 0, + "CmdStartPartialChallengeScRsp": 1704, + "CmdLeaveChallengeCsReq": 1705, + "CmdGetChallengeGroupStatisticsScRsp": 1708, + "CmdEnterChallengeNextPhaseCsReq": 1715, + "CmdGetChallengeScRsp": 1719, + "CmdEnterChallengeNextPhaseScRsp": 1723, + "CmdGetCurChallengeScRsp": 1727, + "CmdChallengeBossPhaseSettleNotify": 1728, + "CmdStartChallengeCsReq": 1731, + "CmdTakeChallengeRewardCsReq": 1747, + "CmdTakeChallengeRewardScRsp": 1748, + "CmdChallengeLineupNotify": 1752, + "CmdRestartChallengePhaseCsReq": 1757, + "CmdChallengeSettleNotify": 1759, + "CmdGetCurChallengeCsReq": 1770, + "CmdLeaveChallengeScRsp": 1771, + "CmdGetChallengeCsReq": 1774, + "CmdGetChallengeGroupStatisticsCsReq": 1775, + "CmdRestartChallengePhaseScRsp": 1782, + "CmdStartChallengeScRsp": 1787, + "CmdPartialChallengeCsReq": 1792, + "CmdChallengePeakType_NLCDGIPGFDJ": 0, + "CmdSetChallengePeakMobLineupAvatarScRsp": 8909, + "CmdSetChallengePeakBossHardModeScRsp": 8910, + "CmdTakeChallengePeakRewardScRsp": 8911, + "CmdSetChallengePeakMobLineupAvatarCsReq": 8915, + "CmdConfirmChallengePeakSettleScRsp": 8922, + "CmdChallengePeakGroupDataUpdateScNotify": 8924, + "CmdReStartChallengePeakScRsp": 8925, + "CmdGetCurChallengePeakScRsp": 8926, + "CmdLeaveChallengePeakCsReq": 8930, + "CmdConfirmChallengePeakSettleCsReq": 8931, + "CmdSetChallengePeakBossHardModeCsReq": 8932, + "CmdChallengePeakSettleScNotify": 8934, + "CmdLeaveChallengePeakScRsp": 8935, + "CmdTakeChallengePeakRewardCsReq": 8937, + "CmdGetChallengePeakDataScRsp": 8938, + "CmdReStartChallengePeakCsReq": 8941, + "CmdGetChallengePeakDataCsReq": 8942, + "CmdGetCurChallengePeakCsReq": 8945, + "CmdStartChallengePeakCsReq": 8948, + "CmdStartChallengePeakScRsp": 8950, + "CmdChallengeTierceType_NLCDGIPGFDJ": 0, + "CmdChallengeTierceType_ENGOIEOPGMF": 8975, + "CmdChallengeTierceType_GKCOKHMADPF": 8977, + "CmdChallengeTierceType_DCANDNHNLCO": 8978, + "CmdChallengeTierceType_POJMHFPIFGM": 8979, + "CmdGetChallengeTierceControllerScRsp": 8981, + "CmdChallengeTierceType_NMDDOIKKEKA": 8982, + "CmdLeaveChallengeTierceScRsp": 8983, + "CmdChallengeTierceType_PMMCIBMKOLD": 8985, + "CmdStartChallengeTierceCsReq": 8986, + "CmdLeaveChallengeTierceCsReq": 8989, + "CmdChallengeTierceType_BEFPNLIFBOE": 8992, + "CmdGetChallengeTierceControllerCsReq": 8993, + "CmdChallengeTierceType_GKEEHHBEBCM": 8994, + "CmdGetChallengeTierceDataCsReq": 8995, + "CmdGetChallengeTierceDataScRsp": 8996, + "CmdStartChallengeTierceScRsp": 8998, + "CmdChallengeTierceType_JDHLIGMPFLG": 9000, + "CmdGetPrivateChatHistoryCsReq": 3905, + "CmdGetChatEmojiListCsReq": 3906, + "CmdGetChatFriendHistoryScRsp": 3918, + "CmdSendMsgScRsp": 3919, + "CmdMarkChatEmojiCsReq": 3927, + "CmdRevcMsgScNotify": 3931, + "CmdBatchMarkChatEmojiCsReq": 3935, + "CmdGetLoginChatInfoCsReq": 3947, + "CmdGetLoginChatInfoScRsp": 3948, + "CmdMarkChatEmojiScRsp": 3952, + "CmdGetChatFriendHistoryCsReq": 3959, + "CmdGetChatEmojiListScRsp": 3970, + "CmdGetPrivateChatHistoryScRsp": 3971, + "CmdPlanetfesSendMsgCsReq": 3974, + "CmdBatchMarkChatEmojiScRsp": 3998, + "CmdChenLingHandlePendingActionsScRsp": 9571, + "CmdChenLingSelectPolicyScRsp": 9573, + "CmdChenLingRefreshShopScRsp": 9576, + "CmdChenLingRefreshPolicyScRsp": 9579, + "CmdChenLingFinishPrepareScRsp": 9580, + "CmdChenLingUseHandCardScRsp": 9581, + "CmdChenLingFinishShopCsReq": 9583, + "CmdChenLingActivatedPrivilegeScRsp": 9584, + "CmdChenLingRefreshPolicyCsReq": 9585, + "CmdChenLingRefreshCardScRsp": 9586, + "CmdChenLingFinishShopScRsp": 9587, + "CmdChenLingBuyShopItemScRsp": 9588, + "CmdChenLingMoveEntityScRsp": 9591, + "CmdChenLingSelectCardScRsp": 9592, + "CmdChenLingSyncChangeScNotify": 9593, + "CmdChenLingUnlockGridScRsp": 9594, + "CmdChenLingFinishBattleScRsp": 9595, + "CmdChenLingSellHandCardScRsp": 9596, + "CmdChenLingActivatedPrivilegeCsReq": 9597, + "CmdChenLingBuyShopItemCsReq": 9599, + "CmdChenLingQuitStageCsReq": 9600, + "CmdChenLingSelectCardCsReq": 9601, + "CmdChenLingFinishPrepareCsReq": 9602, + "CmdChenLingUnlockGridCsReq": 9604, + "CmdChenLingQuitStageScRsp": 9605, + "CmdChenLingUseHandCardCsReq": 9607, + "CmdChenLingGetDataScRsp": 9608, + "CmdChenLingHandlePendingActionsCsReq": 9610, + "CmdChenLingFinishBattleCsReq": 9611, + "CmdChenLingGetDataCsReq": 9612, + "CmdChenLingMoveEntityCsReq": 9613, + "CmdChenLingRefreshCardCsReq": 9614, + "CmdChenLingSellHandCardCsReq": 9615, + "CmdChenLingSelectPolicyCsReq": 9616, + "CmdChenLingStartStageCsReq": 9618, + "CmdChenLingStartStageScRsp": 9620, + "CmdChenLingFesLevelEndScRsp": 9911, + "CmdChenLingFesLevelResumeScRsp": 9924, + "CmdChenLingFesBusinessDayEndScRsp": 9926, + "CmdChenLingFesLevelLeaveCsReq": 9930, + "CmdChenLingFesRaidKickedNotify": 9932, + "CmdChenLingFesLevelResumeCsReq": 9934, + "CmdChenLingFesLevelLeaveScRsp": 9935, + "CmdChenLingFesLevelEndCsReq": 9937, + "CmdGetChenLingFesDataScRsp": 9938, + "CmdGetChenLingFesDataCsReq": 9942, + "CmdChenLingFesBusinessDayEndCsReq": 9945, + "CmdChenLingFesLevelStartCsReq": 9948, + "CmdChenLingFesLevelStartScRsp": 9950, + "CmdChessRogueSelectCellCsReq": 5402, + "CmdChessRogueSkipTeachingLevelCsReq": 5403, + "CmdChessRogueConfirmRollScRsp": 5405, + "CmdChessRogueEnterNextLayerScRsp": 5407, + "CmdGetChessRogueNousStoryInfoCsReq": 5410, + "CmdChessRogueNousDiceSurfaceUnlockNotify": 5412, + "CmdChessRogueUpdateLevelBaseInfoScNotify": 5415, + "CmdSyncChessRogueNousMainStoryScNotify": 5418, + "CmdEnhanceRogueBuffCsReq": 5424, + "CmdChessRogueNousGetRogueTalentInfoCsReq": 5426, + "CmdChessRogueSkipTeachingLevelScRsp": 5429, + "CmdChessRogueCheatRollScRsp": 5432, + "CmdChessRogueUpdateAeonModifierValueScNotify": 5433, + "CmdChessRogueNousGetRogueTalentInfoScRsp": 5434, + "CmdChessRogueNousDiceUpdateNotify": 5436, + "CmdChessRogueCheatRollCsReq": 5437, + "CmdChessRogueEnterNextLayerCsReq": 5441, + "CmdReviveRogueAvatarScRsp": 5444, + "CmdChessRogueLeaveCsReq": 5445, + "CmdChessRogueLeaveScRsp": 5446, + "CmdChessRogueQueryCsReq": 5449, + "CmdSyncChessRogueNousValueScNotify": 5452, + "CmdChessRogueGiveUpCsReq": 5457, + "CmdPickRogueAvatarCsReq": 5458, + "CmdChessRogueGiveUpScRsp": 5459, + "CmdChessRogueQueryScRsp": 5460, + "CmdChessRogueEnterCsReq": 5461, + "CmdGetChessRogueNousStoryInfoScRsp": 5462, + "CmdGetRogueBuffEnhanceInfoCsReq": 5470, + "CmdChessRogueReRollDiceScRsp": 5490, + "CmdChessRogueStartScRsp": 5491, + "CmdPickRogueAvatarScRsp": 5494, + "CmdGetRogueBuffEnhanceInfoScRsp": 5495, + "CmdChessRogueQuestFinishNotify": 5496, + "CmdChessRogueNousEditDiceScRsp": 5497, + "CmdEnterChessRogueAeonRoomScRsp": 5499, + "CmdChessRogueUpdateMoneyInfoScNotify": 5502, + "CmdChessRogueSelectCellScRsp": 5503, + "CmdChessRogueQuitCsReq": 5510, + "CmdChessRogueEnterScRsp": 5511, + "CmdSyncChessRogueMainStoryFinishScNotify": 5514, + "CmdChessRogueUpdateDicePassiveAccumulateValueScNotify": 5515, + "CmdChessRogueUpdateReviveInfoScNotify": 5517, + "CmdChessRogueChangeAeonDimensionNotify": 5521, + "CmdChessRogueUpdateUnlockLevelScNotify": 5527, + "CmdChessRogueRollDiceScRsp": 5530, + "CmdChessRogueUpdateDiceInfoScNotify": 5532, + "CmdChessRogueCellUpdateNotify": 5536, + "CmdChessRogueNousEnableRogueTalentScRsp": 5537, + "CmdFinishChessRogueSubStoryCsReq": 5538, + "CmdChessRogueReRollDiceCsReq": 5542, + "CmdChessRogueNousEnableRogueTalentCsReq": 5547, + "CmdChessRogueEnterCellCsReq": 5550, + "CmdGetChessRogueStoryAeonTalkInfoScRsp": 5554, + "CmdChessRogueEnterCellScRsp": 5555, + "CmdChessRogueConfirmRollCsReq": 5559, + "CmdFinishChessRogueSubStoryScRsp": 5564, + "CmdSyncChessRogueNousSubStoryScNotify": 5565, + "CmdGetChessRogueStoryInfoCsReq": 5567, + "CmdChessRogueUpdateActionPointScNotify": 5568, + "CmdReviveRogueAvatarCsReq": 5570, + "CmdEnhanceRogueBuffScRsp": 5571, + "CmdChessRogueRollDiceCsReq": 5573, + "CmdChessRogueUpdateAllowedSelectCellScNotify": 5574, + "CmdSelectChessRogueSubStoryCsReq": 5580, + "CmdGetChessRogueStoryAeonTalkInfoCsReq": 5583, + "CmdChessRogueStartCsReq": 5588, + "CmdGetChessRogueStoryInfoScRsp": 5589, + "CmdChessRogueNousEditDiceCsReq": 5590, + "CmdChessRogueQuitScRsp": 5592, + "CmdEnterChessRogueAeonRoomCsReq": 5595, + "CmdSelectChessRogueSubStoryScRsp": 5600, + "CmdChimeraRoundWorkStartScRsp": 8161, + "CmdChimeraQuitEndlessCsReq": 8165, + "CmdChimeraStartEndlessScRsp": 8166, + "CmdChimeraStartEndlessCsReq": 8167, + "CmdChimeraRoundWorkStartCsReq": 8170, + "CmdChimeraQuitEndlessScRsp": 8171, + "CmdChimeraFinishEndlessRoundScRsp": 8172, + "CmdChimeraFinishEndlessRoundCsReq": 8173, + "CmdChimeraGetDataCsReq": 8175, + "CmdChimeraFinishRoundCsReq": 8176, + "CmdChimeraDoFinalRoundCsReq": 8178, + "CmdChimeraDoFinalRoundScRsp": 8179, + "CmdChimeraDuelSellChimeraCsReq": 9213, + "CmdChimeraDuelShopRefreshScRsp": 9216, + "CmdChimeraDuelShopRefreshCsReq": 9218, + "CmdChimeraDuelShopLockScRsp": 9219, + "CmdChimeraDuelEndGameScRsp": 9220, + "CmdChimeraDuelEndRoundShopStageScRsp": 9221, + "CmdChimeraDuelSetFriendDefendLineupCsReq": 9223, + "CmdChimeraDuelSaveFriendPvpLineupCsReq": 9224, + "CmdChimeraDuelShopLockCsReq": 9225, + "CmdChimeraDuelShopBuyItemScRsp": 9226, + "CmdChimeraDuelSetFriendDefendLineupScRsp": 9227, + "CmdChimeraDuelSelectGameCsReq": 9228, + "CmdChimeraDuelFinishMasterChallengeScRsp": 9231, + "CmdChimeraDuelChangeLineupCsReq": 9232, + "CmdChimeraDuelSaveFriendPvpLineupScRsp": 9233, + "CmdChimeraDuelStartGameScRsp": 9234, + "CmdChimeraDuelShopBuyChimeraScRsp": 9235, + "CmdChimeraDuelEndRoundBattleStageScRsp": 9236, + "CmdChimeraDuelSelectGameScRsp": 9237, + "CmdChimeraDuelSellChimeraScRsp": 9239, + "CmdChimeraDuelUnlockMasterCsReq": 9240, + "CmdChimeraDuelSyncChangeScNotify": 9241, + "CmdChimeraDuelEndGameCsReq": 9242, + "CmdChimeraDuelStartGameCsReq": 9244, + "CmdChimeraDuelUnlockMasterScRsp": 9245, + "CmdChimeraDuelEndRoundShopStageCsReq": 9247, + "CmdChimeraDuelGetDataScRsp": 9248, + "CmdChimeraDuelGetFriendListCsReq": 9250, + "CmdChimeraDuelShopBuyChimeraCsReq": 9251, + "CmdChimeraDuelGetDataCsReq": 9252, + "CmdChimeraDuelFinishMasterChallengeCsReq": 9253, + "CmdChimeraDuelShopBuyItemCsReq": 9254, + "CmdChimeraDuelEndRoundBattleStageCsReq": 9255, + "CmdChimeraDuelChangeLineupScRsp": 9256, + "CmdChooseDeliveryCsReq": 9484, + "CmdChooseDeliveryGetDataScRsp": 9488, + "CmdChooseDeliveryGetDataCsReq": 9495, + "CmdChooseDeliveryScRsp": 9500, + "CmdClockParkFinishScriptScNotify": 7208, + "CmdClockParkUseBuffScRsp": 7209, + "CmdClockParkQuitScriptScRsp": 7210, + "CmdClockParkGetOngoingScriptInfoScRsp": 7211, + "CmdClockParkUseBuffCsReq": 7215, + "CmdClockParkStartScriptScRsp": 7224, + "CmdClockParkHandleWaitOperationScRsp": 7226, + "CmdClockParkUnlockTalentCsReq": 7230, + "CmdClockParkQuitScriptCsReq": 7232, + "CmdClockParkStartScriptCsReq": 7234, + "CmdClockParkUnlockTalentScRsp": 7235, + "CmdClockParkGetOngoingScriptInfoCsReq": 7237, + "CmdClockParkGetInfoScRsp": 7238, + "CmdClockParkGetInfoCsReq": 7242, + "CmdClockParkHandleWaitFinishStoryOperationCsReq": 7245, + "CmdContentPackageType_NLCDGIPGFDJ": 0, + "CmdContentPackageTransferScNotify": 7535, + "CmdContentPackageGetDataScRsp": 7538, + "CmdContentPackageGetDataCsReq": 7542, + "CmdContentPackageSyncDataScNotify": 7548, + "CmdDailyActiveInfoNotify": 3305, + "CmdTakeApRewardScRsp": 3319, + "CmdGetDailyActiveInfoCsReq": 3331, + "CmdTakeAllApRewardScRsp": 3359, + "CmdTakeAllApRewardCsReq": 3371, + "CmdTakeApRewardCsReq": 3374, + "CmdGetDailyActiveInfoScRsp": 3387, + "CmdDrawCsReq": 10224, + "CmdDrawScRsp": 10240, + "CmdV2FinishPVEStageScRsp": 9267, + "CmdBuyShopGoodScRsp": 9268, + "CmdV2FinishPVEStageCsReq": 9274, + "CmdDiceCombatUpgradeAvatarCsReq": 9276, + "CmdDiceCombatFinishPVEStageCsReq": 9284, + "CmdDiceCombatMainPageRollDiceCsReq": 9286, + "CmdDiceCombatMainPageRollDiceScRsp": 9291, + "CmdFinishPVEStageScRsp": 9292, + "CmdGetShopDataScRsp": 9295, + "CmdModifyAvatarDiceCsReq": 9300, + "CmdDrinkMakerType_NLCDGIPGFDJ": 0, + "CmdDrinkMakerCheersMakeDrinkScRsp": 6981, + "CmdDrinkMakerCheersEnterNextGroupScRsp": 6982, + "CmdMakeDrinkCsReq": 6984, + "CmdDrinkMakerChallengeScRsp": 6985, + "CmdMakeMissionDrinkScRsp": 6986, + "CmdMakeMissionDrinkCsReq": 6987, + "CmdGetDrinkMakerDataScRsp": 6988, + "CmdEndDrinkMakerSequenceScRsp": 6989, + "CmdDrinkMakerCheersMakeDrinkCsReq": 6990, + "CmdDrinkMakerUpdateTipsNotify": 6991, + "CmdDrinkMakerChallengeCsReq": 6992, + "CmdGetDrinkMakerDayEndScNotify": 6993, + "CmdDrinkMakerCheersEnterNextGroupCsReq": 6994, + "CmdGetDrinkMakerDataCsReq": 6995, + "CmdEndDrinkMakerSequenceCsReq": 6996, + "CmdDrinkMakerCheersGetDataCsReq": 6998, + "CmdDrinkMakerCheersGetDataScRsp": 6999, + "CmdMakeDrinkScRsp": 7000, + "CmdGetElationActivityDataCsReq": 9103, + "CmdGetElationActivityDataScRsp": 9106, + "CmdEnterElationActivityStageCsReq": 9107, + "CmdElationActivityBattleEndScNotify": 9108, + "CmdEnterElationActivityStageScRsp": 9110, + "CmdElfRestaurantType_NLCDGIPGFDJ": 0, + "CmdElfRestaurantBuyShopItemScRsp": 2553, + "CmdElfRestaurantUpgradeRecipeLevelScRsp": 2556, + "CmdElfRestaurantUpgradeRecipeLevelCsReq": 2558, + "CmdElfRestaurantUpgradeFacilityLevelScRsp": 2559, + "CmdElfRestaurantRecycleSeedScRsp": 2560, + "CmdElfRestaurantPlantSeedScRsp": 2561, + "CmdSetElfRestaurantPlayRecipeScRsp": 2563, + "CmdElfRestaurantTakeVillagerRewardScRsp": 2564, + "CmdElfRestaurantUpgradeFacilityLevelCsReq": 2565, + "CmdElfRestaurantUpgradeEmployeeLevelScRsp": 2566, + "CmdElfRestaurantClientStatusCsReq": 2567, + "CmdElfRestaurantFinishTradeOrderScRsp": 2568, + "CmdSettleElfRestaurantPlayScRsp": 2572, + "CmdSetElfRestaurantPlayRecipeCsReq": 2573, + "CmdElfRestaurantBuyFieldScRsp": 2574, + "CmdElfRestaurantType_HPKGGLPLHMD": 2575, + "CmdElfRestaurantHarvestCropScRsp": 2576, + "CmdElfRestaurantTakeVillagerRewardCsReq": 2577, + "CmdElfRestaurantFinishTradeOrderCsReq": 2579, + "CmdSettleElfRestaurantPlayCsReq": 2581, + "CmdElfRestaurantRecycleSeedCsReq": 2582, + "CmdElfRestaurantBuyFieldCsReq": 2584, + "CmdElfRestaurantDataChangeNotify": 2585, + "CmdElfRestaurantPlantSeedCsReq": 2587, + "CmdGetElfRestaurantDataScRsp": 2588, + "CmdElfRestaurantClientStatusScRsp": 2590, + "CmdElfRestaurantType_LCFDIHFAGHA": 2591, + "CmdGetElfRestaurantDataCsReq": 2592, + "CmdElfRestaurantUpgradeEmployeeLevelCsReq": 2594, + "CmdElfRestaurantHarvestCropCsReq": 2595, + "CmdElfRestaurantBuyShopItemCsReq": 2596, + "CmdEnterElfRestaurantNextDayCsReq": 2598, + "CmdEnterElfRestaurantNextDayScRsp": 2600, + "CmdGetEraFlipperDataScRsp": 6554, + "CmdEnterEraFlipperDataScRsp": 6555, + "CmdResetEraFlipperDataScRsp": 6557, + "CmdEnterEraFlipperDataCsReq": 6558, + "CmdChangeEraFlipperDataCsReq": 6561, + "CmdGetEraFlipperDataCsReq": 6562, + "CmdChangeEraFlipperDataScRsp": 6565, + "CmdResetEraFlipperDataCsReq": 6566, + "CmdEvolveBuildSkipTeachLevelCsReq": 7103, + "CmdGetEvolveBuildShopAbilityResetCsReq": 7106, + "CmdGetEvolveBuildShopAbilityDownScRsp": 7115, + "CmdGetEvolveBuildShopAbilityDownCsReq": 7116, + "CmdGetEvolveBuildCoinNotify": 7122, + "CmdGetEvolveBuildGiveupScRsp": 7124, + "CmdGetEvolveBuildShopAbilityUpCsReq": 7125, + "CmdGetEvolveBuildReRandomStageCsReq": 7126, + "CmdEvolveBuildSkipTeachLevelScRsp": 7129, + "CmdEvolveBuildStartStageCsReq": 7130, + "CmdGetEvolveBuildShopAbilityResetScRsp": 7131, + "CmdGetEvolveBuildReRandomStageScRsp": 7132, + "CmdGetEvolveBuildGiveupCsReq": 7134, + "CmdEvolveBuildStartStageScRsp": 7135, + "CmdGetEvolveBuildQueryInfoScRsp": 7138, + "CmdGetEvolveBuildQueryInfoCsReq": 7142, + "CmdGetEvolveBuildShopAbilityUpScRsp": 7144, + "CmdGetEvolveBuildFinishScNotify": 7145, + "CmdEvolveBuildStartLevelCsReq": 7148, + "CmdEvolveBuildStartLevelScRsp": 7150, + "CmdTakeMultipleExpeditionRewardScRsp": 2515, + "CmdTakeMultipleExpeditionRewardCsReq": 2516, + "CmdAcceptMultipleExpeditionCsReq": 2525, + "CmdGetExpeditionDataScRsp": 2538, + "CmdGetExpeditionDataCsReq": 2542, + "CmdAcceptMultipleExpeditionScRsp": 2544, + "CmdEnterFantasticStoryActivityStageScRsp": 4905, + "CmdGetFantasticStoryActivityDataScRsp": 4919, + "CmdFantasticStoryActivityBattleEndScNotify": 4971, + "CmdGetFantasticStoryActivityDataCsReq": 4974, + "CmdEnterFantasticStoryActivityStageCsReq": 4987, + "CmdFateTakeExpRewardCsReq": 5953, + "CmdFateSyncPendingActionScNotify": 5956, + "CmdFateSyncActionResultScNotify": 5958, + "CmdFateHandlePendingActionScRsp": 5959, + "CmdFateShopRefreshGoodsScRsp": 5960, + "CmdFateShopBuyGoodsScRsp": 5961, + "CmdFateShopLeaveScRsp": 5966, + "CmdFateChangeLineupScRsp": 5974, + "CmdFateShopLockGoodsScRsp": 5975, + "CmdFateShopSellBuffScRsp": 5976, + "CmdFateTakeExpRewardScRsp": 5979, + "CmdFateBattleStartCsReq": 5980, + "CmdFateShopRefreshGoodsCsReq": 5982, + "CmdFateChangeLineupCsReq": 5984, + "CmdFateBattleStartScRsp": 5985, + "CmdFateShopBuyGoodsCsReq": 5987, + "CmdFateQueryScRsp": 5988, + "CmdFateShopLockGoodsCsReq": 5991, + "CmdFateQueryCsReq": 5992, + "CmdFateShopLeaveCsReq": 5994, + "CmdFateShopSellBuffCsReq": 5995, + "CmdFateSettleScNotify": 5996, + "CmdFateStartCsReq": 5998, + "CmdFateStartScRsp": 6000, + "CmdFateRinGetDataScRsp": 9873, + "CmdFateRinStartChallengeFightScRsp": 9875, + "CmdFateRinStartHouguMapFightScRsp": 9877, + "CmdFateRinStartStoryFightCsReq": 9882, + "CmdFateRinStartStoryFightScRsp": 9886, + "CmdFateRinStartHouguMapFightCsReq": 9891, + "CmdFateRinStartChallengeFightCsReq": 9895, + "CmdFateRinGetDataCsReq": 9897, + "CmdEnterFeverTimeActivityStageCsReq": 7153, + "CmdEnterFeverTimeActivityStageScRsp": 7156, + "CmdFeverTimeActivityBattleEndScNotify": 7157, + "CmdGetFeverTimeActivityDataScRsp": 7158, + "CmdGetFeverTimeActivityDataCsReq": 7160, + "CmdEnterFightActivityStageScRsp": 3605, + "CmdGetFightActivityDataScRsp": 3619, + "CmdFightActivityDataChangeScNotify": 3631, + "CmdTakeFightActivityRewardScRsp": 3659, + "CmdTakeFightActivityRewardCsReq": 3671, + "CmdGetFightActivityDataCsReq": 3674, + "CmdEnterFightActivityStageCsReq": 3687, + "CmdFightFestUpdateCoinNotify": 7274, + "CmdFightFestScoreUpdateNotify": 7280, + "CmdFightFestUpdateChallengeRecordNotify": 7284, + "CmdFightFestUnlockSkillNotify": 7285, + "CmdGetFightFestDataScRsp": 7288, + "CmdGetFightFestDataCsReq": 7292, + "CmdStartFightFestCsReq": 7298, + "CmdStartFightFestScRsp": 7300, + "CmdStartFinalityBattleLevelCsReq": 10027, + "CmdStartFinalityBattleLevelScRsp": 10030, + "CmdGetFiveDimGameDataScRsp": 2254, + "CmdUpdateFiveDimGameDataScRsp": 2255, + "CmdLeaveFiveDimGameScRsp": 2257, + "CmdUpdateFiveDimGameDataCsReq": 2258, + "CmdFiveDimJumpEnergyChangeScNotify": 2259, + "CmdGetFiveDimMoneyDataScRsp": 2260, + "CmdEnterFiveDimGameCsReq": 2261, + "CmdGetFiveDimGameDataCsReq": 2262, + "CmdGetFiveDimMoneyScRsp": 2263, + "CmdEnterFiveDimGameScRsp": 2265, + "CmdLeaveFiveDimGameCsReq": 2266, + "CmdFiveDimGameDataUpdateScNotify": 2269, + "CmdFiveDimGameTransferCsReq": 2270, + "CmdFiveDimMoneyChangeScNotify": 2271, + "CmdFiveDimGameTransferScRsp": 2272, + "CmdGetFiveDimMoneyCsReq": 2273, + "CmdGetFiveDimMoneyDataCsReq": 2275, + "CmdFriendType_NLCDGIPGFDJ": 0, + "CmdGetFriendDevelopmentInfoScRsp": 2901, + "CmdGetFriendRecommendListInfoScRsp": 2904, + "CmdGetFriendApplyListInfoCsReq": 2905, + "CmdSyncApplyFriendScNotify": 2906, + "CmdSyncAddBlacklistScNotify": 2908, + "CmdGetPlatformPlayerInfoScRsp": 2912, + "CmdReportPlayerScRsp": 2915, + "CmdGetFriendDevelopmentInfoCsReq": 2916, + "CmdApplyFriendScRsp": 2918, + "CmdFriendType_DPOMKJGPGOA": 2919, + "CmdSetFriendMarkScRsp": 2920, + "CmdTakeAssistRewardCsReq": 2922, + "CmdDeleteBlacklistCsReq": 2923, + "CmdHandleFriendScRsp": 2927, + "CmdDeleteBlacklistScRsp": 2928, + "CmdSetForbidOtherApplyFriendScRsp": 2929, + "CmdGetFriendRecommendLineupDetailScRsp": 2930, + "CmdGetPlayerDetailInfoCsReq": 2931, + "CmdDeleteFriendCsReq": 2935, + "CmdGetFriendRecommendLineupDetailCsReq": 2936, + "CmdGetFriendAssistListScRsp": 2939, + "CmdGetFriendLoginInfoCsReq": 2943, + "CmdGetAssistHistoryScRsp": 2944, + "CmdGetFriendBattleRecordDetailScRsp": 2945, + "CmdSetFriendMarkCsReq": 2946, + "CmdSyncDeleteFriendScNotify": 2947, + "CmdAddBlacklistCsReq": 2948, + "CmdTakeAssistRewardScRsp": 2949, + "CmdGetCurAssistScRsp": 2950, + "CmdSetAssistCsReq": 2951, + "CmdSyncHandleFriendScNotify": 2952, + "CmdGetFriendLoginInfoScRsp": 2953, + "CmdSetAssistScRsp": 2954, + "CmdSetFriendRemarkNameScRsp": 2957, + "CmdApplyFriendCsReq": 2959, + "CmdSetAllowOtherApplyFriendCsReq": 2960, + "CmdGetAssistListCsReq": 2962, + "CmdSearchPlayerScRsp": 2963, + "CmdCurAssistChangedNotify": 2966, + "CmdSearchPlayerCsReq": 2967, + "CmdGetAssistHistoryCsReq": 2968, + "CmdHandleFriendCsReq": 2970, + "CmdGetFriendApplyListInfoScRsp": 2971, + "CmdGetFriendListInfoCsReq": 2974, + "CmdAddBlacklistScRsp": 2975, + "CmdGetFriendAssistListCsReq": 2978, + "CmdGetAssistListScRsp": 2980, + "CmdNewAssistHistoryNotify": 2981, + "CmdReportPlayerCsReq": 2982, + "CmdGetFriendRecommendLineupScRsp": 2984, + "CmdGetFriendRecommendLineupCsReq": 2985, + "CmdGetPlayerDetailInfoScRsp": 2987, + "CmdGetCurAssistCsReq": 2989, + "CmdGetPlatformPlayerInfoCsReq": 2990, + "CmdGetFriendRecommendListInfoCsReq": 2992, + "CmdSetFriendRemarkNameCsReq": 2994, + "CmdGetFriendBattleRecordDetailCsReq": 2995, + "CmdDeleteFriendScRsp": 2998, + "CmdGridFightDestroyWeeklyRewardScRsp": 8409, + "CmdGridFightSpotLightEnterScRsp": 8417, + "CmdGridFightEquipDressScRsp": 8420, + "CmdGridFightEnterBattleStageCsReq": 8429, + "CmdGridFightBuyExpCsReq": 8441, + "CmdGridFightPermanentTalentEnableScRsp": 8442, + "CmdGridFightResumeGamePlayScRsp": 8452, + "CmdGridFightSyncTutorialProgressIdScNotify": 8457, + "CmdGridFightSeasonTalentEnableScRsp": 8459, + "CmdGridFightUpdateEquipTrackPriorityScRsp": 8464, + "CmdGridFightHandlePendingActionScRsp": 8466, + "CmdGridFightPermanentTalentResetScRsp": 8479, + "CmdGridFightHandleBonfireHealHpCsReq": 8485, + "CmdUpdateGameFormationCsReq": 8486, + "CmdGridFightEquipCraftCsReq": 8488, + "CmdGridFightGetDataScRsp": 8503, + "CmdGridFightSpotLightEnterCsReq": 8508, + "CmdGridFightQuitLeaveGamePlayScRsp": 8509, + "CmdGridFightStartGamePlayScRsp": 8511, + "CmdGridFightSummonProjectionCsReq": 8514, + "CmdGridFightSyncKeepWinCntNotify": 8515, + "CmdGridFightSpotLightReplaceScRsp": 8518, + "CmdGridFightBackToPrepareScRsp": 8532, + "CmdGridFightBuyGoodsCsReq": 8533, + "CmdGridFightUpdateEquipTrackCsReq": 8537, + "CmdGridFightSeasonTalentResetCsReq": 8540, + "CmdGridFightGetDataCsReq": 8541, + "CmdGridFightUseForgeScRsp": 8551, + "CmdGridFightRecycleItemCsReq": 8553, + "CmdGridFightUpdateEliteBranchSelectCsReq": 8554, + "CmdGridFightEnterBonfireCsReq": 8559, + "CmdGridFightFinishTutorialCsReq": 8561, + "CmdGridFightLockShopCsReq": 8572, + "CmdGridFightUseForgeCsReq": 8573, + "CmdGridFightSummonProjectionScRsp": 8577, + "CmdGridFightStartGamePlayCsReq": 8579, + "CmdGridFightEnterBonfireScRsp": 8582, + "CmdGridFightWeeklyExtraSeasonExpScRsp": 8591, + "CmdGetGameFormationCsReq": 8596, + "CmdGridFightPermanentTalentResetCsReq": 8603, + "CmdGridFightBuyExpScRsp": 8607, + "CmdGridFightLockShopScRsp": 8608, + "CmdGridFightTakeWeeklyRewardScRsp": 8618, + "CmdGridFightSeasonTalentEnableCsReq": 8626, + "CmdGridFightPermanentTalentEnableCsReq": 8629, + "CmdGridFightResumeGamePlayCsReq": 8631, + "CmdGridFightRecycleRoleScRsp": 8633, + "CmdGridFightUpdateSpotLightTrackCsReq": 8636, + "CmdFavourArchiveScRsp": 8644, + "CmdGridFightUpdatePosScRsp": 8648, + "CmdGridFightTraitUpdateCsReq": 8657, + "CmdGridFightTakeWeeklyRewardCsReq": 8667, + "CmdFavourArchiveCsReq": 8668, + "CmdGridFightGetArchiveScRsp": 8679, + "CmdGridFightSeasonHandBookNotify": 8680, + "CmdGridFightSyncUpdateResultScNotify": 8683, + "CmdGridFightQuitLeaveGamePlayCsReq": 8691, + "CmdGridFightRecycleItemScRsp": 8695, + "CmdGridFightEquipDressCsReq": 8698, + "CmdGridFightRefreshShopScRsp": 8699, + "CmdGridFightRefreshShopCsReq": 8701, + "CmdGridFightSettleNotify": 8706, + "CmdGridFightTraitUpdateScRsp": 8708, + "CmdGridFightUpdateEquipTrackPriorityCsReq": 8710, + "CmdGridFightRecycleRoleCsReq": 8712, + "CmdGridFightSyncVirtualItemNotify": 8716, + "CmdGridFightUpdateEliteBranchSelectScRsp": 8724, + "CmdGridFightUpdateSpotLightTrackScRsp": 8727, + "CmdGridFightSpotLightReplaceCsReq": 8740, + "CmdGridFightSeasonTalentResetScRsp": 8747, + "CmdGridFightLastTutorialFinishScNotify": 8751, + "CmdGridFightQuitSettleScRsp": 8755, + "CmdGridFightFinishTutorialScRsp": 8762, + "CmdGridFightDestroyWeeklyRewardCsReq": 8766, + "CmdGridFightUpdateEquipTrackScRsp": 8769, + "CmdGridFightEnterBattleStageScRsp": 8777, + "CmdGridFightQuitSettleCsReq": 8779, + "CmdCheckTextCsReq": 8781, + "CmdGridFightEndBattleStageNotify": 8782, + "CmdGridFightGetArchiveCsReq": 8784, + "CmdGridFightEquipCraftScRsp": 8790, + "CmdGridFightUpdatePosCsReq": 8795, + "CmdSubmitEmotionItemCsReq": 6305, + "CmdHeartDialScriptChangeScNotify": 6306, + "CmdFinishEmotionDialoguePerformanceScRsp": 6318, + "CmdGetHeartDialInfoScRsp": 6319, + "CmdHeartDialTraceScriptScRsp": 6327, + "CmdChangeScriptEmotionCsReq": 6331, + "CmdFinishEmotionDialoguePerformanceCsReq": 6359, + "CmdHeartDialTraceScriptCsReq": 6370, + "CmdSubmitEmotionItemScRsp": 6371, + "CmdGetHeartDialInfoCsReq": 6374, + "CmdChangeScriptEmotionScRsp": 6387, + "CmdHeliobusEnterBattleCsReq": 5804, + "CmdHeliobusSnsPostCsReq": 5805, + "CmdHeliobusSnsCommentCsReq": 5806, + "CmdHeliobusChallengeUpdateScNotify": 5815, + "CmdHeliobusSnsLikeScRsp": 5818, + "CmdHeliobusActivityDataScRsp": 5819, + "CmdHeliobusLineupUpdateScNotify": 5823, + "CmdHeliobusSnsUpdateScNotify": 5827, + "CmdHeliobusSnsReadCsReq": 5831, + "CmdHeliobusUpgradeLevelCsReq": 5835, + "CmdHeliobusUnlockSkillScNotify": 5847, + "CmdHeliobusSelectSkillCsReq": 5848, + "CmdHeliobusInfoChangedScNotify": 5852, + "CmdHeliobusStartRaidCsReq": 5857, + "CmdHeliobusSnsLikeCsReq": 5859, + "CmdHeliobusSnsCommentScRsp": 5870, + "CmdHeliobusSnsPostScRsp": 5871, + "CmdHeliobusActivityDataCsReq": 5874, + "CmdHeliobusSelectSkillScRsp": 5875, + "CmdHeliobusStartRaidScRsp": 5882, + "CmdHeliobusSnsReadScRsp": 5887, + "CmdHeliobusEnterBattleScRsp": 5894, + "CmdHeliobusUpgradeLevelScRsp": 5898, + "CmdHipplenChangeScNotify": 9009, + "CmdSetHipplenOutfitScRsp": 9010, + "CmdHipplenCycleResultScNotify": 9011, + "CmdTakeHipplenEndingRewardScRsp": 9015, + "CmdTakeHipplenEndingRewardCsReq": 9016, + "CmdSettleHipplenWorkScRsp": 9024, + "CmdOpenHipplenCycleScRsp": 9026, + "CmdSetHipplenAgendaCsReq": 9030, + "CmdSetHipplenOutfitCsReq": 9032, + "CmdSettleHipplenWorkCsReq": 9034, + "CmdSetHipplenAgendaScRsp": 9035, + "CmdHipplenAgendaResultScNotify": 9037, + "CmdGetHipplenDataScRsp": 9038, + "CmdGetHipplenDataCsReq": 9042, + "CmdHipplenTraitUnlockScNotify": 9044, + "CmdOpenHipplenCycleCsReq": 9045, + "CmdGetHipplenInheritCsReq": 9048, + "CmdGetHipplenInheritScRsp": 9050, + "CmdIdleLiveGetPendingEquipScRsp": 9354, + "CmdIdleLiveStartNodeBattleCsReq": 9355, + "CmdIdleLiveFinishNodeEventCsReq": 9356, + "CmdIdleLiveCollectIncomeScRsp": 9358, + "CmdIdleLiveEndDungeonCsReq": 9362, + "CmdDressSpecialEquipScRsp": 9365, + "CmdIdleLiveFinishQuestionTimeoutCsReq": 9366, + "CmdIdleLiveFinishNodeBattleScRsp": 9368, + "CmdIdleLiveTakeAssistRewardCsReq": 9370, + "CmdIdleLiveTakeContentRewardCsReq": 9372, + "CmdIdleLiveFinishFinalActCsReq": 9377, + "CmdHandlePendingEquipScRsp": 9378, + "CmdIdleLiveStartNodeCsReq": 9381, + "CmdGetFriendNewAssistRewardScNotify": 9389, + "CmdIdleLiveUpgradeSlotCsReq": 9391, + "CmdEndDungeonScRsp": 9393, + "CmdUpdateCustomInfoScRsp": 9395, + "CmdIdleLiveReplaceTeamCsReq": 9397, + "CmdTakeContentScRsp": 9399, + "CmdIdleLiveDoGachaCsReq": 9400, + "CmdTakeTaskRewardScRsp": 9401, + "CmdIdleLiveFinishFinalActScRsp": 9402, + "CmdIdleLiveChangeTechTreeNodeCsReq": 9404, + "CmdIdleLiveOpenChestScRsp": 9407, + "CmdIdleLiveFinishNodeBattleCsReq": 9409, + "CmdIdleLiveGetStatisticScRsp": 9413, + "CmdIdleLiveTakeQuestEquipCsReq": 9414, + "CmdIdleLiveStartDungeonCsReq": 9416, + "CmdIdleLiveGetStatisticCsReq": 9417, + "CmdIdleLiveFinishNodeEventScRsp": 9420, + "CmdStartNodeBattleScRsp": 9421, + "CmdIdleLiveGetDataCsReq": 9424, + "CmdIdleLiveCollectIncomeCsReq": 9425, + "CmdIdleLiveTakeTaskRewardCsReq": 9430, + "CmdIdleLiveDressSpecialEquipCsReq": 9432, + "CmdGetFriendDungeonInfoScRsp": 9434, + "CmdIdleLiveGetFriendDungeonInfoCsReq": 9435, + "CmdIdleLiveStartNodeScRsp": 9437, + "CmdStartDungeonScRsp": 9440, + "CmdIdleLiveGetPendingEquipCsReq": 9442, + "CmdIdleLiveUpdateLiveRoomIconCsReq": 9445, + "CmdItemType_NLCDGIPGFDJ": 0, + "CmdRelicFilterPlanClearNameScNotify": 501, + "CmdSellItemScRsp": 504, + "CmdCmdLockEquipmentCsReq": 505, + "CmdRankUpEquipmentCsReq": 506, + "CmdCmdLockRelicScRsp": 508, + "CmdBatchRankUpEquipmentScRsp": 509, + "CmdDiscardRelicCsReq": 512, + "CmdEquipmentQuickUpCsReq": 513, + "CmdComposeSelectedRelicCsReq": 515, + "CmdMarkRelicFilterPlanScRsp": 516, + "CmdEquipmentQuickUpScRsp": 517, + "CmdUseItemScRsp": 518, + "CmdGetBagScRsp": 519, + "CmdGetRelicFilterPlanCsReq": 520, + "CmdSyncTurnFoodNotify": 522, + "CmdComposeSelectedRelicScRsp": 523, + "CmdRelicCraftScRsp": 526, + "CmdExpUpEquipmentCsReq": 527, + "CmdAddEquipmentScRsp": 528, + "CmdRelicReforgeConfirmScRsp": 530, + "CmdPromoteEquipmentCsReq": 531, + "CmdSpecialComposeItemCsReq": 535, + "CmdRelicReforgeConfirmCsReq": 536, + "CmdBatchRankUpEquipmentCsReq": 538, + "CmdAddRelicFilterPlanCsReq": 539, + "CmdModifyRelicFilterPlanScRsp": 541, + "CmdDiscardRelicScRsp": 543, + "CmdMarkItemScRsp": 544, + "CmdMarkRelicFilterPlanCsReq": 545, + "CmdExpUpRelicCsReq": 547, + "CmdExpUpRelicScRsp": 548, + "CmdSetTurnFoodSwitchCsReq": 549, + "CmdGetMarkItemListScRsp": 550, + "CmdDestroyItemCsReq": 551, + "CmdExpUpEquipmentScRsp": 552, + "CmdDestroyItemScRsp": 554, + "CmdModifyRelicFilterPlanCsReq": 555, + "CmdExchangeHcoinCsReq": 557, + "CmdUseItemCsReq": 559, + "CmdComposeLimitNumCompleteScNotify": 562, + "CmdGetRecyleTimeScRsp": 563, + "CmdAddRelicFilterPlanScRsp": 564, + "CmdSetTurnFoodSwitchScRsp": 566, + "CmdGetRecycleTimeCsReq": 567, + "CmdMarkItemCsReq": 568, + "CmdRelicCraftCsReq": 569, + "CmdRankUpEquipmentScRsp": 570, + "CmdCmdLockEquipmentScRsp": 571, + "CmdGetBagCsReq": 574, + "CmdCmdLockRelicCsReq": 575, + "CmdGetRelicFilterPlanScRsp": 578, + "CmdComposeLimitNumUpdateScNotify": 580, + "CmdCancelMarkItemNotify": 581, + "CmdExchangeHcoinScRsp": 582, + "CmdRelicReforgeScRsp": 584, + "CmdRelicReforgeCsReq": 585, + "CmdPromoteEquipmentScRsp": 587, + "CmdGetMarkItemListCsReq": 589, + "CmdGeneralVirtualItemDataNotify": 590, + "CmdCmdSellItemCsReq": 592, + "CmdRechargeSuccNotify": 594, + "CmdDeleteRelicFilterPlanScRsp": 595, + "CmdComposeItemScRsp": 598, + "CmdDeleteRelicFilterPlanCsReq": 600, + "CmdUnlockBackGroundMusicCsReq": 3105, + "CmdGetJukeboxDataScRsp": 3119, + "CmdPlayBackGroundMusicCsReq": 3131, + "CmdUnlockBackGroundMusicScRsp": 3171, + "CmdGetJukeboxDataCsReq": 3174, + "CmdPlayBackGroundMusicScRsp": 3187, + "CmdLineupType_NLCDGIPGFDJ": 0, + "CmdGetAllLineupDataCsReq": 704, + "CmdJoinLineupCsReq": 705, + "CmdSwapLineupCsReq": 706, + "CmdSetLineupNameCsReq": 708, + "CmdReplaceLineupScRsp": 715, + "CmdQuitLineupScRsp": 718, + "CmdExtraLineupDestroyNotify": 723, + "CmdSyncLineupNotify": 727, + "CmdVirtualLineupTrialAvatarChangeScNotify": 728, + "CmdGetCurLineupDataCsReq": 731, + "CmdGetLineupAvatarDataScRsp": 735, + "CmdChangeLineupLeaderScRsp": 747, + "CmdSwitchLineupIndexCsReq": 748, + "CmdGetLineupAvatarDataCsReq": 752, + "CmdVirtualLineupDestroyNotify": 757, + "CmdQuitLineupCsReq": 759, + "CmdMarkPresetLineupCsReq": 762, + "CmdLineupType_MMPOIAMJMPH": 763, + "CmdSyncAllPresetLineupNotify": 767, + "CmdSwapLineupScRsp": 770, + "CmdJoinLineupScRsp": 771, + "CmdSwitchLineupIndexScRsp": 775, + "CmdMarkPresetLineupScRsp": 780, + "CmdReplaceLineupCsReq": 782, + "CmdGetCurLineupDataScRsp": 787, + "CmdSetLineupNameScRsp": 792, + "CmdGetAllLineupDataScRsp": 794, + "CmdChangeLineupLeaderCsReq": 798, + "CmdLobbyInteractScNotify": 7358, + "CmdLobbyQuitCsReq": 7360, + "CmdLobbyKickOutScRsp": 7361, + "CmdLobbyGetInfoScRsp": 7366, + "CmdLobbyModifyPlayerInfoScRsp": 7374, + "CmdLobbyInviteCsReq": 7376, + "CmdLobbyInviteScRsp": 7382, + "CmdLobbyModifyPlayerInfoCsReq": 7384, + "CmdLobbyKickOutCsReq": 7387, + "CmdLobbyCreateScRsp": 7388, + "CmdLobbyQuitScRsp": 7391, + "CmdLobbyCreateCsReq": 7392, + "CmdLobbyGetInfoCsReq": 7394, + "CmdLobbySyncInfoScNotify": 7395, + "CmdLobbyJoinCsReq": 7398, + "CmdLobbyJoinScRsp": 7400, + "CmdGetLocalLegendDataScRsp": 6579, + "CmdStartLocalLegendLevelCsReq": 6586, + "CmdGetLocalLegendDataCsReq": 6587, + "CmdEnterLocalLegendLevelScRsp": 6590, + "CmdLocalLegendDataChangeNotify": 6591, + "CmdDelMailCsReq": 805, + "CmdNewMailScNotify": 806, + "CmdTakeMailAttachmentScRsp": 818, + "CmdGetMailScRsp": 819, + "CmdMarkReadMailCsReq": 831, + "CmdTakeMailAttachmentCsReq": 859, + "CmdDelMailScRsp": 871, + "CmdGetMailCsReq": 874, + "CmdMarkReadMailScRsp": 887, + "CmdDeployRotatorCsReq": 6805, + "CmdLeaveMapRotationRegionCsReq": 6806, + "CmdRemoveRotatorCsReq": 6808, + "CmdRotateMapScRsp": 6818, + "CmdEnterMapRotationRegionScRsp": 6819, + "CmdGetMapRotationDataCsReq": 6827, + "CmdInteractChargerCsReq": 6831, + "CmdResetMapRotationRegionCsReq": 6835, + "CmdUpdateEnergyScNotify": 6848, + "CmdGetMapRotationDataScRsp": 6852, + "CmdRotateMapCsReq": 6859, + "CmdLeaveMapRotationRegionScRsp": 6870, + "CmdDeployRotatorScRsp": 6871, + "CmdEnterMapRotationRegionCsReq": 6874, + "CmdUpdateMapRotationDataScNotify": 6875, + "CmdInteractChargerScRsp": 6887, + "CmdRemoveRotatorScRsp": 6892, + "CmdResetMapRotationRegionScRsp": 6898, + "CmdMarbleType_NLCDGIPGFDJ": 0, + "CmdMarbleType_AGDKICBCICD": 8274, + "CmdMarblePvpDataUpdateScNotify": 8276, + "CmdMarbleUnlockSealScNotify": 8277, + "CmdMarbleGetDataScRsp": 8278, + "CmdMarbleShopBuyScRsp": 8279, + "CmdMarbleUpdateShownSealScRsp": 8282, + "CmdMarbleUpdateShownSealCsReq": 8283, + "CmdMarbleGetDataCsReq": 8285, + "CmdMarbleShopBuyCsReq": 8286, + "CmdMarbleType_JHCDCIKNEEM": 8290, + "CmdUpdateMarkChestCsReq": 8184, + "CmdGetMarkChestScRsp": 8188, + "CmdGetMarkChestCsReq": 8195, + "CmdMarkChestChangedScNotify": 8196, + "CmdUpdateMarkChestScRsp": 8200, + "CmdGetCrossInfoScRsp": 7334, + "CmdGetCrossInfoCsReq": 7335, + "CmdStartMatchScRsp": 7338, + "CmdStartMatchCsReq": 7342, + "CmdCancelMatchCsReq": 7348, + "CmdCancelMatchScRsp": 7350, + "CmdMatchThreeV2SetBirdPosCsReq": 7410, + "CmdMatchThreeV2BattleItemLevelUpCsReq": 7411, + "CmdMatchThreeV2ScNotify": 7425, + "CmdMatchThreeV2LevelEndCsReq": 7426, + "CmdMatchThreeSyncDataScNotify": 7430, + "CmdMatchThreeV2LevelEndScRsp": 7432, + "CmdMatchThreeSetBirdPosScRsp": 7434, + "CmdMatchThreeSetBirdPosCsReq": 7435, + "CmdMatchThreeGetDataDataScRsp": 7438, + "CmdMatchThreeV2SetBirdPosScRsp": 7441, + "CmdMatchThreeGetDataDataCsReq": 7442, + "CmdMatchThreeV2PvpFinishScNotify": 7444, + "CmdMatchThreeV2BattleItemLevelUpScRsp": 7445, + "CmdMatchThreeLevelEndCsReq": 7448, + "CmdMatchThreeLevelEndScRsp": 7450, + "CmdGetFiveDimMiniGameDataScRsp": 9060, + "CmdGetFiveDimFluteDataScRsp": 9066, + "CmdMazeCrossFloorConditionChangeScNotify": 9072, + "CmdChenLingGameBoyChangeSettingsScRsp": 9074, + "CmdFinishFiveDimMiniGameScRsp": 9075, + "CmdChenLingGameBoyGetFriendRankingInfoCsReq": 9080, + "CmdFiveDimFluteDataChangeNotify": 9081, + "CmdGetFiveDimMiniGameDataCsReq": 9082, + "CmdChenLingGameBoyChangeSettingsCsReq": 9084, + "CmdChenLingGameBoyGetFriendRankingInfoScRsp": 9085, + "CmdGetChenLingGameBoyDataScRsp": 9088, + "CmdFinishFiveDimMiniGameCsReq": 9091, + "CmdGetChenLingGameBoyDataCsReq": 9092, + "CmdGetFiveDimFluteDataCsReq": 9094, + "CmdFinishChenLingGameBoyCsReq": 9098, + "CmdFinishChenLingGameBoyScRsp": 9100, + "CmdFinishItemIdCsReq": 2705, + "CmdFinishPerformSectionIdCsReq": 2706, + "CmdFinishSectionIdScRsp": 2718, + "CmdGetNpcMessageGroupScRsp": 2719, + "CmdGetMissionMessageCsReq": 2727, + "CmdGetNpcStatusCsReq": 2731, + "CmdFinishMultiPerformSectionIdCsReq": 2735, + "CmdUnfrozenContactScNotify": 2747, + "CmdGetMissionMessageScRsp": 2752, + "CmdFinishSectionIdCsReq": 2759, + "CmdFinishPerformSectionIdScRsp": 2770, + "CmdFinishItemIdScRsp": 2771, + "CmdGetNpcMessageGroupCsReq": 2774, + "CmdGetNpcStatusScRsp": 2787, + "CmdFinishMultiPerformSectionIdScRsp": 2798, + "CmdMiscModuleType_NLCDGIPGFDJ": 0, + "CmdMiscModuleType_DJFGNHCFMDL": 4105, + "CmdCancelCacheNotifyCsReq": 4106, + "CmdGetOrigamiPropInfoScRsp": 4108, + "CmdGetUnreleasedBlockInfoScRsp": 4112, + "CmdUpdateMovieRacingDataScRsp": 4115, + "CmdShareScRsp": 4119, + "CmdCycleScoreRewardDestroyExceedRewardScRsp": 4120, + "CmdGetSwitchMascotDataCsReq": 4122, + "CmdGetWolfBroShootingDataCsReq": 4123, + "CmdMiscModuleType_CNHFAPDGPPM": 4127, + "CmdGetGunPlayDataScRsp": 4128, + "CmdCycleScoreRewardTakeRewardScRsp": 4129, + "CmdGetShareDataCsReq": 4131, + "CmdTriggerVoiceCsReq": 4135, + "CmdGetPlayerForbidCsReq": 4139, + "CmdCycleScoreRewardGetDataCsReq": 4143, + "CmdCancelDirectDeliveryNoticeCsReq": 4144, + "CmdCycleScoreRewardDestroyExceedRewardCsReq": 4146, + "CmdSubmitOrigamiItemCsReq": 4147, + "CmdSubmitOrigamiItemScRsp": 4148, + "CmdGetSwitchMascotDataScRsp": 4149, + "CmdMazeKillDirectScRsp": 4150, + "CmdDifficultyAdjustmentUpdateDataCsReq": 4151, + "CmdMiscModuleType_DMPDEBAHNHC": 4152, + "CmdCycleScoreRewardGetDataScRsp": 4153, + "CmdDifficultyAdjustmentUpdateDataScRsp": 4154, + "CmdPlayerForbidScNotify": 4155, + "CmdGetMovieRacingDataScRsp": 4157, + "CmdCycleScoreRewardTakeRewardCsReq": 4160, + "CmdDifficultyAdjustmentGetDataCsReq": 4162, + "CmdUpdateGunPlayDataScRsp": 4163, + "CmdGetPlayerForbidScRsp": 4164, + "CmdSwitchMascotUpdateScNotify": 4166, + "CmdUpdateWolfBroShootingDataCsReq": 4167, + "CmdDirectDeliveryScNotify": 4168, + "CmdCancelCacheNotifyScRsp": 4170, + "CmdMiscModuleType_FDKEJEECJIC": 4171, + "CmdShareCsReq": 4174, + "CmdGetOrigamiPropInfoCsReq": 4175, + "CmdMiscModuleType_HOMLJAEMNMD": 4178, + "CmdDifficultyAdjustmentGetDataScRsp": 4180, + "CmdCancelDirectDeliveryNoticeScRsp": 4181, + "CmdUpdateMovieRacingDataCsReq": 4182, + "CmdGetShareDataScRsp": 4187, + "CmdMazeKillDirectCsReq": 4189, + "CmdGetUnreleasedBlockInfoCsReq": 4190, + "CmdGetMovieRacingDataCsReq": 4194, + "CmdTriggerVoiceScRsp": 4198, + "CmdMissionType_NLCDGIPGFDJ": 0, + "CmdGetMissionStatusCsReq": 1204, + "CmdMissionRewardScNotify": 1205, + "CmdStarPerformanceRelayCsReq": 1212, + "CmdGetMissionDataScRsp": 1219, + "CmdUpdateTrackMainMissionScRsp": 1222, + "CmdSubMissionRewardScNotify": 1228, + "CmdFinishTalkMissionCsReq": 1231, + "CmdFinishCosumeItemMissionCsReq": 1235, + "CmdStarPerformanceRelayScRsp": 1243, + "CmdFinishedMissionScNotify": 1249, + "CmdGetMainMissionCustomValueScRsp": 1250, + "CmdAcceptMainMissionCsReq": 1251, + "CmdMissionGroupWarnScNotify": 1252, + "CmdAcceptMainMissionScRsp": 1254, + "CmdSyncTaskScRsp": 1259, + "CmdStartFinishSubMissionScNotify": 1262, + "CmdTeleportToMissionResetPointScRsp": 1263, + "CmdUpdateMainMissionCustomValueCsReq": 1266, + "CmdTeleportToMissionResetPointCsReq": 1267, + "CmdMainMissionAcceptNotify": 1268, + "CmdSyncTaskCsReq": 1271, + "CmdGetMissionDataCsReq": 1274, + "CmdStartFinishMainMissionScNotify": 1280, + "CmdUpdateTrackMainMissionCsReq": 1281, + "CmdFinishTalkMissionScRsp": 1287, + "CmdGetMainMissionCustomValueCsReq": 1289, + "CmdUpdateMainMissionCustomValueScRsp": 1290, + "CmdGetMissionStatusScRsp": 1294, + "CmdFinishCosumeItemMissionScRsp": 1298, + "CmdMonopolyEventSelectFriendCsReq": 7001, + "CmdGetMonopolyDailyReportScRsp": 7002, + "CmdMonopolyConfirmRandomScRsp": 7004, + "CmdMonopolyMoveScRsp": 7006, + "CmdMonopolyReRollRandomScRsp": 7008, + "CmdDeleteSocialEventServerCacheScRsp": 7009, + "CmdMonopolyGetRafflePoolInfoScRsp": 7011, + "CmdMonopolyGuessBuyInformationCsReq": 7012, + "CmdMonopolyGetDailyInitItemScRsp": 7014, + "CmdMonopolyUpgradeAssetScRsp": 7015, + "CmdGetMbtiReportScRsp": 7016, + "CmdMonopolyGetRaffleTicketCsReq": 7017, + "CmdMonopolyMoveCsReq": 7018, + "CmdGetMonopolyInfoScRsp": 7019, + "CmdMonopolyGetRegionProgressScRsp": 7021, + "CmdMonopolyAcceptQuizScRsp": 7022, + "CmdMonopolyGiveUpCurContentCsReq": 7023, + "CmdMonopolyEventLoadUpdateScNotify": 7025, + "CmdMonopolyTakeRaffleTicketRewardCsReq": 7026, + "CmdMonopolySelectOptionScRsp": 7027, + "CmdMonopolyGiveUpCurContentScRsp": 7028, + "CmdGetSocialEventServerCacheScRsp": 7030, + "CmdMonopolyActionResultScNotify": 7031, + "CmdMonopolyGetRegionProgressCsReq": 7032, + "CmdMonopolyScrachRaffleTicketScRsp": 7033, + "CmdMonopolySttUpdateScNotify": 7034, + "CmdDailyFirstEnterMonopolyActivityCsReq": 7035, + "CmdGetSocialEventServerCacheCsReq": 7036, + "CmdMonopolyConditionUpdateScNotify": 7037, + "CmdDeleteSocialEventServerCacheCsReq": 7038, + "CmdMonopolyDailySettleScNotify": 7039, + "CmdMonopolyClickMbtiReportScRsp": 7040, + "CmdMonopolyLikeCsReq": 7041, + "CmdMonopolyClickCellScRsp": 7042, + "CmdMonopolyGuessBuyInformationScRsp": 7043, + "CmdMonopolyGameBingoFlipCardScRsp": 7044, + "CmdGetMbtiReportCsReq": 7045, + "CmdMonopolyRollRandomCsReq": 7047, + "CmdMonopolyRollRandomScRsp": 7048, + "CmdMonopolyGameCreateScNotify": 7049, + "CmdMonopolyGameGachaScRsp": 7050, + "CmdMonopolyGameRaiseRatioScRsp": 7051, + "CmdMonopolyGuessDrawScNotify": 7053, + "CmdMonopolyGameSettleScNotify": 7054, + "CmdMonopolyBuyGoodsScRsp": 7057, + "CmdMonopolyScrachRaffleTicketCsReq": 7058, + "CmdMonopolyRollDiceScRsp": 7059, + "CmdMonopolyQuizDurationChangeScNotify": 7060, + "CmdMonopolyTakeRaffleTicketRewardScRsp": 7061, + "CmdMonopolyContentUpdateScNotify": 7062, + "CmdMonopolyCheatDiceScRsp": 7063, + "CmdMonopolyGuessChooseCsReq": 7066, + "CmdMonopolyCheatDiceCsReq": 7067, + "CmdMonopolyGameBingoFlipCardCsReq": 7068, + "CmdMonopolyGetRaffleTicketScRsp": 7069, + "CmdMonopolySelectOptionCsReq": 7070, + "CmdMonopolyRollDiceCsReq": 7071, + "CmdGetMonopolyMbtiReportRewardScRsp": 7073, + "CmdGetMonopolyInfoCsReq": 7074, + "CmdMonopolyReRollRandomCsReq": 7075, + "CmdMonopolyGetRafflePoolInfoCsReq": 7076, + "CmdGetMonopolyMbtiReportRewardCsReq": 7079, + "CmdMonopolyGameRaiseRatioCsReq": 7080, + "CmdMonopolyAcceptQuizCsReq": 7081, + "CmdMonopolyUpgradeAssetCsReq": 7082, + "CmdMonopolyClickMbtiReportCsReq": 7083, + "CmdMonopolySocialEventEffectScNotify": 7084, + "CmdMonopolyEventSelectFriendScRsp": 7085, + "CmdMonopolyTakePhaseRewardCsReq": 7086, + "CmdMonopolyCellUpdateNotify": 7087, + "CmdMonopolyGameGachaCsReq": 7089, + "CmdMonopolyGuessChooseScRsp": 7090, + "CmdGetMonopolyDailyReportCsReq": 7091, + "CmdMonopolyConfirmRandomCsReq": 7092, + "CmdMonopolyClickCellCsReq": 7093, + "CmdMonopolyBuyGoodsCsReq": 7094, + "CmdMonopolyLikeScNotify": 7095, + "CmdMonopolyTakePhaseRewardScRsp": 7096, + "CmdMonopolyGetDailyInitItemCsReq": 7097, + "CmdDailyFirstEnterMonopolyActivityScRsp": 7098, + "CmdMonopolyLikeScRsp": 7100, + "CmdFightGiveUpCsReq": 1005, + "CmdFightGameStateScRsp": 1019, + "CmdPlayerGetFightGateCsReq": 1031, + "CmdGetFriendRankingInfoCsReq": 1035, + "CmdFightGameStartScNotify": 1059, + "CmdGetMatchPlayDataCsReq": 1070, + "CmdFightGiveUpScRsp": 1071, + "CmdFightGameStateCsReq": 1074, + "CmdPlayerGetFightGateScRsp": 1087, + "CmdGetPlayerReturnMultiDropInfoScRsp": 4605, + "CmdGetMultipleDropInfoScRsp": 4619, + "CmdMultipleDropInfoScNotify": 4631, + "CmdMultipleDropInfoNotify": 4671, + "CmdGetMultipleDropInfoCsReq": 4674, + "CmdGetPlayerReturnMultiDropInfoCsReq": 4687, + "CmdMuseumRandomEventQueryCsReq": 4304, + "CmdSetStuffToAreaCsReq": 4305, + "CmdSyncGetStuffScNotify": 4306, + "CmdSyncMuseumFundsChangedScNotify": 4308, + "CmdRemoveStuffFromAreaScRsp": 4318, + "CmdGetMuseumInfoScRsp": 4319, + "CmdSyncMuseumTargetStartNotify": 4323, + "CmdFinishCurTurnCsReq": 4327, + "CmdSyncMuseumTargetMissionFinishNotify": 4328, + "CmdBuyNpcStuffCsReq": 4331, + "CmdUpgradeAreaCsReq": 4335, + "CmdUpgradeAreaStatCsReq": 4347, + "CmdUpgradeAreaStatScRsp": 4348, + "CmdFinishCurTurnScRsp": 4352, + "CmdMuseumRandomEventSelectCsReq": 4357, + "CmdRemoveStuffFromAreaCsReq": 4359, + "CmdTakeCollectRewardCsReq": 4363, + "CmdSyncMuseumTargetRewardNotify": 4367, + "CmdSyncGetExhibitScNotify": 4370, + "CmdSetStuffToAreaScRsp": 4371, + "CmdGetMuseumInfoCsReq": 4374, + "CmdSyncMuseumInfoChangedScNotify": 4375, + "CmdMuseumRandomEventSelectScRsp": 4382, + "CmdBuyNpcStuffScRsp": 4387, + "CmdSyncMuseumRandomEventStartScNotify": 4392, + "CmdMuseumRandomEventQueryScRsp": 4394, + "CmdUpgradeAreaScRsp": 4398, + "CmdMusicRhythmSaveSongConfigDataCsReq": 7577, + "CmdMusicRhythmUnlockTrackScNotify": 7578, + "CmdMusicRhythmDataScRsp": 7579, + "CmdMusicRhythmMaxDifficultyLevelsUnlockNotify": 7582, + "CmdMusicRhythmUnlockSongNotify": 7583, + "CmdMusicRhythmFinishLevelCsReq": 7585, + "CmdMusicRhythmStartLevelCsReq": 7586, + "CmdMusicRhythmSaveSongConfigDataScRsp": 7589, + "CmdMusicRhythmDataCsReq": 7592, + "CmdMusicRhythmUnlockSongSfxScNotify": 7594, + "CmdMusicRhythmStartLevelScRsp": 7598, + "CmdMusicRhythmFinishLevelScRsp": 7600, + "CmdSubmitOfferingItemCsReq": 6924, + "CmdOfferingInfoScNotify": 6927, + "CmdGetOfferingInfoScRsp": 6928, + "CmdTakeOfferingRewardScRsp": 6929, + "CmdGetOfferingInfoCsReq": 6935, + "CmdTakeOfferingRewardCsReq": 6936, + "CmdSubmitOfferingItemScRsp": 6940, + "CmdAcceptedPamMissionExpireScRsp": 4019, + "CmdSyncAcceptedPamMissionNotify": 4031, + "CmdAcceptedPamMissionExpireCsReq": 4074, + "CmdSelectPamSkinCsReq": 8124, + "CmdGetPamSkinDataScRsp": 8128, + "CmdGetPamSkinDataCsReq": 8135, + "CmdUnlockPamSkinScNotify": 8136, + "CmdSelectPamSkinScRsp": 8140, + "CmdParkourGetRankingInfoCsReq": 8384, + "CmdParkourEndLevelScRsp": 8386, + "CmdParkourEndLevelCsReq": 8387, + "CmdParkourGetDataScRsp": 8388, + "CmdParkourStartLevelScRsp": 8389, + "CmdParkourGetDataCsReq": 8395, + "CmdParkourStartLevelCsReq": 8396, + "CmdParkourGetRankingInfoScRsp": 8400, + "CmdGetPetDataScRsp": 7604, + "CmdSetBlindBoxPetLineupCsReq": 7605, + "CmdRecallPetScRsp": 7607, + "CmdSwitchBlindBoxPetChromaScRsp": 7609, + "CmdSummonPetCsReq": 7611, + "CmdGetPetDataCsReq": 7612, + "CmdRecycleBlindBoxPetScRsp": 7613, + "CmdSummonPetScRsp": 7615, + "CmdRecallPetCsReq": 7616, + "CmdSwitchBlindBoxPetChromaCsReq": 7619, + "CmdSetBlindBoxPetLineupScRsp": 7620, + "CmdPetDataChangeScNotify": 7622, + "CmdRecycleBlindBoxPetCsReq": 7623, + "CmdPetMarbleGetCycleTrialPetsCsReq": 10186, + "CmdPetMarbleLevelBeginScRsp": 10187, + "CmdPetMarbleGetDataScRsp": 10188, + "CmdPetMarbleLevelBeginCsReq": 10189, + "CmdPetMarbleGetCycleTrialPetsScRsp": 10193, + "CmdPetMarbleGetDataCsReq": 10195, + "CmdPetMarbleSyncDataScNotify": 10196, + "CmdPetParkDiyCsReq": 10164, + "CmdPetParkDiyScRsp": 10180, + "CmdUnlockChatBubbleScNotify": 5105, + "CmdUnlockPhoneThemeScNotify": 5118, + "CmdGetPhoneDataScRsp": 5119, + "CmdUnlockPhoneCaseScNotify": 5127, + "CmdSelectChatBubbleCsReq": 5131, + "CmdSelectPhoneThemeScRsp": 5159, + "CmdSelectPhoneCaseScRsp": 5170, + "CmdSelectPhoneThemeCsReq": 5171, + "CmdGetPhoneDataCsReq": 5174, + "CmdSelectChatBubbleScRsp": 5187, + "CmdPixAirUnlockPlaneCsReq": 9776, + "CmdPixAirSellEquipCsReq": 9780, + "CmdPixAirHandlePendingActionBattleCsReq": 9781, + "CmdPixAirRefreshShopScRsp": 9785, + "CmdPixAirRefreshShopCsReq": 9786, + "CmdPixAirReenterStageCsReq": 9794, + "CmdPixAirBuyGoodsCsReq": 9795, + "CmdPixAirChangePosCsReq": 9796, + "CmdPixAirStartStageScRsp": 9800, + "CmdPixAirUnlockPlaneScRsp": 9801, + "CmdPixAirSwapEquipScRsp": 9802, + "CmdPixAirQuitStageScRsp": 9804, + "CmdPixAirQuitStageCsReq": 9805, + "CmdPixAirReenterStageScRsp": 9807, + "CmdPixAirGetDataScRsp": 9808, + "CmdPixAirSellEquipScRsp": 9811, + "CmdPixAirGetDataCsReq": 9812, + "CmdPixAirBuyGoodsScRsp": 9814, + "CmdPixAirHandlePendingActionBattleScRsp": 9815, + "CmdPixAirSyncChangeScNotify": 9818, + "CmdPixAirStartStageCsReq": 9820, + "CmdPlanetFesStartMiniGameScRsp": 8201, + "CmdPlanetFesSetCustomKeyValueCsReq": 8202, + "CmdPlanetFesChooseAvatarEventOptionCsReq": 8203, + "CmdPlanetFesUpgradeFesLevelScRsp": 8204, + "CmdPlanetFesGetAvatarStatCsReq": 8205, + "CmdPlanetFesBusinessDayRefreshEventCsReq": 8206, + "CmdPlanetFesGameBingoFlipScRsp": 8207, + "CmdPlanetFesGetBusinessDayInfoScRsp": 8208, + "CmdPlanetFesGetBusinessDayInfoCsReq": 8209, + "CmdPlanetFesDoGachaCsReq": 8210, + "CmdPlanetFesClientStatusCsReq": 8211, + "CmdPlanetFesGetFriendRankingInfoListScRsp": 8212, + "CmdPlanetFesTakeRegionPhaseRewardCsReq": 8213, + "CmdPlanetFesUpgradeSkillLevelCsReq": 8214, + "CmdPlanetFesTakeQuestRewardScRsp": 8215, + "CmdPlanetFesTakeQuestRewardCsReq": 8216, + "CmdPlanetFesTakeRegionPhaseRewardScRsp": 8217, + "CmdPlanetFesDealAvatarEventOptionItemCsReq": 8218, + "CmdPlanetFesBonusEventInteractCsReq": 8219, + "CmdPlanetFesBonusEventInteractScRsp": 8220, + "CmdPlanetFesUseItemScRsp": 8221, + "CmdPlanetFesDeliverPamCargoCsReq": 8222, + "CmdPlanetFesSkillLevelUpScRsp": 8223, + "CmdPlanetFesBuyLandCsReq": 8224, + "CmdPlanetFesAvatarLevelUpCsReq": 8225, + "CmdPlanetFesCollectAllIncomeCsReq": 8226, + "CmdPlanetFesDealAvatarEventOptionItemScRsp": 8227, + "CmdPlanetFesSetCustomKeyValueScRsp": 8228, + "CmdPlanetFesChooseAvatarEventOptionScRsp": 8229, + "CmdPlanetFesCollectIncomeScRsp": 8230, + "CmdPlanetFesBusinessDayRefreshEventScRsp": 8231, + "CmdPlanetFesCollectAllIncomeScRsp": 8232, + "CmdPlanetFesGetAvatarStatScRsp": 8233, + "CmdPlanetFesSetAvatarWorkScRsp": 8234, + "CmdPlanetFesSetAvatarWorkCsReq": 8235, + "CmdPlanetFesUpgradeFesLevelCsReq": 8236, + "CmdPlanetFesBuyLandScRsp": 8237, + "CmdGetPlanetFesDataScRsp": 8238, + "CmdPlanetFesFriendRankingInfoChangeScNotify": 8239, + "CmdPlanetFesStartMiniGameCsReq": 8240, + "CmdPlanetFesDoGachaScRsp": 8241, + "CmdGetPlanetFesDataCsReq": 8242, + "CmdPlanetFesUseItemCsReq": 8243, + "CmdPlanetFesAvatarLevelUpScRsp": 8244, + "CmdPlanetFesClientStatusScRsp": 8245, + "CmdPlanetFesDeliverPamCargoScRsp": 8246, + "CmdPlanetFesGameBingoFlipCsReq": 8247, + "CmdPlanetFesSyncChangeScNotify": 8248, + "CmdPlanetFesGetFriendRankingInfoListCsReq": 8249, + "CmdPlanetFesCollectIncomeCsReq": 8250, + "CmdPlanetFesGiveCardPieceScRsp": 8300, + "CmdPlanetFesHandleCardPieceApplyScRsp": 8301, + "CmdPlanetFesEnterNextBusinessDayScRsp": 8306, + "CmdPlanetFesApplyCardPieceScRsp": 8314, + "CmdPlanetFesLargeBonusInteractScRsp": 8315, + "CmdPlanetFesGetOfferedCardPieceScRsp": 8316, + "CmdPlanetFesChangeCardPieceApplyPermissionCsReq": 8320, + "CmdPlanetFesGiveCardPieceCsReq": 8322, + "CmdPlanetFesApplyCardPieceCsReq": 8324, + "CmdPlanetFesChangeCardPieceApplyPermissionScRsp": 8325, + "CmdPlanetFesHandleCardPieceApplyCsReq": 8327, + "CmdPlanetFesGetExtraCardPieceInfoScRsp": 8328, + "CmdPlanetFesLargeBonusInteractCsReq": 8331, + "CmdPlanetFesGetExtraCardPieceInfoCsReq": 8332, + "CmdPlanetFesEnterNextBusinessDayCsReq": 8334, + "CmdPlanetFesGetOfferedCardPieceCsReq": 8335, + "CmdPlanetFesGetFriendCardPieceCsReq": 8338, + "CmdPlanetFesGetFriendCardPieceScRsp": 8340, + "CmdPlayerType_NLCDGIPGFDJ": 0, + "CmdGateServerScNotify": 1, + "CmdForceSyncGameStateFinishCSScRsp": 3, + "CmdSetNicknameCsReq": 4, + "CmdPlayerGetTokenCsReq": 5, + "CmdPlayerSqueezedScNotify": 6, + "CmdRegionStopScNotify": 8, + "CmdPlayerLoginFinishCsReq": 9, + "CmdUpdatePlayerSettingScRsp": 11, + "CmdPlayerLoginFinishScRsp": 13, + "CmdPlayerType_HJAIHJAHMKN": 15, + "CmdPlayerHeartBeatScRsp": 16, + "CmdGetVideoVersionKeyCsReq": 17, + "CmdPlayerType_DGKKANKIDLG": 18, + "CmdPlayerLoginScRsp": 19, + "CmdGetBasicInfoScRsp": 20, + "CmdStaminaInfoScNotify": 21, + "CmdSetGenderCsReq": 22, + "CmdPlayerType_PJMINBJDKCC": 23, + "CmdPlayerType_IPDCEJGOFKI": 24, + "CmdClientObjUploadScRsp": 25, + "CmdSetRedPointStatusScNotify": 26, + "CmdEnterStageScRsp": 27, + "CmdUpdateFeatureSwitchScNotify": 29, + "CmdGetSecretKeyInfoCsReq": 30, + "CmdPlayerLogoutCsReq": 31, + "CmdReserveStaminaExchangeScRsp": 32, + "CmdReserveStaminaExchangeCsReq": 33, + "CmdUpdatePlayWithPsnOnlySettingCsReq": 34, + "CmdGetSecretKeyInfoScRsp": 38, + "CmdSetGameplayBirthdayCsReq": 39, + "CmdPlayerType_CEDFKEJBCCJ": 41, + "CmdQueryProductInfoCsReq": 43, + "CmdPlayerHeartBeatCsReq": 45, + "CmdGetBasicInfoCsReq": 46, + "CmdExchangeStaminaScRsp": 47, + "CmdGetAuthkeyCsReq": 48, + "CmdSetGenderScRsp": 49, + "CmdQueryProductInfoScRsp": 53, + "CmdPlayerType_GONKEIBLBOI": 55, + "CmdGetLevelRewardTakenListCsReq": 57, + "CmdClientDownloadDataScNotify": 60, + "CmdSetLanguageScRsp": 62, + "CmdPlayerType_KGCPBEOGMOP": 63, + "CmdSetGameplayBirthdayScRsp": 64, + "CmdSetPlayerInfoCsReq": 66, + "CmdGetVideoVersionKeyScRsp": 69, + "CmdEnterStageCsReq": 70, + "CmdPlayerGetTokenScRsp": 71, + "CmdPlayerLoginCsReq": 74, + "CmdGetAuthkeyScRsp": 75, + "CmdPlayerType_GNAOLJNMAFC": 76, + "CmdPlayerType_MLGEKIJAIBO": 77, + "CmdDailyRefreshNotify": 78, + "CmdUpdatePlayWithPsnOnlySettingScRsp": 79, + "CmdServerAnnounceNotify": 80, + "CmdGetLevelRewardTakenListScRsp": 82, + "CmdFeatureSwitchClosedScNotify": 85, + "CmdClientObjDownloadDataScNotify": 86, + "CmdPlayerType_ONNNLNCMMGJ": 87, + "CmdSetPlayerInfoScRsp": 90, + "CmdAntiAddictScNotify": 92, + "CmdSetNicknameScRsp": 94, + "CmdPlayerType_BLLKMJKMNIG": 95, + "CmdClientObjUploadCsReq": 96, + "CmdExchangeStaminaCsReq": 98, + "CmdPlayerType_ABAKFMHMHPD": 99, + "CmdMonthCardRewardNotify": 100, + "CmdTakeReturnExtraHcoinRewardScRsp": 4504, + "CmdPlayerReturnTakePointRewardCsReq": 4505, + "CmdPlayerReturnInfoQueryCsReq": 4506, + "CmdPlayerReturnTakeRewardScRsp": 4518, + "CmdPlayerReturnSignCsReq": 4519, + "CmdPlayerReturnForceFinishScNotify": 4527, + "CmdPlayerReturnSignScRsp": 4531, + "CmdPlayerReturnTakeRelicScRsp": 4535, + "CmdPlayerReturnTakeCustomRelicCsReq": 4547, + "CmdPlayerReturnTakeCustomRelicScRsp": 4548, + "CmdPlayerReturnTakeRelicCsReq": 4552, + "CmdPlayerReturnTakeRewardCsReq": 4559, + "CmdPlayerReturnInfoQueryScRsp": 4570, + "CmdPlayerReturnTakePointRewardScRsp": 4571, + "CmdPlayerReturnPointChangeScNotify": 4587, + "CmdTakeReturnExtraHcoinRewardCsReq": 4592, + "CmdPlayerReturnExtraHcoinProgressScNotify": 4594, + "CmdPlayerReturnTakeExtraHcoinScNotify": 4598, + "CmdFinishPlotScRsp": 1119, + "CmdFinishPlotCsReq": 1174, + "CmdSharePunkLordMonsterCsReq": 3205, + "CmdGetKilledPunkLordMonsterDataCsReq": 3215, + "CmdSummonPunkLordMonsterScRsp": 3218, + "CmdGetPunkLordMonsterDataScRsp": 3219, + "CmdGetKilledPunkLordMonsterDataScRsp": 3223, + "CmdStartPunkLordRaidCsReq": 3231, + "CmdTakePunkLordPointRewardCsReq": 3235, + "CmdPunkLordMonsterInfoScNotify": 3247, + "CmdGetPunkLordDataCsReq": 3248, + "CmdPunkLordDataChangeNotify": 3251, + "CmdGetPunkLordBattleRecordCsReq": 3254, + "CmdSummonPunkLordMonsterCsReq": 3259, + "CmdTakeKilledPunkLordMonsterScoreCsReq": 3262, + "CmdPunkLordMonsterKilledNotify": 3263, + "CmdSharePunkLordMonsterScRsp": 3271, + "CmdGetPunkLordMonsterDataCsReq": 3274, + "CmdGetPunkLordDataScRsp": 3275, + "CmdTakeKilledPunkLordMonsterScoreScRsp": 3280, + "CmdPunkLordBattleResultScNotify": 3282, + "CmdStartPunkLordRaidScRsp": 3287, + "CmdGetPunkLordBattleRecordScRsp": 3289, + "CmdPunkLordRaidTimeOutScNotify": 3292, + "CmdTakePunkLordPointRewardScRsp": 3298, + "CmdQuestType_NLCDGIPGFDJ": 0, + "CmdQuestRecordScNotify": 906, + "CmdGetQuestRecordScRsp": 918, + "CmdGetQuestDataScRsp": 919, + "CmdCmdFinishQuestScRsp": 927, + "CmdTakeQuestRewardCsReq": 931, + "CmdTakeQuestOptionalRewardScRsp": 935, + "CmdBatchGetQuestDataCsReq": 947, + "CmdBatchGetQuestDataScRsp": 948, + "CmdTakeQuestOptionalRewardCsReq": 952, + "CmdGetQuestRecordCsReq": 959, + "CmdCmdFinishQuestCsReq": 970, + "CmdGetQuestDataCsReq": 974, + "CmdTakeQuestRewardScRsp": 987, + "CmdSetClientRaidTargetCountScRsp": 2210, + "CmdChallengeRaidNotify": 2211, + "CmdDelSaveRaidScNotify": 2215, + "CmdGetAllSaveRaidScRsp": 2216, + "CmdTakeChallengeRaidRewardCsReq": 2224, + "CmdGetSaveRaidScRsp": 2225, + "CmdGetRaidInfoScRsp": 2226, + "CmdRaidInfoNotify": 2230, + "CmdSetClientRaidTargetCountCsReq": 2232, + "CmdTakeChallengeRaidRewardScRsp": 2237, + "CmdStartRaidScRsp": 2238, + "CmdGetSaveRaidCsReq": 2241, + "CmdStartRaidCsReq": 2242, + "CmdGetAllSaveRaidCsReq": 2244, + "CmdGetRaidInfoCsReq": 2245, + "CmdLeaveRaidCsReq": 2248, + "CmdLeaveRaidScRsp": 2250, + "CmdRaidCollectionDataScRsp": 6948, + "CmdRaidCollectionDataCsReq": 6955, + "CmdRaidCollectionEnterNextRaidScRsp": 6956, + "CmdRaidCollectionEnterNextRaidCsReq": 6960, + "CmdRechargeGiftType_NLCDGIPGFDJ": 0, + "CmdTakeRechargeGiftRewardCsReq": 8364, + "CmdTakeRechargeBenefitRewardCsReq": 8366, + "CmdSyncRechargeBenefitInfoScNotify": 8367, + "CmdGetRechargeGiftInfoScRsp": 8368, + "CmdGetRechargeBenefitInfoScRsp": 8369, + "CmdTakeRechargeBenefitRewardScRsp": 8373, + "CmdGetRechargeGiftInfoCsReq": 8375, + "CmdGetRechargeBenefitInfoCsReq": 8376, + "CmdTakeRechargeGiftRewardScRsp": 8380, + "CmdRecommendType_NLCDGIPGFDJ": 0, + "CmdGetBigDataAllRecommendScRsp": 2411, + "CmdGetBigDataRecommendScRsp": 2424, + "CmdGetBigDataRecommendCsReq": 2434, + "CmdGetBigDataAllRecommendCsReq": 2437, + "CmdGetAllRedDotDataScRsp": 5938, + "CmdGetAllRedDotDataCsReq": 5942, + "CmdRelicBoxRegularScNotify": 8951, + "CmdSetRelicBoxCustomCsReq": 8954, + "CmdConfirmRelicBoxCsReq": 8955, + "CmdGetRelicBoxDataScRsp": 8958, + "CmdSetRelicBoxTargetScRsp": 8959, + "CmdReportRelicBoxActionScRsp": 8960, + "CmdConfirmRelicBoxScRsp": 8961, + "CmdOpenRelicBoxScRsp": 8962, + "CmdOpenRelicBoxCsReq": 8963, + "CmdGetRelicBoxDataCsReq": 8965, + "CmdSetRelicBoxTargetCsReq": 8966, + "CmdReportRelicBoxActionCsReq": 8969, + "CmdSetRelicBoxCustomScRsp": 8970, + "CmdRelicPresetAddPlanCsReq": 9844, + "CmdRelicPresetUpdatePlanScRsp": 9846, + "CmdRelicPresetUpdatePlanCsReq": 9847, + "CmdRelicPresetGetPlanScRsp": 9848, + "CmdRelicPresetDeletePlanScRsp": 9849, + "CmdRelicPresetGetPlanCsReq": 9855, + "CmdRelicPresetDeletePlanCsReq": 9856, + "CmdRelicPresetAddPlanScRsp": 9860, + "CmdRelicSmartWearUpdatePinRelicCsReq": 8251, + "CmdRelicSmartWearDeletePinRelicCsReq": 8252, + "CmdRelicSmartWearDeletePinRelicScRsp": 8253, + "CmdRelicSmartWearAddPlanCsReq": 8254, + "CmdRelicSmartWearGetPinRelicCsReq": 8255, + "CmdRelicSmartWearDeletePlanScRsp": 8256, + "CmdRelicSmartWearDeletePlanCsReq": 8257, + "CmdRelicSmartWearGetPlanScRsp": 8258, + "CmdRelicSmartWearUpdatePlanScRsp": 8259, + "CmdRelicSmartWearGetPinRelicScRsp": 8261, + "CmdRelicSmartWearUpdatePinRelicScRsp": 8264, + "CmdRelicSmartWearGetPlanCsReq": 8265, + "CmdRelicSmartWearUpdatePlanCsReq": 8266, + "CmdRelicSmartWearUpdatePinRelicScNotify": 8268, + "CmdRelicSmartWearAddPlanScRsp": 8270, + "CmdGetReplayTokenScRsp": 3519, + "CmdGetReplayTokenCsReq": 3574, + "CmdGetRndOptionScRsp": 3419, + "CmdDailyFirstMeetPamCsReq": 3431, + "CmdGetRndOptionCsReq": 3474, + "CmdDailyFirstMeetPamScRsp": 3487, + "CmdEnterRogueCsReq": 1805, + "CmdFinishAeonDialogueGroupScRsp": 1814, + "CmdExchangeRogueRewardKeyScRsp": 1816, + "CmdLeaveRogueScRsp": 1818, + "CmdGetRogueInfoScRsp": 1819, + "CmdSyncRogueAreaUnlockScNotify": 1826, + "CmdStartRogueCsReq": 1831, + "CmdTakeRogueAeonLevelRewardScRsp": 1833, + "CmdGetRogueTalentInfoCsReq": 1837, + "CmdEnableRogueTalentCsReq": 1840, + "CmdGetRogueAeonInfoScRsp": 1842, + "CmdSyncRogueMapRoomScNotify": 1843, + "CmdSyncRogueSeasonFinishScNotify": 1844, + "CmdExchangeRogueRewardKeyCsReq": 1845, + "CmdSyncRogueFinishScNotify": 1847, + "CmdEnterRogueMapRoomCsReq": 1849, + "CmdSyncRogueReviveInfoScNotify": 1851, + "CmdQuitRogueCsReq": 1854, + "CmdSyncRogueVirtualItemInfoScNotify": 1856, + "CmdTakeRogueAeonLevelRewardCsReq": 1858, + "CmdLeaveRogueCsReq": 1859, + "CmdSyncRogueGetItemScNotify": 1861, + "CmdEnterRogueMapRoomScRsp": 1866, + "CmdSyncRogueExploreWinScNotify": 1868, + "CmdSyncRogueAeonScNotify": 1869, + "CmdEnterRogueScRsp": 1871, + "CmdSyncRogueStatusScNotify": 1872, + "CmdGetRogueInfoCsReq": 1874, + "CmdGetRogueTalentInfoScRsp": 1883, + "CmdStartRogueScRsp": 1887, + "CmdEnableRogueTalentScRsp": 1888, + "CmdQuitRogueScRsp": 1889, + "CmdGetRogueAeonInfoCsReq": 1893, + "CmdOpenRogueChestScRsp": 1895, + "CmdFinishAeonDialogueGroupCsReq": 1897, + "CmdOpenRogueChestCsReq": 1900, + "CmdRogueArcadeRestartCsReq": 7663, + "CmdRogueArcadeLeaveScRsp": 7667, + "CmdRogueArcadeGetInfoCsReq": 7675, + "CmdRogueArcadeStartScRsp": 7684, + "CmdRogueArcadeGetInfoScRsp": 7685, + "CmdRogueArcadeStartCsReq": 7690, + "CmdRogueArcadeLeaveCsReq": 7696, + "CmdRogueArcadeRestartScRsp": 7698, + "CmdTakeRogueEndlessActivityAllBonusRewardCsReq": 6001, + "CmdTakeRogueEndlessActivityAllBonusRewardScRsp": 6002, + "CmdGetRogueEndlessActivityDataCsReq": 6003, + "CmdTakeRogueEndlessActivityPointRewardCsReq": 6004, + "CmdTakeRogueEndlessActivityPointRewardScRsp": 6005, + "CmdGetRogueEndlessActivityDataScRsp": 6006, + "CmdEnterRogueEndlessActivityStageCsReq": 6007, + "CmdRogueEndlessActivityBattleEndScNotify": 6008, + "CmdEnterRogueEndlessActivityStageScRsp": 6010, + "CmdRogueMagicReviveAvatarCsReq": 7704, + "CmdRogueMagicLeaveCsReq": 7705, + "CmdRogueMagicEnterRoomCsReq": 7706, + "CmdRogueMagicBattleFailSettleInfoScNotify": 7708, + "CmdRogueMagicAutoDressInUnitScRsp": 7712, + "CmdRogueMagicSettleScRsp": 7718, + "CmdRogueMagicStartScRsp": 7719, + "CmdRogueMagicSetAutoDressInMagicUnitScRsp": 7722, + "CmdRogueMagicScepterDressInUnitCsReq": 7723, + "CmdRogueMagicEnterLayerCsReq": 7727, + "CmdRogueMagicScepterDressInUnitScRsp": 7728, + "CmdRogueMagicEnterCsReq": 7731, + "CmdRogueMagicLevelInfoUpdateScNotify": 7735, + "CmdRogueMagicStoryInfoUpdateScNotify": 7743, + "CmdRogueMagicEnableTalentScRsp": 7744, + "CmdRogueMagicGetMiscRealTimeDataCsReq": 7749, + "CmdRogueMagicEnterLayerScRsp": 7752, + "CmdRogueMagicAutoDressInMagicUnitChangeScNotify": 7753, + "CmdRogueMagicQueryCsReq": 7757, + "CmdRogueMagicSettleCsReq": 7759, + "CmdRogueMagicUnitComposeCsReq": 7762, + "CmdRogueMagicScepterTakeOffUnitScRsp": 7763, + "CmdRogueMagicGetMiscRealTimeDataScRsp": 7766, + "CmdRogueMagicScepterTakeOffUnitCsReq": 7767, + "CmdRogueMagicEnableTalentCsReq": 7768, + "CmdRogueMagicEnterRoomScRsp": 7770, + "CmdRogueMagicLeaveScRsp": 7771, + "CmdRogueMagicStartCsReq": 7774, + "CmdRogueMagicUnitComposeScRsp": 7780, + "CmdRogueMagicSetAutoDressInMagicUnitCsReq": 7781, + "CmdRogueMagicQueryScRsp": 7782, + "CmdRogueMagicEnterScRsp": 7787, + "CmdRogueMagicAutoDressInUnitCsReq": 7790, + "CmdRogueMagicReviveCostUpdateScNotify": 7792, + "CmdRogueMagicReviveAvatarScRsp": 7794, + "CmdRogueMagicAreaUpdateScNotify": 7798, + "CmdRogueModifierSelectCellScRsp": 5305, + "CmdRogueModifierDelNotify": 5306, + "CmdRogueModifierUpdateNotify": 5318, + "CmdRogueModifierAddNotify": 5331, + "CmdRogueModifierStageStartNotify": 5370, + "CmdRogueModifierSelectCellCsReq": 5387, + "CmdRogueTournWeekChallengeUpdateScNotify": 6011, + "CmdRogueTournPersonaRoomCardZoneUpdateScNotify": 6012, + "CmdRogueTournAreaUpdateScNotify": 6014, + "CmdRogueTournReviveCostUpdateScNotify": 6015, + "CmdRogueTournTakeExpRewardCsReq": 6016, + "CmdRogueTournEnterCsReq": 6018, + "CmdRogueTournGetSeasonTalentInfoCsReq": 6019, + "CmdRogueTournUseSuperRewardKeyCsReq": 6021, + "CmdRogueTournLeaveRogueCocoonSceneCsReq": 6022, + "CmdRogueTournSaveBuildRefCsReq": 6023, + "CmdRogueTournEnablePermanentTalentCsReq": 6025, + "CmdRogueTournConfirmSettleScRsp": 6026, + "CmdRogueTournEnterRogueCocoonSceneScRsp": 6027, + "CmdRogueTournEnterScRsp": 6028, + "CmdRogueTournLeaveCsReq": 6029, + "CmdRogueTournReEnterRogueCocoonStageScRsp": 6030, + "CmdRogueTournRenameBuildRefScRsp": 6031, + "CmdRogueTournRenameArchiveScRsp": 6032, + "CmdRogueTournEnterLayerCsReq": 6033, + "CmdRogueTournTriggerRoomSelectCsReq": 6035, + "CmdRogueTournSettleCsReq": 6036, + "CmdRogueTournGetAllArchiveScRsp": 6037, + "CmdRogueTournReviveAvatarCsReq": 6038, + "CmdRogueTournReEnterRogueCocoonStageCsReq": 6039, + "CmdRogueTournGetArchiveRepositoryScRsp": 6040, + "CmdRogueTournGetAllBuildRefScRsp": 6041, + "CmdRougeTournRenameBuildRefCsReq": 6042, + "CmdRogueTournDeleteBuildRefScRsp": 6043, + "CmdRogueTournTriggerRoomSelectScRsp": 6044, + "CmdRogueTournGetAllBuildRefCsReq": 6045, + "CmdRogueTournGetArchiveRepositoryCsReq": 6046, + "CmdRogueTournClearArchiveNameScNotify": 6048, + "CmdRogueTournHandBookNotify": 6049, + "CmdRogueTournGetCurRogueCocoonInfoScRsp": 6051, + "CmdRogueTournDeleteArchiveCsReq": 6053, + "CmdRogueTournReviveAvatarScRsp": 6054, + "CmdRogueTournConfirmSettleCsReq": 6055, + "CmdRogueTournGetCurRogueCocoonInfoCsReq": 6056, + "CmdRogueTournGetPermanentTalentInfoScRsp": 6057, + "CmdRogueTournGetAllArchiveCsReq": 6058, + "CmdRogueTournEnterRoomCsReq": 6059, + "CmdRogueTournEnableSeasonTalentCsReq": 6060, + "CmdRogueTournSettleScRsp": 6061, + "CmdRogueTournGetSeasonTalentInfoScRsp": 6062, + "CmdRogueTournGetPermanentTalentInfoCsReq": 6063, + "CmdRogueTournStartCsReq": 6064, + "CmdRogueTournResetPermanentTalentScRsp": 6065, + "CmdRogueTournDeleteArchiveScRsp": 6067, + "CmdRogueTournDeleteBuildRefCsReq": 6068, + "CmdRogueTournEnableSeasonTalentScRsp": 6069, + "CmdRogueTournResetPermanentTalentCsReq": 6070, + "CmdRogueTournSaveBuildRefScRsp": 6071, + "CmdRogueTournQueryCsReq": 6072, + "CmdRogueTournGetSettleInfoCsReq": 6073, + "CmdRogueTournStartScRsp": 6074, + "CmdRogueTournLevelInfoUpdateScNotify": 6076, + "CmdRogueTournLeaveScRsp": 6077, + "CmdRogueTournTakeExpRewardScRsp": 6078, + "CmdRogueTournRenameArchiveCsReq": 6079, + "CmdRogueTournExpNotify": 6080, + "CmdRogueTournTitanUpdateTitanBlessProgressScNotify": 6084, + "CmdRogueTournEnterLayerScRsp": 6085, + "CmdRogueTournGetMiscRealTimeDataScRsp": 6086, + "CmdRogueTournEnablePermanentTalentScRsp": 6088, + "CmdRogueTournEnterRoomScRsp": 6089, + "CmdRogueTournEnterRogueCocoonSceneCsReq": 6091, + "CmdRogueTournQueryScRsp": 6092, + "CmdRogueTournGetMiscRealTimeDataCsReq": 6094, + "CmdRogueTournGetSettleInfoScRsp": 6095, + "CmdRogueTournUseSuperRewardKeyScRsp": 6096, + "CmdRogueTournBattleFailSettleInfoScNotify": 6098, + "CmdRogueTournLeaveRogueCocoonSceneScRsp": 6100, + "CmdDoGachaInRollShopCsReq": 6904, + "CmdGetRollShopInfoScRsp": 6908, + "CmdTakeRollShopRewardScRsp": 6909, + "CmdGetRollShopInfoCsReq": 6915, + "CmdTakeRollShopRewardCsReq": 6916, + "CmdDoGachaInRollShopScRsp": 6920, + "CmdSceneType_NLCDGIPGFDJ": 0, + "CmdSetGroupCustomSaveDataScRsp": 1401, + "CmdGroupStateChangeScRsp": 1402, + "CmdSetTrainWorldIdCsReq": 1403, + "CmdSceneType_FILKNGPLIHH": 1404, + "CmdSceneCastSkillCsReq": 1405, + "CmdSceneType_KMHPIJLLLOH": 1406, + "CmdUnlockTeleportNotify": 1407, + "CmdSceneType_EMHKHDBKPOI": 1408, + "CmdSceneEntityTeleportScRsp": 1409, + "CmdUpdateGroupPropertyCsReq": 1410, + "CmdUpdateFloorSavedValueNotify": 1411, + "CmdEnterSceneCsReq": 1413, + "CmdEnteredSceneChangeScNotify": 1414, + "CmdSceneEnterStageScRsp": 1415, + "CmdSetGroupCustomSaveDataCsReq": 1416, + "CmdEnterSceneScRsp": 1417, + "CmdGetCurSceneInfoScRsp": 1418, + "CmdSceneEntityMoveScRsp": 1419, + "CmdGetUnlockTeleportScRsp": 1421, + "CmdSceneReviveAfterRebattleCsReq": 1423, + "CmdSceneType_AOCCFOOBNFL": 1425, + "CmdScenePlaneEventScNotify": 1426, + "CmdSceneEntityMoveScNotify": 1427, + "CmdSceneReviveAfterRebattleScRsp": 1428, + "CmdActiveFarmElementScRsp": 1429, + "CmdReEnterLastElementStageScRsp": 1430, + "CmdInteractPropCsReq": 1431, + "CmdGetUnlockTeleportCsReq": 1432, + "CmdSyncServerSceneChangeNotify": 1433, + "CmdSceneGroupRefreshScNotify": 1434, + "CmdSyncEntityBuffChangeListScNotify": 1435, + "CmdReEnterLastElementStageCsReq": 1436, + "CmdSceneType_DINHGFMGDGP": 1437, + "CmdSceneEntityTeleportCsReq": 1438, + "CmdRefreshTriggerByClientScNotify": 1440, + "CmdGetEnteredSceneCsReq": 1442, + "CmdDeactivateFarmElementCsReq": 1443, + "CmdStartCocoonStageCsReq": 1444, + "CmdSceneCastSkillCostMpScRsp": 1447, + "CmdSceneCastSkillMpUpdateScNotify": 1448, + "CmdSceneType_AEMFLMKKCHM": 1450, + "CmdSceneType_KNDDOLEHBKE": 1452, + "CmdDeactivateFarmElementScRsp": 1453, + "CmdSetTrainWorldIdScRsp": 1456, + "CmdSceneType_OGFHILHFDDF": 1457, + "CmdGetSceneMapInfoScRsp": 1458, + "CmdGetCurSceneInfoCsReq": 1459, + "CmdActiveFarmElementCsReq": 1460, + "CmdGetSceneMapInfoCsReq": 1461, + "CmdSceneType_LBHAOMOKKLA": 1462, + "CmdEnterSectionScRsp": 1463, + "CmdUpdateGroupPropertyScRsp": 1465, + "CmdSetClientPausedCsReq": 1466, + "CmdEnterSectionCsReq": 1467, + "CmdSavePointsInfoNotify": 1468, + "CmdEnterSceneByServerScNotify": 1469, + "CmdChangeTimeRewindInfoScRsp": 1470, + "CmdSceneCastSkillScRsp": 1471, + "CmdCounterRecoverScRsp": 1473, + "CmdSceneEntityMoveCsReq": 1474, + "CmdOpenChestScNotify": 1476, + "CmdTrainWorldIdChangeScNotify": 1477, + "CmdCounterRecoverCsReq": 1479, + "CmdStartCocoonStageScRsp": 1481, + "CmdSceneEnterStageCsReq": 1482, + "CmdRefreshTriggerByClientScRsp": 1483, + "CmdGetCurSceneStablePosScRsp": 1484, + "CmdGetCurSceneStablePosCsReq": 1485, + "CmdCounterDownCsReq": 1486, + "CmdInteractPropScRsp": 1487, + "CmdDeleteSummonUnitCsReq": 1488, + "CmdSceneType_FOADFHNFNCA": 1489, + "CmdSetClientPausedScRsp": 1490, + "CmdGroupStateChangeCsReq": 1491, + "CmdSceneCheckpoingRefreshScRsp": 1492, + "CmdSceneType_JIAEHCICDLJ": 1494, + "CmdCounterDownScRsp": 1496, + "CmdGetEnteredSceneScRsp": 1497, + "CmdSceneCastSkillCostMpCsReq": 1498, + "CmdDeleteSummonUnitScRsp": 1499, + "CmdServerPrefsType_NLCDGIPGFDJ": 0, + "CmdUpdateServerPrefsDataCsReq": 6105, + "CmdGetAllServerPrefsDataScRsp": 6119, + "CmdGetServerPrefsDataCsReq": 6131, + "CmdUpdateServerPrefsDataScRsp": 6171, + "CmdGetAllServerPrefsDataCsReq": 6174, + "CmdGetServerPrefsDataScRsp": 6187, + "CmdTakeCityShopRewardCsReq": 1505, + "CmdGetShopListScRsp": 1519, + "CmdBuyGoodsCsReq": 1531, + "CmdCityShopInfoScNotify": 1559, + "CmdTakeCityShopRewardScRsp": 1571, + "CmdGetShopListCsReq": 1574, + "CmdBuyGoodsScRsp": 1587, + "CmdSocialPlayQueryRecentVisitorsScRsp": 9630, + "CmdSocialPlaySettingInfoScNotify": 9631, + "CmdSocialPlayQueryRecentVisitorsCsReq": 9652, + "CmdSocialPlayGetOnlineRoomDataCsReq": 9666, + "CmdSocialPlayGameplayOperationScNotify": 9672, + "CmdSocialPlayGetOwnerRoomDataCsReq": 9686, + "CmdSocialPlayTalkScRsp": 9722, + "CmdSocialPlayPreCheckEnterRoomScRsp": 9724, + "CmdSocialPlayGetOnlineRoomDataScRsp": 9733, + "CmdSocialPlayRoomPlayerMoveScNotify": 9734, + "CmdSocialPlayGetDataScRsp": 9743, + "CmdSocialPlayGetOwnerRoomDataScRsp": 9750, + "CmdSocialPlayTalkCsReq": 9752, + "CmdSocialPlayGetDataCsReq": 9761, + "CmdSpaceZooMutateCsReq": 6705, + "CmdSpaceZooDeleteCatCsReq": 6706, + "CmdSpaceZooOpCatteryScRsp": 6718, + "CmdSpaceZooDataScRsp": 6719, + "CmdSpaceZooCatUpdateNotify": 6727, + "CmdSpaceZooBornCsReq": 6731, + "CmdSpaceZooExchangeItemScRsp": 6735, + "CmdSpaceZooTakeScRsp": 6747, + "CmdSpaceZooExchangeItemCsReq": 6752, + "CmdSpaceZooOpCatteryCsReq": 6759, + "CmdSpaceZooDeleteCatScRsp": 6770, + "CmdSpaceZooMutateScRsp": 6771, + "CmdSpaceZooDataCsReq": 6774, + "CmdSpaceZooBornScRsp": 6787, + "CmdSpaceZooTakeCsReq": 6798, + "CmdGetStarFightDataCsReq": 7163, + "CmdGetStarFightDataScRsp": 7166, + "CmdStartStarFightLevelCsReq": 7167, + "CmdStarFightDataChangeNotify": 7168, + "CmdStartStarFightLevelScRsp": 7170, + "CmdGetStoryLineInfoScRsp": 6219, + "CmdStoryLineInfoScNotify": 6231, + "CmdStoryLineTrialAvatarChangeScNotify": 6259, + "CmdChangeStoryLineFinishScNotify": 6271, + "CmdGetStoryLineInfoCsReq": 6274, + "CmdEnterStrongChallengeActivityStageCsReq": 6631, + "CmdEnterStrongChallengeActivityStageScRsp": 6687, + "CmdGetSummonActivityDataCsReq": 7563, + "CmdGetSummonActivityDataScRsp": 7566, + "CmdEnterSummonActivityStageCsReq": 7567, + "CmdSummonActivityBattleEndScNotify": 7568, + "CmdEnterSummonActivityStageScRsp": 7570, + "CmdSwitchHandStartCsReq": 8104, + "CmdSwitchHandResetTransformCsReq": 8105, + "CmdGetSwitchHandUpdateScRsp": 8106, + "CmdSwitchHandCatchItemCsReq": 8107, + "CmdGetSwitchHandDataScRsp": 8108, + "CmdSwitchHandFinishScRsp": 8109, + "CmdGetSwitchHandResetHandPosScRsp": 8111, + "CmdSwitchHandCoinUpdateScRsp": 8112, + "CmdSwitchHandCoinUpdateCsReq": 8113, + "CmdGetSwitchHandDataCsReq": 8115, + "CmdSwitchHandFinishCsReq": 8116, + "CmdGetSwitchHandResetGameCsReq": 8118, + "CmdGetSwitchHandResetGameScRsp": 8119, + "CmdSwitchHandStartScRsp": 8120, + "CmdSwordTrainingActionTurnSettleScNotify": 7451, + "CmdSwordTrainingUnlockSyncScNotify": 7453, + "CmdSwordTrainingMarkEndingViewedCsReq": 7454, + "CmdSwordTrainingMarkEndingViewedScRsp": 7455, + "CmdSwordTrainingGiveUpGameCsReq": 7456, + "CmdSwordTrainingStoryConfirmScRsp": 7458, + "CmdSwordTrainingStoryConfirmCsReq": 7459, + "CmdEnterSwordTrainingExamCsReq": 7460, + "CmdSwordTrainingResumeGameScRsp": 7462, + "CmdSwordTrainingSelectEndingScRsp": 7464, + "CmdSwordTrainingStartGameScRsp": 7465, + "CmdSwordTrainingStartGameCsReq": 7466, + "CmdSwordTrainingRestoreGameCsReq": 7467, + "CmdSwordTrainingStoryBattleCsReq": 7469, + "CmdSwordTrainingStoryBattleScRsp": 7470, + "CmdSwordTrainingExamResultConfirmScRsp": 7471, + "CmdSwordTrainingDialogueSelectOptionCsReq": 7474, + "CmdSwordTrainingLearnSkillCsReq": 7475, + "CmdSwordTrainingSelectEndingCsReq": 7477, + "CmdSwordTrainingSetSkillTraceCsReq": 7478, + "CmdSwordTrainingTurnActionScRsp": 7480, + "CmdSwordTrainingGiveUpGameScRsp": 7481, + "CmdSwordTrainingDailyPhaseConfirmScRsp": 7484, + "CmdSwordTrainingDailyPhaseConfirmCsReq": 7485, + "CmdSwordTrainingSetSkillTraceScRsp": 7486, + "CmdSwordTrainingDialogueSelectOptionScRsp": 7487, + "CmdGetSwordTrainingDataCsReq": 7488, + "CmdSwordTrainingRestoreGameScRsp": 7490, + "CmdEnterSwordTrainingExamScRsp": 7491, + "CmdSwordTrainingGameSyncChangeScNotify": 7492, + "CmdSwordTrainingExamResultConfirmCsReq": 7493, + "CmdSwordTrainingLearnSkillScRsp": 7494, + "CmdSwordTrainingGameSettleScNotify": 7496, + "CmdGetSwordTrainingDataScRsp": 7498, + "CmdSwordTrainingResumeGameCsReq": 7499, + "CmdSwordTrainingTurnActionCsReq": 7500, + "CmdPlayerSyncScNotify": 674, + "CmdTalkRewardType_MNPGFLPBDLK": 0, + "CmdGetFirstTalkNpcCsReq": 2105, + "CmdTalkRewardType_PEBGMODAAJE": 2106, + "CmdFinishFirstTalkNpcScRsp": 2118, + "CmdGetNpcTakenRewardScRsp": 2119, + "CmdGetFirstTalkByPerformanceNpcCsReq": 2127, + "CmdGetTalkEventRewardCsReq": 2131, + "CmdFinishFirstTalkByPerformanceNpcCsReq": 2135, + "CmdGetFirstTalkByPerformanceNpcScRsp": 2152, + "CmdFinishFirstTalkNpcCsReq": 2159, + "CmdTalkRewardType_BECJLBLPNHG": 2170, + "CmdGetFirstTalkNpcScRsp": 2171, + "CmdGetNpcTakenRewardCsReq": 2174, + "CmdTakeTalkRewardScRsp": 2187, + "CmdFinishFirstTalkByPerformanceNpcScRsp": 2198, + "CmdTarotBookMultiOpenPackAndUnlockStoryScRsp": 8141, + "CmdTarotBookOpenPackCsReq": 8144, + "CmdTarotBookFinishInteractionScRsp": 8145, + "CmdTarotBookFinishStoryScRsp": 8146, + "CmdTarotBookFinishStoryCsReq": 8147, + "CmdTarotBookGetDataScRsp": 8148, + "CmdTarotBookUnlockStoryScRsp": 8149, + "CmdTarotBookMultiOpenPackAndUnlockStoryCsReq": 8150, + "CmdTarotBookUnlockInteractionCsReq": 8151, + "CmdTarotBookFinishInteractionCsReq": 8152, + "CmdTarotBookModifyEnergyScNotify": 8153, + "CmdTarotBookGetDataCsReq": 8155, + "CmdTarotBookUnlockStoryCsReq": 8156, + "CmdTarotBookUnlockInteractionScRsp": 8158, + "CmdTarotBookSyncDataScNotify": 8159, + "CmdTarotBookOpenPackScRsp": 8160, + "CmdGetTelevisionActivityDataScRsp": 6968, + "CmdTelevisionActivityBattleEndScNotify": 6969, + "CmdGetTelevisionActivityDataCsReq": 6975, + "CmdEnterTelevisionActivityStageScRsp": 6976, + "CmdEnterTelevisionActivityStageCsReq": 6980, + "CmdTextJoinBatchSaveCsReq": 3805, + "CmdTextJoinQueryCsReq": 3831, + "CmdTextJoinBatchSaveScRsp": 3871, + "CmdTextJoinQueryScRsp": 3887, + "CmdQuitTrackPhotoStageScRsp": 7551, + "CmdGetTrackPhotoActivityDataCsReq": 7553, + "CmdStartTrackPhotoStageScRsp": 7554, + "CmdQuitTrackPhotoStageCsReq": 7555, + "CmdGetTrackPhotoActivityDataScRsp": 7556, + "CmdSettleTrackPhotoStageCsReq": 7557, + "CmdStartTrackPhotoStageCsReq": 7558, + "CmdSettleTrackPhotoStageScRsp": 7560, + "CmdTrainCakeCatchOpenBoxCsReq": 10144, + "CmdTrainCakeCatchDiyScRsp": 10146, + "CmdTrainCakeCatchDiyCsReq": 10147, + "CmdTrainCakeCatchSearchScRsp": 10149, + "CmdTrainPetDiyScRsp": 10150, + "CmdTrainCakeCatchDiyLikeScRsp": 10152, + "CmdTrainCakeCatchDiyLikeCsReq": 10153, + "CmdTrainCakeCatchSearchCsReq": 10156, + "CmdTrainCakeCatchDataScNotify": 10158, + "CmdTrainPetDiyCsReq": 10159, + "CmdTrainCakeCatchOpenBoxScRsp": 10160, + "CmdTrainRefreshTimeNotify": 3705, + "CmdTakeTrainVisitorBehaviorRewardCsReq": 3706, + "CmdGetTrainVisitorRegisterScRsp": 3718, + "CmdTrainVisitorBehaviorFinishScRsp": 3719, + "CmdNewSupplementVisitorCsReq": 3727, + "CmdNewSupplementVisitorScRsp": 3752, + "CmdGetTrainVisitorRegisterCsReq": 3759, + "CmdTakeTrainVisitorBehaviorRewardScRsp": 3770, + "CmdTrainVisitorRewardSendNotify": 3771, + "CmdTrainVisitorBehaviorFinishCsReq": 3774, + "CmdTravelBrochurePageResetScRsp": 6404, + "CmdTravelBrochureSelectMessageCsReq": 6405, + "CmdTravelBrochureRemovePasterCsReq": 6406, + "CmdTravelBrochureSetPageDescStatusScRsp": 6408, + "CmdTravelBrochureGetDataScRsp": 6419, + "CmdTravelBrochureUpdatePasterPosCsReq": 6427, + "CmdTravelBrochurePageUnlockScNotify": 6431, + "CmdTravelBrochureSetCustomValueCsReq": 6447, + "CmdTravelBrochureSetCustomValueScRsp": 6448, + "CmdTravelBrochureUpdatePasterPosScRsp": 6452, + "CmdTravelBrochureApplyPasterListScRsp": 6457, + "CmdTravelBrochureRemovePasterScRsp": 6470, + "CmdTravelBrochureSelectMessageScRsp": 6471, + "CmdTravelBrochureGetDataCsReq": 6474, + "CmdTravelBrochureSetPageDescStatusCsReq": 6475, + "CmdTravelBrochurePageResetCsReq": 6492, + "CmdTravelBrochureApplyPasterListCsReq": 6494, + "CmdInteractTreasureDungeonGridScRsp": 4404, + "CmdFightTreasureDungeonMonsterScRsp": 4408, + "CmdQuitTreasureDungeonScRsp": 4415, + "CmdTreasureDungeonFinishScNotify": 4419, + "CmdGetTreasureDungeonActivityDataCsReq": 4427, + "CmdEnterTreasureDungeonCsReq": 4435, + "CmdOpenTreasureDungeonGridCsReq": 4447, + "CmdOpenTreasureDungeonGridScRsp": 4448, + "CmdGetTreasureDungeonActivityDataScRsp": 4452, + "CmdUseTreasureDungeonItemScRsp": 4457, + "CmdTreasureDungeonDataScNotify": 4474, + "CmdFightTreasureDungeonMonsterCsReq": 4475, + "CmdQuitTreasureDungeonCsReq": 4482, + "CmdInteractTreasureDungeonGridCsReq": 4492, + "CmdUseTreasureDungeonItemCsReq": 4494, + "CmdEnterTreasureDungeonScRsp": 4498, + "CmdUnlockTutorialCsReq": 1605, + "CmdFinishTutorialCsReq": 1606, + "CmdUnlockTutorialGuideScRsp": 1618, + "CmdGetTutorialScRsp": 1619, + "CmdFinishTutorialGuideCsReq": 1627, + "CmdGetTutorialGuideCsReq": 1631, + "CmdFinishTutorialGuideScRsp": 1652, + "CmdUnlockTutorialGuideCsReq": 1659, + "CmdFinishTutorialScRsp": 1670, + "CmdUnlockTutorialScRsp": 1671, + "CmdGetTutorialCsReq": 1674, + "CmdGetTutorialGuideScRsp": 1687, + "CmdVoracityInvasionChangeScNotify": 10264, + "CmdGetVoracityInvasionDataScRsp": 10268, + "CmdGetVoracityInvasionDataCsReq": 10275, + "CmdWorldUnlockScRsp": 7626, + "CmdWorldUnlockCsReq": 7627 +} \ No newline at end of file diff --git a/app/src/main/java/com/gacy/android/data/UpdateRepository.kt b/app/src/main/java/com/gacy/android/data/UpdateRepository.kt index 1f1e160..cfc67b1 100644 --- a/app/src/main/java/com/gacy/android/data/UpdateRepository.kt +++ b/app/src/main/java/com/gacy/android/data/UpdateRepository.kt @@ -43,16 +43,41 @@ class UpdateRepository(private val context: Context) { fun isServerInstalled(): Boolean { val ppsrFile = File(context.filesDir, "server/build/build/ppsr.pyc") - return ppsrFile.exists() && ppsrFile.length() > 0 + if (!ppsrFile.exists() || ppsrFile.length() < 16) return false + + // Check if build code matches current APK + val installedBuildCode = prefs.getInt("installed_build_code", -1) + if (installedBuildCode != com.gacy.android.BuildConfig.VERSION_CODE) { + return false + } + + // Validate that python bytecode magic is genuine Python 3.14: [43, 14, 13, 10] + try { + ppsrFile.inputStream().use { stream -> + val magic = ByteArray(4) + if (stream.read(magic) == 4) { + if (magic[0] != 43.toByte() || magic[1] != 14.toByte() || magic[2] != 13.toByte() || magic[3] != 10.toByte()) { + return false // Incompatible bytecode from old install, force refresh! + } + } else { + return false + } + } + } catch (_: Exception) { + return false + } + + return true } - suspend fun ensureServerInstalled(): Boolean = withContext(Dispatchers.IO) { + suspend fun ensureServerInstalled(force: Boolean = false): Boolean = withContext(Dispatchers.IO) { val ppsrFile = File(context.filesDir, "server/build/build/ppsr.pyc") - if (ppsrFile.exists() && ppsrFile.length() > 0) { + if (!force && isServerInstalled()) { return@withContext true } try { + com.gacy.android.CrashTracker.breadcrumb(context, "UpdateRepository: ensureServerInstalled start (force=$force)") val stagingDir = File(context.filesDir, "server/staging") val targetServerDir = File(context.filesDir, "server/build/build") @@ -60,6 +85,7 @@ class UpdateRepository(private val context: Context) { stagingDir.mkdirs() // 1. Extract build.zip from bundled assets + com.gacy.android.CrashTracker.breadcrumb(context, "UpdateRepository: extracting build.zip") extractAssetZip("build.zip", stagingDir) val stagedBuildDir = File(stagingDir, "build") @@ -67,12 +93,25 @@ class UpdateRepository(private val context: Context) { // 2. Extract runtime packages into effective directory try { + com.gacy.android.CrashTracker.breadcrumb(context, "UpdateRepository: extracting packages.zip") extractAssetZip("packages.zip", effectiveStagedDir) } catch (e: Exception) { + com.gacy.android.CrashTracker.breadcrumb(context, "UpdateRepository: packages.zip notice: ${e.message}") e.printStackTrace() } + // Keep the player's settings when refreshing the bundled server. + for (name in listOf("persistent.json", "config.json")) { + val existing = File(targetServerDir, "misc/$name") + if (existing.isFile) { + val destination = File(effectiveStagedDir, "misc/$name") + destination.parentFile?.mkdirs() + existing.copyTo(destination, overwrite = true) + } + } + // 3. Move/Rename into place + com.gacy.android.CrashTracker.breadcrumb(context, "UpdateRepository: moving to target directory") if (targetServerDir.exists()) { targetServerDir.deleteRecursively() } @@ -85,9 +124,16 @@ class UpdateRepository(private val context: Context) { } if (stagingDir.exists()) stagingDir.deleteRecursively() - setInstalledVersion("4.6.53-embedded") + prefs.edit() + .putInt("installed_build_code", com.gacy.android.BuildConfig.VERSION_CODE) + .putString(PREF_INSTALLED_VERSION, "4.6.53-embedded-py314") + .apply() + + setInstalledVersion("4.6.53-embedded-py314") + com.gacy.android.CrashTracker.breadcrumb(context, "UpdateRepository: ensureServerInstalled finished success=${ppsrFile.exists()}") return@withContext ppsrFile.exists() } catch (e: Exception) { + com.gacy.android.CrashTracker.breadcrumb(context, "UpdateRepository: ensureServerInstalled error: ${e.message}") e.printStackTrace() return@withContext false } diff --git a/app/src/main/python/run_ppsr.py b/app/src/main/python/run_ppsr.py index 2d41d23..ac83249 100644 --- a/app/src/main/python/run_ppsr.py +++ b/app/src/main/python/run_ppsr.py @@ -8,6 +8,12 @@ import socket import struct import warnings +# === SYS.EXIT INTERCEPTOR (Prevent Android Process Termination) === +def _safe_sys_exit(code=0): + print(f"[Sys] Intercepted sys.exit({code}), prevented Android process exit.") + raise SystemExit(code) +sys.exit = _safe_sys_exit + # === GLOBAL WARNING SUPPRESSION & METADATA SHIM (very early) === try: import importlib.metadata @@ -288,10 +294,14 @@ def _sanitize_persistent_file(persistent_file): data[k][sub_k] = copy.deepcopy(sub_v) modified = True + if "send_hotfix" not in data: + data["send_hotfix"] = True + modified = True + if modified or not os.path.exists(persistent_file): with open(persistent_file, "w", encoding="utf-8") as f: json.dump(data, f, indent=4) - print("[Patch] persistent.json validated and auto-healed with complete avatar/scene defaults") + print("[Patch] persistent.json validated and auto-healed with complete avatar/scene defaults (send_hotfix=True)") except Exception as e: print(f"[Patch Warning] sanitize persistent: {e}") @@ -332,32 +342,7 @@ def kill_server_process(): pass _active_server_instance = None - try: - for obj in gc.get_objects(): - if isinstance(obj, socket.socket): - try: - obj.shutdown(socket.SHUT_RDWR) - obj.close() - except Exception: - pass - except Exception: - pass - - try: - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - s.close() - except Exception: - pass - - time.sleep(1.2) - - for _ in range(5): - try: - _thread.interrupt_main() - time.sleep(0.2) - except Exception: - pass + # Do not close unrelated application sockets or interrupt the Android main thread. # --- 5. Main Execution Entrypoint --- def run_server(ppsr_path, activity_context=None): @@ -458,13 +443,183 @@ def run_server(ppsr_path, activity_context=None): except Exception as e: print(f"[Patch Warning] Manager persistent patch: {e}") + # --- 4.6 Command IDs & Router Patch --- + CORE_46 = { + "ChangeLineupLeaderCsReq": 798, + "ChangeLineupLeaderScRsp": 747, + "ClientDownloadDataScNotify": 60, + "DressAvatarSkinCsReq": 357, + "DressAvatarSkinScRsp": 382, + "GetAllLineupDataCsReq": 704, + "GetAllLineupDataScRsp": 794, + "GetAssistListCsReq": 2962, + "GetAssistListScRsp": 2980, + "GetAvatarDataCsReq": 374, + "GetAvatarDataScRsp": 319, + "GetBagCsReq": 574, + "GetBagScRsp": 519, + "GetBasicInfoCsReq": 46, + "GetBasicInfoScRsp": 20, + "GetBigDataAllRecommendCsReq": 2437, + "GetBigDataAllRecommendScRsp": 2411, + "GetCurLineupDataCsReq": 731, + "GetCurLineupDataScRsp": 787, + "GetCurSceneInfoCsReq": 1459, + "GetCurSceneInfoScRsp": 1418, + "GetFriendAssistListCsReq": 2978, + "GetFriendAssistListScRsp": 2939, + "GetFriendListInfoCsReq": 2974, + "GetFriendListInfoScRsp": 2919, + "GetMissionStatusCsReq": 1204, + "GetMissionStatusScRsp": 1294, + "GetRechargeGiftInfoCsReq": 8375, + "GetRechargeGiftInfoScRsp": 8368, + "GetUnreleasedBlockInfoCsReq": 4190, + "GetUnreleasedBlockInfoScRsp": 4112, + "JoinLineupCsReq": 705, + "JoinLineupScRsp": 771, + "PVEBattleResultCsReq": 174, + "PVEBattleResultScRsp": 119, + "PlayerGetTokenCsReq": 5, + "PlayerGetTokenScRsp": 71, + "PlayerHeartBeatCsReq": 45, + "PlayerHeartBeatScRsp": 16, + "PlayerLoginCsReq": 74, + "PlayerLoginFinishCsReq": 9, + "PlayerLoginFinishScRsp": 13, + "PlayerLoginScRsp": 19, + "PlayerSyncScNotify": 674, + "QuitLineupCsReq": 759, + "QuitLineupScRsp": 718, + "ReplaceLineupCsReq": 782, + "ReplaceLineupScRsp": 715, + "SceneCastSkillCsReq": 1405, + "SceneCastSkillScRsp": 1471, + "SceneEntityMoveCsReq": 1474, + "SceneEntityMoveScNotify": 1427, + "SceneEntityMoveScRsp": 1419, + "SceneGroupRefreshScNotify": 1434, + "SetAvatarEnhancedIdCsReq": 381, + "SetAvatarEnhancedIdScRsp": 322, + "StartCocoonStageCsReq": 1444, + "StartCocoonStageScRsp": 1481, + "SyncLineupNotify": 727, + "TakeOffAvatarSkinCsReq": 315, + "TakeOffAvatarSkinScRsp": 323 + } + try: + import json + import game.cmdid as _cmdid_mod import game.router as _router_mod - _orig_router_handle = _router_mod.handle + import game.packet as _packet_mod + + TABLE_46 = dict(CORE_46) + for json_path in [ + os.path.join(ppsr_dir, "cmd_ids_4_6.json"), + os.path.join(misc_dir, "cmd_ids_4_6.json"), + r"/data/data/com.gacy.android/files/server/cmd_ids_4_6.json", + r"/data/data/com.gacy.android/files/server/build/build/cmd_ids_4_6.json" + ]: + if os.path.exists(json_path): + try: + with open(json_path, "r", encoding="utf-8") as _cjf: + _raw = json.load(_cjf) + for _k, _v in _raw.items(): + _name = _k[3:] if _k.startswith("Cmd") else _k + TABLE_46[_name] = _v + if "GetFriendListInfoScRsp" not in TABLE_46: + TABLE_46["GetFriendListInfoScRsp"] = 2919 + print(f"[Patch] Loaded {len(TABLE_46)} 4.6 commands from {json_path}") + break + except Exception as _cje: + print(f"[Patch Warning] Load cmd_ids_4_6.json: {_cje}") + + _cmdid_mod.cmd_dict = TABLE_46 + _router_mod.cmd_dict = TABLE_46 + _router_mod.cmds = list(TABLE_46.keys()) + _router_mod.cmd_ids = list(TABLE_46.values()) + + _handlers_to_wire = [ + ('GetAvatarDataCsReq', 'GetAvatarDataCsReq'), + ('DressAvatarSkinCsReq', 'DressAvatarSkinCsReq'), + ('TakeOffAvatarSkinCsReq', 'TakeOffAvatarSkinCsReq'), + ('SetAvatarEnhancedIdCsReq', 'SetAvatarEnhancedIdCsReq'), + ('PVEBattleResultCsReq', 'PVEBattleResultCsReq'), + ('GetBagCsReq', 'GetBagCsReq'), + ('GetCurLineupDataCsReq', 'GetCurLineupDataCsReq'), + ('JoinLineupCsReq', 'JoinLineupCsReq'), + ('QuitLineupCsReq', 'QuitLineupCsReq'), + ('ChangeLineupLeaderCsReq', 'ChangeLineupLeaderCsReq'), + ('GetAllLineupDataCsReq', 'GetAllLineupDataCsReq'), + ('ReplaceLineupCsReq', 'ReplaceLineupCsReq'), + ('GetUnreleasedBlockInfoCsReq', 'GetUnreleasedBlockInfoCsReq'), + ('GetMissionStatusCsReq', 'GetMissionStatusCsReq'), + ('PlayerLoginCsReq', 'PlayerLoginCsReq'), + ('PlayerGetTokenCsReq', 'PlayerGetTokenCsReq'), + ('GetBasicInfoCsReq', 'GetBasicInfoCsReq'), + ('PlayerHeartBeatCsReq', 'PlayerHeartBeatCsReq'), + ('PlayerLoginFinishCsReq', 'PlayerLoginFinishCsReq'), + ('GetRechargeGiftInfoCsReq', 'GetRechargeGiftInfoCsReq'), + ('GetBigDataAllRecommendCsReq', 'GetBigDataAllRecommendCsReq'), + ('SceneCastSkillCsReq', 'SceneCastSkillCsReq'), + ('GetCurSceneInfoCsReq', 'GetCurSceneInfoCsReq'), + ('StartCocoonStageCsReq', 'StartCocoonStageCsReq'), + ('SceneEntityMoveCsReq', 'SceneEntityMoveCsReq'), + ] + + _new_handle_funct = {} + for req_name, handler_name in _handlers_to_wire: + if hasattr(_router_mod, handler_name): + h_mod = getattr(_router_mod, handler_name) + if hasattr(h_mod, 'handle'): + cid = TABLE_46.get(req_name) + if cid is not None: + _new_handle_funct[cid] = h_mod.handle + + _router_mod.handle_funct = _new_handle_funct + + def _safe_to_rsp(req_name): + if req_name.endswith('CsReq'): + rsp_name = req_name[:-5] + 'ScRsp' + if rsp_name in TABLE_46: + return TABLE_46[rsp_name] + return -1 + + _router_mod.to_rsp = _safe_to_rsp def _safe_router_handle(data): try: - return _orig_router_handle(data) + cmd, head, body = _packet_mod.read_packet(data) + if cmd not in _router_mod.cmd_ids: + print(f"[Packet Warning] Unhandled cmd_id {cmd}") + return b'' + + cmd_name = _router_mod.cmds[_router_mod.cmd_ids.index(cmd)] + rsp_cmd = _router_mod.to_rsp(cmd_name) + + if cmd not in _router_mod.handle_funct: + if rsp_cmd != -1: + print(f"[Packet] Recv dummy {cmd_name} ({cmd}) -> Send dummy {rsp_cmd}") + return _packet_mod.write_packet(rsp_cmd, b'', b'') + else: + print(f"[Packet] Recv notify/unknown {cmd_name} ({cmd})") + return b'' + + handler_funct = _router_mod.handle_funct[cmd] + rsp_body = handler_funct(body) + + if cmd == TABLE_46.get('StartCocoonStageCsReq'): + try: + import game.services.manager as _mgr + _mgr.Manager.load_persistent() + _mgr.Manager.load_freesr() + except Exception: + pass + + print(f"[Packet] Recv {cmd_name} ({cmd}) -> Send {rsp_cmd}") + return _packet_mod.write_packet(rsp_cmd, b'', rsp_body) + except Exception as e: import traceback print(f"[Router Warning] Handled exception in router.handle: {e}") @@ -472,24 +627,347 @@ def run_server(ppsr_path, activity_context=None): return b'' _router_mod.handle = _safe_router_handle - print("[Patch] game.router.handle wrapped with crash-guard") + print(f"[Patch] game.router mapped with {len(_new_handle_funct)} 4.6 handlers and crash-guard") + except Exception as e: - print(f"[Patch Warning] Router crash-guard: {e}") - - print(f"Loading bytecode target: {ppsr_path}...") - - with open(ppsr_path, "rb") as f: - code_bytes = f.read() + print(f"[Patch Warning] 4.6 router patch: {e}") + # --- SafeHotfixDict & Dispatch Patch (Prevent 1001_3 KeyError & reachable Gateway IP) --- try: - import marshal - code_obj = marshal.loads(code_bytes[16:]) - except Exception: - code_obj = compile(code_bytes, ppsr_path, "exec") + import json + import base64 + import dispatch.dispatchserver as _ds_mod + + class SafeHotfixDict(dict): + def __getitem__(self, key): + if key in self: + return super().__getitem__(key) + base = str(key).split('_')[0] + if base in self: + print(f"[SafeHotfix] Version resolved: {key} -> {base}") + return super().__getitem__(base) + for cand in ['OSBETAAndroid4.6.54', 'OSBETAAndroid4.6.53', 'OSBETAWin4.6.54', 'OSBETAWin4.6.53', 'OSBETAAndroid4.6.51', 'OSBETAWin4.6.51']: + if cand in self: + print(f"[SafeHotfix] Version fallback: {key} -> {cand}") + return super().__getitem__(cand) + if len(self) > 0: + first_val = next(iter(self.values())) + print(f"[SafeHotfix] Unknown version {key}, falling back to default hotfix.") + return first_val + return {} + + if hasattr(_ds_mod, 'hotfix') and isinstance(_ds_mod.hotfix, dict): + _ds_mod.hotfix = SafeHotfixDict(_ds_mod.hotfix) + elif os.path.exists(os.path.join(misc_dir, "hotfix.json")): + with open(os.path.join(misc_dir, "hotfix.json"), "r", encoding="utf-8") as _hf_file: + _ds_mod.hotfix = SafeHotfixDict(json.load(_hf_file)) + + if hasattr(_ds_mod, 'check_hotfix'): + _orig_check_hotfix = _ds_mod.check_hotfix + def _safe_check_hotfix(version, full_path): + try: + return _orig_check_hotfix(version, full_path) + except Exception as ex: + print(f"[SafeHotfix Warning] check_hotfix handled safely: {ex}") + _ds_mod.check_hotfix = _safe_check_hotfix + + # Keep _ds_mod.HOST = "127.0.0.1" for internal references + _ds_mod.HOST = "127.0.0.1" + + def resolve_client_gate_ip(): + try: + from flask import request + if request.remote_addr in ('127.0.0.1', '::1', 'localhost'): + return '127.0.0.1' + with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as probe: + probe.connect((request.remote_addr, 9)) + return probe.getsockname()[0] + except Exception: + pass + return '127.0.0.1' + + def _patched_query_gateway(): + from flask import request + version = request.args.get('version') + if version is None or request.method == 'HEAD': + return '', 200 + + from msg import classes_pb2 + gate_ip = resolve_client_gate_ip() + print(f"[Gateway] Resolved gateserver target: {gate_ip}:{_ds_mod.GAME_PORT} for client {request.remote_addr}") + + response = classes_pb2.Gateserver( + ip=gate_ip, + port=_ds_mod.GAME_PORT, + unk1=True, unk2=True, unk3=True, unk4=True, unk5=True, + unk6=True, unk7=True, unk8=True + ) + + # Check if persistent specifies send_hotfix (Default to True for 4.6) + should_send_hotfix = True + try: + import game.services.manager as _mgr_mod + if hasattr(_mgr_mod, 'Manager') and hasattr(_mgr_mod.Manager, 'persistent'): + should_send_hotfix = bool(_mgr_mod.Manager.persistent.get('send_hotfix', True)) + except Exception: + should_send_hotfix = True + + if should_send_hotfix: + clean_ver = version.split('_')[0] if version else version + hf = _ds_mod.hotfix.get(version) or _ds_mod.hotfix.get(clean_ver) + + if isinstance(hf, dict) and hf: + response.asset_bundle_url = str(hf.get('asset_bundle_url', '')) + response.asset_bundle_url_b = str(hf.get('asset_bundle_url_b', '')) + response.ex_resource_url = str(hf.get('ex_resource_url', '')) + response.lua_url = str(hf.get('lua_url', '')) + response.ifix_url = str(hf.get('ifix_url', '')) + response.lua_version = str(hf.get('lua_version', '0')) + response.ifix_version = str(hf.get('ifix_version', '0')) + print(f"[Gateway] Hotfix populated for {version} (asset_bundle_url={response.asset_bundle_url[:35]}..., lua_ver={response.lua_version})") + else: + print(f"[Gateway Warning] No hotfix metadata found for {version}") + return 'Unknown client version', 400 + else: + print(f"[Gateway] Hotfix download bypassed (send_hotfix=False) for client {request.remote_addr}") + + return base64.b64encode(response.SerializeToString()) + + def _patched_query_dispatch(): + from flask import request + from msg import classes_pb2 + gate_ip = resolve_client_gate_ip() + print(f"[Dispatch] Query dispatch from {request.remote_addr}, offering gateway at {gate_ip}:{_ds_mod.PORT}") + response = classes_pb2.Dispatch( + msg='OK', + retcode=0, + top_server_region_name='pp_sr', + region_list=[ + classes_pb2.RegionInfo( + name='ppSR', + title='ppSR', + dispatch_url=f'http://{gate_ip}:{_ds_mod.PORT}/query_gateway', + env_type='9', + display_name='ppSR' + ) + ] + ) + return base64.b64encode(response.SerializeToString()) + + # Patch DispatchServer.run_server to bind 0.0.0.0 + if hasattr(_ds_mod, 'DispatchServer') and hasattr(_ds_mod.DispatchServer, 'run_server'): + @classmethod + def _patched_run_server(cls): + try: + import logging, flask + logging.getLogger('werkzeug').disabled = True + flask.cli.show_server_banner = lambda *args: None + print(f"Dispatch server listening on 0.0.0.0:{_ds_mod.PORT}") + print(f"Forwarding to 127.0.0.1:{_ds_mod.GAME_PORT}") + _ds_mod.app.run(host="0.0.0.0", port=_ds_mod.PORT, threaded=False, use_reloader=False, debug=False) + except Exception as ex: + print(f"[DispatchServer Error]: {ex}") + _ds_mod.DispatchServer.run_server = _patched_run_server + + _app = _ds_mod.app + _app.view_functions['query_gateway'] = _patched_query_gateway + _ds_mod.query_gateway = _patched_query_gateway + + _app.view_functions['query_dispatch'] = _patched_query_dispatch + _ds_mod.query_dispatch = _patched_query_dispatch + + @_app.before_request + def _log_http_req(): + try: + from flask import request as _req + if any(k in _req.path for k in ['log', 'Upload', 'report']): + body_preview = _req.get_data()[:300].decode('utf-8', errors='ignore') + print(f"[HTTP Telemetry] {_req.method} {_req.path}: {body_preview}") + else: + print(f"[HTTP] {_req.method} {_req.path}") + except Exception: + pass + + @_app.after_request + def _log_http_rsp(resp): + try: + from flask import request as _req + print(f"[HTTP] {_req.method} {_req.path} -> {resp.status_code}") + resp.headers['Access-Control-Allow-Origin'] = '*' + resp.headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS, HEAD' + resp.headers['Access-Control-Allow-Headers'] = '*' + except Exception: + pass + return resp + + def _handle_login_rsp(*args, **kwargs): + try: + return _ds_mod.login_by_password(), 200, {'Content-Type': 'application/json'} + except Exception as e: + print(f"[Login Error]: {e}") + return '{"retcode":0,"message":"OK","data":{}}', 200, {'Content-Type': 'application/json'} + + def _handle_load_config(*args, **kwargs): + return '{"retcode":0,"message":"OK","data":{"client_custom_config":"","client_saved_config":""}}', 200, {'Content-Type': 'application/json'} + + for _route in [ + '//account/ma-passport/api/appLoginByPassword', + '/account/ma-passport/api/appLoginByPassword', + '//account/ma-cn-passport/app/loginByPassword', + '/account/ma-cn-passport/app/loginByPassword', + '//account/ma-passport/token/verify', + '/account/ma-passport/token/verify', + '//account/auth/api/login', + '/account/auth/api/login' + ]: + try: + _app.add_url_rule(_route, endpoint=f'flex_{_route}', view_func=_handle_login_rsp, methods=['OPTIONS', 'POST', 'GET']) + except Exception: + pass + + for _cfg_route in [ + '//mdk/shield/api/loadConfig', + '/mdk/shield/api/loadConfig', + '/hkrpg_/mdk/shield/api/loadConfig', + '/hkrpg_global/mdk/shield/api/loadConfig' + ]: + try: + _app.add_url_rule(_cfg_route, endpoint=f'cfg_{_cfg_route}', view_func=_handle_load_config, methods=['OPTIONS', 'POST', 'GET']) + except Exception: + pass + + @_app.errorhandler(405) + def _handle_405(e): + return '{"retcode":0,"message":"OK","data":{}}', 200, {'Content-Type': 'application/json'} + + @_app.errorhandler(404) + def _handle_404(e): + try: + from flask import request as _req + print(f"[HTTP 404 Fallback] {_req.method} {_req.path}") + if any(k in _req.path for k in ['login', 'passport', 'token', 'auth', 'shield']): + return _ds_mod.login_by_password(), 200, {'Content-Type': 'application/json'} + if 'combo' in _req.path: + return _ds_mod.login_v2(), 200, {'Content-Type': 'application/json'} + if 'risky' in _req.path: + return _ds_mod.risky_check(), 200, {'Content-Type': 'application/json'} + except Exception: + pass + return '{"retcode":0,"message":"OK","data":{}}', 200, {'Content-Type': 'application/json'} + + print("[Patch] dispatchserver patched with reachable Gateserver IP, 4.6 protocol, and flexible routes") + except Exception as e: + print(f"[Patch Warning] Dispatch server patch: {e}") + + # --- GameServer address & protected KCP loop patch --- + try: + import game.gameserver as _gs_mod + if hasattr(_gs_mod, 'GameServer'): + _gs_mod.GameServer.address = "0.0.0.0" + + @classmethod + def _patched_read_loop(cls): + print(f"[GameServer] UDP KCP Listener active on {cls.address}:{cls.port}") + while cls.running: + try: + message, address = cls.server_socket.recvfrom(_gs_mod.IKCP_MTU_DEF) + if not message: + continue + + if len(message) == 20: + print(f"[GameServer] Received Handshake ({len(message)} bytes) from {address}") + cls.handle_handshake(address, message) + continue + + if not hasattr(cls, 'kcp') or cls.kcp is None: + print(f"[GameServer Warning] Received {len(message)} bytes from {address} before KCP established, ignoring.") + continue + + cls.kcp.input(message) + cls.kcp.flush() + cls.kcp.update(int(time.time() * 1000)) + + packet = cls.kcp.recv() + while len(packet) > 0 and cls.running: + rsp = _router_mod.handle(packet) + if len(rsp) != 0: + cls.send(rsp) + packet = cls.kcp.recv() + + except Exception as ex: + if cls.running: + print(f"[GameServer Exception in read_loop]: {ex}") + time.sleep(0.01) + + _gs_mod.GameServer.read_loop = _patched_read_loop + + @classmethod + def _patched_handle_handshake(cls, address, data): + try: + from game.handshakeutils import HandShake, HandshakeType + handshake = HandShake.parse(data) + print(f"[GameServer] Parsed handshake type={handshake} from {address}") + if handshake == HandshakeType.CONNECT: + cls.establish_kcp() + rsp_handshake = HandShake.build_rsp_handshake(cls.conv_id) + cls.client_socket = address + cls.send_udp(rsp_handshake) + print(f"[GameServer] Handshake accepted! Sent response to {address}, conv_id={cls.conv_id}") + except Exception as ex: + print(f"[GameServer Handshake Error]: {ex}") + + _gs_mod.GameServer.handle_handshake = _patched_handle_handshake + + @classmethod + def _patched_send_udp(cls, data): + if cls.client_socket is not None: + try: + cls.server_socket.sendto(data, cls.client_socket) + except Exception as ex: + print(f"[GameServer send_udp Error]: {ex}") + + _gs_mod.GameServer.send_udp = _patched_send_udp + + _orig_gs_start = _gs_mod.GameServer.start + @classmethod + def _safe_gs_start(cls): + cls.address = "0.0.0.0" + try: + sock = getattr(cls, 'server_socket', None) + if sock is None or getattr(sock, 'fileno', lambda: -1)() == -1: + cls.server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + cls.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + _orig_gs_start() + print(f"[GameServer] Bound UDP socket on {cls.address}:{cls.port}") + except Exception as ex: + print(f"[GameServer Warning] start error: {ex}") + + _gs_mod.GameServer.start = _safe_gs_start + print("[Patch] GameServer address patched to 0.0.0.0 with protected read_loop and handshake logging") + except Exception as e: + print(f"[Patch Warning] GameServer patch: {e}") + + ppsr_py = os.path.join(ppsr_dir, "ppsr.py") + if os.path.exists(ppsr_py): + print(f"Loading source script target: {ppsr_py}...") + with open(ppsr_py, "r", encoding="utf-8") as f: + code_str = f.read() + code_obj = compile(code_str, ppsr_py, "exec") + target_file = ppsr_py + else: + print(f"Loading bytecode target: {ppsr_path}...") + with open(ppsr_path, "rb") as f: + code_bytes = f.read() + try: + import marshal + code_obj = marshal.loads(code_bytes[16:]) + except Exception: + code_obj = compile(code_bytes, ppsr_path, "exec") + target_file = ppsr_path main_globals = { "__name__": "__main__", - "__file__": ppsr_path, + "__file__": target_file, "__doc__": None, "sys": sys, "os": os, @@ -498,7 +976,7 @@ def run_server(ppsr_path, activity_context=None): try: exec(code_obj, main_globals) - except KeyboardInterrupt: + except (KeyboardInterrupt, SystemExit): print("[System]: Server loop interrupted cleanly.") except Exception as e: print(f"[System]: Server terminated: {e}") diff --git a/run_ppsr_reference.py b/run_ppsr_reference.py new file mode 100644 index 0000000..6311e3e --- /dev/null +++ b/run_ppsr_reference.py @@ -0,0 +1,200 @@ +import sys +import os +import builtins +import time +import _thread +import gc +import socket +import struct +import warnings + +# === GLOBAL WARNING SUPPRESSION (very early) === +try: + from marshmallow.warnings import RemovedInMarshmallow4Warning + warnings.filterwarnings("ignore", category=RemovedInMarshmallow4Warning) + warnings.filterwarnings("ignore", message=".*default.*deprecated.*") + warnings.filterwarnings("ignore", message=".*metadata.*deprecated.*") + warnings.simplefilter("ignore", category=RemovedInMarshmallow4Warning) + print("[Shim] Global warning suppression activated") +except Exception: + pass + +_active_server_instance = None + +# --- 1. Stream Redirector for Android UI --- +class AndroidLogStream: + def __init__(self, activity_context, original_stream): + self.activity_context = activity_context + self.original_stream = original_stream + self.buffer = "" + + def write(self, message): + if self.original_stream: + try: + self.original_stream.write(message) + except Exception: + pass + self.buffer += message + while "\n" in self.buffer: + line, self.buffer = self.buffer.split("\n", 1) + clean_line = line.strip() + if clean_line and self.activity_context: + try: + self.activity_context.onServerLog(clean_line) + except Exception: + pass + + def flush(self): + if self.original_stream: + try: + self.original_stream.flush() + except Exception: + pass + if self.buffer.strip() and self.activity_context: + try: + self.activity_context.onServerLog(self.buffer.strip()) + self.buffer = "" + except Exception: + pass + +# --- 2. Headless Input Mock --- +def _mock_input(prompt=""): + if prompt: + print(f"[CLI]: {prompt}") + time.sleep(2) + return "" + +builtins.input = _mock_input + +# --- 3. Minimal Marshmallow Info --- +try: + import marshmallow + print(f"[Shim] marshmallow {marshmallow.__version__}") +except Exception: + print("[Shim] marshmallow not available") + +# --- 4. Shutdown Logic --- +def kill_server_process(): + global _active_server_instance + print("[Shutdown]: Force-stopping server execution...") + + if _active_server_instance is not None: + try: + if hasattr(_active_server_instance, 'shutdown'): + _active_server_instance.shutdown() + if hasattr(_active_server_instance, 'server_close'): + _active_server_instance.server_close() + except Exception: + pass + + try: + sock = getattr(_active_server_instance, 'socket', None) + if sock: + sock.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 1, 0)) + sock.close() + except Exception: + pass + _active_server_instance = None + + try: + for obj in gc.get_objects(): + if isinstance(obj, socket.socket): + try: + obj.shutdown(socket.SHUT_RDWR) + obj.close() + except Exception: + pass + except Exception: + pass + + try: + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + s.close() + except Exception: + pass + + time.sleep(1.2) + + for _ in range(5): + try: + _thread.interrupt_main() + time.sleep(0.2) + except Exception: + pass + +# --- 5. Main Execution Entrypoint --- +def run_server(ppsr_path, activity_context=None): + if activity_context is not None: + sys.stdout = AndroidLogStream(activity_context, sys.__stdout__) + sys.stderr = AndroidLogStream(activity_context, sys.__stderr__) + + # Extra safety - re-apply on every start + try: + warnings.filterwarnings("ignore", category=RemovedInMarshmallow4Warning) + except Exception: + pass + + ppsr_dir = os.path.dirname(os.path.abspath(ppsr_path)) + misc_dir = os.path.join(ppsr_dir, "misc") + + if os.path.exists(ppsr_dir): + os.chdir(ppsr_dir) + print(f"Working directory locked: {os.getcwd()}") + + for path in [ppsr_dir, misc_dir]: + if os.path.exists(path) and path not in sys.path: + sys.path.insert(0, path) + + # --- Werkzeug Patch --- + try: + import werkzeug.serving + _orig_make_server = werkzeug.serving.make_server + + def _patched_make_server(*args, **kwargs): + global _active_server_instance + kwargs.pop('options', None) + server = _orig_make_server(*args, **kwargs) + + try: + if hasattr(server, 'socket') and server.socket: + server.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + except Exception: + pass + + _active_server_instance = server + print("[Server] Server instance patched and ready") + return server + + werkzeug.serving.make_server = _patched_make_server + print("[Patch] Werkzeug make_server patched successfully") + + except Exception as e: + print(f"[Patch Warning] Werkzeug patch: {e}") + + print(f"Loading bytecode target: {ppsr_path}...") + + with open(ppsr_path, "rb") as f: + code_bytes = f.read() + + try: + import marshal + code_obj = marshal.loads(code_bytes[16:]) + except Exception: + code_obj = compile(code_bytes, ppsr_path, "exec") + + main_globals = { + "__name__": "__main__", + "__file__": ppsr_path, + "__doc__": None, + "sys": sys, + "os": os, + "input": _mock_input + } + + try: + exec(code_obj, main_globals) + except KeyboardInterrupt: + print("[System]: Server loop interrupted cleanly.") + except Exception as e: + print(f"[System]: Server terminated: {e}")