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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
+
+
+
\ 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..fe46857 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,8 @@
# 📱 GaCy Android
> **Go port in progress:** the local server now launches the SDK and game
-> processes built from GaC-hkrpg-go. Teleporting uses the game's own map;
-> the older ppSR character settings are not yet connected. On 1 November 2026,
-> the user confirmed that an ARM64 debug build could enter the game and teleport
-> using the in-game map on the same phone. On 2 November, the user confirmed
-> that the updated build started the server, entered the game and restarted the
-> server successfully. Other features still need validation.
+> processes built from GaCy-go. Teleporting uses the game's own map;
+> Other features still need validation.
The Go SDK, shared-data, game-server and KCP package tests have also passed;
these automated tests do not establish that every gameplay feature works on
@@ -56,7 +52,7 @@ Built with **Kotlin**, **Jetpack Compose**, and **Material Design 3**.
[](https://developer.android.com/ndk)
[](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 5812ac9..4fe3e92 100644
Binary files a/app/src/main/assets/chaquopy/app.imy and b/app/src/main/assets/chaquopy/app.imy differ
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}")