您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

595 行
16 KiB

  1. local message=MJFramework.MJFrameworkClassImprot("mj.luaScript.Protocol.MJMessage")
  2. message.TingCard = defClass("TingCard"
  3. --玩家选中的牌值
  4. , defVar("card", VT_UChar, -1)
  5. --数量
  6. , defVar("count", VT_UChar, -1)
  7. --番数
  8. , defVar("fanshu", VT_Int, 0)
  9. )
  10. message.TingCardResult = defClass("TingCardResult"
  11. --听牌类型 0为普通听牌类型,1为全听,全听时不会具体听牌
  12. , defVar("tingType", VT_UChar, -1)
  13. --听牌列表
  14. , defVar("tingCards",VT_Vector(message.TingCard),{})
  15. )
  16. --服务器通知庄家是否可以爆牌
  17. message.BankerBaoPai = defClass("BankerBaoPai"
  18. ,defVar("nUserId",VT_Int ,-1)
  19. )
  20. --请求爆牌
  21. message.BaoPaiRequest=defClass("BaoPaiRequest"
  22. ,defVar("isBaoPai",VT_UChar ,0)
  23. )
  24. --服务器广播爆牌
  25. message.BaoPaiResponse = defClass("BaoPaiResponse"
  26. --哪个玩家爆牌
  27. ,defVar("nUserId",VT_Int ,-1)
  28. ,defVar("isBaoPai",VT_Short ,0)
  29. )
  30. message.PushCard = defClass("PushCard"
  31. --出的牌
  32. , defVar("outCard", VT_UChar,0)
  33. --听牌列表
  34. , defVar("tingCards",VT_Vector(message.TingCard),{})
  35. )
  36. message.OutCardTingInfo = defClass("OutCardTingInfo"
  37. , defVar("pushTing",VT_Vector(message.PushCard),{})
  38. )
  39. --鬼麻将红中可以吃碰杠
  40. message.OperateCard = defClass("OperateCard"
  41. , defVar("opType", VT_Short, 0)
  42. -- 操作的牌
  43. , defVar("opCard", VT_UChar, 0)
  44. -- 操作牌中红中的个数
  45. --, defVar("redNum", VT_UChar, 0)
  46. -- 操作牌中是否含有红中 0表示无 1有 2左侧,例如吃2,3吃1
  47. --, defVar("isUseRed", VT_Short, 0)
  48. )
  49. message.OperateRequest= defClass("OperateRequest"
  50. -- 牌类型
  51. , defVar("opType", VT_Short, 0)
  52. -- 操作的牌
  53. , defVar("opCard", VT_UChar, 0)
  54. -- 原始操作数的个数
  55. --, defVar("opNum", VT_Short, 0)
  56. -- 原始操作数
  57. , defVar("operates", VT_Vector(message.OperateCard), {})
  58. )
  59. --新加一个带来源的类
  60. message.OperateCard1 = defClass("OperateCard1"
  61. -- 牌类型
  62. , defVar("opType", VT_Short, 0)
  63. -- 操作的牌
  64. , defVar("opCard", VT_UChar, 0)
  65. -- 无用字段
  66. , defVar("redNum", VT_UChar, 0)
  67. -- 无用字段
  68. , defVar("isUseRed", VT_Short, 0)
  69. -- 来源ID
  70. , defVar("fromUserId", VT_Int, -1)
  71. )
  72. message.PlayerHandCards= defClass("PlayerHandCards"
  73. -- 用户uid
  74. , defVar("nUserId", VT_Int, 0)
  75. --根据听牌状态判断是否可以爆牌
  76. --, defVar("isTing", VT_Short, 0)
  77. -- 牌值类型列表
  78. , defVar("handCards", VT_Vector(message.Card), {})
  79. )
  80. message.GameSendCardResponse = defClass("GameSendCardResponse"
  81. -- 用户uid
  82. -- , defVar("nUserId", VT_Int, 0)
  83. -- 庄家第一张摸的牌
  84. -- , defVar("nbankFirstGrabCard", VT_UChar, 0)
  85. -- 牌值类型列表
  86. , defVar("playerCards", VT_Vector(message.PlayerHandCards), {})
  87. )
  88. --发牌
  89. message.BankerOutCard = defClass("BankerOutCard"
  90. -- 用户uid
  91. , defVar("nUserId", VT_Int, 0)
  92. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  93. , defVar("nSeatId", VT_UChar, 0)
  94. -- 是否尾部发牌,0为否 1为是
  95. , defVar("isTail", VT_UChar, 0)
  96. , defVar("nLeaveCardNum", VT_Short, 0)
  97. --
  98. , defVar("card", VT_UChar, 0)
  99. -- 庄家操作列表
  100. , defVar("operates", VT_Vector(message.OperateCard), {})
  101. --共多少手牌出牌后形成听牌状态
  102. , defVar("pushCardTing",VT_Vector(message.PushCard))
  103. )
  104. -- --玩家出牌成功
  105. message.OutCardSuccess = defClass("OutCardSuccess"
  106. -- 出牌用户id
  107. , defVar("nUserId", VT_Int, -1)
  108. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  109. , defVar("nSeatId", VT_UChar, -1)
  110. -- 出的牌
  111. , defVar("card", VT_UChar, -1)
  112. -- 可以的操作ma
  113. -- , defVar("mainOpCode", VT_Short, -1)
  114. -- 玩家操作
  115. , defVar("operates", VT_Vector(message.OperateCard), {})
  116. )
  117. -- --发送操作码成功
  118. message.OperationCodeSuccess = defClass("OperationCodeSuccess"
  119. -- 操作者的id
  120. , defVar("nUserId", VT_Int, -1)
  121. -- 牌类型
  122. , defVar("opType", VT_Short, 0)
  123. -- 操作的牌
  124. , defVar("opCard", VT_UChar, 0)
  125. -- -- 操作的牌(只有天胡时 opCard才为0)
  126. -- , defVar("card", VT_UChar, 0)
  127. -- 表明操作者他是否要出牌
  128. , defVar("isNeedOutCard", VT_UChar, 0)
  129. -- 被操作者座位Id
  130. , defVar("fromSeatId", VT_UChar, -1)
  131. --使用的红中数量
  132. --, defVar("redNum", VT_UChar, 0)
  133. )
  134. -- 玩家的牌桌信息
  135. message.playerInfo = defClass("playerInfo"
  136. --用户的USER ID
  137. , defVar("nUserId", VT_Int, 0)
  138. --用户的TABLE ID
  139. , defVar("nSeatId", VT_UChar, 0)
  140. --用户的游戏状态标识
  141. , defVar("nPlayerFlag", VT_UChar, 0)
  142. --玩家解散状态 0:初始状态, 1:发起解散 2: 同意解散 3:不同意解散
  143. , defVar("nDisbandStatus", VT_UChar, 255)
  144. --是否在线 0:离线 1:在线
  145. , defVar("nOnlineStatus", VT_UChar, 255)
  146. --用户信息
  147. , defVar("userInfo", VT_String, "")
  148. --当前局分数
  149. , defVar("nTurnScore", VT_Int, -1)
  150. --总分
  151. , defVar("nTotalMoney", VT_Int, -1)
  152. --番数
  153. , defVar("fanshu", VT_Int, -1)
  154. -- 桌面组合牌
  155. ,defVar("gruoupCards",VT_Vector(message.OperateCard),{})
  156. --玩家手牌
  157. ,defVar("handCards",VT_Vector(message.Card),{})
  158. --桌面弃牌
  159. ,defVar("outCards",VT_Vector(message.Card),{})
  160. --是否换过牌
  161. ,defVar("isSwapCard",VT_UChar,0)
  162. --是否定缺
  163. ,defVar("isDingQue",VT_UChar,0)
  164. --定缺牌类型 0万 1筒 2条
  165. ,defVar("nQue",VT_UChar,0)
  166. --是否查叫
  167. ,defVar("isDj",VT_UChar,0)
  168. --是否花猪
  169. ,defVar("isHz",VT_UChar,0)
  170. --点炮次数
  171. ,defVar("dpCount",VT_Short,0)
  172. --点炮顺序
  173. ,defVar("dpOrder",VT_Short,0)
  174. -- 杠信息
  175. --, defVar("gangInfo", VT_String, "")
  176. --保留
  177. --,defVar("extJson",VT_String,"")
  178. )
  179. message.PlayerResultInfo = defClass("PlayerResultInfo"
  180. --玩家的id
  181. , defVar("nUserId", VT_Int, 0)
  182. --1胡牌 2听叫 0默认
  183. , defVar("userStatus", VT_UChar, 0)
  184. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  185. , defVar("huType", VT_Short, 0)
  186. --胡的牌
  187. , defVar("huCard", VT_UChar, 0)
  188. --胡牌顺序
  189. , defVar("huOrder", VT_UChar, 0)
  190. --胡牌类型 点炮 or 自摸
  191. , defVar("result", VT_Short, 0)
  192. --子胡牌类型(天胡、地胡等)
  193. , defVar("subPaiType", VT_UChar, 0)
  194. --谁点炮
  195. , defVar("dpSeatId", VT_UChar, -1)
  196. --根次数
  197. , defVar("genCount", VT_UChar, 0)
  198. --是否绝张
  199. , defVar("isJueZhang", VT_UChar, 0)
  200. --是否金钩钓
  201. , defVar("isJinGouDiao", VT_UChar, 0)
  202. --是否海底捞月
  203. , defVar("isHaiDiLaoYue", VT_UChar, 0)
  204. --是否海底炮
  205. , defVar("isHaiDiPao", VT_UChar, 0)
  206. --是否杠上开花
  207. , defVar("isGangShangKaiHua", VT_UChar, 0)
  208. --是否杠上炮
  209. , defVar("isGangShangPao", VT_UChar, 0)
  210. --是否抢杠胡
  211. , defVar("isQiangGangHu", VT_UChar, 0)
  212. --是否门清
  213. , defVar("isMenQing", VT_UChar, 0)
  214. --是否中张
  215. , defVar("isZhongZhang", VT_UChar, 0)
  216. --拓展字段
  217. , defVar("extJson",VT_String,"")
  218. )
  219. -- 玩家的爆牌信息
  220. message.playerBaoInfo = defClass("playerBaoInfo"
  221. --用户的USER ID
  222. , defVar("nUserId", VT_Int, 0)
  223. --爆牌状态 1 报叫 2 没报
  224. ,defVar("isBaoPai",VT_Short,0)
  225. --是否可以爆牌
  226. ,defVar("canBaoPai",VT_UChar,255)
  227. )
  228. -- --断线重连
  229. message.GameReconnection = defClass("GameReconnection"
  230. -- 用户房间号
  231. , defVar("gameId", VT_Short, 0)
  232. -- 用户房间号
  233. , defVar("nShowTableId", VT_Int, 0)
  234. -- 房间最大人数
  235. , defVar("nMaxPlayCount", VT_Int, 0)
  236. -- 用户房主
  237. , defVar("nRoomOwnedUid", VT_Int, 0)
  238. -- 总的局数
  239. , defVar("nTotalGameNum", VT_Short, 0)
  240. --底注
  241. , defVar("nBaseChips", VT_Int, 0)
  242. -- 游戏信息
  243. , defVar("strGameInfo", VT_String, "")
  244. -- 当前局数
  245. , defVar("nGameStartCount", VT_Short, 0)
  246. -- 游戏状态
  247. , defVar("nStatus", VT_UChar, 0)
  248. -- 庄家座位
  249. , defVar("nBankSeatId", VT_UChar, 0)
  250. -- 我的座位
  251. , defVar("nMySeatId", VT_UChar, 0)
  252. -- 是否有人发起解散
  253. , defVar("bUserDisbandGame", VT_UChar, 0)
  254. -- 解散剩余时间,没人发起解散,此值为0
  255. , defVar("nDismissStateTime", VT_Int, 0)
  256. -- 牌桌信息
  257. ,defVar("playerInfos", VT_VectorToMap(message.playerInfo, "nUserId"))
  258. -- --剩余的底牌
  259. ,defVar("leaveCards",VT_Vector(message.Card))
  260. --天胡的庄家\翻牌者\出牌者的seatId(可通过状态判断具体的角色)
  261. ,defVar("outCardUserId",VT_Int,0)
  262. --出牌者的seatId
  263. ,defVar("outCardSeatId",VT_UChar,255)
  264. --当前发的牌或者出的牌
  265. ,defVar("lastOpCard",VT_UChar,255)
  266. --操作列表
  267. ,defVar("operates",VT_Vector(message.OperateCard),{})
  268. --是否需要出牌 1需要 0不需要
  269. ,defVar("isNeedOutCard",VT_UChar,0)
  270. --游戏结束标志 0正常结束 7黄庄 8长时间自动解散 9解散游戏
  271. ,defVar("stopFlag",VT_UChar,255)
  272. --胡牌玩家列表
  273. ,defVar("resultInfos",VT_VectorToMap(message.PlayerResultInfo,"nUserId"))
  274. --操作统计 "diangang_cnt":1, //点杠次数 "mgang":1, //明杠次数 "bgang":1, //巴杠次数 "agang":1, //暗杠次数
  275. ,defVar("opsCntMapString",VT_String,"")
  276. --听牌状态
  277. ,defVar("tingStatus",VT_UChar,0)
  278. --听牌信息
  279. ,defVar("tingCard",VT_Vector(message.PushCard),{})
  280. --是否在快开始界面,1是0否
  281. ,defVar("bUserFastStartGame",VT_UChar,0)
  282. --当前快速开始等待时间
  283. ,defVar("leftFastStartGameTime",VT_Int,0)
  284. --快速开始状态
  285. ,defVar("pList", VT_Vector(message.FastPlayer), {})
  286. -- 爆牌信息
  287. ,defVar("playerBaoInfos", VT_VectorToMap(message.playerBaoInfo, "nUserId"))
  288. --洗牌消耗数量
  289. ,defVar("shuffleNum", VT_Int, 2)
  290. --,defVar("extJson", VT_String, "")
  291. )
  292. --通知胡牌
  293. message.HuRespone = defClass("HuRespone"
  294. ,defVar("nUserId",VT_Int,0)
  295. --自摸还是点炮胡
  296. ,defVar("huType",VT_Short,0)
  297. --番数
  298. ,defVar("fanshu",VT_UChar,0)
  299. --牌类型
  300. ,defVar("paiType",VT_UChar,0)
  301. --胡的牌
  302. ,defVar("huCard",VT_UChar,0)
  303. --是否抢杠胡 1是 0否
  304. ,defVar("isQiangGng",VT_UChar,0)
  305. --是否杠上炮 1是 0否
  306. ,defVar("isGspHu",VT_UChar,0)
  307. --是否杠上开花
  308. ,defVar("isGskhHu",VT_UChar,0)
  309. --点炮玩家
  310. ,defVar("dpId",VT_Int,0)
  311. --胡顺序
  312. ,defVar("huOrder",VT_UChar,0)
  313. --是否呼叫转移,1是 0否
  314. ,defVar("isHjzy",VT_UChar,0)
  315. )
  316. message.XiaojuPlayerInfo=defClass("XiaojuPlayerInfo"
  317. --玩家的id
  318. , defVar("nUserId", VT_Int, 0)
  319. --当前局分数
  320. , defVar("nTurnScore", VT_Int, 0)
  321. --总分
  322. , defVar("nTotalMoney", VT_Int, 0)
  323. --番数
  324. , defVar("fanshu", VT_Int, 0)
  325. --1胡牌 2听叫 0默认
  326. , defVar("userStatus", VT_UChar, 0)
  327. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  328. , defVar("huType", VT_Short, 0)
  329. -- 桌面组合牌
  330. , defVar("gruoupCards",VT_Vector(message.OperateCard),{})
  331. --玩家手牌
  332. , defVar("handCards",VT_Vector(message.Card),{})
  333. --桌面弃牌
  334. , defVar("outCards",VT_Vector(message.Card),{})
  335. --胡的牌
  336. , defVar("huCard", VT_UChar, 0)
  337. --胡牌顺序
  338. , defVar("huOrder", VT_UChar, 0)
  339. --胡牌类型 点炮 or 自摸
  340. , defVar("result", VT_Short, 0)
  341. --子胡牌类型(天胡、地胡等)
  342. , defVar("subPaiType", VT_UChar, 0)
  343. --点炮次数
  344. , defVar("dpCount", VT_Short, 0)
  345. --谁点炮
  346. , defVar("dpSeatId", VT_UChar, -1)
  347. --点炮顺序
  348. , defVar("dpOrder", VT_Short, 0)
  349. --是否大叫
  350. , defVar("isDj", VT_UChar, 0)
  351. --是否花猪
  352. , defVar("isHz", VT_UChar, 0)
  353. --归次数
  354. , defVar("genCount", VT_UChar, 0)
  355. --是否绝张
  356. , defVar("isJueZhang", VT_UChar, 0)
  357. --是否金钩钓
  358. , defVar("isJinGouDiao", VT_UChar, 0)
  359. --是否海底捞月
  360. , defVar("isHaiDiLaoYue", VT_UChar, 0)
  361. --是否海底炮
  362. , defVar("isHaiDiPao", VT_UChar, 0)
  363. --是否杠上开花
  364. , defVar("isGangShangKaiHua", VT_UChar, 0)
  365. --是否杠上炮
  366. , defVar("isGangShangPao", VT_UChar, 0)
  367. --是否抢杠胡
  368. , defVar("isQiangGangHu", VT_UChar, 0)
  369. --是否门清
  370. , defVar("isMenQing", VT_UChar, 0)
  371. --是否中张
  372. , defVar("isZhongZhang", VT_UChar, 0)
  373. --拓展字段
  374. , defVar("extJson",VT_String,"")
  375. )
  376. -- 玩家的爆牌信息
  377. message.playerxjBaoInfo = defClass("playerxjBaoInfo"
  378. --用户的USER ID
  379. , defVar("nUserId", VT_Int, 0)
  380. --爆牌状态 1 报叫 2 没报
  381. ,defVar("isBaoPai",VT_Short,0)
  382. --是否杀报
  383. ,defVar("isShaBao",VT_UChar,0)
  384. )
  385. message.GameXiaoJuResponse = defClass("GameXiaoJuResponse"
  386. -- 一局结束的原因
  387. , defVar("stopFlag", VT_UChar, -1)
  388. -- 房间信息
  389. , defVar("strGameInfo", VT_String, "")
  390. --玩家信息
  391. , defVar("allPlayerInfo",VT_VectorToMap(message.XiaojuPlayerInfo,"nUserId"))
  392. --是否大局结束,结束是1
  393. , defVar("isGameOver", VT_Short, 0)
  394. --操作统计
  395. ,defVar("opsCntMapString",VT_String,"")
  396. --玩家信息
  397. , defVar("xjBaoInfo",VT_VectorToMap(message.playerxjBaoInfo,"nUserId"))
  398. )
  399. -- --总结算玩家列表
  400. message.DaJuPlayerInfo = defClass("DaJuPlayerInfo"
  401. --玩家Uid
  402. , defVar("nUserId", VT_Int, 0)
  403. --总输赢分数
  404. , defVar("nTotalScore", VT_Int, 0)
  405. --房卡
  406. --, defVar("roomCard",VT_Int,0)
  407. --需求房卡
  408. --, defVar("requireCard",VT_Short,0)
  409. -- 大局信息"ziMoCnt":1, //自摸胡次数 "jiePaoCnt":1, //接炮次数
  410. -- "dianPaoCnt":1, //点炮次数 "mingCnt":1, //明杠次数 "zhiCnt":1, //直杠次数
  411. --"baCnt":1, //巴杠次数 "anCnt":1, //暗杠次数 "djCnt":1, //查大叫的次数
  412. ,defVar("countInfo",VT_String,"")
  413. )
  414. -- 消耗房卡信息
  415. message.DaJuPlayerCostInfo = defClass("DaJuPlayerInfo"
  416. --玩家Uid
  417. , defVar("nUserId", VT_Int, 0)
  418. , defVar("costCard",VT_Short,0)
  419. )
  420. message.GameDaJuResponse = defClass("GameDaJuResponse"
  421. --多少个玩家
  422. , defVar("nTotalPlayerInfos", VT_VectorToMap(message.DaJuPlayerInfo,"nUserId"))
  423. --房卡消耗
  424. , defVar("costCardInfos", VT_VectorToMap(message.DaJuPlayerCostInfo,"nUserId"))
  425. --解散状态
  426. , defVar("stopFlag",VT_Short,0)
  427. --解散状态
  428. ,defVar("strDisbandStatus",VT_String,"")
  429. --结束时间
  430. ,defVar("nEndTime",VT_Long,os.time())
  431. )
  432. message.WaitOperate= defClass("WaitOperate"
  433. --玩家Uid
  434. --, defVar("nUserId", VT_Int, 0)
  435. -- 牌类型
  436. --, defVar("opType", VT_Short, 0)
  437. )
  438. --断碰断杠操作
  439. message.QiangDuanOperates = defClass("QiangDuanOperates"
  440. ,defVar("operates",VT_Vector(message.OperateCard),{})
  441. )
  442. --请求飘
  443. message.PiaoRequest=defClass("PiaoRequest"
  444. ,defVar("isPiao",VT_UChar ,0)
  445. )
  446. --玩家飘状态
  447. message.PiaoState = defClass("PiaoState"
  448. --玩家Uid
  449. , defVar("nUserId", VT_Int, 0)
  450. -- 飘状态 0,1
  451. , defVar("piaostate", VT_UChar, 0)
  452. )
  453. --服务器收到玩家飘请求操作后广播给其他玩家
  454. message.PiaoResponse = defClass("PiaoResponse"
  455. --玩家Uid
  456. , defVar("nUserId", VT_Int, 0)
  457. -- 飘状态 0,1
  458. , defVar("piaostate", VT_UChar, 0)
  459. , defVar("playerPiaoState",VT_Vector(message.PiaoState),{})
  460. )
  461. --出牌错误
  462. message.OutCardError = defClass("OutCardError"
  463. -- 牌值
  464. , defVar("result", VT_Short, -1)
  465. )
  466. --换三张换的牌
  467. message.SwapCards= defClass("SwapCards"
  468. -- 服务器推荐的换牌
  469. , defVar("swapCards", VT_Vector(message.Card), {})
  470. )
  471. -- 请求换三张换的牌
  472. message.GetSwapCards = defClass("GetSwapCards"
  473. --出的牌 癞子保持0x5D
  474. ,defVar("bySwapCard", VT_Vector(VT_UChar), {})
  475. )
  476. --换三张错误
  477. message.SwapCardsErr= defClass("SwapCardsErr"
  478. -- 错误码
  479. , defVar("errFlag", VT_UChar, 0)
  480. )
  481. --换三张成功
  482. message.SwapCardsSucc= defClass("SwapCardsSucc"
  483. -- 换牌的用户id
  484. , defVar("nUserId", VT_Int, 0)
  485. -- 选中的牌
  486. , defVar("selectCards", VT_Vector(message.Card), {})
  487. )
  488. --全部换完成功的
  489. message.SwapCardsSuccInfo= defClass("SwapCardsSuccInfo"
  490. -- 错误码
  491. , defVar("swapCards", VT_Vector(message.Card), {})
  492. -- 换牌方式 1顺时针 2对家换牌 3逆时针
  493. , defVar("swapType", VT_UChar, 0)
  494. )
  495. --定缺牌
  496. message.QueCard=defClass("QueCard"
  497. --定缺牌面花色,0万 1筒 2条
  498. ,defVar("queCard",VT_UChar ,0)
  499. )
  500. --定缺成功
  501. message.DingQueSucc=defClass("DingQueSucc"
  502. -- 用户id
  503. ,defVar("nUserId", VT_Int, 0)
  504. --定缺牌面花色,0万 1筒 2条
  505. ,defVar("queCard",VT_UChar ,0)
  506. )
  507. --定缺成功广播告诉玩家定缺类型
  508. message.DingQueSuccInfo=defClass("DingQueSuccInfo"
  509. -- 用户id
  510. , defVar("dingQueInfo", VT_Vector(message.DingQueSucc), {})
  511. )
  512. -- 请求操作返回,失败[0x8109]
  513. message.OperateCard_Error = defClass('OperateCard_Error'
  514. , defVar('result', VT_UChar, -1)
  515. )
  516. --托管状态
  517. message.HostingResponseEntity = defClass("HostingResponseEntity"
  518. ,defVar("nUserId",VT_Int,0)
  519. --1.托管 0取消托管
  520. ,defVar("status",VT_UChar,0)
  521. ,defVar("ext", VT_String, "")
  522. )
  523. --托管状态
  524. message.HostingResponse = defClass("HostingResponse"
  525. ,defVar("userList", VT_Vector(message.HostingResponseEntity), {})
  526. )
  527. message.HostingRequest = defClass("HostingRequest"
  528. , defVar("nUserId", VT_Int, 0)
  529. , defVar("status", VT_UChar, 0)
  530. )
  531. return message