From 24a23dcf2dfecb2c41722ad5d6f8c936bf7ccabe Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期六, 07 二月 2026 14:37:43 +0800
Subject: [PATCH] 282 查看他人-客户端 同步A523 A212封包,公会成员列表,公会聊天支持支持跨服

---
 Main/System/Guild/GuildManager.cs                                                |    1 
 Main/System/PhantasmPavilion/AvatarHelper.cs                                     |    8 ++--
 Main/System/ViewNPC/ViewNPCManager.cs                                            |    2 
 Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA212_tagCMViewPlayerInfo.cs |    4 +-
 Main/System/Guild/GuildPreviewWin.cs                                             |    6 ++-
 Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs      |    8 ++-
 Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs                        |    9 ++--
 Main/System/Guild/GuildMemberCell.cs                                             |    6 +-
 Main/System/PhantasmPavilion/AvatarCell.cs                                       |    2 
 Main/System/Guild/PlayerFairyData.cs                                             |    9 ++--
 Main/System/Chat/ChatPlayerOtherCell.cs                                          |    7 +++
 11 files changed, 37 insertions(+), 25 deletions(-)

diff --git a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA212_tagCMViewPlayerInfo.cs b/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA212_tagCMViewPlayerInfo.cs
index 34cad61..8c89ec2 100644
--- a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA212_tagCMViewPlayerInfo.cs
+++ b/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA212_tagCMViewPlayerInfo.cs
@@ -5,7 +5,7 @@
 
 public class CA212_tagCMViewPlayerInfo : GameNetPackBasic {
     public uint PlayerID;
-    public byte EquipClassLV;    //澶т簬0涓烘煡鐪嬫寚瀹氬鐣岄樁瑁呭淇℃伅,  0涓烘煡鐪嬮粯璁や俊鎭�
+    public uint ServerID;    //鐜╁鏈嶅姟鍣↖D锛屽彂0榛樿鏈湇鐜╁
 
     public CA212_tagCMViewPlayerInfo () {
         combineCmd = (ushort)0x03FE;
@@ -14,7 +14,7 @@
 
     public override void WriteToBytes () {
         WriteBytes (PlayerID, NetDataType.DWORD);
-        WriteBytes (EquipClassLV, NetDataType.BYTE);
+        WriteBytes (ServerID, NetDataType.DWORD);
     }
 
 }
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs
index f643e36..41b053b 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs
@@ -1,6 +1,6 @@
-using UnityEngine;
-using System.Collections;
-
+using UnityEngine;
+using System.Collections;
+
 // A5 23 鎼滅储瀹舵棌杩斿洖鍒楄〃 #tagMCFamilyViewList
 
 public class HA523_tagMCFamilyViewList : GameNetPackBasic {
@@ -34,6 +34,7 @@
             TransBytes (out FamilyList[i].LeaderID, vBytes, NetDataType.DWORD);
             TransBytes (out FamilyList[i].LeaderNameLen, vBytes, NetDataType.BYTE);
             TransBytes (out FamilyList[i].LeaderName, vBytes, NetDataType.Chars, FamilyList[i].LeaderNameLen);
+            TransBytes (out FamilyList[i].LeaderServerID, vBytes, NetDataType.DWORD);
             TransBytes (out FamilyList[i].FamilyLV, vBytes, NetDataType.BYTE);
             TransBytes (out FamilyList[i].JoinReview, vBytes, NetDataType.BYTE);
             TransBytes (out FamilyList[i].JoinLVMin, vBytes, NetDataType.WORD);
@@ -55,6 +56,7 @@
         public uint LeaderID;        //鏃忛暱ID
         public byte LeaderNameLen;
         public string LeaderName;        //size = LeaderNameLen
+        public uint LeaderServerID;        //鏃忛暱鏈嶅姟鍣↖D
         public byte FamilyLV;        //瀹舵棌绛夌骇
         public byte JoinReview;        //鎴愬憳鍔犲叆鏄惁闇�瑕佸鏍革紝榛樿0鑷姩鍔犲叆
         public ushort JoinLVMin;        //闄愬埗鏈�浣庡彲鍔犲叆鐨勭帺瀹剁瓑绾�
diff --git a/Main/System/Chat/ChatPlayerOtherCell.cs b/Main/System/Chat/ChatPlayerOtherCell.cs
index 246a2ff..af20b9c 100644
--- a/Main/System/Chat/ChatPlayerOtherCell.cs
+++ b/Main/System/Chat/ChatPlayerOtherCell.cs
@@ -22,7 +22,7 @@
         TalkData data = hasNewPlayerInfo ? newPlayerInfo : nowData;
 
         avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)data.PlayerID, (int)data.Face, (int)data.FacePic, data.Job));
-  
+
         title.InitUI(data.RealmLV, (int)data.TitleID);
         int bubbleID = ChatBubbleHelper.GetOtherChatBubbleID(data.Job, (int)data.BubbleBox);
         m_ChatBubble.DisplayBubble(bubbleID, (int)data.PlayerID);
@@ -42,6 +42,11 @@
             }
             m_PlayerName.text = Language.Get("Chat08", RichTextMsgReplaceConfig.GetRichReplace("FAMILY", fmlv), data.Name);
         }
