syntax = "proto3";
package lq;
service CustomizedContestManagerApi {
rpc loginContestManager (ReqContestManageLogin) returns (ResContestManageLogin);
rpc oauth2AuthContestManager (ReqContestManageOauth2Auth) returns (ResContestManageOauth2Auth);
rpc oauth2LoginContestManager (ReqContestManageOauth2Login) returns (ResContestManageOauth2Login);
rpc logoutContestManager (ReqCommon) returns (ResCommon);
rpc fetchRelatedContestList (ReqCommon) returns (ResFetchRelatedContestList);
rpc createContest (ReqCreateCustomizedContest) returns (ResCreateCustomizedContest);
rpc deleteContest (ReqDeleteCustomizedContest) returns (ResCommon);
rpc prolongContest (ReqProlongContest) returns (ResProlongContest);
rpc manageContest (ReqManageContest) returns (ResManageContest);
rpc fetchContestInfo (ReqCommon) returns (ResManageContest);
rpc exitManageContest (ReqCommon) returns (ResCommon);
rpc fetchContestGameRule (ReqCommon) returns (ResFetchContestGameRule);
rpc updateContestGameRule (ReqUpdateContestGameRule) returns (ResCommon);
rpc searchAccountByNickname (ReqSearchAccountByNickname) returns (ResSearchAccountByNickname);
rpc searchAccountByEid (ReqSearchAccountByEid) returns (ResSearchAccountByEid);
rpc fetchContestPlayer (ReqCommon) returns (ResFetchCustomizedContestPlayer);
rpc updateContestPlayer (ReqUpdateCustomizedContestPlayer) returns (ResCommon);
rpc startManageGame (ReqCommon) returns (ResStartManageGame);
rpc stopManageGame (ReqCommon) returns (ResCommon);
rpc lockGamePlayer (ReqLockGamePlayer) returns (ResCommon);
rpc unlockGamePlayer (ReqUnlockGamePlayer) returns (ResCommon);
rpc createContestGame (ReqCreateContestGame) returns (ResCreateContestGame);
rpc fetchContestGameRecords (ReqFetchCustomizedContestGameRecordList) returns (ResFetchCustomizedContestGameRecordList);
rpc removeContestGameRecord (ReqRemoveContestGameRecord) returns (ResCommon);
rpc fetchContestNotice (ReqFetchContestNotice) returns (ResFetchContestNotice);
rpc updateContestNotice (ReqUpdateCustomizedContestNotice) returns (ResCommon);
rpc fetchContestManager (ReqCommon) returns (ResFetchCustomizedContestManager);
rpc updateContestManager (ReqUpdateCustomizedContestManager) returns (ResCommon);
rpc fetchChatSetting (ReqCommon) returns (ResCustomizedContestChatInfo);
rpc updateChatSetting (ReqUpdateCustomizedContestChatSetting) returns (ResUpdateCustomizedContestChatSetting);
rpc updateGameTag (ReqUpdateGameTag) returns (ResCommon);
rpc terminateGame (ReqTerminateContestGame) returns (ResCommon);
rpc pauseGame (ReqPauseContestGame) returns (ResCommon);
rpc resumeGame (ReqResumeContestGame) returns (ResCommon);
rpc fetchCurrentRankList (ReqCommon) returns (ResFetchCurrentRankList);
rpc fetchContestLastModify (ReqCommon) returns (ResFetchContestLastModify);
rpc fetchContestObserver (ReqCommon) returns (ResFetchContestObserver);
rpc addContestObserver (ReqAddContestObserver) returns (ResAddContestObserver);
rpc removeContestObserver (ReqRemoveContestObserver) returns (ResCommon);
rpc fetchContestChatHistory (ReqCommon) returns (ResFetchContestChatHistory);
rpc clearChatHistory (ReqClearChatHistory) returns (ResCommon);
}
message CustomizedContest {
uint32 unique_id = 1;
uint32 creator_id = 2;
uint32 contest_id = 3;
string contest_name = 4;
uint32 state = 5;
uint32 create_time = 6;
uint32 start_time = 7;
uint32 finish_time = 8;
bool open = 9;
uint32 rank_rule = 10;
uint32 deadline = 11;
bool auto_match = 12;
bool auto_disable_end_chat = 13;
uint32 contest_type = 14;
repeated uint32 hidden_zones = 15;
repeated uint32 banned_zones = 16;
uint32 observer_switch = 17;
uint32 emoji_switch = 18;
uint32 player_roster_type = 19;
}
message ContestGameInfo {
string game_uuid = 1;
repeated Player players = 2;
uint32 start_time = 3;
uint32 end_time = 4;
message Player {
uint32 account_id = 1;
string nickname = 2;
}
}
message ContestPlayerInfo {
uint32 account_id = 1;
string nickname = 2;
}
message ContestMatchingPlayer {
uint32 account_id = 1;
string nickname = 2;
Controller controller = 3;
message Controller {
uint32 account_id = 1;
string nickname = 2;
}
}
message ReqContestManageLogin {
string account = 1;
string password = 2;
bool gen_access_token = 3;
uint32 type = 4;
}
message ResContestManageLogin {
Error error = 1;
uint32 account_id = 2;
string nickname = 3;
string access_token = 4;
uint32 diamond = 5;
uint32 last_create_time = 6;
}
message ReqContestManageOauth2Auth {
uint32 type = 1;
string code = 2;
string uid = 3;
}
message ResContestManageOauth2Auth {
Error error = 1;
string access_token = 2;
}
message ReqContestManageOauth2Login {
uint32 type = 1;
string access_token = 2;
bool reconnect = 3;
}
message ResContestManageOauth2Login {
Error error = 1;
uint32 account_id = 2;
string nickname = 3;
string access_token = 4;
uint32 diamond = 5;
uint32 last_create_time = 6;
}
message ResFetchRelatedContestList {
Error error = 1;
repeated CustomizedContest contests = 2;
}
message ReqCreateCustomizedContest {
string contest_name = 1;
uint32 start_time = 2;
uint32 finish_time = 3;
bool open = 4;
uint32 rank_rule = 5;
GameRuleSetting game_rule_setting = 6;
}
message ResCreateCustomizedContest {
Error error = 1;
CustomizedContest contest = 2;
uint32 diamond = 3;
}
message ReqDeleteCustomizedContest {
uint32 unique_id = 1;
}
message ReqProlongContest {
uint32 unique_id = 1;
}
message ResProlongContest {
Error error = 1;
uint32 deadline = 2;
}
message ReqManageContest {
uint32 unique_id = 1;
}
message ResManageContest {
Error error = 1;
CustomizedContest contest = 2;
}
message ResFetchContestGameRule {
Error error = 1;
GameRuleSetting game_rule_setting = 2;
}
message ReqUpdateContestGameRule {
string contest_name = 1;
uint32 start_time = 2;
uint32 finish_time = 3;
bool open = 4;
uint32 rank_rule = 5;
GameRuleSetting game_rule_setting = 6;
bool auto_match = 7;
bool auto_disable_end_chat = 8;
uint32 contest_type = 9;
string banned_zones = 10;
string hidden_zones = 11;
bool emoji_switch = 12;
uint32 player_roster_type = 13;
}
message ReqSearchAccountByNickname {
repeated string query_nicknames = 1;
}
message ResSearchAccountByNickname {
Error error = 1;
repeated Item search_result = 3;
message Item {
uint32 account_id = 1;
string nickname = 2;
}
}
message ReqSearchAccountByEid {
repeated uint32 eids = 1;
}
message ResSearchAccountByEid {
Error error = 1;
repeated Item search_result = 3;
message Item {
uint32 account_id = 1;
string nickname = 2;
}
}
message ResFetchCustomizedContestPlayer {
Error error = 1;
repeated ContestPlayerInfo players = 2;
}
message ReqUpdateCustomizedContestPlayer {
uint32 setting_type = 1;
repeated string nicknames = 2;
repeated uint32 account_ids = 3;
}
message ResUpdateCustomizedContestPlayer {
Error error = 1;
repeated uint32 failed_index = 2;
}
message ResStartManageGame {
Error error = 1;
repeated ContestMatchingPlayer players = 2;
repeated ContestGameInfo games = 3;
}
message ReqLockGamePlayer {
uint32 account_id = 1;
}
message ReqUnlockGamePlayer {
uint32 account_id = 1;
}
message ReqCreateContestGame {
repeated Slot slots = 1;
string tag = 2;
bool random_position = 3;
bool open_live = 4;
bool chat_broadcast_for_end = 5;
uint32 ai_level = 6;
message Slot {
uint32 account_id = 1;
uint32 start_point = 2;
uint32 seat = 3;
}
}
message ResCreateContestGame {
Error error = 1;
string game_uuid = 2;
}
message ReqFetchCustomizedContestGameRecordList {
uint32 last_index = 2;
}
message ResFetchCustomizedContestGameRecordList {
Error error = 1;
uint32 next_index = 2;
repeated Item record_list = 3;
message Item {
RecordGame record = 1;
string tag = 2;
}
}
message ReqRemoveContestGameRecord {
string uuid = 1;
}
message ReqFetchContestNotice {
repeated uint32 notice_types = 1;
}
message ResFetchContestNotice {
Error error = 1;
repeated string notices = 2;
}
message ReqUpdateCustomizedContestNotice {
uint32 notice_type = 1;
string content = 2;
}
message ResFetchCustomizedContestManager {
Error error = 1;
repeated ContestPlayerInfo players = 2;
}
message ReqUpdateCustomizedContestManager {
uint32 setting_type = 1;
repeated string nicknames = 2;
repeated uint32 account_ids = 3;
}
message ResCustomizedContestChatInfo {
Error error = 1;
uint32 chat_limit_type = 2;
repeated Item chat_limit_roster = 3;
message Item {
uint32 account_id = 1;
string nickname = 2;
}
}
message ReqUpdateCustomizedContestChatSetting {
uint32 setting_type = 1;
repeated string nicknames = 2;
repeated uint32 account_ids = 3;
uint32 chat_limit_type = 4;
}
message ResUpdateCustomizedContestChatSetting {
Error error = 1;
repeated uint32 failed_index = 2;
}
message ReqUpdateGameTag {
string uuid = 1;
string tag = 2;
}
message ReqTerminateContestGame {
string uuid = 1;
}
message ReqPauseContestGame {
string uuid = 1;
}
message ReqResumeContestGame {
string uuid = 1;
}
message ResFetchCurrentRankList {
Error error = 1;
repeated AccountRankData rank_list = 2;
uint32 rank_rule = 3;
message AccountRankData {
uint32 account_id = 1;
string nickname = 2;
int32 total_point = 3;
uint32 total_count = 4;
}
}
message ResFetchContestLastModify {
ContestLastModify modify = 1;
message ContestLastModify {
string contest_name = 1;
string external_notice = 2;
string internal_notice = 3;
string manager_notice = 4;
string reason = 5;
uint32 status = 6;
}
}
message ResFetchContestObserver {
Error error = 1;
repeated Observer observers = 2;
message Observer {
uint32 account_id = 1;
string nickname = 2;
}
}
message ReqAddContestObserver {
repeated Observer observers = 1;
message Observer {
uint32 account_id = 1;
string nickname = 2;
}
}
message ResAddContestObserver {
Error error = 1;
repeated Observer success = 2;
message Observer {
uint32 account_id = 1;
string nickname = 2;
}
}
message ReqRemoveContestObserver {
repeated uint32 observers = 1;
}
message ResFetchContestChatHistory {
Error error = 1;
repeated bytes chat_history = 2;
}
message ReqClearChatHistory {
uint32 unique_id = 1;
}
message NotifyContestMatchingPlayer {
uint32 unique_id = 1;
uint32 type = 2;
uint32 account_id = 3;
string nickname = 4;
}
message NotifyContestMatchingPlayerLock {
uint32 unique_id = 1;
uint32 type = 2;
uint32 account_id = 3;
uint32 manager_id = 4;
}
message NotifyContestGameStart {
uint32 unique_id = 1;
ContestGameInfo game_info = 2;
}
message NotifyContestGameEnd {
uint32 unique_id = 1;
string game_uuid = 2;
}
message NotifyContestNoticeUpdate {
uint32 unique_id = 1;
uint32 notice_type = 2;
string content = 3;
}
message NotifyContestManagerKick {
uint32 reason = 1;
}
message Error {
uint32 code = 1;
repeated uint32 u32_params = 2;
repeated string str_params = 3;
string json_param = 4;
}
message Wrapper {
string name = 1;
bytes data = 2;
}
message NetworkEndpoint {
string family = 1;
string address = 2;
uint32 port = 3;
}
message ReqCommon {
}
message ResCommon {
Error error = 1;
}
message ResAccountUpdate {
Error error = 1;
AccountUpdate update = 2;
}
message AntiAddiction {
uint32 online_duration = 1;
}
message AccountMahjongStatistic {
repeated uint32 final_position_counts = 1;
RoundSummary recent_round = 2;
HuSummary recent_hu = 3;
HighestHuRecord highest_hu = 4;
Liqi20Summary recent_20_hu_summary = 6;
LiQi10Summary recent_10_hu_summary = 7;
repeated GameResult recent_10_game_result = 8;
message RoundSummary {
uint32 total_count = 1;
uint32 rong_count = 2;
uint32 zimo_count = 3;
uint32 fangchong_count = 4;
}
message HuSummary {
uint32 total_count = 1;
uint32 dora_round_count = 2;
uint32 total_fan = 3;
}
message HighestHuRecord {
uint32 fanshu = 1;
uint32 doranum = 2;
string title = 3;
repeated string hands = 4;
repeated string ming = 5;
string hupai = 6;
uint32 title_id = 7;
}
message Liqi20Summary {
uint32 total_count = 1;
uint32 total_lidora_count = 2;
uint32 average_hu_point = 3;
}
message LiQi10Summary {
uint32 total_xuanshang = 1;
uint32 total_fanshu = 2;
}
message GameResult {
uint32 rank = 1;
int32 final_point = 2;
}
}
message AccountStatisticData {
uint32 mahjong_category = 1;
uint32 game_category = 2;
AccountMahjongStatistic statistic = 3;
uint32 game_type = 4;
}
message AccountLevel {
uint32 id = 1;
uint32 score = 2;
}
message ViewSlot {
uint32 slot = 1;
uint32 item_id = 2;
}
message Account {
uint32 account_id = 1;
string nickname = 2;
uint32 login_time = 3;
uint32 logout_time = 4;
uint32 room_id = 5;
AntiAddiction anti_addiction = 6;
uint32 title = 7;
string signature = 8;
string email = 9;
uint32 email_verify = 10;
uint32 gold = 11;
uint32 diamond = 12;
uint32 avatar_id = 13;
uint32 vip = 14;
int32 birthday = 15;
string phone = 16;
uint32 phone_verify = 17;
repeated PlatformDiamond platform_diamond = 18;
AccountLevel level = 21;
AccountLevel level3 = 22;
uint32 avatar_frame = 23;
uint32 skin_ticket = 24;
repeated PlatformSkinTicket platform_skin_ticket = 25;
uint32 verified = 26;
repeated ChallengeLevel challenge_levels = 27;
repeated AchievementCount achievement_count = 28;
uint32 frozen_state = 29;
message PlatformDiamond {
uint32 id = 1;
uint32 count = 2;
}
message PlatformSkinTicket {
uint32 id = 1;
uint32 count = 2;
}
message ChallengeLevel {
uint32 season = 1;
uint32 level = 2;
uint32 rank = 3;
}
message AchievementCount {
uint32 rare = 1;
uint32 count = 2;
}
}
message AccountOwnerData {
repeated uint32 unlock_characters = 1;
}
message AccountUpdate {
repeated NumericalUpdate numerical = 1;
CharacterUpdate character = 2;
BagUpdate bag = 3;
AchievementUpdate achievement = 4;
AccountShiLian shilian = 5;
DailyTaskUpdate daily_task = 6;
TitleUpdate title = 7;
repeated uint32 new_recharged_list = 8;
TaskUpdate activity_task = 9;
TaskUpdate activity_flip_task = 10;
TaskUpdate activity_period_task = 11;
TaskUpdate activity_random_task = 12;
AccountChallengeUpdate challenge = 13;
AccountABMatchUpdate ab_match = 14;
lq.AccountActivityUpdate activity = 15;
SegmentTaskUpdate activity_segment_task = 16;
message NumericalUpdate {
uint32 id = 1;
uint32 final = 3;
}
message CharacterUpdate {
repeated Character characters = 2;
repeated uint32 skins = 3;
repeated uint32 finished_endings = 4;
repeated uint32 rewarded_endings = 5;
}
message AchievementUpdate {
repeated AchievementProgress progresses = 1;
repeated uint32 rewarded_group = 2;
}
message DailyTaskUpdate {
repeated TaskProgress progresses = 1;
repeated uint32 task_list = 2;
}
message TitleUpdate {
repeated uint32 new_titles = 1;
repeated uint32 remove_titles = 2;
}
message TaskUpdate {
repeated TaskProgress progresses = 1;
repeated uint32 task_list = 2;
}
message AccountChallengeUpdate {
repeated TaskProgress progresses = 1;
uint32 level = 2;
uint32 refresh_count = 3;
uint32 match_count = 4;
uint32 ticket_id = 5;
repeated uint32 task_list = 6;
repeated uint32 rewarded_season = 7;
}
message AccountABMatchUpdate {
uint32 match_id = 1;
uint32 match_count = 2;
uint32 buy_in_count = 3;
uint32 point = 4;
bool rewarded = 5;
repeated MatchPoint match_max_point = 6;
bool quit = 7;
message MatchPoint {
uint32 match_id = 1;
uint32 point = 2;
}
}
message SegmentTaskUpdate {
repeated lq.SegmentTaskProgress progresses = 1;
repeated uint32 task_list = 2;
}
}
message GameMetaData {
uint32 room_id = 1;
uint32 mode_id = 2;
uint32 contest_uid = 3;
}
message AccountPlayingGame {
string game_uuid = 1;
uint32 category = 2;
GameMetaData meta = 3;
}
message AccountCacheView {
uint32 cache_version = 1;
uint32 account_id = 2;
string nickname = 3;
uint32 login_time = 4;
uint32 logout_time = 5;
bool is_online = 6;
uint32 room_id = 7;
uint32 title = 8;
uint32 avatar_id = 9;
uint32 vip = 10;
AccountLevel level = 11;
AccountPlayingGame playing_game = 12;
AccountLevel level3 = 13;
uint32 avatar_frame = 14;
uint32 verified = 15;
uint32 ban_deadline = 16;
uint32 comment_ban = 17;
uint32 ban_state = 18;
}
message PlayerBaseView {
uint32 account_id = 1;
uint32 avatar_id = 2;
uint32 title = 3;
string nickname = 4;
AccountLevel level = 5;
AccountLevel level3 = 6;
uint32 avatar_frame = 7;
uint32 verified = 8;
uint32 is_banned = 9;
}
message PlayerGameView {
uint32 account_id = 1;
uint32 avatar_id = 2;
uint32 title = 3;
string nickname = 4;
AccountLevel level = 5;
Character character = 6;
AccountLevel level3 = 7;
uint32 avatar_frame = 8;
uint32 verified = 9;
repeated ViewSlot views = 10;
}
message GameSetting {
uint32 emoji_switch = 1;
}
message GameMode {
uint32 mode = 1;
bool ai = 4;
string extendinfo = 5;
GameDetailRule detail_rule = 6;
GameTestingEnvironmentSet testing_environment = 7;
GameSetting game_setting = 8;
}
message GameTestingEnvironmentSet {
uint32 paixing = 1;
uint32 left_count = 2;
}
message GameDetailRule {
uint32 time_fixed = 1;
uint32 time_add = 2;
uint32 dora_count = 3;
uint32 shiduan = 4;
uint32 init_point = 5;
uint32 fandian = 6;
bool can_jifei = 7;
uint32 tianbian_value = 8;
uint32 liqibang_value = 9;
uint32 changbang_value = 10;
uint32 noting_fafu_1 = 11;
uint32 noting_fafu_2 = 12;
uint32 noting_fafu_3 = 13;
bool have_liujumanguan = 14;
bool have_qieshangmanguan = 15;
bool have_biao_dora = 16;
bool have_gang_biao_dora = 17;
bool ming_dora_immediately_open = 18;
bool have_li_dora = 19;
bool have_gang_li_dora = 20;
bool have_sifenglianda = 21;
bool have_sigangsanle = 22;
bool have_sijializhi = 23;
bool have_jiuzhongjiupai = 24;
bool have_sanjiahele = 25;
bool have_toutiao = 26;
bool have_helelianzhuang = 27;
bool have_helezhongju = 28;
bool have_tingpailianzhuang = 29;
bool have_tingpaizhongju = 30;
bool have_yifa = 31;
bool have_nanruxiru = 32;
uint32 jingsuanyuandian = 33;
int32 shunweima_2 = 34;
int32 shunweima_3 = 35;
int32 shunweima_4 = 36;
bool bianjietishi = 37;
uint32 ai_level = 38;
bool have_zimosun = 39;
bool disable_multi_yukaman = 40;
uint32 fanfu = 41;
uint32 guyi_mode = 42;
uint32 dora3_mode = 43;
uint32 begin_open_mode = 44;
uint32 jiuchao_mode = 45;
uint32 muyu_mode = 46;
uint32 open_hand = 47;
uint32 xuezhandaodi = 48;
uint32 huansanzhang = 49;
uint32 chuanma = 50;
uint32 reveal_discard = 51;
bool disable_leijiyiman = 60;
}
message Room {
uint32 room_id = 1;
uint32 owner_id = 2;
GameMode mode = 3;
uint32 max_player_count = 4;
repeated PlayerGameView persons = 5;
repeated uint32 ready_list = 6;
bool is_playing = 7;
bool public_live = 8;
uint32 robot_count = 9;
uint32 tournament_id = 10;
uint32 seq = 11;
}
message GameEndResult {
repeated PlayerItem players = 1;
message PlayerItem {
uint32 seat = 1;
int32 total_point = 2;
int32 part_point_1 = 3;
int32 part_point_2 = 4;
int32 grading_score = 5;
int32 gold = 6;
}
}
message GameConnectInfo {
string connect_token = 2;
string game_uuid = 3;
string location = 4;
}
message ItemGainRecord {
uint32 item_id = 1;
uint32 count = 2;
}
message ItemGainRecords {
uint32 record_time = 1;
uint32 limit_source_id = 2;
repeated ItemGainRecord records = 3;
}
message FakeRandomRecords {
uint32 item_id = 1;
uint32 special_item_id = 2;
uint32 gain_count = 3;
repeated uint32 gain_history = 4;
}
message Item {
uint32 item_id = 1;
uint32 stack = 2;
}
message Bag {
repeated Item items = 1;
repeated ItemGainRecords daily_gain_record = 2;
}
message BagUpdate {
repeated Item update_items = 1;
repeated ItemGainRecords update_daily_gain_record = 2;
}
message RewardSlot {
uint32 id = 1;
uint32 count = 2;
}
message OpenResult {
RewardSlot reward = 1;
RewardSlot replace = 2;
}
message RewardPlusResult {
uint32 id = 1;
uint32 count = 2;
Exchange exchange = 3;
message Exchange {
uint32 id = 1;
uint32 count = 2;
uint32 exchange = 3;
}
}
message ExecuteReward {
RewardSlot reward = 1;
RewardSlot replace = 2;
uint32 replace_count = 3;
}
message I18nContext {
string lang = 1;
string context = 2;
}
message Mail {
uint32 mail_id = 1;
uint32 state = 2;
bool take_attachment = 3;
string title = 4;
string content = 5;
repeated RewardSlot attachments = 6;
uint32 create_time = 7;
uint32 expire_time = 8;
uint32 reference_id = 9;
repeated I18nContext title_i18n = 10;
repeated I18nContext content_i18n = 11;
}
message AchievementProgress {
uint32 id = 1;
uint32 counter = 2;
bool achieved = 3;
bool rewarded = 4;
uint32 achieved_time = 5;
}
message AccountStatisticByGameMode {
uint32 mode = 1;
uint32 game_count_sum = 2;
repeated uint32 game_final_position = 3;
uint32 fly_count = 4;
float gold_earn_sum = 5;
uint32 round_count_sum = 6;
float dadian_sum = 7;
repeated RoundEndData round_end = 8;
uint32 ming_count_sum = 9;
uint32 liqi_count_sum = 10;
uint32 xun_count_sum = 11;
uint32 highest_lianzhuang = 12;
uint32 score_earn_sum = 13;
repeated RankScore rank_score = 14;
message RoundEndData {
uint32 type = 1;
uint32 sum = 2;
}
message RankScore {
uint32 rank = 1;
int32 score_sum = 2;
uint32 count = 3;
}
}
message AccountStatisticByFan {
uint32 fan_id = 1;
uint32 sum = 2;
}
message AccountFanAchieved {
uint32 mahjong_category = 1;
repeated AccountStatisticByFan fan = 2;
uint32 liujumanguan = 3;
}
message AccountDetailStatistic {
repeated AccountStatisticByGameMode game_mode = 1;
repeated AccountStatisticByFan fan = 2;
uint32 liujumanguan = 3;
repeated AccountFanAchieved fan_achieved = 4;
}
message AccountDetailStatisticByCategory {
uint32 category = 1;
AccountDetailStatistic detail_statistic = 2;
}
message AccountDetailStatisticV2 {
AccountDetailStatistic friend_room_statistic = 1;
RankStatistic rank_statistic = 2;
CustomizedContestStatistic customized_contest_statistic = 3;
AccountDetailStatistic leisure_match_statistic = 4;
ChallengeStatistic challenge_match_statistic = 5;
AccountDetailStatistic activity_match_statistic = 6;
AccountDetailStatistic ab_match_statistic = 7;
message RankStatistic {
RankData total_statistic = 1;
RankData month_statistic = 2;
uint32 month_refresh_time = 3;
message RankData {
AccountDetailStatistic all_level_statistic = 1;
repeated RankLevelData level_data_list = 2;
message RankLevelData {
uint32 rank_level = 1;
AccountDetailStatistic statistic = 2;
}
}
}
message CustomizedContestStatistic {
AccountDetailStatistic total_statistic = 1;
AccountDetailStatistic month_statistic = 2;
uint32 month_refresh_time = 3;
}
message ChallengeStatistic {
AccountDetailStatistic all_season = 1;
repeated SeasonData season_data_list = 2;
message SeasonData {
uint32 season_id = 1;
AccountDetailStatistic statistic = 2;
}
}
}
message AccountShiLian {
uint32 step = 1;
uint32 state = 2;
}
message ClientDeviceInfo {
string platform = 1;
string hardware = 2;
string os = 3;
string os_version = 4;
bool is_browser = 5;
string software = 6;
string sale_platform = 7;
string hardware_vendor = 8;
string model_number = 9;
}
message ClientVersionInfo {
string resource = 1;
string package = 2;
}
enum GamePlayerState {
NULL = 0;
AUTH = 1;
SYNCING = 2;
READY = 3;
}
message Announcement {
uint32 id = 1;
string title = 2;
string content = 3;
}
message TaskProgress {
uint32 id = 1;
uint32 counter = 2;
bool achieved = 3;
bool rewarded = 4;
bool failed = 5;
}
message GameConfig {
uint32 category = 1;
GameMode mode = 2;
GameMetaData meta = 3;
}
message RPGState {
uint32 player_damaged = 1;
uint32 monster_damaged = 2;
uint32 monster_seq = 3;
}
message RPGActivity {
uint32 activity_id = 1;
string last_show_uuid = 5;
string last_played_uuid = 6;
RPGState current_state = 7;
RPGState last_show_state = 8;
repeated uint32 received_rewards = 9;
}
message ActivityArenaData {
uint32 win_count = 1;
uint32 lose_count = 2;
uint32 activity_id = 3;
uint32 enter_time = 4;
uint32 daily_enter_count = 5;
uint32 daily_enter_time = 6;
uint32 max_win_count = 7;
uint32 total_win_count = 8;
}
message FeedActivityData {
uint32 activity_id = 1;
uint32 feed_count = 2;
CountWithTimeData friend_receive_data = 3;
CountWithTimeData friend_send_data = 4;
repeated GiftBoxData gift_inbox = 5;
message CountWithTimeData {
uint32 count = 1;
uint32 last_update_time = 2;
}
message GiftBoxData {
uint32 id = 1;
uint32 item_id = 2;
uint32 count = 3;
uint32 from_account_id = 4;
uint32 time = 5;
uint32 received = 6;
}
}
message SegmentTaskProgress {
uint32 id = 1;
uint32 counter = 2;
bool achieved = 3;
bool rewarded = 4;
bool failed = 5;
uint32 reward_count = 6;
uint32 achieved_count = 7;
}
message MineActivityData {
repeated Point dig_point = 1;
repeated MineReward map = 2;
uint32 id = 3;
}
message AccountActivityUpdate {
repeated lq.MineActivityData mine_data = 1;
repeated lq.RPGActivity rpg_data = 2;
repeated ActivityFeedData feed_data = 3;
}
message ActivityFeedData {
uint32 activity_id = 1;
uint32 feed_count = 2;
CountWithTimeData friend_receive_data = 3;
CountWithTimeData friend_send_data = 4;
repeated GiftBoxData gift_inbox = 5;
uint32 max_inbox_id = 6;
message CountWithTimeData {
uint32 count = 1;
uint32 last_update_time = 2;
}
message GiftBoxData {
uint32 id = 1;
uint32 item_id = 2;
uint32 count = 3;
uint32 from_account_id = 4;
uint32 time = 5;
uint32 received = 6;
}
}
message AccountActiveState {
uint32 account_id = 1;
uint32 login_time = 2;
uint32 logout_time = 3;
bool is_online = 4;
AccountPlayingGame playing = 5;
}
message Friend {
PlayerBaseView base = 1;
AccountActiveState state = 2;
}
message Point {
uint32 x = 1;
uint32 y = 2;
}
message MineReward {
Point point = 1;
uint32 reward_id = 2;
bool received = 3;
}
message GameLiveUnit {
uint32 timestamp = 1;
uint32 action_category = 2;
bytes action_data = 3;
}
message GameLiveSegment {
repeated GameLiveUnit actions = 1;
}
message GameLiveSegmentUri {
uint32 segment_id = 1;
string segment_uri = 2;
}
message GameLiveHead {
string uuid = 1;
uint32 start_time = 2;
GameConfig game_config = 3;
repeated PlayerGameView players = 4;
repeated uint32 seat_list = 5;
}
message GameNewRoundState {
repeated uint32 seat_states = 1;
}
message GameEndAction {
uint32 state = 1;
}
message GameNoopAction {
}
message CommentItem {
uint32 comment_id = 1;
uint32 timestamp = 2;
PlayerBaseView commenter = 3;
string content = 4;
uint32 is_banned = 5;
}
message RollingNotice {
uint32 id = 1;
string content = 2;
uint32 start_time = 3;
uint32 end_time = 4;
uint32 repeat_interval = 5;
string lang = 6;
}
message BillingGoods {
string id = 1;
string name = 2;
string desc = 3;
string icon = 4;
uint32 resource_id = 5;
uint32 resource_count = 6;
}
message BillShortcut {
uint32 id = 1;
uint32 count = 2;
uint32 dealPrice = 3;
}
message BillingProduct {
BillingGoods goods = 1;
string currency_code = 2;
uint32 currency_price = 3;
uint32 sort_weight = 4;
}
message Character {
uint32 charid = 1;
uint32 level = 2;
uint32 exp = 3;
repeated ViewSlot views = 4;
uint32 skin = 5;
bool is_upgraded = 6;
repeated uint32 extra_emoji = 7;
repeated uint32 rewarded_level = 8;
}
message BuyRecord {
uint32 id = 1;
uint32 count = 2;
}
message ZHPShop {
repeated uint32 goods = 1;
repeated BuyRecord buy_records = 2;
RefreshCount free_refresh = 3;
RefreshCount cost_refresh = 4;
message RefreshCount {
uint32 count = 1;
uint32 limit = 2;
}
}
message MonthTicketInfo {
uint32 id = 1;
uint32 end_time = 2;
uint32 last_pay_time = 3;
}
message ShopInfo {
ZHPShop zhp = 1;
repeated BuyRecord buy_records = 2;
uint32 last_refresh_time = 3;
}
message ChangeNicknameRecord {
string from = 1;
string to = 2;
uint32 time = 3;
}
message ServerSettings {
PaymentSetting payment_setting = 3;
PaymentSettingV2 payment_setting_v2 = 4;
NicknameSetting nickname_setting = 5;
}
message NicknameSetting {
uint32 enable = 1;
repeated string nicknames = 2;
}
message PaymentSettingV2 {
uint32 open_payment = 1;
repeated PaymentSettingUnit payment_platforms = 2;
message PaymentMaintain {
uint32 start_time = 1;
uint32 end_time = 2;
uint32 goods_click_action = 3;
string goods_click_text = 4;
}
message PaymentSettingUnit {
string platform = 1;
bool is_show = 2;
uint32 goods_click_action = 3;
string goods_click_text = 4;
PaymentMaintain maintain = 5;
bool enable_for_frozen_account = 6;
}
}
message PaymentSetting {
uint32 open_payment = 1;
uint32 payment_info_show_type = 2;
string payment_info = 3;
WechatData wechat = 4;
AlipayData alipay = 5;
message WechatData {
bool disable_create = 1;
uint32 payment_source_platform = 2;
bool enable_credit = 3;
}
message AlipayData {
bool disable_create = 1;
uint32 payment_source_platform = 2;
}
}
message AccountSetting {
uint32 key = 1;
uint32 value = 2;
}
message ChestData {
uint32 chest_id = 1;
uint32 total_open_count = 2;
uint32 consume_count = 3;
uint32 face_black_count = 4;
}
message ChestDataV2 {
uint32 chest_id = 1;
uint32 total_open_count = 2;
uint32 face_black_count = 3;
}
message FaithData {
uint32 faith_id = 1;
uint32 total_open_count = 2;
uint32 consume_count = 3;
int32 modify_count = 4;
}
message CustomizedContestBase {
uint32 unique_id = 1;
uint32 contest_id = 2;
string contest_name = 3;
uint32 state = 4;
uint32 creator_id = 5;
uint32 create_time = 6;
uint32 start_time = 7;
uint32 finish_time = 8;
bool open = 9;
uint32 contest_type = 10;
}
message CustomizedContestExtend {
uint32 unique_id = 1;
string public_notice = 2;
}
message CustomizedContestAbstract {
uint32 unique_id = 1;
uint32 contest_id = 2;
string contest_name = 3;
uint32 state = 4;
uint32 creator_id = 5;
uint32 create_time = 6;
uint32 start_time = 7;
uint32 finish_time = 8;
bool open = 9;
string public_notice = 10;
uint32 contest_type = 11;
}
message CustomizedContestDetail {
uint32 unique_id = 1;
uint32 contest_id = 2;
string contest_name = 3;
uint32 state = 4;
uint32 creator_id = 5;
uint32 create_time = 6;
uint32 start_time = 7;
uint32 finish_time = 8;
bool open = 9;
uint32 rank_rule = 10;
GameMode game_mode = 11;
string private_notice = 12;
uint32 observer_switch = 13;
uint32 emoji_switch = 14;
uint32 contest_type = 15;
}
message CustomizedContestPlayerReport {
uint32 rank_rule = 1;
uint32 rank = 2;
int32 point = 3;
repeated uint32 game_ranks = 4;
uint32 total_game_count = 5;
}
message RecordGame {
string uuid = 1;
uint32 start_time = 2;
uint32 end_time = 3;
GameConfig config = 5;
repeated AccountInfo accounts = 11;
GameEndResult result = 12;
message AccountInfo {
uint32 account_id = 1;
uint32 seat = 2;
string nickname = 3;
uint32 avatar_id = 4;
Character character = 5;
uint32 title = 6;
AccountLevel level = 7;
AccountLevel level3 = 8;
uint32 avatar_frame = 9;
uint32 verified = 10;
repeated ViewSlot views = 11;
}
}
message CustomizedContestGameStart {
repeated Item players = 1;
message Item {
uint32 account_id = 1;
string nickname = 2;
}
}
message CustomizedContestGameEnd {
repeated Item players = 1;
message Item {
uint32 account_id = 1;
string nickname = 2;
int32 total_point = 3;
}
}
message Activity {
uint32 activity_id = 1;
uint32 start_time = 2;
uint32 end_time = 3;
string type = 4;
}
message ExchangeRecord {
uint32 exchange_id = 1;
uint32 count = 2;
}
message ActivityAccumulatedPointData {
uint32 activity_id = 1;
int32 point = 2;
repeated uint32 gained_reward_list = 3;
}
message ActivityRankPointData {
uint32 leaderboard_id = 1;
int32 point = 2;
bool gained_reward = 3;
uint32 gainable_time = 4;
}
message GameRoundHuData {
HuPai hupai = 1;
repeated Fan fans = 2;
uint32 score = 3;
uint32 xun = 4;
uint32 title_id = 5;
uint32 fan_sum = 6;
uint32 fu_sum = 7;
uint32 yakuman_count = 8;
uint32 biao_dora_count = 9;
uint32 red_dora_count = 10;
uint32 li_dora_count = 11;
uint32 babei_count = 12;
uint32 xuan_shang_count = 13;
message HuPai {
string tile = 1;
uint32 seat = 2;
uint32 liqi = 3;
}
message Fan {
uint32 id = 1;
uint32 count = 2;
uint32 fan = 3;
}
}
message GameRoundPlayerResult {
uint32 type = 1;
repeated string hands = 2;
repeated string ming = 3;
uint32 liqi_type = 4;
bool is_fulu = 5;
bool is_liujumanguan = 6;
uint32 lian_zhuang = 7;
GameRoundHuData hu = 8;
}
message GameRoundPlayer {
int32 score = 1;
uint32 rank = 2;
GameRoundPlayerResult result = 3;
}
message GameRoundSnapshot {
uint32 ju = 1;
uint32 ben = 2;
repeated GameRoundPlayer players = 3;
}
message GameFinalSnapshot {
string uuid = 1;
uint32 state = 2;
uint32 category = 3;
GameMode mode = 4;
GameMetaData meta = 5;
CalculateParam calculate_param = 6;
uint32 create_time = 7;
uint32 start_time = 8;
uint32 finish_time = 9;
repeated GameSeat seats = 10;
repeated GameRoundSnapshot rounds = 11;
repeated PlayerGameView account_views = 12;
repeated FinalPlayer final_players = 13;
repeated AFKInfo afk_info = 14;
message CalculateParam {
uint32 init_point = 1;
uint32 jingsuanyuandian = 2;
repeated int32 rank_points = 3;
}
message GameSeat {
uint32 type = 1;
uint32 account_id = 2;
NetworkEndpoint notify_endpoint = 3;
string client_address = 4;
bool is_connected = 5;
}
message FinalPlayer {
uint32 seat = 1;
int32 total_point = 2;
int32 part_point_1 = 3;
int32 part_point_2 = 4;
int32 grading_score = 5;
int32 gold = 6;
}
message AFKInfo {
uint32 deal_tile_count = 1;
uint32 moqie_count = 2;
uint32 seat = 3;
}
}
message RecordCollectedData {
string uuid = 1;
string remarks = 2;
uint32 start_time = 3;
uint32 end_time = 4;
}
message ContestDetailRule {
uint32 init_point = 5;
uint32 fandian = 6;
bool can_jifei = 7;
uint32 tianbian_value = 8;
uint32 liqibang_value = 9;
uint32 changbang_value = 10;
uint32 noting_fafu_1 = 11;
uint32 noting_fafu_2 = 12;
uint32 noting_fafu_3 = 13;
bool have_liujumanguan = 14;
bool have_qieshangmanguan = 15;
bool have_biao_dora = 16;
bool have_gang_biao_dora = 17;
bool ming_dora_immediately_open = 18;
bool have_li_dora = 19;
bool have_gang_li_dora = 20;
bool have_sifenglianda = 21;
bool have_sigangsanle = 22;
bool have_sijializhi = 23;
bool have_jiuzhongjiupai = 24;
bool have_sanjiahele = 25;
bool have_toutiao = 26;
bool have_helelianzhuang = 27;
bool have_helezhongju = 28;
bool have_tingpailianzhuang = 29;
bool have_tingpaizhongju = 30;
bool have_yifa = 31;
bool have_nanruxiru = 32;
uint32 jingsuanyuandian = 33;
int32 shunweima_2 = 34;
int32 shunweima_3 = 35;
int32 shunweima_4 = 36;
bool bianjietishi = 37;
uint32 ai_level = 38;
bool have_zimosun = 39;
bool disable_multi_yukaman = 40;
uint32 guyi_mode = 41;
bool disable_leijiyiman = 42;
}
message ContestDetailRuleV2 {
ContestDetailRule game_rule = 1;
ExtraRule extra_rule = 2;
message ExtraRule {
uint32 required_level = 1;
uint32 max_game_count = 2;
}
}
message GameRuleSetting {
uint32 round_type = 1;
bool shiduan = 2;
uint32 dora_count = 3;
uint32 thinking_type = 4;
bool use_detail_rule = 5;
ContestDetailRuleV2 detail_rule_v2 = 6;
}
message RecordTingPaiInfo {
string tile = 1;
bool haveyi = 2;
bool yiman = 3;
uint32 count = 4;
uint32 fu = 5;
uint32 biao_dora_count = 6;
bool yiman_zimo = 7;
uint32 count_zimo = 8;
uint32 fu_zimo = 9;
}
message RecordNoTilePlayerInfo {
bool tingpai = 3;
repeated string hand = 4;
repeated RecordTingPaiInfo tings = 5;
bool liuman = 6;
}
message RecordHuleInfo {
repeated string hand = 1;
repeated string ming = 2;
string hu_tile = 3;
uint32 seat = 4;
bool zimo = 5;
bool qinjia = 6;
bool liqi = 7;
repeated string doras = 8;
repeated string li_doras = 9;
bool yiman = 10;
uint32 count = 11;
repeated RecordFanInfo fans = 12;
uint32 fu = 13;
uint32 point_zimo_qin = 14;
uint32 point_zimo_xian = 15;
uint32 title_id = 16;
uint32 point_sum = 17;
uint32 dadian = 18;
bool is_jue_zhang = 19;
uint32 xun = 20;
uint32 ting_type = 21;
message RecordFanInfo {
uint32 val = 1;
uint32 id = 2;
}
}
message RecordHulesInfo {
int32 seat = 1;
repeated RecordHuleInfo hules = 2;
}
message RecordLiujuInfo {
uint32 seat = 1;
uint32 type = 2;
}
message RecordNoTileInfo {
bool liujumanguan = 1;
repeated RecordNoTilePlayerInfo players = 2;
}
message RecordLiqiInfo {
uint32 seat = 1;
uint32 score = 2;
bool is_w = 3;
bool is_zhen_ting = 4;
uint32 xun = 5;
bool is_success = 6;
}
message RecordGangInfo {
uint32 seat = 1;
uint32 type = 2;
string pai = 3;
bool is_dora = 4;
uint32 xun = 5;
}
message RecordBaBeiInfo {
uint32 seat = 1;
bool is_zi_mo = 2;
bool is_chong = 3;
bool is_bei = 4;
}
message RecordPeiPaiInfo {
uint32 dora_count = 1;
uint32 r_dora_count = 2;
uint32 bei_count = 3;
}
message RecordRoundInfo {
string name = 1;
uint32 chang = 2;
uint32 ju = 3;
uint32 ben = 4;
repeated uint32 scores = 5;
repeated RecordLiqiInfo liqi_infos = 7;
repeated RecordGangInfo gang_infos = 8;
repeated RecordPeiPaiInfo peipai_infos = 9;
repeated RecordBaBeiInfo babai_infos = 10;
RecordHulesInfo hules_info = 11;
RecordLiujuInfo liuju_info = 12;
RecordNoTileInfo no_tile_info = 13;
}
message RecordAnalysisedData {
repeated RecordRoundInfo round_infos = 1;
}
message NotifyCaptcha {
uint32 check_id = 1;
uint32 start_time = 2;
string random_str = 3;
uint32 type = 4;
}
message NotifyRoomGameStart {
string game_url = 1;
string connect_token = 2;
string game_uuid = 3;
string location = 4;
}
message NotifyMatchGameStart {
string game_url = 1;
string connect_token = 2;
string game_uuid = 3;
uint32 match_mode_id = 4;
string location = 5;
}
message NotifyRoomPlayerReady {
uint32 account_id = 1;
bool ready = 2;
AccountReadyState account_list = 3;
uint32 seq = 4;
message AccountReadyState {
uint32 account_id = 1;
bool ready = 2;
}
}
message NotifyRoomPlayerDressing {
uint32 account_id = 1;
bool dressing = 2;
AccountDressingState account_list = 3;
uint32 seq = 4;
message AccountDressingState {
uint32 account_id = 1;
bool dressing = 2;
}
}
message NotifyRoomPlayerUpdate {
repeated PlayerBaseView update_list = 1;
repeated uint32 remove_list = 2;
uint32 owner_id = 3;
uint32 robot_count = 4;
repeated PlayerBaseView player_list = 5;
uint32 seq = 6;
}
message NotifyRoomKickOut {
}
message NotifyFriendStateChange {
uint32 target_id = 1;
AccountActiveState active_state = 2;
}
message NotifyFriendViewChange {
uint32 target_id = 1;
PlayerBaseView base = 2;
}
message NotifyFriendChange {
uint32 account_id = 1;
uint32 type = 2;
Friend friend = 3;
}
message NotifyNewFriendApply {
uint32 account_id = 1;
uint32 apply_time = 2;
uint32 removed_id = 3;
}
message NotifyClientMessage {
PlayerBaseView sender = 1;
uint32 type = 2;
string content = 3;
}
message NotifyAccountUpdate {
AccountUpdate update = 1;
}
message NotifyAnotherLogin {
}
message NotifyAccountLogout {
}
message NotifyAnnouncementUpdate {
repeated AnnouncementUpdate update_list = 1;
message AnnouncementUpdate {
string lang = 1;
string platform = 2;
}
}
message NotifyNewMail {
Mail mail = 1;
}
message NotifyDeleteMail {
repeated uint32 mail_id_list = 1;
}
message NotifyReviveCoinUpdate {
bool has_gained = 1;
}
message NotifyDailyTaskUpdate {
repeated TaskProgress progresses = 1;
uint32 max_daily_task_count = 2;
uint32 refresh_count = 3;
}
message NotifyActivityTaskUpdate {
repeated TaskProgress progresses = 1;
}
message NotifyActivityPeriodTaskUpdate {
repeated TaskProgress progresses = 1;
}
message NotifyAccountRandomTaskUpdate {
repeated TaskProgress progresses = 1;
}
message NotifyActivitySegmentTaskUpdate {
repeated lq.SegmentTaskProgress progresses = 1;
}
message NotifyActivityUpdate {
repeated FeedActivityData list = 1;
message FeedActivityData {
uint32 activity_id = 1;
uint32 feed_count = 2;
CountWithTimeData friend_receive_data = 3;
CountWithTimeData friend_send_data = 4;
repeated GiftBoxData gift_inbox = 5;
message CountWithTimeData {
uint32 count = 1;
uint32 last_update_time = 2;
}
message GiftBoxData {
uint32 id = 1;
uint32 item_id = 2;
uint32 count = 3;
uint32 from_account_id = 4;
uint32 time = 5;
uint32 received = 6;
}
}
}
message NotifyAccountChallengeTaskUpdate {
repeated TaskProgress progresses = 1;
uint32 level = 2;
uint32 refresh_count = 3;
uint32 match_count = 4;
uint32 ticket_id = 5;
repeated uint32 rewarded_season = 6;
}
message NotifyNewComment {
}
message NotifyRollingNotice {
RollingNotice notice = 1;
}
message NotifyGiftSendRefresh {
}
message NotifyShopUpdate {
ShopInfo shop_info = 1;
}
message NotifyVipLevelChange {
uint32 gift_limit = 1;
uint32 friend_max_count = 2;
uint32 zhp_free_refresh_limit = 3;
uint32 zhp_cost_refresh_limit = 4;
float buddy_bonus = 5;
uint32 record_collect_limit = 6;
}
message NotifyServerSetting {
ServerSettings settings = 1;
}
message NotifyPayResult {
uint32 pay_result = 1;
string order_id = 2;
uint32 goods_id = 3;
uint32 new_month_ticket = 4;
repeated ResourceModify resource_modify = 5;
message ResourceModify {
uint32 id = 1;
uint32 count = 2;
uint32 final = 3;
}
}
message NotifyCustomContestAccountMsg {
uint32 unique_id = 1;
uint32 account_id = 2;
string sender = 3;
string content = 4;
uint32 verified = 5;
}
message NotifyCustomContestSystemMsg {
uint32 unique_id = 1;
uint32 type = 2;
string uuid = 3;
CustomizedContestGameStart game_start = 4;
CustomizedContestGameEnd game_end = 5;
}
message NotifyMatchTimeout {
string sid = 1;
}
message NotifyCustomContestState {
uint32 unique_id = 1;
uint32 state = 2;
}
message NotifyActivityChange {
repeated Activity new_activities = 1;
repeated uint32 end_activities = 2;
}
message NotifyAFKResult {
uint32 type = 1;
uint32 ban_end_time = 2;
string game_uuid = 3;
}
message NotifyGameFinishRewardV2 {
uint32 mode_id = 1;
LevelChange level_change = 2;
MatchChest match_chest = 3;
MainCharacter main_character = 4;
CharacterGift character_gift = 5;
message LevelChange {
AccountLevel origin = 1;
AccountLevel final = 2;
uint32 type = 3;
}
message MatchChest {
uint32 chest_id = 1;
uint32 origin = 2;
uint32 final = 3;
bool is_graded = 4;
repeated RewardSlot rewards = 5;
}
message MainCharacter {
uint32 level = 1;
uint32 exp = 2;
uint32 add = 3;
}
message CharacterGift {
uint32 origin = 1;
uint32 final = 2;
uint32 add = 3;
bool is_graded = 4;
}
}
message NotifyActivityRewardV2 {
repeated ActivityReward activity_reward = 1;
message ActivityReward {
uint32 activity_id = 1;
repeated RewardSlot rewards = 2;
}
}
message NotifyActivityPointV2 {
repeated ActivityPoint activity_points = 1;
message ActivityPoint {
uint32 activity_id = 1;
uint32 point = 2;
}
}
message NotifyLeaderboardPointV2 {
repeated LeaderboardPoint leaderboard_points = 1;
message LeaderboardPoint {
uint32 leaderboard_id = 1;
uint32 point = 2;
}
}