| Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0608_tagNPCDie.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/ServerPack/HA9_Function/HA902_tagGCGameWorldBossInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/BossFakeLineUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/FindPreciousModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0608_tagNPCDie.cs
@@ -40,6 +40,11 @@ BossFakeLineUtility.Instance.lastBossNpcID = 0; BossFakeLineUtility.Instance.inMistakeForBossAliveOverTime = Time.realtimeSinceStartup - 61; } if (_targetFight.NpcConfig.IsBoss > 1 && vNetData.KillerID == PlayerDatas.Instance.baseData.PlayerID) { BossFakeLineUtility.Instance.RecordBossKillTime(_targetFight.NpcConfig.NPCID,System.DateTime.Now); } } _actor.SetAnimatorSpeed(1); Core/NetworkPackage/ServerPack/HA9_Function/HA902_tagGCGameWorldBossInfo.cs
@@ -25,6 +25,7 @@ TransBytes(out BossInfoList[i].RecordLen, vBytes, NetDataType.WORD); TransBytes(out BossInfoList[i].KillRecord, vBytes, NetDataType.Chars, BossInfoList[i].RecordLen); TransBytes(out BossInfoList[i].RefreshSecond, vBytes, NetDataType.DWORD); TransBytes(out BossInfoList[i].RefreshCD, vBytes, NetDataType.DWORD); } } @@ -35,6 +36,7 @@ public ushort RecordLen; // 长度 public string KillRecord; // 最近击杀记录时间玩家名size = RecordLen public uint RefreshSecond; // 刷新倒计时, 秒 public uint RefreshCD; // 刷新总CD时, 秒 } } Fight/BossFakeLineUtility.cs
@@ -2,19 +2,19 @@ using System.Collections.Generic; using UnityEngine; using TableConfig; using System; using Snxxz.UI; public class BossFakeLineUtility : Singleton<BossFakeLineUtility> { int m_MakeFakeLineTimes = 0; public int makeFakeLineTimes { public int makeFakeLineTimes { get { return m_MakeFakeLineTimes; } set { m_MakeFakeLineTimes = Mathf.Clamp(value, 0, int.MaxValue); } } bool m_ShowFakeLine = false; public bool showFakeLine { public bool showFakeLine { get { return m_ShowFakeLine; } set { m_ShowFakeLine = value; } } @@ -63,5 +63,46 @@ } } FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } Dictionary<int, DateTime> bossKillTimes = new Dictionary<int, DateTime>(); public void RecordBossKillTime(int npcId, DateTime time) { var key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_", npcId); bossKillTimes[npcId] = time; LocalSave.SetString(key, time.ToString()); } public bool TryGetBossKillTime(int npcId, out DateTime time) { if (bossKillTimes.ContainsKey(npcId)) { time = bossKillTimes[npcId]; return true; } var key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_", npcId); var timeString = LocalSave.GetString(key); var tempTime = DateTime.Now; if (DateTime.TryParse(timeString, out tempTime)) { FindPreciousModel.BossInfo bossInfo; var totalCd = 0; if (findPreciousModel.TryGetBossInfo(npcId, out bossInfo)) { totalCd = bossInfo.rebornTotalCd; } if ((int)((DateTime.Now - tempTime).TotalSeconds) < totalCd) { time = tempTime; bossKillTimes[npcId] = tempTime; return true; } } time = DateTime.Now; return false; } } System/FindPrecious/FindPreciousModel.cs
@@ -490,6 +490,7 @@ public List<BossKillRecord> killRecords = new List<BossKillRecord>(); public DateTime refreshTime { get; private set; } public Dictionary<int, bool> lineToAlives = new Dictionary<int, bool>(); public int rebornTotalCd { get; private set; } public BossInfo(int _id) { @@ -499,6 +500,7 @@ public void UpdateBossInfo(HA902_tagGCGameWorldBossInfo.tagBossInfoObj _bossInfo) { isCommunalAlive = _bossInfo.IsAlive == 1; rebornTotalCd = (int)_bossInfo.RefreshCD; killRecords.Clear(); if (!string.IsNullOrEmpty(_bossInfo.KillRecord)) {