local message = {} message.Card = defClass("Card" ,defVar("card", VT_Byte, 0) ) message.RoomMemberInfo = defClass("RoomMemberInfo" ,defVar("nUserId", VT_Int, 0) ,defVar("nSeatId", VT_Int, 0) ,defVar("nOnlineStatus", VT_Byte, 0) ,defVar("nPlayerFlag", VT_Byte, 0) ,defVar("userInfo", VT_String, 0) ,defVar("nTotalScore", VT_Int, 0) ) message.SitDownSuccessResponse = defClass("SitDownSuccessResponse" ,defVar("gameId", VT_Short, 0) ,defVar("nShowTableId", VT_Int, 0) ,defVar("nMaxPlayCount", VT_Int, 0) ,defVar("nRoomOwnedUid", VT_Int, 0) ,defVar("nTotalGameNum", VT_Short, 0) ,defVar("strGameInfo", VT_String, 0) ,defVar("memberList", VT_VectorToMap(message.RoomMemberInfo,"nUserId")) ) -- 进入桌子失败 message.SitDownFailedResponse = defClass("SitDownFailedResponse" -- 错误码 , defVar("nErrorCode", VT_UChar, 0) ) -- 收到其他玩家加入房间的信息 message.OtherSitDownResponse = defClass("OtherSitDownResponse" -- 用户uid , defVar("nUserId", VT_Int, 0) -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1 , defVar("nSeatId", VT_Int, 0) -- 用户信息 , defVar("userInfo", VT_String, "") -- 用户总的分数 , defVar("nTotalScore", VT_Int, 0) ) message.OtherLogoutResponse = defClass("OtherLogoutResponse" ,defVar("nUserId", VT_Int, 0) ) message.OutCardSuccess = defClass("OutCardSuccess" --操作玩家id ,defVar("nUserId", VT_Int, 0) --操作类型 0 pass 1 出牌 ,defVar("opType", VT_Short, 0) --牌型 ,defVar("cardsType", VT_Short, 0) --剩余手牌数 ,defVar("leftNum", VT_Short, 0) --原始数据 ,defVar("cardList",VT_Vector(message.Card),{}) --解析了癞子后的数据 ,defVar("cardList2",VT_Vector(message.Card),{}) --是否由服务器代操作 1-是 0-否 ,defVar("serPut", VT_Byte, 0) ) message.OtherDroppedResponse = defClass("OtherDroppedResponse" -- 用户uid , defVar("nUserId", VT_Int, 0) -- 0: 用户掉线回来, 1: 用户已经掉线 , defVar("nDroppedStatus", VT_Short, 0) ) message.BroadPlayerOutCard = defClass("BroadPlayerOutCard" ,defVar("nUserId", VT_Int, 0) --0-只能pass 1-可以选择出也可以不出 2-必须出牌 ,defVar("opType", VT_Short, 0) ) message.cmd_0x800f_RespStructure = defClass("cmd_0x800f_RespStructure" ,defVar("nUserId", VT_Int, 0) ,defVar("nOnlineStatus", VT_Short, 0) ) message.UserExitResponse = defClass("UserExitResponse" --用户当前积分 ,defVar("nGold", VT_Long, 0) ,defVar("userInfo", VT_String, 0) ,defVar("logoutFlag", VT_Short, 0) ,defVar("tableOverFlag", VT_Short, 0) ) message.BroadCastNoPlayPlayer = defClass("onBroadCastNoPlayPlayer" --不参与游戏玩家ID ,defVar("uid", VT_Int, 0) ) message.OutCardRanking = defClass("OutCardRanking" ,defVar("uid", VT_Int, 0) ,defVar("ranking", VT_Byte, 0) ) message.FriendAppear = defClass("FriendAppear" ,defVar("nBankerHelper", VT_Int, 0) ) message.BroadCastBankerCallCard = defClass("BroadCastBankerCallCard" ,defVar("nBankerUserId", VT_Int, 0) ,defVar("noCards", VT_Vector(message.Card),{}) ) message.PlayerBaoPaiResult = defClass("PlayerBaoPaiResult" ,defVar("askUid", VT_Int, 0) ,defVar("opType", VT_Byte, 0) --是否由服务器代操作1-是 0-否 ,defVar("serPut", VT_Byte, 0) ) message.playerList = defClass("playerList" ,defVar("nUserId", VT_Int, 0) ,defVar("nSeatId", VT_Short, 0) ,defVar("nScore", VT_String, 0) ,defVar("nTotalScore", VT_String, 0) ,defVar("userInfo", VT_String, "") --玩家本轮排名,各自为战和2v2模式下有用 ,defVar("ranking", VT_Short, 0) --本轮是否在玩或旁观(1在玩 0旁观) ,defVar("mPlaying", VT_Short, 0) --玩家打出炸弹数(改为了分数) ,defVar("mBombTimes", VT_String, 0) --玩家输赢//输赢 -1 不参与 0 输 1 赢 2 平局 ,defVar("mWinLose", VT_Int, 0) --手牌 ,defVar("handCardList", VT_Vector(message.Card),{}) --初始手牌 ,defVar("firstCardList", VT_Vector(message.Card),{}) ) message.XiaoJuTongJi = defClass("XiaoJuTongJi" ,defVar("nUserId", VT_Int, 0) ,defVar("countInfo", VT_String, "") ) message.GameXiaoJuResponse = defClass("GameXiaoJuResponse" --最先出完牌ID ,defVar("nWinId", VT_Int, 0) --庄家ID ,defVar("mBankerUserId", VT_Int, 0) --庄家伙伴ID ,defVar("nBankerHelper", VT_Int, 0) --时间 ,defVar("mTime", VT_Int, 0) --当前局数 ,defVar("nGameStartCount", VT_Int, 0) --游戏是否结束 ,defVar("isGameOver", VT_Short, 0) --玩家列表 ,defVar("playerList", VT_VectorToMap(message.playerList,"nUserId")) --特殊牌型 0-普通 1-十三烂 ,defVar("mSpecialType", VT_Short, 0) --添加玩家小局统计信息 ,defVar("countInfos", VT_Vector(message.XiaoJuTongJi),{}) ) message.GameBankerSendCallCard = defClass("GameBankerSendCallCard" ,defVar("card", VT_Byte, 0) ) message.GameBankerSendCallCardResponse = defClass("GameBankerSendCallCardResponse" ,defVar("nBankerUserId", VT_Int, 0) ,defVar("card", VT_Byte, "") --是否由服务器代操作 1-是 0-否 ,defVar("serPut", VT_Byte, "") ) message.PlayerInfo8009 = defClass("PlayerInfo8009" ,defVar("nUserId", VT_Int, 0) ,defVar("nSeatId", VT_Short, 0) ,defVar("nPlayerFlag", VT_Short, 0) ,defVar("disbandStatus", VT_Byte, 0) ,defVar("nOnlineStatus", VT_Byte, 0) ,defVar("userInfo", VT_String, 0) ,defVar("nTurnScore", VT_String, 0) ,defVar("nTotalScore", VT_String, 0) --玩家当前排名(各自为战或者2v2有用) ,defVar("ranking", VT_Short, 0) --玩家爆牌状态 0x01未操作状态 0x02不爆 0x03爆牌 0x04反包 0x05不反 ,defVar("baoPaiType", VT_Byte, 0) --是否参与本局游戏1参与 0观战 ,defVar("IsPlaying", VT_Byte, 0) --手牌 ,defVar("handCardList", VT_Vector(message.Card),{}) ) message.TuoGuanState = defClass("TuoGuanState" ,defVar("nUserId", VT_Int, 0) ,defVar("state", VT_Byte, 0) ) message.FastStartSuccessPlayerInfo = defClass("FastStartSuccessPlayerInfo" ,defVar("uid", VT_Int, 0) ,defVar("optType", VT_Int, 0) ) message.GameReconnection = defClass("GameReconnection" --房间人数 ,defVar("nMaxPlayCount", VT_Short, 0) --房主uid ,defVar("nRoomOwnedUid", VT_Int, 0) --开始游戏的Uid ,defVar("nStartGameUid", VT_Int, 0) --当前局数 ,defVar("nGameStartCount", VT_Short, 0) --总游戏局数 ,defVar("nTotalGameNum", VT_Short, 0) --游戏信息 ,defVar("strGameInfo", VT_String, 0) --是否是申请解散状态 ,defVar("bUserDisbandGame", VT_Byte, 0) --桌子状态 ,defVar("nStatus", VT_Short, 0) --解散倒计时 ,defVar("disBandTimeOut", VT_Int, 0) --桌子号 ,defVar("nShowTableId", VT_Int, 0) --庄家叫的牌 ,defVar("cAskCard", VT_Byte, 0) --庄家UID ,defVar("nBankerUserId", VT_Int, 0) --2v2朋友现身 1 现身 0 没有 ,defVar("bFriendAppear", VT_Byte, 0) --2v2 庄家朋友ID ,defVar("nBankerHelper", VT_Int, 0) --最后一手牌操作 --当前桌上最后一手牌出牌者id ,defVar("GetOpUid", VT_Int, 0) --当前桌上最后一手牌牌型 ,defVar("cardType", VT_Short, 0) --当前桌上最后一手牌 ,defVar("cardList", VT_Vector(message.Card),{}) --玩家信息 ,defVar("arrayTableInfo", VT_VectorToMap(message.PlayerInfo8009,"nUserId")) --当前叫爆牌玩家 ,defVar("currentUserId", VT_Int, 0) --isHaveBao ,defVar("opType", VT_Byte, 0) ,defVar("noCards", VT_Vector(message.Card),{}) ,defVar("curOpType", VT_Byte, 0) ,defVar("opTypeTime", VT_Byte, 0) ,defVar("bUserFastStartGame", VT_Byte, 0) ,defVar("nFastStartTimeOut", VT_Int, 0) ,defVar("fastStartPlayerInfos", VT_Vector(message.FastStartSuccessPlayerInfo),{}) ,defVar("playerTuoGuanState", VT_Vector(message.TuoGuanState),{}) ) message.GameBankerChange = defClass("GameBankerChange" ,defVar("nBankerUserId", VT_Int, 0) ) message.DaJuPlayerInfo = defClass("DaJuPlayerInfo" ,defVar("nUserId", VT_Int, 0) ,defVar("nTotalScore", VT_String, 0) ,defVar("userInfo", VT_String, 0) ,defVar("totalInfo", VT_String, 0) ) message.GameDaJuResponse = defClass("GameDaJuResponse" ,defVar("nRoomOwnedUid", VT_Int, 0) ,defVar("endtime", VT_Int, 0) ,defVar("stopFlag", VT_Int, 0) ,defVar("allData", VT_Vector(message.DaJuPlayerInfo),{}) ) message.BaoPai = defClass("BaoPai" --2-不爆 3-爆牌 4-反爆 5-不反 ,defVar("opType", VT_Byte, 0) ) message.BaoPaiResponse = defClass("BaoPaiResponse" ,defVar("errType", VT_Byte, 0) ) message.BaoPaiStartBroad = defClass("BaoPaiStartBroad" ,defVar("askUid", VT_Int, 0) ,defVar("opType", VT_Int, 0) ) message.BroadCastNoPlayPlayer = defClass("BroadCastNoPlayPlayer" ,defVar("uid", VT_Int, 0) ,defVar("opType", VT_Int, 0) ) message.GameSendCardResponse = defClass("GameSendCardResponse" ,defVar("nUserId", VT_Int, 0) ,defVar("cardList", VT_Vector(message.Card),{}) ) message.GameUpdateStatus = defClass("GameUpdateStatus" ,defVar("nStatus", VT_Int, 0) ) message.OutCard = defClass("OutCard" ,defVar("opType", VT_Byte, 0) ,defVar("cards", VT_Vector(VT_UChar),{}) ,defVar("cardsEx", VT_Vector(VT_UChar),{}) ) message.OutCardError = defClass("OutCardError" ,defVar("nUserId", VT_Int, 0) ,defVar("errorType", VT_Short, 0) ,defVar("cards", VT_Vector(message.Card),{}) ) message.PlayerInfo = defClass("PlayerInfo" ,defVar("nUserId", VT_Int, 0) ,defVar("nSeatId", VT_Short, 0) ) message.sendTuoGuan = defClass("sendTuoGuan" --1-请求托管 2-请求取消托管 ,defVar("entrustType", VT_Byte, 0) ) message.TuoGuanResponse = defClass("TuoGuanResponse" ,defVar("nUserId", VT_Int, 0) --托管状态 1-托管中 0-未托管 ,defVar("entrustType", VT_Byte, 0) ) message.GameStartResponse = defClass("GameStartResponse" ,defVar("nGameStartCount", VT_Short, 0) ,defVar("nTotalGameNum", VT_Short, 0) ,defVar("nRoomOwnedUid", VT_Int, 0) ,defVar("nBankerSeatId", VT_Short, 0) ,defVar("playerList", VT_Vector(message.PlayerInfo),{}) ) --server收到0x8060协议后,广播当前桌子上所有用户 message.ServerChangeUserInfo = defClass("ServerChangeUserInfo" --更新信息的用户uid , defVar("uid", VT_Int, -1) --用户信息 , defVar("userInfo", VT_String, "") --保留字段,暂不使用 , defVar("reserved", VT_String, "") ) --客户端通过协议0x8060通知server, 用户信息改变 message.ClientChangeUserInfo = defClass("ClientChangeUserInfo" --用户信息,jason格式,同登录协议 , defVar("userInfo", VT_String, "") ) -- 快速开始请求 --0x8200 --[[ FAST_START_REQ_TYPE_START = 1, //请求开始游戏 FAST_START_REQ_TYPE_AGREE = 2, //同意开始游戏 FAST_START_REQ_TYPE_DISAGREE = 3, //拒绝开始游戏 --]] message.GameStartRequest = defClass("GameStartRequest" , defVar("optType", VT_UChar, 0) ) -- 服务器广播快速开始状态(成功) --0x8201 --[[ FAST_START_REQ_TYPE_START = 1, //请求开始游戏 FAST_START_REQ_TYPE_AGREE = 2, //同意开始游戏 FAST_START_REQ_TYPE_DISAGREE = 3, //拒绝开始游戏 FAST_START_REQ_TYPE_INIT = 4, FAST_START_REQ_TYPE_NEW_OR_OUT = 5, //有人进来或者退出 FAST_START_REQ_TYPE_TIMEOUT = 6, --]] message.FastPlayer = defClass("FastPlayer" , defVar("uid", VT_Int, 0) , defVar("optType", VT_UChar, 0) ) message.FastStartStatus = defClass("FastStartStatus" , defVar("uid", VT_Int, 0) , defVar("optType", VT_Short, 0) , defVar("playerList", VT_Vector(message.FastPlayer), {}) , defVar("nleftStartGameTimeout", VT_Short, 0) ) -- 快速开始请求结果(失败) --0x8202 --[[ FAST_START_GAME_RET_NOT_ENOUGH = 1, //人数不够 FAST_START_GAME_OTHER_REQ = 2, //其他人已请求 FAST_START_GAME_RET_ENOUGH = 3, //人数已满 FAST_START_GAME_RET_INVALID = 4, //非法操作 --]] message.FastStartRequestError = defClass("FastStartRequestError" , defVar("result", VT_Short, -1) ) -- 快速开始,所有人同意,广播用户新位置 message.FastSuccessPlayer = defClass("FastSuccessPlayer" , defVar("uid", VT_Int, 0) , defVar("nSeatId", VT_UChar, 0) ) message.UpdateSeatIds = defClass("UpdateSeatIds" , defVar("playerList", VT_Vector(message.FastSuccessPlayer), {}) ) message.IntPacket = defClass("IntPacket" --nUserId , defVar("nUserId", VT_Int, -1) ) -- 解散房间请求 message.DismissRequest = defClass("DismissRequest" -- 玩家操作 1: 表示发起解散 2:同意解散 3:不同意解散 , defVar("operateType", VT_UChar, 0) ) -- 每个玩家对于解散房间的处理 message.UserDismissResult = defClass("UserDismissResult" -- nUserId , defVar("nUserId", VT_Int, 0) -- 0: 未做任何操作 1: 请求解散 2: 同意解散 3:不同意解散 , defVar("dismissState", VT_UChar, 0) ) -- 解散房间请求的结果 message.DismissResult = defClass("DismissResult" -- 错误码: -- 0:成功 -- 1:operateType取值范围不对 -- 2:当前没人发起解散 -- 3:已经有人申请解散 , defVar("errorCode", VT_Short, 0) -- 玩家操作 , defVar("operateType", VT_Int, 0) -- 桌子上其他用户数量 , defVar("memberList", VT_VectorToMap(message.UserDismissResult, "nUserId")) -- 剩余解散超时时间 , defVar("timeLeft", VT_Short, 0) ) -- 服务器广播每个玩家对解散房间的处理 message.DismissResponse = defClass("DismissResponse" -- nUserId , defVar("nUserId", VT_Int, 0) -- 1: 表示发起解散 2:同意解散 3:不同意解散 , defVar("operateType", VT_UChar, 0) -- 剩余解散超时时间 , defVar("timeLeft", VT_Short, 0) ) -- 本地存储完整的房间数据 message.RoomInfoLocal = defClass("RoomInfoLocal" -- 用户房间号 , defVar("nShowTableId", VT_Int, 0) -- 房间最大人数 , defVar("nMaxPlayCount", VT_Int, 0) -- 用户房主 , defVar("nRoomOwnedUid", VT_Int, 0) -- 总的局数 , defVar("nTotalGameNum", VT_Short, 0) -- 房间信息 , defVar("strGameInfo", VT_String, "") -- 用户 , defVar("memberList", VT_VectorToMap(message.RoomMemberInfo, "nUserId")) -- 当前局数 , defVar("nGameStartCount", VT_Short, 0) --解散总时间 , defVar("nDismissToTalTime", VT_Short, 0) -- 庄家座位id , defVar("nBankSeatId", VT_UChar, 99) -- 是否有人发起解散 , defVar("bUserDisbandGame", VT_UChar, 0) -- 解散剩余时间,没人发起解散,此值为0 , defVar("nDismissStateTime", VT_Int, 0) --玩家信息 ,defVar("arrayTableInfo", VT_VectorToMap(message.PlayerInfo8009,"nUserId")) ) --板子炮做金币场时已经定义了托管相关的数据,注释掉这里 --[[-- 托管 TuoGuan = defClass("TuoGuan" -- 用户uid , defVar("optType", VT_Short, 0) ) -- 用户托管信息 TuoGuanInfo = defClass("TuoGuanInfo" -- 用户uid , defVar("nUserID", VT_Int, 0) -- , defVar("aiStatus", VT_UChar, 0) -- , defVar("reserve", VT_String, "") ) -- 玩家超时系统自动托管 以及自动托管后,服务器都会广播当前桌上所有玩家的托管状态 TuoGuanResponse = defClass("TuoGuanResponse" -- 用户uid , defVar("userCnt", VT_VectorToMap(TuoGuanInfo,"nUserID")) )--]] return message