package proto const ( NtfMaintainId = "NtfMaintainId" // 系统维护,解散房间 ReqMatchRoomId = "ReqMatchRoomId" // 匹配游戏 RspMatchRoomId = "RspMatchRoomId" ReqCancelMatchRoomId = "ReqCancelMatchRoomId" // 取消匹配 RspCancelMatchRoomId = "RspCancelMatchRoomId" ReqEnterRoomId = "ReqEnterRoomId" // 进入房间 RspEnterRoomId = "RspEnterRoomId" ReqLeaveRoomId = "ReqLeaveRoomId" // 离开房间 RspLeaveRoomId = "RspLeaveRoomId" NtfLeaveRoomId = "NtfLeaveRoomId" NtfRoomInfoId = "NtfRoomInfoId" // 房间信息(包含底注,加注,第几回合等桌面数据) NtfPlayerInfoId = "NtfPlayerInfoId" // 玩家信息(有新玩家进入房间时,房间内玩家会收到该消息) NtfFakeLeaveId = "NtfFakeLeaveId" // 玩家假离开广播 ReqReadyGameId = "ReqReadyGameId" // 进入房间 NtfStartGameId = "NtfStartGameId" // 游戏开始 NtfDealPokersId = "NtfDealCardsId" // 发牌 NtfDecidingGameId = "NtfDecidingCardsId" // 决胜局提示 ReqEmoteId = "ReqEmoteId" // 玩家在发牌后,出牌前可以发暗号,其它时候只能发表情 NtfEmoteId = "NtfEmoteId" // 广播表情 NtfPlayerActId = "NtfPlayerActId" // 通知玩家行动(包含叫分,投降) ReqPlayerActId = "ReqPlayerActId" // 玩家行动(包含叫分,投降) RspPlayerActId = "RspPlayerActId" // NtfTeammateActId = "NtfTeammateActId" // 同步队友操作 NtfPlayerRspRaiseId = "NtfPlayerRspRaiseId" // 通知队伍回应玩家操作 ReqHostingId = "ReqHostingId" // 托管请求 NtfHostingId = "NtfHostingId" // 通知托管变更 ReqPlayerOutPokerId = "ReqOutCardsActId" // 玩家出牌 RspPlayerOutPokerId = "RspOutCardsActId" // NtfPlayerOutPokerId = "NtfPlayerOutPokerId" // ReqSetDarkPokerId = "ReqSetDarkPokerId" // 设置暗牌 RspSetDarkPokerId = "RspSetDarkPokerId" // NtfRoundSettleId = "NtfRoundSettleId" // 一轮结束,结算本轮输赢(一局游戏三轮) NtfGameSettleId = "NtfGameSettleId" // 游戏结束,结算本局输赢 NtfGameBigSettleId = "NtfGameBigSettleId" // 游戏结束,结算本局输赢 ReqShowPokerId = "ReqShowPokerId" // 游戏结束,展示手牌 RspShowPokerId = "RspShowPokerId" // NtfShowPokerId = "NtfShowPokerId" // 展示玩家手牌 ReqReconnectId = "ReqReconnectId" // 重连 RspReconnectId = "RspReconnectId" ) // 匹配 type ReqMatchRoom struct { RoomType int `json:"r"` // 房间类型 } type RspMatchRoom struct { Code ErrorCode `json:"c"` RoomType int `json:"rt"` // 房间类型 Player *Player `json:"p"` // 玩家信息 } // 取消匹配 type ReqCancelMatchRoom struct { RoomType int `json:"r"` // 房间类型 } type RspCancelMatchRoom struct { Code ErrorCode `json:"c"` RoomType int `json:"rt"` // 房间类型 } type ReqEnterRoom struct { RoomId int `json:"r"` // 房间id } type RspEnterRoom struct { Code ErrorCode `json:"c"` RoomId int `json:"r"` PlayType int `json:"p"` // 玩法id RoomType int `json:"rt"` // 房间类型 ClubId int `json:"cl"` // 俱乐部id GameInfo *ClubPlayGameInfo `json:"g"` // 玩法信息,只有俱乐部房间有该字段 IsReentry int `json:"i"` // 是否重连 0:新进玩家 1:重连玩家 } type ReqLeaveRoom struct { RoomId int `json:"r"` } type RspLeaveRoom struct { Code ErrorCode `json:"c"` CurrentSeat int `json:"s"` // 当前行动的座位号 RoomId int `json:"r"` } type NtfLeaveRoom struct { CurrentSeat int `json:"s"` // 当前行动的座位号 RoomId int `json:"r"` } // 上下线广播 type NtfFakeLeave struct { RoomId int `json:"r"` CurrentSeat int `json:"s"` // 假离开的座位号 FakeLeave int `json:"f"` // 0:离线 1:在线 } // 用户数据 type Player struct { UserId int64 `json:"u"` // 玩家id ClubId int `json:"cl"` // 俱乐部id Mnick string `json:"n"` // 玩家昵称 HeadUrl string `json:"h"` // 头像 IconId int `json:"i"` // 系统头像 AvatarFrame int `json:"a"` // 边框 Sex int `json:"s"` // 性别 Coin int64 `json:"c"` // 金币 TakeCoin int64 `json:"t"` // 携带金币 Poker []int `json:"p"` // 玩家手牌 Seat int `json:"se"` // 座位号(0-3) IsRed int `json:"is"` // 0:红队,1:绿队 State int `json:"st"` // 0:离线 1:在线 OutPoker int `json:"o"` // 最近出的一张牌 ClubCoin int64 `json:"cc"` // 俱乐部币 ClubTakeCoin int64 `json:"tc"` // 携带俱乐部币 } // 房间信息 type NtfRoomInfo struct { RoomId int `json:"r"` RoomType int `json:"roo"` // 房间类型,策划room表的id ClubId int `json:"cl"` // 俱乐部id Blind int64 `json:"b"` // 游戏底注 CuttingPoker int `json:"c"` // 切牌 Point int `json:"a"` // point RedScore int `json:"re"` // 红队分数 GreenScore int `json:"gr"` // 绿队分数 RoundSettle []int `json:"ro"` // 输赢(0:红灯 1:绿灯 2:黄灯) State int `json:"s"` // 房间状态 GameCount int `json:"g"` // 第几小局 Star int `json:"st"` // 星星数,俱乐部房间不展示 } // 玩家信息 type NtfPlayerInfo struct { Players []*Player `json:"p"` // 玩家信息 } // 准备按钮 type ReqReadyGame struct { } // 游戏开始 type NtfGameStart struct { Time int64 `json:"t"` // 当前时间戳 } // 发牌 type NtfDealPokers struct { Seat int `json:"s"` // 当前行动的座位号 Time int64 `json:"t"` // 当前时间戳 CuttingPoker int `json:"c"` // 切牌 Poker [][]int `json:"p"` // 玩家手牌,二维数组,[座位号][3张手牌] Dealer int `json:"d"` // 庄家位置 GameCount int `json:"g"` // 第几小局 } type SeatPoker struct { Seat int `json:"s"` // 座位号 Poker []int `json:"p"` // 该玩家手牌 } // ReqHosting 托管请求 type ReqHosting struct { Enable bool `json:"e"` // 开启/关闭托管 } // NtfHosting 通知托管状态变更 type NtfHosting struct { Seat int `json:"s"` // 对应的座位号 Enable bool `json:"e"` // 开启/关闭托管 } // 决胜局广播 type NtfDecidingGame struct { //Seat int `json:"s"` // 当前行动的座位号 TeamColor int `json:"t"` // 决胜方队伍颜色 Poker []*SeatPoker `json:"p"` // 决胜方的明牌 Countdown int `json:"c"` // 行动时间5秒 CountdownEx int `json:"co"` // 额外的倒计时 CanGiveUp int `json:"cg"` // 0:无弃牌按钮 1:有弃牌按钮 CanAgree int `json:"ca"` // 0:无同意按钮 2:有同意按钮 } // 通知玩家进入操作回合,申请加注或放弃或出牌 type NtfPlayerAct struct { RoomId int `json:"r"` // 当前房间id Seat int `json:"s"` // 当前行动的座位号 Countdown int `json:"c"` // 行动时间5秒 CountdownEx int `json:"co"` // 额外的倒计时 CanCall int `json:"ca"` // 0:不能叫分只能出牌 30:truco3 60:truc6 90:truc9 120:truc12 CanGiveUp int `json:"cg"` // 0:不能弃牌 1:可以弃牌 } type ReqPlayerAct struct { IsTruco bool `json:"i"` // 0:回应加注 1:主动truco Raise int `json:"r"` // 放弃:-1 同意:2 30:truco 60:同意并加注到p6或truc6 90:同意并加注到p9或truc9 120:同意并加注到p12或truc12 } // 同步队友操作 type NtfTeammateAct struct { CurrentSeat int `json:"c"` // 当前行动的座位号 Act int `json:"a"` // 同步队友操作 放弃:1 同意:2 30:truco 60:同意并加注到p6 90:同意并加注到p9 120:同意并加注到p12 } type RspPlayerAct struct { Code ErrorCode `json:"c"` CurrentSeat int `json:"cu"` // 当前行动的座位号 NotOptSeat int `json:"no"` // 还没有做出回应的座位号(2v2),默认值为-1 IsTruco int `json:"i"` // 0:回应加注 1:主动truco 2:主动投降 Raise int `json:"r"` // 放弃:1 同意:2 30:truco 60:同意并加注到p6 90:同意并加注到p9 120:同意并加注到p12 Point int `json:"p"` // 当前point Star int `json:"s"` // 星星数,非俱乐部房间展示 } // 通知玩家回应加注 type NtfPlayerRspRaise struct { TeamColor int `json:"t"` // [0]:红队操作 [1]:绿队操作 Countdown int `json:"c"` // 行动时间5秒 CountdownEx int `json:"co"` // 额外的倒计时 Enemy int `json:"e"` // 敌方最近操作(放弃1,同意2,加注3) Ally []int `json:"a"` // 重连高亮显示队友操作,(0:不能加分只能同意或放弃 60:同意并加注到p6 90:同意并加注到p9 120:同意并加注到p12) CanRaise int `json:"ca"` // 0:不能加分只能同意或放弃 60:同意并加注到p6 90:同意并加注到p9 120:同意并加注到p12 } // NtfRoundSettle 每轮小结算 type NtfRoundSettle struct { Settle int `json:"s"` // 输赢(0:红灯 1:绿灯 2:黄灯) MaxSeat []int `json:"m"` // 该轮最大牌玩家 } // NtfGameSettle 一局结算 type NtfGameSettle struct { Settle []int `json:"s"` // [0]:红队得分 [1]:绿队得分 NextGame int `json:"n"` // 是否有下一局 0:没有下一局 1:有下一局 } type TeamMember struct { Seat int `json:"s"` // 座位号 WinCoin int64 `json:"w"` // 净胜分 Color int `json:"c"` // 本玩家所在队伍 0:红队 1:绿队 Fee int64 `json:"f"` // 服务费 } type NtfGameBigSettle struct { Team []*TeamMember `json:"t"` // 本队净胜分 Seat int `json:"st"` // 本玩家座位号,回放专用 [2024-11-01新增] Color int `json:"c"` // 本玩家所在队伍 0:红队 1:绿队 Star int `json:"sta"` // 星星数 Blind int64 `json:"b"` // 底注 [2024-12-09新增] Points [2]int `json:"p"` // 队伍分数 0:红队 1:绿队 Rate int `json:"r"` // 服务费比例 Win int `json:"w"` // 输赢标记 0:输 1:赢 } type ReqPlayerOutPoker struct { Poker int `json:"p"` // 出牌, 加注时该值为0 } // 出牌错误时回传给玩家 type RspPlayerOutPoker struct { Code ErrorCode `json:"c"` Poker []int `json:"p"` // 手牌 OutPoker int `json:"o"` // 最近出的牌 } // 出牌成功广播给大家 type NtfPlayerOutPoker struct { CurrentSeat int `json:"cu"` // 当前行动的座位号 Poker int `json:"p"` // 出牌, 加注时该值为0 } // 设置暗牌或者恢复成明牌 type ReqSetDarkPoker struct { Poker int `json:"p"` // 要设置的牌 } type RspSetDarkPoker struct { Code ErrorCode `json:"c"` Poker int `json:"p"` // 设置成功后的牌 } // 游戏结束申请展示手牌 type ReqShowPoker struct { } type RspShowPoker struct { Code ErrorCode `json:"c"` } // 展示手牌广播 type NtfShowPoker struct { CurrentSeat int `json:"c"` // 当前行动的座位号 Poker []int `json:"p"` // 剩余手牌 } // ReqReconnect 断线重连 type ReqReconnect struct { RoomId int `json:"r"` // 房间id } // RspReconnect 断线重连 type RspReconnect struct { Code ErrorCode `json:"c"` // 房间已结束:12 RoomInfo *NtfRoomInfo `json:"s"` // 桌面数据 Players []*Player `json:"p"` // 玩家数据 Dealer int `json:"d"` // 庄家位置 } type NtfMaintain struct { Code ErrorCode `json:"c"` } // 玩家在发牌后,出牌前可以发暗号,其它时候只能发表情 type ReqEmote struct { EmoteId int `json:"e"` DestSeat int `json:"d"` // 目标座位,暗号等无目标的表情,该值为-1 } type NtfEmote struct { Code ErrorCode `json:"c"` EmoteId int `json:"e"` Seat int `json:"s"` // 发表情的座位号 DestSeat int `json:"d"` // 目标座位,暗号等无目标的表情,该值为-1 ResType int `json:"r"` // 消耗资源类型 1000:金币 1001:钻石 CostValue int64 `json:"cv"` // 消耗资源数量 ResVal int64 `json:"v"` // 剩余资源数量 }