|
-
- local MJFunction=MJFramework.MJImport("mj.luaScript.MJFunction")
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJWanFa=MJFramework.ImportWanFa("luaScript.SubGameDefine.MaJiang.MJWanFa")
-
- -- 结算界面
- local MJRoomDaJuView = class("MJRoomDaJuView", cc.UIView)
-
-
- --人数条目位置配置 4人默认使用UI位置
- local ITEM_PLAYER_NUM_POS_CONFIG={
- [3]={
- 290*g_radio_x,
- 640*g_radio_x,
- 990*g_radio_x,
- },
- [2]={
- 440*g_radio_x,
- 840*g_radio_x,
- },
- }
-
- local DISMISS_INFO = {
- [0] = "超时解散",
- [1] = "申请解散",
- [2] = "同意解散",
- [3] = "拒绝",
- }
-
- function MJRoomDaJuView:ctor()
- MJRoomDaJuView.super.ctor(self)
- end
-
- function MJRoomDaJuView:loadUI()
- local ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_daju_jiesuan.ui");
- self.ui = ui;
- self:addChild(ui)
- end
-
- function MJRoomDaJuView:onEnter()
- MJRoomDaJuView.super.onEnter(self)
- setShowCountAll(true)
- self:loadUI()
- self:initButton()
- self:initRoomInfo()
- self:initPlayerInfo()
- self:initPlayerItemInfo()
- self:initPlayGameAgain()
- end
-
- function MJRoomDaJuView:initButton()
- local roomInfo = app.room.roomInfo
- local config = getSubGameConfig(roomInfo.gameId or app.gameId)
- -- 关闭
- self.ui.Items.Button_1:registerClick(handler(self , self.onClickClose))
-
- -- 分享,如果没安装微信则不展示分享按钮
- self.ui.Items.Button_2:registerClick(handler(self , self.onClickShare))
- if self.ui.Items.Button_url then
- self.ui.Items.Button_url:registerClick(handler(self , self.onClickShareUrl))
- end
- if not app.config.ModuleConfig.IsSupportZhanJiUrl then
- if self.ui.Items.Layout_Button_url then
- self.ui.Items.Layout_Button_url:setVisible(false)
- end
- end
-
- local showShare = app.plugin:isShowThirdLogin() or false
- if isReviewVersion() or not showShare then
- if self.ui.Items.Layout_Button_2 then
- self.ui.Items.Layout_Button_2:setVisible(false)
- else
- self.ui.Items.Button_2:setVisible(false)
- end
- if not isWin32Platform() then
- if self.ui.Items.Layout_Button_url then
- self.ui.Items.Layout_Button_url:setVisible(false);
- elseif self.ui.Items.Button_url then
- self.ui.Items.Button_url:setVisible(false);
- end
- end
- end
- end
- ---
- -- 初始化大结算再来一局
- -- @return
- --
- function MJRoomDaJuView:initPlayGameAgain ()
- local roomInfo = app.room.roomInfo or {};
- local gameId = roomInfo.gameId or app.gameId
- if dd.IClub.isInClub() and roomInfo.nShowTableId then
- local inviteList = {}
- for k,v in pairsByKeys(roomInfo.memberList) do
- if tonumber(v.nUserId) ~= app.user.loginInfo.uid then
- table.insert(inviteList, v.nUserId)
- end
- end
-
- local strInvite = MJFunction.getClubInviteWanFa(gameId, roomInfo)
- local btnPlayAgain = self.ui.Items.Button_PlayAgain
- dd.IPlayGameAgain.bindPlayAgainButton(btnPlayAgain, gameId, strInvite, inviteList, function ()
- -- 初始化成功后干嘛干嘛
- local visible = btnPlayAgain:isVisible()
- self.ui.Items.Layout_Button_PlayAgain:setVisible(visible)
- if self.ui.Items.Layout_Operate_Buttons then
- self.ui.Items.Layout_Operate_Buttons:requestDoLayout()
- self.ui.Items.Layout_Operate_Buttons:doLayout()
- self.ui.Items.Layout_Operate_Buttons:setPositionX(cc.Director:getInstance():getVisibleSize().width / 2)
- end
- end)
- --绑定消息通知回调
- self:bindEvent(app.club_php , GAME_EVENT.CLUB_INVITE , handler(self , self.onClubInviteEvent))
- else
- logD("MJRoomDaJuView:initPlayGameAgain", "不在亲友圈或桌子id为空,不能进行再来一局操作")
- if self.ui.Items.Layout_Button_PlayAgain then
- self.ui.Items.Layout_Button_PlayAgain:setVisible(false)
- end
- if self.ui.Items.Layout_Operate_Buttons then
- self.ui.Items.Layout_Operate_Buttons:requestDoLayout()
- self.ui.Items.Layout_Operate_Buttons:doLayout()
- self.ui.Items.Layout_Operate_Buttons:setPositionX(cc.Director:getInstance():getVisibleSize().width / 2)
- end
- end
- end
- ---
- -- 监听亲友圈邀请信息
- -- @param event
- -- @return
- --
- function MJRoomDaJuView:onClubInviteEvent(event)
- dd.IPlayGameAgain.showClubInviteDialog(event, nil, nil)
- end
-
- function MJRoomDaJuView:initRoomInfo()
- local roomInfo = app.room.roomInfo
- local tableId = roomInfo.nShowTableId
- --房间玩法
- -- local ruleAll = MJWanFa.getWanFaInfo(roomInfo.strGameInfo)
- local gameName = getSubGameName(roomInfo.gameId)
- local jsonData = json.decode(roomInfo.strGameInfo)
- -- local specStr =jsonData.deductRule==0 and "房主付费" or "AA付费"
- self.ui.Items.Text_Rule:setText(gameName.." 房号:"..tableId.." "..roomInfo.nGameStartCount.."/"..roomInfo.nTotalGameNum.."局")--" 付费方式:"..specStr)
-
- -- 设置房间号和开始时间
- if app.club_php.clubID and app.club_php.clubID ~= 0 then
- self.ui.Items.Text_fanghao:setText(PLN.CLUB_NAME.."ID:"..app.club_php.clubID)
- else
- self.ui.Items.Text_fanghao:setText("")
- end
- local str = (string.format("%s", os.date("%m-%d %X", app.room.roomInfo.nEndTime or os.time()) ) )
- self.ui.Items.Text_time:setText(str)
- end
-
- function MJRoomDaJuView:initPlayerInfo()
- local roomInfo=app.room.roomInfo
-
- local playerNum = table.nums(roomInfo.memberList)
- for i=1,4 do
- if i>playerNum then
- self.ui.Items["Layout_Player_"..i]:setVisible(false)
- end
- end
-
- --得到大赢家 土豪 炮友用户ID
- local myUserId=app.room:getMyUserId()--app.user.loginInfo.uid
-
- local maxTotalScore = 0
- local minTotalScore = maxTotalScore--roomInfo.memberList[1].nTotalMoney
- local maxDianPaoCount = 0
-
- local maxUserId=-1
- local minUserId=maxUserId
- local maxDiaoPaoUserId=maxUserId
-
- for k,v in pairs(roomInfo.memberList) do
- v.nTotalMoney = tonumber(v.nTotalMoney)
- if v.nTotalMoney>maxTotalScore and v.nTotalMoney>0 then
- maxTotalScore=v.nTotalMoney
- maxUserId=v.nUserId
- end
-
- if v.nTotalMoney<minTotalScore and v.nTotalMoney>0 then
- minTotalScore=v.nTotalMoney
- minUserId=v.nUserId
- end
- end
-
- self.maxUserId=maxUserId
-
- --显示用户信息
- for k,v in pairs(roomInfo.memberList) do
- local userId = app.room:getViewIdByUserId(v.nUserId)
- local nSeatId = app.room:getSeatIdByViewId(userId)
- -- -- 玩家头像 名字
- local index=nSeatId+1
- local userInfo = app.room:getUserInfo(v.nUserId)
- local name = string.format("Text_name_%d",index)
- local uid = string.format("Text_uid_%d",index)
- local head = string.format("ImageView_headImg_%d",index)
- local winer = string.format("ImageView_dayingjia_%d",index)
- local roomer = string.format("ImageView_roomer_%d",index)
- local score = string.format("Text_Total_Score_%d",index)
- local winBg = string.format("ImageView_Win_%d",index)
- local dismiss = string.format("Text_Dismiss_%d",index)
-
- -- local fangka=string.format("ImageView_FangKa_%d",index)
- -- self.ui.Items[fangka]:setVisible(false)
-
- v.nTotalMoney = tonumber(v.nTotalMoney)
-
- local nickname = ""
- if userInfo and userInfo.nickname then
- nickname = getSubStringNickname(userInfo.nickname)
- self:updateUserHead(self.ui.Items[head],v.nUserId, userInfo.sex, userInfo.headimgurl);
- end
-
- self.ui.Items[name]:setText(nickname)
- self.ui.Items[uid]:setText("ID:"..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
- self.ui.Items[uid]:setVisible(true)
- else
- self.ui.Items[uid]:setVisible(false)
- end
- end
- end
- end
- if v.nUserId == tonumber(app.user.loginInfo.uid) then
- self.ui.Items[uid]:setVisible(true)
- end
- -- end
-
- self.ui.Items[roomer]:setVisible(v.nUserId == roomInfo.nRoomOwnedUid)
- self.ui.Items[roomer]:setVisible(false)--隐藏房主
-
- self.ui.Items[winer]:setVisible(false)
- self.ui.Items[winBg]:setVisible(false)
- if v.nUserId==maxUserId or (v.nTotalMoney == maxTotalScore and maxTotalScore > 0) then
- self.ui.Items[winer]:setVisible(true)
- self.ui.Items[winBg]:setVisible(true)
- end
-
- --分数
- if v.nTotalMoney > 0 then
- self.ui.Items[score]:setText(tostring("+"..v.nTotalMoney))
- else
- self.ui.Items[score]:setText(tostring(v.nTotalMoney))
- self.ui.Items[score]:setFntFile("res/fonts/dt_jian_num.fnt")
- end
-
- --解散状态
- if self.ui.Items[dismiss] then
- if roomInfo.stopFlag==9 then --9正常解散
- if app.room.dismissInfo and app.room.dismissInfo[v.nUserId] then
- local status = app.room.dismissInfo[v.nUserId]
- local strInfo = DISMISS_INFO[status]
- if strInfo then
- self.ui.Items[dismiss]:setText(strInfo)
- end
- end
- elseif roomInfo.stopFlag==8 then --8系统解散
- self.ui.Items[dismiss]:setText("系统解散")
- end
- end
- end
-
- self:updateItemPosition()
- end
-
- function MJRoomDaJuView:updateItemPosition()
- local roomInfo=app.room.roomInfo
- local playerNum = table.nums(roomInfo.memberList)
- if playerNum<4 and ITEM_PLAYER_NUM_POS_CONFIG[playerNum] then
- for i=1,playerNum do
- self.ui.Items["Layout_Player_"..i]:setPositionX(ITEM_PLAYER_NUM_POS_CONFIG[playerNum][i])
- end
- end
- end
-
- function MJRoomDaJuView:initPlayerItemInfo()
- local roomInfo=app.room.roomInfo
-
- --显示用户信息
- for _,player in pairs(roomInfo.memberList) do
- -- -- 玩家头像 名字
- local userId = app.room:getViewIdByUserId(player.nUserId)
- local nSeatId = app.room:getSeatIdByViewId(userId)
- local index=nSeatId+1
- local info = string.format("Text_ZsNum_%d",index)
- if self.ui.Items[info] then
- self.ui.Items[info]:setText("-"..tostring(player.costCard))
- end
- end
- end
-
- -- function MJRoomDaJuView:initPlayerItemInfo()
- -- local roomInfo=app.room.roomInfo
- -- local itemNames={
- -- ["ziMoCnt"]="自摸次数 ",
- -- ["jiePaoCnt"]="接炮次数 ",
- -- ["dianPaoCnt"]="点炮次数 ",
- -- ["mingCnt"]="接杠次数 ",
- -- -- ["zhiCnt"]="直杠",
- -- ["baCnt"]="明杠次数 ",
- -- ["anCnt"]="暗杠次数 ",
- -- }
-
- -- --显示用户信息
- -- for _,player in pairs(roomInfo.memberList) do
- -- -- -- 玩家头像 名字
- -- local index=player.nSeatId+1
- -- local i=1
- -- for k,v in pairs(itemNames) do
- -- if player.nTotalInfo[k] then
- -- local info = string.format("Text_Info_%d_%d",index,i)
- -- print(info)
- -- local str =itemNames[k]..player.nTotalInfo[k] --string.format(itemNames[],index,i)
- -- self.ui.Items[info]:setText(str)
- -- if self.maxUserId==player.nUserId then
- -- self.ui.Items[info]:setTextColor(cc.c4b(255,255,255,255))
- -- local config = self.ui.Items[info]:getFontConfig()
- -- --config.effectColor = cc.c4b(255,255,255,255)
- -- --config.outlineSize = 1
- -- self.ui.Items[info]:setFontConfig(config)
- -- end
- -- i=i+1
- -- end
-
- -- end
- -- end
- -- end
-
-
- function MJRoomDaJuView:onExit()
- MJRoomDaJuView.super.onExit(self);
- setShowCountAll(false)
- end
-
- -- 关闭
- function MJRoomDaJuView:onClickClose()
- playBtnEffect()
- app.room:dispatchEvent({name =MJDefine.MJEvent.DismissClose})
- self:removeFromParent()
- runInNextFrame(function()
- local roomInfo = app.room.roomInfo
- -- 房间号
- local roomId = roomInfo.nShowTableId
- --app:gotoView(import("luaScript.Views.Main.MainView"):new(roomInfo.gameId, roomId))
- gotoMainView(roomInfo.gameId,roomId)
- -- local MJMainView=MJFramework.MJImport("mj.luaScript.Views.Main.MJMainView")
- -- app:gotoView(MJMainView:new(app.gameId,roomId))
- end)
- end
-
- -- 分享
- function MJRoomDaJuView:onClickShare()
- playBtnEffect()
-
- 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.thumbWidth = 100
- -- app.plugin:shareGame(info)
-
- local info = {}
- info.contentType = "image"
- info.image = fileName
- info.imageWidth = 800
- -- info.menuIdxs = {1, 2, 3, 4, 5}
- info.isShareZhanjiUrl = true
- info.copyData={
- type=1,
- tableId=app.room.roomInfo.nShowTableId,
- userInfos={},
- gameId = app.room.roomInfo.gameId,
- }
-
- local memberList = app.room.roomInfo.memberList--self._overData.nTotalPlayerInfos
- for k,v in pairs(memberList) do
- local userInfo = json.decode(v.userInfo)
- --昵称
- local nickname = userInfo.nickname or ""
- local totalScore = v.nTotalMoney
- table.insert(info.copyData.userInfos,{nickname=getShortName2(nickname),totalScore=totalScore})
- end
- local view = import("luaScript.Views.Main.ShareView"):new(info,nil,{endtime=app.room.roomInfo.nEndTime or os.time()})
- view:setAnchorPoint(cc.p(0.5, 0.5))
- app:showWaitDialog(view)
-
- else
- showTooltip("截图保存失败");
- end
- end);
- end
-
-
- function MJRoomDaJuView:updateUserHead(nodeHead,nUserId, sex, headimgurl)
- setPlayerHeadImage(nUserId,headimgurl,nodeHead)
- end
-
- function MJRoomDaJuView:onClickShareUrl()
- app.waitDialogManager:showWaitNetworkDialog("获取分享链接")
- local onGetUrlCallback = function(url)
- app.waitDialogManager:closeWaitNetworkDialog()
- if url then
- local imagePath = cc.FileUtils:getInstance():getWritablePath().."icon.png"
- local gameName = getSubGameName(app.room.roomInfo.gameId) or "川南棋牌"
-
- local info = {}
- -- info.contentType = "image"
- info.image = fileName
- info.title = gameName.."战绩"
- -- info.imageWidth = 800
- info.menuIdxs = {1, 4, 5, 6}
- info.FFQFlag = true
- -- info.isShareZhanjiUrl = false
- info.copyData={
- type=1,
- tableId=app.room.roomInfo.nShowTableId,
- userInfos={},
- }
- local content = nil;
- local memberList = app.room.roomInfo.memberList--self._overData.nTotalPlayerInfos
- for k,v in pairs(memberList) do
- local userInfo = json.decode(v.userInfo)
- --昵称
- local nickname = userInfo.nickname or ""
- local totalScore = v.nTotalMoney
- table.insert(info.copyData.userInfos,{nickname=getShortName2(nickname),totalScore=totalScore})
-
- local strUserInfo = ""
- if totalScore > 0 then
- strUserInfo = string.format("%s(+%s)", getShortName2(nickname), totalScore)
- else
- strUserInfo = string.format("%s(%s)", getShortName2(nickname), totalScore)
- end
- if content then
- content = content .. "," .. strUserInfo
- else
- content = strUserInfo
- end
- end
-
- local sharUrl = string.format("%s?uid=%s&gameid=%s&app=%s&roomid=%s&endtime=%s",
- url,
- app.user.loginInfo.uid,
- app.room.roomInfo.gameId,
- getAppId(),
- app.room.roomInfo.nShowTableId,
- app.room.roomInfo.nEndTime or os.time())
- info.url = sharUrl
- 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)
- else
- showTooltip("获取分享用的链接失败")
- end
- end
- app.php:initShareZhanJiToUrl(onGetUrlCallback)
- end
-
- return MJRoomDaJuView;
|