diff --git a/internal/gameserver/dispatch.go b/internal/gameserver/dispatch.go index 1d4ddd6..5580500 100644 --- a/internal/gameserver/dispatch.go +++ b/internal/gameserver/dispatch.go @@ -1,6 +1,8 @@ package gameserver import ( + "strings" + "fmt" "math/rand" "os" @@ -102,6 +104,29 @@ func dummy(name string) { dummyResponses[uint16(reqID)] = uint16(rspID) } +// dangerFamilies are client modules that Sync(nil) -> NRE -> black screen when +// they receive an empty ScRsp (lesson recorded in the Rust packet.rs / HANDOFF): +// never auto-answer these, drop them silently instead. +var dangerFamilies = []string{ + "GridFight", "ChessRogue", "EvolveBuild", "ChimeraDuel", + "Jukebox", "CycleScore", "MusicAlbum", +} + +func isDangerCmd(cmdID uint16) bool { + name := goproto.NameByCmdID[cmdID] + for _, fam := range dangerFamilies { + if strings.Contains(name, fam) { + return true + } + } + // CycleScore cmd ids (4143/4146) and GridFight range carry generic names + switch cmdID { + case 4143, 4146, 8541, 5410, 5449, 7142, 3174, 9252, 8175: + return true + } + return false +} + // DispatchMessage is the Go port of CommandHandler::on_message. func DispatchMessage(s *Session, cmdID uint16, payload []byte) { PacketLog(fmt.Sprintf("[PACKET RECV] cmd_id: %d %s (len: %d)", cmdID, goproto.NameByCmdID[cmdID], len(payload))) @@ -129,9 +154,16 @@ func DispatchMessage(s *Session, cmdID uint16, payload []byte) { return } - // 4. unknown — do NOT answer with an empty ScRsp: client modules - // (GridFight/ChessRogue/EvolveBuild/ChimeraDuel/Jukebox) Sync(nil) and NRE - // into a black screen (lesson recorded in the Rust packet.rs) + // 4. unknown: auto-answer with an empty ScRsp when the Cmd enum defines the + // pair, EXCEPT the danger families which must be dropped silently. + // (Answering nothing made the client's UI modules stall - e.g. the Endgame + // entry waits for GetUnreleasedBlockInfo and the pause menu waits for + // SetClientPaused, leaving the game unclickable.) + if rspID, ok := goproto.RspIDByReqID[uint32(cmdID)]; ok && !isDangerCmd(cmdID) { + _ = s.SendRaw(&NetPacket{CmdType: uint16(rspID)}) + return + } + if cmdID != 7159 { PacketLog(fmt.Sprintf("Unknown command ID: %d (%s)", cmdID, goproto.NameByCmdID[cmdID])) } diff --git a/internal/gameserver/dummycheck_test.go b/internal/gameserver/dummycheck_test.go new file mode 100644 index 0000000..c57d107 --- /dev/null +++ b/internal/gameserver/dummycheck_test.go @@ -0,0 +1,26 @@ +package gameserver + +import ( + "testing" + + goproto "gac-hkrpg-go/protocol/proto" +) + +func TestDispatchMapsRegistered(t *testing.T) { + t.Logf("typedHandlers=%d dummyResponses=%d rawHandlers=%d", len(typedHandlers), len(dummyResponses), len(rawHandlers)) + if len(dummyResponses) == 0 { + t.Fatal("dummyResponses is EMPTY - handlers_raw.go init did not run") + } + if len(rawHandlers) == 0 { + t.Fatal("rawHandlers is EMPTY") + } + if _, ok := dummyResponses[17]; !ok { + t.Fatal("GetVideoVersionKeyCsReq (17) not in dummyResponses") + } + if _, ok := dummyResponses[uint16(goproto.CmdIDByName["GetSecretKeyInfoCsReq"])]; !ok { + t.Fatal("GetSecretKeyInfoCsReq not in dummyResponses") + } + if _, ok := rawHandlers[8115]; !ok { + t.Fatal("8115 GetSwitchHandData not in rawHandlers") + } +} diff --git a/internal/gameserver/handlers_ui.go b/internal/gameserver/handlers_ui.go new file mode 100644 index 0000000..2e6d794 --- /dev/null +++ b/internal/gameserver/handlers_ui.go @@ -0,0 +1,79 @@ +package gameserver + +import ( + goproto "gac-hkrpg-go/protocol/proto" +) + +// Handlers for cmds the real 4.6.51 client sends during normal play that were +// dropped in the first test session (2026-10-07 01:00) — several of them gate +// UI state (pause menu, Endgame entry, map rotation) on the server's reply. + +func init() { + // client pauses itself when opening menus/map — must be acked + handle("SetClientPaused", func(s *Session, req *goproto.SetClientPausedCsReq, rsp *goproto.SetClientPausedScRsp) error { + rsp.Retcode = 0 + rsp.Paused = req.Paused + return nil + }) + + // the Endgame entrance waits for this before opening its UI + // (4.6.51: CsReq 4190 -> ScRsp 4112, retcode = tag 14 — the Rust build + // answered the wrong id 4130 and the client stalled) + rawHandlers[4190] = func(s *Session, payload []byte) error { + return s.SendRaw(&NetPacket{CmdType: 4112, Body: []byte{0x70, 0x00}}) + } + + handle("TakeQuestReward", func(s *Session, req *goproto.TakeQuestRewardCsReq, rsp *goproto.TakeQuestRewardScRsp) error { + rsp.Retcode = 0 + rsp.SuccQuestIdList = req.SuccQuestIdList + return nil + }) + + handle("GetFirstTalkNpc", func(s *Session, req *goproto.GetFirstTalkNpcCsReq, rsp *goproto.GetFirstTalkNpcScRsp) error { + rsp.Retcode = 0 + return nil + }) + + handle("QuitBattle", func(s *Session, req *goproto.QuitBattleCsReq, rsp *goproto.QuitBattleScRsp) error { + rsp.Retcode = 0 + return nil + }) + + // Amphoreus map rotation (teleport pillars) — empty but valid + handle("GetMapRotationData", func(s *Session, req *goproto.GetMapRotationDataCsReq, rsp *goproto.GetMapRotationDataScRsp) error { + rsp.Retcode = 0 + return nil + }) + + handle("GetPamSkinData", func(s *Session, req *goproto.GetPamSkinDataCsReq, rsp *goproto.GetPamSkinDataScRsp) error { + rsp.Retcode = 0 + rsp.CurSkin = 0 + rsp.UnlockSkinList = []uint32{0} + return nil + }) + + handle("GetAllServerPrefsData", func(s *Session, req *goproto.GetAllServerPrefsDataCsReq, rsp *goproto.GetAllServerPrefsDataScRsp) error { + rsp.Retcode = 0 + return nil + }) + + handle("UpdateServerPrefsData", func(s *Session, req *goproto.UpdateServerPrefsDataCsReq, rsp *goproto.UpdateServerPrefsDataScRsp) error { + rsp.Retcode = 0 + return nil + }) + + // simple empty-but-valid data replies (auto-empty also covers these, but + // keeping them explicit documents that they are safe to answer) + handle("GetHeartDialInfo", func(s *Session, req *goproto.GetHeartDialInfoCsReq, rsp *goproto.GetHeartDialInfoScRsp) error { + rsp.Retcode = 0 + return nil + }) + handle("GetPetData", func(s *Session, req *goproto.GetPetDataCsReq, rsp *goproto.GetPetDataScRsp) error { + rsp.Retcode = 0 + return nil + }) + handle("GetShopList", func(s *Session, req *goproto.GetShopListCsReq, rsp *goproto.GetShopListScRsp) error { + rsp.Retcode = 0 + return nil + }) +} diff --git a/internal/gameserver/session.go b/internal/gameserver/session.go index 92c2f75..99059b8 100644 --- a/internal/gameserver/session.go +++ b/internal/gameserver/session.go @@ -164,6 +164,8 @@ func (s *Session) SendRaw(pkt *NetPacket) error { if s.closed.Load() { return nil } + PacketLog(fmt.Sprintf("[PACKET SEND RAW] cmd_id: %d %s (len: %d)", pkt.CmdType, goproto.NameByCmdID[pkt.CmdType], len(pkt.Body))) + payload := pkt.Encode() s.kcpMu.Lock() diff --git a/internal/gameserver/smoke_test.go b/internal/gameserver/smoke_test.go index 5210680..76d4db7 100644 --- a/internal/gameserver/smoke_test.go +++ b/internal/gameserver/smoke_test.go @@ -126,6 +126,36 @@ func TestGatewayHandshakeAndLogin(t *testing.T) { t.Fatalf("expected battle to start for a real monster target") } t.Log("SceneCastSkill verified: battle starts for real monster target") + + // 6. GetUnreleasedBlockInfo (4190): Endgame entry gates on this reply + if err := client.sendCmd(4190, nil); err != nil { + t.Fatalf("send GetUnreleasedBlockInfo: %v", err) + } + cmdID, body, err = client.recvCmd(3 * time.Second) + if err != nil { + t.Fatalf("no GetUnreleasedBlockInfo response: %v", err) + } + if cmdID != 4112 { + t.Fatalf("unexpected GetUnreleasedBlockInfoScRsp id: got %d want 4112", cmdID) + } + if len(body) != 2 || body[0] != 0x70 || body[1] != 0x00 { + t.Fatalf("unexpected UnreleasedBlockInfo body: %x", body) + } + t.Log("GetUnreleasedBlockInfo verified: 4190 -> 4112 retcode 0") + + // 7. SetClientPaused must be acked (pause menu waits for it) + pauseReq, _ := proto.Marshal(&goproto.SetClientPausedCsReq{Paused: true}) + if err := client.sendCmd(1466, pauseReq); err != nil { + t.Fatalf("send SetClientPaused: %v", err) + } + cmdID, body, err = client.recvCmd(3 * time.Second) + if err != nil { + t.Fatalf("no SetClientPaused response: %v", err) + } + if cmdID != 1490 { // SetClientPausedScRsp + t.Fatalf("unexpected SetClientPausedScRsp id: got %d want 1490", cmdID) + } + t.Log("SetClientPaused verified: acked") } // --------------------------------------------------------------------------- diff --git a/protocol/proto/cmdpairs.go b/protocol/proto/cmdpairs.go new file mode 100644 index 0000000..622edab --- /dev/null +++ b/protocol/proto/cmdpairs.go @@ -0,0 +1,873 @@ +// Code generated from the StarRail.proto Cmd enum. DO NOT EDIT. + +package proto + +// RspIDByReqID maps every CsReq cmd id to its ScRsp cmd id (from the Cmd enum, +// which is stable even when message names get obfuscated between versions). +var RspIDByReqID = map[uint32]uint32{ + 4: 94, // SetNickname + 5: 71, // PlayerGetToken + 9: 13, // PlayerLoginFinish + 17: 69, // GetVideoVersionKey + 22: 49, // SetGender + 30: 38, // GetSecretKeyInfo + 33: 32, // ReserveStaminaExchange + 34: 79, // UpdatePlayWithPsnOnlySetting + 39: 64, // SetGameplayBirthday + 43: 53, // QueryProductInfo + 45: 16, // PlayerHeartBeat + 46: 20, // GetBasicInfo + 48: 75, // GetAuthkey + 57: 82, // GetLevelRewardTakenList + 66: 90, // SetPlayerInfo + 70: 27, // EnterStage + 74: 19, // PlayerLogin + 96: 25, // ClientObjUpload + 98: 47, // ExchangeStamina + 105: 171, // GetCurBattleInfo + 131: 187, // QuitBattle + 159: 118, // SyncClientResVersion + 174: 119, // PVEBattleResult + 304: 394, // TakePromotionReward + 306: 370, // DressAvatar + 308: 392, // TakeOffRelic + 315: 323, // TakeOffAvatarSkin + 320: 378, // SetMultipleAvatarPaths + 327: 352, // TakeOffEquipment + 329: 346, // UnlockAvatarPath + 331: 387, // AvatarExpUp + 343: 353, // SetAvatarPath + 348: 375, // DressRelicAvatar + 349: 366, // GetPreAvatarActivityList + 357: 382, // DressAvatarSkin + 359: 318, // PromoteAvatar + 367: 363, // MarkAvatar + 374: 319, // GetAvatarData + 380: 351, // SetGrowthTargetAvatar + 381: 322, // SetAvatarEnhancedId + 389: 350, // GetPreAvatarGrowthInfo + 390: 312, // SetPlayerOutfit + 398: 347, // RankUpAvatar + 505: 571, // CmdLockEquipment + 506: 570, // RankUpEquipment + 512: 543, // DiscardRelic + 513: 517, // EquipmentQuickUp + 515: 523, // ComposeSelectedRelic + 520: 578, // GetRelicFilterPlan + 527: 552, // ExpUpEquipment + 531: 587, // PromoteEquipment + 536: 530, // RelicReforgeConfirm + 538: 509, // BatchRankUpEquipment + 539: 564, // AddRelicFilterPlan + 545: 516, // MarkRelicFilterPlan + 547: 548, // ExpUpRelic + 549: 566, // SetTurnFoodSwitch + 551: 554, // DestroyItem + 555: 541, // ModifyRelicFilterPlan + 557: 582, // ExchangeHcoin + 559: 518, // UseItem + 568: 544, // MarkItem + 569: 526, // RelicCraft + 574: 519, // GetBag + 575: 508, // CmdLockRelic + 585: 584, // RelicReforge + 589: 550, // GetMarkItemList + 600: 595, // DeleteRelicFilterPlan + 704: 794, // GetAllLineupData + 705: 771, // JoinLineup + 706: 770, // SwapLineup + 708: 792, // SetLineupName + 731: 787, // GetCurLineupData + 748: 775, // SwitchLineupIndex + 752: 735, // GetLineupAvatarData + 759: 718, // QuitLineup + 762: 780, // MarkPresetLineup + 782: 715, // ReplaceLineup + 798: 747, // ChangeLineupLeader + 805: 871, // DelMail + 831: 887, // MarkReadMail + 859: 818, // TakeMailAttachment + 874: 819, // GetMail + 931: 987, // TakeQuestReward + 947: 948, // BatchGetQuestData + 952: 935, // TakeQuestOptionalReward + 959: 918, // GetQuestRecord + 970: 927, // CmdFinishQuest + 974: 919, // GetQuestData + 1005: 1071, // FightGiveUp + 1031: 1087, // PlayerGetFightGate + 1074: 1019, // FightGameState + 1174: 1119, // FinishPlot + 1204: 1294, // GetMissionStatus + 1212: 1243, // StarPerformanceRelay + 1231: 1287, // FinishTalkMission + 1235: 1298, // FinishCosumeItemMission + 1251: 1254, // AcceptMainMission + 1266: 1290, // UpdateMainMissionCustomValue + 1267: 1263, // TeleportToMissionResetPoint + 1271: 1259, // SyncTask + 1274: 1219, // GetMissionData + 1281: 1222, // UpdateTrackMainMission + 1289: 1250, // GetMainMissionCustomValue + 1306: 1370, // CocoonSweep + 1327: 1352, // FarmElementSweep + 1331: 1387, // GetFarmStageGachaInfo + 1403: 1456, // SetTrainWorldId + 1405: 1471, // SceneCastSkill + 1410: 1465, // UpdateGroupProperty + 1413: 1417, // EnterScene + 1416: 1401, // SetGroupCustomSaveData + 1423: 1428, // SceneReviveAfterRebattle + 1431: 1487, // InteractProp + 1432: 1421, // GetUnlockTeleport + 1436: 1430, // ReEnterLastElementStage + 1438: 1409, // SceneEntityTeleport + 1442: 1497, // GetEnteredScene + 1443: 1453, // DeactivateFarmElement + 1444: 1481, // StartCocoonStage + 1459: 1418, // GetCurSceneInfo + 1460: 1429, // ActiveFarmElement + 1461: 1458, // GetSceneMapInfo + 1466: 1490, // SetClientPaused + 1467: 1463, // EnterSection + 1474: 1419, // SceneEntityMove + 1479: 1473, // CounterRecover + 1482: 1415, // SceneEnterStage + 1485: 1484, // GetCurSceneStablePos + 1486: 1496, // CounterDown + 1488: 1499, // DeleteSummonUnit + 1491: 1402, // GroupStateChange + 1498: 1447, // SceneCastSkillCostMp + 1505: 1571, // TakeCityShopReward + 1531: 1587, // BuyGoods + 1574: 1519, // GetShopList + 1605: 1671, // UnlockTutorial + 1606: 1670, // FinishTutorial + 1627: 1652, // FinishTutorialGuide + 1631: 1687, // GetTutorialGuide + 1659: 1618, // UnlockTutorialGuide + 1674: 1619, // GetTutorial + 1705: 1771, // LeaveChallenge + 1715: 1723, // EnterChallengeNextPhase + 1731: 1787, // StartChallenge + 1747: 1748, // TakeChallengeReward + 1757: 1782, // RestartChallengePhase + 1770: 1727, // GetCurChallenge + 1774: 1719, // GetChallenge + 1775: 1708, // GetChallengeGroupStatistics + 1805: 1871, // EnterRogue + 1831: 1887, // StartRogue + 1837: 1883, // GetRogueTalentInfo + 1840: 1888, // EnableRogueTalent + 1845: 1816, // ExchangeRogueRewardKey + 1849: 1866, // EnterRogueMapRoom + 1854: 1889, // QuitRogue + 1858: 1833, // TakeRogueAeonLevelReward + 1859: 1818, // LeaveRogue + 1874: 1819, // GetRogueInfo + 1893: 1842, // GetRogueAeonInfo + 1897: 1814, // FinishAeonDialogueGroup + 1900: 1895, // OpenRogueChest + 2105: 2171, // GetFirstTalkNpc + 2127: 2152, // GetFirstTalkByPerformanceNpc + 2135: 2198, // FinishFirstTalkByPerformanceNpc + 2159: 2118, // FinishFirstTalkNpc + 2174: 2119, // GetNpcTakenReward + 2224: 2237, // TakeChallengeRaidReward + 2232: 2210, // SetClientRaidTargetCount + 2241: 2225, // GetSaveRaid + 2242: 2238, // StartRaid + 2244: 2216, // GetAllSaveRaid + 2245: 2226, // GetRaidInfo + 2248: 2250, // LeaveRaid + 2258: 2255, // UpdateFiveDimGameData + 2261: 2265, // EnterFiveDimGame + 2262: 2254, // GetFiveDimGameData + 2266: 2257, // LeaveFiveDimGame + 2270: 2272, // FiveDimGameTransfer + 2273: 2263, // GetFiveDimMoney + 2275: 2260, // GetFiveDimMoneyData + 2331: 2387, // GetUpdatedArchiveData + 2374: 2319, // GetArchiveData + 2434: 2424, // GetBigDataRecommend + 2437: 2411, // GetBigDataAllRecommend + 2516: 2515, // TakeMultipleExpeditionReward + 2525: 2544, // AcceptMultipleExpedition + 2542: 2538, // GetExpeditionData + 2558: 2556, // ElfRestaurantUpgradeRecipeLevel + 2565: 2559, // ElfRestaurantUpgradeFacilityLevel + 2567: 2590, // ElfRestaurantClientStatus + 2573: 2563, // SetElfRestaurantPlayRecipe + 2577: 2564, // ElfRestaurantTakeVillagerReward + 2579: 2568, // ElfRestaurantFinishTradeOrder + 2581: 2572, // SettleElfRestaurantPlay + 2582: 2560, // ElfRestaurantRecycleSeed + 2584: 2574, // ElfRestaurantBuyField + 2587: 2561, // ElfRestaurantPlantSeed + 2592: 2588, // GetElfRestaurantData + 2594: 2566, // ElfRestaurantUpgradeEmployeeLevel + 2595: 2576, // ElfRestaurantHarvestCrop + 2596: 2553, // ElfRestaurantBuyShopItem + 2598: 2600, // EnterElfRestaurantNextDay + 2605: 2671, // GetActivityScheduleConfig + 2609: 2613, // ChooseAvatar + 2617: 2669, // TakeReward + 2630: 2638, // GetData + 2631: 2687, // TakeLoginActivityReward + 2639: 2664, // GetTrialActivityData + 2641: 2700, // EnterTrialActivityStage + 2674: 2619, // GetLoginActivity + 2675: 2608, // GetMaterialSubmitActivityData + 2685: 2684, // LeaveTrialActivity + 2692: 2604, // SubmitMaterialSubmitActivityMaterial + 2694: 2657, // TakeMaterialSubmitActivityReward + 2695: 2645, // TakeTrialActivityReward + 2705: 2771, // FinishItemId + 2706: 2770, // FinishPerformSectionId + 2727: 2752, // GetMissionMessage + 2731: 2787, // GetNpcStatus + 2735: 2798, // FinishMultiPerformSectionId + 2759: 2718, // FinishSectionId + 2774: 2719, // GetNpcMessageGroup + 2905: 2971, // GetFriendApplyListInfo + 2916: 2901, // GetFriendDevelopmentInfo + 2922: 2949, // TakeAssistReward + 2923: 2928, // DeleteBlacklist + 2931: 2987, // GetPlayerDetailInfo + 2935: 2998, // DeleteFriend + 2936: 2930, // GetFriendRecommendLineupDetail + 2943: 2953, // GetFriendLoginInfo + 2946: 2920, // SetFriendMark + 2948: 2975, // AddBlacklist + 2951: 2954, // SetAssist + 2959: 2918, // ApplyFriend + 2962: 2980, // GetAssistList + 2967: 2963, // SearchPlayer + 2968: 2944, // GetAssistHistory + 2970: 2927, // HandleFriend + 2978: 2939, // GetFriendAssistList + 2982: 2915, // ReportPlayer + 2985: 2984, // GetFriendRecommendLineup + 2989: 2950, // GetCurAssist + 2990: 2912, // GetPlatformPlayerInfo + 2992: 2904, // GetFriendRecommendListInfo + 2994: 2957, // SetFriendRemarkName + 2995: 2945, // GetFriendBattleRecordDetail + 3018: 3006, // TakeAllReward + 3071: 3059, // BuyBpLevel + 3087: 3005, // TakeBpReward + 3105: 3171, // UnlockBackGroundMusic + 3131: 3187, // PlayBackGroundMusic + 3174: 3119, // GetJukeboxData + 3205: 3271, // SharePunkLordMonster + 3215: 3223, // GetKilledPunkLordMonsterData + 3231: 3287, // StartPunkLordRaid + 3235: 3298, // TakePunkLordPointReward + 3248: 3275, // GetPunkLordData + 3254: 3289, // GetPunkLordBattleRecord + 3259: 3218, // SummonPunkLordMonster + 3262: 3280, // TakeKilledPunkLordMonsterScore + 3274: 3219, // GetPunkLordMonsterData + 3331: 3387, // GetDailyActiveInfo + 3371: 3359, // TakeAllApReward + 3374: 3319, // TakeApReward + 3431: 3487, // DailyFirstMeetPam + 3474: 3419, // GetRndOption + 3574: 3519, // GetReplayToken + 3671: 3659, // TakeFightActivityReward + 3674: 3619, // GetFightActivityData + 3687: 3605, // EnterFightActivityStage + 3706: 3770, // TakeTrainVisitorBehaviorReward + 3727: 3752, // NewSupplementVisitor + 3759: 3718, // GetTrainVisitorRegister + 3774: 3719, // TrainVisitorBehaviorFinish + 3805: 3871, // TextJoinBatchSave + 3831: 3887, // TextJoinQuery + 3905: 3971, // GetPrivateChatHistory + 3906: 3970, // GetChatEmojiList + 3927: 3952, // MarkChatEmoji + 3935: 3998, // BatchMarkChatEmoji + 3947: 3948, // GetLoginChatInfo + 3959: 3918, // GetChatFriendHistory + 4074: 4019, // AcceptedPamMissionExpire + 4106: 4170, // CancelCacheNotify + 4122: 4149, // GetSwitchMascotData + 4131: 4187, // GetShareData + 4135: 4198, // TriggerVoice + 4139: 4164, // GetPlayerForbid + 4143: 4153, // CycleScoreRewardGetData + 4144: 4181, // CancelDirectDeliveryNotice + 4146: 4120, // CycleScoreRewardDestroyExceedReward + 4147: 4148, // SubmitOrigamiItem + 4151: 4154, // DifficultyAdjustmentUpdateData + 4160: 4129, // CycleScoreRewardTakeReward + 4162: 4180, // DifficultyAdjustmentGetData + 4174: 4119, // Share + 4175: 4108, // GetOrigamiPropInfo + 4182: 4115, // UpdateMovieRacingData + 4189: 4150, // MazeKillDirect + 4190: 4112, // GetUnreleasedBlockInfo + 4194: 4157, // GetMovieRacingData + 4205: 4271, // StartBoxingClubBattle + 4227: 4252, // ChooseBoxingClubResonance + 4231: 4287, // MatchBoxingClubOpponent + 4235: 4298, // SetBoxingClubResonance + 4247: 4248, // ChooseBoxingClubStageOptionalBuff + 4259: 4218, // GiveUpBoxingClubChallenge + 4274: 4219, // GetBoxingClubInfo + 4304: 4394, // MuseumRandomEventQuery + 4305: 4371, // SetStuffToArea + 4327: 4352, // FinishCurTurn + 4331: 4387, // BuyNpcStuff + 4335: 4398, // UpgradeArea + 4347: 4348, // UpgradeAreaStat + 4357: 4382, // MuseumRandomEventSelect + 4359: 4318, // RemoveStuffFromArea + 4374: 4319, // GetMuseumInfo + 4427: 4452, // GetTreasureDungeonActivityData + 4435: 4498, // EnterTreasureDungeon + 4447: 4448, // OpenTreasureDungeonGrid + 4475: 4408, // FightTreasureDungeonMonster + 4482: 4415, // QuitTreasureDungeon + 4492: 4404, // InteractTreasureDungeonGrid + 4494: 4457, // UseTreasureDungeonItem + 4505: 4571, // PlayerReturnTakePointReward + 4506: 4570, // PlayerReturnInfoQuery + 4519: 4531, // PlayerReturnSign + 4547: 4548, // PlayerReturnTakeCustomRelic + 4552: 4535, // PlayerReturnTakeRelic + 4559: 4518, // PlayerReturnTakeReward + 4592: 4504, // TakeReturnExtraHcoinReward + 4674: 4619, // GetMultipleDropInfo + 4687: 4605, // GetPlayerReturnMultiDropInfo + 4803: 4829, // GetAetherDivideChallengeInfo + 4808: 4806, // StartAetherDivideStageBattle + 4815: 4809, // SwitchAetherDivideLineUpSlot + 4817: 4840, // AetherDivideRefreshEndless + 4830: 4835, // StartAetherDivideSceneBattle + 4831: 4822, // AetherDivideSpiritExpUp + 4832: 4810, // SetAetherDivideLineUp + 4834: 4824, // StartAetherDivideChallengeBattle + 4843: 4821, // AetherDivideTakeChallengeReward + 4845: 4826, // GetAetherDivideInfo + 4848: 4850, // LeaveAetherDivideScene + 4880: 4885, // JoinBenefitActivity + 4898: 4900, // TakeBenefitActivityReward + 4974: 4919, // GetFantasticStoryActivityData + 4987: 4905, // EnterFantasticStoryActivityStage + 5131: 5187, // SelectChatBubble + 5171: 5159, // SelectPhoneTheme + 5174: 5119, // GetPhoneData + 5387: 5305, // RogueModifierSelectCell + 5402: 5503, // ChessRogueSelectCell + 5403: 5429, // ChessRogueSkipTeachingLevel + 5410: 5462, // GetChessRogueNousStoryInfo + 5424: 5571, // EnhanceRogueBuff + 5426: 5434, // ChessRogueNousGetRogueTalentInfo + 5437: 5432, // ChessRogueCheatRoll + 5441: 5407, // ChessRogueEnterNextLayer + 5445: 5446, // ChessRogueLeave + 5449: 5460, // ChessRogueQuery + 5457: 5459, // ChessRogueGiveUp + 5458: 5494, // PickRogueAvatar + 5461: 5511, // ChessRogueEnter + 5470: 5495, // GetRogueBuffEnhanceInfo + 5510: 5592, // ChessRogueQuit + 5538: 5564, // FinishChessRogueSubStory + 5542: 5490, // ChessRogueReRollDice + 5547: 5537, // ChessRogueNousEnableRogueTalent + 5550: 5555, // ChessRogueEnterCell + 5559: 5405, // ChessRogueConfirmRoll + 5567: 5589, // GetChessRogueStoryInfo + 5570: 5444, // ReviveRogueAvatar + 5573: 5530, // ChessRogueRollDice + 5580: 5600, // SelectChessRogueSubStory + 5583: 5554, // GetChessRogueStoryAeonTalkInfo + 5588: 5491, // ChessRogueStart + 5590: 5497, // ChessRogueNousEditDice + 5595: 5499, // EnterChessRogueAeonRoom + 5774: 5719, // GetBattleCollegeData + 5787: 5705, // StartBattleCollege + 5804: 5894, // HeliobusEnterBattle + 5805: 5871, // HeliobusSnsPost + 5806: 5870, // HeliobusSnsComment + 5831: 5887, // HeliobusSnsRead + 5835: 5898, // HeliobusUpgradeLevel + 5848: 5875, // HeliobusSelectSkill + 5857: 5882, // HeliobusStartRaid + 5859: 5818, // HeliobusSnsLike + 5874: 5819, // HeliobusActivityData + 5942: 5938, // GetAllRedDotData + 5953: 5979, // FateTakeExpReward + 5980: 5985, // FateBattleStart + 5982: 5960, // FateShopRefreshGoods + 5984: 5974, // FateChangeLineup + 5987: 5961, // FateShopBuyGoods + 5991: 5975, // FateShopLockGoods + 5992: 5988, // FateQuery + 5994: 5966, // FateShopLeave + 5995: 5976, // FateShopSellBuff + 5998: 6000, // FateStart + 6001: 6002, // TakeRogueEndlessActivityAllBonusReward + 6003: 6006, // GetRogueEndlessActivityData + 6004: 6005, // TakeRogueEndlessActivityPointReward + 6007: 6010, // EnterRogueEndlessActivityStage + 6016: 6078, // RogueTournTakeExpReward + 6018: 6028, // RogueTournEnter + 6019: 6062, // RogueTournGetSeasonTalentInfo + 6021: 6096, // RogueTournUseSuperRewardKey + 6022: 6100, // RogueTournLeaveRogueCocoonScene + 6023: 6071, // RogueTournSaveBuildRef + 6025: 6088, // RogueTournEnablePermanentTalent + 6029: 6077, // RogueTournLeave + 6033: 6085, // RogueTournEnterLayer + 6035: 6044, // RogueTournTriggerRoomSelect + 6036: 6061, // RogueTournSettle + 6038: 6054, // RogueTournReviveAvatar + 6039: 6030, // RogueTournReEnterRogueCocoonStage + 6045: 6041, // RogueTournGetAllBuildRef + 6046: 6040, // RogueTournGetArchiveRepository + 6053: 6067, // RogueTournDeleteArchive + 6055: 6026, // RogueTournConfirmSettle + 6056: 6051, // RogueTournGetCurRogueCocoonInfo + 6058: 6037, // RogueTournGetAllArchive + 6059: 6089, // RogueTournEnterRoom + 6060: 6069, // RogueTournEnableSeasonTalent + 6063: 6057, // RogueTournGetPermanentTalentInfo + 6064: 6074, // RogueTournStart + 6068: 6043, // RogueTournDeleteBuildRef + 6070: 6065, // RogueTournResetPermanentTalent + 6072: 6092, // RogueTournQuery + 6073: 6095, // RogueTournGetSettleInfo + 6079: 6032, // RogueTournRenameArchive + 6091: 6027, // RogueTournEnterRogueCocoonScene + 6094: 6086, // RogueTournGetMiscRealTimeData + 6105: 6171, // UpdateServerPrefsData + 6131: 6187, // GetServerPrefsData + 6174: 6119, // GetAllServerPrefsData + 6274: 6219, // GetStoryLineInfo + 6305: 6371, // SubmitEmotionItem + 6331: 6387, // ChangeScriptEmotion + 6359: 6318, // FinishEmotionDialoguePerformance + 6370: 6327, // HeartDialTraceScript + 6374: 6319, // GetHeartDialInfo + 6405: 6471, // TravelBrochureSelectMessage + 6406: 6470, // TravelBrochureRemovePaster + 6427: 6452, // TravelBrochureUpdatePasterPos + 6447: 6448, // TravelBrochureSetCustomValue + 6474: 6419, // TravelBrochureGetData + 6475: 6408, // TravelBrochureSetPageDescStatus + 6492: 6404, // TravelBrochurePageReset + 6494: 6457, // TravelBrochureApplyPasterList + 6558: 6555, // EnterEraFlipperData + 6561: 6565, // ChangeEraFlipperData + 6562: 6554, // GetEraFlipperData + 6566: 6557, // ResetEraFlipperData + 6587: 6579, // GetLocalLegendData + 6631: 6687, // EnterStrongChallengeActivityStage + 6705: 6771, // SpaceZooMutate + 6706: 6770, // SpaceZooDeleteCat + 6731: 6787, // SpaceZooBorn + 6752: 6735, // SpaceZooExchangeItem + 6759: 6718, // SpaceZooOpCattery + 6774: 6719, // SpaceZooData + 6798: 6747, // SpaceZooTake + 6805: 6871, // DeployRotator + 6806: 6870, // LeaveMapRotationRegion + 6808: 6892, // RemoveRotator + 6827: 6852, // GetMapRotationData + 6831: 6887, // InteractCharger + 6835: 6898, // ResetMapRotationRegion + 6859: 6818, // RotateMap + 6874: 6819, // EnterMapRotationRegion + 6904: 6920, // DoGachaInRollShop + 6915: 6908, // GetRollShopInfo + 6916: 6909, // TakeRollShopReward + 6924: 6940, // SubmitOfferingItem + 6935: 6928, // GetOfferingInfo + 6936: 6929, // TakeOfferingReward + 6955: 6948, // RaidCollectionData + 6960: 6956, // RaidCollectionEnterNextRaid + 6975: 6968, // GetTelevisionActivityData + 6980: 6976, // EnterTelevisionActivityStage + 6984: 7000, // MakeDrink + 6987: 6986, // MakeMissionDrink + 6990: 6981, // DrinkMakerCheersMakeDrink + 6992: 6985, // DrinkMakerChallenge + 6994: 6982, // DrinkMakerCheersEnterNextGroup + 6995: 6988, // GetDrinkMakerData + 6996: 6989, // EndDrinkMakerSequence + 6998: 6999, // DrinkMakerCheersGetData + 7001: 7085, // MonopolyEventSelectFriend + 7012: 7043, // MonopolyGuessBuyInformation + 7017: 7069, // MonopolyGetRaffleTicket + 7018: 7006, // MonopolyMove + 7023: 7028, // MonopolyGiveUpCurContent + 7026: 7061, // MonopolyTakeRaffleTicketReward + 7032: 7021, // MonopolyGetRegionProgress + 7035: 7098, // DailyFirstEnterMonopolyActivity + 7036: 7030, // GetSocialEventServerCache + 7038: 7009, // DeleteSocialEventServerCache + 7041: 7100, // MonopolyLike + 7045: 7016, // GetMbtiReport + 7047: 7048, // MonopolyRollRandom + 7058: 7033, // MonopolyScrachRaffleTicket + 7066: 7090, // MonopolyGuessChoose + 7067: 7063, // MonopolyCheatDice + 7068: 7044, // MonopolyGameBingoFlipCard + 7070: 7027, // MonopolySelectOption + 7071: 7059, // MonopolyRollDice + 7074: 7019, // GetMonopolyInfo + 7075: 7008, // MonopolyReRollRandom + 7076: 7011, // MonopolyGetRafflePoolInfo + 7079: 7073, // GetMonopolyMbtiReportReward + 7080: 7051, // MonopolyGameRaiseRatio + 7081: 7022, // MonopolyAcceptQuiz + 7082: 7015, // MonopolyUpgradeAsset + 7083: 7040, // MonopolyClickMbtiReport + 7086: 7096, // MonopolyTakePhaseReward + 7089: 7050, // MonopolyGameGacha + 7091: 7002, // GetMonopolyDailyReport + 7092: 7004, // MonopolyConfirmRandom + 7093: 7042, // MonopolyClickCell + 7094: 7057, // MonopolyBuyGoods + 7097: 7014, // MonopolyGetDailyInitItem + 7103: 7129, // EvolveBuildSkipTeachLevel + 7106: 7131, // GetEvolveBuildShopAbilityReset + 7116: 7115, // GetEvolveBuildShopAbilityDown + 7125: 7144, // GetEvolveBuildShopAbilityUp + 7126: 7132, // GetEvolveBuildReRandomStage + 7130: 7135, // EvolveBuildStartStage + 7134: 7124, // GetEvolveBuildGiveup + 7142: 7138, // GetEvolveBuildQueryInfo + 7148: 7150, // EvolveBuildStartLevel + 7153: 7156, // EnterFeverTimeActivityStage + 7160: 7158, // GetFeverTimeActivityData + 7163: 7166, // GetStarFightData + 7167: 7170, // StartStarFightLevel + 7173: 7176, // GetBadgeInfo + 7215: 7209, // ClockParkUseBuff + 7230: 7235, // ClockParkUnlockTalent + 7232: 7210, // ClockParkQuitScript + 7234: 7224, // ClockParkStartScript + 7237: 7211, // ClockParkGetOngoingScriptInfo + 7242: 7238, // ClockParkGetInfo + 7292: 7288, // GetFightFestData + 7298: 7300, // StartFightFest + 7335: 7334, // GetCrossInfo + 7342: 7338, // StartMatch + 7348: 7350, // CancelMatch + 7360: 7391, // LobbyQuit + 7376: 7382, // LobbyInvite + 7384: 7374, // LobbyModifyPlayerInfo + 7387: 7361, // LobbyKickOut + 7392: 7388, // LobbyCreate + 7394: 7366, // LobbyGetInfo + 7398: 7400, // LobbyJoin + 7410: 7441, // MatchThreeV2SetBirdPos + 7411: 7445, // MatchThreeV2BattleItemLevelUp + 7426: 7432, // MatchThreeV2LevelEnd + 7435: 7434, // MatchThreeSetBirdPos + 7442: 7438, // MatchThreeGetDataData + 7448: 7450, // MatchThreeLevelEnd + 7454: 7455, // SwordTrainingMarkEndingViewed + 7456: 7481, // SwordTrainingGiveUpGame + 7459: 7458, // SwordTrainingStoryConfirm + 7460: 7491, // EnterSwordTrainingExam + 7466: 7465, // SwordTrainingStartGame + 7467: 7490, // SwordTrainingRestoreGame + 7469: 7470, // SwordTrainingStoryBattle + 7474: 7487, // SwordTrainingDialogueSelectOption + 7475: 7494, // SwordTrainingLearnSkill + 7477: 7464, // SwordTrainingSelectEnding + 7478: 7486, // SwordTrainingSetSkillTrace + 7485: 7484, // SwordTrainingDailyPhaseConfirm + 7488: 7498, // GetSwordTrainingData + 7493: 7471, // SwordTrainingExamResultConfirm + 7499: 7462, // SwordTrainingResumeGame + 7500: 7480, // SwordTrainingTurnAction + 7542: 7538, // ContentPackageGetData + 7553: 7556, // GetTrackPhotoActivityData + 7555: 7551, // QuitTrackPhotoStage + 7557: 7560, // SettleTrackPhotoStage + 7558: 7554, // StartTrackPhotoStage + 7563: 7566, // GetSummonActivityData + 7567: 7570, // EnterSummonActivityStage + 7577: 7589, // MusicRhythmSaveSongConfigData + 7585: 7600, // MusicRhythmFinishLevel + 7586: 7598, // MusicRhythmStartLevel + 7592: 7579, // MusicRhythmData + 7605: 7620, // SetBlindBoxPetLineup + 7611: 7615, // SummonPet + 7612: 7604, // GetPetData + 7616: 7607, // RecallPet + 7619: 7609, // SwitchBlindBoxPetChroma + 7623: 7613, // RecycleBlindBoxPet + 7627: 7626, // WorldUnlock + 7663: 7698, // RogueArcadeRestart + 7675: 7685, // RogueArcadeGetInfo + 7690: 7684, // RogueArcadeStart + 7696: 7667, // RogueArcadeLeave + 7704: 7794, // RogueMagicReviveAvatar + 7705: 7771, // RogueMagicLeave + 7706: 7770, // RogueMagicEnterRoom + 7723: 7728, // RogueMagicScepterDressInUnit + 7727: 7752, // RogueMagicEnterLayer + 7731: 7787, // RogueMagicEnter + 7749: 7766, // RogueMagicGetMiscRealTimeData + 7757: 7782, // RogueMagicQuery + 7759: 7718, // RogueMagicSettle + 7762: 7780, // RogueMagicUnitCompose + 7767: 7763, // RogueMagicScepterTakeOffUnit + 7768: 7744, // RogueMagicEnableTalent + 7774: 7719, // RogueMagicStart + 7781: 7722, // RogueMagicSetAutoDressInMagicUnit + 7790: 7712, // RogueMagicAutoDressInUnit + 8104: 8120, // SwitchHandStart + 8113: 8112, // SwitchHandCoinUpdate + 8115: 8108, // GetSwitchHandData + 8116: 8109, // SwitchHandFinish + 8118: 8119, // GetSwitchHandResetGame + 8124: 8140, // SelectPamSkin + 8135: 8128, // GetPamSkinData + 8144: 8160, // TarotBookOpenPack + 8147: 8146, // TarotBookFinishStory + 8150: 8141, // TarotBookMultiOpenPackAndUnlockStory + 8151: 8158, // TarotBookUnlockInteraction + 8152: 8145, // TarotBookFinishInteraction + 8155: 8148, // TarotBookGetData + 8156: 8149, // TarotBookUnlockStory + 8165: 8171, // ChimeraQuitEndless + 8167: 8166, // ChimeraStartEndless + 8170: 8161, // ChimeraRoundWorkStart + 8173: 8172, // ChimeraFinishEndlessRound + 8178: 8179, // ChimeraDoFinalRound + 8184: 8200, // UpdateMarkChest + 8195: 8188, // GetMarkChest + 8202: 8228, // PlanetFesSetCustomKeyValue + 8203: 8229, // PlanetFesChooseAvatarEventOption + 8205: 8233, // PlanetFesGetAvatarStat + 8206: 8231, // PlanetFesBusinessDayRefreshEvent + 8209: 8208, // PlanetFesGetBusinessDayInfo + 8210: 8241, // PlanetFesDoGacha + 8211: 8245, // PlanetFesClientStatus + 8213: 8217, // PlanetFesTakeRegionPhaseReward + 8216: 8215, // PlanetFesTakeQuestReward + 8218: 8227, // PlanetFesDealAvatarEventOptionItem + 8219: 8220, // PlanetFesBonusEventInteract + 8222: 8246, // PlanetFesDeliverPamCargo + 8224: 8237, // PlanetFesBuyLand + 8225: 8244, // PlanetFesAvatarLevelUp + 8226: 8232, // PlanetFesCollectAllIncome + 8235: 8234, // PlanetFesSetAvatarWork + 8236: 8204, // PlanetFesUpgradeFesLevel + 8240: 8201, // PlanetFesStartMiniGame + 8242: 8238, // GetPlanetFesData + 8243: 8221, // PlanetFesUseItem + 8247: 8207, // PlanetFesGameBingoFlip + 8249: 8212, // PlanetFesGetFriendRankingInfoList + 8250: 8230, // PlanetFesCollectIncome + 8251: 8264, // RelicSmartWearUpdatePinRelic + 8252: 8253, // RelicSmartWearDeletePinRelic + 8254: 8270, // RelicSmartWearAddPlan + 8255: 8261, // RelicSmartWearGetPinRelic + 8257: 8256, // RelicSmartWearDeletePlan + 8265: 8258, // RelicSmartWearGetPlan + 8266: 8259, // RelicSmartWearUpdatePlan + 8283: 8282, // MarbleUpdateShownSeal + 8285: 8278, // MarbleGetData + 8286: 8279, // MarbleShopBuy + 8320: 8325, // PlanetFesChangeCardPieceApplyPermission + 8322: 8300, // PlanetFesGiveCardPiece + 8324: 8314, // PlanetFesApplyCardPiece + 8327: 8301, // PlanetFesHandleCardPieceApply + 8331: 8315, // PlanetFesLargeBonusInteract + 8332: 8328, // PlanetFesGetExtraCardPieceInfo + 8334: 8306, // PlanetFesEnterNextBusinessDay + 8335: 8316, // PlanetFesGetOfferedCardPiece + 8338: 8340, // PlanetFesGetFriendCardPiece + 8364: 8380, // TakeRechargeGiftReward + 8366: 8373, // TakeRechargeBenefitReward + 8375: 8368, // GetRechargeGiftInfo + 8376: 8369, // GetRechargeBenefitInfo + 8384: 8400, // ParkourGetRankingInfo + 8387: 8386, // ParkourEndLevel + 8395: 8388, // ParkourGetData + 8396: 8389, // ParkourStartLevel + 8429: 8777, // GridFightEnterBattleStage + 8441: 8607, // GridFightBuyExp + 8488: 8790, // GridFightEquipCraft + 8508: 8417, // GridFightSpotLightEnter + 8514: 8577, // GridFightSummonProjection + 8537: 8769, // GridFightUpdateEquipTrack + 8540: 8747, // GridFightSeasonTalentReset + 8541: 8503, // GridFightGetData + 8553: 8695, // GridFightRecycleItem + 8554: 8724, // GridFightUpdateEliteBranchSelect + 8559: 8582, // GridFightEnterBonfire + 8561: 8762, // GridFightFinishTutorial + 8572: 8608, // GridFightLockShop + 8573: 8551, // GridFightUseForge + 8579: 8511, // GridFightStartGamePlay + 8603: 8479, // GridFightPermanentTalentReset + 8626: 8459, // GridFightSeasonTalentEnable + 8629: 8442, // GridFightPermanentTalentEnable + 8631: 8452, // GridFightResumeGamePlay + 8636: 8727, // GridFightUpdateSpotLightTrack + 8657: 8708, // GridFightTraitUpdate + 8667: 8618, // GridFightTakeWeeklyReward + 8668: 8644, // FavourArchive + 8691: 8509, // GridFightQuitLeaveGamePlay + 8698: 8420, // GridFightEquipDress + 8701: 8699, // GridFightRefreshShop + 8710: 8464, // GridFightUpdateEquipTrackPriority + 8712: 8633, // GridFightRecycleRole + 8740: 8518, // GridFightSpotLightReplace + 8766: 8409, // GridFightDestroyWeeklyReward + 8779: 8755, // GridFightQuitSettle + 8784: 8679, // GridFightGetArchive + 8795: 8648, // GridFightUpdatePos + 8915: 8909, // SetChallengePeakMobLineupAvatar + 8930: 8935, // LeaveChallengePeak + 8931: 8922, // ConfirmChallengePeakSettle + 8932: 8910, // SetChallengePeakBossHardMode + 8937: 8911, // TakeChallengePeakReward + 8941: 8925, // ReStartChallengePeak + 8942: 8938, // GetChallengePeakData + 8945: 8926, // GetCurChallengePeak + 8948: 8950, // StartChallengePeak + 8954: 8970, // SetRelicBoxCustom + 8955: 8961, // ConfirmRelicBox + 8963: 8962, // OpenRelicBox + 8965: 8958, // GetRelicBoxData + 8966: 8959, // SetRelicBoxTarget + 8969: 8960, // ReportRelicBoxAction + 8986: 8998, // StartChallengeTierce + 8989: 8983, // LeaveChallengeTierce + 8993: 8981, // GetChallengeTierceController + 8995: 8996, // GetChallengeTierceData + 9016: 9015, // TakeHipplenEndingReward + 9030: 9035, // SetHipplenAgenda + 9032: 9010, // SetHipplenOutfit + 9034: 9024, // SettleHipplenWork + 9042: 9038, // GetHipplenData + 9045: 9026, // OpenHipplenCycle + 9048: 9050, // GetHipplenInherit + 9080: 9085, // ChenLingGameBoyGetFriendRankingInfo + 9082: 9060, // GetFiveDimMiniGameData + 9084: 9074, // ChenLingGameBoyChangeSettings + 9091: 9075, // FinishFiveDimMiniGame + 9092: 9088, // GetChenLingGameBoyData + 9094: 9066, // GetFiveDimFluteData + 9098: 9100, // FinishChenLingGameBoy + 9103: 9106, // GetElationActivityData + 9107: 9110, // EnterElationActivityStage + 9113: 9116, // GetActivityHotData + 9117: 9120, // GetAllActivityRewardCountData + 9118: 9114, // GetActivityRewardCountData + 9132: 9144, // CakeRaceFinishPVE + 9135: 9150, // CakeRaceStartPVE + 9136: 9148, // CakeRaceLoan + 9141: 9130, // CakeRaceGetDailyLike + 9142: 9129, // CakeRaceGetData + 9143: 9131, // CakeRaceGetFriendRankingInfoList + 9145: 9146, // CakeRaceGetHandbook + 9147: 9124, // CakeRaceLikeFriendRankingInfo + 9213: 9239, // ChimeraDuelSellChimera + 9218: 9216, // ChimeraDuelShopRefresh + 9223: 9227, // ChimeraDuelSetFriendDefendLineup + 9224: 9233, // ChimeraDuelSaveFriendPvpLineup + 9225: 9219, // ChimeraDuelShopLock + 9228: 9237, // ChimeraDuelSelectGame + 9232: 9256, // ChimeraDuelChangeLineup + 9240: 9245, // ChimeraDuelUnlockMaster + 9242: 9220, // ChimeraDuelEndGame + 9244: 9234, // ChimeraDuelStartGame + 9247: 9221, // ChimeraDuelEndRoundShopStage + 9251: 9235, // ChimeraDuelShopBuyChimera + 9252: 9248, // ChimeraDuelGetData + 9253: 9231, // ChimeraDuelFinishMasterChallenge + 9254: 9226, // ChimeraDuelShopBuyItem + 9255: 9236, // ChimeraDuelEndRoundBattleStage + 9274: 9267, // V2FinishPVEStage + 9286: 9291, // DiceCombatMainPageRollDice + 9356: 9420, // IdleLiveFinishNodeEvent + 9377: 9402, // IdleLiveFinishFinalAct + 9381: 9437, // IdleLiveStartNode + 9409: 9368, // IdleLiveFinishNodeBattle + 9417: 9413, // IdleLiveGetStatistic + 9425: 9358, // IdleLiveCollectIncome + 9442: 9354, // IdleLiveGetPendingEquip + 9484: 9500, // ChooseDelivery + 9495: 9488, // ChooseDeliveryGetData + 9510: 9541, // AiPamResponseFeedbackComment + 9511: 9545, // GetAiPamChatInfo + 9516: 9515, // UpdateAiPamSettings + 9525: 9544, // TriggerAiPamSpeak + 9526: 9532, // AiPamResponseFeedback + 9542: 9538, // AiPamSendMsg + 9550: 9535, // GetAiPamChatHistory + 9554: 9570, // TakeActiveActivityReward + 9565: 9558, // GetActiveActivityData + 9583: 9587, // ChenLingFinishShop + 9585: 9579, // ChenLingRefreshPolicy + 9597: 9584, // ChenLingActivatedPrivilege + 9599: 9588, // ChenLingBuyShopItem + 9600: 9605, // ChenLingQuitStage + 9601: 9592, // ChenLingSelectCard + 9602: 9580, // ChenLingFinishPrepare + 9604: 9594, // ChenLingUnlockGrid + 9607: 9581, // ChenLingUseHandCard + 9610: 9571, // ChenLingHandlePendingActions + 9611: 9595, // ChenLingFinishBattle + 9612: 9608, // ChenLingGetData + 9613: 9591, // ChenLingMoveEntity + 9614: 9586, // ChenLingRefreshCard + 9615: 9596, // ChenLingSellHandCard + 9616: 9573, // ChenLingSelectPolicy + 9618: 9620, // ChenLingStartStage + 9652: 9630, // SocialPlayQueryRecentVisitors + 9666: 9733, // SocialPlayGetOnlineRoomData + 9686: 9750, // SocialPlayGetOwnerRoomData + 9752: 9722, // SocialPlayTalk + 9761: 9743, // SocialPlayGetData + 9776: 9801, // PixAirUnlockPlane + 9780: 9811, // PixAirSellEquip + 9781: 9815, // PixAirHandlePendingActionBattle + 9786: 9785, // PixAirRefreshShop + 9794: 9807, // PixAirReenterStage + 9795: 9814, // PixAirBuyGoods + 9805: 9804, // PixAirQuitStage + 9812: 9808, // PixAirGetData + 9820: 9800, // PixAirStartStage + 9844: 9860, // RelicPresetAddPlan + 9847: 9846, // RelicPresetUpdatePlan + 9855: 9848, // RelicPresetGetPlan + 9856: 9849, // RelicPresetDeletePlan + 9882: 9886, // FateRinStartStoryFight + 9891: 9877, // FateRinStartHouguMapFight + 9895: 9875, // FateRinStartChallengeFight + 9897: 9873, // FateRinGetData + 9930: 9935, // ChenLingFesLevelLeave + 9934: 9924, // ChenLingFesLevelResume + 9937: 9911, // ChenLingFesLevelEnd + 9942: 9938, // GetChenLingFesData + 9945: 9926, // ChenLingFesBusinessDayEnd + 9948: 9950, // ChenLingFesLevelStart + 9995: 9988, // B51RacingGetData + 10027: 10030, // StartFinalityBattleLevel + 10046: 10058, // BlindBoxOpenBox + 10052: 10039, // BlindBoxGetData + 10144: 10160, // TrainCakeCatchOpenBox + 10147: 10146, // TrainCakeCatchDiy + 10153: 10152, // TrainCakeCatchDiyLike + 10156: 10149, // TrainCakeCatchSearch + 10159: 10150, // TrainPetDiy + 10164: 10180, // PetParkDiy + 10186: 10193, // PetMarbleGetCycleTrialPets + 10189: 10187, // PetMarbleLevelBegin + 10195: 10188, // PetMarbleGetData + 10224: 10240, // Draw + 10275: 10268, // GetVoracityInvasionData + 10675: 10668, // GetActivityVoracityInvasionData +} diff --git a/SKILL.md b/tools/AI TOOLBOX/skills/SKILL.md similarity index 100% rename from SKILL.md rename to tools/AI TOOLBOX/skills/SKILL.md diff --git a/versions.json b/versions.json index 5548ce5..c4dac9b 100644 --- a/versions.json +++ b/versions.json @@ -1,15 +1,33 @@ { - "OSBETAWin3.8.51": { - "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_13490885_bf25e1553b38_e9adc23a6b6710", - "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_13532881_eb1de9bedabd_c74ab2513059ad", - "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_13493894_ec7d6d879305_8b2cfd39d6e545", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_13491130_ecfa51828143_4bd221b76c0d9a" + "": { + "asset_bundle_url": "", + "ex_resource_url": "", + "lua_url": "", + "ifix_url": "" }, - "OSBETAWin4.4.51": { - "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15711835_1986f76c287e_9c3d058458edf0", - "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15753142_3bb8238470fc_a7cec92c089da7", - "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15712109_65eeab393c89_0c116c2699518d", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" + "CNBETAWin3.5.55": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_11797411_74704086c081_d40a71b41ba492", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_11823033_c9e8c870bcc7_b78f37c36487d0", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_11798340_8c6543a1d6c5_2d60cd9b1584b8", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + }, + "CNBETAWin3.6.51": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6", + "ex_resource_url": "https://autopatchcn-bhsr.neonteam.dev/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a" + }, + "CNBETAWin3.6.52": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12150127_00d6d096d968_cd76a04beb7ba6", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12178965_e246796e0bb6_05bcce36cd648b", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12150614_5279f6d8029a_bdecff99d2d817", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12164593_8e3fba5163df_b2b6fc46de4c06" + }, + "CNBETAWin3.7.51": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12579793_48327ff319b5_1b794dd1071e3a", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12611332_5f583f2f54ae_c04979f13c950d", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12579929_9566349ee5fb_c6341faaf9b027", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" }, "CNBETAWin4.1.51": { "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553", @@ -23,78 +41,6 @@ "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14852119_8789f55c1c30_0c0cf5d3c9089b", "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14887825_65010135064b_71536d98b8abbf" }, - "CNBETAWin3.7.51": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12579793_48327ff319b5_1b794dd1071e3a", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12611332_5f583f2f54ae_c04979f13c950d", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12579929_9566349ee5fb_c6341faaf9b027", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" - }, - "OSBETAWin4.4.55": { - "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_16024881_896dfe299d28_6b1f75ad83f27b", - "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_16050090_fcad1072dbc7_a9141d239b78a9", - "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_16025010_bd07c5a80aa5_797626f0206ff2", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" - }, - "CNBETAWin3.6.51": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6", - "ex_resource_url": "https://autopatchcn-bhsr.neonteam.dev/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a" - }, - "CNBETAWin4.4.53": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_15866095_9009036d3e25_973d3ce6b65433", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_15900361_b648af622913_4cf554a7d47922", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_15866255_5a7f51a53ac5_64e185fea5e17f", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_15893225_dd4a15a115ff_7849b83bdd1350" - }, - "CNBETAWin3.5.55": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_11797411_74704086c081_d40a71b41ba492", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_11823033_c9e8c870bcc7_b78f37c36487d0", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_11798340_8c6543a1d6c5_2d60cd9b1584b8", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" - }, - "OSBETAWin4.5.51": { - "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_16228654_7d9ae69e532c_a0248bef3c5f6e", - "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_16297504_50bd375a94d3_5be74ad42ab292", - "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_16228766_9f45f1eb6490_93543436b26c11", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" - }, - "CNBETAWin4.4.52": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_15791026_81432f7ff047_c6833b52b5ef3b", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_15802789_98e925c87f1f_31dd3e9dc8f721", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_15791202_1a65af984218_29844dd244a88d", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" - }, - "OSBETAWin4.0.51": { - "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14026982_55a517a26691_89300298bf2b2e", - "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14036546_28a134460a9a_5805431f75f0ff", - "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14028456_7088b08fd431_59194837d90977", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" - }, - "CNBETAWin3.6.52": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12150127_00d6d096d968_cd76a04beb7ba6", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12178965_e246796e0bb6_05bcce36cd648b", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12150614_5279f6d8029a_bdecff99d2d817", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12164593_8e3fba5163df_b2b6fc46de4c06" - }, - "OSBETAWin4.5.52": { - "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_16317320_6a387bae4513_51fa14bddea85f", - "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_16343198_0b109c2dab94_c6792a9fba725b", - "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_16317476_035e0a79224b_887d96f7efbed2", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" - }, - "CNBETAWin4.4.51": { - "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15711835_1986f76c287e_9c3d058458edf0", - "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15753142_3bb8238470fc_a7cec92c089da7", - "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15712109_65eeab393c89_0c116c2699518d", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" - }, - "CNBETAWin4.5.51": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16228654_7d9ae69e532c_ff87719729c35f", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16297504_50bd375a94d3_6512106296b202", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16228766_9f45f1eb6490_9f172521b06e84", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" - }, "CNBETAWin4.3.51": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15261247_f6e6db2125cf_369da465b36faf", "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15265964_c2fbb1eb05fc_f2238199ee2b6e", @@ -125,6 +71,60 @@ "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15507972_05909e009ba9_54e5377976705e", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" }, + "CNBETAWin4.4.51": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15711835_1986f76c287e_9c3d058458edf0", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15753142_3bb8238470fc_a7cec92c089da7", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15712109_65eeab393c89_0c116c2699518d", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" + }, + "CNBETAWin4.4.52": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_15791026_81432f7ff047_c6833b52b5ef3b", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_15802789_98e925c87f1f_31dd3e9dc8f721", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_15791202_1a65af984218_29844dd244a88d", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + }, + "CNBETAWin4.4.53": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_15866095_9009036d3e25_973d3ce6b65433", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_15900361_b648af622913_4cf554a7d47922", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_15866255_5a7f51a53ac5_64e185fea5e17f", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_15893225_dd4a15a115ff_7849b83bdd1350" + }, + "CNBETAWin4.5.51": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16228654_7d9ae69e532c_ff87719729c35f", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16297504_50bd375a94d3_6512106296b202", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16228766_9f45f1eb6490_9f172521b06e84", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + }, + "CNBETAWin4.5.52": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16317320_6a387bae4513_2f3e5644103a8a", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16343198_0b109c2dab94_dd42d0213ac00f", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16317476_035e0a79224b_ed91499b6ef70b", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + }, + "CNBETAWin4.6.51": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16677734_6b334c11ab3a_653e489328e98e", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16706787_90982cd003eb_5ed57e0de4e2b4", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16679499_5abbd35a74c5_a28e83e88b78d5", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + }, + "OSBETAAndroid4.6.51": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16685262_bd0485299f5b_858f2db22344cc", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16700702_5084ff364848_ebdcee37054070", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16679499_5abbd35a74c5_a28e83e88b78d5", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + }, + "OSBETAWin3.8.51": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_13490885_bf25e1553b38_e9adc23a6b6710", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_13532881_eb1de9bedabd_c74ab2513059ad", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_13493894_ec7d6d879305_8b2cfd39d6e545", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_13491130_ecfa51828143_4bd221b76c0d9a" + }, + "OSBETAWin4.0.51": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14026982_55a517a26691_89300298bf2b2e", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14036546_28a134460a9a_5805431f75f0ff", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14028456_7088b08fd431_59194837d90977", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" + }, "OSBETAWin4.3.51": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15261247_f6e6db2125cf_369da465b36faf", "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15265964_c2fbb1eb05fc_f2238199ee2b6e", @@ -155,43 +155,40 @@ "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15507972_05909e009ba9_54e5377976705e", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" }, - "CNBETAWin4.5.52": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16317320_6a387bae4513_2f3e5644103a8a", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16343198_0b109c2dab94_dd42d0213ac00f", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16317476_035e0a79224b_ed91499b6ef70b", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + "OSBETAWin4.4.51": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15711835_1986f76c287e_9c3d058458edf0", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15753142_3bb8238470fc_a7cec92c089da7", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15712109_65eeab393c89_0c116c2699518d", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" }, - "CNBETAWin4.6.51": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16677734_6b334c11ab3a_653e489328e98e", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16706787_90982cd003eb_5ed57e0de4e2b4", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16679499_5abbd35a74c5_a28e83e88b78d5", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" + "OSBETAWin4.4.55": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_16024881_896dfe299d28_6b1f75ad83f27b", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_16050090_fcad1072dbc7_a9141d239b78a9", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_16025010_bd07c5a80aa5_797626f0206ff2", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" }, - "OSBETAWin4.6.51": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16685262_bd0485299f5b_858f2db22344cc", - "asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16677734_6b334c11ab3a_653e489328e98e", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16700702_5084ff364848_ebdcee37054070", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16679499_5abbd35a74c5_a28e83e88b78d5", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885", - "lua_version": "16679499", - "ifix_version": "0" + "OSBETAWin4.5.51": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_16228654_7d9ae69e532c_a0248bef3c5f6e", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_16297504_50bd375a94d3_5be74ad42ab292", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_16228766_9f45f1eb6490_93543436b26c11", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" }, - "OSBETAAndroid4.6.51": { - "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16685262_bd0485299f5b_858f2db22344cc", - "asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16677734_6b334c11ab3a_653e489328e98e", - "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16700702_5084ff364848_ebdcee37054070", - "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16679499_5abbd35a74c5_a28e83e88b78d5", - "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885", - "lua_version": "16679499", - "ifix_version": "0" + "OSBETAWin4.5.52": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_16317320_6a387bae4513_51fa14bddea85f", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_16343198_0b109c2dab94_c6792a9fba725b", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_16317476_035e0a79224b_887d96f7efbed2", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" }, "OSBETAWin4.6.0": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_16685262_bd0485299f5b_9afe16e893e053", - "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_16677734_6b334c11ab3a_046eb95ac0bab0", "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_16700702_5084ff364848_26afe1893aa110", "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_16679499_5abbd35a74c5_19c4f9432fbf41", - "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4", - "lua_version": "16679499", - "ifix_version": "0" + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" + }, + "OSBETAWin4.6.51": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_16685262_bd0485299f5b_858f2db22344cc", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_16700702_5084ff364848_ebdcee37054070", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_16679499_5abbd35a74c5_a28e83e88b78d5", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" } } \ No newline at end of file