|
- --泸州跑得快消息协议格式
- local LZPdkMessage = {}
-
- -- LZPdkMessage.TestRequest = defClass("card"
- -- --牌值
- -- ,defVar("card", VT_UChar, 0)
- -- )
-
- -- LZPdkMessage.TestResponse = defClass("card"
- -- --牌值
- -- ,defVar("card", VT_UChar, 0)
- -- )
-
- LZPdkMessage.sendTuoGuan = defClass("sendTuoGuan"
- --1-请求托管 2-请求取消托管
- ,defVar("entrustType", VT_Short, 0)
- )
-
- -- 用户托管信息
- LZPdkMessage.TuoGuanInfo = defClass("TuoGuanInfo"
- -- 用户uid
- , defVar("nUserID", VT_Int, 0)
- --
- , defVar("aiStatus", VT_UChar, 0)
- --
- , defVar("reserve", VT_String, "")
- )
-
- -- 玩家超时系统自动托管 以及自动托管后,服务器都会广播当前桌上所有玩家的托管状态
- LZPdkMessage.TuoGuanResponse = defClass("TuoGuanResponse"
- -- 用户uid
- , defVar("userCnt", VT_VectorToMap(LZPdkMessage.TuoGuanInfo,"nUserID"))
- )
-
- -- 玩家加入房间成功玩家信息
- LZPdkMessage.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, "")
- -- 金币房卡
- ,defVar("strExtInfo", VT_String, "")
- )
-
- -- 玩家离线状态
- LZPdkMessage.onLintState = defClass("onLintState"
- -- 玩家ID
- ,defVar("userId", VT_Int, 0)
- -- 状态
- ,defVar("jsonInfo", VT_String, "")
- )
-
- -- 玩家加入房间成功返回消息
- LZPdkMessage.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(LZPdkMessage.PlayerInfo), {})
- -- 玩家离线状态
- ,defVar("playerOnlineState", VT_VectorToMap(LZPdkMessage.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, //游戏开始禁止加入游戏
- ]]
- LZPdkMessage.GameLoginFailed = defClass("GameLoginFailed"
- ,defVar("nErrNo", VT_UChar, 0)
- )
-
- -- 收到其他玩家加入房间的信息
- LZPdkMessage.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)
- )
-
- -- 广播玩家准备
- LZPdkMessage.GameUserReady = defClass("GameUserReady"
- -- 准备玩家ID
- ,defVar("userId", VT_Int, 0)
- )
-
-
- -- 玩家进入房间
- LZPdkMessage.GameUserEnter = defClass("GameUserEnter"
- -- 玩家id
- ,defVar("userId", VT_Int, 0)
- ,defVar("seatId", VT_Int, 0)
- ,defVar("jsonInfo", VT_String, "")
- ,defVar("playFlag", VT_Short, 0)
- --道具信息
- ,defVar("strExtInfo", VT_String, "")
- )
-
-
- -- 玩家离开房间
- LZPdkMessage.GameUserLogoutSuc = defClass("GameUserLogout"
- -- 玩家积分
- ,defVar("totalMoney", VT_Long, 0)
- -- 是否回到大厅
- ,defVar("logoutFlag", VT_Short, 0)
- --用户的房卡信息,格式"10,5", 以逗号分隔,第一个表示历史房卡数量, 第二个表示当前房卡数量
- ,defVar("extInfo", VT_String, "")
- )
-
- -- 广播桌子其他玩家离开
- LZPdkMessage.GameBroadcastUserLogout = defClass("GameBroadcastUserLogout"
- -- 玩家ID
- ,defVar("userId", VT_Int, 0)
- ,defVar("unuse", VT_Int, 0)
- )
-
- -- 解散房间请求
- LZPdkMessage.DismissRequest = defClass("DismissRequest"
- -- 玩家操作 1: 表示发起解散 2:同意解散 3:不同意解散
- , defVar("operateType", VT_UChar, 0)
- )
-
- -- 每个玩家对于解散房间的处理
- LZPdkMessage.UserDismissResult = defClass("UserDismissResult"
- -- nUserId
- , defVar("nUserId", VT_Int, 0)
- -- 0: 未做任何操作 1: 请求解散 2: 同意解散 3:不同意解散
- , defVar("dismissState", VT_UChar, 0)
- )
- -- 解散房间请求的结果
- LZPdkMessage.DismissResult = defClass("DismissResult"
- -- 错误码:
- -- 0:成功
- -- 1:operateType取值范围不对
- -- 2:当前没人发起解散
- -- 3:已经有人申请解散
- , defVar("errorCode", VT_Short, 0)
- -- 玩家操作
- , defVar("operateType", VT_Int, 0)
-
- -- 桌子上其他用户数量
- , defVar("memberList", VT_VectorToMap(LZPdkMessage.UserDismissResult, "nUserId"))
- -- 剩余解散超时时间
- , defVar("timeLeft", VT_Short, 0)
- )
-
- -- 服务器广播每个玩家对解散房间的处理
- LZPdkMessage.DismissResponse = defClass("DismissResponse"
- -- nUserId
- , defVar("nUserId", VT_Int, 0)
- -- 1: 表示发起解散 2:同意解散 3:不同意解散
- , defVar("operateType", VT_UChar, 0)
- -- 剩余解散超时时间
- , defVar("timeLeft", VT_Short, 0)
- )
-
- -- 收到其他玩家掉线的信息
- LZPdkMessage.OtherDroppedResponse = defClass("OtherDroppedResponse"
- -- 用户uid
- , defVar("nUserId", VT_Int, 0)
- -- 0: 用户掉线回来, 1: 用户已经掉线
- , defVar("nDroppedStatus", VT_Short, 0)
- )
-
- --------------------------------------------------------------------------
- -- 游戏处理逻辑协议
- --------------------------------------------------------------------------
- -- 当桌子上所有玩家都准备后,服务器广播本局游戏开始
- LZPdkMessage.GameStartUser = defClass("GameStartUser"
- ,defVar("nUserId", VT_Int, 0)
- ,defVar("nSeatId", VT_Int, 0)
- )
- LZPdkMessage.GameBroadcastGameStart = defClass("GameBroadcastGameStart"
- -- 当前局数
- ,defVar("gameStartCount", VT_Short, 0)
- ,defVar("totalGamenum", VT_Short, 0)
- ,defVar("roomOwnedUid", VT_Int, 0)
- ,defVar("players", VT_Vector(LZPdkMessage.GameStartUser), {})
- )
-
- -- 给玩家发牌
- LZPdkMessage.GameSendCards = defClass("GameSendCards"
- ,defVar("bankerSeat", VT_Int, 0)
- ,defVar("userId", VT_Int, 0)
- ,defVar("cards", VT_Vector(VT_UChar), {})
- ,defVar("cardPlayerInfo", VT_String, "")--记牌器json串
- )
-
- -- 服务器返回最佳提示牌组
- LZPdkMessage.GameReturnTips = defClass("GameReturnTips"
- ,defVar("userId", VT_Int, 0)
- ,defVar("cards", VT_Vector(VT_UChar), {})
- )
-
- -- 客户端请求出牌
- LZPdkMessage.GameOutCards = defClass("GameOutCards"
- -- ,defVar("byCardNum", VT_Short, 0)--不用写长度
- ,defVar("byOutCard", VT_Vector(VT_UChar), {})
- )
-
- -- 服务器返回出牌错误
- LZPdkMessage.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, //四带一
- ]]
- LZPdkMessage.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:接牌
- ,defVar("serPut", VT_Short, 0)--是否服务器代打的 0-不是 1-是(金币场用)
- ,defVar("cardPlayerInfo", VT_String, "")--记牌器json串
- ,defVar("isMustBomb", VT_UChar, 0)--是否只有炸弹能接牌
- )
-
-
- -- 游戏单局结算
- LZPdkMessage.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), {})
- ,defVar("groupCardInfo", VT_String, "")--组合牌(打出去的牌)
- ,defVar("allBombTimes", VT_Short, 0)
- )
-
- -- 小局炸弹分数
- LZPdkMessage.GameBombScore = defClass("GameBombScore"
- ,defVar("userId", VT_Int, 0)
- ,defVar("turnBombScore", VT_String, 0)--单局炸弹分
- ,defVar("reserved", VT_String, "")--字段,保留后续使用
- )
-
- LZPdkMessage.GameBroadcastResult = defClass("GameBroadcastResult"
- ,defVar("gameStartCount", VT_Short, 0)
- ,defVar("totalGamenum", VT_Short, 0)
- ,defVar("bankSeatId", VT_Int, 0)
- ,defVar("players", VT_Vector(LZPdkMessage.UserResult), {})
- ,defVar("stopFlag", VT_Int, 0)
- ,defVar("dipaiCard", VT_String, "")-- 底牌 空格隔开的字符串
- ,defVar("playersBombScore", VT_Vector(LZPdkMessage.GameBombScore), {})--单局炸弹得分
- )
-
- -- 游戏大结算
- LZPdkMessage.GameOverItem = defClass("GameOverItem"
- ,defVar("userId", VT_Int, 0)
- ,defVar("totalScore", VT_String, 0)
- ,defVar("extString", VT_String, "")
- --房卡信息
- ,defVar("countInfo", VT_String, "")
- )
- LZPdkMessage.GameGameOver = defClass("GameGameOver"
- ,defVar("players", VT_Vector(LZPdkMessage.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, //游戏结束
- ]]
- LZPdkMessage.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("fastStartStatus", VT_Int, 0)
- --托管状态
- ,defVar("isEntrusting", 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), {})
- ,defVar("groupCardInfo", VT_String, "")--组合牌(打出去的牌)
- ,defVar("allBombTimes", VT_Short, 0)
- )
-
- -- 快速开始玩家对应状态
- LZPdkMessage.FastStartGameUserItem = defClass("FastStartGameUserItem"
- ,defVar("userId", VT_Int, 0)
- ,defVar("fastStartStatus", VT_Int, 0)
- )
-
- -- 托管状态
- LZPdkMessage.UserHostingInfo = defClass("UserHostingInfo"
- ,defVar("userId", VT_Int, 0)
- ,defVar("hostStatus", VT_UChar, 0)
- )
-
- --断线重连
- LZPdkMessage.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(LZPdkMessage.GameRecoverItem), {})
- ,defVar("extInfo", VT_String, "")
- --快速开始状态1:有人申请提前开始
- ,defVar("userFastStartStatus", VT_UChar, 0)
- --快速开始剩余时间
- ,defVar("fastStartTimeout", VT_Int, 0)
- --每个玩家对应快速开始状态
- --,defVar("fastStartPlayersStatus", VT_Vector(LZPdkMessage.FastStartGameUserItem), {})
- --当前操作玩家id
- ,defVar("curOpUid", VT_Int, 0)
- --当前操作玩家操作类型 0-pass 1-可以出牌也可以pass 2-只能出牌
- ,defVar("curOpType", VT_UChar, 0)
- --记牌器json串
- ,defVar("cardPlayerInfo", VT_String, "")
- -- 底牌 空格隔开的字符串
- ,defVar("dipaiCard", VT_String, "")
- --最后一手牌是否只有炸弹能接牌
- ,defVar("isMustBomb", VT_UChar, 0)
- )
-
- -- 0X8109 GAME_CAMMAND_BROADCAST_SCORES
- -- 更新玩家分数
- LZPdkMessage.GameUserScoreItem = defClass("GameUserScoreItem"
- ,defVar("userId", VT_Int, 0)
- ,defVar("totalScore", VT_String, 0)
- )
- LZPdkMessage.GameUpdateScore = defClass("GameUpdateScore"
- ,defVar("players", VT_Vector(LZPdkMessage.GameUserScoreItem), {})
- )
-
- -- 广播玩家轮次
- LZPdkMessage.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)
- )
-
- --快速开始请求
- LZPdkMessage.FastStartRequest = defClass("FastStartRequest"
- , defVar("result", VT_UChar, 1)
- )
-
- --快速开始请求结果
- LZPdkMessage.FastStartRequestResult = defClass("FastStartRequestResult"
- , defVar("result", VT_Short, -1)
- )
-
- -- 服务器广播快速开始状态
- LZPdkMessage.FastPlayer = defClass("FastPlayer"
- , defVar("nUserId", VT_Int, 0)
- --1:发起申请 2:同意 3:拒绝 4:未操作 5:有人进来或者退出 6:超时未处理
- , defVar("nStatus", VT_UChar, 0)
- )
- -- 服务器广播快速开始状态
- LZPdkMessage.FastStartStatus = defClass("FastStartStatus"
- --发起玩家id
- , defVar("nUserId", VT_Int, 0)
- --1:发起申请 2:同意 3:拒绝 4:未操作 5:有人进来或者退出 6:超时未处理
- , defVar("nStatus", VT_Short, 0)
- --玩家操作状态列表
- , defVar("pList", VT_Vector(LZPdkMessage.FastPlayer), {})
- --剩余时间
- , defVar("timeOut", VT_Short, 0)
- )
-
- -- 游戏快速开始
- LZPdkMessage.FastSuccessPlayer = defClass("FastSuccessPlayer"
- , defVar("nUserId", VT_Int, 0)
- , defVar("nSeatId", VT_UChar, 0)
- )
- -- 游戏快速开始玩家
- LZPdkMessage.UpdateSeatIds = defClass("UpdateSeatIds"
- , defVar("pList", VT_Vector(LZPdkMessage.FastSuccessPlayer), {})
- )
-
- --server收到0x8060协议后,广播当前桌子上所有用户
- LZPdkMessage.ServerChangeUserInfo = defClass("ServerChangeUserInfo"
- --更新信息的用户uid
- , defVar("uid", VT_Int, -1)
- --用户信息
- , defVar("userInfo", VT_String, "")
- --保留字段,暂不使用
- , defVar("reserved", VT_String, "")
- )
-
- return LZPdkMessage
|