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/System/Guild/PlayerFairyData.cs | 62 +++++++++++++++++++++++--------
1 files changed, 46 insertions(+), 16 deletions(-)
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;
--
Gitblit v1.8.0