local RoomMessage = {} -- server收到0x8060协议后,广播当前桌子上所有用户 RoomMessage.ServerChangeUserInfo = defClass("ServerChangeUserInfo" --更新信息的用户uid , defVar("uid", VT_Int, -1) --用户信息 , defVar("userInfo", VT_String, "") --保留字段,暂不使用 , defVar("reserved", VT_String, "") ) -- 准备 RoomMessage.IntPacket = defClass("IntPacket" --nUserId , defVar("nUserId", VT_Int, -1) ) RoomMessage.Cards = defClass("Cards" --牌 , defVar("card", VT_UChar, -1) ) -- 收到其他玩家掉线的信息 RoomMessage.OtherDroppedResponse = defClass("OtherDroppedResponse" -- 用户uid , defVar("nUserId", VT_Int, 0) -- 0: 用户掉线回来, 1: 用户已经掉线 , defVar("nOnlineStatus", VT_Short, 0) ) RoomMessage.GameBeginResponse = defClass("GameBeginResponse" --错误类型 ,defVar("nErrNo",VT_UChar,0) --可以开始游戏的用户ID ,defVar("nUserId",VT_Int,0) ) -- 收到其他玩家加入房间的信息 RoomMessage.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) ) -- 进入桌子失败 RoomMessage.SitDownFailedResponse = defClass("SitDownFailedResponse" -- 错误码 , defVar("nErrorCode", VT_UChar, 0) ) -- 房间中的玩家信息 RoomMessage.RoomMemberInfo = defClass("RoomMemberInfo" -- 用户uid , defVar("nUserId", VT_Int, 0) -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1 , defVar("nSeatId", VT_Int, -1) -- 在线状态 0离线 1在线 , defVar("nOnlineStatus", VT_UChar, 0) -- 是否正在玩 -1: 用户站起 0: 用户坐下 1: 准备状态 2: 正在玩 , defVar("nPlayerFlag", VT_UChar, 0) -- 用户信息 , defVar("userInfo", VT_String, "") -- 用户总的分数 , defVar("nTotalScore", VT_Int, 0) ) -- 用户在桌子上坐下成功协议 RoomMessage.SitDownSuccessResponse = defClass("SitDownSuccessResponse" -- 游戏ID , 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, "") -- 用户 , defVar("memberList", VT_VectorToMap(RoomMessage.RoomMemberInfo, "nUserId")) ) -- 解散房间请求 RoomMessage.DismissRequest = defClass("DismissRequest" -- 玩家操作 1: 表示发起解散 2:同意解散 3:不同意解散 , defVar("operateType", VT_UChar, 0) ) -- 每个玩家对于解散房间的处理 RoomMessage.UserDismissResult = defClass("UserDismissResult" -- nUserId , defVar("nUserId", VT_Int, 0) -- 0: 未做任何操作 1: 请求解散 2: 同意解散 3:不同意解散 , defVar("dismissState", VT_UChar, 0) ) -- 解散房间请求的结果 RoomMessage.DismissResult = defClass("DismissResult" -- 错误码: -- 0:成功 -- 1:operateType取值范围不对 -- 2:当前没人发起解散 -- 3:已经有人申请解散 , defVar("errorCode", VT_Short, 0) -- 玩家操作 , defVar("operateType", VT_Int, 0) -- 桌子上其他用户数量 , defVar("memberList", VT_VectorToMap(RoomMessage.UserDismissResult, "nUserId")) -- 剩余解散超时时间 , defVar("timeLeft", VT_Short, 0) ) -- 服务器广播每个玩家对解散房间的处理 RoomMessage.DismissResponse = defClass("DismissResponse" -- nUserId , defVar("nUserId", VT_Int, 0) -- 1: 表示发起解散 2:同意解散 3:不同意解散 , defVar("operateType", VT_UChar, 0) -- 剩余解散超时时间 , defVar("timeLeft", VT_Short, 0) ) -- 退出房间成功,则读取房间数据 RoomMessage.UserExitResponse = defClass("UserExitResponse" -- 用户当前积分 , defVar("nTotalScore", VT_Long, 0) -- 用户的房卡信息,格式"10,5", 以逗号分隔,第一个表示历史房卡数量, 第二个表示当前房卡数量 , defVar("userInfo", VT_String, "") -- 是否要求用户退出,返回大厅,0: 不退出, 1: 退出 , defVar("logoutFlag", VT_Short, 0) -- 房间结束原因(0:正常结束,1:俱乐部群主解散,2:房主解散,3:长时间未开始,4:长时间未结束) , defVar("tableOverFlag", VT_Short, 0) ) -- 收到其他玩家退出房间的信息 RoomMessage.OtherLogoutResponse = defClass("OtherLogoutResponse" -- 用户uid , defVar("nUserId", VT_Int, 0) ) --申请提前开始游戏(座位没坐满) RoomMessage.EarlyStartRequest = defClass("EarlyStartRequest" -- 玩家操作 0初始状态 1申请开始游戏 2同意开始游戏 3不同意开始游戏 , defVar("optType", VT_Short, 0) ) -- 每个玩家对于提前开始游戏的处理 RoomMessage.UserEarlyStartSInfo = defClass("UserEarlyStartSInfo" -- nUserId , defVar("nUserId", VT_Int, 0) -- 0初始状态 1申请开始游戏 2同意开始游戏 3不同意开始游戏 , defVar("optType", VT_UChar, 0) -- 保留字段,暂不使用 , defVar("reserved", VT_String, "") ) --断线重连Player RoomMessage.ReconnectPlayer = defClass("ReconnectPlayer" , defVar("nUserId", VT_Int, 0) , defVar("nSeatId", VT_Short, 0) , defVar("nPlayerFlag", VT_Short, 0) , defVar("disbandStatus", VT_UChar, 0) , defVar("nOnlineStatus", VT_UChar, 0) , defVar("userInfo", VT_String, "") , defVar("nTurnScore", VT_String, 0) , defVar("nTotalScore", VT_String, 0) , defVar("bAskLoard", VT_Byte, 0) , defVar("askLoard", VT_Int, 0) , defVar('bAskQiang', VT_UChar, 0) -- 是否抢过地主 , defVar("bAskBei", VT_Byte, 0) , defVar('bAskRangPai', VT_Byte, 0) -- 是否让过牌 , defVar('askRangNum', VT_Byte, 0) -- 选择的让牌数 , defVar("askBei", VT_Int, 0) , defVar("handCards", VT_Vector(RoomMessage.Cards)) ) --断线重连玩家出牌过数据 RoomMessage.passInfo = defClass("passInfo" , defVar("nUserId", VT_Int, 0) , defVar("nGuo", VT_Short, 0) -- 重连前,玩家是否操作了过 ) --断线重连 RoomMessage.GameReconnection = defClass("GameReconnection" -- 房间最大人数 , defVar("nMaxPlayCount", VT_Short, 0) -- 用户房主 , defVar("nRoomOwnedUid", VT_Int, 0) -- 开始玩家 , defVar("nStartGameUid", VT_Int, 0) -- 当前局数 , defVar("nGameStartCount", VT_Short, 0) -- 总的局数 , defVar("nTotalGameNum", VT_Short, 0) -- 游戏信息 , defVar("strGameInfo", VT_String, "") -- 是否有人发起解散 , defVar("bUserDisbandGame", VT_UChar, 0) -- 游戏状态 , defVar("nStatus", VT_Short, 0) -- 解散剩余时间,没人发起解散,此值为0 , defVar("nDismissStateTime", VT_Int, 0) -- 用户房间号 , defVar("nShowTableId", VT_Int, 0) -- 游戏倍数(炸弹数) , defVar("nBombs", VT_Int, 0) -- 游戏底分 , defVar("nCurBaseScore", VT_Int, 0) -- 游戏倍数 , defVar('nMult', VT_Int, 0) -- 让牌数 , defVar('nRang', VT_Int, 0) -- 地主ID , defVar("nBankerId", VT_Int, 0) -- 底牌 , defVar("bankerCards", VT_Vector(RoomMessage.Cards)) -- 最后一手牌操作uid , defVar("lastUserId", VT_Int, 0) -- 当前桌上最后一手牌牌型 , defVar("lastCardType", VT_Short, 0) -- 当前桌上最后一手牌 , defVar("lastCards", VT_Vector(RoomMessage.Cards)) -- 玩家信息 , defVar("memberList", VT_VectorToMap(RoomMessage.ReconnectPlayer, "nUserId")) -- 当前操作玩家 , defVar("currentUserId", VT_Int, 0) -- 操作剩余时间 , defVar("currentLeftTime", VT_Int, 0) -- 0-不是 1-必须 , defVar("opType", VT_UChar, 0) -- 总让数 , defVar('nRangTotalNums', VT_Int, 0) -- 过数据 , defVar('guoInfo', VT_VectorToMap(RoomMessage.passInfo, 'nUserId')) -- 底牌类型 , defVar('diType', VT_Short, 0) -- , defVar('guoInfo', VT_Vector(RoomMessage.passInfo)) ) RoomMessage.cmd_0x8104_Player = defClass("cmd_0x8104_Player" -- uid , defVar("nUserId", VT_Int, 0) -- 座位号 , defVar("nSeatId", VT_Short, 0) ) RoomMessage.cmd_0x8104_RespStructure = defClass("cmd_0x8104_RespStructure" -- 当前局数 , defVar("nGameStartCount", VT_Short, 0) -- 总局数 , defVar("nTotalGameNum", VT_Short, 0) -- 房主id , defVar("nRoomOwnedUid", VT_Int, 0) -- 手动开始游戏Uid(用不上) , defVar("nStartGameUid", VT_Int, 0) -- 庄家座位号 , defVar("nBankSeatId", VT_Short, 0) -- 明牌 , defVar('nMingCard', VT_Byte, 0) -- 玩家信息(暂时无用) , defVar("playerSeatInfo", VT_Vector(RoomMessage.cmd_0x8104_Player)) ) RoomMessage.cmd_0x8105_RespStructure = defClass("cmd_0x8105_RespStructure" -- 游戏状态 , defVar("nStatus", VT_Int, 0) ) RoomMessage.cmd_0x8106_RespStructure = defClass("cmd_0x8106_RespStructure" -- 玩家ID , defVar("nUserId", VT_Int, 0) -- 牌数据 , defVar("handCards", VT_Vector(RoomMessage.Cards)) ) RoomMessage.cmd_0x8108_RespStructure = defClass("cmd_0x8108_RespStructure" -- 玩家ID , defVar("nUserId", VT_Int, 0) -- 剩余时间 , defVar("leftTime", VT_Int, 0) -- 是否必须叫地主 0-不是 1-是 , defVar("mustBanker", VT_UChar, 0) -- 叫分模式 1叫地主 2叫分 , defVar('nPlayMode', VT_Int, 0) ) RoomMessage.cmd_0x8109_RespStructure = defClass("cmd_0x8109_RespStructure" -- 玩家ID , defVar("nUserId", VT_Int, 0) -- 叫分 , defVar("askLoard", VT_UChar, 0) --叫分模式 , defVar('nPlayMode', VT_Int, 0) ) -- 通知玩家抢地主 RoomMessage.cmd_0x8123_RespStructure = defClass('cmd_0x8123_RespStructure' -- 玩家id , defVar('nUserId', VT_Int, 0) -- 时间 , defVar('leftTime', VT_Int, 0) ) -- 抢地主结果 RoomMessage.cmd_0x8124_RespStructure = defClass('cmd_0x8124_RespStructure' -- 玩家id , defVar('nUserId', VT_Int, 0) -- 抢地主结果 , defVar('opType', VT_UChar, 0) ) -- 通知玩家让牌 RoomMessage.cmd_0x8121_RespStructure = defClass('cmd_0x8121_RespStructure' -- 玩家id , defVar('nUserId', VT_Int, 0) -- 时间 , defVar('leftTime', VT_Int, 0) -- 让牌数 , defVar('nRangPai', VT_Int, 0) ) -- 让牌结果 RoomMessage.cmd_0x8122_RespStructure = defClass('cmd_0x8122_RespStructure' -- 玩家id , defVar('nUserId', VT_Int, 0) -- 操作结果 , defVar('opType', VT_UChar, 0) -- 让牌数 , defVar('nRangPai', VT_Int, 0) -- 总让牌数 , defVar('nRangNums', VT_Int, 0) -- 包括抢地主那些 ) RoomMessage.cmd_0x810a_RespStructure = defClass("cmd_0x810a_RespStructure" -- 庄家id , defVar("nBankerId", VT_Int, 0) -- 底牌 , defVar("bankerCards", VT_Vector(RoomMessage.Cards)) ) RoomMessage.cmd_0x810c_RespStructure = defClass("cmd_0x810c_RespStructure" -- 剩余时间 , defVar("leftTime", VT_Int, 0) ) RoomMessage.cmd_0x810d_RespStructure = defClass("cmd_0x810d_RespStructure" -- 玩家ID , defVar("nUserId", VT_Int, 0) -- 加倍 , defVar("askBei", VT_UChar, 0) ) RoomMessage.cmd_0x810e_RespStructure = defClass("cmd_0x810e_RespStructure" -- 玩家ID , defVar("nUserId", VT_Int, 0) -- 操作类型 , defVar("opType", VT_Short, 0) ) RoomMessage.cmd_0x810f_RespStructure = defClass("cmd_0x810f_RespStructure" -- 玩家ID , defVar("nUserId", VT_Int, 0) -- 错误类型 , defVar("errorType", VT_Short, 0) ) RoomMessage.cmd_0x8110_RespStructure = defClass("cmd_0x8110_RespStructure" -- 玩家ID , defVar("nUserId", VT_Int, 0) -- 操作类型 , defVar("opType", VT_Short, 0) -- 牌型 , defVar("cardType", VT_Short, 0) -- 剩余手牌数 , defVar("leftNum", VT_Short, 0) -- 牌 , defVar("cards", VT_Vector(RoomMessage.Cards)) ) RoomMessage.cmd_0x8111_RespStructure = defClass("cmd_0x8111_RespStructure" -- 底分 , defVar("baseScore", VT_Int, 0) -- 倍率 , defVar("nBombs", VT_Int, 0) -- 倍数 , defVar('nMult', VT_Int, 0) -- 让牌数 , defVar('nRang', VT_Int, 0) -- 底牌类型 , defVar('diType', VT_Short, 0) ) RoomMessage.cmd_0x8112_Player = defClass("cmd_0x8112_Player" -- 玩家uid , defVar("nUserId", VT_Int, 0) -- 座位号 , defVar("nSeatId", VT_Short, 0) -- 本轮分数 , defVar("nTurnScore", VT_String, 0) -- 总分数 , defVar("nTotalScore", VT_String, 0) -- 加倍 , defVar("askBei", VT_Int, 0) -- 玩家信息 , defVar("userInfo", VT_String, "") -- 剩余手牌 , defVar("handCards", VT_Vector(RoomMessage.Cards)) ) RoomMessage.cmd_0x8112_PlayerOperateData = defClass("cmd_0x8112_Player" -- 玩家uid , defVar("nUserId", VT_Int, 0) -- 座位号 , defVar("nSeatId", VT_Short, 0) -- 扩展字段,操作数据 , defVar('ext', VT_String, '') ) RoomMessage.cmd_0x8112_RespStructure = defClass("cmd_0x8112_RespStructure" -- 最先出完牌id , defVar("nWinId", VT_Int, 0) -- 庄家id , defVar("nBankerId", VT_Int, 0) -- 游戏倍数(总) , defVar("mult", VT_Short, 0) -- 是否春天 0 都不是 1 春天 2 反春 , defVar("nSpring", VT_Short, 0) -- 时间 , defVar("nTime", VT_Int, 0) -- 当前局数 , defVar("nGameStartCount", VT_Int, 0) -- 游戏是否结束 , defVar("isGameOver ", VT_Short, 0) -- 玩家数据 , defVar("memberList", VT_VectorToMap(RoomMessage.cmd_0x8112_Player, "nUserId")) -- 玩家的操作数据 , defVar('memberOperateData', VT_VectorToMap(RoomMessage.cmd_0x8112_PlayerOperateData,'nUserId')) -- 炸弹倍数 , defVar('nBombs', VT_Int, 0) -- 游戏底分 , defVar('nBaseScore', VT_Int, 0) -- 底牌倍数 , defVar('nDiMult', VT_Int, 0) -- 废牌 , defVar("uselessCards", VT_Vector(RoomMessage.Cards)) ) RoomMessage.cmd_0x8113_Player = defClass("cmd_0x8113_Player" -- 玩家id , defVar("nUserId", VT_Int, 0) -- 总分 , defVar("nTotalScore", VT_String, 0) -- 玩家信息 , defVar("userInfo", VT_String, "") -- 总计数据 , defVar("countInfo", VT_String, "") ) RoomMessage.cmd_0x8113_RespStructure = defClass("cmd_0x8113_RespStructure" -- 房主id , defVar("nRoomOwnedUid", VT_Int, 0) -- 时间 , defVar("nTime", VT_Int, 0) -- 游戏结束原因 , defVar("stopFlag", VT_Int, 0) -- 玩家数据 , defVar("memberList", VT_VectorToMap(RoomMessage.cmd_0x8113_Player, "nUserId")) ) RoomMessage.cmd_0x8114_RespStructure = defClass("cmd_0x8114_RespStructure" ) -- 叫分 RoomMessage.AskLoard = defClass("AskLoard" , defVar("askLoard", VT_UChar, 0) ) -- 抢地主 RoomMessage.Qiang = defClass("Qiang" , defVar('qiang', VT_UChar, 0) ) -- 让牌 RoomMessage.Rang = defClass("Rang" , defVar('rang', VT_UChar, 0) ) -- 加倍 RoomMessage.AskBei = defClass("AskBei" , defVar("askBei", VT_UChar, 0) ) -- 操作 RoomMessage.Operation = defClass("Operation" , defVar("opType", VT_UChar, 0) , defVar("cards", VT_Vector(VT_UChar), {}) ) --托管状态 RoomMessage.HostingResponseEntity = defClass("HostingResponseEntity" ,defVar("nUserId",VT_Int,0) --1.托管 0取消托管 ,defVar("status",VT_UChar,0) ,defVar("ext", VT_String, "") ) --托管状态(0x8133) RoomMessage.HostingResponse = defClass("HostingResponse" ,defVar("userList", VT_Vector(RoomMessage.HostingResponseEntity), {}) ) -- 托管请求(0x8134) RoomMessage.HostingRequest = defClass("HostingRequest" , defVar("status", VT_Short, 0) ) return RoomMessage