| Core/NetworkPackage/ServerPack/HA9_Function/HA901_tagGCBossShuntLineStateInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/FindPreciousModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/GeneralConfig/GeneralConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/MainInterfaceWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Team/TeamData.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/ServerPack/HA9_Function/HA901_tagGCBossShuntLineStateInfo.cs
@@ -21,16 +21,18 @@ { BossLineStateInfo[i] = new tagGCBossShuntLineState(); TransBytes(out BossLineStateInfo[i].BossID, vBytes, NetDataType.DWORD); TransBytes(out BossLineStateInfo[i].DeadLineCount, vBytes, NetDataType.BYTE); TransBytes(out BossLineStateInfo[i].DeadLineList, vBytes, NetDataType.BYTE, BossLineStateInfo[i].DeadLineCount); TransBytes(out BossLineStateInfo[i].LineCount, vBytes, NetDataType.BYTE); TransBytes(out BossLineStateInfo[i].LineIDList, vBytes, NetDataType.BYTE, BossLineStateInfo[i].LineCount); TransBytes(out BossLineStateInfo[i].StateList, vBytes, NetDataType.BYTE, BossLineStateInfo[i].LineCount); } } public struct tagGCBossShuntLineState { public uint BossID; // bossID public byte DeadLineCount; public byte[] DeadLineList; // 已死亡的线路列表 public byte LineCount; public byte[] LineIDList; // 线路ID列表 public byte[] StateList; // 对应状态列表, 0-被击杀,1-活着 } } System/FindPrecious/FindPreciousModel.cs
@@ -219,8 +219,13 @@ BossInfo bossInfo; if (TryGetBossInfo(bossId, out bossInfo)) { bossInfo.deadLines.Clear(); bossInfo.deadLines.AddRange(bossLineInfo.DeadLineList); bossInfo.lineToAlives.Clear(); for (var j = 0; j < bossLineInfo.LineIDList.Length; j++) { var line = bossLineInfo.LineIDList[j]; var state = bossLineInfo.StateList[j]; bossInfo.lineToAlives[line] = state == 1; } } } } @@ -484,7 +489,7 @@ bool isCommunalAlive { get; set; } public List<BossKillRecord> killRecords = new List<BossKillRecord>(); public DateTime refreshTime { get; private set; } public List<byte> deadLines = new List<byte>(); public Dictionary<int, bool> lineToAlives = new Dictionary<int, bool>(); public BossInfo(int _id) { @@ -519,14 +524,28 @@ { return false; } else if ((BossFakeLineUtility.Instance.lastBossNpcID == bossId && Time.realtimeSinceStartup < BossFakeLineUtility.Instance.inMistakeForBossAliveOverTime) && !IsLineBossDead(PlayerDatas.Instance.baseData.FBID)) { return true; } else { return isCommunalAlive; var isMistakeBoss = BossFakeLineUtility.Instance.lastBossNpcID == bossId && Time.realtimeSinceStartup < BossFakeLineUtility.Instance.inMistakeForBossAliveOverTime; var isLineBossAlive = IsLineBossAlive(PlayerDatas.Instance.baseData.FBID); if (isMistakeBoss && isLineBossAlive) { return true; } else { var neutralMap = GeneralConfig.Instance.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID); if (neutralMap) { return isLineBossAlive; } else { return IsAnyLineBossAlive(); } } } } else @@ -535,9 +554,22 @@ } } bool IsLineBossDead(int _lineId) bool IsLineBossAlive(int _lineId) { return deadLines.Contains((byte)_lineId); return lineToAlives.ContainsKey(_lineId) && lineToAlives[_lineId]; } bool IsAnyLineBossAlive() { foreach (var item in lineToAlives) { if (item.Value) { return true; } } return false; } } System/GeneralConfig/GeneralConfig.cs
@@ -77,6 +77,7 @@ public int[] autoBuyItemPrices; public List<int> neutralMaps = new List<int>(); public List<int> neutralBossMaps = new List<int>(); public int demonJarRedPoint { get; private set; } public string LoadLV { get; private set; } @@ -362,7 +363,8 @@ lowHpRemind = GetInt("LowHpRemind"); autoBuyItemIds = GetIntArray("BuyItemPrice", 1); autoBuyItemPrices = GetIntArray("BuyItemPrice", 2); neutralMaps.AddRange(GetIntArray("BossListMapID")); neutralMaps.AddRange(GetIntArray("MapLine", 4)); neutralBossMaps.AddRange(GetIntArray("BossListMapID")); var _propertyIconCfg = Config.Instance.Get<FuncConfigConfig>("PropertyIcon"); var _propertyIconJson = LitJson.JsonMapper.ToObject(_propertyIconCfg.Numerical1); System/MainInterfacePanel/MainInterfaceWin.cs
@@ -292,7 +292,7 @@ } else { var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID); var isNeutralMap = GeneralConfig.Instance.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID); if (isNeutralMap) { @@ -529,7 +529,7 @@ } } var inDungeon = IsDungeon(); var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID); var isNeutralMap = GeneralConfig.Instance.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID); if (_areaType == MapArea.E_Type.Boss && !_enter) { @@ -673,7 +673,7 @@ var inDungeon = IsDungeon(); bool IsBossBool = PlayerDatas.Instance.hero == null ? false : MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域 var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID); var isNeutralMap = GeneralConfig.Instance.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID); if (!recordPositionBool) { @@ -761,7 +761,7 @@ { var inDungeon = IsDungeon(); bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss); var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID); var isNeutralMap = GeneralConfig.Instance.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID); if (recordPositionBool)//显示功能入口 { System/Team/TeamData.cs
@@ -235,6 +235,21 @@ members.Clear(); } public int GetAnyNearByMember() { for (int i = 0; i < members.Count; i++) { var mapId = PlayerDatas.Instance.baseData.MapID; var lineId = PlayerDatas.Instance.baseData.FBID; if (members[i].mapId == mapId && members[i].lineId == lineId) { return members[i].id; } } return 0; } } public class Teammate