-- 总结算界面 local PKDef = PKFramework.PKImport("pk_base.luaScript.PKDef") local PKFuc = PKFramework.PKImport("pk_base.luaScript.PKFunctions") local PKWanFa = PKFramework.ImportWanFa("luaScript.SubGameDefine.PuKe.PKWanFa") local PKRoomDaJuView = class("PKRoomDaJuView", cc.UIView) function PKRoomDaJuView:ctor(response) PKRoomDaJuView.super.ctor(self); self.response = response self.zhanjiUrl = app.serverConfigs.clientConfig.webgamb or app.config.Setting.httpZhanJiUrl end function PKRoomDaJuView:onEnter() PKRoomDaJuView.super.onEnter(self) setShowCountAll(true); local ui = loadUI("pk_base/res/ui/ui_fangjian/pk_ui_daju.ui"); self.ui = ui; self:addChild(ui); -- 关闭 self.ui.Items.Button_Exit:registerClick(handler(self , self.onClickClose)) -- 防封群分享 self.ui.Items.Button_ShareUrl:registerClick(handler(self , self.onClickSafeShare)) -- self.ui.Items.Button_Share:registerClick(handler(self , self.onClickShare)) --再玩一局 self.ui.Items.Button_Again:registerClick(handler(self , self.onClickPlayAgain)) if isReviewVersion() then if self.ui.Items.Layout_6 then self.ui.Items.Layout_6:setVisible(false) end if self.ui.Items.Layout_8 then self.ui.Items.Layout_8:setVisible(false) end end local isClosePlayAgain = false local config = getSubGameConfig(PKDef.GameID) if config then if config.gameDataConfig and config.gameDataConfig.isClosePlayAgain then isClosePlayAgain = config.gameDataConfig.isClosePlayAgain end end if app.club_php.clubID and app.club_php.clubID ~= 0 and not isClosePlayAgain then self.ui.Items.Layout_9:setVisible(true) self.clubInfo = app.club_php.clubList[app.club_php.clubID] local againid = getAgainGameBaoJianId() if self.clubInfo then if againid ~= -1 and self.clubInfo.settings and tonumber(self.clubInfo.settings.baoJianId) ~= tonumber(againid) and self.clubInfo.mode ~= 1 then app.club_php:requestRuleSet(app.club_php.clubID, againid, 1, 1) end end else self.ui.Items.Layout_9:setVisible(false) end --绑定消息通知回调 self:bindEvent(app.club_php , GAME_EVENT.CLUB_INVITE , handler(self , self.onClubIniteEvent)) --初始化人物信息 self:initOtherData() self:updatePlayerInfo() if not app.config.ModuleConfig.IsSupportZhanJiUrl then self.ui.Items.Layout_8:setVisible(false) self.ui.Items.Layout_Bottom:requestDoLayout() self.ui.Items.Layout_Bottom:doLayout() else -- 获取分享网页战绩用的连接 self:initShareUrl(); end end -- 再玩一局 function PKRoomDaJuView:onClickPlayAgain() local roomRule = "" if PKWanFa.getInviteInfo then roomRule = PKWanFa.getInviteInfo() end local uidList = {} for k,v in pairsByKeys(self.response.allData) do if tonumber(v.nUserId) ~= app.user.loginInfo.uid then table.insert(uidList,v.nUserId) end end setIsAgainGamebol(true,roomRule,uidList) self:removeFromParent() gotoMainView() end function PKRoomDaJuView:onClubIniteEvent(event) --房间邀请通知 local content = event.content local clubId = event.clubId local viewType = type(self.inviteView) if self.inviteView and viewType == "userdata" then --提示框已存在 return end local function closeCallback() --关闭提示框时清空数据,用于下次弹出 self.inviteView = nil end local function agreeCallback() self:removeFromParent() gotoMainView() end self.inviteView = import("luaScript.Views.Club.ClubInviteRoomNew"):new(clubId, content, closeCallback,agreeCallback) self.inviteView:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(self.inviteView,0) end function PKRoomDaJuView:initOtherData() local roomInfo = app.room.roomInfo --规则 self.ui.Items.Text_Rule:setText(PKWanFa.getRuleInfo()) --时间 self.ui.Items.Text_Time:setText(os.date("%Y-%m-%d %X",roomInfo.endtime)) --房号 self.ui.Items.Text_RoomNum:setText("房间号:"..tostring(app.room.roomInfo.nShowTableId)) --局数 self.ui.Items.TextJuShu:setText("局数:"..tostring(app.room.roomInfo.nGameStartCount).."/"..tostring(app.room.roomInfo.nTotalGameNum)) end function PKRoomDaJuView:initShareUrl() app.php:initShareZhanJiToUrl(function(url) self.zhanjiUrl = url end) end function PKRoomDaJuView:updatePlayerInfo() self.ui.Items.Layout_Player:setVisible(false) --判断大赢家和土豪 local tuhaoScore = -999999 local winerScore = -999999 local tt = {} --排除都为0的情况 local zeorNum = 0 for k,v in pairs(self.response.allData) do if v.nTotalScore == 0 then zeorNum = zeorNum + 1 end end local maxPeople = table.nums(self.response.allData) if zeorNum ~= maxPeople then for k,v in pairs(self.response.allData) do table.insert(tt,v.nTotalScore) end local function sortFunc(a,b) return a < b end table.sort(tt,sortFunc) tuhaoScore = tt[1] winerScore = tt[maxPeople] end local roomInfo = app.room.roomInfo for k,v in pairsByKeys(self.response.allData) do v.nTotalScore = tonumber(v.nTotalScore) local player = self.ui.Items.Layout_Player:getCopied() player.Items = getUIItems(player) local userInfo = json.decode(v.userInfo); local totalInfo = v.totalInfo; local name = getShortName(userInfo.nickname) setPlayerHeadImage(v.nUserId,userInfo.headimgurl,player.Items.ImageView_head,false) player.Items.ImageView_roomer:setVisible(roomInfo.nRoomOwnedUid == v.nUserId) player.Items.Text_name:setText(name) player.Items.Text_ID:setText(v.nUserId) --显示隐藏游戏内选手id(主办人和管理员不限制,只针对海选赛) -- todo lwq -- begin local ClubDefine = require("luaScript.Protocol.Club.ClubDefine") if app.club_php.clubID and app.club_php.clubID ~= 0 then if app.club_php:getCestIsOpen(app.club_php.clubID) then --隐私数据 local clubInfo = app.club_php.clubList[app.club_php.clubID] self.cliext = clubInfo.groupext and clubInfo.groupext.cliext if not self.cliext or not self.cliext.is_hideUid or (self.cliext and self.cliext.is_hideUid == 1) then if clubInfo.role == ClubDefine.Job.Creator or clubInfo.role == ClubDefine.Job.Manager then player.Items.Text_ID:setVisible(true) else player.Items.Text_ID:setVisible(false) end end end end if v.nUserId == tonumber(app.user.loginInfo.uid) then player.Items.Text_ID:setVisible(true) end -- end player.Items.ImageView_win:setVisible(v.nTotalScore == winerScore) if v.nTotalScore > 0 then player.Items.Text_Score:setText("+"..v.nTotalScore) else player.Items.Text_Score:setText(v.nTotalScore) player.Items.ImageView_bg:loadTexture("pk_base/res/ui/zy_fangjian/jiesuanView/pk_jiesuan_lose2.png") end self.ui.Items.Layout_items:addChild(player) end self.ui.Items.Layout_items:requestDoLayout() self.ui.Items.Layout_items:doLayout() self.ui.Items.Layout_All:requestDoLayout() self.ui.Items.Layout_All:doLayout() end function PKRoomDaJuView:onExit() PKRoomDaJuView.super.onExit(self); setShowCountAll(false); end -- 关闭 function PKRoomDaJuView:onClickClose() self:removeFromParent() gotoMainView() end -- 防封群分享 function PKRoomDaJuView:onClickSafeShare() local imagePath = cc.FileUtils:getInstance():getWritablePath().."icon.png" local gameName = getSubGameRuleName(PKDef.GameID,app.room.roomInfo.nGameRule) or "悠闲麻将" local uid = app.user.loginInfo.uid; local appId = getAppId(); local gameId = PKDef.GameID; local roomId = app.room.roomInfo.nShowTableId; local endtime = app.room.roomInfo.endtime; local info = {} info.image = fileName info.title = gameName.."战绩" info.menuIdxs = {1, 4, 5, 6} info.FFQFlag = true info.copyData={ type = 1, tableId = roomId, userInfos = {}, } local content = nil; for k,v in pairs(self.response.allData) do local userInfo = json.decode(v.userInfo); local name = userInfo.nickname --昵称 local nickname = name or "" local totalScore = v.nTotalScore local userInfo = "" if totalScore > 0 then userInfo = string.format("%s(+%s)", getShortName(nickname), totalScore) else userInfo = string.format("%s(%s)", getShortName(nickname), totalScore) end table.insert(info.copyData.userInfos,{nickname = nickname,totalScore = totalScore,nUserId = k}) if content then content = content .. "," .. userInfo else content = userInfo end end -- http://gamb.bashangtour.com/game/gamb?uid=1002757&gameid=2&app=203000&roomid=634116&endtime=1540452491 local url = string.format("%s?uid=%s&gameid=%s&app=%s&roomid=%s&endtime=%s", self.zhanjiUrl, uid, gameId, appId, roomId, endtime); logD("RoomCountAllView:onClickSafeShare():",url) info.url = url info.description = content dump(info) local view = import("luaScript.Views.Main.ShareView"):new(info) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end function PKRoomDaJuView:onClickShare() local fileName = cc.FileUtils:getInstance():getWritablePath()..tostring(app.room.roomInfo.nShowTableId).."_screen.jpg" cc.FileUtils:getInstance():screenToFile(fileName, function(ret) if 1 == tonumber(ret) then local info = {} info.scene = "talk" info.contentType = "image" info.image = fileName info.imageWidth = 1000 info.menuIdxs = {1,2,4,5,6} info.copyData={ type = 1, tableId = app.room.roomInfo.nShowTableId, userInfos = {}, gameId = PKDef.GameID, } for nUserId,v in pairsByKeys(self.response.allData) do local userInfo = json.decode(v.userInfo); local name = userInfo.nickname --昵称 local nickname = name or "" local totalScore = v.nTotalScore table.insert(info.copyData.userInfos,{nickname = nickname,totalScore = totalScore,nUserId = nUserId}) end local view = import("luaScript.Views.Main.ShareView"):new(info) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) else showTooltip("截图保存失败"); end end); end return PKRoomDaJuView;