|
- --跑得快消息协议格式
- local PdkMessage = {}
-
- -- PdkMessage.TestRequest = defClass("card"
- -- --牌值
- -- ,defVar("card", VT_UChar, 0)
- -- )
-
- -- PdkMessage.TestResponse = defClass("card"
- -- --牌值
- -- ,defVar("card", VT_UChar, 0)
- -- )
-
- -- 玩家加入房间成功玩家信息
- PdkMessage.PlayerInfo = defClass("UserInfo"
- -- 玩家ID
- ,defVar("userId", VT_Int, 0)
- -- 座位ID
- ,defVar("seatId", VT_Int, 0)
- -- //是否正在玩 -1: 用户站起 0: 用户坐下 1: 准备状态 2: 正在玩
- ,defVar("playFlag", VT_Short, 0)
- --
- ,defVar("jsonInfo", VT_String, "")
- )
-
- -- 每个玩家房卡或金币信息
- PdkMessage.PlayerCoinInfo = defClass("PlayerCoinInfo"
- -- 玩家ID
- ,defVar("userId", VT_Int, 0)
- ,defVar("CoinInfo", VT_String, "")
- )
-
- -- 玩家离线状态
- PdkMessage.onLintState = defClass("onLintState"
- -- 玩家ID
- ,defVar("userId", VT_Int, 0)
- -- 状态
- ,defVar("jsonInfo", VT_String, "")
- )
-
- -- 玩家加入房间成功返回消息
- PdkMessage.GameLoginSuccess = defClass("GameLoginSuccess"
- -- 房间最大人数
- ,defVar("nMaxPlayCount", VT_Short, 0)
- -- 房主id
- ,defVar("nRoomOwnedUid", VT_Int, 0)
- -- 房间id
- ,defVar("nTableId", VT_Int, 0)
- -- 当前局数
- ,defVar("nGameStartCount", VT_Short, 0)
- -- 总局数
- ,defVar("nTotalGameNum", VT_Short, 0)
- -- 游戏信息
- ,defVar("nGameInfo", VT_String, "")
- -- ,defVar("nPlayerCount", VT_Short, 0)
- -- 玩家信息
- ,defVar("players", VT_Vector(PdkMessage.PlayerInfo), {})
- -- 房卡或金币信息
- ,defVar("CoinInfoList", VT_Vector(PdkMessage.PlayerCoinInfo), {})
- -- 玩家离线状态
- ,defVar("playerOnlineState", VT_VectorToMap(PdkMessage.onLintState, "userId"))
- )
-
- -- 加入房间失败返回
- --[[错误类型信息:
- ERROR_TABLE_MAX_COUNT = 2, //桌子人数已经够了
- ERROR_NOT_ENOUGH_MONEY = 3, //用户钱数不够
- ERROR_TOO_MUCH_MONEY = 4, //房间钱数过多
- ERROR_WRONG_UID = 5, //无效的用户ID
- ERROR_TABLE_NOT_EXIST = 6, //桌子不存在
- ERROR_OTHER = 7, //系统错误
- ERROR_UID_CANNOT_ENTER = 8, //游戏开始禁止加入游戏
- ]]
- PdkMessage.GameLoginFailed = defClass("GameLoginFailed"
- ,defVar("nErrNo", VT_UChar, 0)
- )
-
- -- 收到其他玩家加入房间的信息
- PdkMessage.GameSitDownResponse = defClass("GameSitDownResponse"
- -- 用户uid
- , defVar("userId", VT_Int, 0)
- -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
- , defVar("seatId", VT_Int, 0)
- -- 用户信息
- , defVar("userInfo", VT_String, "")
- -- 用户总的分数
- , defVar("nTotalMoney", VT_Long, 0)
- -- 用户标志
- , defVar("nPlayerFlag", VT_Short, 0)
- -- 开始游戏ID
- , defVar("nStartGameUid", VT_Int, 0)
- )
-
- -- 广播玩家准备
- PdkMessage.GameUserReady = defClass("GameUserReady"
- -- 准备玩家ID
- ,defVar("userId", VT_Int, 0)
- )
-
-
- -- 玩家进入房间
- PdkMessage.GameUserEnter = defClass("GameUserEnter"
- -- 玩家id
- ,defVar("userId", VT_Int, 0)
- ,defVar("seatId", VT_Int, 0)
- ,defVar("jsonInfo", VT_String, "")
- ,defVar("playFlag", VT_Short, 0)
- )
-
-
- -- 玩家离开房间
- PdkMessage.GameUserLogoutSuc = defClass("GameUserLogout"
- -- 玩家积分
- ,defVar("totalMoney", VT_Long, 0)
- -- 是否回到大厅
- ,defVar("logoutFlag", VT_Short, 0)
- --用户的房卡信息,格式"10,5", 以逗号分隔,第一个表示历史房卡数量, 第二个表示当前房卡数量
- ,defVar("extInfo", VT_String, "")
- )
-
- -- 广播桌子其他玩家离开
- PdkMessage.GameBroadcastUserLogout = defClass("GameBroadcastUserLogout"
- -- 玩家ID
- ,defVar("userId", VT_Int, 0)
- ,defVar("unuse", VT_Int, 0)
- )
-
- -- 解散房间请求
- PdkMessage.DismissRequest = defClass("DismissRequest"
- -- 玩家操作 1: 表示发起解散 2:同意解散 3:不同意解散
- , defVar("operateType", VT_UChar, 0)
- )
-
- -- 每个玩家对于解散房间的处理
- PdkMessage.UserDismissResult = defClass("UserDismissResult"
- -- nUserId
- , defVar("nUserId", VT_Int, 0)
- -- 0: 未做任何操作 1: 请求解散 2: 同意解散 3:不同意解散
- , defVar("dismissState", VT_UChar, 0)
- )
- -- 解散房间请求的结果
- PdkMessage.DismissResult = defClass("DismissResult"
- -- 错误码:
- -- 0:成功
- -- 1:operateType取值范围不对
- -- 2:当前没人发起解散
- -- 3:已经有人申请解散
- , defVar("errorCode", VT_Short, 0)
- -- 玩家操作
- , defVar("operateType", VT_Int, 0)
-
- -- 桌子上其他用户数量
- , defVar("memberList", VT_VectorToMap(PdkMessage.UserDismissResult, "nUserId"))
- -- 剩余解散超时时间
- , defVar("timeLeft", VT_Short, 0)
- )
-
- -- 服务器广播每个玩家对解散房间的处理
- PdkMessage.DismissResponse = defClass("DismissResponse"
- -- nUserId
- , defVar("nUserId", VT_Int, 0)
- -- 1: 表示发起解散 2:同意解散 3:不同意解散
- , defVar("operateType", VT_UChar, 0)
- -- 剩余解散超时时间
- , defVar("timeLeft", VT_Short, 0)
- )
-
- -- 收到其他玩家掉线的信息
- PdkMessage.OtherDroppedResponse = defClass("OtherDroppedResponse"
- -- 用户uid
- , defVar("nUserId", VT_Int, 0)
- -- 0: 用户掉线回来, 1: 用户已经掉线
- , defVar("nDroppedStatus", VT_Short, 0)
- )
-
- --------------------------------------------------------------------------
- -- 游戏处理逻辑协议
- --------------------------------------------------------------------------
- -- 当桌子上所有玩家都准备后,服务器广播本局游戏开始
- PdkMessage.GameStartUser = defClass("GameStartUser"
- ,defVar("nUserId", VT_Int, 0)
- ,defVar("nSeatId", VT_Int, 0)
- )
- PdkMessage.GameBroadcastGameStart = defClass("GameBroadcastGameStart"
- -- 当前局数
- ,defVar("gameStartCount", VT_Short, 0)
- ,defVar("totalGamenum", VT_Short, 0)
- ,defVar("roomOwnedUid", VT_Int, 0)
- ,defVar("players", VT_Vector(PdkMessage.GameStartUser), {})
- )
-
- -- 给玩家发牌
- PdkMessage.GameSendCards = defClass("GameSendCards"
- ,defVar("bankerSeat", VT_Int, 0)
- ,defVar("userId", VT_Int, 0)
- ,defVar("cards", VT_Vector(VT_UChar), {})
- )
-
- -- 服务器返回最佳提示牌组
- PdkMessage.GameReturnTips = defClass("GameReturnTips"
- ,defVar("userId", VT_Int, 0)
- ,defVar("cards", VT_Vector(VT_UChar), {})
- )
-
- -- 客户端请求出牌
- PdkMessage.GameOutCards = defClass("GameOutCards"
- -- ,defVar("byCardNum", VT_Short, 0)--不用写长度
- ,defVar("byOutCard", VT_Vector(VT_UChar), {})
- )
-
- -- 服务器返回出牌错误
- PdkMessage.GameOutCardsErr = defClass("GameOutCardsErr"
- ,defVar("userId", VT_Int, 0)
- ,defVar("errFlag", VT_UChar, 0)
- )
-
- -- 玩家出牌成功,服务器广播出牌信息
- --[[SINGLE_CARD = 1, //单牌
- DUI_ZI = 2, //对子
- THREE_AND_TWO = 3, //三带二
- SHUN_ZI = 4, //顺子
- LIAN_DUI = 5, //连对
- AIRPLANE = 6, //飞机
- FOUR_AND_THREE 7, //四带三
- BOMB = 8, //炸弹
- FOUR_AND_ONE = 9, //四带一
- ]]
- PdkMessage.GameBroadcastOutCards = defClass("GameBroadcastOutCards"
- ,defVar("selfId", VT_Int, 0)--自己ID
- ,defVar("userId", VT_Int, 0)
- ,defVar("cardType", VT_Short, 0)
- ,defVar("leftNum", VT_Short, 0)--出牌者剩余多少张牌
- ,defVar("cards", VT_Vector(VT_UChar), {})
- ,defVar("opType", VT_UChar, 0)--0:pass 1:接牌
- )
-
-
- -- 游戏单局结算
- PdkMessage.UserResult = defClass("UserResult"
- ,defVar("userId", VT_Int, 0)
- ,defVar("turnScore", VT_String, 0)
- ,defVar("totalScore", VT_String, 0)
- ,defVar("bombTimes", VT_Short, 0)
- ,defVar("haveRedTen", VT_UChar, 0)
- ,defVar("bSpring", VT_UChar, 0)
- ,defVar("leftNum", VT_Short, 0)
- ,defVar("leftCards", VT_Vector(VT_UChar), {})
- )
- -- 小局炸弹分数
- PdkMessage.GameBombScore = defClass("GameBombScore"
- ,defVar("userId", VT_Int, 0)
- ,defVar("turnBombScore", VT_String, 0)--单局炸弹分
- ,defVar("reserved", VT_String, "")--字段,保留后续使用
- )
- PdkMessage.GameBroadcastResult = defClass("GameBroadcastResult"
- ,defVar("gameStartCount", VT_Short, 0)
- ,defVar("totalGamenum", VT_Short, 0)
- ,defVar("bankSeatId", VT_Int, 0)
- ,defVar("players", VT_Vector(PdkMessage.UserResult), {})
- ,defVar("leftCards", VT_Vector(VT_UChar), {})
- ,defVar("stopFlag", VT_Int, 0)
- ,defVar("playersBombScore", VT_Vector(PdkMessage.GameBombScore), {})--单局炸弹得分
- )
-
- -- 游戏大结算
- PdkMessage.GameOverItem = defClass("GameOverItem"
- ,defVar("userId", VT_Int, 0)
- ,defVar("totalScore", VT_String, 0)
- ,defVar("extString", VT_String, "")
- )
- PdkMessage.GameGameOver = defClass("GameGameOver"
- ,defVar("players", VT_Vector(PdkMessage.GameOverItem), {})
- ,defVar("stopFlag", VT_Short, 0)
- ,defVar("stopResult", VT_String, 0)
- ,defVar("endTime", VT_Long, 0)
- )
-
- -- 中途恢复
- --[[GAME_STATE_INIT, //游戏准备状态
- GAME_STATE_SEND_HAND_CARD, //发牌
- GAME_STATE_OUT_CARD, //打牌
- GAME_STATE_ROUND_OVER, //游戏一局结束
- GAME_STATE_GAME_OVER, //游戏结束
- ]]
- PdkMessage.GameRecoverItem = defClass("GameRecoverItem"
- ,defVar("userId", VT_Int, 0)
- ,defVar("seatId", VT_Int, 0)
- ,defVar("playFlag", VT_Short, 0)--是否正在玩 -1: 用户站起 0: 用户坐下 1: 准备状态 2: 正在玩
- ,defVar("disbandStatus", VT_UChar, 0)--玩家解散状态 0:初始状态, 1:发起解散 2: 同意解散 3:不同意解散
- ,defVar("onlineStatus", VT_UChar, 0)--是否在线 0:离线 1:在线
- ,defVar("jsonInfo", VT_String, "")
- ,defVar("winTimes", VT_UChar, 0)
- ,defVar("loseTimes", VT_UChar, 0)
- ,defVar("isCanOp", VT_UChar, 0)
- ,defVar("bSpring", VT_UChar, 0)
- ,defVar("haveBlackThree", VT_UChar, 0)
- ,defVar("haveRedTen", VT_UChar, 0)
- ,defVar("maxScore", VT_String, 0)
- ,defVar("turnBombTimes", VT_UChar, 0)
- ,defVar("totalBombTimes", VT_UChar, 0)
- ,defVar("turnScore", VT_String, 0)
- ,defVar("totalScore", VT_String, 0)
- ,defVar("handType", VT_Short, 0)
- ,defVar("handCards", VT_Vector(VT_UChar), {})
- ,defVar("outCards", VT_Vector(VT_UChar), {})
- )
-
- -- 快速开始玩家对应状态
- PdkMessage.FastStartGameUserItem = defClass("FastStartGameUserItem"
- ,defVar("userId", VT_Int, 0)
- ,defVar("fastStartStatus", VT_Int, 0)
- )
-
- -- 托管状态
- PdkMessage.UserAIStatus = defClass("UserAIStatus"
- ,defVar("userId", VT_Int, 0)
- ,defVar("isAi", VT_UChar, 0) -- 托管状态(1 yes, 0 no)
- )
-
- --断线重连
- PdkMessage.GameGameRecover = defClass("GameGameRecover"
- --房间最大人数
- ,defVar("maxPlayCount", VT_Short, 0)
- --房主uid
- ,defVar("roomOwnedUid", VT_Int, 0)
- --当前局数
- ,defVar("gameStartCount", VT_Short, 0)
- ,defVar("totalGamenum", VT_Short, 0)
- ,defVar("showTableId", VT_Int, 0)
- --游戏信息
- ,defVar("gameInfo", VT_String, 0)
- --庄家id
- ,defVar("bankSeatId", VT_Int, 0)
- ,defVar("bUserDisbandGame", VT_UChar, 0)
- --桌子状态
- ,defVar("gameStatus", VT_UChar, 0)
- ,defVar("leftTimeOut", VT_Int, 0)
- ,defVar("recoverItem", VT_Vector(PdkMessage.GameRecoverItem), {})
- ,defVar("extInfo", VT_String, "")
- --快速开始状态1:有人申请提前开始
- ,defVar("userFastStartStatus", VT_UChar, 0)
- --快速开始剩余时间
- ,defVar("fastStartTimeout", VT_Int, 0)
- --每个玩家对应快速开始状态
- ,defVar("fastStartPlayersStatus", VT_Vector(PdkMessage.FastStartGameUserItem), {})
- --当前操作玩家id
- ,defVar("curOpUid", VT_Int, 0)
- --当前操作玩家操作类型 0-pass 1-可以出牌也可以pass 2-只能出牌
- ,defVar("curOpType", VT_UChar, 0)
- -- 玩家托管状态
- ,defVar("userAiStatus", VT_Vector(PdkMessage.UserAIStatus), {})
- )
-
- -- 0X8109 GAME_CAMMAND_BROADCAST_SCORES
- -- 更新玩家分数
- PdkMessage.GameUserScoreItem = defClass("GameUserScoreItem"
- ,defVar("userId", VT_Int, 0)
- ,defVar("totalScore", VT_String, 0)
- )
- PdkMessage.GameUpdateScore = defClass("GameUpdateScore"
- ,defVar("players", VT_Vector(PdkMessage.GameUserScoreItem), {})
- )
-
- -- 广播玩家轮次
- PdkMessage.GameBroadcastTurns = defClass("GameBroadcastTurns"
- ,defVar("userId", VT_Int, 0)
- ,defVar("seatId", VT_Int, 0)
- --出牌flag,0:要不起 1:可操作
- ,defVar("outFlag", VT_UChar, 0)
- --操作类型 0-只能pass 1-可以出牌也可以pass 2-必须出牌
- ,defVar("opType", VT_UChar, 0)
- )
-
- --快速开始请求
- PdkMessage.FastStartRequest = defClass("FastStartRequest"
- , defVar("result", VT_UChar, 1)
- )
-
- --快速开始请求结果
- PdkMessage.FastStartRequestResult = defClass("FastStartRequestResult"
- , defVar("result", VT_Short, -1)
- )
-
- -- 服务器广播快速开始状态
- PdkMessage.FastPlayer = defClass("FastPlayer"
- , defVar("nUserId", VT_Int, 0)
- --1:发起申请 2:同意 3:拒绝 4:未操作 5:有人进来或者退出 6:超时未处理
- , defVar("nStatus", VT_UChar, 0)
- )
- -- 服务器广播快速开始状态
- PdkMessage.FastStartStatus = defClass("FastStartStatus"
- --发起玩家id
- , defVar("nUserId", VT_Int, 0)
- --1:发起申请 2:同意 3:拒绝 4:未操作 5:有人进来或者退出 6:超时未处理
- , defVar("nStatus", VT_Short, 0)
- --玩家操作状态列表
- , defVar("pList", VT_Vector(PdkMessage.FastPlayer), {})
- --剩余时间
- , defVar("timeOut", VT_Short, 0)
- )
-
- -- 游戏快速开始
- PdkMessage.FastSuccessPlayer = defClass("FastSuccessPlayer"
- , defVar("nUserId", VT_Int, 0)
- , defVar("nSeatId", VT_UChar, 0)
- )
- -- 游戏快速开始玩家
- PdkMessage.UpdateSeatIds = defClass("UpdateSeatIds"
- , defVar("pList", VT_Vector(PdkMessage.FastSuccessPlayer), {})
- )
-
- --server收到0x8060协议后,广播当前桌子上所有用户
- PdkMessage.ServerChangeUserInfo = defClass("ServerChangeUserInfo"
- --更新信息的用户uid
- , defVar("uid", VT_Int, -1)
- --用户信息
- , defVar("userInfo", VT_String, "")
- --保留字段,暂不使用
- , defVar("reserved", VT_String, "")
- )
-
- -- 请求托管
- PdkMessage.sendTuoGuan = defClass("sendTuoGuan"
- --1-请求托管 2-请求取消托管
- ,defVar("entrustType", VT_Byte, 0)
- )
-
- -- 托管回复
- PdkMessage.TuoGuanResponse = defClass("TuoGuanResponse"
- ,defVar("nUserId", VT_Int, 0)
- --托管状态 1-托管中 0-未托管
- ,defVar("entrustType", VT_Byte, 0)
- )
- return PdkMessage
|