shop,gacha,abyss fix p1

This commit is contained in:
Yuuki 2024-07-22 11:47:23 +08:00
parent 79f805751b
commit 0b7044b24c
55 changed files with 256 additions and 431 deletions

View File

@ -1,13 +1,10 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "BuyGoodsParam.proto"; import "BuyGoodsParam.proto";
// CmdId: 21323
// CmdId: 6661 // Version: 4.7.0
// Version: 4.6.0 // Obfs: GJPKFIHDNNF
// Obfs: MGHFKOEEGKD
message BatchBuyGoodsReq { message BatchBuyGoodsReq {
uint32 shop_type = 10; uint32 shop_type = 2;
repeated BuyGoodsParam buy_goods_list = 11; repeated BuyGoodsParam buy_goods_list = 4;
} }

View File

@ -1,16 +1,13 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "BuyGoodsParam.proto"; import "BuyGoodsParam.proto";
import "ShopGoods.proto"; import "ShopGoods.proto";
// CmdId: 8097
// CmdId: 23001 // Version: 4.7.0
// Version: 4.6.0 // Obfs: GCHGAJJHEJO
// Obfs: PHGJENGMPOE
message BatchBuyGoodsRsp { message BatchBuyGoodsRsp {
repeated ShopGoods goods_list = 1; repeated ShopGoods goods_list = 15;
repeated BuyGoodsParam buy_goods_list = 2; repeated BuyGoodsParam buy_goods_list = 14;
int32 retcode = 5; int32 retcode = 7;
uint32 shop_type = 11; uint32 shop_type = 11;
} }

View File

@ -1,12 +1,9 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ShopGoods.proto"; import "ShopGoods.proto";
// Version: 4.7.0
// Version: 4.6.0 // Obfs: MACJPBNAKLI
// Obfs: KHNAGEGDMIJ
message BuyGoodsParam { message BuyGoodsParam {
uint32 buy_count = 6; uint32 buy_count = 13;
ShopGoods goods = 10; ShopGoods goods = 8;
} }

View File

@ -1,14 +1,11 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ShopGoods.proto"; import "ShopGoods.proto";
// CmdId: 23649
// CmdId: 28819 // Version: 4.7.0
// Version: 4.6.0 // Obfs: CGCCHDKDIJG
// Obfs: OGHIMOFAHII
message BuyGoodsReq { message BuyGoodsReq {
uint32 buy_count = 4; uint32 buy_count = 11;
uint32 shop_type = 8; uint32 shop_type = 12;
ShopGoods goods = 15; ShopGoods goods = 13;
} }

View File

@ -1,16 +1,13 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ShopGoods.proto"; import "ShopGoods.proto";
// CmdId: 22736
// CmdId: 8 // Version: 4.7.0
// Version: 4.6.0 // Obfs: EEOIKFGEOCJ
// Obfs: ALLGKCIALEP
message BuyGoodsRsp { message BuyGoodsRsp {
repeated ShopGoods goods_list = 1; repeated ShopGoods goods_list = 7;
int32 retcode = 4; int32 retcode = 13;
ShopGoods goods = 9; ShopGoods goods = 3;
uint32 buy_count = 12; uint32 buy_count = 8;
uint32 shop_type = 14; uint32 shop_type = 14;
} }

View File

@ -1,9 +1,8 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// Version: 4.7.0
// Version: 4.6.0
// CmdId: 5279 // CmdId: 5279
// ?
message CanUseSkillNotify { message CanUseSkillNotify {
bool is_can_use_skill = 2; bool is_can_use_skill = 13;
} }

View File

