---创建房间View对象 local GameListView = import(".GameListView") local CreateRoomView = {} local M = CreateRoomView function CreateRoomView.new(index) setmetatable(M, { __index = BaseWindow }) local self = setmetatable({}, { __index = M }) self.class = "CreateRoomView" self._animation = false self._full = true self._full_offset = false self._modeMap = {} self.selectedIndex = index self._close_destroy = true self._put_map = false self._new_hide = false self._queue = false -- self:init("ui://Lobby/Win_CreateRoom") self:init("ui://Lobby/CreatePlay") return self end function M:init(url) BaseWindow.init(self, url) self.gl_view = GameListView.new(self._view, self.selectedIndex, nil, function(mode_data) self:OnCreateRoom(mode_data) end, true) --self.gl_view.IsHallGame=true end function M:OnCreateRoom(mode_data) if mode_data.type == 0 then local mode = mode_data.data --点击建房按钮后保存当前游戏的config local _data = mode:SelectedConfigData() --print("OnCreateRoom================") --pt(_data) if not _data["stamina"] then _data["stamina"] = 0 end local user_id = DataManager.SelfUser.account_id local config_data = {} local game_id = mode.game_data.game_id config_data["game_id"] = game_id config_data["version"] = mode.game_data.version config_data["config"] = _data Utils.SaveLocalFile(user_id, json.encode(config_data)) local loddyCtr = ControllerManager.GetController(LoddyController) -- 对强制开启gps的玩法进行判断 if not DataManager.SelfUser.location then DataManager.SelfUser.location = Location.new() end if _data["GPSDetection"] and _data["GPSDetection"] > 0 and DataManager.SelfUser.location:Location2String() == "" then -- if DataManager.SelfUser.location:Location2String() == "" then ViewUtil.ErrorTip(nil, "正在获取GPS定位,请稍候重试。") get_gps() return end ViewUtil.ShowModalWait(self._root_view, "正在创建房间...") loddyCtr:CreateRoom(game_id, _data, function(res) self:__OnCreateRoomAction(res) end) end end function M:__OnCreateRoomAction(response) ViewUtil.CloseModalWait() if (response.ReturnCode == -2) then return end if (response.ReturnCode ~= 0) then ViewUtil.ErrorTip(response.ReturnCode, "创建房间失败") return end self:Destroy() if self.onCeateRoom then self.onCeateRoom() end end function M:Destroy() self.gl_view:Destroy() BaseWindow.Destroy(self) end return M