From 60e4cc6cee9ebe586027a17c259609bb5b65b425 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 03 十二月 2025 22:45:29 +0800
Subject: [PATCH] 0312 公会行为记录整理

---
 Main/System/Guild/GuildManager.cs       |   49 +++++++++++++---
 Main/System/Guild/GuildBossManager.cs   |   31 +---------
 Main/System/Guild/GuildOPWin.cs         |    1 
 Main/System/Guild/GuildEmblemModel.cs   |   49 ++++++++++-----
 Main/System/Guild/GuildChangeNameWin.cs |    5 +
 Main/System/Guild/GuildBaseWin.cs       |    7 ++
 Main/System/Guild/GuildBossWin.cs       |    4 
 7 files changed, 89 insertions(+), 57 deletions(-)

diff --git a/Main/System/Guild/GuildBaseWin.cs b/Main/System/Guild/GuildBaseWin.cs
index 84305ce..d45e089 100644
--- a/Main/System/Guild/GuildBaseWin.cs
+++ b/Main/System/Guild/GuildBaseWin.cs
@@ -70,6 +70,7 @@
         GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
         GlobalTimeEvent.Instance.fiveSecondEvent += OnFiveSecondEvent;
         ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent;
+        PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
         Display();
     }
 
@@ -78,6 +79,12 @@
         GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
         GlobalTimeEvent.Instance.fiveSecondEvent -= OnFiveSecondEvent;
         ChatManager.Instance.OnUpdateTalkEvent -= OnUpdateTalkEvent;
+        PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
+    }
+
+    void OnRefreshFairyInfo()
+    {
+        ShowGuildInfo();
     }
 
     private void OnUpdateTalkEvent(ChatChannel channel, TalkData data)
diff --git a/Main/System/Guild/GuildBossManager.cs b/Main/System/Guild/GuildBossManager.cs
index 72b8fd7..107246f 100644
--- a/Main/System/Guild/GuildBossManager.cs
+++ b/Main/System/Guild/GuildBossManager.cs
@@ -77,43 +77,20 @@
     // "info":{"LV":106,"Job":1,"Name":"涓诲叕3016219","FacePic":0,"FightPower":1831995,"RealmLV":12,"ServerID":86,"TitleID":0,"Face":0},
     public HA513_tagMCFamilyActionInfo.tagMCFamilyAction GetGuildBossAction()
     {
-        GuildManager.Instance.TryGetFamilyActions(GuildManager.GuildBossActionType, out var familyActions);
-        if (familyActions == null)
-        {
-            return null;
-        }
-        foreach (var action in familyActions)
-        {
-            if (action.Value1 == 1)
-            {
-                return action;
-            }
-        }
+
         return null;
     }
 
-    int lastGuildBossTime;
 
     // 鑾峰彇鍏細涓殑浼ゅ璁板綍鍋氭帓鍚�
-    public void UpdateGuildBossInfo(HA513_tagMCFamilyActionInfo vNetData)
+    public bool UpdateGuildBossInfo(HA513_tagMCFamilyActionInfo vNetData)
     {
         if (vNetData.ActionType != GuildManager.GuildBossActionType)
         {
-            return;
+            return false;
         }
 
-        GuildManager.Instance.TryGetFamilyActions(GuildManager.GuildBossActionType, out var familyActions);
-        if (familyActions == null)
-        {
-            return;
-        }
-        foreach (var action in familyActions)
-        {
-            if (action.Value1 == 1)
-            {
-                return;
-            }
-        }
+        return true;
     }
 
 }
diff --git a/Main/System/Guild/GuildBossWin.cs b/Main/System/Guild/GuildBossWin.cs
index 435e12f..f51875b 100644
--- a/Main/System/Guild/GuildBossWin.cs
+++ b/Main/System/Guild/GuildBossWin.cs
@@ -69,7 +69,7 @@
     {
         GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
         PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh;
-        GuildManager.Instance.FamilyActionInfoEvent += OnFamilyActionInfoEvent;
+        // GuildManager.Instance.FamilyActionInfoEvent += OnFamilyActionInfoEvent;
         Display();
     }
 
@@ -77,7 +77,7 @@
     {
         GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
         PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
-        GuildManager.Instance.FamilyActionInfoEvent -= OnFamilyActionInfoEvent;
+        // GuildManager.Instance.FamilyActionInfoEvent -= OnFamilyActionInfoEvent;
     }
 
 
