From 5a4e34c8a85737c0fa5b5775122da31155cbaef3 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 09 二月 2026 14:46:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/Guild/PlayerFairyData.cs |   74 ++++++++++++++++++++++++++++--------
 1 files changed, 57 insertions(+), 17 deletions(-)

diff --git a/Main/System/Guild/PlayerFairyData.cs b/Main/System/Guild/PlayerFairyData.cs
index 7b21d7f..48909d9 100644
--- a/Main/System/Guild/PlayerFairyData.cs
+++ b/Main/System/Guild/PlayerFairyData.cs
@@ -2,6 +2,7 @@
 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
+using System.Linq;
 
 
 /** 鐜╁浠欑洘鐩稿叧淇℃伅缂撳瓨鏁版嵁 */
@@ -28,11 +29,11 @@
 
     // 0-鎴愬憳锛�1-绮捐嫳锛�2-鍓洘涓伙紝3-鐩熶富
     public int leaderID;
-    // // 绮捐嫳
-    public List<int> elitePlayerIDList = new List<int>();
+    public string leaderName;
     // // 鍓洘涓�
     public List<int> deputyLeaderPlayerIDList = new List<int>();
 
+    //宸紓鏇存柊 闇�澧炲垹鏀� memberDic memberIDList deputyLeaderPlayerIDList
     public void OnRefreshGuildInfo(HA520_tagMCRoleFamilyInfo vNetData)
     {
         if (fairy == null)
@@ -51,13 +52,10 @@
         fairy.totalFightPower = vNetData.FightPowerEx * Constants.ExpPointValue + vNetData.FightPower;
         fairy.Broadcast = vNetData.Broadcast;
         fairy.LeaderID = (int)vNetData.LeaderID;
-        fairy.MemberCount = vNetData.MemberCount;
 
-        mine = null;
+        fairy.lastChangeNameTick = (int)vNetData.Extra1;
 
-        memberDic.Clear();
-        memberIDList.Clear();
-        deputyLeaderPlayerIDList.Clear();
+
         for (int i = 0; i < vNetData.MemberCount; i++)
         {
             FairyMember member = new FairyMember();
@@ -88,26 +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)
@@ -115,6 +147,11 @@
         FairyMember member = null;
         memberDic.TryGetValue(playerid, out member);
         return member;
+    }
+
+    public List<int> GetMemberIDList()
+    {
+        return memberDic.Keys.ToList();
     }
 
 
@@ -136,6 +173,7 @@
         memberDic.Clear();
         memberIDList.Clear();
         leaderID = 0;
+        leaderName = string.Empty;
     }
 
     int SortMember(int id1, int id2)
@@ -178,7 +216,9 @@
     public long totalFightPower;
     public string Broadcast;
     public int LeaderID;    //鏃忛暱鐜╁ID
+    public int LeaderServerID;  //鏃忛暱鏈嶅姟鍣↖D
     public int MemberCount;
+    public int lastChangeNameTick;
 
     //鏌ユ壘澧炲姞鐨勫瓧娈�
     public string LeaderName;
@@ -209,7 +249,7 @@
 public class FairyApply
 {
     public int PlayerID;
-    public string Name;      
+    public string Name;
     public int ReqTime;        //鐢宠鏃堕棿鎴�
     public int LV;        //绛夌骇
     public int Job;        //鑱屼笟
@@ -217,7 +257,7 @@
     public int Face;        //鍩烘湰鑴稿瀷
     public int FacePic;        //澶村儚妗�
     public int TitleID;        //绉板彿
-    public long FightPower;     
+    public long FightPower;
     public int ServerID;        //鎵�灞炲尯鏈岻D
     public int IsOnLine;        //鏄惁鍦ㄧ嚎
 }

--
Gitblit v1.8.0