+        
+        avatarCell.SetListener(() =>
+        {
+            AvatarHelper.TryViewOtherPlayerInfo((int)data.PlayerID, serverID: (int)data.ServerID, viewPlayerLineupType: (int)BattlePreSetType.Arena);
+        });
     }
 
     public float GetHeight(string content, ArrayList list)
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 242ad99..f4a4803 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -666,6 +666,7 @@
         data.FamilyID = (int)view.FamilyID;
         data.FamilyName = view.FamilyName;
         data.LeaderID = (int)view.LeaderID;
+        data.LeaderServerID = (int)view.LeaderServerID;
         data.LeaderName = view.LeaderName;
         data.FamilyLV = view.FamilyLV;
         data.JoinReview = view.JoinReview;
diff --git a/Main/System/Guild/GuildMemberCell.cs b/Main/System/Guild/GuildMemberCell.cs
index 51c59fb..32cbf9c 100644
--- a/Main/System/Guild/GuildMemberCell.cs
+++ b/Main/System/Guild/GuildMemberCell.cs
@@ -9,7 +9,7 @@
 /// </summary>
 public class GuildMemberCell : CellView
 {
-    
+
     [SerializeField] AvatarCell avatarCell;
     [SerializeField] OfficialTitleCell titleCell;
     [SerializeField] Text lvText;
@@ -49,7 +49,7 @@
 
         avatarCell.AddListener(() =>
         {
-            OtherPlayerDetailManager.Instance.ViewPlayerDetail(playerID);
+            OtherPlayerDetailManager.Instance.ViewPlayerDetail(playerID, playerInfo.ServerID);
         });
 
         contribText.text = playerInfo.ContribDay + "/" + playerInfo.ContribTotal;
@@ -91,7 +91,7 @@
             showArrowImg.transform.localScale = new Vector3(1, -1, 1);
         }
     }
-    
+
     //渚嬪瓙 鍙栨暣澶勭悊锛� 1.5澶� 鏄剧ず1澶�; 鏈�澶�7澶╃壒娈婂鐞�
     //x澶�
     //x鏃�
diff --git a/Main/System/Guild/GuildPreviewWin.cs b/Main/System/Guild/GuildPreviewWin.cs
index fc4166c..c5a5ab1 100644
--- a/Main/System/Guild/GuildPreviewWin.cs
+++ b/Main/System/Guild/GuildPreviewWin.cs
@@ -29,6 +29,7 @@
 
     int guildID;
     int leaderID;
+    int leaderServerID;
     protected override void InitComponent()
     {
         opearteBtn.AddListener(() =>
@@ -47,7 +48,7 @@
 
         leaderAvatar.AddListener(() =>
         {
-            OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID);
+            OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID, leaderServerID);
         });
     }
 
@@ -70,7 +71,8 @@
         var guildInfo = GuildManager.Instance.guildsDict[guildID];
         if (guildInfo == null) return;
         leaderID = guildInfo.LeaderID;
-        OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID, (int)ViewPlayerType.viewGuildLeader);
+        leaderServerID = guildInfo.ServerID;
+        OtherPlayerDetailManager.Instance.ViewPlayerDetail(leaderID, leaderServerID, (int)ViewPlayerType.viewGuildLeader);
 
         var config = FamilyConfig.Get(guildInfo.FamilyLV);
         guildEmblem.Display(guildInfo.EmblemID, guildInfo.EmblemWord, 0.7f);
diff --git a/Main/System/Guild/PlayerFairyData.cs b/Main/System/Guild/PlayerFairyData.cs
index 4ff88c4..48909d9 100644
--- a/Main/System/Guild/PlayerFairyData.cs
+++ b/Main/System/Guild/PlayerFairyData.cs
@@ -52,7 +52,7 @@
         fairy.totalFightPower = vNetData.FightPowerEx * Constants.ExpPointValue + vNetData.FightPower;
         fairy.Broadcast = vNetData.Broadcast;
         fairy.LeaderID = (int)vNetData.LeaderID;
-        
+
         fairy.lastChangeNameTick = (int)vNetData.Extra1;
 
 
@@ -108,7 +108,7 @@
 
             }
         }
-        
+
         if (mine.FmLV == 3 && mine.PlayerID != leaderID)
         {
             mine.FmLV = 0;
@@ -216,6 +216,7 @@
     public long totalFightPower;
     public string Broadcast;
     public int LeaderID;    //鏃忛暱鐜╁ID
+    public int LeaderServerID;  //鏃忛暱鏈嶅姟鍣↖D
     public int MemberCount;
     public int lastChangeNameTick;
 
@@ -248,7 +249,7 @@
 public class FairyApply
 {
     public int PlayerID;
-    public string Name;      
+    public string Name;
     public int ReqTime;        //鐢宠鏃堕棿鎴�
     public int LV;        //绛夌骇
     public int Job;        //鑱屼笟
@@ -256,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;        //鏄惁鍦ㄧ嚎
 }
diff --git a/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs b/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs
index 14d202c..e7f79fa 100644
--- a/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs
+++ b/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs
@@ -49,8 +49,8 @@
         return viewPlayerData;
     }
 
