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.

777 lines
21 KiB

  1. local ZPDef = ZPFramework.ZPImport("zp_base.luaScript.ZPDef")
  2. local ZPFuc = ZPFramework.ZPImport("zp_base.luaScript.ZPFunctions")
  3. local ZPSound = ZPFramework.ZPImport("zp_base.luaScript.ZPSound")
  4. local ZPMessage = ZPFramework.ZPImport("zp_base.luaScript.Protocol.ZPMessage")
  5. local ZPRoomOperationView = ZPFramework.ZPFrameworkClassImprot("zp_base.luaScript.Views.Room.ZPRoomOperationView")
  6. local xichongRoomOperationView = class("xichongRoomOperationView", ZPRoomOperationView)
  7. local tempCardVlue ={
  8. [17] = 20, --11
  9. [18] = 30, --12
  10. [49] = 40, --31
  11. [34] = 41, --22
  12. [20] = 50, --14
  13. [50] = 51, --32
  14. [21] = 60, --15
  15. [36] = 61, --24
  16. [51] = 62, --33
  17. [22] = 70, --16
  18. [52] = 71, --34
  19. [82] = 72, --52
  20. [68] = 80, --44
  21. [38] = 81, --26
  22. [53] = 82, --35
  23. [84] = 90, --54
  24. [54] = 91, --36
  25. [70] = 100, --46
  26. [85] = 101, --55
  27. [86] = 110, --56
  28. [102] = 120, --66
  29. }
  30. function xichongRoomOperationView:ctor()
  31. xichongRoomOperationView.super.ctor(self);
  32. self.chiList = {}
  33. self.baoTypeList = {}
  34. self.anThreeZ = nil
  35. self.anThourZ = nil
  36. self.baoType = 0
  37. self.opCard = 0
  38. self.selectBaType = 0
  39. end
  40. function xichongRoomOperationView:onEnter()
  41. xichongRoomOperationView.super.onEnter(self)
  42. --self:bindEvent(app.room,"onHideOpreationView",handler(self,self.onHideOpreationView))
  43. local ui = loadUI("zp_xichong/res/ui/ui_fangjian/xichong_ui_operation.ui");
  44. self.ui = ui;
  45. self:addChild(ui);
  46. self.ui.Items.ImageView_BaoType:setVisible(false)
  47. self.ui.Items.Layout_BaoJiao:registerClick(handler(self,self.onClickBaoBg))
  48. --ui排序:吃碰胡过
  49. self.ui.Items.Button_1:registerClick(nil,function ()
  50. local function chi()
  51. local operateCode = ZPDef.OpCode.OP_CHI
  52. if table.nums(self.chiList) >= 1 then
  53. self:showChiOpList()
  54. end
  55. end
  56. local isHu = self:getIsHaveHuOp()
  57. if isHu == true then
  58. local content = string.format("确定放弃胡牌吗?")
  59. local okCallBack = function ()
  60. chi()
  61. end
  62. local cancelCallBack = function ()
  63. end
  64. showConfirmDialog(content,okCallBack,cancelCallBack)
  65. else
  66. chi()
  67. end
  68. end)
  69. self.ui.Items.Button_2:registerClick(function ()
  70. local function peng()
  71. local operateCode = ZPDef.OpCode.OP_PENG
  72. self:sendOperationCode(operateCode,self.opCard)
  73. --直接隐藏界面
  74. self:setOperatorPanelView(false)
  75. end
  76. local isHu = self:getIsHaveHuOp()
  77. if isHu == true then
  78. local content = string.format("确定放弃胡牌吗?")
  79. local okCallBack = function ()
  80. peng()
  81. end
  82. local cancelCallBack = function ()
  83. end
  84. showConfirmDialog(content,okCallBack,cancelCallBack)
  85. else
  86. peng()
  87. end
  88. end)
  89. --self:hidePengBtn()
  90. self.ui.Items.Button_3:registerClick(function ()
  91. if app.room:isLittleFamily() then return end
  92. local isHu = self:getIsHaveHuOp()
  93. if isHu == true then
  94. local content = string.format("确定放弃胡牌吗?")
  95. local okCallBack = function ()
  96. self:onClickGuo()
  97. end
  98. local cancelCallBack = function ()
  99. end
  100. showConfirmDialog(content,okCallBack,cancelCallBack)
  101. else
  102. self:onClickGuo()
  103. end
  104. end)
  105. --暗
  106. self.ui.Items.Button_5:registerClick(function ()
  107. local function An()
  108. if self.anThreeZ and self.anThourZ then
  109. self:showAnOpList()
  110. else
  111. local operateCode = 0
  112. if self.anThreeZ then
  113. operateCode = self.anThreeZ
  114. end
  115. if self.anThourZ then
  116. operateCode = self.anThourZ
  117. end
  118. self:sendOperationCode(operateCode,self.opCard)
  119. --直接隐藏界面
  120. self:setOperatorPanelView(false)
  121. end
  122. end
  123. local isHu = self:getIsHaveHuOp()
  124. if isHu == true then
  125. local content = string.format("确定放弃胡牌吗?")
  126. local okCallBack = function ()
  127. An()
  128. end
  129. local cancelCallBack = function ()
  130. end
  131. showConfirmDialog(content,okCallBack,cancelCallBack)
  132. else
  133. An()
  134. end
  135. end)
  136. --跨
  137. self.ui.Items.Button_9:registerClick(function ()
  138. local function Kua()
  139. local operateCode = ZPDef.OpCode.OP_KUA
  140. self:sendOperationCode(operateCode,self.opCard)
  141. --直接隐藏界面
  142. self:setOperatorPanelView(false)
  143. end
  144. local isHu = self:getIsHaveHuOp()
  145. if isHu == true then
  146. local content = string.format("确定放弃胡牌吗?")
  147. local okCallBack = function ()
  148. Kua()
  149. end
  150. local cancelCallBack = function ()
  151. end
  152. showConfirmDialog(content,okCallBack,cancelCallBack)
  153. else
  154. Kua()
  155. end
  156. end)
  157. self.ui.Items.Button_4:registerClick(function ()
  158. local operateCode = 0
  159. --判断是否有胡
  160. local retHu = bit32.band(self.operationLocalCode,ZPDef.OpCode.OP_HU)
  161. if retHu > 0 then
  162. operateCode = ZPDef.OpCode.OP_HU
  163. end
  164. local retHu1 = bit32.band(self.operationLocalCode,ZPDef.OpCode.OP_TIAN_HU)
  165. if retHu1 > 0 then
  166. operateCode = ZPDef.OpCode.OP_TIAN_HU
  167. end
  168. self:sendOperationCode(operateCode,self.opCard)
  169. self:setOperatorPanelView(false)
  170. end)
  171. --不爆牌
  172. self.ui.Items.Button_8:registerClick(function ()
  173. if app.room:isLittleFamily() then return end
  174. local request = ZPMessage.GameBaoSendOperateCode:new()
  175. request.operateCode = 0
  176. logE("xichongRoomOperationView:baopai"..table.tostring(request))
  177. self.ui:sendMsg(app.room, "sendBaoOperate", request, function(status, response)
  178. logE("xichongRoomOperationView baopai response = ", table.tostring(response))
  179. end)
  180. self:showBaoPaiOpView(false)
  181. end)
  182. --爆牌
  183. self.ui.Items.Button_7:registerClick(function ()
  184. if app.room:isLittleFamily() then return end
  185. local num = self:getBaoTypeNum(self.baoType)
  186. if num > 1 then
  187. self:showBaoPaiOpList()
  188. else
  189. local request = ZPMessage.GameBaoSendOperateCode:new()
  190. request.operateCode = self.baoType
  191. logE("xichongRoomOperationView:baopai"..table.tostring(request))
  192. self.ui:sendMsg(app.room, "sendBaoOperate", request, function(status, response)
  193. logE("xichongRoomOperationView baopai response = ", table.tostring(response))
  194. end)
  195. self:showBaoPaiOpView(false)
  196. end
  197. end)
  198. self:initUI()
  199. self:hideSelf()
  200. end
  201. function xichongRoomOperationView:onClickBaoBg()
  202. end
  203. function xichongRoomOperationView:initUI()
  204. ---注册点击事件
  205. for i = 1, 3 do
  206. if i == 3 then
  207. i = i+1
  208. end
  209. local paixing = string.format("Layout_paixing_%d",i)
  210. local selectImage = string.format("ImageView_select_%d",i)
  211. local selectImageNode = self.ui.Items[selectImage]
  212. selectImageNode:setVisible(true)
  213. self.ui.Items[paixing]:registerClick(function()
  214. local selectImage = string.format("ImageView_select_%d",i)
  215. local selectImageNode = self.ui.Items[selectImage]
  216. local selectImage1 = string.format("ImageView_BaoType_sel_%d",i)
  217. local selectImageNode1 = self.ui.Items[selectImage1]
  218. selectImageNode:setVisible(not selectImageNode:isVisible())
  219. selectImageNode1:setVisible(not selectImageNode1:isVisible())
  220. self.selectBaType = 0
  221. if self.ui.Items.ImageView_select_1:isVisible() then
  222. self.selectBaType = getNumOr(self.selectBaType,ZPDef.BaoOpCode.BAO_ZHAO_CHI)
  223. end
  224. if self.ui.Items.ImageView_select_2:isVisible() then
  225. self.selectBaType = getNumOr(self.selectBaType,ZPDef.BaoOpCode.BAO_TUI)
  226. end
  227. if self.ui.Items.ImageView_select_4:isVisible() then
  228. self.selectBaType = getNumOr(self.selectBaType,ZPDef.BaoOpCode.BAO_HOU_DUI)
  229. end
  230. if self.selectBaType == 0 then
  231. self.ui.Items.Button_QD:setEnabled(false)
  232. else
  233. self.ui.Items.Button_QD:setEnabled(true)
  234. end
  235. end)
  236. end
  237. self.ui.Items.Button_QD:registerClick(function()
  238. local request = ZPMessage.GameBaoSendOperateCode:new()
  239. request.operateCode = self.selectBaType
  240. logE("xichongRoomOperationView:baopai"..table.tostring(request))
  241. self.ui:sendMsg(app.room, "sendBaoOperate", request, function(status, response)
  242. logE("xichongRoomOperationView baopai response = ", table.tostring(response))
  243. end)
  244. self:showBaoPaiOpView(false)
  245. end)
  246. end
  247. function xichongRoomOperationView:showChiOpList()
  248. local laySize = self.ui.Items.Layout_1:getContentSize()
  249. local worldPos = self.ui.Items.Layout_1:getWorldPosition()
  250. local nodePos = worldPos
  251. self.ui.Items.Layout_EatPanle:setPositionX(nodePos.x + laySize.width/2)
  252. self.ui.Items.ImageView_jiantou:setPositionX(nodePos.x + laySize.width/2)
  253. if self.ui.Items.Layout_Eat:isVisible() then
  254. self.ui.Items.Layout_Eat:setVisible(false)
  255. return
  256. else
  257. self.ui.Items.Layout_Eat:setVisible(true)
  258. end
  259. self.ui.Items.Layout_EatPanle:removeAllChildren()
  260. local list = self.chiList
  261. --按点数从小到大排序
  262. table.sort(list,function(a,b)
  263. local numA = tempCardVlue[tonumber(a)]
  264. local numB = tempCardVlue[tonumber(b)]
  265. if (numA ~= nil) and (numB ~= nil) then
  266. return numA < numB
  267. end
  268. return false
  269. end)
  270. for k,v in ipairs(list) do
  271. local tempList = {}
  272. table.insert(tempList,v)
  273. table.insert(tempList,self.opCard)
  274. local eatCardUI = loadUI("zp_xichong/res/ui/ui_fangjian/xichong_ui_chiGroup.ui")
  275. self.ui.Items.Layout_EatPanle:addChild(eatCardUI)
  276. for i = 1, 2 do
  277. local cardShow = tempList[i]
  278. local fileName = ZPFuc.getZPCardImgByValue(cardShow,ZPDef.CardType.CARD_TYPE_TABLE)
  279. local eatCardName = string.format("ImageView_Card_%d",i)
  280. logE("创建吃牌单个:.."..fileName)
  281. eatCardUI.Items[eatCardName]:loadTextureFromPlist(fileName)
  282. --eatCardUI.Items[eatCardName]:setTouchEnabled(true)
  283. if eatCardUI.Items[eatCardName]:isTouchEnabled() then
  284. logE("吃牌设置触摸成功")
  285. end
  286. end
  287. eatCardUI.Items.Layout_Group:registerClick(function()
  288. local card = v
  289. self:sendOperationCode(ZPDef.OpCode.OP_CHI,card)
  290. --直接隐藏界面
  291. self:setOperatorPanelView(false)
  292. end)
  293. end
  294. --self.ui.Items.Layout_EatPanle:requestDoLayout()
  295. --self.ui.Items.Layout_EatPanle:doLayout();
  296. end
  297. function xichongRoomOperationView:showAnOpList()
  298. local laySize = self.ui.Items.Layout_5:getContentSize()
  299. local worldPos = self.ui.Items.Layout_5:getWorldPosition()
  300. local nodePos = worldPos
  301. self.ui.Items.Layout_AnPanle:setPositionX(nodePos.x + laySize.width/2)
  302. self.ui.Items.ImageView_jiantou_2:setPositionX(nodePos.x + laySize.width/2)
  303. if self.ui.Items.Layout_An:isVisible() then
  304. self.ui.Items.Layout_An:setVisible(false)
  305. return
  306. else
  307. self.ui.Items.Layout_An:setVisible(true)
  308. end
  309. self.ui.Items.Layout_AnPanle:removeAllChildren()
  310. local eatCardUI = loadUI("zp_xichong/res/ui/ui_fangjian/xichong_ui_anGroup.ui")
  311. self.ui.Items.Layout_AnPanle:addChild(eatCardUI)
  312. for i = 1, 4 do
  313. local eatCardName = string.format("ImageView_Card_%d",i)
  314. eatCardUI.Items[eatCardName]:setVisible(false)
  315. end
  316. for i = 1, 3 do
  317. local cardShow = self.opCard
  318. local fileName = ZPFuc.getZPCardImgByValue(cardShow,ZPDef.CardType.CARD_TYPE_TABLE)
  319. local eatCardName = string.format("ImageView_Card_%d",i)
  320. logE("创建吃牌单个:.."..fileName)
  321. eatCardUI.Items[eatCardName]:setVisible(true)
  322. eatCardUI.Items[eatCardName]:loadTextureFromPlist(fileName)
  323. if eatCardUI.Items[eatCardName]:isTouchEnabled() then
  324. logE("吃牌设置触摸成功")
  325. end
  326. end
  327. eatCardUI.Items.Layout_Group:registerClick(function()
  328. local card = self.opCard
  329. self:sendOperationCode(self.anThreeZ,card)
  330. --直接隐藏界面
  331. self:setOperatorPanelView(false)
  332. end)
  333. local eatCardUI1 = loadUI("zp_xichong/res/ui/ui_fangjian/xichong_ui_anGroup.ui")
  334. self.ui.Items.Layout_AnPanle:addChild(eatCardUI1)
  335. for i = 1, 4 do
  336. local eatCardName = string.format("ImageView_Card_%d",i)
  337. eatCardUI1.Items[eatCardName]:setVisible(false)
  338. end
  339. for i = 1, 4 do
  340. local cardShow = self.opCard
  341. local fileName = ZPFuc.getZPCardImgByValue(cardShow,ZPDef.CardType.CARD_TYPE_TABLE)
  342. local eatCardName = string.format("ImageView_Card_%d",i)
  343. logE("创建吃牌单个:.."..fileName)
  344. eatCardUI1.Items[eatCardName]:setVisible(true)
  345. eatCardUI1.Items[eatCardName]:loadTextureFromPlist(fileName)
  346. if eatCardUI1.Items[eatCardName]:isTouchEnabled() then
  347. logE("吃牌设置触摸成功")
  348. end
  349. end
  350. eatCardUI1.Items.Layout_Group:registerClick(function()
  351. local card = self.opCard
  352. self:sendOperationCode(self.anThourZ,card)
  353. --直接隐藏界面
  354. self:setOperatorPanelView(false)
  355. end)
  356. self.ui.Items.Layout_AnPanle:requestDoLayout()
  357. self.ui.Items.Layout_AnPanle:doLayout();
  358. end
  359. function xichongRoomOperationView:showBaoPaiOpList()
  360. local laySize = self.ui.Items.Layout_7:getContentSize()
  361. local worldPos = self.ui.Items.Layout_7:getWorldPosition()
  362. local nodePos = worldPos
  363. self.ui.Items.Layout_BaoJiao:setPositionX(nodePos.x + laySize.width/2)
  364. if self.ui.Items.Layout_BaoJiao:isVisible() then
  365. self.ui.Items.Layout_BaoJiao:setVisible(false)
  366. return
  367. else
  368. self.ui.Items.Layout_BaoJiao:setVisible(true)
  369. end
  370. local num = self:getBaoTypeNum(self.baoType)
  371. for i = 1, 3 do
  372. if i == 3 then
  373. i = i+1
  374. end
  375. local paixing = string.format("Layout_paixing_%d",i)
  376. self.ui.Items[paixing]:setVisible(false)
  377. local selectType = string.format("ImageView_select_%d",i)
  378. self.ui.Items[selectType]:setVisible(false)
  379. end
  380. for k,v in pairs(self.baoTypeList) do
  381. local paixing = string.format("Layout_paixing_%d",v)
  382. self.ui.Items[paixing]:setVisible(true)
  383. local selectType = string.format("ImageView_select_%d",v)
  384. self.ui.Items[selectType]:setVisible(true)
  385. local selectImage = string.format("ImageView_BaoType_sel_%d",v)
  386. self.ui.Items[selectImage]:setVisible(true)
  387. end
  388. self.ui.Items.Layout_leixing:requestDoLayout()
  389. self.ui.Items.Layout_leixing:doLayout();
  390. end
  391. function xichongRoomOperationView:getBaoTypeNum(baoType)
  392. local num = 0
  393. self.baoTypeList = {}
  394. local ret1 = bit32.band(baoType,ZPDef.BaoOpCode.BAO_ZHAO_CHI)
  395. if ret1 > 0 then
  396. num = num + 1
  397. table.insert(self.baoTypeList,ZPDef.BaoOpCode.BAO_ZHAO_CHI)
  398. end
  399. local ret2 = bit32.band(baoType,ZPDef.BaoOpCode.BAO_TUI)
  400. if ret2 > 0 then
  401. num = num + 1
  402. table.insert(self.baoTypeList,ZPDef.BaoOpCode.BAO_TUI)
  403. end
  404. local ret3 = bit32.band(baoType,ZPDef.BaoOpCode.BAO_HOU_DUI)
  405. if ret3 > 0 then
  406. num = num + 1
  407. table.insert(self.baoTypeList,ZPDef.BaoOpCode.BAO_HOU_DUI)
  408. end
  409. return num
  410. end
  411. --获取是否有胡操作
  412. function xichongRoomOperationView:getIsHaveHuOp()
  413. if not self.operationLocalCode then return false end
  414. local beginList = {}
  415. beginList = ZPFuc.getZPOperationType(self.operationLocalCode,true)
  416. local isHu = false
  417. for k,opType in pairs(beginList) do
  418. if opType == ZPDef.OpType.OP_TYPE_HU then
  419. isHu = true
  420. break
  421. end
  422. end
  423. return isHu
  424. end
  425. --泸州大贰自动碰,所以隐藏碰按钮
  426. function xichongRoomOperationView:hidePengBtn()
  427. end
  428. function xichongRoomOperationView:showOpeation(mainOpCode,card,chilist,hasGuo)
  429. if app.room:isLittleFamily() then return end
  430. --操作码
  431. self.operationLocalCode = mainOpCode
  432. --可以操作的牌
  433. self.opCard = card
  434. --吃牌列表
  435. self.chiList = chilist
  436. logE("RoomView:showOpeation(mainOpCode) 1:"..mainOpCode)
  437. --获取偷巴操作
  438. self.anThreeZ = self:getTouOperate(self.operationLocalCode)
  439. self.anThourZ = self:getBaOperate(self.operationLocalCode)
  440. --操作类型
  441. local beginList = {}
  442. beginList = ZPFuc.getZPOperationType(mainOpCode,hasGuo)--,self.playerZhao[1] > 0
  443. logE("RoomView:showOpeation isCheckMustOperation before (beginList)1 :"..table.tostring(beginList))
  444. --胡牌优先规则
  445. local isHu = false
  446. for k,opType in pairs(beginList) do
  447. if opType == ZPDef.OpType.OP_TYPE_HU then
  448. isHu = true
  449. break
  450. end
  451. end
  452. --如果没有胡,扫,提,跑,等自动操作,则显示吃碰过操作
  453. self:setOperatorPanelView(true,beginList)
  454. end
  455. --暗三张
  456. function xichongRoomOperationView:getTouOperate(op)
  457. local opreate = nil
  458. local ret2 = bit32.band(op,ZPDef.OpCode.OP_TOU_ZHUA)
  459. if ret2 > 0 then
  460. return ZPDef.OpCode.OP_TOU_ZHUA
  461. end
  462. return opreate
  463. end
  464. --暗四张
  465. function xichongRoomOperationView:getBaOperate(op)
  466. local opreate = nil
  467. local ret2 = bit32.band(op,ZPDef.OpCode.OP_BA_ZHUA)
  468. if ret2 > 0 then
  469. return ZPDef.OpCode.OP_BA_ZHUA
  470. end
  471. return opreate
  472. end
  473. --隐藏行为操作层
  474. function xichongRoomOperationView:setOperatorPanelView(bVisible,operations)
  475. self:setVisible(bVisible)
  476. self.ui.Items.Layout_operatorPanel:setVisible(bVisible)
  477. self.ui.Items.Layout_An:setVisible(false)
  478. self.ui.Items.Layout_BaoJiao:setVisible(false)
  479. self.ui.Items.Layout_Eat:setVisible(false)
  480. --置灰所有 ui排序:吃碰过
  481. for i = 1 ,9 do
  482. local name = string.format("Button_%d",i)
  483. local layout = string.format("Layout_%d",i)
  484. if self.ui.Items[name] then
  485. self.ui.Items[layout]:setVisible(false)
  486. self.ui.Items[name]:setVisible(false)
  487. end
  488. end
  489. local index = 1
  490. --local guoPosx = self.ui.Items.Layout_3:getPositionX()
  491. --显示操作序列
  492. if operations then
  493. for k,v in pairs(operations) do
  494. local name = string.format("Button_%d",v)
  495. local layout = string.format("Layout_%d",v)
  496. --偷和巴做特殊判断
  497. if v == 12 or v== 13 then
  498. name = string.format("Button_%d",5)
  499. layout = string.format("Layout_%d",5)
  500. end
  501. if v == 14 then
  502. name = string.format("Button_%d",9)
  503. layout = string.format("Layout_%d",9)
  504. end
  505. if self.ui.Items[name] and not self.ui.Items[name]:isVisible() then
  506. self.ui.Items[layout]:setVisible(true)
  507. self.ui.Items[name]:setEnabled(true)
  508. self.ui.Items[name]:setVisible(true)
  509. end
  510. end
  511. self.ui.Items.Layout_Operate:requestDoLayout()
  512. self.ui.Items.Layout_Operate:doLayout()
  513. end
  514. end
  515. --显示爆牌操作
  516. function xichongRoomOperationView:showBaoPaiOpView(isshow,baoType)
  517. if app.room:isLittleFamily() then return end
  518. self:setVisible(isshow)
  519. self.selectBaType = baoType
  520. self.baoType = baoType
  521. if true == isshow then
  522. local num = self:getBaoTypeNum(baoType)
  523. logD("xichongRoomOperationView showBaoPaiOpView",baoType)
  524. if num == 1 then
  525. if baoType == ZPDef.BaoOpCode.BAO_TUI then
  526. self.ui.Items.ImageView_BaoType:loadTexture(ZPDef.PaiXingFile.BAOTUI)
  527. elseif baoType == ZPDef.BaoOpCode.BAO_ZHAO_CHI then
  528. self.ui.Items.ImageView_BaoType:loadTexture(ZPDef.PaiXingFile.ZHAOCHI)
  529. elseif baoType == ZPDef.BaoOpCode.BAO_HOU_DUI then
  530. self.ui.Items.ImageView_BaoType:loadTexture(ZPDef.PaiXingFile.HOUDUI)
  531. end
  532. self.ui.Items.ImageView_BaoType:setVisible(true)
  533. else
  534. self.ui.Items.ImageView_BaoType:setVisible(false)
  535. end
  536. local operations = {}
  537. table.insert(operations,8)
  538. table.insert(operations,7)
  539. self:setOperatorPanelView(isshow,operations)
  540. else
  541. self:setOperatorPanelView(false)
  542. self.ui.Items.ImageView_BaoType:setVisible(false)
  543. end
  544. end
  545. --隐藏自身
  546. function xichongRoomOperationView:hideSelf()
  547. self.ui.Items.Layout_operatorPanel:setVisible(false)
  548. end
  549. function xichongRoomOperationView:sendOperationCode(operationCode,opCard)
  550. if app.room:isLittleFamily() then return end
  551. local opCard = opCard or 0
  552. local request = ZPMessage.GameSendOpCodeResponse:new()
  553. --发送操作码
  554. request.operateCode = operationCode
  555. request.opCard= tonumber(opCard)
  556. logE("sendOperationCode:"..table.tostring(request))
  557. self.ui:sendMsg(app.room, "sendOperationCode", request, function(status, response)
  558. logE("RoomView sendOperationCode() response = ", table.tostring(response))
  559. end)
  560. app:dispatchEvent({name = "onClickOpBtn"});
  561. end
  562. function xichongRoomOperationView:onClickGuo()
  563. --算法保留,现在是强制胡牌,如果是非强制胡牌的规则,这里就起作用了
  564. --操作类型
  565. local beginList = {}
  566. beginList = ZPFuc.getZPOperationType(self.operationLocalCode,true)--,self.playerZhao[1] > 0
  567. local isHu = false
  568. for k,opType in pairs(beginList) do
  569. if opType == ZPDef.OpType.OP_TYPE_HU then
  570. isHu = true
  571. break
  572. end
  573. end
  574. local operateCode = 0
  575. operateCode = ZPDef.OpCode.OP_CANCEL
  576. local card = self.outCard or 0
  577. self:sendOperationCode(operateCode,card)
  578. --直接隐藏界面
  579. self:setOperatorPanelView(false)
  580. --如果有吃的界面则隐藏
  581. --self:setEatCardView(false)
  582. local nUserID = app.room:getUserIdByViewId(1)
  583. --playVoiceOperation(ZPDef.OpType.OP_TYPE_CANCEL,nUserID)
  584. end
  585. --隐藏吃牌界面
  586. function xichongRoomOperationView:setEatCardView(bVisible)
  587. end
  588. --隐藏比牌界面
  589. function xichongRoomOperationView:setEatCardBiView(bVisible)
  590. end
  591. --隐藏比牌界面
  592. function xichongRoomOperationView:setEatCardSanBiView(bVisible)
  593. end
  594. function xichongRoomOperationView:setAllEatView(bVisible)
  595. end
  596. --吃牌点击
  597. function xichongRoomOperationView:touchEatOneCardCallBack()
  598. end
  599. --点击吃牌组合牌一回调
  600. function xichongRoomOperationView:touchEatTwoCardCallBack(operateCode,weaveCardList)
  601. end
  602. --点击吃牌组合牌一回调
  603. function xichongRoomOperationView:touchEatSanCardCallBack(operateCode1,weaveCardList1,operateCode2,weaveCardList2)
  604. end
  605. --判断能否吃牌
  606. --[[
  607. operateCode:吃牌操作码
  608. list : 吃牌组合,key为操作码,value为三张牌组合
  609. index :list的有效大小
  610. ]]
  611. function xichongRoomOperationView:getEatLeaveWeave(handCardValueLocalTemp)
  612. end
  613. --判断能否吃牌
  614. --[[
  615. weaveCard:要吃的那组牌
  616. handCardValueLocalTemp:剩下的手牌(已经假定删掉吃过的牌)
  617. ]]
  618. function xichongRoomOperationView:eatCardLogic(weaveCard,handCardValueLocalTemp)
  619. end
  620. --多维数组转 一维数组
  621. function xichongRoomOperationView:ChangeDataToVector(data)
  622. local tt = {}
  623. for i = 1, self.lieShuMax do
  624. for j = 1, self.hangShuMax do
  625. if data[i][j] then
  626. table.insert(tt,data[i][j])
  627. end
  628. end
  629. end
  630. return tt
  631. end
  632. --[[
  633. 吃牌优化:优先显示油数的组合
  634. ]]
  635. function xichongRoomOperationView:RankChiPai(weaveCardList,listCode)
  636. end
  637. --游戏场景传一些参数过来 出的牌,手牌数据
  638. function xichongRoomOperationView:setSameParame(outCard,handCardList)
  639. self.outCard = outCard
  640. self.handCardValueLocal = handCardList
  641. end
  642. return xichongRoomOperationView;