diff --git a/Main/System/Guild/GuildChangeNameWin.cs b/Main/System/Guild/GuildChangeNameWin.cs
index bd52a54..8992a21 100644
--- a/Main/System/Guild/GuildChangeNameWin.cs
+++ b/Main/System/Guild/GuildChangeNameWin.cs
@@ -1,5 +1,6 @@
 using System.Collections;
 using System.Collections.Generic;
+using System.Text;
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -83,8 +84,8 @@
             UIManager.Instance.CloseWindow<GuildOPWin>();
             var pack = new CA611_tagCMRenameFamily();
             pack.NewName = guildNameText.text;
-            pack.NewNameLen = (byte)pack.NewName.Length;
-            // GameNetSystem.Instance.SendInfo(pack);
+            pack.NewNameLen = (byte)Encoding.Default.GetBytes(pack.NewName).Length;
+            GameNetSystem.Instance.SendInfo(pack);
         }
     }
 
diff --git a/Main/System/Guild/GuildEmblemModel.cs b/Main/System/Guild/GuildEmblemModel.cs
index 1f830a1..764c811 100644
--- a/Main/System/Guild/GuildEmblemModel.cs
+++ b/Main/System/Guild/GuildEmblemModel.cs
@@ -14,6 +14,7 @@
 public class GuildEmblemModel : GameSystemManager<GuildEmblemModel>
 {
     
+    public Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction> emblemActions = new Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction>();
 
 
     private int m_NowChooseEmblemId;
@@ -51,15 +52,15 @@
     public override void Init()
     {
         PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
-        GuildManager.Instance.FamilyActionInfoEvent += OnFamilyActionInfoEvent;
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
+        GuildManager.Instance.EnterOrQuitGuildEvent += OnEnterOrQuitGuildEvent;
     }
 
     public override void Release()
     {
         PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
-        GuildManager.Instance.FamilyActionInfoEvent -= OnFamilyActionInfoEvent;
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
+        GuildManager.Instance.EnterOrQuitGuildEvent -= OnEnterOrQuitGuildEvent;
     }
 
     public void OnBeforePlayerDataInitialize()
@@ -69,6 +70,12 @@
         createEmblemWord = "";
         oldShowActiveList.Clear();
         showList.Clear();
+        emblemActions.Clear();
+    }
+
+    public void OnEnterOrQuitGuildEvent(bool isEnter)
+    {
+        OnBeforePlayerDataInitialize();
     }
 
     private void OnRefreshFairyInfo()
@@ -236,11 +243,6 @@
     }
 
 
-    void OnFamilyActionInfoEvent(int familyId, int actionType)
-    {
-        UpdateRedPoint();
-    }
-
     public bool IsLimitTime(int emblemId, out HA513_tagMCFamilyActionInfo.tagMCFamilyAction familyAction)
     {
         familyAction = new HA513_tagMCFamilyActionInfo.tagMCFamilyAction();
@@ -269,20 +271,33 @@
         return PlayerDatas.Instance.fairyData.mine.FmLV == 3;
     }
 
+
+
+    // 鏇存柊寰界珷淇℃伅
+    public bool UpdateEmblemAction(HA513_tagMCFamilyActionInfo _package)
+    {
+        if (_package.ActionType != GuildManager.FamilyActionsType)
+        {
+            return false;
+        }
+
+        for (int i = 0; i < _package.FamilyActionList.Length; i++)
+        {
+            int emblemId = (int)_package.FamilyActionList[i].Value1;
+            emblemActions[emblemId] = _package.FamilyActionList[i];
+        }
+
+        
+        UpdateRedPoint();
+        return true;
+    }
+
     // 鑾峰緱寰界珷璁板綍淇℃伅淇℃伅锛堟椿鍔ㄩ�斿緞鑾峰彇鐨勫窘绔�,瀹氬埗寰界珷锛夛紝value1鏄窘绔營D锛寁alue2鏄窘绔犲埌鏈熸椂闂�
     private bool TryGetfamilyAction(int emblemId, out HA513_tagMCFamilyActionInfo.tagMCFamilyAction familyAction)
     {
-        familyAction = new HA513_tagMCFamilyActionInfo.tagMCFamilyAction();
-        if (GuildManager.Instance.TryGetFamilyActions(GuildManager.FamilyActionsType, out var actions))
+        if (emblemActions.TryGetValue(emblemId, out familyAction))
         {
-            for (int i = 0; i < actions.Length; i++)
-            {
-                if (actions[i].Value1 == emblemId)
-                {
-                    familyAction = actions[i];
-                    return true;
-                }
-            }
+            return true;
         }
 
         return false;
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 71066f3..98015a1 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -12,6 +12,7 @@
 {
     // 瀹舵棌鑷畾涔夎褰曠被鍨�
     public const int CustomyActionType = 0;     //閫氱敤
+    public const int MemberChangeActionType = 12;      //鍏細鍙樻洿璁板綍
     public const int FamilyActionsType = 15;     // 鍏細璁板綍寰界珷绫诲瀷15
     public const int ZBGFamilyActionType = 16;  // 鐝嶅疂闃佽褰曠被鍨�
     public const int GuildBossActionType = 18;  //璁ㄤ紣
@@ -84,6 +85,11 @@
         guildChanged = false;
         applyList.Clear();
         PlayerDatas.Instance.fairyData.ClearData();
+
+        isQueryZBGYet = false;
+        zhenbaogeCutState = 0;
+        familyZBGActions.Clear();
+        sortPlayerCut.Clear();
     }
     
     //閫�鍑哄叕浼�
@@ -95,10 +101,10 @@
         UIManager.Instance.GetUI<MainWin>()?.ClickFunc(0);
 
 
-        isQueryZBGYet = false;
-        zhenbaogeCutState = 0;
-        familyZBGActions.Clear();
-        sortPlayerCut.Clear();
+        // isQueryZBGYet = false;
+        // zhenbaogeCutState = 0;
+        // familyZBGActions.Clear();
+        // sortPlayerCut.Clear();
         
         UpdateZBGRedpoint();
         UpdateDonateRedPoint();
@@ -393,7 +399,6 @@
 
 
 
-
     #region 浠欑洘鍟嗗簵寮�鍚�
     public int fairyStoreLimit = 0;
     public bool fairyStoreOpen
@@ -438,6 +443,31 @@
             return;
         }
 
