From 1f7e2377002c93524fad578ec4a26f2ca1ed8fef Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 02 二月 2026 14:38:56 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Guild/GuildManager.cs | 61 ++++++++++
Main/System/BillboardRank/GuildRankCell.cs.meta | 11 +
Main/System/BillboardRank/GuildRankCell.cs | 64 ++++++++++
Main/System/BillboardRank/GuildTop3Cell.cs.meta | 11 +
Main/System/BillboardRank/GuildRankWin.cs | 85 ++++++++++++++
Main/System/BillboardRank/GuildRankWin.cs.meta | 11 +
Main/System/BillboardRank/GuildTop3Cell.cs | 61 ++++++++++
Main/System/Guild/GuildBaseWin.cs | 4
8 files changed, 307 insertions(+), 1 deletions(-)
diff --git a/Main/System/BillboardRank/GuildRankCell.cs b/Main/System/BillboardRank/GuildRankCell.cs
new file mode 100644
index 0000000..e88568d
--- /dev/null
+++ b/Main/System/BillboardRank/GuildRankCell.cs
@@ -0,0 +1,64 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Wednesday, September 26, 2018
+//--------------------------------------------------------
+using UnityEngine;
+using UnityEngine.UI;
+
+//鐜╁閫氱敤鎺掑悕
+public class GuildRankCell : MonoBehaviour
+{
+ [SerializeField] Transform hasGuild;
+ [SerializeField] Transform noGuild;
+ [SerializeField] GuildEmblemCell emblemCell;
+ [SerializeField] Text rankText;
+ [SerializeField] Text rankValueText; //鎺掑悕姣旇緝鍐呭
+ [SerializeField] Text nameText;
+ [SerializeField] Text lvText;
+ [SerializeField] Text countText;
+ [SerializeField] Button queryGuildBtn;
+ GuildManager manager { get { return GuildManager.Instance; } }
+ public void Display(int rank)
+ {
+ FairyData rankData = manager.GetFairyDataByRank(rank);
+ int viewPlayerId = (int)PlayerDatas.Instance.baseData.PlayerID;
+ hasGuild.SetActive(rankData != null);
+ noGuild.SetActive(rankData == null);
+ if (rankData != null)
+ {
+ FamilyConfig familyConfig = FamilyConfig.Get(rankData.FamilyLV);
+ nameText.text = rankData.FamilyName;
+ lvText.text = StringUtility.Concat(Language.Get("L1094"), rankData.FamilyLV.ToString());
+ countText.text = Language.Get("BoneField09", rankData.MemberCount, familyConfig == null ? 0 : familyConfig.MemberMax);
+ rankValueText.text = UIHelper.ReplaceLargeArtNum(rankData.totalFightPower);
+ emblemCell.Display(rankData.EmblemID, rankData.EmblemWord, 0.45f);
+ }
+
+ rankText.text = rank.ToString();
+ queryGuildBtn.AddListener(() =>
+ {
+ if (rankData == null)
+ return;
+ int familyID = rankData.FamilyID;
+ //鑷繁鐨勫叕浼�
+ if (PlayerDatas.Instance.fairyData.HasFairy && PlayerDatas.Instance.fairyData.fairy.FamilyID == familyID)
+ {
+ SysNotifyMgr.Instance.ShowTip("GuildTip01");
+ return;
+ }
+
+ if (!GuildManager.Instance.guildsDict.ContainsKey(familyID))
+ return;
+
+ if (!UIManager.Instance.IsOpened<GuildPreviewWin>())
+ {
+ UIManager.Instance.OpenWindow<GuildPreviewWin>(familyID);
+ }
+ });
+ }
+}
+
+
+
+
+
diff --git a/Main/System/BillboardRank/GuildRankCell.cs.meta b/Main/System/BillboardRank/GuildRankCell.cs.meta
new file mode 100644
index 0000000..db53481
--- /dev/null
+++ b/Main/System/BillboardRank/GuildRankCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dd76fcacc06c4044ca8638c2fe84662b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/BillboardRank/GuildRankWin.cs b/Main/System/BillboardRank/GuildRankWin.cs
new file mode 100644
index 0000000..b70acbd
--- /dev/null
+++ b/Main/System/BillboardRank/GuildRankWin.cs
@@ -0,0 +1,85 @@
+锘縰sing UnityEngine;
+
+public class GuildRankWin : UIBase
+{
+ [SerializeField] GuildTop3Cell[] guildTop3Cells;
+ [SerializeField] ScrollerController scroller;
+ [SerializeField] TextEx rankText;
+ [SerializeField] TextEx rankValueText;
+
+ GuildManager manager { get { return GuildManager.Instance; } }
+ protected override void OnPreOpen()
+ {
+ manager.OnRefreshFairyList += OnRefreshFairyList;
+ scroller.OnRefreshCell += OnRefreshCell;
+
+ manager.SendFindGuild(string.Empty, 0, manager.pageCnt);
+ manager.ResetQueryParam();
+ Display();
+ }
+
+ protected override void OnPreClose()
+ {
+ manager.OnRefreshFairyList -= OnRefreshFairyList;
+ scroller.OnRefreshCell -= OnRefreshCell;
+ }
+
+ public void Display()
+ {
+ ShowTop3();
+ CreateScroller();
+ ShowMyRank();
+ }
+
+ void CreateScroller()
+ {
+ scroller.Refresh();
+ var cnt = manager.rankShowMaxCnt;
+ for (int i = 3; i < cnt; i++)
+ {
+ scroller.AddCell(ScrollerDataType.Header, i);
+ }
+ scroller.Restart();
+ }
+
+ void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<GuildRankCell>();
+ _cell.Display(cell.index + 1);
+ manager.ListenRankPage(cell.index);
+ }
+
+
+ void ShowTop3()
+ {
+ for (int i = 0; i < guildTop3Cells.Length; i++)
+ {
+ guildTop3Cells[i].Display(i + 1);
+ }
+ }
+
+ void ShowMyRank()
+ {
+ var mydata = manager.GetFairyData(PlayerDatas.Instance.fairyData.fairy.FamilyID);
+ if (mydata == null)
+ {
+ rankValueText.SetActive(false);
+ rankText.text = Language.Get("GuildRank04", Language.Get("L1045"));
+ return;
+ }
+ rankValueText.SetActive(true);
+ rankText.text = Language.Get("GuildRank04", mydata.Rank);
+ rankValueText.text = UIHelper.ReplaceLargeArtNum(mydata.totalFightPower);
+ }
+
+ void OnRefreshFairyList()
+ {
+ ShowTop3();
+ scroller.m_Scorller.RefreshActiveCellViews();
+ ShowMyRank();
+ }
+}
+
+
+
+
diff --git a/Main/System/BillboardRank/GuildRankWin.cs.meta b/Main/System/BillboardRank/GuildRankWin.cs.meta
new file mode 100644
index 0000000..5be58cd
--- /dev/null
+++ b/Main/System/BillboardRank/GuildRankWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 11ab1a04c61e9cb4090de376afd339fe
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/BillboardRank/GuildTop3Cell.cs b/Main/System/BillboardRank/GuildTop3Cell.cs
new file mode 100644
index 0000000..353809c
--- /dev/null
+++ b/Main/System/BillboardRank/GuildTop3Cell.cs
@@ -0,0 +1,61 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Wednesday, September 26, 2018
+//--------------------------------------------------------
+using UnityEngine;
+using UnityEngine.UI;
+
+//鐜╁閫氱敤鐨勫墠3鎺掑悕
+public class GuildTop3Cell : MonoBehaviour
+{
+ [SerializeField] Transform hasGuild;
+ [SerializeField] Transform noGuild;
+ [SerializeField] GuildEmblemCell emblemCell;
+ [SerializeField] Text nameText;
+ [SerializeField] Text countText;
+ [SerializeField] Text fightpowerText;
+ [SerializeField] Button queryGuildBtn;
+ GuildManager manager { get { return GuildManager.Instance; } }
+ public void Display(int rank)
+ {
+ var rankData = manager.GetFairyDataByRank(rank);
+ noGuild.SetActive(rankData == null);
+ hasGuild.SetActive(rankData != null);
+
+ if (rankData != null)
+ {
+ FamilyConfig familyConfig = FamilyConfig.Get(rankData.FamilyLV);
+ nameText.text = rankData.FamilyName;
+ countText.text = Language.Get("BoneField09", rankData.MemberCount, familyConfig == null ? 0 : familyConfig.MemberMax);
+ fightpowerText.text = UIHelper.ReplaceLargeArtNum(rankData.totalFightPower);
+ emblemCell.Display(rankData.EmblemID, rankData.EmblemWord, 0.7f);
+ }
+
+ queryGuildBtn.SetListener(() =>
+ {
+ if (rankData == null) return;
+ int familyID = rankData.FamilyID;
+ //鑷繁鐨勫叕浼�
+ if (PlayerDatas.Instance.fairyData.HasFairy && PlayerDatas.Instance.fairyData.fairy.FamilyID == familyID)
+ {
+ SysNotifyMgr.Instance.ShowTip("GuildTip01");
+ return;
+ }
+
+ if (!GuildManager.Instance.guildsDict.ContainsKey(familyID))
+ return;
+
+ if (!UIManager.Instance.IsOpened<GuildPreviewWin>())
+ {
+ UIManager.Instance.OpenWindow<GuildPreviewWin>(familyID);
+ }
+ });
+ }
+}
+
+
+
+
+
+
+
diff --git a/Main/System/BillboardRank/GuildTop3Cell.cs.meta b/Main/System/BillboardRank/GuildTop3Cell.cs.meta
new file mode 100644
index 0000000..5376bf5
--- /dev/null
+++ b/Main/System/BillboardRank/GuildTop3Cell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 74c09d94e4d372042bdb03ee92b93652
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Guild/GuildBaseWin.cs b/Main/System/Guild/GuildBaseWin.cs
index 82e55e7..1c88162 100644
--- a/Main/System/Guild/GuildBaseWin.cs
+++ b/Main/System/Guild/GuildBaseWin.cs
@@ -57,6 +57,10 @@
StoreModel.Instance.selectStoreFuncType = StoreFunc.Guild;
UIManager.Instance.OpenWindow<StoreBaseWin>();
});
+ rankBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<GuildRankWin>();
+ });
InitHawker();
talkBtn.AddListener(OnClickTalkButton);
talkBtn1.AddListener(OnClickTalkButton);
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index c3141b7..86c096c 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -222,6 +222,12 @@
config = FuncConfigConfig.Get("FamilyNote");
familyRecordMaxCount = int.Parse(config.Numerical1);
+
+
+ config = FuncConfigConfig.Get("FamilyBillboardSet");
+ rankShowMaxCnt = int.Parse(config.Numerical1);
+ pageCnt = int.Parse(config.Numerical2);
+ queryPointNum = int.Parse(config.Numerical3);
}
@@ -529,6 +535,60 @@
public List<int> pageIndexList = new List<int>(); //姝e父鏄寜椤垫煡璇紝椤哄簭娣诲姞鍗冲彲
public int curPageIndex;
public int totalPageCount;
+
+ public int lastPage = -1;
+ public int pageCnt; //姣忛〉鏌ヨ鏉℃暟
+ int queryPointNum; //鏌ヨ鐐�
+ public int rankShowMaxCnt;
+
+ public FairyData GetFairyDataByRank(int rank)
+ {
+ if (rank < 1)
+ return null;
+ int index = rank - 1;
+ FairyData fairyData = GetFairyDataByIndex(index);
+ return fairyData;
+ }
+
+ public FairyData GetFairyDataByIndex(int index)
+ {
+ if (pageIndexList.IsNullOrEmpty() || index < 0 || index >= pageIndexList.Count)
+ return null;
+ int fairyID = pageIndexList[index];
+ FairyData fairyData = GetFairyData(fairyID);
+ return fairyData;
+ }
+
+ public FairyData GetFairyData(int fairyID)
+ {
+ return guildsDict.TryGetValue(fairyID, out var data) ? data : null;
+ }
+
+ public void ResetQueryParam()
+ {
+ pageCnt = 20;
+ lastPage = -1;
+ queryPointNum = 12;
+ }
+
+ public void ListenRankPage(int index)
+ {
+ int page = index / pageCnt;
+ if (index > page * pageCnt + queryPointNum)
+ {
+ if (lastPage >= page)
+ return;
+ lastPage = page;
+
+ if (index >= rankShowMaxCnt)
+ {
+ //瓒呰繃鏈嶅姟鍣ㄥ凡涓婃鐨勬�绘暟閲忥紝姣斿鎬绘鍗曟槸100鍚嶏紝褰撳墠鍙湁8鍚嶇帺瀹朵笂姒滐紝寰�涓嬫粴鍔ㄥ氨涓嶅啀鏌ヨ
+ return;
+ }
+ //Debug.LogFormat("鍒嗛〉鏌ヨ锛氳姹傜 {0} 椤� (褰撳墠index:{1})", page + 1, index);
+ SendFindGuild(string.Empty, page + 1, pageCnt);
+ }
+ }
//鏌ユ壘鍏細鍒楄〃
public void OnRefreshGuildViewList(HA523_tagMCFamilyViewList vNetData)
@@ -971,7 +1031,6 @@
}
#endregion
-
#region 绾㈢偣
--
Gitblit v1.8.0