From 5a4e34c8a85737c0fa5b5775122da31155cbaef3 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 09 二月 2026 14:46:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/BeautyMM/BeautyMMSkinActiveWin.cs | 36 +++
Main/System/InternalAffairs/FuncNPCManager.cs | 30 ++
Main/Utility/TimeUtility.cs | 36 +++
Main/Core/GameEngine/Player/PlayerDatas.cs | 2
Main/System/Guild/GuildHawkerWin.cs | 7
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs | 49 ++++
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs | 7
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs.meta | 11
Main/System/Guild/GuildBossWin.cs | 8
Main/System/OtherPlayerDetail/OtherPlayerDetailWin.cs | 10
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs | 20 +
Main/System/Message/RichText.cs | 126 +++++++++
Main/System/ItemTip/ItemBatchUseWin.cs | 7
Main/System/Guild/GuildMemberCell.cs | 6
Main/System/PhantasmPavilion/AvatarCell.cs | 2
Main/System/Guild/PlayerFairyData.cs | 9
Main/System/Guild/GuildManager.cs | 58 +++-
Main/System/BeautyMM/BeautyMMSkinCell.cs | 9
Main/System/ViewNPC/ViewNPCManager.cs | 2
Main/System/InternalAffairs/AffairBaseWin.cs | 27 ++
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs | 12 +
Main/System/Guild/GuildManager.CrossServer.cs | 26 --
Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs | 16
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs.meta | 11
Main/System/BeautyMM/BeautyMMManager.cs | 24 +
Main/System/Chat/ChatPlayerOtherCell.cs | 7
Main/System/PhantasmPavilion/AvatarHelper.cs | 8
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs.meta | 11
Main/System/BeautyMM/BeautyMMManager.Travel.cs | 4
Main/System/BeautyMM/BeautyMMSkinWin.cs | 8
Main/System/BeautyMM/BeautyMMSkinActiveWin.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA212_tagCMViewPlayerInfo.cs | 4
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs | 1
Main/System/Equip/ItemsOnFloor.cs | 4
Main/System/Guild/GuildPreviewWin.cs | 19 +
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA523_tagMCFamilyViewList.cs | 8
Main/Config/PartialConfigs/MainLevelConfig.cs | 10
Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA705_tagSCQueryPlayerCacheResult.cs | 10
Main/Core/NetworkPackage/ServerPack/HB0_Event/HB040_tagSCTravelInfo.cs | 4
Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs | 2
40 files changed, 536 insertions(+), 126 deletions(-)
diff --git a/Main/Config/PartialConfigs/MainLevelConfig.cs b/Main/Config/PartialConfigs/MainLevelConfig.cs
index 2d54cef..a5d9b02 100644
--- a/Main/Config/PartialConfigs/MainLevelConfig.cs
+++ b/Main/Config/PartialConfigs/MainLevelConfig.cs
@@ -46,12 +46,16 @@
return waveLineupLists.Count(list => list.Length > 0);
}
+ static List<int> allLevels = new List<int>();
// 鑾峰彇鐩爣鍏冲崱鐨勭储寮�
public static int GetToTargetLevelIndex(int targetLevel)
{
- var levels = GetKeys();
- levels.Sort();
- return levels.IndexOf(targetLevel);
+ if (allLevels.IsNullOrEmpty())
+ {
+ allLevels = GetKeys();
+ allLevels.Sort();
+ }
+ return allLevels.IndexOf(targetLevel);
}
diff --git a/Main/Core/GameEngine/Player/PlayerDatas.cs b/Main/Core/GameEngine/Player/PlayerDatas.cs
index ea98e19..c91b3a9 100644
--- a/Main/Core/GameEngine/Player/PlayerDatas.cs
+++ b/Main/Core/GameEngine/Player/PlayerDatas.cs
@@ -236,9 +236,11 @@
break;
case PlayerDataType.ExAttr1:
baseData.ExAttr1 = Math.Max((int)value, 10100); //鏂板彿鍒濆澶勭悊
+ Debug.LogFormat("---- 鏀跺埌鏈嶅姟绔疎xAttr1: {0}", baseData.ExAttr1);
break;
case PlayerDataType.ExAttr2:
baseData.ExAttr2 = Math.Max((int)value, 10101); //鏂板彿鍒濆澶勭悊
+ Debug.LogFormat("---- 鏀跺埌鏈嶅姟绔疎xAttr2: {0}", baseData.ExAttr2);
break;
case PlayerDataType.ExAttr3://绉板彿
baseData.TitleID = (int)value;
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/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs
new file mode 100644
index 0000000..3e19628
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using System.Collections;
+
+// A6 19 鏌ョ湅鐩爣鍏細 #tagCSViewTagFamily
+
+public class CA619_tagCSViewTagFamily : GameNetPackBasic {
+ public uint FamilyID;
+ public uint DataServerID; //鏁版嵁鎵�鍦ㄦ湇鍔″櫒ID
+
+ public CA619_tagCSViewTagFamily () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA619;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (FamilyID, NetDataType.DWORD);
+ WriteBytes (DataServerID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs.meta
new file mode 100644
index 0000000..a1cabda
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA619_tagCSViewTagFamily.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2bf49c967e6a89b4c93efd500fbd7583
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs
index 08d7a75..0e2adc4 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs
@@ -8,10 +8,8 @@
//绫诲瀷
static Dictionary<int, ulong> lastPackUIDDict = new Dictionary<int, ulong>()
{
-#if UNITY_EDITOR
{(int)PlayerDataType.ExAttr1, 0},
{(int)PlayerDataType.ExAttr2, 0},
-#endif
{(int)PlayerDataType.default26, 0},
};
public override void Done(GameNetPackBasic vNetPack)
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs
new file mode 100644
index 0000000..bf4e3d7
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 19 鏌ョ湅鐩爣鍏細淇℃伅 #tagSCTagFamilyInfo
+
+public class DTCA519_tagSCTagFamilyInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
+ base.Done(vNetPack);
+ HA519_tagSCTagFamilyInfo vNetData = vNetPack as HA519_tagSCTagFamilyInfo;
+ GuildManager.Instance.UpdateViewFamilyInfo(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs.meta
new file mode 100644
index 0000000..262def0
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA519_tagSCTagFamilyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e31d54337b63cd94cb7faac99d8f1eaf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs
index 83610a3..84065e7 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB420_tagMCTurnFightState.cs
@@ -1,6 +1,7 @@
using UnityEngine;
using System.Collections;
using LitJson;
+using Codice.Client.BaseCommands;
// B4 20 鍥炲悎鍒舵垬鏂楃姸鎬� #tagMCTurnFightState
@@ -19,7 +20,11 @@
if (battleField != null)
{
JsonData extendData = JsonMapper.ToObject(vNetData.Msg);
- battleField.OnTurnFightState(vNetData.TurnNum, vNetData.State, (int)vNetData.FuncLineID, extendData);
+ battleField.OnTurnFightState(vNetData.TurnNum, vNetData.State, (int)vNetData.FuncLineID, extendData);
+ if (vNetData.MapID == 1 && (vNetData.FuncLineID > PlayerDatas.Instance.baseData.ExAttr2))
+ {
+ Debug.LogErrorFormat("---- 鏀跺埌鏈嶅姟绔� DTCB420_tagMCTurnFightState 鐨� FuncLineID :{0} 澶т簬瀹㈡埛绔褰� ExAttr2 {1}", vNetData.FuncLineID, PlayerDatas.Instance.baseData.ExAttr2);
+ }
}
}
}
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index 61060a4..5461f8e 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -149,6 +149,7 @@
Register(typeof(HB162_tagSCFuncPresetSwitchInfo), typeof(DTCB162_tagSCFuncPresetSwitchInfo));
Register(typeof(HB163_tagSCBatPresetSwitchInfo), typeof(DTCB163_tagSCBatPresetSwitchInfo));
Register(typeof(HA001_tagBroadCastInfo), typeof(DTCA001_tagBroadCastInfo));
+ Register(typeof(HA519_tagSCTagFamilyInfo), typeof(DTCA519_tagSCTagFamilyInfo));
}
//涓诲伐绋嬫敞鍐屽皝鍖�
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs
new file mode 100644
index 0000000..6ff152f
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 19 鏌ョ湅鐩爣鍏細淇℃伅 #tagSCTagFamilyInfo
+
+public class HA519_tagSCTagFamilyInfo : GameNetPackBasic {
+ public uint FamilyID; //瀹舵棌ID
+ public byte FamilyNameLen;
+ public string FamilyName; //size = FamilyNameLen
+ public uint LeaderID; //鏃忛暱ID
+ public byte LeaderNameLen;
+ public string LeaderName; //size = LeaderNameLen
+ public uint LeaderServerID; //浼氶暱鍖烘湇ID
+ public byte FamilyLV; //瀹舵棌绛夌骇
+ public uint ServerID; //鍖烘湇ID
+ public uint EmblemID; //寰界珷ID
+ public string EmblemWord; //寰界珷鏂囧瓧
+ public uint FightPower; //鎬绘垬鍔涳紝姹備綑浜块儴鍒�
+ public uint FightPowerEx; //鎬绘垬鍔涳紝鏁撮櫎浜块儴鍒�
+ public ushort BroadcastLen; //鍏憡
+ public string Broadcast; //size = BroadcastLen
+ public byte MemberCount; //鎴愬憳浜烘暟
+ public uint DataServerID; //鏁版嵁鎵�鍦ㄦ湇鍔″櫒ID
+
+ public HA519_tagSCTagFamilyInfo () {
+ _cmd = (ushort)0xA519;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out FamilyID, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyNameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out FamilyName, vBytes, NetDataType.Chars, FamilyNameLen);
+ TransBytes (out LeaderID, vBytes, NetDataType.DWORD);
+ TransBytes (out LeaderNameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out LeaderName, vBytes, NetDataType.Chars, LeaderNameLen);
+ TransBytes (out LeaderServerID, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyLV, vBytes, NetDataType.BYTE);
+ TransBytes (out ServerID, vBytes, NetDataType.DWORD);
+ TransBytes (out EmblemID, vBytes, NetDataType.DWORD);
+ TransBytes (out EmblemWord, vBytes, NetDataType.Chars, 3);
+ TransBytes (out FightPower, vBytes, NetDataType.DWORD);
+ TransBytes (out FightPowerEx, vBytes, NetDataType.DWORD);
+ TransBytes (out BroadcastLen, vBytes, NetDataType.WORD);
+ TransBytes (out Broadcast, vBytes, NetDataType.Chars, BroadcastLen);
+ TransBytes (out MemberCount, vBytes, NetDataType.BYTE);
+ TransBytes (out DataServerID, vBytes, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs.meta
new file mode 100644
index 0000000..686e993
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA519_tagSCTagFamilyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 487779c3213b8a94e861c50bc592c1dd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
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/Core/NetworkPackage/ServerPack/HA7_Interaction/HA705_tagSCQueryPlayerCacheResult.cs b/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA705_tagSCQueryPlayerCacheResult.cs
index bebac50..b3f4928 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA705_tagSCQueryPlayerCacheResult.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA705_tagSCQueryPlayerCacheResult.cs
@@ -1,6 +1,6 @@
-using UnityEngine;
-using System.Collections;
-
+using UnityEngine;
+using System.Collections;
+
//A7 05 鏌ヨ鐜╁璇︾粏淇℃伅缁撴灉#tagSCQueryPlayerCacheResult
public class HA705_tagSCQueryPlayerCacheResult : GameNetPackBasic {
@@ -21,6 +21,7 @@
public string FamilyName;
public uint FamilyEmblemID; //浠欑洘寰界珷ID
public string FamilyEmblemWord; //寰界珷鏂囧瓧
+ public uint FamilyDataServerID; //鍏細鏁版嵁鎵�鍦ㄦ湇鍔″櫒ID锛孉619鏌ョ湅鍏細鐢�
public uint PlusDataSize;
public string PlusData; //鎵╁睍璁板綍
@@ -46,8 +47,9 @@
TransBytes (out FamilyName, vBytes, NetDataType.Chars, 33);
TransBytes (out FamilyEmblemID, vBytes, NetDataType.DWORD);
TransBytes (out FamilyEmblemWord, vBytes, NetDataType.Chars, 3);
+ TransBytes (out FamilyDataServerID, vBytes, NetDataType.DWORD);
TransBytes (out PlusDataSize, vBytes, NetDataType.DWORD);
TransBytes (out PlusData, vBytes, NetDataType.Chars, PlusDataSize);
}
-}
+}
\ No newline at end of file
diff --git a/Main/Core/NetworkPackage/ServerPack/HB0_Event/HB040_tagSCTravelInfo.cs b/Main/Core/NetworkPackage/ServerPack/HB0_Event/HB040_tagSCTravelInfo.cs
index c08a276..623a64a 100644
--- a/Main/Core/NetworkPackage/ServerPack/HB0_Event/HB040_tagSCTravelInfo.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HB0_Event/HB040_tagSCTravelInfo.cs
@@ -4,7 +4,7 @@
// B0 40 娓稿巻淇℃伅 #tagSCTravelInfo
public class HB040_tagSCTravelInfo : GameNetPackBasic {
- public byte Energy; //鍓╀綑浣撳姏
+ public uint Energy; //鍓╀綑浣撳姏
public uint EnergyTime; //涓婃鎭㈠浣撳姏鏃堕棿鎴�
public uint TravelCnt; //绱娓稿巻娆℃暟
public byte SceneryType; //鏅绫诲瀷
@@ -20,7 +20,7 @@
}
public override void ReadFromBytes (byte[] vBytes) {
- TransBytes (out Energy, vBytes, NetDataType.BYTE);
+ TransBytes (out Energy, vBytes, NetDataType.DWORD);
TransBytes (out EnergyTime, vBytes, NetDataType.DWORD);
TransBytes (out TravelCnt, vBytes, NetDataType.DWORD);
TransBytes (out SceneryType, vBytes, NetDataType.BYTE);
diff --git a/Main/System/BeautyMM/BeautyMMManager.Travel.cs b/Main/System/BeautyMM/BeautyMMManager.Travel.cs
index 9d8a4cd..e20d061 100644
--- a/Main/System/BeautyMM/BeautyMMManager.Travel.cs
+++ b/Main/System/BeautyMM/BeautyMMManager.Travel.cs
@@ -8,7 +8,7 @@
public partial class BeautyMMManager : GameSystemManager<BeautyMMManager>
{
- public byte m_Energy; //鍓╀綑浣撳姏
+ public int m_Energy; //鍓╀綑浣撳姏
public uint m_EnergyTime; //涓婃鎭㈠浣撳姏鏃堕棿鎴�
public uint m_TravelCnt; //绱娓稿巻娆℃暟
public byte m_SceneryType; //鏅绫诲瀷
@@ -29,7 +29,7 @@
public void UpdateTravelInfo(HB040_tagSCTravelInfo netPack)
{
- m_Energy = netPack.Energy;
+ m_Energy = (int)netPack.Energy;
m_EnergyTime = netPack.EnergyTime;
m_TravelCnt = netPack.TravelCnt;
m_SceneryType = netPack.SceneryType;
diff --git a/Main/System/BeautyMM/BeautyMMManager.cs b/Main/System/BeautyMM/BeautyMMManager.cs
index d0e8932..7fea852 100644
--- a/Main/System/BeautyMM/BeautyMMManager.cs
+++ b/Main/System/BeautyMM/BeautyMMManager.cs
@@ -92,10 +92,12 @@
public void UpdateBeautyMMData(HB130_tagSCBeautyInfo data)
{
int activeMMID = 0;
+ int activeSkinID = 0;
foreach (var beauty in data.BeautyList)
{
- if (DTC0403_tagPlayerLoginLoadOK.finishedLogin)
+ if (data.Count == 1)
{
+ //data.Count == 1 鍙互鐞嗚В涓鸿В閿佸洖鎶�
if (beautyMMDataDict.ContainsKey(beauty.BeautyID))
{
if (beautyMMDataDict[beauty.BeautyID].State != beauty.State)
@@ -119,6 +121,22 @@
foreach (var skin in beauty.SkinList)
{
+ if (data.Count == 1)
+ {
+ //data.Count == 1 鍙互鐞嗚В涓鸿В閿佸洖鎶�
+ if (beautyMMSkinDataDict.ContainsKey(skin.SkinID))
+ {
+ if (beautyMMSkinDataDict[skin.SkinID].State != skin.State)
+ {
+ activeSkinID = skin.SkinID;
+ }
+ }
+ else if (skin.State != 0)
+ {
+ activeSkinID = skin.SkinID;
+ }
+ }
+
beautyMMSkinDataDict[skin.SkinID] = new BeautyMMSkinData()
{
State = skin.State,
@@ -135,6 +153,10 @@
{
UIManager.Instance.OpenWindow<BeautyMMActiveWin>(activeMMID);
}
+ else if (activeSkinID > 0)
+ {
+ UIManager.Instance.OpenWindow<BeautyMMSkinActiveWin>(activeSkinID);
+ }
}
//0 鍏ㄩ儴 1 宸叉縺娲� 2 鏈縺娲�
diff --git a/Main/System/BeautyMM/BeautyMMSkinActiveWin.cs b/Main/System/BeautyMM/BeautyMMSkinActiveWin.cs
new file mode 100644
index 0000000..eacf537
--- /dev/null
+++ b/Main/System/BeautyMM/BeautyMMSkinActiveWin.cs
@@ -0,0 +1,36 @@
+
+using UnityEngine;
+using UnityEngine.UI;
+
+public class BeautyMMSkinActiveWin : UIBase
+{
+ [SerializeField] Text nameText;
+ [SerializeField] ImageEx roleImg;
+
+ [SerializeField] Text attrText;
+
+ int skinID;
+
+
+ protected override void OnPreOpen()
+ {
+ skinID = functionOrder;
+ Display();
+ }
+
+
+
+ void Display()
+ {
+ var skinConfig = BeautySkinConfig.Get(skinID);
+ nameText.text = skinConfig.Name;
+ roleImg.SetOrgSprite(skinConfig.BigRole, "BeautyMMBigRole");
+ roleImg.SetNativeSize();
+
+ string format = "{0}" + UIHelper.AppendColor(TextColType.NavyYellow, "+{1}");
+ attrText.text = PlayerPropertyConfig.GetFullDescription(skinConfig.AttrIDList[0], skinConfig.InitAttrValueList[0], format);
+ }
+
+
+
+}
diff --git a/Main/System/BeautyMM/BeautyMMSkinActiveWin.cs.meta b/Main/System/BeautyMM/BeautyMMSkinActiveWin.cs.meta
new file mode 100644
index 0000000..e3788ee
--- /dev/null
+++ b/Main/System/BeautyMM/BeautyMMSkinActiveWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 25e9d541898b482469cf32bf0533a66b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/BeautyMM/BeautyMMSkinCell.cs b/Main/System/BeautyMM/BeautyMMSkinCell.cs
index e881d73..212fbd7 100644
--- a/Main/System/BeautyMM/BeautyMMSkinCell.cs
+++ b/Main/System/BeautyMM/BeautyMMSkinCell.cs
@@ -26,10 +26,11 @@
var skinData = BeautyMMManager.Instance.GetSkinData(skinID);
var mmData = BeautyMMManager.Instance.GetBeautyMMData(mmID);
var state = skinData.State;
- if (mmData != null && mmData.State != 0 && skinConfig.UnlockWay == 1)
- {
- state = 1;
- }
+ // if (mmData != null && mmData.State != 0 && skinConfig.UnlockWay == 1)
+ // {
+ // //榛樿绛惧埌鑷繁瑙i攣
+ // state = 1;
+ // }
if (state != 0)
{
lockObj.SetActive(false);
diff --git a/Main/System/BeautyMM/BeautyMMSkinWin.cs b/Main/System/BeautyMM/BeautyMMSkinWin.cs
index 3a2ca5f..2a3027b 100644
--- a/Main/System/BeautyMM/BeautyMMSkinWin.cs
+++ b/Main/System/BeautyMM/BeautyMMSkinWin.cs
@@ -39,6 +39,7 @@
BeautyMMManager.Instance.selectSkinID = BeautyMMManager.Instance.GetUsedSkinID(mmID);
clothesScroller.OnRefreshCell += OnRefreshCell;
BeautyMMManager.Instance.OnSelectSkinIDChange += OnSelectSkinIDChange;
+ BeautyMMManager.Instance.OnBeautyMMDataUpdate += OnSelectSkinIDChange;
CreateScroller();
Display();
}
@@ -47,6 +48,7 @@
{
clothesScroller.OnRefreshCell -= OnRefreshCell;
BeautyMMManager.Instance.OnSelectSkinIDChange -= OnSelectSkinIDChange;
+ BeautyMMManager.Instance.OnBeautyMMDataUpdate -= OnSelectSkinIDChange;
}
void OnSelectSkinIDChange()
@@ -98,15 +100,15 @@
if (skinData.State == 0)
{
attrTipText.text = Language.Get("PhantasmPavilion11");
- attrValueText.text = UIHelper.AppendColor(TextColType.lightYellow, PlayerPropertyConfig.GetFullDescription(skinConfig.AttrIDList[0], skinConfig.InitAttrValueList[0]));
+ attrValueText.text = UIHelper.AppendColor(TextColType.NavyYellow, PlayerPropertyConfig.GetFullDescription(skinConfig.AttrIDList[0], skinConfig.InitAttrValueList[0]));
}
else
{
attrTipText.text = Language.Get("PhantasmPavilion07");
var value = skinConfig.InitAttrValueList[0] + skinData.Star * skinConfig.AttrPerStarAddList[0];
- attrValueText.text = UIHelper.AppendColor(TextColType.lightYellow, PlayerPropertyConfig.GetFullDescription(skinConfig.AttrIDList[0], value)) +
- Language.Get("PhantasmPavilion12", UIHelper.AppendColor(TextColType.Green, "+" + PlayerPropertyConfig.GetValueDescription(skinConfig.AttrIDList[0], skinConfig.AttrPerStarAddList[0])));
+ attrValueText.text = UIHelper.AppendColor(TextColType.NavyYellow, PlayerPropertyConfig.GetFullDescription(skinConfig.AttrIDList[0], value)) +
+ Language.Get("PhantasmPavilion12", UIHelper.AppendColor(TextColType.LightGreen, "+" + PlayerPropertyConfig.GetValueDescription(skinConfig.AttrIDList[0], skinConfig.AttrPerStarAddList[0])));
}
}
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/Equip/ItemsOnFloor.cs b/Main/System/Equip/ItemsOnFloor.cs
index 9f378a5..b948e62 100644
--- a/Main/System/Equip/ItemsOnFloor.cs
+++ b/Main/System/Equip/ItemsOnFloor.cs
@@ -13,8 +13,8 @@
[SerializeField] MoneyMoveByPath moneyMoveByPathCell; //鎺夎惤鐗╅噾閽�
[SerializeField] RectTransform defaultDropRect; //榛樿鎺夎惤浣嶇疆
[SerializeField] Text[] expTexts;
- FloorItemCell[] floorItemCells = new FloorItemCell[20]; //鍖呭惈闈炶澶囩殑鎴樺埄鍝佹帀钀�
- MoneyMoveByPath[] moneyMoveByPathArr = new MoneyMoveByPath[20]; //鎺夎惤璐у竵锛岄噾閽憋紝缁忛獙绛�
+ FloorItemCell[] floorItemCells = new FloorItemCell[100]; //鍖呭惈闈炶澶囩殑鎴樺埄鍝佹帀钀�
+ MoneyMoveByPath[] moneyMoveByPathArr = new MoneyMoveByPath[100]; //鎺夎惤璐у竵锛岄噾閽憋紝缁忛獙绛�
void Awake()
diff --git a/Main/System/Guild/GuildBossWin.cs b/Main/System/Guild/GuildBossWin.cs
index 5b8e74f..2c51665 100644
--- a/Main/System/Guild/GuildBossWin.cs
+++ b/Main/System/Guild/GuildBossWin.cs
@@ -138,7 +138,7 @@
void Display()
{
- endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
+ endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetCommTodayEndTime(GuildManager.Instance.zoneID) - TimeUtility.GetCommServerNow(GuildManager.Instance.zoneID)).TotalSeconds));
fightPowerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPower);
headCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID,
PlayerDatas.Instance.baseData.face,
@@ -271,7 +271,7 @@
bzAttrText.text = GetAddAttrs(bossAction);
var layer = bossAction == null ? 0 : bossAction.Value3;
var bzTime = bossAction == null ? 0 : bossAction.Value2;
- int remainTime = (int)Math.Max(0, bzTime - TimeUtility.AllSeconds);
+ int remainTime = (int)Math.Max(0, bzTime - TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID));
if (remainTime == 0)
{
//鏃堕棿鍒颁簡 瀹㈡埛绔嚜宸辨竻0
@@ -292,7 +292,7 @@
{
var layerNum = action == null ? 0 : action.Value3;
var bzTime = action == null ? 0 : action.Value2;
- int remainTime = (int)Math.Max(0, bzTime - TimeUtility.AllSeconds);
+ int remainTime = (int)Math.Max(0, bzTime - TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID));
if (remainTime == 0)
{
//鏃堕棿鍒颁簡 瀹㈡埛绔嚜宸辨竻0
@@ -310,7 +310,7 @@
void OnSecondEvent()
{
- endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
+ endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetCommTodayEndTime(GuildManager.Instance.zoneID) - TimeUtility.GetCommServerNow(GuildManager.Instance.zoneID)).TotalSeconds));
var bossAction = GuildBossManager.Instance.GetGuildBossAction();
ShowBzInfo(bossAction);
OtherPlayerAnimation();
diff --git a/Main/System/Guild/GuildHawkerWin.cs b/Main/System/Guild/GuildHawkerWin.cs
index c5face0..5439919 100644
--- a/Main/System/Guild/GuildHawkerWin.cs
+++ b/Main/System/Guild/GuildHawkerWin.cs
@@ -61,7 +61,8 @@
void OnSecondEvent()
{
- timeText.text = Language.Get("Guild_74", TimeUtility.SecondsToShortDHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
+ timeText.text = Language.Get("Guild_74", TimeUtility.SecondsToShortDHMS((int)(TimeUtility.GetCommTodayEndTime(GuildManager.Instance.zoneID) -
+ TimeUtility.GetCommServerNow(GuildManager.Instance.zoneID)).TotalSeconds));
}
int index = 0;
@@ -199,9 +200,9 @@
void OnCut()
{
//鐮嶄环鐨刢d闄愬埗: 鍏細娌℃湁璁板綍鑷繁鐮嶈繃浠凤紝浣嗕粖澶╂湁鐮嶄环璁板綍锛屼笖閫�鍑鸿繃鍏細
- if (GuildManager.Instance.zhenbaogeCutState == 0 && GuildManager.Instance.needCheckCutCD && (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60 < GuildManager.Instance.zbgChangFamilyCD )
+ if (GuildManager.Instance.zhenbaogeCutState == 0 && GuildManager.Instance.needCheckCutCD && (TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID) - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60 < GuildManager.Instance.zbgChangFamilyCD )
{
- SysNotifyMgr.Instance.ShowTip("ZhenbaogeCut1", GuildManager.Instance.zbgChangFamilyCD - (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60);
+ SysNotifyMgr.Instance.ShowTip("ZhenbaogeCut1", GuildManager.Instance.zbgChangFamilyCD - (TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID) - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60);
return;
}
if (GuildManager.Instance.zhenbaogeCutState == 0)
diff --git a/Main/System/Guild/GuildManager.CrossServer.cs b/Main/System/Guild/GuildManager.CrossServer.cs
index 9c96c0f..e967068 100644
--- a/Main/System/Guild/GuildManager.CrossServer.cs
+++ b/Main/System/Guild/GuildManager.CrossServer.cs
@@ -22,31 +22,7 @@
OnRefreshCrossServerInfoEvent?.Invoke();
}
- // 鑾峰彇褰撳墠鏃堕棿, 鍏細璺ㄥ尯鍓嶅彇鏈湇鏃堕棿锛岃法鏈嶅悗鍙栬法鏈嶆椂闂�
- public DateTime GetServerNow()
- {
- if (zoneID == 0)
- {
- return TimeUtility.ServerNow;
- }
- else
- {
- return TimeUtility.CrossServerNow;
- }
- }
-
- public int GetServerTick()
- {
- if (zoneID == 0)
- {
- return TimeUtility.AllSeconds;
- }
- else
- {
- return TimeUtility.AllSecondsCrossServer;
- }
- }
-
+
}
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 242ad99..ea157ed 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -349,7 +349,7 @@
punishTime = quitGuildPunishTime[Math.Min(quitCount, quitGuildPunishTime.Length - 1)];
}
- return punishTime * 60 - (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime);
+ return punishTime * 60 - (TimeUtility.GetCommServerTick(zoneID)- PlayerDatas.Instance.baseData.leaveFamilyTime);
}
@@ -644,28 +644,13 @@
GameNetSystem.Instance.SendInfo(pack);
}
- public void SendFindGuildNoDecrypt(string msg, int pageIndex = 0, int pageSize = 20)
- {
- if (pageIndex == 0)
- {
- //榛樿鏌ヨ绗竴椤靛嵆浠h〃閲嶆柊寮�濮嬫煡璇紝娓呯┖涔嬪墠鐨勬暟鎹�
- guildsDict.Clear();
- pageIndexList.Clear();
- }
- var pack = new CA620_tagCMViewFamilyPage();
- pack.Msg = msg;
- pack.MsgLen = (byte)msg.Length;
- pack.PageIndex = (byte)pageIndex;
- pack.ShowCount = (byte)pageSize;
- GameNetSystem.Instance.SendInfo(pack);
- }
-
public static void SetFairyViewData(FairyData data, HA523_tagMCFamilyViewList.tagMCFamilyView view)
{
data.Rank = view.Rank;
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;
@@ -677,6 +662,43 @@
data.MemberCount = view.MemberCount;
}
+ #endregion
+
+ #region 鏌ョ湅鐩爣鍏細
+ public Dictionary<int, FairyData> viewGuildsDict = new Dictionary<int, FairyData>();
+
+ public event Action OnUpdateViewFamilyInfo;
+
+ public void UpdateViewFamilyInfo(HA519_tagSCTagFamilyInfo pack)
+ {
+ FairyData data = new FairyData();
+ SetFairyViewData(data, pack);
+ viewGuildsDict[(int)data.FamilyID] = data;
+ OnUpdateViewFamilyInfo?.Invoke();
+ }
+
+ public static void SetFairyViewData(FairyData data, HA519_tagSCTagFamilyInfo view)
+ {
+ 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.ServerID = (int)view.ServerID;
+ data.EmblemID = (int)view.EmblemID;
+ data.EmblemWord = view.EmblemWord;
+ data.totalFightPower = view.FightPowerEx * Constants.ExpPointValue + view.FightPower;
+ data.MemberCount = view.MemberCount;
+ }
+
+ public void SendViewGuild(int fairyID, int serverID)
+ {
+ var pack = new CA619_tagCSViewTagFamily();
+ pack.FamilyID = (uint)fairyID;
+ pack.DataServerID = (uint)serverID;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
#endregion
#region 鐢宠鍒楄〃
@@ -1117,7 +1139,7 @@
{
return;
}
- if (TimeUtility.ServerNow.Hour < 10)
+ if (TimeUtility.GetCommServerNow(zoneID).Hour < 10)
return;
if (zhenbaogeCutState == 0)
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..bb219c9 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);
});
}
@@ -67,10 +68,22 @@
void Display()
{
- var guildInfo = GuildManager.Instance.guildsDict[guildID];
+ FairyData guildInfo = null;
+ if (GuildManager.Instance.guildsDict.ContainsKey(guildID))
+ {
+ guildInfo = GuildManager.Instance.guildsDict[guildID];
+ }
+ else
+ {
+ if (GuildManager.Instance.viewGuildsDict.ContainsKey(guildID))
+ {
+ guildInfo = GuildManager.Instance.viewGuildsDict[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/InternalAffairs/AffairBaseWin.cs b/Main/System/InternalAffairs/AffairBaseWin.cs
index e9d19ed..67b686d 100644
--- a/Main/System/InternalAffairs/AffairBaseWin.cs
+++ b/Main/System/InternalAffairs/AffairBaseWin.cs
@@ -119,6 +119,20 @@
autoBtn.SetActive(false);
goldRushItemBtn.SetActive(false);
}
+
+
+ foreach (var npc in funcNPCs)
+ {
+ var key = npc.heroSkinID;
+ if (!FuncOpen.Instance.IsFuncOpen(FuncNPCManager.Instance.funcNPCToFuncID[key]))
+ {
+ npc.SetActive(false);
+ }
+ else
+ {
+ npc.SetActive(true);
+ }
+ }
}
@@ -172,8 +186,17 @@
void OnFiveSecondEvent()
{
- var index = FuncNPCManager.Instance.GetRandomAffairNpcTalk();
- var talk = FuncNPCManager.Instance.GetAffairTalk(funcNPCs[index].heroSkinID);
+ var skinID = FuncNPCManager.Instance.GetRandomAffairNpcTalk();
+ var talk = FuncNPCManager.Instance.GetAffairTalk(skinID);
+ var index = 0;
+ for (int i = 0; i < funcNPCs.Length; i++)
+ {
+ if (funcNPCs[i].heroSkinID == skinID)
+ {
+ index = i;
+ break;
+ }
+ }
if (talk != null)
{
talkTexts[index].text = Language.Get(talk);
diff --git a/Main/System/InternalAffairs/FuncNPCManager.cs b/Main/System/InternalAffairs/FuncNPCManager.cs
index 6d482f2..6308d2d 100644
--- a/Main/System/InternalAffairs/FuncNPCManager.cs
+++ b/Main/System/InternalAffairs/FuncNPCManager.cs
@@ -8,6 +8,7 @@
//鍐呮斂NPC
Dictionary<int, string[]> affairNpcTalkDic = new Dictionary<int, string[]>();
public List<int> affairTalkIndexList = new List<int>();
+ public Dictionary<int, int> funcNPCToFuncID = new Dictionary<int, int>();
public float lastAffairTalkTime;
public int lastAffiarRandomIndex;
@@ -38,10 +39,7 @@
affairNpcTalkDic.Add(npcID, talkList);
}
- for (int i = 0; i < affairNpcTalkDic.Count; i++)
- {
- affairTalkIndexList.Add(i);
- }
+
json = JsonMapper.ToObject(config.Numerical2);
keys = json.Keys.ToList();
@@ -56,19 +54,41 @@
guildTalkIndexList.Add(i);
}
+ funcNPCToFuncID = ConfigParse.ParseIntDict(config.Numerical3);
+ }
+
+
+ void RefreshAffairTalkIndexList()
+ {
+ affairTalkIndexList.Clear();
+ foreach (var key in affairNpcTalkDic.Keys)
+ {
+ if (!FuncOpen.Instance.IsFuncOpen(funcNPCToFuncID[key]))
+ {
+ continue;
+ }
+ if (funcNPCToFuncID[key] == 54 && MinggeManager.Instance.isStartAuto)
+ {
+ //绠楀懡涓笉鍙備笌鍠婅瘽
+ continue;
+ }
+ affairTalkIndexList.Add(key);
+ }
}
//闅忔満鏌愪釜NPC瀵硅瘽锛屼笌涓婁竴娆¢殢鏈虹殑NPC绱㈠紩涓嶉噸澶�
+ //杩斿洖NPCID
public int GetRandomAffairNpcTalk()
{
+ RefreshAffairTalkIndexList();
int index = Random.Range(0, affairTalkIndexList.Count);
if (index == lastAffiarRandomIndex)
{
index = (index + 1) % affairTalkIndexList.Count;
}
lastAffiarRandomIndex = index;
- return index;
+ return affairTalkIndexList[index];
}
public int GetRandomGuildNpcTalk()
diff --git a/Main/System/ItemTip/ItemBatchUseWin.cs b/Main/System/ItemTip/ItemBatchUseWin.cs
index cdeb7e4..b5ee930 100644
--- a/Main/System/ItemTip/ItemBatchUseWin.cs
+++ b/Main/System/ItemTip/ItemBatchUseWin.cs
@@ -125,9 +125,14 @@
void OnOK()
{
CloseWindow();
+ if (curUseCount == 0)
+ {
+ SysNotifyMgr.Instance.ShowTip("UseItem1");
+ return;
+ }
if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, curUseCount, 2))
{
- ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID));
+ ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID), (int)curUseCount);
}
}
}
diff --git a/Main/System/Message/RichText.cs b/Main/System/Message/RichText.cs
index 360a4da..26b20bd 100644
--- a/Main/System/Message/RichText.cs
+++ b/Main/System/Message/RichText.cs
@@ -504,8 +504,26 @@
{
font = FontUtility.preferred;
}
+
+ // 娣诲姞 null 妫�鏌�
+ if (font == null || rectTransform == null || cachedTextGeneratorForLayout == null || string.IsNullOrEmpty(m_OutputText))
+ {
+ return 0f;
+ }
+
var settings = GetGenerationSettings(Vector2.zero);
- return cachedTextGeneratorForLayout.GetPreferredWidth(m_OutputText, settings) / pixelsPerUnit;
+
+ float width = 0f;
+ try
+ {
+ width = cachedTextGeneratorForLayout.GetPreferredWidth(m_OutputText, settings) / pixelsPerUnit;
+ }
+ catch (Exception ex)
+ {
+ Debug.LogError($"GetPreferredWidth failed: {ex.Message}");
+ width = 0f;
+ }
+ return width;
}
}
@@ -517,9 +535,26 @@
{
font = FontUtility.preferred;
}
+
+ // 娣诲姞 null 妫�鏌�
+ if (font == null || rectTransform == null || cachedTextGeneratorForLayout == null || string.IsNullOrEmpty(m_OutputText))
+ {
+ return 0f;
+ }
+
var settings = GetGenerationSettings(new Vector2(rectTransform.rect.size.x, 0.0f));
- float _height = cachedTextGeneratorForLayout.GetPreferredHeight(m_OutputText, settings) / pixelsPerUnit;
- return _height;
+
+ float height = 0f;
+ try
+ {
+ height = cachedTextGeneratorForLayout.GetPreferredHeight(m_OutputText, settings) / pixelsPerUnit;
+ }
+ catch (Exception ex)
+ {
+ Debug.LogError($"GetPreferredHeight failed: {ex.Message}");
+ height = 0f;
+ }
+ return height;
}
}
#endregion
@@ -666,6 +701,9 @@
private Dictionary<int, Match> matchDics = new Dictionary<int, Match>();
+ // 瀛楃瀹藉害缂撳瓨锛岄伩鍏嶉噸澶嶈绠楃浉鍚屽瓧绗�
+ private Dictionary<string, float> charWidthCache = new Dictionary<string, float>();
+
private bool IsModifySize(int _index,out int _size)
{
_size = 0;
@@ -724,6 +762,14 @@
{
font = FontUtility.preferred;
}
+
+ // 娣诲姞 null 妫�鏌�
+ if (font == null || rectTransform == null || cachedTextGeneratorForLayout == null)
+ {
+ Debug.LogWarning("SetFitterSize: font, rectTransform or cachedTextGeneratorForLayout is null");
+ return;
+ }
+
var settings = GetGenerationSettings(Vector2.zero);
float cache = 0;
@@ -732,6 +778,7 @@
float ratio = GetResolutionRatio();
matchDics.Clear();
+ charWidthCache.Clear();
foreach (Match match in ImgAnalysis.Unity_Img_Regex.Matches(fitterText))
{
@@ -802,7 +849,8 @@
}
else
{
- cache = cachedTextGeneratorForLayout.GetPreferredWidth(match.Value, settings) * ratio;
+ cache = GetCharWidthCached(match.Value, settings, ratio);
+
if (width + cache > (rectTransform.rect.width - 5))
{
CacluHrefAndImgIndex(Mathf.Max(0, i - 1));
@@ -820,19 +868,16 @@
else
{
var _size = 0;
- var _cacheFontSize = fontSize;
+ // 涓嶅啀淇敼 fontSize锛屼娇鐢ㄤ复鏃� TextGenerator 璁$畻涓嶅悓瀛楀彿鐨勫搴�
if (_modifySize && IsModifySize(i, out _size))
{
- fontSize = _size;
- settings = GetGenerationSettings(Vector2.zero);
- cache = cachedTextGeneratorForLayout.GetPreferredWidth(fitterText[i].ToString(), settings) * ratio;
- fontSize = _cacheFontSize;
- settings = GetGenerationSettings(Vector2.zero);
+ cache = GetCharWidthWithCustomSize(fitterText[i], _size, ratio);
}
else
{
- cache = cachedTextGeneratorForLayout.GetPreferredWidth(fitterText[i].ToString(), settings) * ratio;
+ cache = GetCharWidthCached(fitterText[i].ToString(), settings, ratio);
}
+
if (width + cache > (rectTransform.rect.width - 5))
{
CacluHrefAndImgIndex(Mathf.Max(0, i - 1));
@@ -850,6 +895,65 @@
m_OutputText = textBuilder.ToString();
}
+ /// <summary>
+ /// 鑾峰彇瀛楃瀹藉害锛堝甫缂撳瓨锛�
+ /// </summary>
+ private float GetCharWidthCached(string charStr, TextGenerationSettings settings, float ratio)
+ {
+ string cacheKey = $"{fontSize}_{charStr}";
+
+ if (charWidthCache.ContainsKey(cacheKey))
+ {
+ return charWidthCache[cacheKey];
+ }
+
+ float width = 0;
+ try
+ {
+ width = cachedTextGeneratorForLayout.GetPreferredWidth(charStr, settings) * ratio;
+ }
+ catch (Exception ex)
+ {
+ Debug.LogError($"GetPreferredWidth failed for '{charStr}': {ex.Message}");
+ width = 0;
+ }
+
+ charWidthCache[cacheKey] = width;
+ return width;
+ }
+
+ /// <summary>
+ /// 浣跨敤鑷畾涔夊瓧鍙疯绠楀瓧绗﹀搴︼紙涓嶄慨鏀瑰師濮� Text 缁勪欢鐨� fontSize锛�
+ /// </summary>
+ private float GetCharWidthWithCustomSize(char c, int customFontSize, float ratio)
+ {
+ string charStr = c.ToString();
+ string cacheKey = $"{customFontSize}_{charStr}";
+
+ if (charWidthCache.ContainsKey(cacheKey))
+ {
+ return charWidthCache[cacheKey];
+ }
+
+ float width = 0;
+ try
+ {
+ // 鍒涘缓涓存椂鐨� TextGenerationSettings锛屼娇鐢ㄨ嚜瀹氫箟瀛楀彿
+ TextGenerationSettings tempSettings = GetGenerationSettings(Vector2.zero);
+ tempSettings.fontSize = customFontSize;
+
+ width = cachedTextGeneratorForLayout.GetPreferredWidth(charStr, tempSettings) * ratio;
+ }
+ catch (Exception ex)
+ {
+ Debug.LogError($"GetPreferredWidth failed for '{charStr}' with fontSize {customFontSize}: {ex.Message}");
+ width = 0;
+ }
+
+ charWidthCache[cacheKey] = width;
+ return width;
+ }
+
private void CacluHrefAndImgIndex(int index)
{
for (int i = 0; i < m_ImgList.Count; i++)
diff --git a/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs b/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs
index 14d202c..7223cd5 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)
@@ -110,6 +111,7 @@
viewPlayerData.FamilyID = (int)package.FamilyID;
viewPlayerData.FamilyName = UIHelper.ServerStringTrim(package.FamilyName);
viewPlayerData.FamilyEmblemID = (int)package.FamilyEmblemID;
+ viewPlayerData.FamilyDataServerID = (int)package.FamilyDataServerID;
viewPlayerData.FamilyEmblemWord = UIHelper.ServerStringTrim(package.FamilyEmblemWord);
@@ -132,10 +134,11 @@
{
if (viewPlayerType == (int)ViewPlayerType.viewPlayerData)
{
- if (!UIManager.Instance.IsOpened<OtherPlayerDetailWin>())
+ if (UIManager.Instance.IsOpened<OtherPlayerDetailWin>())
{
- UIManager.Instance.OpenWindow<OtherPlayerDetailWin>(viewPreSetType);
+ UIManager.Instance.CloseWindow<OtherPlayerDetailWin>();
}
+ UIManager.Instance.OpenWindow<OtherPlayerDetailWin>(viewPreSetType);
}
OnRevPackage?.Invoke(viewPlayerType, playerID);
@@ -402,6 +405,7 @@
public int ServerID;
public long FightPower;
public int FamilyID;
+ public int FamilyDataServerID; //鍏細鏁版嵁鎵�鍦ㄦ湇鍔″櫒ID锛孉619鏌ョ湅鍏細鐢�
public string FamilyName;
public int FamilyEmblemID;
public string FamilyEmblemWord;
diff --git a/Main/System/OtherPlayerDetail/OtherPlayerDetailWin.cs b/Main/System/OtherPlayerDetail/OtherPlayerDetailWin.cs
index 86fc9e7..5334d56 100644
--- a/Main/System/OtherPlayerDetail/OtherPlayerDetailWin.cs
+++ b/Main/System/OtherPlayerDetail/OtherPlayerDetailWin.cs
@@ -50,24 +50,24 @@
protected override void OnPreOpen()
{
- GuildManager.Instance.OnRefreshFairyList += OnRefreshFairyList;
+ GuildManager.Instance.OnUpdateViewFamilyInfo += OnUpdateViewFamilyInfo;
funcPresetID = OtherPlayerDetailManager.Instance.GetFuncPresetID(manager.viewPlayer, functionOrder, (int)FuncPresetType.Global);
Display();
}
protected override void OnPreClose()
{
- GuildManager.Instance.OnRefreshFairyList -= OnRefreshFairyList;
+ GuildManager.Instance.OnUpdateViewFamilyInfo -= OnUpdateViewFamilyInfo;
}
- private void OnRefreshFairyList()
+ private void OnUpdateViewFamilyInfo()
{
if (viewPlayerData == null)
{
return;
}
- if (!GuildManager.Instance.guildsDict.ContainsKey(viewPlayerData.FamilyID))
+ if (!GuildManager.Instance.viewGuildsDict.ContainsKey(viewPlayerData.FamilyID))
{
return;
}
@@ -268,7 +268,7 @@
SysNotifyMgr.Instance.ShowTip("GuildTip01");
return;
}
- GuildManager.Instance.SendFindGuildNoDecrypt(viewPlayerData.FamilyID.ToString());
+ GuildManager.Instance.SendViewGuild(viewPlayerData.FamilyID, viewPlayerData.FamilyDataServerID);
}
private void OnClickMM()
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;
diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index ed856e8..ef8a4a1 100644
--- a/Main/Utility/TimeUtility.cs
+++ b/Main/Utility/TimeUtility.cs
@@ -547,4 +547,40 @@
{
return (int)(GetTodayEndTime() - ServerNow).TotalSeconds;
}
+
+ #region 璺ㄦ湇鍜屾湰鏈嶅叕鐢ㄦ帴鍙�
+ //褰撴湁鐨勫姛鑳戒細浠庢湰鏈嶅姛鑳藉彉鎴愯法鏈嶅姛鑳界殑鏃跺�欑粺涓�鐢ㄨ繖浜涙帴鍙e鐞嗘椂闂�
+ //鍚勮嚜鐨勫姛鑳戒紶鑷繁鐨剒oneID
+
+ // 鑾峰彇褰撳墠鏃堕棿, 鍏細璺ㄥ尯鍓嶅彇鏈湇鏃堕棿锛岃法鏈嶅悗鍙栬法鏈嶆椂闂�
+ public static DateTime GetCommServerNow(int zoneID = 0)
+ {
+ if (zoneID == 0)
+ {
+ return ServerNow;
+ }
+ else
+ {
+ return CrossServerNow;
+ }
+ }
+
+ public static int GetCommServerTick(int zoneID = 0)
+ {
+ if (zoneID == 0)
+ {
+ return AllSeconds;
+ }
+ else
+ {
+ return AllSecondsCrossServer;
+ }
+ }
+
+ public static DateTime GetCommTodayEndTime(int zoneID = 0)
+ {
+ var now = GetCommServerNow(zoneID).AddDays(1);
+ return new DateTime(now.Year, now.Month, now.Day);
+ }
+ #endregion
}
--
Gitblit v1.8.0