218 lines
7.5 KiB
Go
218 lines
7.5 KiB
Go
package proto
|
||
|
||
const (
|
||
NtfCachetaRoomInfoId = "NtfCachetaRoomInfoId" // 房间信息(包含底注,加注,第几回合等桌面数据)
|
||
NtfCachetaPlayerInfoId = "NtfCachetaPlayerInfoId" // 玩家信息(有新玩家进入房间时,房间内玩家会收到该消息)
|
||
|
||
NtfStartCachetaGameId = "NtfStartCachetaGameId" // 游戏开始
|
||
NtfDealCachetaPokersId = "NtfDealCachetaCardsId" // 发牌
|
||
|
||
NtfPlayerCachetaActId = "NtfPlayerCachetaActId" // 通知玩家行动
|
||
|
||
ReqCachetaPickPokerId = "ReqCachetaPickPokerId" // 玩家出牌
|
||
RspCachetaPickPokerId = "RspCachetaPickPokerId" //
|
||
NtfCachetaPickPokerId = "NtfCachetaPickPokerId" //
|
||
|
||
ReqCachetaOutPokerId = "ReqCachetaOutPokerId" // 玩家出牌
|
||
RspCachetaOutPokerId = "RspCachetaOutPokerId" //
|
||
NtfCachetaOutPokerId = "NtfCachetaOutPokerId" //
|
||
|
||
ReqCachetaTidyPokerId = "ReqCachetaTidyPokerId" // 整理手牌
|
||
RspCachetaTidyPokerId = "RspCachetaTidyPokerId"
|
||
|
||
//NtfCachetaCutLineId = "NtfCachetaCutLineId" // 插队广播
|
||
|
||
NtfCachetaTingHuId = "NtfCachetaTingHuId" // 听牌,系统自动提示
|
||
ReqCachetaHuId = "ReqCachetaHuId" // 申请胡牌
|
||
NtfCachetaHuId = "NtfCachetaHuId" // 胡牌广播
|
||
|
||
NtfCachetaGameSettleId = "NtfCachetaGameSettleId" // 游戏结束,结算本局输赢
|
||
|
||
ReqCachetaReconnectId = "ReqCachetaReconnectId" // 重连
|
||
RspCachetaReconnectId = "RspCachetaReconnectId"
|
||
)
|
||
|
||
// 用户数据
|
||
type CachetaPlayer 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 CachetaHandPoker `json:"p"` // 玩家手牌
|
||
Seat int `json:"se"` // 座位号(0-3)
|
||
ClubCoin int64 `json:"cc"` // 俱乐部币
|
||
ClubTakeCoin int64 `json:"tc"` // 携带俱乐部币
|
||
State int `json:"st"` // 0:离线 1:在线
|
||
Point int `json:"po"` // 当前分数
|
||
}
|
||
|
||
// 房间信息
|
||
type NtfCachetaRoomInfo struct {
|
||
RoomId int `json:"r"`
|
||
RoomType int `json:"roo"` // 房间类型,策划room表的id
|
||
ClubId int `json:"cl"` // 俱乐部id
|
||
Blind int64 `json:"b"` // 游戏底注
|
||
CuttingPoker int `json:"c"` // 切牌
|
||
WildPoker []int `json:"w"` // 万能牌
|
||
PickPokerNum int `json:"p"` // 摸牌区剩余牌数量
|
||
OutPokers []int `json:"o"` // 弃牌区牌堆
|
||
|
||
State int `json:"s"` // 房间状态
|
||
GameCount int `json:"g"` // 第几小局
|
||
}
|
||
|
||
// 玩家信息
|
||
type NtfCachetaPlayerInfo struct {
|
||
Players []*CachetaPlayer `json:"p"` // 玩家信息
|
||
}
|
||
|
||
// 游戏开始
|
||
type NtfStartCachetaGame struct {
|
||
Time int64 `json:"t"` // 当前时间戳
|
||
}
|
||
|
||
// 发牌
|
||
type NtfDealCachetaPokers struct {
|
||
Seat int `json:"s"` // 当前行动的座位号
|
||
Time int64 `json:"t"` // 当前时间戳
|
||
CuttingPoker int `json:"c"` // 切牌
|
||
DropPoker int `json:"dr"` // 弃牌区第一张弃牌
|
||
PickPokerNum int `json:"pi"` // 摸牌区数据
|
||
WildPoker []int `json:"w"` // 两张万能牌
|
||
Poker []*CachetaHandPoker `json:"p"` // 玩家手牌,二维数组,[座位号][9张手牌]
|
||
Dealer int `json:"d"` // 庄家位置
|
||
GameCount int `json:"g"` // 第几小局
|
||
}
|
||
|
||
// 通知玩家进入操作回合,摸牌或者胡牌或者出牌
|
||
type NtfPlayerCachetaAct struct {
|
||
RoomId int `json:"r"` // 当前房间id
|
||
Seat int `json:"s"` // 当前行动的座位号
|
||
Countdown int `json:"c"` // 行动时间5秒
|
||
CountdownEx int `json:"co"` // 额外的倒计时
|
||
Type int `json:"t"` // 1:胡牌或者摸牌 2:出牌
|
||
CanWin int `json:"w"` // 0:不能胡牌 1:可以胡牌
|
||
}
|
||
|
||
type ReqCachetaPickPoker struct {
|
||
IsDrop int `json:"i"` // 0:摸牌区摸牌 1:弃牌区摸牌
|
||
}
|
||
|
||
// 摸牌
|
||
type RspCachetaPickPoker struct {
|
||
Code ErrorCode `json:"c"`
|
||
Poker int `json:"p"` // 摸牌
|
||
IsDrop int `json:"i"` // 0:摸牌区摸牌 1:弃牌区摸牌
|
||
DropPoker int `json:"d"` // 弃牌区更新牌
|
||
IsTurnOver int `json:"is"` // 0:无需处理 1:将弃牌区翻转给摸牌区
|
||
}
|
||
|
||
// 摸牌广播
|
||
type NtfCachetaPickPoker struct {
|
||
CurrentSeat int `json:"cu"` // 当前行动的座位号
|
||
PickPokerNum int `json:"p"` // 摸牌区剩余牌数量
|
||
IsTurnOver int `json:"i"` // 0:无需处理 1:将弃牌区翻转给摸牌区
|
||
IsDrop int `json:"is"` // 0:摸牌区摸牌 1:弃牌区摸牌
|
||
DropPoker int `json:"d"` // 弃牌区更新
|
||
Poker int `json:"po"` // 正常游戏中为0,日志中为摸的牌
|
||
PickPokers []int `json:"pp"` // 翻转过后的摸牌堆 未翻转时该字段为空
|
||
}
|
||
|
||
type ReqCachetaOutPoker struct {
|
||
Poker int `json:"p"` // 出牌
|
||
}
|
||
|
||
// 出牌错误时回传给玩家
|
||
type RspCachetaOutPoker struct {
|
||
Code ErrorCode `json:"c"`
|
||
Poker int `json:"p"` // 出牌
|
||
}
|
||
|
||
// 出牌成功广播给大家
|
||
type NtfCachetaOutPoker struct {
|
||
CurrentSeat int `json:"cu"` // 当前行动的座位号
|
||
Poker int `json:"p"` // 出牌
|
||
}
|
||
|
||
// 玩家主动整理手牌
|
||
type ReqCachetaTidyPoker struct {
|
||
HandPoker CachetaHandPoker `json:"h"` // 同步手牌
|
||
}
|
||
|
||
type RspCachetaTidyPoker struct {
|
||
Code ErrorCode `json:"c"`
|
||
HandPoker CachetaHandPoker `json:"h"` // 重置手牌
|
||
}
|
||
|
||
//// 插队广播
|
||
//type NtfCachetaCutLine struct {
|
||
// Countdown int `json:"c"` // 行动时间5秒
|
||
// CountdownEx int `json:"co"` // 额外的倒计时
|
||
// Seat int `json:"s"` // 可以插队的玩家的座位号
|
||
//}
|
||
|
||
// 听牌
|
||
type NtfCachetaTingHu struct {
|
||
Seat int `json:"s"` // 听牌玩家的座位号
|
||
}
|
||
|
||
// 胡牌
|
||
type ReqCachetaHu struct {
|
||
DropPoker int `json:"d"` // 从弃牌区摸一张胡
|
||
}
|
||
|
||
// 胡牌
|
||
type RspCachetaHu struct {
|
||
Code ErrorCode `json:"c"`
|
||
}
|
||
|
||
// 胡牌
|
||
type NtfCachetaHu struct {
|
||
Code ErrorCode `json:"c"` // 0:胡牌成功 非0:诈胡
|
||
Seat int `json:"s"` // 胡牌玩家座位
|
||
}
|
||
|
||
type GroupPoker struct {
|
||
Pokers []int `json:"p"` // 组牌
|
||
}
|
||
|
||
// 手牌
|
||
type CachetaHandPoker struct {
|
||
Groups []*GroupPoker `json:"g"` // 组牌
|
||
Pokers []int `json:"p"` // 散牌
|
||
}
|
||
|
||
// 座位结算
|
||
type SeatSettle struct {
|
||
Seat int `json:"s"` // 座位号
|
||
AddPoint int `json:"ap"` // 小局加分
|
||
SumPoint int `json:"sp"` // 剩余分数,为0则退出
|
||
AddScore int64 `json:"as"` // 大局结算时,输赢金币或俱乐部币
|
||
SumScore int64 `json:"ss"` // 大局结算时,显示玩家总金币
|
||
HandPoker CachetaHandPoker `json:"h"` // 大局结算时,显示玩家总金币
|
||
}
|
||
|
||
// NtfGameSettle 一局结算
|
||
type NtfCachetaGameSettle struct {
|
||
SeatSettle []*SeatSettle `json:"s"` // 座位玩家结算
|
||
NextGame int `json:"n"` // 是否有下一局 0:没有下一局 1:有下一局
|
||
}
|
||
|
||
// ReqReconnect 断线重连
|
||
type ReqCachetaReconnect struct {
|
||
RoomId int `json:"r"` // 房间id
|
||
}
|
||
|
||
// RspReconnect 断线重连
|
||
type RspCachetaReconnect struct {
|
||
Code ErrorCode `json:"c"` // 房间已结束:12
|
||
RoomInfo *NtfCachetaRoomInfo `json:"s"` // 桌面数据
|
||
Players []*CachetaPlayer `json:"p"` // 玩家数据
|
||
Dealer int `json:"d"` // 庄家位置
|
||
}
|