You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

602 lines
16 KiB

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