local CRConfig = require("luaScript.Views.CreateRoom.Com.CRConfig") -- 主界面 local CreateRoomBase = class("CreateRoomBase", cc.UIView) --[[ datas = { -- 游戏ID gameId = 1, -- 默认选中的玩法 defaultPlayType = 1, } --]] local CREATE_GAME_TYPE_IMG_SELECT = { [GAME_TYPE.PK] = "res/ui/zy_dating/chuanjian/chuangjian_btn_font_puke_sel.png", --扑克 [GAME_TYPE.ZP] = "res/ui/zy_dating/chuanjian/chuangjian_btn_font_zipai_sel.png", --字牌 [GAME_TYPE.MJ] = "res/ui/zy_dating/chuanjian/chuangjian_btn_font_majiang_sel.png", --麻将 } local CREATE_GAME_TYPE_IMG_NORMAL = { [GAME_TYPE.PK] = "res/ui/zy_dating/chuanjian/chuangjian_btn_font_puke_nor.png", --扑克 [GAME_TYPE.ZP] = "res/ui/zy_dating/chuanjian/chuangjian_btn_font_zipai_nor.png", --字牌 [GAME_TYPE.MJ] = "res/ui/zy_dating/chuanjian/chuangjian_btn_font_majiang_nor.png", --麻将 } function CreateRoomBase:ctor(datas) CreateRoomBase.super.ctor(self); self.datas = datas local ui = loadUI("res/ui/ui_chuangjian/ui_chuangjian.ui"); self.ui = ui; self:addChild(ui); -- 是否点击了游戏名字按钮 self.isTochGame = nil self.ruleViews = {} --游戏类型Item self.gameTypeItem = {} --游戏名字Item self.gameItemT = {} --玩法名字Item self.ruleItemT = {} --当前选中的游戏类型(1:扑克类,2:字牌类,3:麻将类) self.selectGameType = nil --默认打开的游戏类型 self.defaultOpenType = GAME_TYPE.MJ if self.datas then --选中的游戏id self.selectGameID = self.datas.gameId --选中的玩法id self.selectRuleID = self.datas.defaultPlayType else --选中的游戏id self.selectGameID = nil --选中的玩法id self.selectRuleID = nil end self.selectColor = cc.c3b(255,255,255) self.normalColor = cc.c3b(130,201,200) end function CreateRoomBase:onEnter() CreateRoomBase.super.onEnter(self) self.ui:bindEvent(app, CRConfig.CREATE_ROOM_DEDUCTRULE_CHANGE, handler(self, self.onDeductRuleChanged)) -- 关闭按钮 self.ui.Items.Button_close:registerClick(handler(self, self.onClickClose)) -- 创建按钮 self.ui.Items.Button_Create:registerClick(handler(self, self.onClickCreate)) self.ui.Items.Text_Tip:setText("注:第一局未发牌扣除的"..PLN.CURRENCY.."将在1小时内返回。") self.ui.Items.Layout_game_item:setVisible(false) self.ui.Items.Layout_rule_item:setVisible(false) self.ui.Items.Button_Match:setVisible(false) self.ui.Items.ScrollView:setVisible(false) self.ui.Items.CheckBox_baojian:setVisible(false) self.ui.Items.Layout_BaoJian_Switch:setVisible(false) self.scrollLayoutPos = self.ui.Items.Layout_scrollview_game:getPosition() self.ui.Items.Button_jia:registerClick(handler(self, self.onClickJuShuAdd)) self.ui.Items.Button_jian:registerClick(handler(self, self.onClickJuShuJian)) self:initAddressSelector() self:setDefultGameInfo(self.defaultOpenType) -- 初始化可选玩法 self:showGameTypeView() --创建界面修改支付模式通知这里更新显示 self:bindEvent(app, "onChangePayMode", handler(self, self.updateJushuData)); -- 玩家自行修改地区 self:bindEvent(app, GAME_EVENT.EVENT_CHANGE_ADDRESS, handler(self, self.onEventChangeAddress)) -- 获取游戏列表结果 self:bindEvent(app.serverConfigs, "getSubGameListSuccessed", handler(self, self.onUpdateGameList)) self.ui.Items.Layout_BaoJian_Name:setVisible(false) self.ui.Items.ScrollView_rule:setVisible(true) self.ui.Items.ScrollView_rule_club:setVisible(false) --箭头动画 local action = cc.Sequence:create(cc.MoveBy:create(0.5,cc.p(0,10)),cc.MoveBy:create(0.5,cc.p(0,-10))) self.ui.Items.ImageView_Arrow:runAction(cc.RepeatForever:create(action)) self.ui.Items.ScrollView_rule:addEventListener(function (obj, type) local inner = self.ui.Items.ScrollView_rule:getInnerContainer() local innerSize = inner:getContentSize() local pos = inner:getPosition() local h = innerSize.height - self.ui.Items.ScrollView_rule:getContentSize().height if h>0 then if pos.y>=-h + 10 then self.ui.Items.ImageView_Arrow:setVisible(false) else self.ui.Items.ImageView_Arrow:setVisible(true) end end end) self.ui.Items.Text_Content_1:setVisible(false) end --- -- 初始化地区选择组件 -- function CreateRoomBase:initAddressSelector() if true then return end if not app.config.ModuleConfig.IsSupportAddressSelector then return end local AddressSelector = require("luaScript.Views.Main.AddressSelector.AddressSelector") if AddressSelector and not self.addressSelector then self.addressSelector = AddressSelector:new(self.ui.Items.Layout_Address_Selector) end end --初始化局数 function CreateRoomBase:initJuShu() if self.selectGameID then local gameConfig = getSubGameConfig(tonumber(self.selectGameID)) if gameConfig then self.curGameCount = app.serverConfigs:getSubGameCostInfo(self.selectGameID) if self.curGameCount and #self.curGameCount > 0 then -- 局数最大索引 self.maxSelJushuIndex = #self.curGameCount -- 默认局数 -- 开放参数里面的默认局数来源于两个地方 -- 已经有开房记录的,则从缓存中读取 -- 没有开房记录的,则从配置中读取 local defaultRound = self.curGameCount[1].round or 0 if self.lastGameInfo then defaultRound = self.lastGameInfo["jushu"] or 0 else defaultRound = gameConfig.defaultRound or 0 end --找到当前选中的局数在配置中的下标 for i,v in pairs(self.curGameCount) do if v.round == tonumber(defaultRound) then self.curSelJushuIndex = i end end if not self.curSelJushuIndex then self.curSelJushuIndex = 1 end self:updateJushuData(self.curSelJushuIndex) end end end end -- 更新房卡消耗 function CreateRoomBase:onDeductRuleChanged() if self.ruleView then local costCard = self.ruleView:getCreateRoomCost(self.curRound) self.ui.Items.Text_Diamond:setText("x "..costCard) end end --刷新局数数据显示 function CreateRoomBase:updateJushuData(jushuIdx) if not self.curSelJushuIndex or not self.maxSelJushuIndex or tonumber(self.curSelJushuIndex) <= 0 or tonumber(self.curSelJushuIndex) > tonumber(self.maxSelJushuIndex) then return end self.curRound = self.curGameCount[self.curSelJushuIndex].round or 0 self.ui.Items.Text_jushu:setText(self.curRound.."局") self:onDeductRuleChanged() end --局数按钮加 function CreateRoomBase:onClickJuShuAdd() if not self.curSelJushuIndex then return end if self.curSelJushuIndex >= self.maxSelJushuIndex then return end playBtnEffect() self.curSelJushuIndex = self.curSelJushuIndex + 1 self:updateJushuData(self.curSelJushuIndex) end --局数按钮减 function CreateRoomBase:onClickJuShuJian() if not self.curSelJushuIndex then return end if self.curSelJushuIndex <= 1 then return end playBtnEffect() self.curSelJushuIndex = self.curSelJushuIndex - 1 self:updateJushuData(self.curSelJushuIndex) end --游戏根据sort排序 function CreateRoomBase:sortByGameSort() -- local gameList = app.serverConfigs.subGameList local gameList = app.serverConfigs:getSubGameList() local ttGameList = {} if not gameList then return ttGameList end for k,v in pairs(gameList) do if v.gameId and v.show then table.insert(ttGameList, v) end end table.sort(ttGameList, function(a, b) local numA = tonumber(a) local numB = tonumber(b) if numA ~= nil and numB ~= nil then return numA > numB else if a.sortIndex and b.sortIndex then return a.sortIndex < b.sortIndex else return false end end end) return ttGameList end --如果未设置过玩法时,需要设置默认的游戏及玩法 function CreateRoomBase:setDefultGameInfo(gameType) gameType = gameType or 3 if not self.selectGameID then --未选中游戏时 local ttGameList = self:sortByGameSort() for k,v in pairsByKeys(ttGameList) do if v.gameId and v.gameId ~= 0 and v.show == true then local gameConfig = getSubGameConfig(tonumber(v.gameId)) if gameConfig and gameConfig.belongType == gameType then self.selectGameID = v.gameId self.selectGameType = gameConfig.belongType for ruleK,ruleV in pairsByKeys(gameConfig.GameType) do self.selectRuleID = ruleK break end break end end end else if not self.selectRuleID then --未选中玩法时,默认显示第一个玩法 -- local gameList = app.serverConfigs.subGameList local gameList = app.serverConfigs:getSubGameList() local gameInfo = gameList[tonumber(self.selectGameID)] if gameInfo and gameInfo.gameId and gameInfo.gameId ~= 0 and gameInfo.show == true then local gameConfig = getSubGameConfig(tonumber(gameInfo.gameId)) if gameConfig then for ruleK,ruleV in pairsByKeys(gameConfig.GameType) do self.selectRuleID = ruleK break end end end end end end --改变游戏类型后,设置每个玩法对应的第一个游戏为选中状态 function CreateRoomBase:setSelectGameIDByGameType(gameType) local gameList = self:sortByGameSort() for k,v in pairsByKeys(gameList) do if v.gameId and v.gameId ~= 0 and v.show == true then local gameConfig = getSubGameConfig(tonumber(v.gameId)) if gameConfig then if gameConfig.belongType and gameConfig.belongType == gameType then self.selectGameID = v.gameId for ruleK,ruleV in pairsByKeys(gameConfig.GameType) do self.selectRuleID = ruleK break end break end end end end end -- 关闭界面 function CreateRoomBase:onClickClose() playBtnCloseEffect() self:removeFromParent() end -- 获取当前选中的玩法的最终数据 function CreateRoomBase:getRuleResult() if self.selectRuleID then return self.ruleViews[self.selectRuleID]:getRuleResult() end end --点击选择游戏类型 function CreateRoomBase:setGameTypeBtnStatus(curGameType) for gameType,item in pairsByKeys(self.gameTypeItem) do local gameImgName = "" if tonumber(gameType) == tonumber(curGameType) then -- gameImgName = CREATE_GAME_TYPE_IMG_SELECT[gameType] item:setBright(false) -- item:setLocalZOrder(99) else -- gameImgName = CREATE_GAME_TYPE_IMG_NORMAL[gameType] item:setBright(true) -- item:setLocalZOrder(0) end -- item.Items.ImageView_font_leixing:loadTexture(gameImgName) end end --是否点击当前已选中的游戏类型 function CreateRoomBase:isTouchCurGameType(gameType) if tonumber(gameType) == tonumber(self.selectGameType) then return true else self.selectGameType = gameType return false end end -- 游戏类型按钮初始化 function CreateRoomBase:showGameTypeView() local gameInfoList = self:sortByGameSort() if not gameInfoList or table.nums(gameInfoList) == 0 then return end --游戏类型 local gameTypeTable = {} for k,v in pairsByKeys(gameInfoList) do if v.gameId and v.gameId ~= 0 and v.show == true then local gameConfig = getSubGameConfig(tonumber(v.gameId)) if gameConfig then local theSame = false local belongType = gameConfig.belongType for k,gameType in pairsByKeys(gameTypeTable) do if gameType == belongType then theSame = true break end end if not theSame then table.insert(gameTypeTable, belongType) end end end end local curGameType = nil local gameConfig = getSubGameConfig(tonumber(self.selectGameID)) if gameConfig then curGameType = gameConfig.belongType end self.gameTypeItem = {} for k, gameType in pairsByKeys(gameTypeTable) do self.ui.Items["Button_leixing_" .. gameType]:registerClick(function() playBtnTagEffect() --当前是否已选中此类型 local isTrue = self:isTouchCurGameType(gameType); if isTrue == true then return end --选择游戏类型时,清空选中游戏id和玩法id self.selectGameID = nil self.selectRuleID = nil self.isTochGame = nil --改变游戏类型后,根据游戏类型设置对应的第一个游戏id为选中id self:setSelectGameIDByGameType(gameType) --更新游戏类型按钮状态 self:setGameTypeBtnStatus(gameType) --切换游戏类型后,创建左边的游戏名按钮 self:createLeftGameName(gameType) --设置左边选中游戏及玩法的按钮状态 self:setLeftBtnStatus(self.selectGameID, self.selectRuleID) --选中玩法按钮后,显示右边的玩法选项 self:onClickRule(self.selectRuleID) end) self.gameTypeItem[tonumber(gameType)] = self.ui.Items["Button_leixing_"..gameType] end --设置顶部游戏类型按钮状态 self:setGameTypeBtnStatus(curGameType) --清空 self.ruleView = nil; --创建左边游戏名字按钮 self:createLeftGameName(curGameType) --设置左边选中游戏及玩法的按钮状态 self:setLeftBtnStatus(self.selectGameID, self.selectRuleID) --选中玩法按钮后,显示右边的玩法选项 self:onClickRule(self.selectRuleID) end --设置玩法按钮默认状态 function CreateRoomBase:setLeftDefaultBtnStatus() --设置游戏按钮当前选中状态 for gameID,gameItem in pairsByKeys(self.gameItemT) do local gameRule = 0 if gameID > 10000 then gameRule = math.floor(gameID%10000) gameID = math.floor(gameID/10000) end gameItem.Items.Button_game:loadTextureNormal("res/ui/zy_dating/chuanjian/chuangjian_btn_nor.png") gameItem.Items.Text_GameName:setVisible(true) gameItem.Items.Text_GameName_sel:setVisible(false) --将所有游戏里面的玩法按钮设置不可见 if self.ruleItemT[tonumber(gameID)] then for ruleID,item in pairsByKeys(self.ruleItemT[tonumber(gameID)]) do item:setVisible(false) item.Items.ImageView_bg_select:setVisible(false) item.Items.Text_rule_name:setColor(self.normalColor) local config = item.Items.Text_rule_name:getFontConfig() config.fontSize = 32 item.Items.Text_rule_name:setFontConfig(config) end end --刷新layout布局 gameItem:requestDoLayout() gameItem:doLayout() end self.ui.Items.Layout_scrollview_game:requestDoLayout() self.ui.Items.Layout_scrollview_game:doLayout() end --设置左边游戏按钮选中状态 function CreateRoomBase:setLeftBtnStatus(curGameID, curRuleID) for gameID,gameItem in pairsByKeys(self.gameItemT) do local gameRule = curRuleID if gameID > 10000 then gameRule = math.floor(gameID%10000) gameID = math.floor(gameID/10000) end if tonumber(gameID) == tonumber(curGameID) and curRuleID == gameRule then local gameConfig = getSubGameConfig(gameID) gameItem.Items.Button_game:loadTextureNormal("res/ui/zy_dating/chuanjian/chuangjian_btn_sel.png") gameItem.Items.Text_GameName:setVisible(false) gameItem.Items.Text_GameName_sel:setVisible(true) --当选择的游戏里面的玩法按钮设置可见 if self.ruleItemT[tonumber(gameID)] then for ruleID,item in pairsByKeys(self.ruleItemT[tonumber(gameID)]) do item:setVisible(true) if tonumber(curRuleID) == ruleID then item.Items.ImageView_bg_select:setVisible(true) item.Items.Text_rule_name:setColor(self.selectColor) local config = item.Items.Text_rule_name:getFontConfig() config.fontSize = 36 item.Items.Text_rule_name:setFontConfig(config) end end end --刷新layout布局 gameItem:requestDoLayout() gameItem:doLayout() break end end local mListView = self.ui.Items.Layout_scrollview_game mListView:requestDoLayout() mListView:doLayout() local mScorllView = self.ui.Items.ScrollView_game local layoutSize = mListView:getContentSize() mScorllView:setInnerContainerSize(layoutSize) end --根据游戏类型创建左边对应的游戏名字 function CreateRoomBase:createLeftGameName(curGameType) -- local gameInfoList = app.serverConfigs.subGameList; local gameInfoList = app.serverConfigs:getSubGameList(); if not gameInfoList then return; end local ttGameList = self:sortByGameSort() local mScorllView = self.ui.Items.ScrollView_game; mScorllView:hideAllBar() local mListView = self.ui.Items.Layout_scrollview_game mListView:removeAllChildren() self.gameItemT = {} self.ruleItemT = {} for gameID, gameRuleInfo in pairsByKeys(ttGameList) do if gameRuleInfo.gameId and gameRuleInfo.gameId ~= 0 then local gameConfig = getSubGameConfig(tonumber(gameRuleInfo.gameId)) if gameConfig then gameType = gameConfig.belongType --游戏类型为选中类型时才显示 if tonumber(gameType) == tonumber(curGameType) then if gameConfig.bSingleGame then for ruleId,ruleInfo in pairsByKeys(gameConfig.GameType) do local uiItem = self:createLeftGameItem(gameId, ruleInfo) -- 游戏名字按钮 uiItem.Items.Button_game:registerClick(function() playBtnTagEffect() self.selectGameID = gameRuleInfo.gameId self.selectRuleID = ruleId self:setLeftDefaultBtnStatus() self:onClickRule(ruleId) self:setLeftBtnStatus(gameRuleInfo.gameId, ruleId) end) mListView:addChild(uiItem) self.gameItemT[tonumber(gameRuleInfo.gameId) * 10000 + tonumber(ruleId)] = uiItem end else local uiItem = self:createLeftGameItem(gameId, gameConfig.gameName) -- 游戏名字按钮 uiItem.Items.Button_game:registerClick(function() playBtnTagEffect() ---点击更改游戏 self.selectGameID = gameRuleInfo.gameId self.selectRuleID = nil self:setLeftDefaultBtnStatus() for ruleK,ruleV in pairsByKeys(gameConfig.GameType) do --点击游戏名,默认显示第一个玩法 self.selectRuleID = ruleK self:onClickRule(ruleK) self:setLeftBtnStatus(gameRuleInfo.gameId, ruleK) break end end) mListView:addChild(uiItem) self.gameItemT[tonumber(gameRuleInfo.gameId)] = uiItem if gameConfig.GameType and table.nums(gameConfig.GameType) > 1 then self.ruleItemT[tonumber(gameRuleInfo.gameId)] = {} --玩法不止一种才显示下拉框多种玩法 local uiRuleTemplate = self.ui.Items.Layout_rule_item; for ruleID,ruleInfo in pairsByKeys(gameConfig.GameType) do local uiRuleItem = uiRuleTemplate:getCopied() uiRuleItem.Items = getUIItems(uiRuleItem) --玩法名 uiRuleItem.Items.Text_rule_name:setText(ruleInfo) --点击事件 uiRuleItem.Items.Layout_touch:registerClick(function () playBtnTagEffect() self.selectRuleID = ruleID self:setLeftDefaultBtnStatus() self:setLeftBtnStatus(gameRuleInfo.gameId, ruleID) self:onClickRule(ruleID); end) uiItem:addChild(uiRuleItem) self.ruleItemT[tonumber(gameRuleInfo.gameId)][tonumber(ruleID)] = uiRuleItem end --刷新layout布局 uiItem:requestDoLayout() uiItem:doLayout() end end end end end end mListView:requestDoLayout() mListView:doLayout() mScorllView:jumpToTop() self:setLeftDefaultBtnStatus() end --- -- 创建左边游戏名字按钮 -- @return -- function CreateRoomBase:createLeftGameItem(gameId, gameName) local uiTemplate = self.ui.Items.Layout_game_item; local uiItem = uiTemplate:getCopied() uiItem.Items = getUIItems(uiItem) -- 是否已下载 -- local gameIsInstaller = app.subGameManager:isInstaller(tonumber(gameId)) --是否有更新 -- local gameIsNeedUpdate = app.subGameManager:isNeedUpdate(tonumber(gameId)) uiItem.Items.ImageView_update_icon:setVisible(false)--gameIsNeedUpdate or not gameIsInstaller) uiItem.Items.Text_GameName:setString(gameName) uiItem.Items.Text_GameName_sel:setString(gameName) --刷新layout布局 uiItem:requestDoLayout() uiItem:doLayout() return uiItem end -- 玩法回调 function CreateRoomBase:onClickRule(ruleID) self.selectRuleID = ruleID; --清空规则显示 if self.ruleView then self.ruleView:removeFromParent() self.ruleView = nil end local mScorllView = self.ui.Items.ScrollView_rule mScorllView:hideAllBar() mScorllView:removeAllChildren() -- 读取上一次的开房配置 self.lastGameInfo = nil local strLastGameInfo = self:loadLastRoomInfo(self.selectGameID, self.selectRuleID) if strLastGameInfo then self.lastGameInfo = json.decode(strLastGameInfo) end local createRuleConfig = getSubGameCreateRuleConfig(self.selectGameID) if createRuleConfig then self.ruleView = import("core.luaScript.Views.CreateRoom.CreateRoomItemNew"):new(createRuleConfig, self.lastGameInfo, self.selectGameID, self.selectRuleID) mScorllView:addChild(self.ruleView) local layoutSize = self.ruleView:getLayoutContentSize() if layoutSize then mScorllView:setInnerContainerSize(layoutSize) end local innerSize = mScorllView:getInnerContainer():getContentSize() if innerSize.height > mScorllView:getContentSize().height then self.ui.Items.ImageView_Arrow:setVisible(true) else self.ui.Items.ImageView_Arrow:setVisible(false) end self.ruleViews[self.selectRuleID] = self.ruleView else local ruleClass = getSubGameCreateRoomUi(self.selectGameID, tonumber(self.selectRuleID)) if ruleClass then self.ruleView = import(ruleClass):new(nil, self.selectRuleID) mScorllView:addChild(self.ruleView) local layoutSize = self.ruleView:getLayoutContentSize() if layoutSize then mScorllView:setInnerContainerSize(layoutSize) end local innerSize = mScorllView:getInnerContainer():getContentSize() if innerSize.height > mScorllView:getContentSize().height then self.ui.Items.ImageView_Arrow:setVisible(true) else self.ui.Items.ImageView_Arrow:setVisible(false) end self.ruleViews[self.selectRuleID] = self.ruleView end end mScorllView:jumpToTop() self:initJuShu() end --游戏下载完成回调 function CreateRoomBase:onDownloadFinished(gameid) showTooltip("下载完成") for gameID,gameItem in pairsByKeys(self.gameItemT) do -- 是否已下载 local isDownGame = app.subGameManager:isInstaller(tonumber(gameID)) -- 是否需要更新 local isUpdate = app.subGameManager:isNeedUpdate(tonumber(gameID)) gameItem.Items.ImageView_update_icon:setVisible(false)--(isDownGame == false or isUpdate == true) end end function CreateRoomBase:onClickCreate() playBtnEffect() -- 是否已下载 local isDownGame = app.subGameManager:isInstaller(tonumber(self.selectGameID)) -- 是否需要更新 local isUpdate = app.subGameManager:isNeedUpdate(tonumber(self.selectGameID)) if isDownGame == false or isUpdate == true then requestDownloadSubGame(tonumber(self.selectGameID), handler(self, self.onDownloadFinished)) return end -- 检查是否有文件缺失 local result, subGameId, missingFiles = app.subGameManager:checkGameFiles(self.selectGameID) if not result then logD("CreateRoomBase::onClickCreate() 发现子游戏文件缺失,gameId = "..subGameId) for k,v in pairs(missingFiles) do logD(v); end local function onOk() app.subGameManager:clearGame(subGameId); requestDownloadSubGame(tonumber(subGameId), handler(self, self.onDownloadFinished)) end showConfirmDialog("发现文件缺失,点击确定开始修复", onOk); return; end local jushu = self.curGameCount[self.curSelJushuIndex].round or 0 local result, strRuleInfo = self:getRuleResult() if strRuleInfo.error then return end if strRuleInfo then local stRuleInfo = json.decode(strRuleInfo) if stRuleInfo and type(stRuleInfo) == "table" then stRuleInfo.jushu = jushu strRuleInfo = json.encode(stRuleInfo) end end local jushuTag = "GameCount"..self.selectGameID local gameConfig = getSubGameConfig(self.selectGameID) if gameConfig.bSingleGame then jushuTag = "GameCount"..self.selectGameID..self.selectRuleID end saveUserInfo(jushuTag,jushu) -- 保存玩家的开房配置 self:saveLastRoomInfo(self.selectGameID, self.selectRuleID, strRuleInfo) logD("CreateRoomBase:onClickCreate()", jushu, strRuleInfo) local request = CreateRoomRequest:new() request.gameId = tonumber(self.selectGameID); -- 底注 request.basechips = self.selectGameID == 70 and 1 or 10; -- 总局数 request.totalGameNum = jushu or 0; -- 需要的房卡信息 request.requireCards = 0; -- 进入游戏的方式 //0:游戏开始后不允许进人,1:游戏开始后可以进人 if self.selectGameID == 70 then request.createFlag = 0 else request.enterFlag = 0; end -- json格式 ,不同游戏内容不一样 request.gameInfo = strRuleInfo or "" --发起创建的用户信息 local tt = json.decode(app.user.userInfo) tt.sex = tonumber(tt.sex) -- 創建者的用户信息 request.userInfo = json.encode(tt); logD("createroom request :"..table.tostring(request)) app.hall:requestCreateRoom(request); end function CreateRoomBase:onEventChangeAddress( event ) -- self:showGameTypeView() local addressCode = event.data.addressCode app.serverConfigs:requestGameList(addressCode) end function CreateRoomBase:onUpdateGameList( ) self.selectGameID = nil self.selectRuleID = nil local curGameType = self.selectGameType or 1 self:setDefultGameInfo(curGameType) --设置顶部游戏类型按钮状态 self:setGameTypeBtnStatus(curGameType) --清空 self.ruleView = nil; --创建左边游戏名字按钮 self:createLeftGameName(curGameType) --设置左边选中游戏及玩法的按钮状态 self:setLeftBtnStatus(self.selectGameID, self.selectRuleID) --选中玩法按钮后,显示右边的玩法选项 self:onClickRule(self.selectRuleID) end function CreateRoomBase:saveLastRoomInfo(gameId, ruleId, strGameInfo) local fileName = string.format("CreateRoom_LastGameInfo_%s_%s", tostring(gameId), tostring(ruleId)) saveStringToFile(tostring(strGameInfo), tostring(fileName)) end function CreateRoomBase:loadLastRoomInfo(gameId, ruleId) local fileName = string.format("CreateRoom_LastGameInfo_%s_%s", tostring(gameId), tostring(ruleId)) local strGameInfo = loadStringFromFile(fileName) return strGameInfo end return CreateRoomBase