---技能配置表 ---@type table SkillConfig = SkillConfig or { -----------------------------------自带技能----------------------------------- [ESkillName.Heal] = { SkillName = ESkillName.Heal, --技能名称 SkillType = ESkillType.Active, --技能类型(主动、被动技能) SkillAccess = ESkillAccessType.BuiltIn, --技能的获取方式(BuiltIn为自带技能,Talented为天赋技能,Aquired为角色技能,影响的是技能所能适配的槽位) CoolDownDuration = 20.0, --技能的冷却时间 EnergyCost = 0.0, --技能的能量消耗 Conditions = { ESkillCastConditionType.IsNeedHeal }, --技能执行前的附加条件(通用条件) NeedCheckTargetBeforeCast = false, --是否需要在判断技能能否施放时判断有没有目标(仅对主动技能有效,用于指向特定目标的技能,默认不判断,即值为false) SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, --目标选取器类型(SelfPawn表示施法者自己,NearestPawn表示离施法者最近的Pawn,CircleRange表示施法者圆形范围内的Pawn,Straightforward表示施法者矩形范围内的Pawn) LimitNum = 0, --选取目标的个数(选取器类型不为SelfPawn时才有效,0则不作个数上的限制) ForwardOffset = 0, --选取点离施法者前方的偏移距离 Param_Float = 0.0, --用于CircleRange类型选取器,表示圆形范围的半径 Param_Vector = {X = 0, Y = 0, Z = 0}, --用于StraightForward类型选取器,X表示选取范围的长度,Y表示选取范围的宽度,Z表示选取范围的高度 }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, --技能持续类型(Instant表示瞬时,HasDuration表示持续一段时间) Duration = 0.0, --技能持续时间(时长类型为HasDuration时才生效) Period = 0.0, --循环执行的周期(时长类型为HasDuration且Duration>0时才生效) ExecuteOnApply = false, --是否刚开始就执行(时长类型为HasDuration且Period>0时才生效) EffectId = 1, --技能特效ID(EffectTables表中) }, }, -----------------------------------天赋技能----------------------------------- [ESkillName.Dash] = { SkillName = ESkillName.Dash, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Talented, CoolDownDuration = 5.0, EnergyCost = 10.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 2, }, }, [ESkillName.Anger] = { SkillName = ESkillName.Anger, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Talented, CoolDownDuration = 50.0, EnergyCost = 20.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 8.0, Period = 0.0, ExecuteOnApply = false, EffectId = 3, }, }, [ESkillName.ShadowKill] = { SkillName = ESkillName.ShadowKill, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Talented, CoolDownDuration = 50.0, EnergyCost = 20.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 8.0, Period = 0.0, ExecuteOnApply = false, EffectId = 4, }, }, [ESkillName.Slash] = { SkillName = ESkillName.Slash, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Talented, CoolDownDuration = 25.0, EnergyCost = 20.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 300.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 5, }, }, [ESkillName.Stun] = { SkillName = ESkillName.Stun, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Talented, CoolDownDuration = 30.0, EnergyCost = 20.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 300.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 3.0, Period = 0.0, ExecuteOnApply = false, EffectId = 6, }, }, [ESkillName.Exhaust] = { SkillName = ESkillName.Exhaust, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Talented, CoolDownDuration = 45.0, EnergyCost = 20.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 300.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 8.0, Period = 0.0, ExecuteOnApply = false, EffectId = 8, }, }, [ESkillName.Penetration] = { SkillName = ESkillName.Penetration, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Talented, CoolDownDuration = 50.0, EnergyCost = 20.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 8.0, Period = 0.0, ExecuteOnApply = false, EffectId = 9, }, }, -----------------------------------角色技能----------------------------------- [ESkillName.Counter] = { SkillName = ESkillName.Counter, SkillType = ESkillType.Passive, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 0.0, EnergyCost = 0.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 300.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 10, }, }, [ESkillName.ElectricShock] = { SkillName = ESkillName.ElectricShock, SkillType = ESkillType.Passive, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 0.0, EnergyCost = 0.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 5, ForwardOffset = 0, Param_Float = 500.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 11, }, }, [ESkillName.StarFall] = { SkillName = ESkillName.StarFall, SkillType = ESkillType.Passive, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 0.0, EnergyCost = 0.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 12, }, }, [ESkillName.Ray] = { SkillName = ESkillName.Ray, SkillType = ESkillType.Passive, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 0.0, EnergyCost = 0.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.Straightforward, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 13, }, }, [ESkillName.Crack] = { SkillName = ESkillName.Crack, SkillType = ESkillType.Passive, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 0.0, EnergyCost = 0.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 14, }, }, [ESkillName.Weaken] = { SkillName = ESkillName.Weaken, SkillType = ESkillType.Passive, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 0.0, EnergyCost = 0.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 15, }, }, [ESkillName.Scabbing] = { SkillName = ESkillName.Scabbing, SkillType = ESkillType.Passive, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 0.0, EnergyCost = 0.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.SelfPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 16, }, }, [ESkillName.DeathStrike] = { SkillName = ESkillName.DeathStrike, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 35.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = true, SelectorData = { SelectorType = ESkillSelectorType.NearestPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 17, }, }, [ESkillName.Roar] = { SkillName = ESkillName.Roar, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 400.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 18, }, }, [ESkillName.LightWave] = { SkillName = ESkillName.LightWave, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.Straightforward, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 5000, Y = 300, Z = 300}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 19, }, }, [ESkillName.IceFrost] = { SkillName = ESkillName.IceFrost, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 1000.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 3.0, Period = 0.0, ExecuteOnApply = false, EffectId = 20, }, }, [ESkillName.ToxicRain] = { SkillName = ESkillName.ToxicRain, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = true, SelectorData = { SelectorType = ESkillSelectorType.NearestPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 3.0, Period = 0.0, ExecuteOnApply = false, EffectId = 21, }, }, [ESkillName.Puncture] = { SkillName = ESkillName.Puncture, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.Straightforward, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 1000, Y = 100, Z = 200}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 22, }, }, [ESkillName.Seal] = { SkillName = ESkillName.Seal, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.NearestPawn, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 23, }, }, [ESkillName.AbsorbSoul] = { SkillName = ESkillName.AbsorbSoul, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 400.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 24, }, }, [ESkillName.Tread] = { SkillName = ESkillName.Tread, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 300.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 25, }, }, [ESkillName.Stomp] = { SkillName = ESkillName.Stomp, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 25.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 500.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 26, }, }, [ESkillName.StrongWind] = { SkillName = ESkillName.StrongWind, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 30.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 300.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 27, }, }, [ESkillName.FireDomain] = { SkillName = ESkillName.FireDomain, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 22.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.Straightforward, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 400, Y = 100, Z = 200}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 3.0, Period = 0.0, ExecuteOnApply = false, EffectId = 28, }, }, [ESkillName.Flowing] = { SkillName = ESkillName.Flowing, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.Straightforward, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 800, Y = 200, Z = 200}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 3.0, Period = 1.0, ExecuteOnApply = true, EffectId = 29, }, }, [ESkillName.Tear] = { SkillName = ESkillName.Tear, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 30.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 200.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 5.0, Period = 1.0, ExecuteOnApply = true, EffectId = 30, }, }, [ESkillName.StickStrike] = { SkillName = ESkillName.StickStrike, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 20.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.Straightforward, LimitNum = 0, ForwardOffset = 0, Param_Float = 0.0, Param_Vector = {X = 1000, Y = 200, Z = 200}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 31, }, }, [ESkillName.Shuttle] = { SkillName = ESkillName.Shuttle, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 35.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = true, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 0, ForwardOffset = 0, Param_Float = 400.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.Instant, Duration = 0.0, Period = 0.0, ExecuteOnApply = false, EffectId = 33, }, }, [ESkillName.Bombing] = { SkillName = ESkillName.Bombing, SkillType = ESkillType.Active, SkillAccess = ESkillAccessType.Acquired, CoolDownDuration = 35.0, EnergyCost = 40.0, Conditions = {}, NeedCheckTargetBeforeCast = false, SelectorData = { SelectorType = ESkillSelectorType.CircleRange, LimitNum = 8, ForwardOffset = 0, Param_Float = 400.0, Param_Vector = {X = 0, Y = 0, Z = 0}, }, TaskData = { DurationPolicy = ETaskDurationPolicy.HasDuration, Duration = 5.0, Period = 0.5, ExecuteOnApply = false, EffectId = 34, }, }, } return SkillConfig;