| | |
| | | temp += " pack type is " + pack.GetType().Name + "\n"; |
| | | } |
| | | } |
| | | BattleDebug.LogError(temp); |
| | | // BattleDebug.LogError(temp); |
| | | } |
| | | |
| | | public void AddPack(GameNetPackBasic pack) |
| | |
| | | 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++) |
| | | { |
| | |
| | | } |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | 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); |
| | |
| | | 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); |