+        // 琛屽晢 鐮嶄环
+        if (UpdateHawkerAction(_package))
+        {
+            return;
+        }
+
+        // 寰界珷
+        if (GuildEmblemModel.Instance.UpdateEmblemAction(_package))
+        {
+            return;
+        }
+
+        // 鍏細璁ㄤ紣
+        if (GuildBossManager.Instance.UpdateGuildBossInfo(_package))
+        {
+            return;
+        }
+
+        //涓婇潰鍚勪釜鍔熻兘瑕乺eturn
+        UpdataCommonAction(_package);
+    }
+
+    // 閫氱敤璁板綍 鍙�傜敤鍗曟潯鏁版嵁鐨勮褰曟儏鍐� 鎴栨湁鏈嶅姟绔繚璇佸垪琛ㄥ叏閮ㄤ俊鎭洿鎺ヨ鐩栵紝鍏朵粬鍔熻兘姣旇緝澶嶆潅鍚勮嚜璐熻矗瀛樺偍
+    void UpdataCommonAction(HA513_tagMCFamilyActionInfo _package)
+    {
         if (!familyActions.ContainsKey((int)_package.FamilyID))
         {
             familyActions.Add((int)_package.FamilyID, new Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction[]>());
@@ -445,11 +475,10 @@
 
         familyActions[(int)_package.FamilyID][_package.ActionType] = _package.FamilyActionList;
 
-        UpdateHawkerAction(_package);
-
         FamilyActionInfoEvent?.Invoke((int)_package.FamilyID, _package.ActionType);
     }
 
+    // 閫氱敤璁板綍 
     public bool TryGetFamilyActions(int actionType, out HA513_tagMCFamilyActionInfo.tagMCFamilyAction[] familyAction)
     {
         familyAction = null;
@@ -801,11 +830,11 @@
 
 
     //鏇存柊鐮嶄环淇℃伅
-    public void UpdateHawkerAction(HA513_tagMCFamilyActionInfo vNetData)
+    public bool UpdateHawkerAction(HA513_tagMCFamilyActionInfo vNetData)
     {
         if (vNetData.ActionType != ZBGFamilyActionType)
         {
-            return;
+            return false;
         }
         bool restart = false;
         if (vNetData.FamilyActionList.Length == 1 && vNetData.FamilyActionList[0].Value1 == 1)
@@ -843,6 +872,8 @@
 
         UpdateFamilyActionEvent?.Invoke(restart);
         UpdateZBGRedpoint();
+
+        return true;
     }
 
     //鐮嶄环浜烘暟
diff --git a/Main/System/Guild/GuildOPWin.cs b/Main/System/Guild/GuildOPWin.cs
index 8845c09..2298c04 100644
--- a/Main/System/Guild/GuildOPWin.cs
+++ b/Main/System/Guild/GuildOPWin.cs
@@ -77,6 +77,7 @@
 
     void OnRefreshFairyInfo()
     {
+        Display();
     }
 
 

--
Gitblit v1.8.0