UGCProjects/GZJ/Script/SimpleSkill/SkillConfig.lua

750 lines
25 KiB
Lua
Raw Normal View History

2025-01-08 22:46:12 +08:00
---技能配置表
---@type table<ESkillName, SkillConfig>
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表示离施法者最近的PawnCircleRange表示施法者圆形范围内的PawnStraightforward表示施法者矩形范围内的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;