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
18 KiB

  1. local MJRoomToolView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomToolView")
  2. local MJRoomMessageView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomMessageView")
  3. local MJRoomPlayerView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomPlayerView")
  4. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  5. local MJFunction=MJFramework.MJImport("mj.luaScript.MJFunction")
  6. local MJHandCardView=MJFramework.MJImport("mj.luaScript.Views.Game.MJHandCardView")
  7. local MJRoomDirection=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomDirection")
  8. local MJWanFa=MJFramework.MJImport("luaScript.SubGameDefine.MaJiang.MJWanFa")
  9. local MJAnimationComponent=MJFramework.MJImport("mj.luaScript.Views.Compnent.MJAnimationCompnent")
  10. local MJSound=MJFramework.MJImport("mj.luaScript.MJSound")
  11. local MJRoomReplayView=MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomReplayView")
  12. local NeiJiangMJRoomReplayView = class("NeiJiangMJRoomReplayView", MJRoomReplayView)
  13. function NeiJiangMJRoomReplayView:ctor(data)
  14. NeiJiangMJRoomReplayView.super.ctor(self,data)
  15. -- --玩家牌局面板
  16. -- self.playerHandCards={}
  17. -- self.data=data
  18. -- app:changeGameProtocol(app.gameId,1)
  19. end
  20. function NeiJiangMJRoomReplayView:loadUI()
  21. local ui = loadUI("mj_neijiang/res/ui_fangjian/mj_neijiang_room_view.ui")
  22. self.ui = ui;
  23. self:addChild(ui);
  24. end
  25. function NeiJiangMJRoomReplayView:onEnter()
  26. NeiJiangMJRoomReplayView.super.onEnter(self)
  27. self.huOrder = 0
  28. end
  29. function NeiJiangMJRoomReplayView:parseData()
  30. local data = self.data
  31. --战报解析
  32. self.reports={}
  33. local ops=string.split(data.ops,"|")
  34. for k,v in pairs(ops) do
  35. local op=string.split(v,",")
  36. local nUserId=tonumber(op[1])
  37. local opType=op[2]
  38. local opStr = op[3]
  39. if opType == "ShowAction" then
  40. local opList = {}
  41. if nUserId==0 then
  42. local temp = string.split(opStr, ";")
  43. for k,v in pairs(temp) do
  44. local temp2 = string.split(v, " ")
  45. local userId = tonumber(temp2[1])
  46. table.remove(temp2,1)
  47. local operates = temp2
  48. table.insert(opList,{nUserId = userId,operates = self:margeOperates(operates) })
  49. end
  50. else
  51. local operates = string.split(opStr, " ")
  52. table.insert(opList,{nUserId = nUserId,operates = self:margeOperates(operates) })
  53. end
  54. table.insert(self.reports,{opType=opType,opList=opList})
  55. elseif opType == "SubmitOp" then --提交的操作
  56. local temp = string.split(opStr, "_")
  57. local submitOp = tonumber(temp[1])
  58. table.insert(self.reports,{nUserId=nUserId,opType=opType,submitOp = submitOp })
  59. elseif "DisCard"~=opType then
  60. local tCards = string.split(opStr, "_")
  61. local card,redNum = nil,0
  62. if tCards[1] then card = tonumber(tCards[1]) end
  63. if tCards[2] then redNum = tonumber(tCards[2]) end
  64. table.insert(self.reports,{nUserId=nUserId,opType=opType,card=card,redNum=redNum})
  65. end
  66. end
  67. end
  68. --合并操作 只显示一个杠
  69. function NeiJiangMJRoomReplayView:margeOperates(operates)
  70. local ops = {}
  71. local isGang = false
  72. for k,v in pairs(operates) do
  73. local op = tonumber(v)
  74. if (op==MJDefine.MJOperateType.OPREATE_ZHIGANG)
  75. or (op==MJDefine.MJOperateType.OPREATE_BAGANG)
  76. or (op==MJDefine.MJOperateType.OPREATE_ANGANG) then
  77. if not isGang then
  78. table.insert(ops,op)
  79. isGang = true
  80. end
  81. else
  82. table.insert(ops,op)
  83. end
  84. end
  85. return ops
  86. end
  87. -- function NeiJiangMJRoomReplayView:initView()
  88. -- self.ui.Items.ImageView_CardNum:setVisible(false)
  89. -- self.direcionView = MJRoomDirection:new()
  90. -- self.ui.Items.Layout_Player:addChild(self.direcionView)
  91. -- self.direcionView:setVisible(false)
  92. -- --UI相关
  93. -- self.playerView = MJRoomPlayerView:new()
  94. -- self:addChild(self.playerView)
  95. -- self.playerView:setHeadTouchEnable(false)
  96. -- --加载工具层
  97. -- self.toolView = MJRoomToolView:new()
  98. -- self:addChild(self.toolView)
  99. -- self.toolView.ui.Items.Button_Menu:setVisible(false)
  100. -- self.toolView.ui.Items.Layout_Button:setVisible(false)
  101. -- self.toolView.ui.Items.Button_FastStart:setVisible(false)
  102. -- self.toolView.ui.Items.Button_BaoJian:setVisible(false)
  103. -- --self.toolView:setVisible(false)
  104. -- local headInfos = {}
  105. -- for k,v in pairs(self.playerView.allNodes) do
  106. -- local pos = cc.pAdd(v.player:getPosition(),cc.p(38,66))
  107. -- table.insert(headInfos,{headPos=pos})
  108. -- end
  109. -- self.messageView = require("luaScript.Views.Room.ChatView"):new({chatList=MJDefine.MJChatTxt,faceList=MJDefine.MJFaceConfig},headInfos,true)
  110. -- self.playerView.ui.Items.Layout_Player:addChild(self.messageView)
  111. -- self.messageView:setBtnFace(cc.p(1236,348),"room_room_img_face.png")
  112. -- self.messageView:setBtnVoice(cc.p(1236,257),"room_room_img_voice.png")
  113. -- self.messageView:setVisible(false)
  114. -- --加载回放按钮
  115. -- local ui = loadUI("res/ui/ui_fangjian/ui_fangjian_record.ui");
  116. -- self.replayView = ui
  117. -- self:addChild(ui)
  118. -- self.replayView.Items.Text_playProgress:setString("进度:0%")
  119. -- local roomInfo=app.room.roomInfo
  120. -- -- 房间号
  121. -- self.ui.Items.Text_roomNum:setText("房号:"..tostring(roomInfo.nShowTableId))
  122. -- self:updateGameNums()
  123. -- --房间玩法
  124. -- self.toolView:updateRule()
  125. -- --local ruleAll = MJWanFa.getWanFaInfo(roomInfo.strGameInfo)--getLHQRuleStr();
  126. -- --self.ui.Items.Text_Rule:setText(ruleAll)
  127. -- --定时器
  128. -- local time = os.date("%m-%d %X",self.data.endtime) --回放时间这里要求改成成局时候的时间
  129. -- self.ui.Items.Text_Time:setText(time)--(MJFunction.getTimeString())
  130. -- if not self.Time then
  131. -- self.Time = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  132. -- self.ui.Items.Text_Time:setText(time)--(MJFunction.getTimeString())
  133. -- end,1.0,false)
  134. -- end
  135. -- end
  136. function NeiJiangMJRoomReplayView:initGameButton()
  137. NeiJiangMJRoomReplayView.super.initGameButton(self);
  138. self.ui.Items.Button_Ting_Info:setVisible(false);
  139. end
  140. function NeiJiangMJRoomReplayView:startGame()
  141. self:onGameStartResponse()
  142. --设置为回放模式
  143. for k,v in pairs(self.playerHandCards) do
  144. v:setReplay(true)
  145. end
  146. app.room.roomInfo.laizi = tonum(self.data.ext.laizi)
  147. self:onGameSendCardResponse()
  148. self.playerHandCards[MJDefine.MyViewId]:removeTouchEvent()
  149. end
  150. function NeiJiangMJRoomReplayView:initHanders()
  151. NeiJiangMJRoomReplayView.super.initHanders(self)
  152. self.handers ["DiceValue"] = handler(self,self.onReplayDicAnim)
  153. self.handers ["PiaoFan"] = handler(self,self.onReplayPiaoResponse)
  154. self.handers ["BaoPai"] = handler(self,self.onReplayBaoJiaoResponse)
  155. self.handers ["DuZiMo"] = handler(self,self.onReplayBaoJiaoResponse)
  156. self.handers ["DianPao"] = handler(self,self.onDianPao)
  157. self.handers ["DianPaoHu"] = handler(self,self.onPlayerHu)
  158. self.handers ["QiangGangHu"] = handler(self,self.onPlayerHu)
  159. self.handers ["ZiMoHu"] = handler(self,self.onPlayerHu)
  160. self.handers ["ShowAction"] = handler(self,self.onShowOperates)
  161. self.handers ["SubmitOp"] = handler(self,self.onSubmitOperate)
  162. -- self.handers ["ActionWait"] = handler(self,self.onActionWait)
  163. end
  164. -- function NeiJiangMJRoomReplayView:onActionWait(data)
  165. -- local response = {
  166. -- nUserId = data.nUserId,
  167. -- opType = data.card,
  168. -- }
  169. -- self:onWaitOperate({response = response})
  170. -- end
  171. function NeiJiangMJRoomReplayView:onSubmitOperate(data)
  172. local viewId = app.room:getViewIdByUserId(data.nUserId)
  173. local Layout_Operate = self.playerHandCards[viewId].ui.Items.Layout_Operate
  174. local btn = Layout_Operate:getChildByTag(data.submitOp)
  175. if btn then
  176. local hand = cc.Sprite:create("mj/res/ui/zy_fangjian/mj_room_hand.png")
  177. btn:addChild(hand)
  178. local size = btn:getContentSize()
  179. hand:setPosition(cc.p(size.width/2+20,size.height/2-20))
  180. local action = cc.Sequence:create(cc.MoveBy:create(0.5,cc.p(-10,10)),cc.MoveBy:create(0.5,cc.p(10,-10)))
  181. hand:runAction(cc.RepeatForever:create(action))
  182. -- if data.submitOp == MJDefine.MJOperateType.OPREATE_CANCEL then
  183. btn:runAction(cc.Sequence:create(cc.DelayTime:create(1),cc.CallFunc:create(function()
  184. self.playerHandCards[viewId]:hideOperate()
  185. end)))
  186. -- end
  187. end
  188. end
  189. function NeiJiangMJRoomReplayView:onShowOperates(data)
  190. local opList = data.opList
  191. for k,v in pairs(opList) do
  192. local nUserId = v.nUserId
  193. local operates = v.operates
  194. local viewId=app.room:getViewIdByUserId(nUserId)
  195. local Layout_Operate = self.playerHandCards[viewId].ui.Items.Layout_Operate
  196. Layout_Operate:removeAllChildren()
  197. Layout_Operate:setVisible(true)
  198. local x=Layout_Operate:getContentSize().width
  199. if viewId==MJDefine.PlayerViewType.Left then
  200. x = 0
  201. end
  202. table.insert(operates,1,MJDefine.MJOperateType.OPREATE_CANCEL)
  203. local y=Layout_Operate:getContentSize().height/2
  204. local function createOperate(op,isLeft)
  205. local btnOperate=cc.Button:createNode()
  206. btnOperate:setDefaults()
  207. btnOperate:setText("")
  208. btnOperate:loadTextureNormal(MJDefine.MJOperateImage[op])
  209. if isLeft then
  210. x = x + MJDefine.MJ_OPERATE_PADDING
  211. else
  212. x = x -MJDefine.MJ_OPERATE_PADDING
  213. end
  214. btnOperate:setPosition(cc.p(x,y))
  215. btnOperate:setTag(op)
  216. Layout_Operate:addChild(btnOperate)
  217. end
  218. if viewId==MJDefine.PlayerViewType.Left then
  219. for i = #operates,1,-1 do
  220. local op = tonumber(operates[i])
  221. createOperate(op,true)
  222. end
  223. else
  224. for _,strOp in pairs(operates) do
  225. local op = tonumber(strOp)
  226. createOperate(op,false)
  227. end
  228. end
  229. -- self.playerHandCards[viewId]:
  230. if viewId~=MJDefine.MyViewId then
  231. local node = self.playerView.allNodes[viewId]
  232. local pos = cc.pAdd(node.player:getPosition(),cc.p(38,66))
  233. if viewId==MJDefine.PlayerViewType.Left then
  234. Layout_Operate:setAnchorPoint(cc.p(0,0.5))
  235. elseif viewId==MJDefine.PlayerViewType.Top then
  236. pos.y = pos.y-33
  237. end
  238. Layout_Operate:setPosition(pos)
  239. Layout_Operate:setScale(0.7)
  240. end
  241. end
  242. end
  243. --播放一条战报
  244. -- function NeiJiangMJRoomReplayView:playNextReport()
  245. -- local handers={
  246. -- ["DealCard"]=handler(self,self.onGetCard),
  247. -- ["OutCard"]=handler(self,self.onOutCard),
  248. -- ["Peng"]=handler(self,self.onOperate),
  249. -- ["BaGang"]=handler(self,self.onOperate),
  250. -- ["AnGang"]=handler(self,self.onOperate),
  251. -- ["Gang"]=handler(self,self.onOperate),
  252. -- ["ZhiGang"]=handler(self,self.onOperate),
  253. -- ["BaoPai"]=handler(self,self.onPiaoResponse),
  254. -- ["DianPao"]=handler(self,self.onDianPao),
  255. -- ["DianPaoHu"]=handler(self,self.onPlayerHu),
  256. -- ["QiangGangHu"]=handler(self,self.onPlayerHu),
  257. -- ["ZiMoHu"]=handler(self,self.onPlayerHu),
  258. -- }
  259. -- local v= self.reports[self.reportIndex]
  260. -- if v then
  261. -- if handers[v.opType] then
  262. -- print(table.tostring(v).." reportIndex:"..self.reportIndex)
  263. -- handers[v.opType](v)
  264. -- end
  265. -- self.reportIndex=self.reportIndex+1
  266. -- end
  267. -- local progress=self.reportIndex>#self.reports and #self.reports or self.reportIndex
  268. -- progress=math.ceil(progress/#self.reports*100)
  269. -- self.replayView.Items.Text_playProgress:setString("进度:"..progress.."%")
  270. -- end
  271. function NeiJiangMJRoomReplayView:onOperate(data)
  272. local roomInfo=app.room.roomInfo
  273. local operates={
  274. ["Peng"]=MJDefine.MJOperateType.OPREATE_PENG,
  275. ["BaGang"]=MJDefine.MJOperateType.OPREATE_BAGANG,
  276. ["AnGang"]=MJDefine.MJOperateType.OPREATE_ANGANG,
  277. ["Gang"]=MJDefine.MJOperateType.OPREATE_ZHIGANG,
  278. ["ZhiGang"]=MJDefine.MJOperateType.OPREATE_ZHIGANG,
  279. }
  280. self.fromSeatId = self.fromSeatId or roomInfo.memberList[data.nUserId].nSeatId
  281. local response={
  282. nUserId=data.nUserId,
  283. opCard=data.card,
  284. redNum = data.redNum,
  285. opType=operates[data.opType],
  286. -- operates={},
  287. nSeatId=roomInfo.memberList[data.nUserId].nSeatId,
  288. isNeedOutCard=0,
  289. fromSeatId=self.fromSeatId,
  290. }
  291. --碰了之后需要出牌
  292. if data.opType=="Peng" then
  293. response.isNeedOutCard=1
  294. end
  295. for k,v in pairs(self.playerHandCards) do
  296. v:hideOperate()
  297. end
  298. self:onOperationCodeSuccess({response=response})
  299. end
  300. function NeiJiangMJRoomReplayView:onOutCard(data)
  301. local roomInfo=app.room.roomInfo
  302. local response={
  303. nUserId=data.nUserId,
  304. card=data.card,
  305. operates={},
  306. -- nSeatId=roomInfo.memberList[data.nUserId].nSeatId,
  307. }
  308. self.fromSeatId=roomInfo.memberList[data.nUserId].nSeatId
  309. local viewId=app.room:getViewIdByUserId(data.nUserId)
  310. self.playerHandCards[viewId]:hideOperate()
  311. if viewId==MJDefine.MyViewId then
  312. -- self.playerHandCards[MJDefine.MyViewId].touchMJ=self.playerHandCards[MJDefine.MyViewId]:getMjByValue(data.card)
  313. end
  314. self:onOutCardSuccess({response=response})
  315. end
  316. function NeiJiangMJRoomReplayView:onReplayPiaoResponse(data)
  317. if not data.nUserId then
  318. return;
  319. end
  320. local response={
  321. userId= data.nUserId,
  322. nPiaoState = data.card,
  323. isReplay = true
  324. }
  325. local viewId=app.room:getViewIdByUserId(data.nUserId)
  326. if not viewId then
  327. return ;
  328. end
  329. self.playerHandCards[viewId]:hideOperate()
  330. self:onPiaoResponse({response=response})
  331. end
  332. function NeiJiangMJRoomReplayView:onReplayBaoJiaoResponse(data)
  333. if not data.nUserId then
  334. return;
  335. end
  336. local response={
  337. userId= data.nUserId,
  338. nBaoCardState = data.card
  339. }
  340. local viewId=app.room:getViewIdByUserId(data.nUserId)
  341. if not viewId then
  342. return ;
  343. end
  344. self.playerHandCards[viewId]:hideOperate()
  345. self:onBaoJiaoResponse({response=response})
  346. end
  347. function NeiJiangMJRoomReplayView:onReplayDicAnim (data)
  348. self:onRoolDiceAnimFinished(data.card, data.redNum);
  349. end
  350. function NeiJiangMJRoomReplayView:onDianPao(data)
  351. self.dpUserId = data.nUserId or 0
  352. end
  353. function NeiJiangMJRoomReplayView:onPlayerHu(data)
  354. local roomInfo=app.room.roomInfo
  355. self.huOrder = self.huOrder + 1
  356. local huType = {
  357. ["ZiMoHu"] = MJDefine.MJGameHuType.HU_ZIMO,
  358. ["DianPaoHu"] = MJDefine.MJGameHuType.HU_DIANPAO,
  359. ["QiangGangHu"] = MJDefine.MJGameHuType.HU_DIANPAO,
  360. }
  361. local redRealCard = 0
  362. local isQiangGng = 0
  363. if data.opType == "QiangGangHu" then
  364. redRealCard = data.card
  365. isQiangGng =1
  366. end
  367. local response={
  368. nUserId=data.nUserId,
  369. huType = huType[data.opType],
  370. huCard = data.card,
  371. dpId = self.dpUserId,
  372. huOrder = self.huOrder,
  373. redRealCard = redRealCard,
  374. isQiangGng = isQiangGng,
  375. }
  376. local viewId=app.room:getViewIdByUserId(data.nUserId)
  377. for k,v in pairs(self.playerHandCards) do
  378. v:hideOperate()
  379. end
  380. self.playerHandCards[viewId]:hideOperate()
  381. self:onHuResponse({response=response})
  382. end
  383. --出牌成功
  384. function NeiJiangMJRoomReplayView:onOutCardSuccess(data)
  385. logE("NeiJiangMJRoomReplayView:onOutCardSuccess(), response = ", table.tostring(data.response))
  386. --[[
  387. -- 出牌用户id
  388. , defVar("nOutCardUserId", VT_Int, -1)
  389. -- 出的牌
  390. , defVar("byOutCard", VT_UChar, -1)
  391. -- 可以的操作ma
  392. , defVar("mainOpCode", VT_Short, -1)
  393. -- 玩家操作
  394. , defVar("operations", VT_Vector(ChuPaiPlayerOperation), {})--]]
  395. local function runOnOutCardSuccess(onEnd)
  396. log("2000000000-NeiJiangMJRoomReplayView - runOnOutCardSuccess---------")
  397. local viewId = app.room:getViewIdByUserId(data.response.nUserId)
  398. local card= data.response.card
  399. local operates=data.response.operates
  400. local typr = operates.opType
  401. if operates and table.nums(operates)>0 then
  402. self.operates = operates
  403. else
  404. self.operates = {}
  405. end
  406. local function callback()
  407. self.playerHandCards[MJDefine.MyViewId]:showOperate(operates,card)
  408. if onEnd then
  409. onEnd()
  410. end
  411. end
  412. -- self.lastOutCard = card
  413. self.lastOutViewId = viewId
  414. local player = app.room.roomInfo.memberList[data.response.nUserId]
  415. if self.playerHandCards[viewId] then --and (viewId~=MJDefine.MyViewId or player.isBaoPai == 1)
  416. self.playerHandCards[viewId]:onOutCard(card,callback)--onOutCard(data.response,true)
  417. app.room:dispatchEvent({name = MJDefine.MJEvent.OutCardFalg, value=card ,viewId=viewId})
  418. if viewId==MJDefine.MyViewId then
  419. self.playerHandCards[viewId]:setTing(false)
  420. end
  421. else
  422. callback()
  423. end
  424. end
  425. log("2000000000-NeiJiangMJRoomReplayView - addCallBack(runOnOutCardSuccess)")
  426. self:addCallBack(runOnOutCardSuccess)
  427. end
  428. function NeiJiangMJRoomReplayView:onGameEnd(data)
  429. local function runGameXiaoJuResponse(onEnd)
  430. local function callback()
  431. --self:endReplay()
  432. --:showXiaoJuView()
  433. if onEnd then
  434. onEnd()
  435. end
  436. end
  437. local roomInfo = app.room.roomInfo
  438. local hutype=self.data.ext.huTypes
  439. local hucard=data.card
  440. self.direcionView:stopAllActions()
  441. -- local resultInfo=json.decode(roomInfo.strResultInfo)
  442. --所有胡牌的人 考虑抢杠胡的问题
  443. --所有胡牌的人 考虑抢杠胡的问题
  444. local viewIds={}
  445. local failViewId=0
  446. for k,v in pairs(roomInfo.memberList) do
  447. local viewId = app.room:getViewIdByUserId(v.nUserId)
  448. if v.result==MJDefine.MJGameResultType.Win then
  449. table.insert(viewIds,viewId)
  450. --处理掉huCard, 不加入手牌
  451. --播放音效
  452. if viewId==MJDefine.MyViewId then
  453. MJSound.PlayWinGame()
  454. end
  455. elseif v.result==MJDefine.MJGameResultType.Fail then
  456. failViewId=viewId
  457. if viewId==MJDefine.MyViewId then
  458. MJSound.PlayLoseGame()
  459. end
  460. end
  461. end
  462. self:showOpenCard()
  463. --[[--被抢杠的人回退补杠
  464. if hutype==MJDefine.MJHuType.QiangGangHu and roomInfo.stopFlag==MJDefine.StopFlag.STOP_FLAG_NORMAL then
  465. self.playerHandCards[failViewId]:retoreBuGang(hucard)
  466. end--]]
  467. local function callback()
  468. self:showXiaoJuView()
  469. if onEnd then
  470. onEnd()
  471. end
  472. end
  473. if #viewIds>0 then
  474. for k,viewId in pairs(viewIds) do
  475. local effect
  476. local resultInfo = roomInfo.resultInfos
  477. local userId = app.room:getUserIdByViewId(viewId)
  478. if k == #viewIds then --只有最后播放胡牌动画的回调一次就可以了
  479. if resultInfo[userId].result == MJDefine.MJGameHuType.HU_ZIMO then
  480. effect = MJAnimationComponent.CreateHuEffect("zimo",callback)
  481. else
  482. effect = MJAnimationComponent.CreateHuEffect("hu",callback)
  483. end
  484. --local userInfo=app.room:getUserInfoByViewId(viewId)
  485. --[[if userInfo then --音效
  486. if resultInfo[userId].result == MJDefine.MJGameHuType.HU_ZIMO then --1为自摸
  487. MJSound.PlayOperateSound(userInfo.sex,MJDefine.MJOperateType.OPREATE_ZIMOHU)
  488. elseif resultInfo[userId].result == MJDefine.MJGameHuType.HU_DIANPAO then
  489. MJSound.PlayOperateSound(userInfo.sex,MJDefine.MJOperateType.OPREATE_DIANPAOHU)
  490. else
  491. MJSound.PlayOperateSound(userInfo.sex,MJDefine.MJOperateType.OPREATE_DIANPAOHU)
  492. end
  493. end--]]
  494. else
  495. --[[if resultInfo[userId].result == MJDefine.MJGameHuType.HU_ZIMO then
  496. effect = MJAnimationComponent.CreateHuEffect("zimo")
  497. else
  498. effect = MJAnimationComponent.CreateHuEffect("hu")
  499. end--]]
  500. end
  501. if effect then
  502. self:addChild(effect)
  503. effect:setPosition(self.playerHandCards[viewId]:getAnimationPostion())
  504. effect:setVisible(false)
  505. end
  506. end
  507. else
  508. if roomInfo.stopFlag==MJDefine.StopFlag.STOP_FLAG_HUANG_ZHUANG then
  509. local effect=MJAnimationComponent.CreateLiuJuEffect(callback)
  510. self:addChild(effect)
  511. else
  512. callback()
  513. end
  514. end
  515. end
  516. log("2000000000-MJRoomView - addCallBack(runGameXiaoJuResponse)" )
  517. self:addCallBack(runGameXiaoJuResponse);
  518. end
  519. return NeiJiangMJRoomReplayView