From 71a79cc12dc57fc7d3f63ce81ffe7df0d27025db Mon Sep 17 00:00:00 2001 From: HuLiNap Date: Tue, 18 Nov 2025 16:02:36 +0700 Subject: [PATCH] Update v3, add new skin, fix random loading issue --- README.md | 4 - dispatch/src/dispatch.zig | 1 + gameserver/src/data.zig | 6 +- gameserver/src/handlers.zig | 167 ++++++++++++++---------------- gameserver/src/services/gacha.zig | 21 ---- gameserver/src/services/item.zig | 3 + hotfix.json | 8 ++ protocol/src/protocol.pb.zig | 8 +- 8 files changed, 100 insertions(+), 118 deletions(-) diff --git a/README.md b/README.md index 7b09387..7749477 100644 --- a/README.md +++ b/README.md @@ -47,10 +47,6 @@ After you extract client package, delete `AccountPlatNative.dll` inside \StarRai Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change, and why. -## Important note - -Due to the missing cmd ids and the massive amount of events haven't had dummy handled so that you will expect to have some loading at the begining after first login. After that it will work normally. - ## Bug Reports If you find a bug, please open an issue with as much detail as possible. If you diff --git a/dispatch/src/dispatch.zig b/dispatch/src/dispatch.zig index 3770d5e..658b81c 100644 --- a/dispatch/src/dispatch.zig +++ b/dispatch/src/dispatch.zig @@ -44,6 +44,7 @@ pub fn onQueryDispatch(_: *httpz.Request, res: *httpz.Response) !void { pub fn onQueryGateway(req: *httpz.Request, res: *httpz.Response) !void { var proto = protocol.GateServer.init(res.arena); proto.port = 23301; + proto.retcode = 0; proto.ip = .{ .Const = "127.0.0.1" }; const query = try req.query(); diff --git a/gameserver/src/data.zig b/gameserver/src/data.zig index 74b0737..ef0e5df 100644 --- a/gameserver/src/data.zig +++ b/gameserver/src/data.zig @@ -15,6 +15,7 @@ pub var AvatarSkinMap = [_]struct { }{ .{ .avatar_id = 1001, .skin_id = 1100101 }, .{ .avatar_id = 1310, .skin_id = 1131001 }, + .{ .avatar_id = 1415, .skin_id = 1141501 }, }; // Battle group @@ -30,8 +31,9 @@ pub const OwnedPhoneThemes = [_]u32{ 221000, 221001, 221002, 221003, 221004, 221 pub const OwnedPhoneCases = [_]u32{ 254000, 254001 }; pub const OwnedPersonalCardSkin = [_]u32{ 253000, 253001, 253002 }; -pub const ItemList = [_]u32{ 251001, 251002, 251003, 101, 238, 239, 227002, 227001 }; -pub const SkinList = [_]u32{ 1100101, 1131001 }; +pub const ItemList = [_]u32{ 251001, 251002, 251003, 101, 238, 239 }; +pub const SkinList = [_]u32{ 1100101, 1131001, 1141501 }; +pub const PlayerOutfitList = [_]u32{ 227003, 227002, 227001 }; pub const LightconeList_3 = [_]u32{ 20000, 20001, 20002, 20003, 20004, 20005, 20006, 20007, 20008, 20009, 20010, 20011, 20012, 20013, 20014, 20015, 20016, 20017, 20018, 20019, 20020, 20021, 20022, diff --git a/gameserver/src/handlers.zig b/gameserver/src/handlers.zig index 80ff8ba..65c85dc 100644 --- a/gameserver/src/handlers.zig +++ b/gameserver/src/handlers.zig @@ -65,7 +65,6 @@ pub const HandlerList = [_]struct { CmdID, Action }{ //gacha .{ CmdID.CmdGetGachaInfoCsReq, gacha.onGetGachaInfo }, .{ CmdID.CmdBuyGoodsCsReq, gacha.onBuyGoods }, - .{ CmdID.CmdGetShopListCsReq, gacha.onGetShopList }, .{ CmdID.CmdExchangeHcoinCsReq, gacha.onExchangeHcoin }, .{ CmdID.CmdDoGachaCsReq, gacha.onDoGacha }, //mail @@ -141,35 +140,35 @@ pub const HandlerList = [_]struct { CmdID, Action }{ }; const DummyCmdList = [_]struct { CmdID, CmdID }{ - .{ CmdID.CmdGetRechargeGiftInfoCsReq, CmdID.CmdTakeRechargeGiftRewardScRsp }, - .{ CmdID.CmdTakeRechargeGiftRewardCsReq, CmdID.CmdTakeRechargeGiftRewardScRsp }, - .{ CmdID.CmdGetRechargeBenefitInfoCsReq, CmdID.CmdGetRechargeBenefitInfoScRsp }, - .{ CmdID.CmdTakeRechargeBenefitRewardCsReq, CmdID.CmdTakeRechargeBenefitRewardScRsp }, + .{ CmdID.CmdGetBagCsReq, CmdID.CmdGetBagScRsp }, .{ CmdID.CmdGetMarkItemListCsReq, CmdID.CmdGetMarkItemListScRsp }, .{ CmdID.CmdGetPlayerBoardDataCsReq, CmdID.CmdGetPlayerBoardDataScRsp }, .{ CmdID.CmdGetCurAssistCsReq, CmdID.CmdGetCurAssistScRsp }, .{ CmdID.CmdGetAllLineupDataCsReq, CmdID.CmdGetAllLineupDataScRsp }, .{ CmdID.CmdGetAllServerPrefsDataCsReq, CmdID.CmdGetAllServerPrefsDataScRsp }, .{ CmdID.CmdGetMissionDataCsReq, CmdID.CmdGetMissionDataScRsp }, - .{ CmdID.CmdDailyFirstMeetPamCsReq, CmdID.CmdDailyFirstMeetPamScRsp }, - .{ CmdID.CmdGetBattleCollegeDataCsReq, CmdID.CmdGetBattleCollegeDataScRsp }, - .{ CmdID.CmdGetNpcStatusCsReq, CmdID.CmdGetNpcStatusScRsp }, - .{ CmdID.CmdGetSecretKeyInfoCsReq, CmdID.CmdGetSecretKeyInfoScRsp }, - .{ CmdID.CmdGetHeartDialInfoCsReq, CmdID.CmdGetHeartDialInfoScRsp }, - .{ CmdID.CmdGetVideoVersionKeyCsReq, CmdID.CmdGetVideoVersionKeyScRsp }, - .{ CmdID.CmdGetMapRotationDataCsReq, CmdID.CmdGetMapRotationDataScRsp }, - .{ CmdID.CmdGetLevelRewardTakenListCsReq, CmdID.CmdGetLevelRewardTakenListScRsp }, - .{ CmdID.CmdGetMaterialSubmitActivityDataCsReq, CmdID.CmdGetMaterialSubmitActivityDataScRsp }, - .{ CmdID.CmdMusicRhythmDataCsReq, CmdID.CmdMusicRhythmDataScRsp }, .{ CmdID.CmdGetRogueCommonDialogueDataCsReq, CmdID.CmdGetRogueCommonDialogueDataScRsp }, .{ CmdID.CmdGetRogueInfoCsReq, CmdID.CmdGetRogueInfoScRsp }, .{ CmdID.CmdGetRogueHandbookDataCsReq, CmdID.CmdGetRogueHandbookDataScRsp }, .{ CmdID.CmdGetRogueEndlessActivityDataCsReq, CmdID.CmdGetRogueEndlessActivityDataScRsp }, .{ CmdID.CmdChessRogueQueryCsReq, CmdID.CmdChessRogueQueryScRsp }, .{ CmdID.CmdRogueTournQueryCsReq, CmdID.CmdRogueTournQueryScRsp }, + .{ CmdID.CmdDailyFirstMeetPamCsReq, CmdID.CmdDailyFirstMeetPamScRsp }, + .{ CmdID.CmdGetBattleCollegeDataCsReq, CmdID.CmdGetBattleCollegeDataScRsp }, + .{ CmdID.CmdGetNpcStatusCsReq, CmdID.CmdGetNpcStatusScRsp }, + .{ CmdID.CmdGetSecretKeyInfoCsReq, CmdID.CmdGetSecretKeyInfoScRsp }, + .{ CmdID.CmdGetHeartDialInfoCsReq, CmdID.CmdGetHeartDialInfoScRsp }, + .{ CmdID.CmdGetVideoVersionKeyCsReq, CmdID.CmdGetVideoVersionKeyScRsp }, + .{ CmdID.CmdHeliobusActivityDataCsReq, CmdID.CmdHeliobusActivityDataScRsp }, + .{ CmdID.CmdGetAetherDivideInfoCsReq, CmdID.CmdGetAetherDivideInfoScRsp }, + .{ CmdID.CmdGetMapRotationDataCsReq, CmdID.CmdGetMapRotationDataScRsp }, .{ CmdID.CmdPlayerReturnInfoQueryCsReq, CmdID.CmdPlayerReturnInfoQueryScRsp }, - .{ CmdID.CmdRogueMagicQueryCsReq, CmdID.CmdRogueMagicQueryScRsp }, + .{ CmdID.CmdGetLevelRewardTakenListCsReq, CmdID.CmdGetLevelRewardTakenListScRsp }, + .{ CmdID.CmdGetMainMissionCustomValueCsReq, CmdID.CmdGetMainMissionCustomValueScRsp }, + .{ CmdID.CmdGetMaterialSubmitActivityDataCsReq, CmdID.CmdGetMaterialSubmitActivityDataScRsp }, .{ CmdID.CmdRogueTournGetCurRogueCocoonInfoCsReq, CmdID.CmdRogueTournGetCurRogueCocoonInfoScRsp }, + .{ CmdID.CmdRogueMagicQueryCsReq, CmdID.CmdRogueMagicQueryScRsp }, + .{ CmdID.CmdMusicRhythmDataCsReq, CmdID.CmdMusicRhythmDataScRsp }, //friendlist .{ CmdID.CmdGetFriendApplyListInfoCsReq, CmdID.CmdGetFriendApplyListInfoScRsp }, .{ CmdID.CmdGetChatFriendHistoryCsReq, CmdID.CmdGetChatFriendHistoryScRsp }, @@ -177,7 +176,72 @@ const DummyCmdList = [_]struct { CmdID, CmdID }{ .{ CmdID.CmdGetFriendDevelopmentInfoCsReq, CmdID.CmdGetFriendDevelopmentInfoScRsp }, .{ CmdID.CmdGetFriendRecommendListInfoCsReq, CmdID.CmdGetFriendRecommendListInfoScRsp }, //add + .{ CmdID.CmdSwitchHandDataCsReq, CmdID.CmdSwitchHandDataScRsp }, + .{ CmdID.CmdRogueArcadeGetInfoCsReq, CmdID.CmdRogueArcadeGetInfoScRsp }, + .{ CmdID.CmdGetMissionMessageInfoCsReq, CmdID.CmdGetMissionMessageInfoScRsp }, + .{ CmdID.CmdTrainPartyGetDataCsReq, CmdID.CmdTrainPartyGetDataScRsp }, + .{ CmdID.CmdQueryProductInfoCsReq, CmdID.CmdQueryProductInfoScRsp }, + .{ CmdID.CmdGetPamSkinDataCsReq, CmdID.CmdGetPamSkinDataScRsp }, + .{ CmdID.CmdGetRogueScoreRewardInfoCsReq, CmdID.CmdGetRogueScoreRewardInfoScRsp }, + .{ CmdID.CmdGetQuestRecordCsReq, CmdID.CmdGetQuestRecordScRsp }, + .{ CmdID.CmdGetDailyActiveInfoCsReq, CmdID.CmdGetDailyActiveInfoScRsp }, + .{ CmdID.CmdGetChessRogueNousStoryInfoCsReq, CmdID.CmdGetChessRogueNousStoryInfoScRsp }, + .{ CmdID.CmdCommonRogueQueryCsReq, CmdID.CmdCommonRogueQueryScRsp }, + .{ CmdID.CmdGetFightActivityDataCsReq, CmdID.CmdGetFightActivityDataScRsp }, + .{ CmdID.CmdGetStarFightDataCsReq, CmdID.CmdGetStarFightDataScRsp }, + .{ CmdID.CmdGetMultipleDropInfoCsReq, CmdID.CmdGetMultipleDropInfoScRsp }, + .{ CmdID.CmdGetPlayerReturnMultiDropInfoCsReq, CmdID.CmdGetPlayerReturnMultiDropInfoScRsp }, + .{ CmdID.CmdGetShareDataCsReq, CmdID.CmdGetShareDataScRsp }, + .{ CmdID.CmdGetTreasureDungeonActivityDataCsReq, CmdID.CmdGetTreasureDungeonActivityDataScRsp }, + .{ CmdID.CmdGetAetherDivideChallengeInfoCsReq, CmdID.CmdGetAetherDivideChallengeInfoScRsp }, + .{ CmdID.CmdGetStrongChallengeActivityDataCsReq, CmdID.CmdGetStrongChallengeActivityDataScRsp }, + .{ CmdID.CmdGetOfferingInfoCsReq, CmdID.CmdGetOfferingInfoScRsp }, + .{ CmdID.CmdClockParkGetInfoCsReq, CmdID.CmdClockParkGetInfoScRsp }, + .{ CmdID.CmdGetGunPlayDataCsReq, CmdID.CmdGetGunPlayDataScRsp }, + .{ CmdID.CmdGetTrackPhotoActivityDataCsReq, CmdID.CmdGetTrackPhotoActivityDataScRsp }, + .{ CmdID.CmdGetSwordTrainingDataCsReq, CmdID.CmdGetSwordTrainingDataScRsp }, + .{ CmdID.CmdGetFightFestDataCsReq, CmdID.CmdGetFightFestDataScRsp }, + .{ CmdID.CmdDifficultyAdjustmentGetDataCsReq, CmdID.CmdDifficultyAdjustmentGetDataScRsp }, + .{ CmdID.CmdSpaceZooDataCsReq, CmdID.CmdSpaceZooDataScRsp }, + .{ CmdID.CmdGetExpeditionDataCsReq, CmdID.CmdGetExpeditionDataScRsp }, + .{ CmdID.CmdTravelBrochureGetDataCsReq, CmdID.CmdTravelBrochureGetDataScRsp }, + .{ CmdID.CmdRaidCollectionDataCsReq, CmdID.CmdRaidCollectionDataScRsp }, + .{ CmdID.CmdGetRaidInfoCsReq, CmdID.CmdGetRaidInfoScRsp }, + .{ CmdID.CmdGetLoginActivityCsReq, CmdID.CmdGetLoginActivityScRsp }, + .{ CmdID.CmdGetTrialActivityDataCsReq, CmdID.CmdGetTrialActivityDataScRsp }, + .{ CmdID.CmdGetJukeboxDataCsReq, CmdID.CmdGetJukeboxDataScRsp }, + .{ CmdID.CmdGetMuseumInfoCsReq, CmdID.CmdGetMuseumInfoScRsp }, + .{ CmdID.CmdGetTelevisionActivityDataCsReq, CmdID.CmdGetTelevisionActivityDataScRsp }, + .{ CmdID.CmdGetTrainVisitorRegisterCsReq, CmdID.CmdGetTrainVisitorRegisterScRsp }, + .{ CmdID.CmdGetBoxingClubInfoCsReq, CmdID.CmdGetBoxingClubInfoScRsp }, + .{ CmdID.CmdTextJoinQueryCsReq, CmdID.CmdTextJoinQueryScRsp }, + .{ CmdID.CmdGetLoginChatInfoCsReq, CmdID.CmdGetLoginChatInfoScRsp }, + .{ CmdID.CmdGetFeverTimeActivityDataCsReq, CmdID.CmdGetFeverTimeActivityDataScRsp }, + .{ CmdID.CmdGetSummonActivityDataCsReq, CmdID.CmdGetSummonActivityDataScRsp }, + .{ CmdID.CmdTarotBookGetDataCsReq, CmdID.CmdTarotBookGetDataScRsp }, + .{ CmdID.CmdGetMarkChestCsReq, CmdID.CmdGetMarkChestScRsp }, + .{ CmdID.CmdMatchThreeGetDataCsReq, CmdID.CmdMatchThreeGetDataScRsp }, + .{ CmdID.CmdUpdateTrackMainMissionIdCsReq, CmdID.CmdUpdateTrackMainMissionIdScRsp }, + .{ CmdID.CmdGetNpcMessageGroupCsReq, CmdID.CmdGetNpcMessageGroupScRsp }, + .{ CmdID.CmdGetAllSaveRaidCsReq, CmdID.CmdGetAllSaveRaidScRsp }, + .{ CmdID.CmdGetAssistHistoryCsReq, CmdID.CmdGetAssistHistoryScRsp }, .{ CmdID.CmdGetEraFlipperDataCsReq, CmdID.CmdGetEraFlipperDataScRsp }, + .{ CmdID.CmdGetRechargeGiftInfoCsReq, CmdID.CmdGetRechargeGiftInfoScRsp }, + .{ CmdID.CmdGetRechargeBenefitInfoCsReq, CmdID.CmdGetRechargeBenefitInfoScRsp }, + .{ CmdID.CmdRelicSmartWearGetPlanCsReq, CmdID.CmdRelicSmartWearGetPlanScRsp }, + .{ CmdID.CmdRelicSmartWearGetPinRelicCsReq, CmdID.CmdRelicSmartWearGetPinRelicScRsp }, + .{ CmdID.CmdSetGrowthTargetAvatarCsReq, CmdID.CmdSetGrowthTargetAvatarScRsp }, + .{ CmdID.CmdFateQueryCsReq, CmdID.CmdFateQueryScRsp }, + .{ CmdID.CmdGetPlanetFesDataCsReq, CmdID.CmdGetPlanetFesDataScRsp }, + .{ CmdID.CmdParkourGetDataCsReq, CmdID.CmdParkourGetDataScRsp }, + .{ CmdID.CmdMatchThreeV2GetDataCsReq, CmdID.CmdMatchThreeV2GetDataScRsp }, + .{ CmdID.CmdGetMonopolyInfoCsReq, CmdID.CmdGetMonopolyInfoScRsp }, + .{ CmdID.CmdMonopolyGetRegionProgressCsReq, CmdID.CmdMonopolyGetRegionProgressScRsp }, + .{ CmdID.CmdGetMbtiReportCsReq, CmdID.CmdGetMbtiReportScRsp }, + .{ CmdID.CmdGetDrinkMakerDataCsReq, CmdID.CmdGetDrinkMakerDataScRsp }, + .{ CmdID.CmdChimeraGetDataCsReq, CmdID.CmdChimeraGetDataScRsp }, + .{ CmdID.CmdMarbleGetDataCsReq, CmdID.CmdMarbleGetDataScRsp }, + .{ CmdID.CmdGetPreAvatarActivityListCsReq, CmdID.CmdGetPreAvatarActivityListScRsp }, .{ CmdID.CmdGetUnreleasedBlockInfoCsReq, CmdID.CmdGetUnreleasedBlockInfoScRsp }, .{ CmdID.CmdPBPIGABCJED, CmdID.CmdABJBJOCBPLH }, .{ CmdID.CmdEKNCLPMCCNE, CmdID.CmdNJHPBNBHOLL }, @@ -187,77 +251,6 @@ const DummyCmdList = [_]struct { CmdID, CmdID }{ .{ CmdID.CmdLCCNLFAHCBA, CmdID.CmdNKEJNOCLJEA }, .{ CmdID.CmdAIEAADPOFKA, CmdID.CmdDAHLBDGMHCH }, .{ CmdID.CmdOPHHNPGIKNK, CmdID.CmdHAIBDDPANJJ }, - .{ CmdID.CmdGetActivityHotDataCsReq, CmdID.CmdGetActivityHotDataScRsp }, - .{ CmdID.CmdGetDrinkMakerDataCsReq, CmdID.CmdGetDrinkMakerDataScRsp }, - .{ CmdID.CmdMatchThreeGetDataCsReq, CmdID.CmdMatchThreeGetDataScRsp }, - .{ CmdID.CmdTarotBookGetDataCsReq, CmdID.CmdTarotBookGetDataScRsp }, - .{ CmdID.CmdGetSummonActivityDataCsReq, CmdID.CmdGetSummonActivityDataScRsp }, - .{ CmdID.CmdGetFeverTimeActivityDataCsReq, CmdID.CmdGetFeverTimeActivityDataScRsp }, - .{ CmdID.CmdTextJoinQueryCsReq, CmdID.CmdTextJoinQueryScRsp }, - .{ CmdID.CmdGetBoxingClubInfoCsReq, CmdID.CmdGetBoxingClubInfoScRsp }, - .{ CmdID.CmdGetTrainVisitorRegisterCsReq, CmdID.CmdGetTrainVisitorRegisterScRsp }, - .{ CmdID.CmdGetTelevisionActivityDataCsReq, CmdID.CmdGetTelevisionActivityDataScRsp }, - .{ CmdID.CmdGetMuseumInfoCsReq, CmdID.CmdGetMuseumInfoScRsp }, - .{ CmdID.CmdTravelBrochureGetDataCsReq, CmdID.CmdTravelBrochureGetDataScRsp }, - .{ CmdID.CmdSpaceZooDataCsReq, CmdID.CmdSpaceZooDataScRsp }, - .{ CmdID.CmdGetElationActivityDataCsReq, CmdID.CmdGetElationActivityDataScRsp }, - .{ CmdID.CmdGetHipplenDataCsReq, CmdID.CmdGetHipplenDataScRsp }, - .{ CmdID.CmdParkourGetDataCsReq, CmdID.CmdParkourGetDataScRsp }, - .{ CmdID.CmdGetPlanetFesDataCsReq, CmdID.CmdGetPlanetFesDataScRsp }, - .{ CmdID.CmdFateQueryCsReq, CmdID.CmdFateQueryScRsp }, - .{ CmdID.CmdMarbleGetDataCsReq, CmdID.CmdMarbleGetDataScRsp }, - .{ CmdID.CmdChimeraGetDataCsReq, CmdID.CmdChimeraGetDataScRsp }, - .{ CmdID.CmdGetFightFestDataCsReq, CmdID.CmdGetFightFestDataScRsp }, - .{ CmdID.CmdGetSwordTrainingDataCsReq, CmdID.CmdGetSwordTrainingDataScRsp }, - .{ CmdID.CmdGetTrackPhotoActivityDataCsReq, CmdID.CmdGetTrackPhotoActivityDataScRsp }, - .{ CmdID.CmdMatchThreeV2GetDataCsReq, CmdID.CmdMatchThreeV2GetDataScRsp }, - .{ CmdID.CmdGetStrongChallengeActivityDataCsReq, CmdID.CmdGetStrongChallengeActivityDataScRsp }, - .{ CmdID.CmdGetAetherDivideChallengeInfoCsReq, CmdID.CmdGetAetherDivideChallengeInfoScRsp }, - .{ CmdID.CmdDifficultyAdjustmentGetDataCsReq, CmdID.CmdDifficultyAdjustmentGetDataScRsp }, - .{ CmdID.CmdGetSwitchMascotDataCsReq, CmdID.CmdGetSwitchMascotDataScRsp }, - .{ CmdID.CmdGetGunPlayDataCsReq, CmdID.CmdGetGunPlayDataScRsp }, - .{ CmdID.CmdGetShareDataCsReq, CmdID.CmdGetShareDataScRsp }, - .{ CmdID.CmdGetPlayerReturnMultiDropInfoCsReq, CmdID.CmdGetPlayerReturnMultiDropInfoScRsp }, - .{ CmdID.CmdGetMultipleDropInfoCsReq, CmdID.CmdGetMultipleDropInfoScRsp }, - .{ CmdID.CmdGetStarFightDataCsReq, CmdID.CmdGetStarFightDataScRsp }, - .{ CmdID.CmdGetRogueScoreRewardInfoCsReq, CmdID.CmdGetRogueScoreRewardInfoScRsp }, - .{ CmdID.CmdGetChessRogueNousStoryInfoCsReq, CmdID.CmdGetChessRogueNousStoryInfoScRsp }, - .{ CmdID.CmdMultiplayerGetMatchPlayDataCsReq, CmdID.CmdMultiplayerGetMatchPlayDataScRsp }, - .{ CmdID.CmdGetMbtiReportCsReq, CmdID.CmdGetMbtiReportScRsp }, - .{ CmdID.CmdMonopolyGetRegionProgressCsReq, CmdID.CmdMonopolyGetRegionProgressScRsp }, - .{ CmdID.CmdGetMonopolyInfoCsReq, CmdID.CmdGetMonopolyInfoScRsp }, - .{ CmdID.CmdGetMainMissionCustomValueCsReq, CmdID.CmdGetMainMissionCustomValueScRsp }, - .{ CmdID.CmdGetAetherDivideInfoCsReq, CmdID.CmdGetAetherDivideInfoScRsp }, - .{ CmdID.CmdHeliobusActivityDataCsReq, CmdID.CmdHeliobusActivityDataScRsp }, - .{ CmdID.CmdRogueArcadeGetInfoCsReq, CmdID.CmdRogueArcadeGetInfoScRsp }, - .{ CmdID.CmdCommonRogueQueryCsReq, CmdID.CmdCommonRogueQueryScRsp }, - .{ CmdID.CmdSwitchHandDataCsReq, CmdID.CmdSwitchHandDataScRsp }, - .{ CmdID.CmdGetMissionMessageInfoCsReq, CmdID.CmdGetMissionMessageInfoScRsp }, - .{ CmdID.CmdTrainPartyGetDataCsReq, CmdID.CmdTrainPartyGetDataScRsp }, - .{ CmdID.CmdQueryProductInfoCsReq, CmdID.CmdQueryProductInfoScRsp }, - .{ CmdID.CmdGetPamSkinDataCsReq, CmdID.CmdGetPamSkinDataScRsp }, - .{ CmdID.CmdGetQuestRecordCsReq, CmdID.CmdGetQuestRecordScRsp }, - .{ CmdID.CmdGetDailyActiveInfoCsReq, CmdID.CmdGetDailyActiveInfoScRsp }, - .{ CmdID.CmdGetFightActivityDataCsReq, CmdID.CmdGetFightActivityDataScRsp }, - .{ CmdID.CmdGetTreasureDungeonActivityDataCsReq, CmdID.CmdGetTreasureDungeonActivityDataScRsp }, - .{ CmdID.CmdGetOfferingInfoCsReq, CmdID.CmdGetOfferingInfoScRsp }, - .{ CmdID.CmdClockParkGetInfoCsReq, CmdID.CmdClockParkGetInfoScRsp }, - .{ CmdID.CmdGetExpeditionDataCsReq, CmdID.CmdGetExpeditionDataScRsp }, - .{ CmdID.CmdRaidCollectionDataCsReq, CmdID.CmdRaidCollectionDataScRsp }, - .{ CmdID.CmdGetRaidInfoCsReq, CmdID.CmdGetRaidInfoScRsp }, - .{ CmdID.CmdGetLoginActivityCsReq, CmdID.CmdGetLoginActivityScRsp }, - .{ CmdID.CmdGetTrialActivityDataCsReq, CmdID.CmdGetTrialActivityDataScRsp }, - .{ CmdID.CmdGetJukeboxDataCsReq, CmdID.CmdGetJukeboxDataScRsp }, - .{ CmdID.CmdGetLoginChatInfoCsReq, CmdID.CmdGetLoginChatInfoScRsp }, - .{ CmdID.CmdGetMarkChestCsReq, CmdID.CmdGetMarkChestScRsp }, - .{ CmdID.CmdUpdateTrackMainMissionIdCsReq, CmdID.CmdUpdateTrackMainMissionIdScRsp }, - .{ CmdID.CmdGetNpcMessageGroupCsReq, CmdID.CmdGetNpcMessageGroupScRsp }, - .{ CmdID.CmdGetAllSaveRaidCsReq, CmdID.CmdGetAllSaveRaidScRsp }, - .{ CmdID.CmdGetAssistHistoryCsReq, CmdID.CmdGetAssistHistoryScRsp }, - .{ CmdID.CmdRelicSmartWearGetPlanCsReq, CmdID.CmdRelicSmartWearGetPlanScRsp }, - .{ CmdID.CmdRelicSmartWearGetPinRelicCsReq, CmdID.CmdRelicSmartWearGetPinRelicScRsp }, - .{ CmdID.CmdSetGrowthTargetAvatarCsReq, CmdID.CmdSetGrowthTargetAvatarScRsp }, - .{ CmdID.CmdGetPreAvatarActivityListCsReq, CmdID.CmdGetPreAvatarActivityListScRsp }, }; const SuppressLogList = [_]CmdID{CmdID.CmdSceneEntityMoveCsReq}; diff --git a/gameserver/src/services/gacha.zig b/gameserver/src/services/gacha.zig index 1e0014a..8d9aa0b 100644 --- a/gameserver/src/services/gacha.zig +++ b/gameserver/src/services/gacha.zig @@ -59,27 +59,6 @@ pub fn onBuyGoods(session: *Session, packet: *const Packet, allocator: Allocator try session.send(CmdID.CmdBuyGoodsScRsp, rsp); } -pub fn onGetShopList(session: *Session, _: *const Packet, allocator: Allocator) !void { - var rsp = protocol.GetShopListScRsp.init(allocator); - var shop = ArrayList(protocol.Shop).init(allocator); - var goods = ArrayList(protocol.Goods).init(allocator); - - try shop.appendSlice(&[_]protocol.Shop{.{ - .shop_id = 1000, - .goods_list = goods, - }}); - try goods.appendSlice(&[_]protocol.Goods{.{ - .goods_id = 101001, - .item_id = 101, - .buy_times = 0, - }}); - - rsp.retcode = 0; - rsp.shop_type = 101; - rsp.shop_list = shop; - - try session.send(CmdID.CmdGetShopListScRsp, rsp); -} pub fn onExchangeHcoin(session: *Session, packet: *const Packet, allocator: Allocator) !void { const req = try packet.getProto(protocol.ExchangeHcoinCsReq, allocator); defer req.deinit(); diff --git a/gameserver/src/services/item.zig b/gameserver/src/services/item.zig index 8f3b119..ee77a22 100644 --- a/gameserver/src/services/item.zig +++ b/gameserver/src/services/item.zig @@ -21,6 +21,9 @@ pub fn onGetBag(session: *Session, _: *const Packet, allocator: Allocator) !void for (Data.ItemList) |tid| { try rsp.material_list.append(.{ .tid = tid, .num = 100 }); } + for (Data.PlayerOutfitList) |tid| { + try rsp.material_list.append(.{ .tid = tid, .num = 1 }); + } for (config.avatar_config.items) |avatarConf| { const lc = try AvatarManager.createEquipment(avatarConf.lightcone, avatarConf.id); try rsp.equipment_list.append(lc); diff --git a/hotfix.json b/hotfix.json index 23a8b99..615a7cc 100644 --- a/hotfix.json +++ b/hotfix.json @@ -14,5 +14,13 @@ "ifix_version": "0", "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12668602_bb2724b6e4aa_96844284b2e8b2", "lua_version": "" + }, + "CNBETAWin3.7.53": { + "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12780782_5b2a53fa06e0_a3638534913d5f", + "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12780782_84f9f677c892_ce4a000dc6b55a", + "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885", + "ifix_version": "0", + "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12767200_40d19987b596_dbe466d6b2a94a", + "lua_version": "" } } \ No newline at end of file diff --git a/protocol/src/protocol.pb.zig b/protocol/src/protocol.pb.zig index 8087a3f..59a765c 100644 --- a/protocol/src/protocol.pb.zig +++ b/protocol/src/protocol.pb.zig @@ -43111,6 +43111,7 @@ pub const GateServer = struct { res_use_asset_boundle: bool = false, asset_bundle_url: ManagedString = .Empty, port: u32 = 0, + retcode: u32 = 0, unk3: bool = false, unk4: bool = false, unk5: bool = false, @@ -43124,10 +43125,9 @@ pub const GateServer = struct { ifix_url: ManagedString = .Empty, unk10: bool = false, ifix_version: ManagedString = .Empty, - mdk_res_version: ManagedString = .Empty, + design_data_memo: ManagedString = .Empty, NMOCNDHBPNF: bool = false, FDLIDHBPDJP: bool = false, - EDEPKFDHKGH: bool = false, DBBDEFFFFNG: bool = false, JHDAMHIBPDF: bool = false, OAHFBCEIIEA: bool = false, @@ -43142,6 +43142,7 @@ pub const GateServer = struct { .res_use_asset_boundle = fd(11, .{ .Varint = .Simple }), .asset_bundle_url = fd(12, .String), .port = fd(13, .{ .Varint = .Simple }), + .retcode = fd(14, .{ .Varint = .Simple }), .unk3 = fd(164, .{ .Varint = .Simple }), .unk4 = fd(298, .{ .Varint = .Simple }), .unk5 = fd(644, .{ .Varint = .Simple }), @@ -43155,10 +43156,9 @@ pub const GateServer = struct { .ifix_url = fd(1813, .String), .unk10 = fd(1983, .{ .Varint = .Simple }), .ifix_version = fd(652, .String), - .mdk_res_version = fd(1150, .String), + .design_data_memo = fd(1150, .String), .NMOCNDHBPNF = fd(788, .{ .Varint = .Simple }), .FDLIDHBPDJP = fd(529, .{ .Varint = .Simple }), - .EDEPKFDHKGH = fd(1387, .{ .Varint = .Simple }), .DBBDEFFFFNG = fd(1674, .{ .Varint = .Simple }), .JHDAMHIBPDF = fd(1680, .{ .Varint = .Simple }), .OAHFBCEIIEA = fd(1789, .{ .Varint = .Simple }),