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