yyl
2026-02-09 5a4e34c8a85737c0fa5b5775122da31155cbaef3
Main/System/Guild/PlayerFairyData.cs
@@ -29,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)
@@ -52,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();
@@ -89,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)
@@ -142,6 +173,7 @@
        memberDic.Clear();
        memberIDList.Clear();
        leaderID = 0;
        leaderName = string.Empty;
    }
    int SortMember(int id1, int id2)
@@ -184,7 +216,9 @@
    public long totalFightPower;
    public string Broadcast;
    public int LeaderID;    //族长玩家ID
    public int LeaderServerID;  //族长服务器ID
    public int MemberCount;
    public int lastChangeNameTick;
    //查找增加的字段
    public string LeaderName;
@@ -215,7 +249,7 @@
public class FairyApply
{
    public int PlayerID;
    public string Name;
    public string Name;
    public int ReqTime;        //申请时间戳
    public int LV;        //等级
    public int Job;        //职业
@@ -223,7 +257,7 @@
    public int Face;        //基本脸型
    public int FacePic;        //头像框
    public int TitleID;        //称号
    public long FightPower;
    public long FightPower;
    public int ServerID;        //所属区服ID
    public int IsOnLine;        //是否在线
}