--大厅View对象 --author:-- local JoinRoomView = import(".Lobby.JoinRoomView") local LobbySettingView = import(".Lobby.LobbySettingView") local LobbyShopView = import(".Lobby.LobbyShopView") local LobbyAuthenticateView = import(".Lobby.LobbyAuthenticateView") local LobbyMessagesView = import(".Lobby.LobbyMessagesView") local LobbyRecordView = import(".Lobby.LobbyRecordView") local LobbyPlayerInfoView = import(".Lobby.LobbyPlayerInfoView") local CreatePlayView = import(".Family.CreatePlayView") local CreateRoomView = import(".Lobby.CreateRoomView") local RankView = import(".Lobby.RankView") local GroupMainView = import(".NewGroup.GroupMainView") local NoticeView = import(".Lobby.NoticeView") local HeadView = import(".Lobby.LobbyHeadView") local PhoneBindView = import(".Lobby.PhoneBindView") local RealAddressView = import(".Lobby.RealAddressView") local LobbyHeadView = import(".Lobby.LobbyHeadView") LobbyView = {} local M = {} function LobbyView.new() -- -- print("new lobbyView!!!!") setmetatable(M, { __index = BaseView }) local self = setmetatable({}, { __index = M }) self.class = "LobbyView" UIPackage.AddPackage("base/lobby/ui/Lobby") self.lobby_pause_time = 0 self._full = true self:InitView("ui://Lobby/Main_New") -- self._close_destroy = false return self end function M:InitView(url) -- -- print("init lobbyView!!!!") BaseView.InitView(self, url) self._full_offset = false local view = self._view local btn_joinroom = self._view:GetChild("btn_join") btn_joinroom.onClick:Add(handler(self, self.OnJoinRoomAction)) local btn_setting = self._view:GetChild("btn_setting") btn_setting.onClick:Set(handler(self, function() local settingView = LobbySettingView.new() settingView:Show() end)) local btn_shop = self._view:GetChild("btn_shop") btn_shop.onClick:Add(handler(self, function() local shopView = LobbyShopView.new(function() ViewUtil.ShowBannerOnScreenCenter("该功能还会开放,敬请期待") -- self:ShowPlayerInfo(1, DataManager.SelfUser.diamo, 1) end) shopView:Show() end)) local btn_authenticate = self._view:GetChild("btn_authenticate") btn_authenticate.onClick:Add(handler(self, function() local authenticateView = LobbyAuthenticateView.new() authenticateView:Show() end)) local btn_notice = self._view:GetChild("btn_notice") btn_notice.onClick:Set(function() local noticeView = LobbyMessagesView.new(self._root_view) -- noticeView:FillData(DataManager.SelfUser.notices.data) noticeView:Show() end) local btn_record = self._view:GetChild("btn_record") btn_record.onClick:Add(handler(self, function() local lobbyRecordView = LobbyRecordView.new(self, true) lobbyRecordView:Show() end)) btn_record.displayObject.gameObject:SetActive(true) local btn_gamePlay = self._view:GetChild("btn_gamePlay") btn_gamePlay.onClick:Add(function() ViewUtil.ErrorTip(self._view, "该功能还会开放,敬请期待") end) local btn_more = self._view:GetChild("btn_more") btn_more.onClick:Add(function() ViewUtil.ErrorTip(self._view, "该功能还会开放,敬请期待") end) local btn_family = self._view:GetChild("btn_family") btn_family.onClick:Add(function() local user = DataManager.SelfUser if user.group_id ~= 0 then self:ReconnectRoom(user.group_id) return end ControllerManager.ChangeController(NewGroupController) ViewManager.ChangeView(ViewManager.View_Family) end) -- self.groupMainView = GroupMainView.new(self._view:GetChild("group"), self._root_view, self._view) -- --self.groupMainView:Show() -- local btn_more_group = self._view:GetChild("btn_family") -- btn_more_group.onClick:Set(function() -- --self.groupMainView._view.visible = true -- ViewUtil.ShowModalWait(self._root_view, "请稍等,获取牌友圈中...") -- local enterGroupCallBackFunc = function(code) -- ViewUtil.CloseModalWait() -- if code == 0 then -- self.groupMainView._view.visible = true -- else -- ViewUtil.ErrorTip(10000000, "获取牌友圈失败,请检查网络设置!") -- printlog("获取圈子数据失败=======>>>>") -- end -- end -- self.groupMainView:Show(nil, enterGroupCallBackFunc) -- end) -- local btn_createRoom = self._view:GetChild("btn_createRoom") -- btn_createRoom.onClick:Add(function() -- local createPlayView = CreatePlayView.new() -- createPlayView:Show() -- end) local createRoomBtn = self._view:GetChild("btn_createRoom") createRoomBtn.touchable = true createRoomBtn.onClick:Set(function() local _createRoomView = CreateRoomView.new(1) _createRoomView.onCeateRoom = function() ViewManager.ChangeView(ViewManager.View_Main, DataManager.CurrenRoom.game_id) end _createRoomView:Show() end) local btn_diamo = self._view:GetChild("btn_diamo") btn_diamo.onClick:Add(function() ViewUtil.ErrorTip(self._view, string.format("当前房卡一共%s张", DataManager.SelfUser.diamo)) end) local btn_customerService = self._view:GetChild("btn_customerService") btn_customerService.onClick:Add(function() ViewUtil.ShowModalWait(self._root_view, "正在跳转微信中......") coroutine.start(function() coroutine.wait(3) ViewUtil.CloseModalWait() ViewUtil.ShowBannerOnScreenCenter("微信跳转失败") end) end) local btn_invite = self._view:GetChild("btn_invite") btn_invite.onClick:Add(function() local _curren_msg = MsgWindow.new(self._root_view, "下载地址已复制,请到浏览器粘贴", MsgWindow.MsgMode.OnlyOk) _curren_msg:Show() end) local btn_head = view:GetChild("btn_head") ImageLoad.Load(DataManager.SelfUser.head_url, btn_head._iconObject) btn_head.onClick:Set(function() -- local headView = HeadView.new(DataManager.SelfUser, nil, function() -- view:GetChild("tex_name").text = DataManager.SelfUser.nick_name -- ImageLoad.Load(DataManager.SelfUser.head_url, btn_head._iconObject) -- end) -- headView:Show() local lobbyPlayerInfoView = LobbyPlayerInfoView.new(DataManager.SelfUser, function() ImageLoad.Load(DataManager.SelfUser.head_url, btn_head._iconObject) end) lobbyPlayerInfoView:Show() end) local btn_teamwork = view:GetChild("btn_teamwork") btn_teamwork.onClick:Set(function() -- local headView = HeadView.new(DataManager.SelfUser, nil, function() -- view:GetChild("tex_name").text = DataManager.SelfUser.nick_name -- ImageLoad.Load(DataManager.SelfUser.head_url, btn_head._iconObject) -- end) -- headView:Show() local lobbyHeadView = LobbyHeadView.new(DataManager.SelfUser, DataManager.SelfUser.agent, function() ImageLoad.Load(DataManager.SelfUser.head_url, btn_head._iconObject) end) lobbyHeadView:Show() end) view:GetChild("tex_name").emojies = EmojiDitc.EmojiesDitc view:GetChild("tex_name").text = Utils.TextOmit(DataManager.SelfUser.nick_name, 6, "...") view:GetChild("tex_id").text = tostring(DataManager.SelfUser.account_id) view:GetChild("btn_diamo").text = tostring(DataManager.SelfUser.diamo) --btn_joinroom.displayObject.gameObject:SetActive(false) --未知 ,原来未启用,未测试 -- local btn_record = self._view:GetChild("btn_record") -- --[[ btn_record.onClick:Set(function() -- local headView = HeadView.new(DataManager.SelfUser,true) -- headView:Show() -- end)--]] -- btn_record.displayObject.gameObject:SetActive(false) --录像,原来未启用,未测试 -- local btn_video = self._view:GetChild("btn_video") -- --[[btn_video.onClick:Set(function () -- local _rankView = RankView.new(self,true) -- _rankView:Show() -- end)--]] -- btn_video.displayObject.gameObject:SetActive(false) local btn_exit = self._view:GetChild("btn_exit") btn_exit.onClick:Set(handler(self, function() local _curren_msg = MsgWindow.new(self._root_view, '确认退出游戏', MsgWindow.MsgMode.OkAndCancel) _curren_msg.onOk:Add(function() Application.Quit() end) _curren_msg:Show() end)) --可能是我的好友,未调测 -- local lst_userBG = self._view:GetChild("n118") -- lst_userBG.displayObject.gameObject:SetActive(false) -- local lst_user = self._view:GetChild("lst_user") -- lst_user.displayObject.gameObject:SetActive(false) --[[ lst_user.onClickItem:Set(function (context) if context.data.name == "real" then local real_view = RealAddressView.new(0) real_view:Show() elseif context.data.name == "address" then local real_view = RealAddressView.new(1) real_view:Show() elseif context.data.name == "phone" then local phone_view = PhoneBindView.new() phone_view:Show() end end)--]] -- self:__ShowShare() -- btn_notice.displayObject.gameObject:SetActive(false) --可能未游戏服务客服,未调测 -- local btn_service = self._view:GetChild("btn_service") --[[btn_service.onClick:Set(function() self:__show_service() end)--]] -- btn_service.displayObject.gameObject:SetActive(false) --联盟,未调测,原可以使用 -- self.groupMainView = GroupMainView.new(self._view:GetChild("group"),self._root_view,self._view) --self.groupMainView:Show() -- local btn_more_group = self._view:GetChild("btn_more_group") -- btn_more_group.onClick:Set(function() -- --self.groupMainView._view.visible = true -- ViewUtil.ShowModalWait(self._root_view,"请稍等,获取牌友圈中...") -- local enterGroupCallBackFunc=function (code) -- ViewUtil.CloseModalWait() -- if code==0 then -- self.groupMainView._view.visible = true -- else -- ViewUtil.ErrorTip(10000000,"获取牌友圈失败,请检查网络设置!") -- printlog("获取圈子数据失败=======>>>>") -- end -- end -- self.groupMainView:Show(nil,enterGroupCallBackFunc) -- end) --================================================ ---[[ -- self.btn_joingroup.onClick:Set(function() -- local groups = DataManager.groups.groupList -- if #groups == 0 then -- local jgv = JoinGroupView.new(self._root_view) -- jgv:Show() -- else -- local info = GroupInfoView.new(groups[1], self.fg_info) -- self._groupInfoView = info -- info:SetCallBack(function() -- self._groupInfoView = nil -- self:Show() -- self._view.visible = true -- end) -- info:Show() -- self._view.visible = false -- end -- if not DataManager.SelfUser.phone then -- --local phone_view = PhoneBindView.new() -- --phone_view:Show() -- -- return -- end -- end) -- self.btn_joingroup.touchable = true --]] --游戏列表,原有界面,未调测 -- local lst_game = self._view:GetChild("lst_game") -- lst_game.displayObject.gameObject:SetActive(false) --[[local games = DataManager.SelfUser.games for i = 1, math.min( 4,#games ) do local tem = games[i] local item = lst_game:AddItemFromPool() item.text = tem.name local config = ExtendManager.GetExtendConfig(tem.game_id) config.game_data = tem local mode = config:GetGameInfo() item.icon = mode:GetIconUrl() item.onClick:Set(function () local _createRoomView = CreateRoomView.new(i) _createRoomView.onCeateRoom = function () ViewManager.ChangeView(ViewManager.View_Main,DataManager.CurrenRoom.game_id) end _createRoomView:Show() end) end--]] local message = self._view:GetChild("c_message") --message.visible = true self._message = message:GetChild("message") self._tex_message = message:GetChild("text") self:__GetMessage() end function M:OnJoinRoomAction(context) local joinRoomView = JoinRoomView.new(self._root_view) joinRoomView:Show() end function M:__show_service() local _buy_win = BaseWindow.new("ui://Lobby/Win_service", self._root_view) _buy_win._close_destroy = true _buy_win:Show() local sview = _buy_win._view local btn_copy = sview:GetChild("btn_copy") btn_copy.onClick:Set(function() GameApplication.Instance:CopyToClipboard("xbkf888108") --湘北 -- GameApplication.Instance:CopyToClipboard("ttwmq008")--fb _buy_win:Destroy() end) end function M:__GetMessage(data) print("on GetMessage~~~~~~~~~~~~~~~~~~~~~~~~~~~") if not data or not data.notice_list then self._mesList = "" else local message = self._view:GetChild("com_message") message.visible = true local mesl = {} for i = 1, #data.notice_list do mesl[i] = data.notice_list[i] --.informContent end self._mesList = mesl DataManager.GameNotice = mesl end self:__moveMsg(0) end function M:__PopMsg(index) local num = #self._mesList index = index + 1 if index > num then index = 1 end local str = tostring(self._mesList[index]) if str == nil or str == "nil" then str = "" end return index, string.gsub(str, "\r", "") end function M:__moveMsg(index) -- -- print("on moveMsg!!!!!!!!!!!!!!!!!!!!!!!!!") if not self._tex_message then return end index, self._tex_message.text = self:__PopMsg(index) self._tex_message.x = self._message.width if self._mesTw then TweenUtils.Kill(self._mesTw) end local change = -self._message.width * 2 local dd = self._tex_message.width / self._message.width if dd < 1 then dd = 1 end self._mesTw = TweenUtils.TweenFloat(0, 1 * dd, 10 * dd, function(value) self._tex_message.x = self._message.width + (change * value) end) TweenUtils.OnComplete(self._mesTw, function() self._mesTw = nil if (#self._mesList == 0) then self:__GetMessage() else self:__PopMsg(index) self:__moveMsg(index) end end) end function M:__ShowShare() local pop_share = self._view:GetChild("pop_share") local shareUrl = GetGameInfo("invite_link") .. "?uid=" .. DataManager.SelfUser.account_id ---- print("shareUrl=================") ---- print(shareUrl) local btn_wx_session = pop_share:GetChild("btn_wx_session") btn_wx_session.onClick:Add(function() shareQRCodePicture(shareUrl, 0) end) local btn_wx_line = pop_share:GetChild("btn_wx_line").asButton btn_wx_line.onClick:Add(function() shareQRCodePicture(shareUrl, 1) end) end function M:OnUpdate() local roomid = GameApplication.Instance:GetRoomID() if roomid and string.len(roomid) > 1 then ControllerManager.WebClient:clearActionQueue() local joinRoomView = JoinRoomView.new(self._root_view) joinRoomView:JoinRoom(roomid) end end function M:Close() BaseView.Close(self) UpdateBeat:Remove(self.OnUpdate, self) coroutine.stopAll() if self._mesTw then TweenUtils.Kill(self._mesTw) end BaseWindow.DestroyAll() DSTweenManager.ClearTween() end function M:Destroy() UpdateBeat:Remove(self.OnUpdate, self) if self._mesTw then TweenUtils.Kill(self._mesTw) end self._tex_message = nil coroutine.stopAll() BaseView.Destroy(self) BaseWindow.DestroyAll() DSTweenManager.ClearTween() end function M:Show() ---- print("on lobbyView show~~~~~~") BaseView.Show(self) ViewUtil.PlaySoundBg() UpdateBeat:Add(self.OnUpdate, self) -- 旧重连 --[[ -- 如果在圈子内的房间,显示tip local user = DataManager.SelfUser local tem = user.notices if user.group_id ~= 0 then self:ReconnectRoom(user.group_id) local msg_tip = MsgWindow.new(self._root_view, "还在圈子的房间中,现在重连吗?", MsgWindow.MsgMode.OkAndCancel) msg_tip.onOk:Add(function() self:ReconnectRoom(user.group_id) end) msg_tip:Show() tem.auto_show = false else end ]] local lobbyCtr1 = ControllerManager.GetController(LoddyController) lobbyCtr1:UpdateNotice(DataManager.SelfUser.account_id, function(result, data) -- local data1 = {} -- data1.notice_list = {} -- data1.notice_list[1] = "ccccccccccccccccccccccccccc" if result then self:__GetMessage(data) end end) --self:GetPlayerInfoData() -- 获取GPS坐标 if not DataManager.SelfUser.location or DataManager.SelfUser.location:Location2String() == "" then get_gps() end if self.groupMainView and self.groupMainView._groupInfoView then self.groupMainView._groupInfoView:hidePipei() end self:GetPlayerInfoData() end function M:GetPlayerInfoData() local loddyCtr1 = ControllerManager.GetController(LoddyController) loddyCtr1:UpdatePlayerInfo(function(result, data) if result then self:ShowPlayerInfo(data.raffle, data.diamo, data.newMail) if data.group_id ~= 0 then -- 重连 self:ReconnectRoom(data.groupId) end end end) end function M:ShowPlayerInfo(raffle, diamo, newMail) self._view:GetChild("btn_diamo").text = diamo or 0 end function M:OnApplicationPause() ControllerManager.WebClient:clearActionQueue() -- 切后台时间 if DataManager.SelfUser.cur_group then self.lobby_pause_time = os.time() DataManager.SelfUser.cur_group.pause = true end end function M:OnApplicationActive() ControllerManager.WebClient:clearActionQueue() self:GetPlayerInfoData() -- 切后台太久牌友圈重连 if DataManager.SelfUser.cur_group then DataManager.SelfUser.cur_group.pause = false if os.time() - self.lobby_pause_time > 15 then self.lobby_pause_time = os.time() DataManager.SelfUser.cur_group:Reconnect() end end end -----------------------lingmeng---------------------------- function M:ReconnectRoom(groupId) local roomId = DataManager.SelfUser.room_id print("===============================ReconnectRoom", roomId, 1) if roomId and #roomId > 0 then local roomCtr = ControllerManager.GetController(RoomController) roomCtr:PublicJoinRoom( Protocol.WEB_FG_JOIN_ROOM, roomId, false, function(response) if (response.ReturnCode == -1) then ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1') RestartGame() return end if response.ReturnCode ~= 0 then ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, '进入房间失败') FamilyView.lastId = groupId ViewManager.ChangeView(ViewManager.View_Family) return else FamilyView.lastId = groupId DataManager.SelfUser.room_id = "" ViewManager.ChangeView(ViewManager.View_Main, DataManager.CurrenRoom.game_id) end end, groupId ) end end -----------------------------------------------------------