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.

655 rivejä
20 KiB

  1. local DdzCardNode = require("pk_zgwrddz.luaScript.Views.Room.Node.zgwrDdzCardNode")
  2. local DdzRoomViewConfig = require("pk_zgwrddz.luaScript.Views.Room.zgwrDdzRoomViewConfig")
  3. local ETS = DdzRoomViewConfig.EffectType
  4. local DdzEffectHelper = require("pk_zgwrddz.luaScript.Views.Room.zgwrDdzEffectHelper"):new()
  5. local DdzSoundHelper = require("pk_zgwrddz.luaScript.Views.Room.zgwrDdzSoundHelper"):new()
  6. local PlayerNode = class("PlayerNode", function ()
  7. return cc.Node:create()
  8. end)
  9. function PlayerNode:ctor()
  10. local ui = loadUI("pk_zgwrddz/res/ui/ui_room/ui_wrddz_playernode.ui")
  11. self.ui = ui
  12. self:addChild(ui)
  13. self.txtNickname = self.ui.Items.name
  14. self.imgHead = self.ui.Items.headImg
  15. self.imgBanker = self.ui.Items.banker
  16. self.imgOffline = self.ui.Items.offLine
  17. self.imgReady = self.ui.Items.readyState
  18. self.mult = self.ui.Items.multState
  19. self.fanMult = self.ui.Items.fanMultState
  20. self.txtCurScore = self.ui.Items.score
  21. self.txtCurScore.score = 0
  22. self.imgHost = self.ui.Items.imgHost
  23. self.imgAndizhu = self.ui.Items.imgAndizhu
  24. self.imgTurn = self.ui.Items.ImageView_turn
  25. self.ui.Items.ImageView_alarm:setVisible(false)
  26. -- self.txtTotalScore = self.ui.Items.totalScore
  27. self.ui:setLocalZOrder(10000)
  28. self.clockTimer = nil
  29. self.nGameInfo = ""
  30. self.imgTuoGuan = self.ui.Items.ImageView_tuoguan
  31. end
  32. function PlayerNode:setGameInfo(str)
  33. self.nGameInfo = str
  34. end
  35. function PlayerNode:setPlayMode( mode )
  36. self._PlayMode = mode
  37. end
  38. -- 房间最大玩家数
  39. function PlayerNode:setMaxPlayerCount( count )
  40. self.nMaxPlayCount = count
  41. end
  42. -- 是否显示牌张数
  43. function PlayerNode:setShowNum( is )
  44. --暂时改为默认显示剩余牌张数
  45. self.ruleIsShowNum = true
  46. end
  47. -- 设置玩家信息
  48. function PlayerNode:setInfo( info )
  49. self._info = info
  50. local nickname = info.nickname or ""
  51. self.txtNickname:setString(getSubStringNickname(nickname))
  52. setPlayerHeadImage(info.userId, info.headimgurl, self.imgHead)
  53. --
  54. self:setScore(0)
  55. self:setOffline(false)
  56. self:setBanker(false)
  57. self:setReady(false)
  58. self:setHost(false)
  59. self:setTurn(false)
  60. self.isAnDiZhu = false
  61. self:setAnDiZhu(false)
  62. self:setMult(false)
  63. self:setFanMult(false)
  64. self:hideLeft()
  65. self:setTuoGuan(false)
  66. if info.viewPos == 2 or info.viewPos == 3 then --and self.nMaxPlayCount==3
  67. self.imgReady:setPosition(cc.p(-54, 78))
  68. --self.mult:setPosition(cc.p(-26, 52))
  69. self.imgTurn:setPosition(cc.p(-95, 13))--(cc.p(-55+25, 169-5))
  70. self.ui.Items.ImageView_alarm:setPosition(-26, 96)
  71. self.ui.Items.imgLeft:setPosition(cc.p(-26, 13))
  72. self.ui.Items.txtLeftNum:setPosition(cc.p(-26, 13))
  73. elseif info.viewPos == 1 then
  74. self.imgTurn:setPosition(cc.p((623-26)*g_radio_x, 340*g_radio_y))--(cc.p(45, 180))
  75. self.imgTurn:setScale(1)
  76. end
  77. end
  78. -- 获取玩家信息
  79. function PlayerNode:getInfo()
  80. return self._info
  81. end
  82. -- 设置最后一组操作牌
  83. function PlayerNode:setLastOp( tp, cards, isContinue,isShowDzFlag )
  84. self._lastOp = {}
  85. self._lastOp.tp = tp
  86. self._lastOp.cards = cards
  87. if tp~=ETS.PASS then
  88. self:showLastCards(self._lastOp.cards, self._lastOp.tp, isContinue,isShowDzFlag)
  89. else
  90. self:showPass()
  91. end
  92. end
  93. function PlayerNode:isShowPass()
  94. if self._lastOp then
  95. return self._lastOp.tp==ETS.PASS
  96. end
  97. return false
  98. end
  99. -- 显示牌背
  100. function PlayerNode:showCardbg(is)
  101. end
  102. -- 显示Pass
  103. function PlayerNode:showPass()
  104. self:cleanLastCards()
  105. local ruleInfo = json.decode(self.nGameInfo)
  106. local fileName = "pk_zgwrddz/res/ui/zy_wrddz_btns/wrddz_lab_buyao.png"
  107. local node = cc.ImageView:create()
  108. node:loadTexture(fileName, 0)
  109. node:setTag(2000)
  110. local pos = self._info.viewPos
  111. local pt = clone(DdzRoomViewConfig.PASS_SHOW_POS[self._PlayMode][pos])
  112. node:setPosition(pt)
  113. node:setLocalZOrder(1000)
  114. node:setScale(0)
  115. self:addChild(node)
  116. node:runAction(cc.ScaleTo:create(0.1, 1))
  117. local pInfo = self:getInfo()
  118. local sex = pInfo.sex
  119. local idx = math.random(4)
  120. DdzSoundHelper:effectPass( sex, idx )
  121. end
  122. -- 显示出牌
  123. function PlayerNode:showLastCards(cards, tp, isContinue,dzFlag)
  124. self:cleanLastCards()
  125. local root = cc.Node:create()
  126. local scale = DdzRoomViewConfig.CARD_SCALE[2]
  127. local allCount = #cards
  128. local pos = self._info.viewPos
  129. local firstPos = cc.p(0, 0)
  130. for i,card in ipairs(cards) do
  131. local node = self:genCard(card,dzFlag)
  132. local pt = cc.p(0, 0)
  133. if pos == 1 then
  134. local midIdx = allCount/2
  135. if i<midIdx then--左边
  136. pt.x = 0 - (midIdx-i-1)*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  137. else--右边
  138. pt.x = 0 + (i-midIdx+1)*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  139. end
  140. pt.x = pt.x - DdzRoomViewConfig.CARD_WIDTH/2*scale
  141. pt.x = pt.x + DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].x - DdzRoomViewConfig.PLAYER_POS[self._PlayMode][pos].x
  142. pt.y = DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].y - DdzRoomViewConfig.PLAYER_POS[self._PlayMode][pos].y
  143. if i==1 then firstPos = pt end
  144. else
  145. local rowNum = 14
  146. pt.y = DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].y
  147. if i>rowNum then
  148. pt.y = pt.y - 50
  149. if i > 2*rowNum then
  150. pt.y = pt.y - 50
  151. end
  152. if pos == 2 or pos == 3 then
  153. pt.x = pt.x - (i-1)%rowNum*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  154. pt.x = pt.x + DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].x
  155. if i > 2*rowNum then
  156. node:setLocalZOrder(56-i)
  157. else
  158. node:setLocalZOrder(36-i)
  159. end
  160. else
  161. pt.x = pt.x + (i-1)%rowNum*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  162. pt.x = pt.x + DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].x - self.imgHead:getContentSize().width - 10
  163. end
  164. if i==1 then firstPos = pt end
  165. else
  166. if pos == 2 or pos == 3 then
  167. pt.x = pt.x - (i-1)%rowNum*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  168. pt.x = pt.x + DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].x
  169. node:setLocalZOrder(16-i)
  170. else
  171. pt.x = pt.x + (i-1)%rowNum*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  172. pt.x = pt.x + DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].x - self.imgHead:getContentSize().width - 10
  173. end
  174. if i==1 then firstPos = pt end
  175. end
  176. --[[if pos == 2 or pos == 3 then --self._PlayMode == 1 and
  177. node:setLocalZOrder(16-i)
  178. pt.x = pt.x - (i-1)*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  179. pt.x = pt.x + DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].x
  180. else
  181. pt.x = pt.x + (i-1)*DdzRoomViewConfig.CARD_DLT_WIDTH*scale
  182. pt.x = pt.x + DdzRoomViewConfig.OUT_CARD_POS[self._PlayMode][pos].x - self.imgHead:getContentSize().width - 10
  183. end--]]
  184. end
  185. if (dzFlag and dzFlag == 1) or self.isAnDiZhu then
  186. if pos == 2 or pos == 3 then
  187. if i == 1 then
  188. node:setLordFlagVisible(true)
  189. end
  190. else
  191. if i == #cards then
  192. node:setLordFlagVisible(true)
  193. end
  194. end
  195. end
  196. node:setScale(scale)
  197. node:setPosition(pt)
  198. root:addChild(node)
  199. end
  200. root:setTag(1001)
  201. self:addChild(root)
  202. local dltWidth = ((#cards-1)*DdzRoomViewConfig.CARD_DLT_WIDTH + DdzRoomViewConfig.CARD_WIDTH) * DdzRoomViewConfig.CARD_SCALE[2]
  203. local pt = cc.p(firstPos.x,firstPos.y-30)
  204. if pos==2 or pos == 3 then
  205. pt.x = pt.x - dltWidth/2 + DdzRoomViewConfig.CARD_WIDTH * DdzRoomViewConfig.CARD_SCALE[2]/2
  206. else
  207. pt.x = pt.x + dltWidth/2 - DdzRoomViewConfig.CARD_WIDTH * DdzRoomViewConfig.CARD_SCALE[2]/2
  208. end
  209. self:showEffect(root, cards, tp, pt, isContinue, dltWidth )
  210. end
  211. -- 清除出牌
  212. function PlayerNode:cleanLastCards()
  213. do
  214. local node = self:getChildByTag(1001)
  215. if node then node:removeFromParent() end
  216. end
  217. self:cleanPass()
  218. end
  219. function PlayerNode:cleanPass()
  220. do
  221. local node = self:getChildByTag(2000)
  222. if node then node:removeFromParent() end
  223. end
  224. end
  225. -- 显示剩余牌数量
  226. function PlayerNode:showLeft( num )
  227. self.ui.Items.ImageView_alarm:setVisible(num <= 2 and num > 0)
  228. if num <= 2 and num > 0 then--报单
  229. self.ui.Items.imgLeft:setVisible(true)
  230. self.ui.Items.txtLeftNum:setVisible(true)
  231. self.ui.Items.txtLeftNum:setString(string.format("%d", num or 0))
  232. self.ui.Items.imgLeft:loadTexture("pk_zgwrddz/res/ui/zy_room/wrddz_img_warn.png", 0)
  233. self.ui.Items.ImageView_alarm:stopAllActions()
  234. self:playBaoJingAnim()
  235. --self.ui.Items.ImageView_alarm:setRotation(0)
  236. --local ac = cc.Sequence:create(cc.RotateBy:create(0.1, 30/180), cc.RotateBy:create(0.2, -60/180), cc.RotateBy:create(0.1, 30/180))
  237. --self.ui.Items.ImageView_alarm:runAction(cc.RepeatForever:create(cc.Sequence:create(ac, ac:clone(), cc.DelayTime:create(1))))
  238. else
  239. self.ui.Items.imgLeft:setVisible(true)
  240. self.ui.Items.txtLeftNum:setVisible(true)
  241. self.ui.Items.imgLeft:loadTexture("pk_zgwrddz/res/ui/zy_room/wrddz_img_leftbg.png", 0)
  242. end
  243. if not self.ruleIsShowNum then
  244. self.ui.Items.imgLeft:setVisible(false)
  245. self.ui.Items.txtLeftNum:setVisible(false)
  246. else
  247. local show = true
  248. if self._info.viewPos == 1 then show = false end
  249. self.ui.Items.imgLeft:setVisible(show)
  250. self.ui.Items.txtLeftNum:setVisible(show)
  251. self.ui.Items.txtLeftNum:setString(string.format("%d", num or 0))
  252. end
  253. end
  254. function PlayerNode:playBaoJingAnim()
  255. -- 循环修改图片
  256. local nodeImage = self.ui.Items.ImageView_alarm
  257. local everyFrame = 0.1
  258. local indexFace = 0
  259. local indexMax = 17
  260. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  261. indexFace = indexFace + 1
  262. if 0 < indexFace and indexFace <= indexMax then
  263. else
  264. indexFace = 1
  265. end
  266. local name = string.format("ddz_effect_baojing_%d.png",indexFace)
  267. if not tolua.isnull(nodeImage) then
  268. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  269. end
  270. end))
  271. local action2 = cc.Repeat:create(action1, indexMax)
  272. nodeImage:stopAllActions()
  273. nodeImage:runAction(cc.RepeatForever:create(action2));
  274. nodeImage:setVisible(true)
  275. end
  276. -- 是否报单
  277. function PlayerNode:isAlarm()
  278. return self.ui.Items.ImageView_alarm:isVisible()
  279. end
  280. -- 隐藏剩余拍数量
  281. function PlayerNode:hideLeft()
  282. self.ui.Items.imgLeft:setVisible(false)
  283. self.ui.Items.txtLeftNum:setVisible(false)
  284. self.ui.Items.ImageView_alarm:setVisible(false)
  285. end
  286. -- 设置分数 remove飘的分数是否移除
  287. function PlayerNode:setScore( scol, remove ,turnScore)
  288. turnScore = tonumber(turnScore)
  289. if remove == nil then remove = true end
  290. local dlt = (scol - self.txtCurScore.score)
  291. local curScol = tonumber(self.txtCurScore:getString())
  292. if curScol and curScol ~= self.txtCurScore.score then
  293. logD("PlayerNode:setScore ================curScol = "..curScol)
  294. dlt = scol - curScol
  295. --uploadLogs("lzpdkfenshucuowu")
  296. end
  297. logD("PlayerNode:setScore ================scol = "..scol.."self.txtCurScore.score = "..self.txtCurScore.score)
  298. if turnScore then
  299. logD("PlayerNode:setScore ================turnScore = "..turnScore)
  300. dlt = turnScore
  301. end
  302. if math.abs(dlt) > 0 then
  303. local txt = cc.TextBMFont:createNode()
  304. if dlt > 0 then
  305. txt:setFntFile("res/fonts/dt_jia_num.fnt")
  306. txt:setString(string.format("+%0.1f", dlt))
  307. else
  308. txt:setFntFile("res/fonts/dt_jian_num.fnt")
  309. txt:setString(string.format("%0.1f", dlt))
  310. end
  311. txt:setScale(0.7)
  312. txt:setTag(166)
  313. txt:setLocalZOrder(10001)
  314. self:addChild(txt)
  315. local ac = cc.Sequence:create(cc.Spawn:create(cc.MoveBy:create(1, cc.p(0, 100))), cc.CallFunc:create(function ()
  316. self.txtCurScore:setString(string.format("%0.1f", scol or 0))
  317. self.txtCurScore.score = scol
  318. if remove then txt:removeFromParent() end
  319. end))
  320. txt:runAction(ac)
  321. else
  322. self.txtCurScore:setString(string.format("%0.1f", scol or 0))
  323. self.txtCurScore.score = scol
  324. end
  325. end
  326. function PlayerNode:setScoreNoAnim( scol)
  327. self.txtCurScore:setString(string.format("%0.1f", scol or 0))
  328. self.txtCurScore.score = scol
  329. end
  330. -- 移除飘的分数
  331. function PlayerNode:cleanScore()
  332. local node = self:getChildByTag(166)
  333. if node then node:removeFromParent() end
  334. end
  335. -- 设置总分数
  336. function PlayerNode:setTotalScore( scol )
  337. -- self.txtTotalScore:setString(string.format("%d", scol or 0))
  338. end
  339. -- 设置是否离线
  340. function PlayerNode:setOffline( is )
  341. self.imgOffline:setVisible(is==true)
  342. end
  343. -- 设置是否是地主
  344. function PlayerNode:setHost( is )
  345. self.imgHost:setVisible(is==true)
  346. --self.imgHost:setVisible(false)--这不是房主,是地主
  347. end
  348. -- 是否是地主
  349. function PlayerNode:isHost()
  350. return self.imgHost:isVisible()
  351. end
  352. -- 设置是否是暗地主
  353. function PlayerNode:setAnDiZhu( is )
  354. self.isAnDiZhu = is
  355. self.imgAndizhu:setVisible(is==true)
  356. end
  357. -- 设置是否是庄家
  358. function PlayerNode:setBanker( is )
  359. self.imgBanker:setVisible(is==true)
  360. end
  361. -- 设置是否准备
  362. function PlayerNode:setReady( is )
  363. self.imgReady:setVisible(is==true)
  364. end
  365. -- 设置是否显示加倍
  366. function PlayerNode:setMult( is )
  367. self.mult:setVisible(is==true)
  368. end
  369. -- 设置是否显示反加倍
  370. function PlayerNode:setFanMult( is )
  371. self.fanMult:setVisible(is==true)
  372. end
  373. -- 设置轮次时钟
  374. function PlayerNode:setTurn( is, time )
  375. if is then
  376. if self.clockTimer then
  377. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.clockTimer)
  378. self.clockTimer = nil
  379. end
  380. self.imgTurn:setVisible(true)
  381. if self.clockTimer==nil then
  382. self.ui.Items.txtLimitTime.time = time or 10
  383. self.ui.Items.txtLimitTime:setString(string.format("%d", self.ui.Items.txtLimitTime.time))
  384. self.clockTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  385. if self.ui.Items.txtLimitTime.time > 0 then
  386. self.ui.Items.txtLimitTime.time = self.ui.Items.txtLimitTime.time - 1
  387. if self.ui.Items.txtLimitTime.time<=5 and self._info.viewPos==1 then
  388. DdzSoundHelper:alarm()
  389. end
  390. else
  391. if self.clockTimer then
  392. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.clockTimer)
  393. self.clockTimer = nil
  394. end
  395. end
  396. self.ui.Items.txtLimitTime:setString(string.format("%d", self.ui.Items.txtLimitTime.time))
  397. end,1.0,false)
  398. end
  399. else
  400. if self.clockTimer then
  401. self.ui.Items.txtLimitTime.time = self.ui.Items.txtLimitTime.time - 1
  402. self.ui.Items.txtLimitTime:setString(string.format("%d", self.ui.Items.txtLimitTime.time))
  403. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.clockTimer)
  404. self.clockTimer = nil
  405. end
  406. self.imgTurn:setVisible(false)
  407. end
  408. end
  409. -- 创建一张牌
  410. function PlayerNode:genCard( card ,dzFlag)
  411. local node = DdzCardNode:new()
  412. node:setCard(card)
  413. node:setSelectedHeight(DdzRoomViewConfig.SELECTED_HEIGHT)
  414. node:setNormalHeight(DdzRoomViewConfig.NORMAL_HEIGHT)
  415. local roomInfo = app.room:getRoomInfo()
  416. if card == roomInfo.nDarkLordCard and (not self:isHost()) then
  417. --给暗地主牌加光圈
  418. node:setGuangQuan()
  419. end
  420. return node
  421. end
  422. function PlayerNode:showEffectExt( effectType )
  423. local function __show()
  424. local node = nil
  425. local pInfo = self:getInfo()
  426. local sex = pInfo.sex
  427. local pos = self._info.viewPos
  428. local pt = clone(DdzRoomViewConfig.PASS_SHOW_POS[self._PlayMode][pos])
  429. if effectType == ETS.PASS then
  430. local cb = function ()
  431. self:setTurn(false)
  432. end
  433. node = DdzEffectHelper:getPass(cb)
  434. local idx = math.random(4)
  435. DdzSoundHelper:effectPass( sex, idx )
  436. end
  437. if node then
  438. node:setPosition(pt)
  439. node:setLocalZOrder(1000)
  440. self:addChild(node)
  441. if node.onEnter and type(node.onEnter)=='function' then
  442. node:onEnter()
  443. end
  444. end
  445. end
  446. self.ui:runAction(cc.Sequence:create(cc.DelayTime:create(1), cc.CallFunc:create(__show)))
  447. end
  448. -- 显示牌型
  449. function PlayerNode:showEffect(root, cards, effectType, pt, isContinue, dltWidth )
  450. local roomInfo = app.room:getRoomInfo()
  451. if roomInfo.gameStatus == DdzRoomViewConfig.GameStatus.GAME_STATE_ROUND_OVER then
  452. return
  453. end
  454. local rate = math.random(100)
  455. local stdRate = 70
  456. isContinue = isContinue or false
  457. local viewPos = self._info.viewPos
  458. local pInfo = self:getInfo()
  459. local sex = pInfo.sex
  460. local node = nil
  461. local isKingBomb = false
  462. if effectType == ETS.PASS then
  463. local cb = function ()
  464. self:setTurn(false)
  465. end
  466. node = DdzEffectHelper:getPass(cb)
  467. local idx = math.random(4)
  468. DdzSoundHelper:effectPass( sex, idx )
  469. elseif effectType == ETS.SINGLE_CARD then
  470. local _, val = pokerParse(cards[1])
  471. DdzSoundHelper:effectSingle( sex ,val )
  472. elseif effectType == ETS.DUI_ZI then
  473. local _, val = pokerParse(cards[1])
  474. if isContinue and rate >= stdRate and DdzSoundHelper:getLanguageType() == 1 then
  475. DdzSoundHelper:daNi( sex )
  476. else
  477. DdzSoundHelper:effectDouble( sex, val )
  478. end
  479. elseif effectType == ETS.SHUN_ZI then
  480. node = DdzEffectHelper:getShunzi()
  481. -- if viewPos==1 and node then
  482. -- node:setScale(1.2)
  483. -- end
  484. if isContinue and rate>=stdRate and DdzSoundHelper:getLanguageType() == 1 then
  485. DdzSoundHelper:daNi( sex )
  486. else
  487. DdzSoundHelper:effectShunzi( sex )
  488. end
  489. elseif effectType == ETS.LIAN_DUI then
  490. node = DdzEffectHelper:getLiandui()
  491. if isContinue and rate>=stdRate and DdzSoundHelper:getLanguageType() == 1 then
  492. DdzSoundHelper:daNi( sex )
  493. else
  494. DdzSoundHelper:effectLiandui( sex )
  495. end
  496. elseif effectType == ETS.THREE_AND_ONE then
  497. node = DdzEffectHelper:getSandaiyi()
  498. DdzSoundHelper:effect3And1( sex )
  499. elseif effectType == ETS.THREE_AND_TWO or effectType == ETS.THREE_AND_DUI then
  500. --根据牌获取是否是三带一或三个
  501. local tp = PokerUtil:checkType(cards)
  502. node = DdzEffectHelper:getSandaier()
  503. if isContinue and rate>=stdRate and DdzSoundHelper:getLanguageType() == 1 then
  504. DdzSoundHelper:daNi( sex )
  505. else
  506. DdzSoundHelper:effect3And2( sex,effectType )
  507. end
  508. elseif effectType == ETS.THREE then
  509. local _, val = pokerParse(cards[1])
  510. DdzSoundHelper:effectThree( sex, val )
  511. elseif DdzRoomViewConfig.isBomb(effectType) then
  512. node = DdzEffectHelper:getBomb()
  513. if effectType >= ETS.TWO_SMALL_KING and effectType <= ETS.TWO_BIG_KING or effectType >= ETS.FOUR_SMALL_KING and effectType <= ETS.FOUR_BIG_KING then
  514. node = DdzEffectHelper:getKingBomb()
  515. --isKingBomb = true
  516. DdzSoundHelper:effectKingBomb( sex )
  517. elseif effectType >= ETS.SIX_SMALL_KING and effectType <= ETS.SIX_BIG_KING then
  518. node = DdzEffectHelper:getShenShuiBomb()
  519. DdzSoundHelper:effectShenShuiZha( sex )
  520. else
  521. DdzSoundHelper:effectBomb( sex )
  522. end
  523. pt.y = pt.y + 100
  524. elseif effectType == ETS.SAN_SHUN or effectType == ETS.AIRPLANE_SINGLE or effectType == ETS.AIRPLANE_DUI then
  525. node = DdzEffectHelper:getPlan()
  526. if effectType == ETS.SAN_SHUN then
  527. DdzSoundHelper:effectSanShun( sex )
  528. else
  529. DdzSoundHelper:effectPlane( sex )
  530. end
  531. end
  532. if node then
  533. if effectType == ETS.SHUN_ZI then
  534. pt.x = pt.x - (dltWidth/2+100)
  535. end
  536. node:setPosition(pt)
  537. node:setLocalZOrder(1000)
  538. if isKingBomb then
  539. node:setPosition(640*g_radio_x,520*g_radio_y)
  540. app.mainScene:addChild(node)
  541. else
  542. local pos = root:getWorldPosition()
  543. pos.x = pos.x + pt.x
  544. pos.y = pos.y + pt.y
  545. node:setPosition(pos)
  546. app.mainScene:addChild(node)
  547. --root:addChild(node)
  548. end
  549. if node.onEnter and type(node.onEnter)=='function' then
  550. node:onEnter()
  551. end
  552. end
  553. end
  554. -- 显示叫地主或不叫
  555. function PlayerNode:showJiaoDiZhu(isJiao)
  556. local fileName = ""
  557. if isJiao then
  558. fileName = "pk_zgwrddz/res/ui/zy_wrddz_btns/wrddz_lab_jiaodizhu.png"
  559. else
  560. fileName = "pk_zgwrddz/res/ui/zy_wrddz_btns/wrddz_lab_bujiao.png"
  561. end
  562. local node = cc.ImageView:create()
  563. node:loadTexture(fileName)
  564. node:setTag(2000)
  565. local pos = self._info.viewPos
  566. local pt = clone(DdzRoomViewConfig.PASS_SHOW_POS[self._PlayMode][pos])
  567. node:setPosition(pt)
  568. node:setLocalZOrder(1000)
  569. node:setScale(0)
  570. self:addChild(node)
  571. node:runAction(cc.ScaleTo:create(0.1, 1))
  572. local pInfo = self:getInfo()
  573. local sex = pInfo.sex
  574. DdzSoundHelper:effectJiaoDiZhu( sex, isJiao )
  575. end
  576. -- 显示加倍或不加倍
  577. function PlayerNode:showJiaBei(isJiaBei)
  578. local fileName = ""
  579. if isJiaBei then
  580. fileName = "pk_zgwrddz/res/ui/zy_wrddz_btns/wrddz_lab_jiabei.png"
  581. else
  582. fileName = "pk_zgwrddz/res/ui/zy_wrddz_btns/wrddz_lab_bujiabei.png"
  583. end
  584. local node = cc.ImageView:create()
  585. node:loadTexture(fileName)
  586. node:setTag(2000)
  587. local pos = self._info.viewPos
  588. local pt = clone(DdzRoomViewConfig.PASS_SHOW_POS[self._PlayMode][pos])
  589. node:setPosition(pt)
  590. node:setLocalZOrder(1000)
  591. node:setScale(0)
  592. self:addChild(node)
  593. node:runAction(cc.ScaleTo:create(0.1, 1))
  594. local pInfo = self:getInfo()
  595. local sex = pInfo.sex
  596. DdzSoundHelper:effectJiaBei( sex, isJiaBei )
  597. end
  598. -- 显示反加倍或不反
  599. function PlayerNode:showFanJiaBei(isJiaBei)
  600. local fileName = ""
  601. if isJiaBei then
  602. fileName = "pk_zgwrddz/res/ui/zy_wrddz_btns/wrddz_lab_fanjiabei.png"
  603. else
  604. fileName = "pk_zgwrddz/res/ui/zy_wrddz_btns/wrddz_lab_bufan.png"
  605. end
  606. local node = cc.ImageView:create()
  607. node:loadTexture(fileName)
  608. node:setTag(2000)
  609. local pos = self._info.viewPos
  610. local pt = clone(DdzRoomViewConfig.PASS_SHOW_POS[self._PlayMode][pos])
  611. node:setPosition(pt)
  612. node:setLocalZOrder(1000)
  613. node:setScale(0)
  614. self:addChild(node)
  615. node:runAction(cc.ScaleTo:create(0.1, 1))
  616. local pInfo = self:getInfo()
  617. local sex = pInfo.sex
  618. DdzSoundHelper:effectJiaBei( sex, isJiaBei )
  619. end
  620. -- 设置是否是托管
  621. function PlayerNode:setTuoGuan( is )
  622. self.imgTuoGuan:setVisible(is==true)
  623. end
  624. return PlayerNode