From 5e470d57ee68afe391efc611d0335e68452647f1 Mon Sep 17 00:00:00 2001
From: "DESKTOP-7R8JEQQ\\k" <1076390229@qq.com>
Date: Sat, 5 Jul 2025 21:36:09 +0800
Subject: [PATCH] =?UTF-8?q?=E8=81=8A=E5=A4=A9=E5=AE=A4=E5=8D=8F=E8=AE=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Game/Controller/GroupMgrController.lua | 9 +++
lua_probject/base_project/Game/Protocol.lua | 2 +
.../Game/View/Family/FamilyBanDesk.lua | 3 +-
.../Game/View/Family/FamilyChatRoom.lua | 64 ++++++++++++++----
.../Game/View/Family/FamilyEventView.lua | 12 ++++
.../Game/View/Family/FamilyMyFamily.lua | 2 +-
.../Game/View/Family/FamilySelectNumber.lua | 3 +-
.../base_project/Game/View/FamilyView.lua | 5 +-
.../Family/MyFamily/com_myFamilyList.xml | 17 +++--
.../NumberList/Component/c_numberChild.xml | 36 ++++++----
.../Family/SelectNumber/com_SelectNumber.xml | 11 ++-
.../ART/base/Family/ui/Family_fui.bytes | Bin 113103 -> 113666 bytes
12 files changed, 127 insertions(+), 37 deletions(-)
diff --git a/lua_probject/base_project/Game/Controller/GroupMgrController.lua b/lua_probject/base_project/Game/Controller/GroupMgrController.lua
index a7b8ff9d..e6ac1271 100644
--- a/lua_probject/base_project/Game/Controller/GroupMgrController.lua
+++ b/lua_probject/base_project/Game/Controller/GroupMgrController.lua
@@ -14,6 +14,7 @@ GroupMgrEvent = {
NewMailTip = "NewMailTip",
InviteResponse = "InviteResponse",
IsOpenChatRoom = "IsOpenChatRoom",
+ ChatRoomData = "ChatRoomData",
}
GroupMgrController = {
@@ -50,6 +51,7 @@ function GroupMgrController.new()
self._eventmap[Protocol.FGMGR_EVT_NEW_MAIL] = self.OnEvtNewMailTip
self._eventmap[Protocol.FGMGR_RESPONSE_INVITE] = self.FG_ResponseInvited
self._eventmap[Protocol.FGMGR_EVT_ISOPEN_CHATROOM] = self.FG_Isopen_ChatRoom
+ self._eventmap[Protocol.FGMGR_EVT_DATA_CHATROOM] = self.FG_Data_ChatRoom
-- self:connect(callback)
return self
end
@@ -361,6 +363,13 @@ function M:FG_Isopen_ChatRoom(evt_data)
DispatchEvent(self._dispatcher, GroupMgrEvent.IsOpenChatRoom, evt_data)
end
+function M:FG_Data_ChatRoom(evt_data)
+ print("收到是否开启聊天室推送")
+ pt(evt_data)
+ --json.decode(_totalScore)
+ DispatchEvent(self._dispatcher, GroupMgrEvent.ChatRoomData, evt_data)
+end
+
function M:PopEvent()
local _cacheEvent = self._cacheEvent
if (_cacheEvent:Count() > 0) then
diff --git a/lua_probject/base_project/Game/Protocol.lua b/lua_probject/base_project/Game/Protocol.lua
index c17a8551..0e289007 100644
--- a/lua_probject/base_project/Game/Protocol.lua
+++ b/lua_probject/base_project/Game/Protocol.lua
@@ -389,6 +389,8 @@ Protocol = {
FGMGR_EVT_ISOPEN_CHATROOM = "12011",
-- 进入聊天室
FGMGR_EVT_ENTER_CHATROOM = "13004",
+ -- 聊天室协议
+ FGMGR_EVT_DATA_CHATROOM = "13003",
-- 设置是否允许观战
WEB_FG_SET_CANWATCH = "group/set_group_guest",
diff --git a/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua b/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua
index 5bb2ca43..2f7f98b3 100644
--- a/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua
@@ -258,7 +258,8 @@ function BanDesk.New()
setmetatable(BanDesk, { __index = BaseView })
local inst = setmetatable({}, { __index = BanDesk })
inst._close_destroy = true
- inst._full = true
+ --inst._full = true
+ inst._scale = true
inst._animation = false
inst._full_offset = false
inst._anim_pop = 0
diff --git a/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua b/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua
index 9aac9f9f..ffd5bcbc 100644
--- a/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua
@@ -2,30 +2,60 @@ require 'FairyGUI'
--region LOCAL
-local function PlayersItemRenderer(index, obj, self)
- local loader_icon = obj:GetChild("")
+local function SetBigWiller(totalScore)
+ local s = -999
+ local winer = 0
+ for _,player in pairs(totalScore) do
+ if player.score > s then
+ s = player.score
+ winer = _
+ end
+ end
+
+ totalScore[winer].winer = true
+end
+
+local function list_players_Renderer(index, obj, totalScore, self)
local tex_name = obj:GetChild("tex_name")
+ local loader_icon = obj:GetChild("loader_icon")
local tex_id = obj:GetChild("tex_id")
local tex_score = obj:GetChild("tex_score")
- local cWiner = obj:GetController("cWiner")
- tex_name.text = "wenb"
- tex_id.text = "wenb"
- tex_score.text = "wenb"
+ local player = totalScore[index + 1]
+
+ tex_name.text = player.nick
+ tex_id.text = player.accId
+ tex_score.text = player.score
+ ImageLoad.Load(player.portrait, loader_icon)
+
+ if player.winer then
+ obj:GetController("cWiner").selectedIndex = 1
+ else
+ obj:GetController("cWiner").selectedIndex = 0
+ end
end
local function ChatItemRenderer(index, obj, self)
+
+ local data = self.ChatRoomData[index + 1]
+ local totalScore = json.decode(data.totalScore)
+ SetBigWiller(totalScore)
+
local list_players = obj:GetChild("list_players")
local tex_time = obj:GetChild("tex_time")
local tex_name = obj:GetChild("tex_name")
- tex_time.text = "000"
- tex_name.text = "000"
+ tex_time.text = os.date("游戏结算:%m月%d号 %X") --data.create_time
+ tex_name.text = data.game_info.name
- list_players.itemRenderer = PlayersItemRenderer
- list_players.numItems = 3
+ list_players.itemRenderer = function(i, o)
+ list_players_Renderer(i, o, totalScore, self)
+ end
+
+ list_players.numItems = #totalScore
end
+--[[
local function GetIsOpenChatRoom(groupId, self)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:GetIsOpenChatRoom(groupId, function(res)
@@ -33,6 +63,7 @@ local function GetIsOpenChatRoom(groupId, self)
pt(res)
end)
end
+]]
--endregion
@@ -63,7 +94,9 @@ function FamilyChatRoom:Init(com, root)
self.list_chat = self._view:GetChild("list_chat")
self.btn_quit = self._view:GetChild("btn_quit")
- self.list_chat.itemRenderer = ChatItemRenderer
+ self.list_chat.itemRenderer = function(index, obj)
+ ChatItemRenderer(index, obj, self)
+ end
self.btn_quit.onClick:Set(function()
self:Close()
@@ -77,23 +110,30 @@ function FamilyChatRoom:Close()
cChatRoom.selectedIndex = 0
end
+function FamilyChatRoom:Refalsh()
+ self.list_chat.numItems = #self.ChatRoomData
+end
+
function FamilyChatRoom:Show()
local cChatRoom = self.root._view:GetController("cIsChatRoom")
cChatRoom.selectedIndex = 1
+ --[[
GetIsOpenChatRoom(self.root._group.id, self)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:GetChatRoom(self.root._group.id, function(res)
self:GetChatCallBack(res)
end)
- self.list_chat.numItems = 4
+ ]]
end
+--[[
function FamilyChatRoom:GetChatCallBack(res)
print("收到聊天室协议")
pt(res)
pt(res.Data.records.totalScore)
end
+]]
return FamilyChatRoom
\ No newline at end of file
diff --git a/lua_probject/base_project/Game/View/Family/FamilyEventView.lua b/lua_probject/base_project/Game/View/Family/FamilyEventView.lua
index 6fc8cfca..eb4b6335 100644
--- a/lua_probject/base_project/Game/View/Family/FamilyEventView.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilyEventView.lua
@@ -22,6 +22,7 @@ function FamilyEventView.new(root)
mgr_ctr:AddEventListener(GroupMgrEvent.NewMailTip, handler(self, self._evtNewMailTip))
mgr_ctr:AddEventListener(GroupMgrEvent.InviteResponse, handler(self, self._evtInviteResponse))
mgr_ctr:AddEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom))
+ mgr_ctr:AddEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData))
return self
end
@@ -128,4 +129,15 @@ function M:_evtIsOpenChatRoom(...)
pt(arg)
end
+function M:_evtChatRoomData(...)
+ local view = ViewManager.GetCurrenView()
+ if view.class ~= "FamilyMainView" then
+ return
+ end
+ local arg = { ... } --totalScore
+ view.com_FamilyChatRoom.ChatRoomData = arg
+ --view.com_FamilyChatRoom.list_chat.numItems = #arg
+ view.com_FamilyChatRoom:Refalsh()
+end
+
return M
diff --git a/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua b/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua
index f0332ca3..ff7d45e1 100644
--- a/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua
@@ -96,7 +96,7 @@ function FamilyMyFamily.New(groupId)
setmetatable(FamilyMyFamily, { __index = BaseWindow })
local inst = setmetatable({}, { __index = FamilyMyFamily })
inst._close_destroy = true
- inst._full = true
+ inst._scale = true
inst._animation = false
inst._full_offset = false
inst._anim_pop = 0
diff --git a/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua b/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua
index b4bf6d4c..e8f24921 100644
--- a/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua
@@ -3,7 +3,8 @@ local FamilySelectNumber = {}
function FamilySelectNumber.New()
setmetatable(FamilySelectNumber, { __index = BaseWindow})
local inst = setmetatable({}, { __index = FamilySelectNumber})
- inst._full = true
+ --inst._full = true
+ inst._scale = true
inst._close_destroy = true
inst._full_offset = false
inst._anim_pop = 0
diff --git a/lua_probject/base_project/Game/View/FamilyView.lua b/lua_probject/base_project/Game/View/FamilyView.lua
index 8cab2b65..525a8283 100644
--- a/lua_probject/base_project/Game/View/FamilyView.lua
+++ b/lua_probject/base_project/Game/View/FamilyView.lua
@@ -41,7 +41,7 @@ function M:init(url)
self._full_offset = false
local view = self._view
- -- FamilyChatRoom = FamilyChatRoom:Init(view:GetChild('com_chatRoom'), self)
+ self.com_FamilyChatRoom = FamilyChatRoom:Init(view:GetChild('com_chatRoom'), self)
local fgCtr = ControllerManager.GetController(NewGroupController)
@@ -111,7 +111,8 @@ function M:init(url)
self.btn_chatRoom.onClick:Set(function()
--local view = FamilyChatRoom.New()
--view:Show()
- FamilyChatRoom:Show()
+ --FamilyChatRoom:Show(self.ChatRoomData)
+ self.com_FamilyChatRoom:Show()
end)
end
diff --git a/wb_new_ui/assets/Family/MyFamily/com_myFamilyList.xml b/wb_new_ui/assets/Family/MyFamily/com_myFamilyList.xml
index 507ddb5a..b5c60be3 100644
--- a/wb_new_ui/assets/Family/MyFamily/com_myFamilyList.xml
+++ b/wb_new_ui/assets/Family/MyFamily/com_myFamilyList.xml
@@ -1,16 +1,23 @@
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -23,6 +30,6 @@
-
+
\ No newline at end of file
diff --git a/wb_new_ui/assets/Family/NumberList/Component/c_numberChild.xml b/wb_new_ui/assets/Family/NumberList/Component/c_numberChild.xml
index 72d0723b..556728a8 100644
--- a/wb_new_ui/assets/Family/NumberList/Component/c_numberChild.xml
+++ b/wb_new_ui/assets/Family/NumberList/Component/c_numberChild.xml
@@ -6,41 +6,51 @@
+
+
+
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
\ No newline at end of file
diff --git a/wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml b/wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml
index 5814db84..8fbde1d7 100644
--- a/wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml
+++ b/wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml
@@ -1,6 +1,13 @@
+
+
+
+
+
+
+
@@ -16,7 +23,7 @@
-
+
@@ -26,6 +33,6 @@
-
+
\ No newline at end of file
diff --git a/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes b/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes
index 0f259f2bf50a5ae20a6f08e795598d09926c480d..6f7d8749307b34cc2b4a13ab9a2d5739f66a66d9 100644
GIT binary patch
delta 8204
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
delta 7766
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