local proto_struct = [[ # 房间玩家信息 .DataRoomPlayer { playerInfo 0: DataUserBaseInfo # 玩家信息 seatId 1: integer # 位置ID status 2: integer # 状态 0:进入 1:准备 } # 房间信息 .DataRoom { roomId 0: integer # 房间号 playCount 1:integer # 战斗人数 - 历史战绩无此字段 battleBoxList 2: *integer # 战斗箱子ID列表 playerList 3: *DataRoomPlayer # 房间玩家列表 - 历史战绩仅保留战斗玩家 status 4: integer # 房间状态 0:等待中 1:进行中 2:结束 createTime 5: integer # 创建时间 battleTime 6: integer # 战斗开始时间 } # 射击结果 .DataBattleShot { itemId 0: integer # 中奖饰品ID price 1: integer # 射击价格 } # 战斗玩家 .DataBattlePlayer { uid 0: integer # 玩家ID seatId 1: integer # 座位ID shotList 2: *DataBattleShot # 射击结果列表 } # 战斗 - 玩家掉落 .DataBattlePlayerShot { uid 0: integer # 玩家ID shot 1: DataBattleShot # 射击结果 } # 战斗 - 轮次信息 .DataBattleRound { round 0: integer # 轮次 shotList 1: *DataBattlePlayerShot # 玩家射击列表 } # 战斗 - 结算 .DataBattleSettle { roomInfo 0: DataRoom # 房间信息 battleId 1: string # 战斗编号 winUid 2: integer # 胜利玩家ID rounds 3: *DataBattleRound # 战斗轮次列表 - 历史战绩没有该字段 battlePlayerList 4: *DataBattlePlayer # 战斗玩家列表 } ]] local proto_c2s = [[ # 获取房间列表 room_get_info 2600 { request { } response { code 0: integer roomList 1: *DataRoom # 房间信息列表 myRoom 2: DataRoom # 已进入房间 } } # 创建房间 # 创建成功后 - 在线玩家收到 on_room_new room_create_room 2601 { request { playCount 0: integer # 战斗人数 battleBoxList 1: *integer # 战斗箱子ID列表 } response { code 0: integer # 返回结果吗 room 1: DataRoom # 房间信息 } } # 进入房间 # 成功 - 在线玩家收到 on_room_player_change room_player_enter 2602 { request { roomId 0: integer # 房间号码 } response { code 0: integer room 1: DataRoom # 房间信息 } } # 坐下 - 点座位的时候可以不用 room_player_enter # 异步通知结果 on_room_seat_down # 成功 - 在线玩家收到 on_room_player_change room_player_seat 2603 { request { roomId 0: integer # 房间号码 seatId 1: integer # 座位ID } response { code 0: integer } } # 站起 # 成功 - 在线玩家收到 on_room_player_change room_stand_up 2604 { request { } response { code 0: integer } } # 离开房间 # 成功 - 在线玩家收到 on_room_player_change room_player_leave 2605 { request { } response { code 0: integer } } # 获取房间对战记录列表 - 每次请求返回20条 room_get_record_list 2620 { request { lastTime 0: integer # 上次拉记录battleTime最小值 } response { code 0: integer # 返回结果码 list 1: *DataBattleSettle # 房间对战记录列表 } } # 获取玩家个人对战记录 - 每次请求返回20条 room_get_player_record_list 2621 { request { lastTime 0: integer # 上次拉记录battleTime最小值 } response { code 0: integer # 返回结果码 list 1: *DataBattleSettle # 房间对战记录列表 } } # 获取精彩对战记录列表 - 仅返回当前最近20(配置)条记录 room_get_brilliant_record_list 2622 { request { } response { code 0: integer # 返回结果码 list 1: *DataBattleSettle # 房间对战记录列表 } } ]] local proto_s2c = [[ # 新创建房间推送 on_room_new 2600 { request { room 0: DataRoom # 房间信息 } } # 销毁房间 - 1. 创建超时 2. 游戏结束 on_room_destroy 2601 { request { roomId 0: integer # 房间ID } } # 房间玩家信息变化 on_room_player_change 2602 { request { type 0: integer # 消息的类型 [房间成员变化 100进入, 101离开, 102坐下 103站起,104强制站起, 105被踢出] roomId 1: integer # 房间ID changeRoomPlayer 2: *DataRoomPlayer # 变化的房间成员 } } # 坐下房间位置结果 on_room_seat_down 2603 { request { code 0: integer # 错误码 } } # 比赛结算 on_room_battle_settle 2604 { request { settle 0: DataBattleSettle } } ]] local proto = { c2s = proto_struct .. proto_c2s, s2c = proto_struct .. proto_s2c } return proto