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

251 行
7.8 KiB

  1. -- 总结算界面
  2. local ZPRoomCountAllView = ZPFramework.ZPFrameworkClassImprot("zp_base.luaScript.Views.Room.ZPRoomCountAllView")
  3. local doushisiRoomCountAllView = class("doushisiRoomCountAllView", ZPRoomCountAllView)
  4. function doushisiRoomCountAllView:ctor(response,endTime)
  5. doushisiRoomCountAllView.super.ctor(self,response,endTime);
  6. end
  7. function doushisiRoomCountAllView:onEnter()
  8. doushisiRoomCountAllView.super.onEnter(self)
  9. local index = 1
  10. for nUserId,totalData in pairsByKeys(self.response) do
  11. local iamgeBg = string.format("ImageView_item_bg_%d",index)
  12. local uid = string.format("Text_ID_%d",index)
  13. if totalData.nTextJson then
  14. local dataJson = json.decode(totalData.nTextJson)
  15. local jiesanLab = self.ui.Items[uid]:getCopied()
  16. local jiesanPos = self.ui.Items[uid]:getPosition()
  17. local jiesaninfo = {
  18. [0] = "超时解散",
  19. [1] = "申请解散",
  20. [2] = "同意解散",
  21. [3] = "拒绝",
  22. [4] = "系统解散",
  23. }
  24. if dataJson.jiesan and dataJson.jiesan >= 0 then
  25. jiesanLab:setPositionY(jiesanPos.y - 168)
  26. jiesanLab:setAnchorPoint(cc.p(0.5, 0.5))
  27. jiesanLab:setColor(cc.c3b(255,155,155))
  28. jiesanLab:setText(jiesaninfo[dataJson.jiesan])
  29. self.ui.Items[iamgeBg]:addChild(jiesanLab)
  30. end
  31. --显示隐藏游戏内选手id(主办人和管理员不限制,只针对海选赛) -- todo lwq
  32. -- begin
  33. local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
  34. if app.club_php.clubID and app.club_php.clubID ~= 0 then
  35. if app.club_php:getCestIsOpen(app.club_php.clubID) then
  36. --隐私数据
  37. local clubInfo = app.club_php.clubList[app.club_php.clubID]
  38. self.cliext = clubInfo.groupext and clubInfo.groupext.cliext
  39. if not self.cliext or not self.cliext.is_hideUid or (self.cliext and self.cliext.is_hideUid == 1) then
  40. if clubInfo.role == ClubDefine.Job.Creator or clubInfo.role == ClubDefine.Job.Manager then
  41. self.ui.Items[uid]:setVisible(true)
  42. else
  43. self.ui.Items[uid]:setVisible(false)
  44. end
  45. end
  46. end
  47. end
  48. if nUserId == tonumber(app.user.loginInfo.uid) then
  49. self.ui.Items[uid]:setVisible(true)
  50. end
  51. -- end
  52. end
  53. index = index + 1
  54. end
  55. end
  56. function doushisiRoomCountAllView:onExit()
  57. doushisiRoomCountAllView.super.onExit(self);
  58. end
  59. function doushisiRoomCountAllView:loadUI()
  60. local ui = loadUI("zp_doushisi/res/ui/ui_fangjian/doushisi_ui_daju.ui");
  61. self.ui = ui;
  62. self:addChild(ui);
  63. end
  64. -- 防封群分享
  65. function doushisiRoomCountAllView:onClickFFQShare()
  66. app.waitDialogManager:showWaitNetworkDialog("获取分享链接")
  67. local onGetUrlCallback = function(url)
  68. app.waitDialogManager:closeWaitNetworkDialog()
  69. if url then
  70. local imagePath = cc.FileUtils:getInstance():getWritablePath().."icon.png"
  71. local gameName = getSubGameName(GAME_IDS.doushisiDaEr) or "川南棋牌"
  72. local info = {}
  73. -- info.contentType = "image"
  74. info.image = fileName
  75. info.title = gameName.."战绩"
  76. info.FFQFlag = true
  77. -- info.imageWidth = 800
  78. info.menuIdxs = {1, 4, 5, 6}
  79. -- info.isShareZhanjiUrl = false
  80. info.copyData={
  81. type=1,
  82. tableId=app.room.roomInfo.nShowTableId,
  83. userInfos={},
  84. }
  85. local content = nil;
  86. local memberList = app.room.roomInfo.memberList--self._overData.nTotalPlayerInfos
  87. for k,v in pairs(self.response) do
  88. local userInfo = app.room:getUserInfo(k)
  89. --昵称
  90. local nickname = userInfo.nickname or ""
  91. local totalScore = v.nTotalScore or v.nTotalMoney
  92. totalScore = tonumber(totalScore)
  93. table.insert(info.copyData.userInfos,{nickname=getShortName2(nickname),totalScore=totalScore})
  94. local strUserInfo = ""
  95. if totalScore > 0 then
  96. strUserInfo = string.format("%s(+%s)", getShortName2(nickname), totalScore)
  97. else
  98. strUserInfo = string.format("%s(%s)", getShortName2(nickname), totalScore)
  99. end
  100. if content then
  101. content = content .. "," .. strUserInfo
  102. else
  103. content = strUserInfo
  104. end
  105. end
  106. local sharUrl = string.format("%s?uid=%s&gameid=%s&app=%s&roomid=%s&endtime=%s",
  107. url,
  108. app.user.loginInfo.uid,
  109. GAME_IDS.doushisi,
  110. getAppId(),
  111. app.room.roomInfo.nShowTableId,
  112. self.endTime or os.time())
  113. info.url = sharUrl
  114. info.description = content
  115. dump(info)
  116. local view = import("luaScript.Views.Main.ShareView"):new(info)
  117. view:setAnchorPoint(cc.p(0.5, 0.5))
  118. app:showWaitDialog(view)
  119. else
  120. showTooltip("获取分享用的链接失败")
  121. end
  122. end
  123. app.php:initShareZhanJiToUrl(onGetUrlCallback)
  124. end
  125. -- 分享
  126. function doushisiRoomCountAllView:onClickShare()
  127. local fileName = cc.FileUtils:getInstance():getWritablePath()..tostring(app.room.roomInfo.nShowTableId).."_screen.jpg"
  128. cc.FileUtils:getInstance():screenToFile(fileName, function(ret)
  129. if 1 == tonumber(ret) then
  130. local info = {}
  131. info.contentType = "image"
  132. info.image = fileName
  133. info.imageWidth = 800
  134. info.isShareZhanjiUrl = true
  135. info.copyData={
  136. type=1,
  137. tableId=app.room.roomInfo.nShowTableId,
  138. userInfos={},
  139. gameId=47,
  140. }
  141. for nUserId,totalData in pairsByKeys(self.response) do
  142. local userInfo = app.room:getUserInfo(nUserId)
  143. --昵称
  144. local nickname = userInfo.nickname or ""
  145. local totalScore = totalData.nTotalScore
  146. table.insert(info.copyData.userInfos,{nickname=getShortName2(nickname),totalScore=totalScore})
  147. end
  148. local view = import("luaScript.Views.Main.ShareView"):new(info,nil,{endtime=self.endTime})
  149. view:setAnchorPoint(cc.p(0.5, 0.5))
  150. app:showWaitDialog(view)
  151. else
  152. showTooltip("截图保存失败");
  153. end
  154. end);
  155. end
  156. function doushisiRoomCountAllView:playAni()
  157. --判断大赢家和土豪
  158. local tuhaoScore = -999999
  159. local winerScore = -999999
  160. local tt = {}
  161. --排除都为0的情况
  162. local zeorNum = 0
  163. for k,v in pairs(self.response) do
  164. if v.nTotalScore == 0 then
  165. zeorNum = zeorNum + 1
  166. end
  167. end
  168. local maxPeople = table.nums(self.response)
  169. if zeorNum ~= maxPeople then
  170. for k,v in pairs(self.response) do
  171. table.insert(tt,v.nTotalScore)
  172. end
  173. local function sortFunc(a,b)
  174. return a < b
  175. end
  176. table.sort(tt,sortFunc)
  177. tuhaoScore = tt[1]
  178. winerScore = tt[maxPeople]
  179. end
  180. self:setAllDaYingJiaVisible(false)
  181. local index = 1
  182. for nUserId,totalData in pairsByKeys(self.response) do
  183. if (not (tolua.type(app.room.isLianDa) == "function")) or (tolua.type(app.room.isLianDa) == "function" and app.room:checkUserIDIsInTable(nUserId)) then
  184. -- 玩家头像 名字
  185. local beizi = string.format("ImageView_Bei_%d",index)
  186. local yingLight = string.format("ImageView_light_%d",index)
  187. local nodePlayer = string.format("Layout_player_%d",index)
  188. local totalScore = totalData.nTotalScore
  189. --分数
  190. if totalScore == winerScore then
  191. local tarPos = cc.pAdd(self.ui.Items[beizi]:getPosition(),cc.p(0,30))
  192. self.ui.Items[beizi]:setScale(1)
  193. --self.ui.Items[beizi]:setOpacity(0)
  194. local mSpawn = cc.Spawn:create(cc.ScaleTo:create(0.2,1.0),cc.FadeIn:create(0.2))
  195. local seq = cc.Sequence:create(cc.DelayTime:create(0.15 * 5),mSpawn)
  196. --self.ui.Items[beizi]:runAction(seq)
  197. self.ui.Items[beizi]:setVisible(true)
  198. self.ui.Items[yingLight]:setVisible(true)
  199. else
  200. self.ui.Items[beizi]:setVisible(false)
  201. self.ui.Items[yingLight]:setVisible(false)
  202. end
  203. --self.ui.Items[nodePlayer]:setOpacity(0)
  204. local mSpawn = cc.Spawn:create(cc.MoveBy:create(0.2,cc.p(0,120)),cc.FadeIn:create(0.2))
  205. local seq = cc.Sequence:create(cc.DelayTime:create(0.15 * index),cc.CallFunc:create(function ()
  206. self.ui.Items[nodePlayer]:setPositionY(self.ui.Items[nodePlayer]:getPositionY() - 120)
  207. end),mSpawn)
  208. --self.ui.Items[nodePlayer]:runAction(seq)
  209. index = index + 1
  210. end
  211. end
  212. self.ui.Items.Layout_3:setVisible(true);
  213. --[[ local seq = cc.Sequence:create(cc.DelayTime:create(0.35*index),cc.CallFunc:create(function ()
  214. self.ui.Items.Layout_3:setVisible(true);
  215. end))--]]
  216. --self.ui:runAction(seq)
  217. end
  218. return doushisiRoomCountAllView;