From fe875fa59696d362d148f4d0b76256d1dd58f93f Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 04 二月 2026 23:51:55 +0800
Subject: [PATCH] 66 【公会】基础主体

---
 Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs.meta    |    2 
 Main/Utility/TimeUtility.cs                                                                 |    9 +
 Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs         |   12 +
 Main/System/Guild/ServersSmallTipCell.cs.meta                                               |    2 
 Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs                |   21 +++
 Main/System/Guild/GuildJoinWin.cs                                                           |    6 
 Main/System/Guild/ServersSmallTipWin.cs                                                     |   66 +++++++++
 Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs.meta |    2 
 Main/System/Guild/ServersSmallTipCell.cs                                                    |   29 ++++
 Main/Core/NetworkPackage/ServerPack/HA5_Family/HA520_tagMCRoleFamilyInfo.cs                 |    2 
 Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs.meta           |    2 
 Main/System/Guild/PlayerFairyData.cs                                                        |   62 ++++++--
 Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs      |   12 +
 Main/System/Guild/GuildManager.cs                                                           |   37 ----
 Main/System/Guild/GuildOPWin.cs                                                             |    1 
 Main/System/Guild/GuildManager.CrossServer.cs                                               |   52 +++++++
 Main/System/Guild/GuildChangeNameWin.cs                                                     |    6 
 /dev/null                                                                                   |   11 -
 Main/Utility/UIHelper.cs                                                                    |   10 +
 Main/System/Guild/GuildHallWin.cs                                                           |    1 
 Main/System/Guild/GuildManager.CrossServer.cs.meta                                          |    2 
 Main/System/Guild/ServersSmallTipWin.cs.meta                                                |    2 
 Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs                                        |    3 
 Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs                 |    2 
 Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs.meta              |    2 
 Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs                   |   23 +++
 Main/System/Guild/GuildBaseWin.cs                                                           |    1 
 Main/System/HeroUI/HeroUIManager.cs                                                         |    1 
 28 files changed, 305 insertions(+), 76 deletions(-)

diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA626_tagCMGetFamilyInfo.cs b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA626_tagCMGetFamilyInfo.cs
deleted file mode 100644
index 36a6ef6..0000000
--- a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA626_tagCMGetFamilyInfo.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using UnityEngine;
-using System.Collections;
-
-// A6 26 璇锋眰瀹舵棌鎴愬憳鍒楄〃 #tagCMGetFamilyInfo
-
-public class CA626_tagCMGetFamilyInfo : GameNetPackBasic {
-
-    public CA626_tagCMGetFamilyInfo () {
-        combineCmd = (ushort)0x03FE;
-        _cmd = (ushort)0xA626;
-    }
-
-    public override void WriteToBytes () {
-    }
-
-}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA626_tagCMGetFamilyInfo.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA626_tagCMGetFamilyInfo.cs.meta
deleted file mode 100644
index 170af80..0000000
--- a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA626_tagCMGetFamilyInfo.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 32dffab7fe30a854694d5714937a2dfe
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs
new file mode 100644
index 0000000..ce0323e
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 05 鍏細璺ㄦ湇浜掗�氫俊鎭� #tagSCFamilyCrossInfo
+
+public class DTCA505_tagSCFamilyCrossInfo : DtcBasic {
+    public override void Done(GameNetPackBasic vNetPack) {
+        base.Done(vNetPack);
+        HA505_tagSCFamilyCrossInfo vNetData = vNetPack as HA505_tagSCFamilyCrossInfo;
+        GuildManager.Instance.OnRefreshCrossServerInfo(vNetData);
+    }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs.meta
similarity index 83%
rename from Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
rename to Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs.meta
index 4c9b26c..6ba0999 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA505_tagSCFamilyCrossInfo.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 95872d70a4fcdaf47a7089e954db72fb
+guid: b6a841aca303f3d4bb7fa214596b9fb4
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs
deleted file mode 100644
index 22891b0..0000000
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using UnityEngine;
-using System.Collections;
-
-// A5 21 瀹舵棌鍙樻洿 #tagMCFamilyChange
-
-public class DTCA521_tagMCFamilyChange : DtcBasic {
-    public override void Done(GameNetPackBasic vNetPack) {
-        base.Done(vNetPack);
-        HA521_tagMCFamilyChange vNetData = vNetPack as HA521_tagMCFamilyChange;
-        GuildManager.Instance.UpdateGuildDataChangeMark(vNetData);
-    }
-}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs
new file mode 100644
index 0000000..730dd42
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 24 鍏細鎴愬憳鍒犻櫎 #tagSCFamilyMemDel
+
+public class DTCA524_tagSCFamilyMemDel : DtcBasic {
+    public override void Done(GameNetPackBasic vNetPack) {
+        base.Done(vNetPack);
+        HA524_tagSCFamilyMemDel vNetData = vNetPack as HA524_tagSCFamilyMemDel;
+        PlayerDatas.Instance.fairyData.DeleteMember(vNetData);
+    }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs.meta
similarity index 83%
copy from Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
copy to Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs.meta
index 4c9b26c..76bf18d 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA524_tagSCFamilyMemDel.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 95872d70a4fcdaf47a7089e954db72fb
+guid: de4a083265d8ebf438ab2e65d0925d9e
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index 01570dc..61060a4 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -110,7 +110,8 @@
         Register(typeof(HA512_tagMCFamilyZhenbaogeInfo), typeof(DTCA512_tagMCFamilyZhenbaogeInfo));
         Register(typeof(HA513_tagMCFamilyActionInfo), typeof(DTCA513_tagMCFamilyActionInfo));
         Register(typeof(HA520_tagMCRoleFamilyInfo), typeof(DTCA520_tagMCRoleFamilyInfo));
-        Register(typeof(HA521_tagMCFamilyChange), typeof(DTCA521_tagMCFamilyChange));
+        Register(typeof(HA524_tagSCFamilyMemDel), typeof(DTCA524_tagSCFamilyMemDel));
+        Register(typeof(HA505_tagSCFamilyCrossInfo), typeof(DTCA505_tagSCFamilyCrossInfo));
         Register(typeof(HA522_tagMCFamilyReqJoinInfo), typeof(DTCA522_tagMCFamilyReqJoinInfo));
         Register(typeof(HA523_tagMCFamilyViewList), typeof(DTCA523_tagMCFamilyViewList));
         Register(typeof(HA009_tagSCGameRecInfo), typeof(DTCA009_tagSCGameRecInfo));
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs
new file mode 100644
index 0000000..99b8181
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs
@@ -0,0 +1,21 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 05 鍏細璺ㄦ湇浜掗�氫俊鎭� #tagSCFamilyCrossInfo
+
+public class HA505_tagSCFamilyCrossInfo : GameNetPackBasic {
+    public byte ZoneID;    // 鎵�灞炲垎鍖�
+    public ushort ServerCnt;
+    public  uint[] ServerIDList;    // 浜掗�氭湇鍔″櫒ID鍒楄〃
+
+    public HA505_tagSCFamilyCrossInfo () {
+        _cmd = (ushort)0xA505;
+    }
+
+    public override void ReadFromBytes (byte[] vBytes) {
+        TransBytes (out ZoneID, vBytes, NetDataType.BYTE);
+        TransBytes (out ServerCnt, vBytes, NetDataType.WORD);
+        TransBytes (out ServerIDList, vBytes, NetDataType.DWORD, ServerCnt);
+    }
+
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs.meta
similarity index 83%
copy from Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
copy to Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs.meta
index 4c9b26c..f0abc6f 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA505_tagSCFamilyCrossInfo.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 95872d70a4fcdaf47a7089e954db72fb
+guid: 2975d104ad2db9747a57b40c35de08e2
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA520_tagMCRoleFamilyInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA520_tagMCRoleFamilyInfo.cs
index 747ce8f..23e1d66 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA520_tagMCRoleFamilyInfo.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA520_tagMCRoleFamilyInfo.cs
@@ -20,6 +20,7 @@
     public uint LeaderID;    //鏃忛暱鐜╁ID
     public byte MemberCount;    //浜烘暟
     public  tagMCRoleFamilyMember[] MemberList;    //size = MemberCount
+    public uint Extra1;    //闄勫姞瀛楁1
 
     public HA520_tagMCRoleFamilyInfo () {
         _cmd = (ushort)0xA520;
@@ -64,6 +65,7 @@
             TransBytes (out MemberList[i].DonateCntDay, vBytes, NetDataType.BYTE);
             TransBytes (out MemberList[i].OffTime, vBytes, NetDataType.DWORD);
         }
+        TransBytes (out Extra1, vBytes, NetDataType.DWORD);
     }
 
     public class tagMCRoleFamilyMember {
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA521_tagMCFamilyChange.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA521_tagMCFamilyChange.cs
deleted file mode 100644
index 79786a7..0000000
--- a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA521_tagMCFamilyChange.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using UnityEngine;
-using System.Collections;
-
-// A5 21 瀹舵棌鍙樻洿 #tagMCFamilyChange
-
-public class HA521_tagMCFamilyChange : GameNetPackBasic {
-    public byte Type;
-
-    public HA521_tagMCFamilyChange () {
-        _cmd = (ushort)0xA521;
-    }
-
-    public override void ReadFromBytes (byte[] vBytes) {
-        TransBytes (out Type, vBytes, NetDataType.BYTE);
-    }
-
-}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA521_tagMCFamilyChange.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA521_tagMCFamilyChange.cs.meta
deleted file mode 100644
index d1f2c26..0000000
--- a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA521_tagMCFamilyChange.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 8aec250ed756e2e40a3fad27b904620d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs
index 9f3c56e..f643e36 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs
@@ -11,6 +11,7 @@
     public byte TotalPage;    //涓�鍏辨湁澶氬皯椤�
     public byte FamilyCount;
     public  tagMCFamilyView[] FamilyList;    //鏈〉瀹舵棌淇℃伅鍒楄〃
+    public uint Rank;    //鐜╁鍏細鎵�鍦ㄥ悕娆★紝0-娌℃湁鍏細鎴栨病鏈夊湪姒滀笂锛�>0-瀵瑰簲鎺掑悕
 
     public HA523_tagMCFamilyViewList () {
         _cmd = (ushort)0xA523;
@@ -43,6 +44,7 @@
             TransBytes (out FamilyList[i].FightPowerEx, vBytes, NetDataType.DWORD);
             TransBytes (out FamilyList[i].MemberCount, vBytes, NetDataType.BYTE);
         }
+        TransBytes (out Rank, vBytes, NetDataType.DWORD);
     }
 
     public class tagMCFamilyView {
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs
new file mode 100644
index 0000000..08d664f
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs
@@ -0,0 +1,23 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 24 鍏細鎴愬憳鍒犻櫎 #tagSCFamilyMemDel
+
+public class HA524_tagSCFamilyMemDel : GameNetPackBasic {
+    public byte Type;    // 0-韪㈠嚭锛�1-涓诲姩閫�鍑�
+    public uint PlayerID;
+    public byte NameLen;
+    public string Name;
+
+    public HA524_tagSCFamilyMemDel () {
+        _cmd = (ushort)0xA524;
+    }
+
+    public override void ReadFromBytes (byte[] vBytes) {
+        TransBytes (out Type, vBytes, NetDataType.BYTE);
+        TransBytes (out PlayerID, vBytes, NetDataType.DWORD);
+        TransBytes (out NameLen, vBytes, NetDataType.BYTE);
+        TransBytes (out Name, vBytes, NetDataType.Chars, NameLen);
+    }
+
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs.meta
similarity index 83%
copy from Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
copy to Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs.meta
index 4c9b26c..a9bc564 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA524_tagSCFamilyMemDel.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 95872d70a4fcdaf47a7089e954db72fb
+guid: 824719d9672072944a5ff55b15e93e52
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Guild/GuildBaseWin.cs b/Main/System/Guild/GuildBaseWin.cs
index 1b3a829..7d223e0 100644
--- a/Main/System/Guild/GuildBaseWin.cs
+++ b/Main/System/Guild/GuildBaseWin.cs
@@ -72,7 +72,6 @@
         if (PlayerDatas.Instance.fairyData.fairy == null)
             return;
 
-        GuildManager.Instance.RequestGuildData();
         GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
         GlobalTimeEvent.Instance.fiveSecondEvent += OnFiveSecondEvent;
         ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent;
diff --git a/Main/System/Guild/GuildChangeNameWin.cs b/Main/System/Guild/GuildChangeNameWin.cs
index 8992a21..0b1e90b 100644
--- a/Main/System/Guild/GuildChangeNameWin.cs
+++ b/Main/System/Guild/GuildChangeNameWin.cs
@@ -46,10 +46,10 @@
 
     void ShowTime()
     {
-        if (GuildManager.Instance.TryGetFamilyActions(GuildManager.CustomyActionType, out var familyActions))
+        if (PlayerDatas.Instance.fairyData.fairy != null)
         {
-            var lastTime = familyActions.IsNullOrEmpty() ? 0 : familyActions[0].Value1;
-            var cdTime = GuildManager.Instance.renameFairyNameCD * 3600 - (TimeUtility.AllSeconds - (int)lastTime);
+            var lastTime = PlayerDatas.Instance.fairyData.fairy.lastChangeNameTick;
+            var cdTime = GuildManager.Instance.renameFairyNameCD * 3600 - (TimeUtility.AllSeconds - lastTime);
             if (cdTime <= 0)
             {
                 cdTimeText.text = Language.Get("Guild_51", GuildManager.Instance.renameFairyNameCD);
diff --git a/Main/System/Guild/GuildHallWin.cs b/Main/System/Guild/GuildHallWin.cs
index e98d296..7f34388 100644
--- a/Main/System/Guild/GuildHallWin.cs
+++ b/Main/System/Guild/GuildHallWin.cs
@@ -62,7 +62,6 @@
 
     protected override void OnPreOpen()
     {
-        GuildManager.Instance.RequestGuildData();
 
         GuildManager.Instance.memberOPIndex = -1;
         GuildManager.Instance.MemberOPIndexEvent += OnMemberOPIndexEvent;
diff --git a/Main/System/Guild/GuildJoinWin.cs b/Main/System/Guild/GuildJoinWin.cs
index ce028c5..476e0c3 100644
--- a/Main/System/Guild/GuildJoinWin.cs
+++ b/Main/System/Guild/GuildJoinWin.cs
@@ -14,6 +14,7 @@
     [SerializeField] Button quicklyJoinGuildBtn;
     [SerializeField] ScrollerController guildListScroller;
     [SerializeField] Transform noGuildTf;
+    [SerializeField] Button serversBtn;
 
     string lastQuery = "";
     int lastPage = 0;
@@ -22,6 +23,10 @@
         findBtn.AddListener(() => OnFindBtnClick());
         createGuildBtn.AddListener(OnCreateGuildBtnClick);
         quicklyJoinGuildBtn.AddListener(OnQuicklyJoinGuildBtnClick);
+        serversBtn.AddListener(()=>
+        {
+            UIHelper.ShowServersPanel(GuildManager.Instance.crossServerIDList);
+        });
     }
     protected override void OnPreOpen()
     {
@@ -55,6 +60,7 @@
 
     void Display()
     {
+        serversBtn.SetActive(GuildManager.Instance.zoneID != 0);
         CreateScroller();
     }
 
diff --git a/Main/System/Guild/GuildManager.CrossServer.cs b/Main/System/Guild/GuildManager.CrossServer.cs
new file mode 100644
index 0000000..9c96c0f
--- /dev/null
+++ b/Main/System/Guild/GuildManager.CrossServer.cs
@@ -0,0 +1,52 @@
+
+
+// 璺ㄦ湇鍏細
+using System;
+using System.Collections.Generic;
+
+public partial class GuildManager : GameSystemManager<GuildManager>
+{
+    public int zoneID;
+    public List<int> crossServerIDList = new List<int>();
+    public event Action OnRefreshCrossServerInfoEvent;
+
+    public void OnRefreshCrossServerInfo(HA505_tagSCFamilyCrossInfo vNetData)
+    {
+        zoneID = vNetData.ZoneID;
+        crossServerIDList.Clear();
+        for (int i = 0; i < vNetData.ServerCnt; i++)
+        {
+            crossServerIDList.Add((int)vNetData.ServerIDList[i]);
+        }
+        crossServerIDList.Sort();
+        OnRefreshCrossServerInfoEvent?.Invoke();
+    }
+
+    // 鑾峰彇褰撳墠鏃堕棿, 鍏細璺ㄥ尯鍓嶅彇鏈湇鏃堕棿锛岃法鏈嶅悗鍙栬法鏈嶆椂闂�
+    public DateTime GetServerNow()
+    {
+        if (zoneID == 0)
+        {
+            return TimeUtility.ServerNow;
+        }
+        else
+        {
+            return TimeUtility.CrossServerNow;
+        }
+    }
+
+    public int GetServerTick()
+    {
+        if (zoneID == 0)
+        {
+            return TimeUtility.AllSeconds;
+        }
+        else
+        {
+            return TimeUtility.AllSecondsCrossServer;
+        }
+    }
+
+
+}
+
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta b/Main/System/Guild/GuildManager.CrossServer.cs.meta
similarity index 83%
copy from Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
copy to Main/System/Guild/GuildManager.CrossServer.cs.meta
index 4c9b26c..4e8b895 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
+++ b/Main/System/Guild/GuildManager.CrossServer.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 95872d70a4fcdaf47a7089e954db72fb
+guid: 60391b6aaece70d44818911cfde90870
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 8336836..9c6bb19 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -8,10 +8,9 @@
 using UnityEngine;
 
 
-public class GuildManager : GameSystemManager<GuildManager>
+public partial class GuildManager : GameSystemManager<GuildManager>
 {
     // 瀹舵棌鑷畾涔夎褰曠被鍨�
-    public const int CustomyActionType = 0;     //閫氱敤
     public const int MemberChangeActionType = 12;      //鍏細鍙樻洿璁板綍
     public const int FamilyActionsType = 15;     // 鍏細璁板綍寰界珷绫诲瀷15
     public const int ZBGFamilyActionType = 16;  // 鐝嶅疂闃佽褰曠被鍨�
@@ -75,7 +74,6 @@
 
     void OnBeforePlayerDataInitializeEx()
     {
-        guildChanged = false;
         isQueryZBGYet = false;
     }
 
@@ -98,7 +96,6 @@
         PlayerDatas.Instance.baseData.FamilyId = 0;
         m_FairyRequesteds.Clear();
         familyActions.Clear();
-        guildChanged = false;
         applyList.Clear();
         PlayerDatas.Instance.fairyData.ClearData();
 
@@ -537,6 +534,7 @@
 
     // 鏌ユ壘鐨勫叕浼欼D锛氬叕浼氭暟鎹�
     public Dictionary<int, FairyData> guildsDict = new Dictionary<int, FairyData>();
+    public int myFairyRank;
     // 鎸夋煡璇㈤〉瀛樺偍
     public List<int> pageIndexList = new List<int>();  //姝e父鏄寜椤垫煡璇紝椤哄簭娣诲姞鍗冲彲
     public int curPageIndex;
@@ -622,7 +620,7 @@
             SetFairyViewData(data, guildInfo);
             pageIndexList.Add((int)guildInfo.FamilyID);
         }
-
+        myFairyRank = (int)vNetData.Rank;   //0-娌℃湁鍏細鎴栨病鏈夊湪姒滀笂锛�>0-瀵瑰簲鎺掑悕
 
         if (OnRefreshFairyList != null)
         {
@@ -872,35 +870,6 @@
     }
     #endregion
 
-    float lastChangeMarkTime = 0;   //鎵撳紑鐣岄潰鎯呭喌涓嬮伩鍏嶇煭鏃堕棿澶氭绔嬪嵆璇锋眰锛孋/S閫氫俊涔熸槸鏈夋椂闂撮棿闅�
-    public bool guildChanged = false;
-    //Type锛�0-鏃狅紱1-鎴愬憳鍔犲叆锛�2-鎴愬憳閫�鍑猴紱3-鏀朵汉璁剧疆淇敼锛�4-鍏憡淇敼锛�5-寰界珷淇敼锛�6-鐩熶富鍙樻洿锛�7-鎴愬憳鑱屼綅鍙樻洿锛�8-鎴愬憳涓婄嚎锛�9-鎴愬憳绂荤嚎锛�
-    //鍏細鏁版嵁鍙樺寲锛岃姹傛柊鐨勫叕浼氫俊鎭紝濡傚湪鎵撳紑鍏細鍒楄〃鏃惰姹傦紝鍏朵粬鍔熻兘鏍规嵁鑷韩鎯呭喌璇锋眰
-    public void UpdateGuildDataChangeMark(HA521_tagMCFamilyChange netPack)
-    {
-        guildChanged = true;
-        if (Time.time - lastChangeMarkTime < 0.2f)
-        {
-            //灏忎紭鍖� 濡傛灉鏈夐棶棰樹篃鍙互鍘婚櫎
-            return;
-        }
-        lastChangeMarkTime = Time.time;
-        if ((netPack.Type == 1 || netPack.Type == 2) && UIManager.Instance.IsOpened<GuildBaseWin>())
-        {
-            RequestGuildData();
-        }
-    }
-
-    public void RequestGuildData()
-    {
-        if (guildChanged)
-        {
-            guildChanged = false;
-            var pack = new CA626_tagCMGetFamilyInfo();
-            GameNetSystem.Instance.SendInfo(pack);
-
-        }
-    }
 
     public void SendKickFairy(uint playerID)
     {
diff --git a/Main/System/Guild/GuildOPWin.cs b/Main/System/Guild/GuildOPWin.cs
index aecd11e..7e272b7 100644
--- a/Main/System/Guild/GuildOPWin.cs
+++ b/Main/System/Guild/GuildOPWin.cs
@@ -50,7 +50,6 @@
 
     protected override void OnPreOpen()
     {
-        GuildManager.Instance.RequestGuildData();
 
         PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
         Display();
diff --git a/Main/System/Guild/PlayerFairyData.cs b/Main/System/Guild/PlayerFairyData.cs
index 29e2508..4ff88c4 100644
--- a/Main/System/Guild/PlayerFairyData.cs
+++ b/Main/System/Guild/PlayerFairyData.cs
@@ -30,11 +30,10 @@
     // 0-鎴愬憳锛�1-绮捐嫳锛�2-鍓洘涓伙紝3-鐩熶富
     public int leaderID;
     public string leaderName;
-    // // 绮捐嫳
-    public List<int> elitePlayerIDList = new List<int>();
     // // 鍓洘涓�
     public List<int> deputyLeaderPlayerIDList = new List<int>();
 
+    //宸紓鏇存柊 闇�澧炲垹鏀� memberDic memberIDList deputyLeaderPlayerIDList
     public void OnRefreshGuildInfo(HA520_tagMCRoleFamilyInfo vNetData)
     {
         if (fairy == null)
@@ -53,13 +52,10 @@
         fairy.totalFightPower = vNetData.FightPowerEx * Constants.ExpPointValue + vNetData.FightPower;
         fairy.Broadcast = vNetData.Broadcast;
         fairy.LeaderID = (int)vNetData.LeaderID;
-        fairy.MemberCount = vNetData.MemberCount;
+        
+        fairy.lastChangeNameTick = (int)vNetData.Extra1;
 
-        mine = null;
 
-        memberDic.Clear();
-        memberIDList.Clear();
-        deputyLeaderPlayerIDList.Clear();
         for (int i = 0; i < vNetData.MemberCount; i++)
         {
             FairyMember member = new FairyMember();
@@ -90,27 +86,60 @@
                 OnRefreshFairyMine?.Invoke();
             }
 
+
+
             // 0-鎴愬憳锛�1-绮捐嫳锛�2-鍓洘涓伙紝3-鐩熶富
 
-            // if (member.FmLV == 1)
-            // {
-            //     elitePlayerIDList.Add(member.PlayerID);
-            // }
-            if (member.FmLV == 2)
+            if (deputyLeaderPlayerIDList.Contains(member.PlayerID) && member.FmLV != 2)
             {
+                deputyLeaderPlayerIDList.Remove(member.PlayerID);
+            }
+            else if (member.FmLV == 2 && !deputyLeaderPlayerIDList.Contains(member.PlayerID))
+            {
+                // 瀵瑰簲鐨勫彉鏇� 鍜� 閫�鍑洪渶鍚屾淇敼
                 deputyLeaderPlayerIDList.Add(member.PlayerID);
             }
+
+
             if (member.FmLV == 3)
             {
-                leaderID = (int)member.PlayerID;
+                leaderID = member.PlayerID;
                 leaderName = member.Name;
+
             }
         }
-
-        memberIDList.AddRange(memberDic.Keys);
-        memberIDList.Sort(SortMember);
+        
+        if (mine.FmLV == 3 && mine.PlayerID != leaderID)
+        {
+            mine.FmLV = 0;
+        }
+        RefreshMemberIDList();
 
         if (OnRefreshFairyInfo != null) OnRefreshFairyInfo();
+    }
+
+
+    public void DeleteMember(HA524_tagSCFamilyMemDel netPack)
+    {
+        if (memberDic.ContainsKey((int)netPack.PlayerID))
+        {
+            memberDic.Remove((int)netPack.PlayerID);
+            RefreshMemberIDList();
+        }
+        if (deputyLeaderPlayerIDList.Contains((int)netPack.PlayerID))
+        {
+            deputyLeaderPlayerIDList.Remove((int)netPack.PlayerID);
+        }
+
+        OnRefreshFairyInfo?.Invoke();
+    }
+
+    void RefreshMemberIDList()
+    {
+        memberIDList.Clear();
+        memberIDList.AddRange(memberDic.Keys);
+        memberIDList.Sort(SortMember);
+        fairy.MemberCount = memberIDList.Count;
     }
 
     public FairyMember GetMember(int playerid)
@@ -188,6 +217,7 @@
     public string Broadcast;
     public int LeaderID;    //鏃忛暱鐜╁ID
     public int MemberCount;
+    public int lastChangeNameTick;
 
     //鏌ユ壘澧炲姞鐨勫瓧娈�
     public string LeaderName;
diff --git a/Main/System/Guild/ServersSmallTipCell.cs b/Main/System/Guild/ServersSmallTipCell.cs
new file mode 100644
index 0000000..57c3f94
--- /dev/null
+++ b/Main/System/Guild/ServersSmallTipCell.cs
@@ -0,0 +1,29 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+
+
+public class ServersSmallTipCell : CellView
+{
+    [SerializeField] Text[] serversText;
+
+
+
+    public void Display(int index)
+    {
+        for (int i = 0; i < serversText.Length; i++)
+        {
+            int listIndex = index + i;
+            if (listIndex >= ServersSmallTipWin.serverIDList.Count)
+            {
+                serversText[i].text = "";
+                return;
+            }
+            serversText[i].SetActive(true);
+            var serverID = ServersSmallTipWin.serverIDList[index + i];
+            serversText[i].text = ServerListCenter.Instance.GetServerName(serverID);
+        }
+    }
+
+
+}
+
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta b/Main/System/Guild/ServersSmallTipCell.cs.meta
similarity index 83%
copy from Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
copy to Main/System/Guild/ServersSmallTipCell.cs.meta
index 4c9b26c..f9fe205 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
+++ b/Main/System/Guild/ServersSmallTipCell.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 95872d70a4fcdaf47a7089e954db72fb
+guid: 36a723a4b576693468a90ba111d5b58c
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Guild/ServersSmallTipWin.cs b/Main/System/Guild/ServersSmallTipWin.cs
new file mode 100644
index 0000000..7c5fe49
--- /dev/null
+++ b/Main/System/Guild/ServersSmallTipWin.cs
@@ -0,0 +1,66 @@
+锘縰sing System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+public class ServersSmallTipWin : UIBase
+{
+    [SerializeField] RectTransform content;
+    [SerializeField] RectTransform arrow;
+    [SerializeField] ScrollerController serversScroller;
+
+    public static List<int> serverIDList;
+    protected override void OnPreOpen()
+    {
+        serversScroller.OnRefreshCell += OnRefreshCell;
+        Display();
+    }
+
+    protected override void OnPreClose()
+    {
+        serversScroller.OnRefreshCell -= OnRefreshCell;
+    }
+
+
+    protected override void NextFrameAfterOpen()
+    {
+        var worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
+
+
+        Vector2 screenAdjustedPos = CameraManager.uiCamera.WorldToScreenPoint(worldPos);
+
+        var beforePos = screenAdjustedPos;
+        var beforeAdjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(beforePos);
+
+        var rectWidth = content.rect.width * Screen.width / canvasScaler.referenceResolution.x;
+        screenAdjustedPos.x = Mathf.Clamp(screenAdjustedPos.x, rectWidth * 0.5f, Screen.width - rectWidth * 0.5f);
+        screenAdjustedPos.y -= 40;
+        var adjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(screenAdjustedPos);
+        adjustedPos.z = 0;
+        content.position = adjustedPos;
+
+        arrow.position = new Vector3(beforeAdjustedPos.x, arrow.position.y, 0);
+    }
+    
+
+    public void Display()
+    {
+        serversScroller.Refresh();
+        for (int i = 0; i < serverIDList.Count; i++)
+        {
+            if (i % 4 == 0)
+            {
+                serversScroller.AddCell(ScrollerDataType.Header, i);
+            }
+        }
+        serversScroller.Restart();
+    }
+
+    void OnRefreshCell(ScrollerDataType type, CellView cell)
+    {
+        var _cell = cell.GetComponent<ServersSmallTipCell>();
+        _cell.Display(cell.index);
+    }
+
+
+
+}
+
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta b/Main/System/Guild/ServersSmallTipWin.cs.meta
similarity index 83%
copy from Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
copy to Main/System/Guild/ServersSmallTipWin.cs.meta
index 4c9b26c..26a8c36 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA521_tagMCFamilyChange.cs.meta
+++ b/Main/System/Guild/ServersSmallTipWin.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 95872d70a4fcdaf47a7089e954db72fb
+guid: d3c0b72418f3c5345ba779c8382e0eb0
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/HeroUI/HeroUIManager.cs b/Main/System/HeroUI/HeroUIManager.cs
index a8aa796..68f9182 100644
--- a/Main/System/HeroUI/HeroUIManager.cs
+++ b/Main/System/HeroUI/HeroUIManager.cs
@@ -2,7 +2,6 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
-using Jace.Operations;
 using LitJson;
 
 using UnityEngine;
diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index 709eb44..ed856e8 100644
--- a/Main/Utility/TimeUtility.cs
+++ b/Main/Utility/TimeUtility.cs
@@ -100,6 +100,15 @@
         }
     }
 
+    public static int AllSecondsCrossServer
+    {
+        get
+        {
+            TimeSpan t = CrossServerNow - OriginalTime;
+            return (int)t.TotalSeconds;
+        }
+    }
+
     //1骞翠腑鐨勭鍑犲懆锛屼互鏈嶅姟绔负鍑嗭紝python鍜宑#绠楀嚭鏉ヤ笉涓�鏍�
     public static int WeekOfYear
     {
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index e4ebbab..15927ac 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -1509,4 +1509,14 @@
     }
 
 
+    public static void ShowServersPanel(List<int> serverIDList)
+    {
+        if (UIManager.Instance.IsOpened<ServersSmallTipWin>())
+        {
+            UIManager.Instance.CloseWindow<ServersSmallTipWin>();
+        }
+        ServersSmallTipWin.serverIDList = serverIDList;
+        UIManager.Instance.OpenWindow<ServersSmallTipWin>();
+    }
+
 }

--
Gitblit v1.8.0