From cd6cc8b60cd17763b98d98578c02b59f84809f77 Mon Sep 17 00:00:00 2001 From: 1076390229 <1076390229@qq.com> Date: Sun, 27 Jul 2025 02:57:39 +0800 Subject: [PATCH] =?UTF-8?q?12001=E5=88=B7=E6=96=B0=E6=88=90=E5=91=98?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E3=80=81=E7=8A=B6=E6=80=81=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E3=80=81=E9=80=80=E5=87=BA=E6=B8=B8=E6=88=8F=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Game/Controller/GroupMgrController.lua | 14 ++++ .../Game/View/Common/MsgWindow.lua | 1 + .../Game/View/Family/FamilyEventView.lua | 9 ++- .../base_project/Game/View/FamilyView.lua | 63 +++++++++++++++--- .../main_project/main/majiang/MJMainView.lua | 51 +++++++------- wb_new_ui/assets/Common/MessageBox1.xml | 2 +- .../ART/base/common/ui/Common_fui.bytes | Bin 345941 -> 345957 bytes 7 files changed, 97 insertions(+), 43 deletions(-) diff --git a/lua_probject/base_project/Game/Controller/GroupMgrController.lua b/lua_probject/base_project/Game/Controller/GroupMgrController.lua index 1ab0b2dd..0d0155e7 100644 --- a/lua_probject/base_project/Game/Controller/GroupMgrController.lua +++ b/lua_probject/base_project/Game/Controller/GroupMgrController.lua @@ -249,6 +249,20 @@ function M:OnEvtUpdateRoom(evt_data) end end group.update_room = true + + -- ↓↓刷新成员状态 + + for _, player in pairs(group.members) do + player.playing = "stopPlaying" + end + + for _, room in pairs(cmds) do + for _, palyingUser in pairs(room.plist) do + local _player = group.memberMap[palyingUser.aid] + _player.playing = "startPlaying" + end + end + DispatchEvent(self._dispatcher, GroupMgrEvent.OnFamilyRoomReflash, self.groupId) end diff --git a/lua_probject/base_project/Game/View/Common/MsgWindow.lua b/lua_probject/base_project/Game/View/Common/MsgWindow.lua index 90b24f30..7be7710c 100644 --- a/lua_probject/base_project/Game/View/Common/MsgWindow.lua +++ b/lua_probject/base_project/Game/View/Common/MsgWindow.lua @@ -42,6 +42,7 @@ function M:init(url) self:Destroy() end) local tex_message = view:GetChild("tex_message") + tex_message.emojies = EmojiDitc.EmojiesDitc if (self._tip) then tex_message.text = self._tip end local btn_close = view:GetChild('btn_close1') diff --git a/lua_probject/base_project/Game/View/Family/FamilyEventView.lua b/lua_probject/base_project/Game/View/Family/FamilyEventView.lua index 983bc7b1..4d009eb3 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyEventView.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyEventView.lua @@ -314,12 +314,9 @@ function M:_evtOnFamilyReflash(...) view:ChangeOther() view._child_familyAuditNumber:Reflash() end - - if reflashType == "" then - - end end +-- 刷新房间和成员 function M:_evtOnFamilyRoomReflash(...) local arg = { ... } print("_evtOnFamilyRoomReflash") @@ -336,6 +333,7 @@ function M:_evtOnFamilyRoomReflash(...) end view:UpdateFamilyRoom(nil, groupId) + view:ReflashMember() end function M:_evtOnFamilyMemberOut(...) @@ -354,7 +352,8 @@ function M:_evtOnFamilyMemberOut(...) end local tips = "成员 【%s(%s)】退出了【%s(%s)】亲友圈" tips = string.format(tips, name, uid, group.name, groupId) - ViewUtil.ShowTips("成员 【%s】") + local win = MsgWindow.new(view._view, tips, MsgWindow.MsgMode.OnlyOk) + win:Show() end return M diff --git a/lua_probject/base_project/Game/View/FamilyView.lua b/lua_probject/base_project/Game/View/FamilyView.lua index aacfa22d..28064007 100644 --- a/lua_probject/base_project/Game/View/FamilyView.lua +++ b/lua_probject/base_project/Game/View/FamilyView.lua @@ -35,6 +35,45 @@ local function FamilyOffline(groupId, self) end) end +local function SortMembers(Members) + local re = {} + local online = {} + local playing = {} + local offline = {} + + for _, player in pairs(Members) do + + -- 在线 绿色状态 + if player.online == 1 and player.playing == "stopPlaying" then + online[#online + 1] = player + end + + -- 在线游戏中 红色状态 + if player.online == 1 and player.playing == "startPlaying" then + playing[#playing + 1] = player + end + + -- 离线 + if player.online == 0 then + offline[#offline + 1] = player + end + end + + for _, player in pairs(online) do + re[#re + 1] = player + end + + for _, player in pairs(playing) do + re[#re + 1] = player + end + + for _, player in pairs(offline) do + re[#re + 1] = player + end + + return re +end + function FamilyView.new() UIPackage.AddPackage("base/Family/ui/Family") @@ -351,9 +390,12 @@ function M:BanDeskmate() end function M:ReflashMember() + + self.members = SortMembers(self._group.members) + local list_familyNumber = self._view:GetChild('list_familyNumber') if list_familyNumber.itemRenderer == nil then - + return end if list_familyNumber.numItems == #self._group.members then @@ -367,7 +409,7 @@ function M:ChangeNumber(fgCtr, group_id, limit, num, minus_only, sort_type) local list_familyNumber = self._view:GetChild('list_familyNumber') list_familyNumber:SetVirtual() fgCtr:FG_GroupMembers12(group_id, limit, num, 2, 2, function(res) - local members = self._group.members + self.members = SortMembers(self._group.members) --local members = self._group.members print("FG_GroupMembers12") pt(self._group.members) --ViewUtil:CloseModalWait() @@ -375,16 +417,18 @@ function M:ChangeNumber(fgCtr, group_id, limit, num, minus_only, sort_type) ViewUtil.ErrorTip(res.ReturnCode, "获取成员列表失败") else list_familyNumber.itemRenderer = function(index, obj) + local player = self.members[index + 1] obj:GetChild('title').emojies = EmojiDitc.EmojiesDitc - obj:GetChild('title').text = Utils.TextOmit(members[index + 1].nick, 5) - obj:GetController('type').selectedIndex = members[index + 1].online and members[index + 1].online or 0 - if members[index + 1].playing == "startPlaying" then + obj:GetChild('title').text = Utils.TextOmit(player.nick, 5) + obj:GetController('type').selectedIndex = player.online and player.online or 0 + if player.playing == "startPlaying" then obj:GetController('type').selectedIndex = 2 end local loader_icon = obj:GetChild("btn_head"):GetChild("icon") - ImageLoad.Load(members[index + 1].portrait, loader_icon) + ImageLoad.Load(player.portrait, loader_icon) end - list_familyNumber.numItems = #self._group.members + --list_familyNumber.numItems = #self._group.members + list_familyNumber.numItems = #self.members return 1 end end) @@ -678,10 +722,11 @@ function M:ConnetFamily(index, groups, isCreate) if isCreate then list_family.itemRenderer = function(i, obj) local j = i + 1 + local group = DataManager.groups.groupList[j] obj:GetChild("title").emojies = EmojiDitc.EmojiesDitc - obj.text = Utils.TextOmit(groups[j].name, 6) + obj.text = Utils.TextOmit(group.name, 6) obj.onClick:Add(function() - if groups[j].id == self._group.id then + if group.id == self._group.id then ViewUtil.ShowBannerOnScreenCenter("已在家族中") return end diff --git a/lua_probject/main_project/main/majiang/MJMainView.lua b/lua_probject/main_project/main/majiang/MJMainView.lua index 0f1255ac..ae6c992a 100644 --- a/lua_probject/main_project/main/majiang/MJMainView.lua +++ b/lua_probject/main_project/main/majiang/MJMainView.lua @@ -16,8 +16,14 @@ local M = {} setmetatable(M, { __index = MainView }) local default_bg = 1 + +local function IsRoomOwer() + --local roomOwner = self._room.player_list[1].self_user.account_id + local roomOwner = DataManager.CurrenRoom.player_list[1].self_user.account_id + return roomOwner == DataManager.SelfUser.account_id +end + function M:InitView(url, use_custom_bg, custom_bg_config) - -- 加载牌型数据 if not DataManager.CardTypeList then local json_data = Utils.LoadLocalFile("CardTypeData") @@ -177,35 +183,24 @@ function M:InitView(url, use_custom_bg, custom_bg_config) end self._view:GetChild('btn_closeRoom').onClick:Set(function() - local tip_owner = '您是否退出房间?\n(退出房间后房间将解散)' - local tip = '您是否退出房间?' -- \n (请注意,申请洗牌后退出,不会返还洗牌分) - local tipStr = '' - if self._room.agent then - tipStr = '您是否退出房间?' - else - tipStr = self._room.owner_id == self._room.self_player.self_user.account_id and tip_owner or tip + if IsRoomOwer() then + self._gamectr:AskDismissRoom( + function(res) + ViewUtil.CloseModalWait() + if res.ReturnCode == 0 then + ViewManager.ChangeView(ViewManager.View_Family) + else + ViewUtil.ErrorTip(res.ReturnCode) + end + end) + return end - local _curren_msg = MsgWindow.new(self._root_view, tipStr, MsgWindow.MsgMode.OkAndCancel) - _curren_msg.onOk:Add( - function() - if self._state.selectedIndex > 0 and self._state.selectedIndex < 3 then - ViewUtil.ErrorTip(nil, '房间已开始,无法退出游戏。') - else - ViewUtil.ShowModalWait(self._root_view) - self._gamectr:LevelRoom( - function(res) - ViewUtil.CloseModalWait() - if res.ReturnCode == 0 then - ViewManager.ChangeView(ViewManager.View_Family) - else - ViewUtil.ErrorTip(res.ReturnCode) - end - end - ) - end + self._gamectr:LevelRoom(function(res) + if res.ReturnCode ~= 0 then + ViewUtil.ErrorTip(res.ReturnCode) end - ) - _curren_msg:Show() + ViewManager.ChangeView(ViewManager.View_Family) + end) end) self:InitXiPai() diff --git a/wb_new_ui/assets/Common/MessageBox1.xml b/wb_new_ui/assets/Common/MessageBox1.xml index 61532146..15d14b01 100644 --- a/wb_new_ui/assets/Common/MessageBox1.xml +++ b/wb_new_ui/assets/Common/MessageBox1.xml @@ -5,7 +5,7 @@ - +