@ -1,7 +1,5 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// IHPNNDNPAAP // IHPNNDNPAAP
message ChallengeBrief { message ChallengeBrief {

View File

@ -1,11 +1,9 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0
// 4.6.0 // CmdId: 6967
// CmdId: 2570
message ChallengeDataNotify { message ChallengeDataNotify {
uint32 challenge_index = 6; uint32 challenge_index = 13;
uint32 value = 7; uint32 value = 1;
uint32 param_index = 8; uint32 param_index = 10;
} }

View File

@ -1,7 +1,5 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// DILEFMOGENI // DILEFMOGENI
enum ChallengeFinishType { enum ChallengeFinishType {

View File

@ -1,17 +1,13 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "DungeonEntryInfo.proto"; import "DungeonEntryInfo.proto";
// Version: 4.7.0
// CmdId: 7795 // Obfs: ?
// Version: 4.6.0
// Obfs: PJIEDHIAOEH
message DailyDungeonEntryInfo { message DailyDungeonEntryInfo {
DungeonEntryInfo recommend_dungeon_entry_info = 2; DungeonEntryInfo recommend_dungeon_entry_info = 7;
uint32 recommend_dungeon_id = 6; uint32 recommend_dungeon_id = 13;
uint32 dungeon_entry_id = 9; uint32 dungeon_entry_id = 9;
uint32 dungeon_entry_config_id = 10; uint32 dungeon_entry_config_id = 5;
bool is_point_unlocked = 13; // FBMFIAFCPKB bool is_point_unlocked = 14;
bool is_quick_open = 14; // KHMADLJLNEB bool is_quick_open = 1;
} }

View File

@ -1,8 +1,7 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// CmdId: 1018
message DoGachaReq { message DoGachaReq {
uint32 gacha_schedule_id = 4; uint32 gacha_schedule_id = 4;
string gacha_tag = 6; string gacha_tag = 6;

View File

@ -1,28 +1,26 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "GachaItem.proto"; import "GachaItem.proto";
// 4.7.0 // 4.7.0
// CmdId: 27578
message DoGachaRsp { message DoGachaRsp {
uint32 gacha_type = 6; uint32 gachaTimesLimit = 1;
uint32 wishMaxProgress = 2;
uint32 wishItemId = 3;
repeated GachaItem gacha_item_list = 4; repeated GachaItem gacha_item_list = 4;
uint32 tenCostItemNum = 5;
uint32 gacha_type = 6;
int32 retcode = 7;
uint32 gacha_times = 8;
uint32 newGachaRandom = 9;
uint32 tenCostItemId = 10;
uint32 costItemId = 11;
uint32 leftGachaTimes = 12;
uint32 gacha_schedule_id = 13; uint32 gacha_schedule_id = 13;
uint32 wishProgress = 14;
uint32 costItemNum = 15;
bool is_under_general_restrict = 713; bool is_under_general_restrict = 713;
uint32 gachaSortId = 971;
uint32 daily_gacha_times = 1479; uint32 daily_gacha_times = 1479;
bool is_under_minors_restrict = 1626; bool is_under_minors_restrict = 1626;
uint32 gacha_times = 8;
int32 retcode = 7;
uint32 tenCostItemNum = 14;
uint32 wishMaxProgress = 9;
uint32 leftGachaTimes = 11;
uint32 costItemNum = 10;
uint32 curScheduleDailyGachaTimes = 706;
uint32 wishProgress = 5;
uint32 newGachaRandom = 16;
uint32 costItemId = 12;
uint32 tenCostItemId = 3;
uint32 gachaTimesLimit = 15;
uint32 wishItemId = 1;
} }

View File

@ -1,34 +1,19 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "StrengthenPointData.proto"; import "StrengthenPointData.proto";
import "PlayerDieType.proto"; import "PlayerDieType.proto";
// CmdId: 28240 // 4.7.0
// Obf: JNJBBMEHNOL // CmdId: 8234
// Obf: ?
message DungeonPlayerDieNotify { message DungeonPlayerDieNotify {
uint32 revive_count = 6; uint32 revive_count = 7; // sus
map<uint32, StrengthenPointData> strengthen_point_data_map = 1; map<uint32, StrengthenPointData> strengthen_point_data_map = 14;
PlayerDieType die_type = 11; PlayerDieType die_type = 9;
uint32 wait_time = 9; uint32 wait_time = 11;
uint32 dungeon_id = 4; uint32 dungeon_id = 8;
oneof entity { oneof entity {
uint32 monster_id = 3; uint32 monster_id = 13;
uint32 gadget_id = 10; uint32 gadget_id = 1;
} }
uint32 murderer_entity_id = 15; uint32 murderer_entity_id = 15;
} }

View File

@ -1,11 +1,10 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "PlayerDieType.proto"; import "PlayerDieType.proto";
// 4.7.0
// 4.6.0 // CmdId: 7032
// CmdId: 23739 // ?
message DungeonPlayerDieReq { message DungeonPlayerDieReq {
uint32 dungeon_id = 3; uint32 dungeon_id = 7;
PlayerDieType die_type = 7; PlayerDieType die_type = 11;
} }

View File

@ -1,23 +1,8 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 29888 // 4.7.0
// Obf: OAJOHKDAIJF // CmdId: 28416 ?
// Obf: GGGLNIBKMGC
message DungeonPlayerDieRsp { message DungeonPlayerDieRsp {
int32 retcode = 14; int32 retcode = 13;
} }

View File

@ -2,31 +2,26 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
//import "DungeonSettleExhibitionInfo.proto";
import "StrengthenPointData.proto"; import "StrengthenPointData.proto";
import "ParamList.proto"; import "ParamList.proto";
import "TowerLevelEndNotify.proto"; import "TowerLevelEndNotify.proto";
import "TrialAvatarFirstPassDungeonNotify.proto"; import "TrialAvatarFirstPassDungeonNotify.proto";
//import "ChannelerSlabLoopDungeonResultInfo.proto";
//import "EffigyChallengeDungeonResultInfo.proto";
// Version: 4.6.0 // Version: 4.7.0
// CmdId: 944 // CmdId: 3857
// CEPEBFLLCLB
message DungeonSettleNotify { message DungeonSettleNotify {
uint32 result = 1; uint32 result = 14; // sus
uint32 close_time = 3; uint32 close_time = 13; // OK
//repeated DungeonSettleExhibitionInfo exhibition_info_list = 5; uint32 use_time = 9; // OK
uint32 use_time = 6; map<uint32, StrengthenPointData> strengthen_point_data_map = 1; // OK
map<uint32, StrengthenPointData> strengthen_point_data_map = 8; bool is_success = 4; // OK
bool is_success = 9; uint32 create_player_uid = 7; // OK
uint32 create_player_uid = 11; map<uint32, ParamList> settle_show = 10; // OK
map<uint32, ParamList> settle_show = 12; repeated uint32 fail_cond_list = 11; // OK
repeated uint32 fail_cond_list = 13; uint32 dungeon_id = 6; // OK
uint32 dungeon_id = 14;
oneof detail { oneof detail {
TowerLevelEndNotify tower_level_end_notify = 517; TowerLevelEndNotify tower_level_end_notify = 1190;
TrialAvatarFirstPassDungeonNotify trial_avatar_first_pass_dungeon_notify = 1297; TrialAvatarFirstPassDungeonNotify trial_avatar_first_pass_dungeon_notify = 1546;
//ChannelerSlabLoopDungeonResultInfo channeller_slab_loop_dungeon_result_info = 803;
//EffigyChallengeDungeonResultInfo effigy_challenge_dungeon_result_info = 974;
} }
} }

View File

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "GachaUpInfo.proto"; import "GachaUpInfo.proto";
// 4.7.0 // 4.7.0
// PKGNKDGHLOF // PKGNKDGHLOF
message GachaInfo { message GachaInfo {
@ -13,28 +10,36 @@ message GachaInfo {
uint32 begin_time = 12; // OK uint32 begin_time = 12; // OK
bool is_new_wish = 778; // OK bool is_new_wish = 778; // OK
repeated GachaUpInfo gacha_up_info_list = 802; // OK repeated GachaUpInfo gacha_up_info_list = 802; // OK
repeated uint32 displayUp4ItemList = 1046; // SUS
repeated uint32 displayUp5ItemList = 1152; // SUS repeated uint32 displayUp4ItemList = 1152; // OK
repeated uint32 displayUp5ItemList = 1046; // OK
// string sus // string sus
string gachaPreviewPrefabPath = 1; string gachaPreviewPrefabPath = 7; // OK
string titleTextmap = 3; string titleTextmap = 3; // OK?
string gachaPrefabPath = 7; string gachaPrefabPath = 1; // OK
string gachaRecordUrlOversea = 14;
string gachaRecordUrl = 784; string gachaRecordUrlOversea = 1355; // LOCK
string gachaProbUrlOversea = 1355; // string gachaRecordUrl = 1355; // XCN, 14x
string gachaProbUrl = 1926; string gachaProbUrlOversea = 784; // LOCK
// string gachaProbUrl = 1926; // XCN
// int32 sus // int32 sus
uint32 costItemId = 2; uint32 tenCostItemNum = 4; // OK LOCK
uint32 wishMaxProgress = 4; uint32 tenCostItemId = 8; // OK LOCK
uint32 curScheduleDailyGachaTimes = 6; uint32 costItemNum = 9; // OK LOCK
uint32 leftGachaTimes = 8; uint32 costItemId = 15; // OK LOCK
uint32 tenCostItemNum = 9;
uint32 wishProgress = 13; // LOCK
uint32 tenCostItemId = 15; uint32 wishMaxProgress = 1274; // ONMDPPDFMEL T1
uint32 gachaSortId = 1106; uint32 wishProgress = 1954; // NJMNJNNPFPL T2
uint32 wishItemId = 1274; uint32 wishItemId = 1106; // EMFBCNGMLJJ T3
uint32 gachaTimesLimit = 1869;
uint32 costItemNum = 1954; // 1 STUFF
uint32 curScheduleDailyGachaTimes = 6; // OK
// 2 STUFF
uint32 gachaSortId = 1869;
uint32 leftGachaTimes = 2; // LOCK
uint32 gachaTimesLimit = 13; // LOCK
} }

View File

@ -1,16 +1,13 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ItemParam.proto"; import "ItemParam.proto";
import "GachaTransferItem.proto"; import "GachaTransferItem.proto";
// Version: 4.7.0
// Version: 4.6.0 // Obfs: ?
// Obfs: EDJOEJJIOMG
message GachaItem { message GachaItem {
ItemParam gacha_item = 4; ItemParam gacha_item = 9;
repeated ItemParam token_item_list = 9; repeated ItemParam token_item_list = 14;
bool is_gacha_item_new = 11; // CKAPCKPPAIG bool is_gacha_item_new = 11;
repeated GachaTransferItem transfer_items = 12; repeated GachaTransferItem transfer_items = 1;
bool is_flash_card = 14; // AAECBIKHMFM bool is_flash_card = 12;
} }

View File

@ -1,12 +1,9 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ItemParam.proto"; import "ItemParam.proto";
// Version: 4.7.0
// Version: 4.6.0 // Obfs: ?
// Obfs: AFCOODFGGDL
message GachaTransferItem { message GachaTransferItem {
ItemParam item = 2; ItemParam item = 9;
bool is_transfer_item_new = 3; bool is_transfer_item_new = 14;
} }

View File

@ -1,7 +1,5 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// Version: 4.7.0 // Version: 4.7.0
// Obfs: JEJNMHJKEPK // Obfs: JEJNMHJKEPK
message GachaUpInfo { message GachaUpInfo {

View File

@ -1,8 +1,7 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// CmdId: 5636
message GachaWishReq { message GachaWishReq {
uint32 gacha_type = 4; uint32 gacha_type = 4;
uint32 gacha_schedule_id = 10; uint32 gacha_schedule_id = 10;

View File

@ -1,13 +1,13 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// CmdId: 26208
message GachaWishRsp { message GachaWishRsp {
uint32 gacha_schedule_id = 1; uint32 gacha_schedule_id = 1;
uint32 gacha_type = 11; uint32 gacha_type = 11;
int32 retcode = 9; int32 retcode = 9;
uint32 wishItemId = 4;
uint32 wishMaxProgress = 5; uint32 wishItemId = 7; // T3
uint32 wishProgress = 7; uint32 wishMaxProgress = 4; // T1
uint32 wishProgress = 5; // T2
} }

View File

@ -1,23 +1,8 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 25586 // 4.7.0
// Obf: OOBNLCBIPJK // CmdId: 25360
// Obf: ?
message GetActivityInfoReq { message GetActivityInfoReq {
repeated uint32 activity_id_list = 9; repeated uint32 activity_id_list = 9;
} }

View File

@ -1,10 +1,9 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// CmdId: 20204
message GetAuthkeyReq { message GetAuthkeyReq {
string auth_appid = 1; string auth_appid = 1;
uint32 authkey_ver = 6; // OEMFLAILONG uint32 authkey_ver = 6;
uint32 sign_type = 7; // GOABEJGJJJP uint32 sign_type = 7;
} }

View File

@ -1,8 +1,7 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// CmdId: 383
message GetAuthkeyRsp { message GetAuthkeyRsp {
int32 retcode = 1; int32 retcode = 1;
string auth_appid = 2; string auth_appid = 2;

View File

@ -2,9 +2,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 25932 // CmdId: 23493 ?
// Version: 4.6.0 // Version: 4.7.0
// Obfs: KOEFMCGDFGA // Obfs: KOOFBAPIMEJ
message GetDailyDungeonEntryInfoReq { message GetDailyDungeonEntryInfoReq {
uint32 scene_id = 7; uint32 scene_id = 4;
} }

View File

@ -1,13 +1,10 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "DailyDungeonEntryInfo.proto"; import "DailyDungeonEntryInfo.proto";
// CmdId: 6323
// CmdId: 7795 // Version: 4.7.0
// Version: 4.6.0 // Obfs: ?
// Obfs: EDDHDLPMJCE
message GetDailyDungeonEntryInfoRsp { message GetDailyDungeonEntryInfoRsp {
repeated DailyDungeonEntryInfo daily_dungeon_info_list = 3; repeated DailyDungeonEntryInfo daily_dungeon_info_list = 5;
int32 retcode = 12; int32 retcode = 2;
} }

View File

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "GachaInfo.proto"; import "GachaInfo.proto";
// 4.7.0 // 4.7.0
// cmdid: 26742 // cmdid: 26742
// AKCGBLHGPED // AKCGBLHGPED

View File

@ -1,7 +1,8 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// CmdId: 5877
// ?
message GetShopReq { message GetShopReq {
uint32 shop_type = 14; uint32 shop_type = 14;
} }

View File

@ -1,8 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "Shop.proto"; import "Shop.proto";
// 4.7.0 // 4.7.0
// CmdId: 27397 // CmdId: 27397
message GetShopRsp { message GetShopRsp {

View File

@ -4,6 +4,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 20724 ? // CmdId: 20724 ?
// Version: 4.7.0 // Version: 4.7.0
// Obfs: KFGIJGBNIGG (in menu, but not work???) // Obfs: KFGIJGBNIGG
message GetShopmallDataReq { message GetShopmallDataReq {
} }

View File

@ -1,11 +1,9 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 6919(1lock),28359(2),27873(4),25495(1),24983(4),27354(1),505(1),27308(2),24348(5),1343(7),23548(1),23633(3),28511(3),29372(5),25915(1),8699(7),6693(1),3442(2),1130(3),467(3),24437(1)
// CmdId: 25915 ?
// Version: 4.7.0 // Version: 4.7.0
// Obfs: ABELEBMOGFM // Obfs: CABMIAPOIPE
message GetShopmallDataRsp { message GetShopmallDataRsp {
repeated uint32 shop_type_list = 13; repeated uint32 shop_type_list = 3;
int32 retcode = 11; int32 retcode = 4;
} }

View File

@ -1,8 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// Version: 4.7.0
// Version: 4.6.0
message ParamList { message ParamList {
repeated uint32 param_list = 1; repeated uint32 param_list = 1;
} }

View File

@ -1,10 +1,8 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 23233
// CmdId: 24672 // Version: 4.7.0
// Version: 4.6.0 // Obfs: ?
// Obfs: LFBKNJCPKIJ
message SceneEntityDrownReq { message SceneEntityDrownReq {
uint32 entity_id = 13; uint32 entity_id = 2;
} }

View File

@ -1,24 +1,9 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 23727 // 4.7.0
// Obf: BFJPILGBDJK // CmdId: 29817
// Obf: ?
message SceneEntityDrownRsp { message SceneEntityDrownRsp {
uint32 entity_id = 15; uint32 entity_id = 10;
int32 retcode = 6; int32 retcode = 12;
} }

View File

@ -1,27 +1,12 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "MotionInfo.proto"; import "MotionInfo.proto";
// CmdId: 25367 // 4.7.0
// CmdId: 6446
// Obf: CNFNMBHLHEK // Obf: CNFNMBHLHEK
message SceneEntityMoveNotify { message SceneEntityMoveNotify {
MotionInfo motion_info = 7; MotionInfo motion_info = 3;
uint32 entity_id = 11; uint32 entity_id = 15;
uint32 reliable_seq = 10; uint32 reliable_seq = 12;
uint32 scene_time = 14; uint32 scene_time = 8;
} }

View File

@ -1,12 +1,11 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ShopConcertProduct.proto"; import "ShopConcertProduct.proto";
import "ShopCardProduct.proto"; import "ShopCardProduct.proto";
import "ShopGoods.proto"; import "ShopGoods.proto";
import "ShopMcoinProduct.proto"; import "ShopMcoinProduct.proto";
// 4.7.0 // 4.7.0
// ?
message Shop { message Shop {
repeated ShopConcertProduct concert_product_list = 2; repeated ShopConcertProduct concert_product_list = 2;
uint32 next_refresh_time = 3; uint32 next_refresh_time = 3;

View File

@ -1,28 +1,34 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ItemParam.proto"; import "ItemParam.proto";
// 4.7.0 // 4.7.0
message ShopGoods { message ShopGoods {
ItemParam goods_item = 6; ItemParam goods_item = 6; // OK
uint32 end_time = 3; uint32 end_time = 3; // OK
uint32 begin_time = 12; uint32 begin_time = 12; // OK
repeated ItemParam cost_item_list = 10;
uint32 goods_id = 11; repeated ItemParam cost_item_list = 10; // OK
repeated uint32 pre_goods_id_list = 15; repeated uint32 pre_goods_id_list = 15; // OK
uint32 next_refresh_time = 14; uint32 goods_id = 11; // OK
uint32 bought_num = 2; uint32 next_refresh_time = 14; // OK
uint32 hcoin = 13;
uint32 buy_limit = 1; uint32 bought_num = 2; // OK (1x maybe ok too but this limit other, 7=mora)
uint32 max_level = 5; uint32 buy_limit = 9; // ?
uint32 min_level = 4;
uint32 scoin = 9; uint32 max_level = 5; // OK
uint32 mcoin = 144; uint32 min_level = 4; // OK
uint32 secondary_sheet_id = 663;
uint32 single_limit = 133; uint32 hcoin = 13; // LOCK
uint32 discount_id = 150; uint32 scoin = 7; // LOCK
uint32 discount_end_time = 821; uint32 mcoin = 8; // LOCK
uint32 discount_begin_time = 410;
//Hcoin: Primogem
//Scoin: Mora
//Mcoin: Genesis crystal
//uint32 secondary_sheet_id = 663;
//uint32 single_limit = 133;
//uint32 discount_id = 150;
//uint32 discount_end_time = 821;
//uint32 discount_begin_time = 410;
} }

View File

@ -1,7 +1,5 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
// ? // ?
message StrengthenPointData { message StrengthenPointData {

View File

@ -1,29 +1,22 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "TowerCurLevelRecord.proto"; import "TowerCurLevelRecord.proto";
import "TowerFloorRecord.proto"; import "TowerFloorRecord.proto";
import "TowerMonthlyBrief.proto"; import "TowerMonthlyBrief.proto";
// 4.7.0 // 4.7.0
// CmdId: 2253 // CmdId: 2253
message TowerAllDataRsp { message TowerAllDataRsp {
uint32 tower_schedule_id = 3; uint32 tower_schedule_id = 4;
bool is_finished_entrance_floor = 10; bool is_finished_entrance_floor = 10;
uint32 valid_floor_record_list = 4; // sus uint32 valid_floor_record_list = 6; // 1 SUS
TowerCurLevelRecord cur_level_record = 1; TowerCurLevelRecord cur_level_record = 1;
int32 retcode = 11; int32 retcode = 11;
map<uint32, uint32> skip_floor_granted_reward_item_map = 14; // sus map<uint32, uint32> skip_floor_granted_reward_item_map = 14; // sus
bool is_first_interact = 7; bool is_first_interact = 7;
//uint32 NNIGLOKAEAI = 8;
map<uint32, uint32> floor_open_time_map = 15; // sus map<uint32, uint32> floor_open_time_map = 15; // sus
//uint32 ANOHIMHLMID = 10; uint32 next_schedule_change_time = 3; // OK
//uint32 MICBOPDAEFN = 11;
uint32 next_schedule_change_time = 12; // sus
TowerMonthlyBrief monthly_brief = 8; TowerMonthlyBrief monthly_brief = 8;
repeated TowerFloorRecord tower_floor_record_list = 5; repeated TowerFloorRecord tower_floor_record_list = 5;
//uint32 LKDMPGCGDCJ = 15;
uint32 schedule_start_time = 1082; uint32 schedule_start_time = 1082;
TowerMonthlyBrief last_schedule_monthly_brief = 1040; TowerMonthlyBrief last_schedule_monthly_brief = 1040;
} }

View File

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "TowerTeam.proto"; import "TowerTeam.proto";
// 4.7.0 // 4.7.0
message TowerCurLevelRecord { message TowerCurLevelRecord {
uint32 cur_floor_id = 1; // sus uint32 cur_floor_id = 1; // sus

View File

@ -1,11 +1,8 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "TowerCurLevelRecord.proto"; import "TowerCurLevelRecord.proto";
// 4.7.0
// 4.6.0 // CmdId: 8595
// CmdId: 24979
message TowerCurLevelRecordChangeNotify { message TowerCurLevelRecordChangeNotify {
TowerCurLevelRecord cur_level_record = 9; TowerCurLevelRecord cur_level_record = 7;
} }

View File

@ -1,9 +1,7 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0
// 4.6.0 // CmdId: 20408
// CmdId: 5485
message TowerEnterLevelReq { message TowerEnterLevelReq {
uint32 enter_point_id = 13; uint32 enter_point_id = 14;
} }

View File

@ -1,12 +1,11 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0
// 4.6.0 // CmdId: 5746
// CmdId: 21658 // ADFHGDCDAOA
message TowerEnterLevelRsp { message TowerEnterLevelRsp {
repeated uint32 tower_buff_id_list = 7; repeated uint32 tower_buff_id_list = 4;
uint32 floor_id = 9; uint32 floor_id = 11;
uint32 level_index = 11; uint32 level_index = 2;
int32 retcode = 15; int32 retcode = 8;
} }

View File

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "TowerLevelRecord.proto"; import "TowerLevelRecord.proto";
// 4.7.0 // 4.7.0
message TowerFloorRecord { message TowerFloorRecord {
map<uint32, uint32> passed_level_map = 2; map<uint32, uint32> passed_level_map = 2;

View File

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "TowerFloorRecord.proto"; import "TowerFloorRecord.proto";
// 4.7.0 // 4.7.0
// CmdId: 1981 // CmdId: 1981
// AIIOPKKFPFF // AIIOPKKFPFF

View File

@ -1,17 +1,15 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "ItemParam.proto"; import "ItemParam.proto";
// 4.7.0
// 4.6.0 // CmdId: 4173
// CmdId: 25369 // ?
message TowerLevelEndNotify { message TowerLevelEndNotify {
repeated uint32 finished_star_cond_list = 3; repeated uint32 finished_star_cond_list = 1;
repeated ItemParam reward_item_list = 7; repeated ItemParam reward_item_list = 13;
uint32 next_floor_id = 9; // FJLBPFJCOEB sus (9, 15) uint32 next_floor_id = 4; // sus
bool is_success = 13; bool is_success = 10;
uint32 continue_state = 15; // MMIKGNOABLJ sus (9, 15) uint32 continue_state = 8; // sus
enum ContinueStateType { enum ContinueStateType {
CONTINUE_STATE_TYPE_CAN_NOT_CONTINUE = 0; CONTINUE_STATE_TYPE_CAN_NOT_CONTINUE = 0;

View File

@ -1,7 +1,5 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
message TowerLevelRecord { message TowerLevelRecord {
uint32 level_id = 13; uint32 level_id = 13;

View File

@ -1,11 +1,10 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0
// 4.6.0 // DNCIPFNDOEC
message TowerLevelStarCondData { message TowerLevelStarCondData {
bool is_fail = 4; // sus bool is_fail = 6; // sus
uint32 cond_value = 5; // sus bool is_pause = 10; // sus
bool is_pause = 9; // sus uint32 cond_value = 3; // sus
uint32 star_cond_index = 12; // sus uint32 star_cond_index = 14; // sus
} }

View File

@ -1,13 +1,11 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "TowerLevelStarCondData.proto"; import "TowerLevelStarCondData.proto";
// 4.7.0
// 4.6.0 // CmdId: 29627
// CmdId: 9959 // IJCOJMJFIDB
message TowerLevelStarCondNotify { message TowerLevelStarCondNotify {
repeated TowerLevelStarCondData cond_data_list = 9; repeated TowerLevelStarCondData cond_data_list = 11;
uint32 floor_id = 10; uint32 floor_id = 9;
uint32 level_index = 13; uint32 level_index = 5;
} }

View File

@ -1,22 +1,7 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2027 // 4.7.0
// Obf: NMHAKMEJMMM // CmdId: 22701x or 379x or 24532x or 20682
// Obf: ?
message TowerMiddleLevelChangeTeamNotify { message TowerMiddleLevelChangeTeamNotify {
} }

View File

@ -1,11 +1,11 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0
// 4.6.0 // ?
message TowerMonthlyBrief { message TowerMonthlyBrief {
uint32 tower_schedule_id = 3; uint32 tower_schedule_id = 14; // OK
uint32 best_level_index = 11; // SUS
uint32 best_floor_index = 12; uint32 best_level_index = 2;
uint32 total_star_count = 14; uint32 best_floor_index = 8;
uint32 total_star_count = 15;
} }

View File

@ -1,7 +1,5 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0 // 4.7.0
message TowerTeam { message TowerTeam {
uint32 tower_team_id = 5; uint32 tower_team_id = 5;

View File

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
import "TowerTeam.proto"; import "TowerTeam.proto";
// 4.7.0 // 4.7.0
// CmdId: 28157 // CmdId: 28157
// OACGHLELOPK // OACGHLELOPK

View File

@ -1,8 +1,8 @@
syntax = "proto3"; syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// 4.7.0
// CmdId: 7953 // CmdId: 26939
// ?
message TrialAvatarFirstPassDungeonNotify { message TrialAvatarFirstPassDungeonNotify {
uint32 trial_avatar_index_id = 10; uint32 trial_avatar_index_id = 13;
} }