lcy
1 天以前 08d180d4dee2015a09e1be660cbbf35720fd78bc
Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
@@ -63,7 +63,7 @@
                temp += "  pack type is " + pack.GetType().Name + "\n";
            }
        }
        BattleDebug.LogError(temp);
        // BattleDebug.LogError(temp);
    }
    public void AddPack(GameNetPackBasic pack)
@@ -98,6 +98,8 @@
        Dictionary<string, CustomHB426CombinePack> combineDict = new Dictionary<string, CustomHB426CombinePack>();
        Dictionary<int, GameNetPackBasic> indexDict = new Dictionary<int, GameNetPackBasic>();
        Dictionary<uint, HB427_tagSCUseSkill> skillDict = new Dictionary<uint, HB427_tagSCUseSkill>();
        for (int i = 0; i < b421SeriesPackList.Count; i++)
        {
@@ -134,7 +136,41 @@
            }
            else
            {
                indexDict.Add(i, pack);
                if (pack is HB427_tagSCUseSkill skillPack)
                {
                    //  处理技能之间的链接关系
                    if (skillPack.RelatedSkillID > 0)
                    {
                        skillDict.TryGetValue(skillPack.RelatedSkillID, out var parentSkill);
                        if (parentSkill != null && skillPack.BattleType == 4)//4=子技能
                        {
                            parentSkill.subSkillList.Add(skillPack);
                            skillPack.parentSkill = parentSkill;
                        }
                        else
                        {
                            indexDict.Add(i, pack);
                        }
                    }
                    else
                    {
                        indexDict.Add(i, pack);
                    }
                    if (skillDict.ContainsKey(skillPack.SkillID))
                    {
                        skillDict[skillPack.SkillID] = skillPack;
                    }
                    else
                    {
                        skillDict.Add(skillPack.SkillID, skillPack);
                    }
                }
                else
                {
                    indexDict.Add(i, pack);
                }
            }
        }
@@ -203,6 +239,53 @@
    }
    public static SkillRecordAction CreateSkillAction(string guid, List<GameNetPackBasic> _packList)
    {
        BattleField battleField = BattleManager.Instance.GetBattleField(guid);
        if (null == battleField)
        {
            Debug.LogError("BattleField not found for guid: " + guid);
            return null;
        }
        while (_packList.Count > 0)
        {
            var pack = _packList[0];
            _packList.RemoveAt(0);
            if (pack is HB427_tagSCUseSkill)
            {
                _packList.Insert(0, pack);
                break;
            }
            else if (pack is CustomHB426CombinePack)
            {
                Debug.LogError("无法找到Skill包,先发现了嵌套包");
                return null;
            }
            else
            {
                // Debug.LogError("发现非Skill包,先分发掉: " + pack.GetType().Name);
                PackageRegedit.Distribute(pack);
            }
        }
        HB427_tagSCUseSkill skill = _packList[0] as HB427_tagSCUseSkill;
        _packList.RemoveAt(0);
        if (null == skill)
        {
            Debug.LogError("No HB427_tagSCUseSkill found in packList.");
            return null;
        }
        BattleObject _caster = battleField.battleObjMgr.GetBattleObject((int)skill.ObjID);
        SkillRecordAction skillAction = new SkillRecordAction(battleField, _caster, skill, _packList);
        return skillAction;
    }
    public SkillRecordAction CreateSkillAction()
    {
        BattleField battleField = BattleManager.Instance.GetBattleField(guid);
@@ -213,12 +296,40 @@
            return null;
        }
        //  服务器修改了 现在第一个不一定是B427 也有可能是B428 先放Buff
        while (packList.Count > 0)
        {
            var pack = packList[0];
            packList.RemoveAt(0);
            if (pack is HB427_tagSCUseSkill)
            {
                packList.Insert(0, pack);
                break;
            }
            else if (pack is CustomHB426CombinePack)
            {
                Debug.LogError("无法找到Skill包,先发现了嵌套包");
                return null;
            }
            else
            {
                // Debug.LogError("发现非Skill包,先分发掉: " + pack.GetType().Name);
                PackageRegedit.Distribute(pack);
            }
        }
        if (startTag.Tag.StartsWith("Skill_"))
        {
            HB427_tagSCUseSkill skill = packList[0] as HB427_tagSCUseSkill;
            packList.Remove(skill);
            BattleObject _caster = battleField.battleObjMgr.GetBattleObject((int)skill.ObjID);
            packList.RemoveAt(0);
            if (null == skill)
            {
                Debug.LogError("No HB427_tagSCUseSkill found in packList.");
                return null;
            }
            BattleObject _caster = battleField.battleObjMgr.GetBattleObject((int)skill.ObjID);
            // BattleDebug.LogError("_caster == null : " + (_caster == null) + " skill.ObjID : " + skill.ObjID);
            SkillRecordAction skillAction = new SkillRecordAction(battleField, _caster, skill, packList);