-    // 鍚戞湇鍔$璇锋眰鍏朵粬鐜╁鏁版嵁
-    public void ViewPlayerDetail(int playerId, int viewType = (int)ViewPlayerType.viewPlayerData, int viewBattlePreSetType = (int)BattlePreSetType.Story)
+    // 鍚戞湇鍔$璇锋眰鍏朵粬鐜╁鏁版嵁 serverID鍙�0榛樿鏈湇鐜╁
+    public void ViewPlayerDetail(int playerId, int serverID, int viewType = (int)ViewPlayerType.viewPlayerData, int viewBattlePreSetType = (int)BattlePreSetType.Story)
     {
         // 鑷繁涓嶈兘鏌ョ湅鑷繁鐨勪俊鎭�
         if (playerId == PlayerDatas.Instance.baseData.PlayerID)
@@ -58,11 +58,11 @@
 
         viewPlayerType = viewType;
         viewPreSetType = viewBattlePreSetType;
-        ViewRoleParticulars(playerId);
+        ViewRoleParticulars(playerId, serverID);
     }
 
     // 鍚戞湇鍔$璇锋眰鐜╁鏁版嵁
-    void ViewRoleParticulars(int playerID)
+    void ViewRoleParticulars(int playerID, int serverID)
     {
         if (playerID <= 0)
             return;
@@ -81,6 +81,7 @@
 
         CA212_tagCMViewPlayerInfo pak = new CA212_tagCMViewPlayerInfo();
         pak.PlayerID = (uint)playerID;
+        pak.ServerID = (uint)serverID;
         GameNetSystem.Instance.SendInfo(pak);
     }
     public void OnRevRoleEquip(HA705_tagSCQueryPlayerCacheResult package)
diff --git a/Main/System/PhantasmPavilion/AvatarCell.cs b/Main/System/PhantasmPavilion/AvatarCell.cs
index c76f52e..43edb69 100644
--- a/Main/System/PhantasmPavilion/AvatarCell.cs
+++ b/Main/System/PhantasmPavilion/AvatarCell.cs
@@ -247,7 +247,7 @@
             {
                 return;
             }
-            AvatarHelper.TryViewOtherPlayerInfo(avatarModel.playerID, (int)ViewPlayerType.viewPlayerData);
+            AvatarHelper.TryViewOtherPlayerInfo(avatarModel.playerID);
         });
     }
 
diff --git a/Main/System/PhantasmPavilion/AvatarHelper.cs b/Main/System/PhantasmPavilion/AvatarHelper.cs
index 6c6b7c6..b2c7411 100644
--- a/Main/System/PhantasmPavilion/AvatarHelper.cs
+++ b/Main/System/PhantasmPavilion/AvatarHelper.cs
@@ -2,13 +2,13 @@
 
 public static class AvatarHelper
 {
-    public static void TryViewOtherPlayerInfo(int _playerId, int viewType = (int)ViewPlayerType.viewPlayerData, int viewPlayerLineupType = (int)BattlePreSetType.Story)
+    //serverID鍙�0榛樿鏈湇鐜╁
+    public static void TryViewOtherPlayerInfo(int playerId, int serverID = 0, int viewType = (int)ViewPlayerType.viewPlayerData, int viewPlayerLineupType = (int)BattlePreSetType.Story)
     {
-        if (_playerId == PlayerDatas.Instance.PlayerId || UIManager.Instance.IsOpened<OtherPlayerDetailWin>())
+        if (playerId == PlayerDatas.Instance.PlayerId || UIManager.Instance.IsOpened<OtherPlayerDetailWin>())
             return;
-        OtherPlayerDetailManager.Instance.ViewPlayerDetail(_playerId, viewType, viewPlayerLineupType);
+        OtherPlayerDetailManager.Instance.ViewPlayerDetail(playerId, serverID, viewType, viewPlayerLineupType);
     }
-
     public static AvatarModel GetAvatarModel(int playerId, int face, int facePic, int job = 0)
     {
         bool isMyself = playerId == PlayerDatas.Instance.PlayerId;
diff --git a/Main/System/ViewNPC/ViewNPCManager.cs b/Main/System/ViewNPC/ViewNPCManager.cs
index 5c0382f..4a0e255 100644
--- a/Main/System/ViewNPC/ViewNPCManager.cs
+++ b/Main/System/ViewNPC/ViewNPCManager.cs
@@ -67,7 +67,7 @@
             {
                 case BattleConst.ArenaBattleField:
                     int playerId = (int)ArenaManager.Instance.atkPlayerId;
-                    OtherPlayerDetailManager.Instance.ViewPlayerDetail(playerId, (int)ViewPlayerType.viewArenaBattleEnemyHero, (int)BattlePreSetType.Arena);
+                    OtherPlayerDetailManager.Instance.ViewPlayerDetail(playerId, 0, (int)ViewPlayerType.viewArenaBattleEnemyHero, (int)BattlePreSetType.Arena);
                     break;
             }
             return;

--
Gitblit v1.8.0