package com.wing.proto; //包头的协议号 = 模块号 * 1000 + 子协议号 enum durak_room_user_state { ROOM_USER_STATE_NEW_JOIN = 0; //新加入 ROOM_USER_STATE_NORMAL = 1; //正常 ROOM_USER_STATE_READY = 2; //准备 ROOM_USER_STATE_INGAME = 3; //游戏中 } message string_key_string_value { optional string key = 1; optional string value = 2; } message string_key_int_value { optional string key = 1; optional int64 value = 2; } message int_key_string_value { optional int64 key = 1; optional string value = 2; } message int_key_int_value { optional int64 key = 1; optional int64 value = 2; } message durak_room_user_simple_info { optional int64 account = 1; //账号 optional string name = 2; //昵称 optional string avatar = 3; //头像 optional int32 sex = 4; //性别(0女;1男) optional int64 lvl = 5; //等级 optional int32 seat = 6; //座位 optional durak_room_user_state state = 7; //状态 optional int64 ready_end_time = 8; //准备超时时间 } // 1 请求入口服务器 message entrance_quest { optional int64 account = 1; //账号 optional int64 channel = 2; //登录渠道 optional int64 time = 3; //时间戳 optional string checksum = 4; //校验 } // 2 请求入口服务器返回 message entrance_reply { optional string result = 1; //提示内容 optional string ip = 2; //服务器IP optional int64 port = 3; //服务器端口 } // 3 请求登录 message login_quest { optional int64 account = 1; //账号 optional int64 channel = 2; //登录渠道 optional int64 time = 3; //时间戳 optional string checksum = 4; //校验 optional string language = 5; //语言 optional string name = 6; //昵称 optional int64 version = 7[default = 0]; //0:线上版本,1:审核版本,2:开发版本 optional string notice_md5 = 8; //客户端缓存公告校验码 optional string ver = 9; //版本号 optional bool safe_mode = 10; //安全模式 optional string idfa = 11; //设备号 optional string nationality = 12; //国家区号 optional bool is_simulator = 13; //是否为安卓模拟器登录 } // 4 登录结果 message login_reply { optional string result = 1; // 提示内容 optional int64 server_time = 2; // 服务器时间戳 optional int64 timezone = 3; // 服务器时区 optional bool is_new = 4; // 新用户标识(需要修改昵称,如fb有默认的可用昵称,首次登录时也可能为false) optional int64 sequence = 5; // 登录序号 optional int64 regist_channel = 6; // 注册渠道 optional string create_time = 7; // 注册日期 optional bool is_new_account = 8; // 新用户(新账号第一次登录) } // 5 注销请求 message logout_quest { optional int64 account = 1; //账号 optional string client_id = 2; //包名 optional string token = 3; //token } // 6 注销返回 message logout_reply { optional string result = 1; //提示内容 optional int64 account = 2; //账号 } // 11 查看他人资料 message show_userinfo_quest { optional int64 account = 1; // 账号 } // 12 查看他人资料返回 message show_userinfo_reply { optional int64 account = 1; // 账号 optional string avatar = 2; // 头像 optional int64 lvl = 3; // 等级 optional int32 sex = 4; // 性别 optional string name = 5; // 姓名 optional int64 game_count = 11; // 对局数(Durak) optional int64 income = 12; // 累计盈利 optional int64 biggest_win = 13; // 单局最多盈利 optional int64 win_rate = 14; // 胜率(durak) } // 15 修改用户姓名请求 message update_username_quest { optional string name = 1; //姓名 } // 16 修改用户姓名返回 message update_username_reply { optional string result = 1; //提示内容 optional string name = 2; //姓名 optional int32 free_count = 3; //免费次数 } // 21 请求修改头像 message modify_avatar_quest { optional int32 avatar_type = 1; //0自定义头像、社媒头像,默认头像1-n optional bytes data = 2; //自定义头像数据 } // 22 请求修改头像返回 message modify_avatar_reply { optional string result = 1; //提示内容 optional string avatar = 2; //修改后的头像路径 } // 23 玩家基础数据请求 // 24 玩家基础数据返回 message user_base_info_reply { optional int64 coin = 1; //金币 optional int64 jetton = 2; //筹码 optional string name = 3; //昵称 optional string avatar = 4; //头像 optional string account = 5; //登录账号 optional string telephone = 6; //手机号 optional string mail = 7; //邮箱 optional int64 create_time = 8; //账号创建时间戳 optional int64 lvl = 9; //等级 optional int64 exp = 10; //经验 optional int64 game_count = 11; //对局数(Durak) optional int64 income = 12; //累计盈利 optional int64 biggest_win = 13; //单局最多盈利 optional int64 win_rate = 14; //胜率(durak) optional int32 free_update_name_count = 15; //名字免费修改次数 } // 25 更改语言请求 message language_change_quest { optional string language = 1; //语言 } // 26 更改语言返回 message language_change_reply { optional string result = 1; //提示内容 } // 29 请求修改密码 message change_password_quest { optional string password = 1; //密码 optional string old_password = 2; //旧密码 } // 30 修改密码返回 message change_password_reply { optional string result = 2; //提示 } // 31 请求绑定账号 message account_bind_quest { optional string account = 1; //登录账号(非ID) optional string password = 2; //登录密码 } // 32 绑定账号返回 message account_bind_reply { optional string result = 1; //提示内容 } // 33 举报头像 message report_avatar_quest { optional int64 account = 1; // 被举报的账号 } // 34 举报头像返回 message report_avatar_reply { optional string result = 1; // 提示 } // 51 同步服务器时间 message sync_server_time_quest { optional int64 client_time = 1; } // 52 服务器时间返回 message sync_server_time_reply { optional int64 client_time = 1; optional int64 server_time = 2; } // 53 领取破产礼包奖励 // 54 领取破产礼包奖励返回 message get_bankrupt_gift_reward_reply { optional string result = 1; // 提示 optional int32 count = 2; // 剩余次数 } // 101 发送GM指令 message send_gm_quest { optional string gm_str = 1; // GM文本 } // 102 GM指令返回 message send_gm_reply { optional string result = 1; // 提示文本 } // 301 服务器配置下发 message server_config_notify { repeated int_key_string_value str_list = 1; // 字符串键值列表 repeated int_key_int_value int_list = 2; // 整数键值列表 } // 302 上线推送玩家当前所在房间 message user_current_room_notify { optional int64 room_id = 1; // 房间id } // 303 上线推送破产礼包相关信息 message bankrupt_gift_info_notify { optional int32 count = 1; // 剩余可领取次数 optional int64 bankrupt_value = 2; // 破产值 optional int64 reward_value = 3; // 奖励值 } // 312 用户基础信息变动通知 message user_base_info_change_notify { optional int64 jetton = 1; //筹码 optional int64 coin = 2; //金币 optional int64 lvl = 3; //等级 optional int64 exp = 4; //经验 } // 996 同一账号互踢下线弹框通知 message kick_account_tips_notify { optional string content = 1; //提示内容 } // 997 服务器控制前端提示通知 message tips_notify { optional string content = 1; // 提示内容 optional int64 model = 2; // 模式(0:普通弹框, 1:奖励弹框) optional string item_str = 3; // 道具详情 optional string title = 4; // 弹框标题 optional string btn_text = 5; // 按钮文案 } // 商店商品信息 message store_goods_info { optional int32 id = 1; // 商品ID optional string name = 2; // 商品名称 optional bool can_buy = 3; // 是否能购买 optional int32 price = 4; // 现价 optional int32 base_price = 5; // 原价 optional int32 item_id = 6; // 购买的道具id optional int32 count = 7; // 商品数量 optional int32 buy_consume = 8; // 购买消耗 optional int32 position = 9; // 顺序优先级 optional string ac_discount = 10; // 折扣百分比 } // 1001 商品列表请求 message store_list_quest { optional int32 type = 1; // 页签类型 } // 1002 商品列表返回 message store_list_reply { optional int32 type = 1; // 页签类型 repeated store_goods_info list = 2; // 商品列表 } // 1003 购买商品请求 message store_buy_goods_quest { optional int32 id = 1; // 商品ID } // 1004 购买商品返回 message store_buy_goods_reply { optional int32 id = 1; // 商品ID optional string result = 2; // 提示文本 } message durak_hall_room_info { optional int32 id = 1; // 大厅房间id optional int64 bet = 2; // 赌注大小 optional int32 player_count = 3; // 房间人数 optional int32 is_tyro = 4; // 是否新手房 } // 4001 获取大厅房间列表 // 4002 获取大厅房间列表返回 message durak_hall_room_list_reply { repeated durak_hall_room_info room_list = 1; // 房间列表 optional string result = 2; // 提示文本 } // 4003 创建私人房请求 message durak_private_room_create_quest { optional int64 bet = 1; // 赌注 optional int32 seat = 2; // 牌桌座位上限 optional int32 card_group = 3; // 牌组 optional int32 def_mode = 4; // 防守模式(1:Throw-in 2:Transfer) optional int32 atk_mode = 5; // 进攻模式(1:仅有上下家 2:所有人) } // 4004 创建私人房返回 message durak_private_room_create_reply { optional int64 room_id = 1; // 房间id optional string result = 2; // 提示文本 optional int64 need_bet = 3; // bet不足时返回房间所需bet } // 4005 进入大厅房间请求(快速匹配) message durak_enter_hall_room_quest { optional int32 id = 1; // 大厅房间id repeated int32 seat = 2; // 牌桌座位上限 repeated int32 card_group = 3; // 牌组 repeated int32 def_mode = 4; // 防守模式(1:Throw-in 2:Transfer) repeated int32 atk_mode = 5; // 进攻模式(1:仅有上下家 2:所有人) } // 4006 进入大厅房间返回 message durak_enter_hall_room_reply { optional int64 room_id = 1; // 房间id optional string result = 2; // 提示文本 optional int64 need_bet = 3; // bet不足时返回房间所需bet } // 4007 加入房间请求 message durak_enter_room_quest { optional int64 room_id = 1; // 房间id } // 4008 加入房间返回 message durak_enter_room_reply { optional int64 room_id = 1; // 房间id optional string result = 2; // 提示文本 optional int64 need_bet = 3; // bet不足时返回房间所需bet } // 4009 离开房间请求 message durak_leave_room_quest { optional int64 room_id = 1; // 房间id } // 4010 离开房间返回 message durak_leave_room_reply { optional int64 room_id = 1; // 房间id } // 4011 房间准备请求 message durak_room_ready_quest { optional int64 room_id = 1; // 房间id } // 4012 房间准备返回 message durak_room_ready_reply { optional int64 room_id = 1; // 房间id optional string result = 2; } // 4013 牌桌操作请求 message durak_room_operate_quest { optional int64 room_id = 1; // 房间id optional int32 opt = 2; // 操作id(1.进攻者出牌 2.防守者出防守牌 3.防守者Transfer 4.pass/take 5.协助者出牌 6.撤回出牌 7.退出挂机状态 8.进入挂机 9.投降 10.设置结束离开) optional int32 param1 = 3; // 参数1 optional int32 param2 = 4; // 参数2 optional int32 session_id = 5; // 会话id } // 4014 牌桌操作返回 message durak_room_operate_reply { optional string result = 1; // 提示文本 optional int32 session_id = 5; // 会话id } // 4015 换座请求 message durak_room_swap_seat_quest { optional int64 room_id = 1; // 房间id optional int32 target_seat = 2; // 目标座位号 } // 4016 换座请求返回 message durak_room_swap_seat_reply { optional string result = 1; // 提示文本 } message durak_game_record { optional int32 room_type = 1; optional int64 bet = 2; optional int64 profit = 3; optional int32 seat = 4; optional string start_time = 5; optional int32 card_group = 6; optional int32 atk_mode = 7; optional int32 def_mode = 8; optional int32 win_rank = 9; } // 4017 查询对局记录 // 4018 查询对局记录返回 message get_durak_game_record_reply { repeated durak_game_record record_list = 1; } // 4019 重进牌局请求 message durak_reenter_room_quest { optional int64 room_id = 1; // 房间id } // 4020 重进牌局返回 message durak_reenter_room_reply { optional int64 room_id = 1; // 房间id optional string result = 2; // 提示文本 } // 4021 牌桌信息请求(测试用) message durak_desktop_info_quest { optional int64 room_id = 1; // 房间id } // 4022 牌桌信息返回(测试用) message durak_desktop_info_reply { optional durak_desktop_info_notify desktop_info = 1; // 牌桌信息 } // 4051 房间聊天请求 message room_chat_quest { optional int64 room_id = 1; // 房间id optional int32 chat_type = 2; // 聊天类型:1.文本 2.表情 3.语音 optional string text_id = 3; // 文本id optional string text = 4; // 文本内容 optional int64 emoji_id = 5; // 表情id optional bytes voice = 6; // 语音 } // 4052 房间聊天请求返回 message room_chat_reply { optional string result = 1; // 提示文本 } // 4301 durak房信息下发 message durak_room_info_notify { optional int64 founder_account = 1; // 创建者 optional int64 room_id = 2; // 房间id optional int32 room_count = 3; // 房间人数 optional int64 bet = 4; // 赌注 optional int32 seat = 5; // 牌桌座位上限 optional int32 card_group = 6; // 牌组 optional int32 def_mode = 7; // 防守模式(1:Throw-in 2:Transfer) optional int32 atk_mode = 8; // 进攻模式(1:仅有上下家 2:所有人) repeated durak_room_user_simple_info users = 9; // 用户信息 optional int64 start_time = 10; // 开局时间 } // 4302 离开房间通知 message durak_room_leave_notify { optional int64 room_id = 1; //房间ID optional int64 account = 2; //账号 optional bool quit = 3; //true离开 } // 4303 房间准备开始通知 message durak_room_ready_go_notify { optional int64 room_id = 1; //房间ID optional int64 start_time = 2; //开始时间戳 } // 4304 房间新进玩家通知 message durak_room_new_user_notify { optional int64 room_id = 1; //房间ID optional durak_room_user_simple_info user = 2; //用户信息 } message durak_table_card_info { optional int32 atk_card_id = 1; // 进攻牌id optional int32 def_card_id = 2; // 防守牌id } message durak_order_info { optional int64 account = 1; // 账号 optional int32 is_take_pass = 2; // 是否take或者pass, 1是 0否 optional int32 win_rank = 3; // 胜利名次(0未胜利) optional int32 card_num = 4; // 手牌数 repeated int32 card_list = 5; // 玩家手牌(只会下发自己的手牌信息) optional int64 win_bet = 6; // 赢取筹码 optional int32 withdraw_num = 7; // 剩余撤回次数 optional int32 hangup_state = 8; // 挂机状态(1挂机 0非挂机) optional int32 seat = 9; // 座位号 optional int32 opt = 10; // 当前可执行的操作(第1位:take/pass 第2位:进攻 第3位:防守 第4位:Transfer 第5位:撤回出牌) optional int64 countdown = 11; // 玩家倒计时 optional int32 is_over_leave = 12; // 是否结束后离开, 1是 0否 } // 4305 牌局信息下发 message durak_desktop_info_notify { optional int64 room_id = 1; // 房间id optional int32 state = 2; // 牌桌状态 optional int32 king_card = 3; // 王牌id optional int32 card_count = 4; // 公共牌堆剩余数量 optional int32 discard_num = 5; // 弃牌堆数量 repeated durak_table_card_info table_cards = 6; // 牌桌上的牌信息 optional int64 cur_attacker = 7; // 当前进攻方 optional int64 cur_defender = 8; // 当前防守方 repeated durak_order_info order_list = 9; // 出牌顺序以及一些附加信息 optional int64 transfer_cd = 10; // transfer的CD,处于CD期间无法Transfer } // 4306 用户操作广播 message durak_desktop_opt_notify { optional int64 room_id = 1; // 房间id repeated int64 accounts = 2; // 账号列表 optional int64 time = 3; // 当前时间 optional int32 opt = 4; // 操作id(1.进攻者出牌 2.防守者出防守牌 3.防守者Transfer 4.pass/take 5.协助者出牌 6.自己补牌 7.他人补牌 8.牌进入弃牌堆 9.牌桌牌进入防守者手牌 10.进入倒计时 11.玩家胜利 12.牌桌状态改变 13.撤回出牌 14.操作状态改变 15.防守结果下发 16.挂机状态改变 17.进攻者防守者改变 18.弃置牌桌和所有玩家的牌 19.TransferCD改变) optional int64 param1 = 5; // 参数1 optional int64 param2 = 6; // 参数2 optional int64 param3 = 7; // 参数3 repeated int64 param4 = 8; // 参数4(列表) } // 4307 下发牌局开始 message durak_desktop_start_notify { optional durak_desktop_info_notify desktop_info = 1; // 牌桌信息 optional int64 time = 2; // 发牌结束时间 } message durak_update_key_value { optional int64 account = 1; // 用户id repeated string_key_string_value str_values = 2; // 字符串键值列表 repeated string_key_int_value int_values = 3; // 整数键值列表 } // 4308 下发房间用户信息改变 message durak_user_info_change_notify { optional int64 room_id = 1; // 房间id repeated durak_update_key_value update_list = 2; // 更新列表 } // 4350 房间聊天广播 message room_chat_notify { optional int64 room_id = 1; // 房间id optional int64 account = 2; // 发言账号 optional int32 chat_type = 3; // 聊天类型:1.文本 2.表情 3.语音 optional string text_id = 4; // 文本id optional string text = 5; // 文本内容 optional int64 emoji_id = 6; // 表情id optional bytes voice = 7; // 语音 }