--- -- ================================================================ -- 文件名: IPlayGameAgain.lua -- 描述: 子游戏结算再来一局功能接口 -- 版权: Copyright © 2016-2019 公司名称 版权所有 -- 作者: Administrator -- 创建日期: 2019-10-22 -- 更新日期: 2019-10-22 -- 备注: -- ================================================================ -- local IPlayGameAgain = {}; IPlayGameAgain.isAgainGameBol = false -- 是否再来一局 IPlayGameAgain.wanfa = "" -- 子游戏玩法 IPlayGameAgain.uidList = {} -- 待邀请玩家列表 IPlayGameAgain.isAgainGameBaoJianId = -1 -- 再来一局包间ID IPlayGameAgain.isAgainGameData = nil -- 再来一局接受邀请数据 IPlayGameAgain.isGameRuleChange = false -- 再来一局包间玩法是否被修改 IPlayGameAgain.gameRoomId = 0 -- 再来一局包间id IPlayGameAgain.myGameCreateStatus = false -- 玩家是否创建过房间 IPlayGameAgain.inviteView = nil -- 邀请框 function IPlayGameAgain.bindPlayAgainButton (btnPlayAgain, gameId, inviteInfo, inviteList, initCallback) local clubId = app.club_php.clubID or 0 local isInClub = clubId and clubId ~= 0 if not isInClub then logD("IPlayGameAgain.initPlayGameAgain", "当前玩家不在亲友圈内,不能再来一局"); btnPlayAgain:setVisible(false) return end if tolua.isnull(btnPlayAgain) then logD("IPlayGameAgain.bindPlayAgainButton", "再来一局按钮已经被释放") return end local isClosePlayAgain = IPlayGameAgain.isClosePlayAgain(gameId) btnPlayAgain:setVisible(not isClosePlayAgain) if isClosePlayAgain then if type(initCallback) == "function" then initCallback() end return end btnPlayAgain:registerClick(function () logD("===================inviteList==================:",table.tostring(inviteList)) IPlayGameAgain.setIsAgainGamebol(true, inviteInfo, inviteList) gotoMainView() end) local clubInfo = app.club_php:getClubInfo(clubId) if not clubInfo then logD("IPlayGameAgain.bindPlayAgainButton", "亲友圈信息不存在", "clubId:", clubId) if type(initCallback) == "function" then initCallback() end return end local baoJianId = IPlayGameAgain.getAgainGameBaoJianId() if baoJianId ~= -1 and clubInfo.settings and tonumber(clubInfo.settings.baoJianId) ~= tonumber(baoJianId) and clubInfo.mode == 0 then app.club_php:requestRuleSet(app.club_php.clubID, baoJianId, 1, 1) end if type(initCallback) == "function" then initCallback() end end --- -- 收到再来一局邀请信息时,弹出邀请弹框 -- @param data -- @return -- function IPlayGameAgain.showClubInviteDialog (data, agreeCallback, closeCallback) --房间邀请通知 local content = data.content local clubId = data.clubId local inviteView = IPlayGameAgain.inviteView local viewType = type(inviteView) if inviteView and viewType == "userdata" then --提示框已存在 return end local function removeInviteView() if not tolua.isnull(IPlayGameAgain.inviteView) then -- IPlayGameAgain.inviteView:removeFromParent() IPlayGameAgain.inviteView = nil end end local function onBtnCloseClicked() --关闭提示框时清空数据,用于下次弹出 removeInviteView() if type(closeCallback) == "function" then closeCallback() end end local function onBtnAgreeClicked() removeInviteView() gotoMainView() if type(agreeCallback) == "function" then agreeCallback() end end inviteView = import("luaScript.Views.Club.ClubInviteRoomNew"):new(clubId, content, onBtnCloseClicked, onBtnAgreeClicked) inviteView:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(inviteView,0) IPlayGameAgain.inviteView = inviteView end --- -- 是否关闭再来一局功能 -- 默认关闭 -- @return -- function IPlayGameAgain.isClosePlayAgain (gameId) local isClosePlayAgain = true local config = getSubGameConfig(gameId) if not config then logD("IPlayGameAgain.isClosePlayAgain", "读取子游戏配置为空") return isClosePlayAgain end if config.gameDataConfig and config.gameDataConfig.isClosePlayAgain ~= nil then logD("IPlayGameAgain.isClosePlayAgain", "子游戏再来一局功能已打开") isClosePlayAgain = config.gameDataConfig.isClosePlayAgain == true end return isClosePlayAgain end --- -- 设置是否再来一局 -- @param bol 是否再来一局 -- @param wanfadata 子游戏玩法 -- @param uidList 待邀请玩家列表 -- @return -- function IPlayGameAgain.setIsAgainGamebol(bol, wanfadata, uidList) logD("IPlayGameAgain.setIsAgainGamebol") IPlayGameAgain.isAgainGameBol = bol if wanfadata then IPlayGameAgain.wanfa = wanfadata end if uidList then IPlayGameAgain.uidList = uidList or {} end end --- -- 是否再来一局 -- @return -- function IPlayGameAgain.getIsAgainGamebol() return IPlayGameAgain.isAgainGameBol, IPlayGameAgain.wanfa, IPlayGameAgain.uidList; end --- -- 再来一局包间id -- @param idx -- @return -- function IPlayGameAgain.setAgainGameBaoJianId(idx) IPlayGameAgain.isAgainGameBaoJianId = idx end --- -- 获取再来一局包间id -- @return -- function IPlayGameAgain.getAgainGameBaoJianId() return IPlayGameAgain.isAgainGameBaoJianId; end --- -- 保存再来一局接受邀请数据 -- @param data -- @return -- function IPlayGameAgain.setAgainGameInvitedata(data) IPlayGameAgain.isAgainGameData = data end --- -- 获取再来一局接受邀请数据 -- @return -- function IPlayGameAgain.getAgainGameInvitedata() return IPlayGameAgain.isAgainGameData; end --- -- 保存再来一局玩法状态 -- 检测点再来一局的时候,玩法是否被修改。如果是修改那么提示创建失败。 -- @param bol -- @return -- function IPlayGameAgain.setRuleChangeStatus(bol) IPlayGameAgain.isGameRuleChange = bol end --- -- 获取再来一局玩法状态 -- 检测点再来一局的时候,玩法是否被修改。如果是修改那么提示创建失败。 -- @return -- function IPlayGameAgain.getRuleChangeStatus() return IPlayGameAgain.isGameRuleChange end --- -- 保存房间id -- 邀请的时候需要用到数据 -- @param idx -- @return -- function IPlayGameAgain.setGameRoomId(idx) IPlayGameAgain.gameRoomId = idx end --- -- 获取房间id -- @return -- function IPlayGameAgain.getGameRoomId() return IPlayGameAgain.gameRoomId; end --- -- 保存玩家是否创建过房间 -- @param bol -- @return -- function IPlayGameAgain.setMyGameCreateStatus(bol) IPlayGameAgain.myGameCreateStatus = bol end --- -- 获取玩家是否创建过房间 -- @return -- function IPlayGameAgain.getMyGameCreateStatus() return IPlayGameAgain.myGameCreateStatus; end return IPlayGameAgain;