少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-25 a3634d6e31c24ef1d90aaee97d1eb35170c32b16
3811 【前端】前期BOSS分线修改
5个文件已修改
91 ■■■■ 已修改文件
Core/NetworkPackage/ServerPack/HA9_Function/HA901_tagGCBossShuntLineStateInfo.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousModel.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralConfig.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamData.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | 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