From 9921b8a0a3335a59658041f7702c2c78b3bf64ab Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 10 六月 2026 17:58:36 +0800
Subject: [PATCH] 588 公会信息界面从仅显示会长信息改成滚动条显示所有成员信息,同步A519封包
---
Main/System/Guild/GuildPreviewWin.cs | 97 +++++++++++++++++++++++++++---------------------
1 files changed, 55 insertions(+), 42 deletions(-)
diff --git a/Main/System/Guild/GuildPreviewWin.cs b/Main/System/Guild/GuildPreviewWin.cs
index bb219c9..893905a 100644
--- a/Main/System/Guild/GuildPreviewWin.cs
+++ b/Main/System/Guild/GuildPreviewWin.cs
@@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
@@ -16,20 +17,24 @@
[SerializeField] Text guildNumText; //鍔犲叕浼氱紪鍙�
[SerializeField] Button copyBtn;
[SerializeField] Text noticeText; //鍏憡
- [SerializeField] AvatarCell leaderAvatar;
- [SerializeField] OfficialTitleCell leaderTitle;
- [SerializeField] Text leaderLevelText;
- [SerializeField] Text guildJobText;
- [SerializeField] Text leaderNameText;
- [SerializeField] Text leaderFightPowerText;
+
+ [SerializeField] ScrollerController scroller;
[SerializeField] Button opearteBtn;
[SerializeField] Text opearteBtnText;
int guildID;
- int leaderID;
- int leaderServerID;
+ static bool m_ShowOpearteBtn = true;
+
+ /// <summary>
+ /// 璁剧疆鏄惁鏄剧ず鎿嶄綔鎸夐挳锛堝湪鎵撳紑鐣岄潰鍓嶈皟鐢級锛岄粯璁ゆ樉绀�
+ /// </summary>
+ public static void SetShowOpearteBtn(bool show)
+ {
+ m_ShowOpearteBtn = show;
+ }
+
protected override void InitComponent()
{
opearteBtn.AddListener(() =>
@@ -45,45 +50,39 @@
UIHelper.CopyToClipboard(guildNumText.text);
SysNotifyMgr.Instance.ShowTip("GuildSys8");
});
-
- leaderAvatar.AddListener(() =>
- {
- OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID, leaderServerID);
- });
}
protected override void OnPreOpen()
{
+ GuildManager.Instance.OnUpdateViewFamilyInfo += OnUpdateViewFamilyInfo;
OtherPlayerDetailManager.Instance.OnRevPackage += OnRevLeaderPackage;
+ scroller.OnRefreshCell += OnRefreshMemberCell;
guildID = functionOrder;
+
+ opearteBtn.SetActive(m_ShowOpearteBtn);
Display();
}
protected override void OnPreClose()
{
+ GuildManager.Instance.OnUpdateViewFamilyInfo -= OnUpdateViewFamilyInfo;
OtherPlayerDetailManager.Instance.OnRevPackage -= OnRevLeaderPackage;
+ scroller.OnRefreshCell -= OnRefreshMemberCell;
+
+ m_ShowOpearteBtn = true;
}
void Display()
{
FairyData guildInfo = null;
- if (GuildManager.Instance.guildsDict.ContainsKey(guildID))
+
+ if (GuildManager.Instance.viewGuildsDict.ContainsKey(guildID))
{
- guildInfo = GuildManager.Instance.guildsDict[guildID];
- }
- else
- {
- if (GuildManager.Instance.viewGuildsDict.ContainsKey(guildID))
- {
- guildInfo = GuildManager.Instance.viewGuildsDict[guildID];
- }
+ guildInfo = GuildManager.Instance.viewGuildsDict[guildID];
}
if (guildInfo == null) return;
- leaderID = guildInfo.LeaderID;
- leaderServerID = guildInfo.ServerID;
- OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID, leaderServerID, (int)ViewPlayerType.viewGuildLeader);
var config = FamilyConfig.Get(guildInfo.FamilyLV);
guildEmblem.Display(guildInfo.EmblemID, guildInfo.EmblemWord, 0.7f);
@@ -92,7 +91,6 @@
guildLevelText.text = Language.Get("L1094") + guildInfo.FamilyLV;
guildNameText.text = guildInfo.FamilyName + Language.Get("L1039", ServerListCenter.Instance.GetServerName(guildInfo.ServerID));
guildNumText.text = GuildManager.Instance.EncryptGuildID(guildInfo.FamilyID);
- leaderNameText.text = guildInfo.LeaderName;
noticeText.text = string.IsNullOrEmpty(guildInfo.Broadcast) ? Language.Get("Guild_62") : guildInfo.Broadcast;
@@ -113,27 +111,42 @@
}
opearteBtnText.text = Language.Get(key);
+ RefreshMemberList();
}
+ void RefreshMemberList()
+ {
+ var memberList = GuildManager.Instance.GetSortedMemberList(guildID);
+ if (memberList == null) return;
+ scroller.Refresh();
+ for (int i = 0; i < memberList.Count; i++)
+ {
+ scroller.AddCell(ScrollerDataType.Header, i);
+ }
+ scroller.Restart();
+ }
+
+ void OnRefreshMemberCell(ScrollerDataType type, CellView cell)
+ {
+ if (cell is GuildPreviewCell exCell)
+ {
+ var memberList = GuildManager.Instance.GetSortedMemberList(guildID);
+ if (memberList != null && cell.index >= 0 && cell.index < memberList.Count)
+ {
+ exCell.Display(memberList[cell.index]);
+ }
+ }
+ }
void OnRevLeaderPackage(int viewType, int playerID)
{
- if (viewType != (int)ViewPlayerType.viewGuildLeader)
- {
- return;
- }
- if (playerID != leaderID)
- {
- return;
- }
- var leaderInfo = OtherPlayerDetailManager.Instance.GetViewPlayerData(playerID);
-
- leaderAvatar.InitUI(AvatarHelper.GetAvatarModel(0, leaderInfo.Face, leaderInfo.FacePic));
- leaderTitle.InitUI(leaderInfo.RealmLV, leaderInfo.TitleID);
- leaderLevelText.text = leaderInfo.LV.ToString();
- guildJobText.text = RichTextMsgReplaceConfig.GetRichReplace("FAMILY", 3);
- leaderFightPowerText.text = UIHelper.ReplaceLargeArtNum(leaderInfo.FightPower);
+ RefreshMemberList();
}
-}
\ No newline at end of file
+ void OnUpdateViewFamilyInfo(int familyID)
+ {
+ Display();
+ }
+
+}
--
Gitblit v1.8.0