Ну в дд никак.Подскажите как сделать чтобы направленный скилл отбивался линкой в датадрайвене? Очень нужно
function SphereCheck( keys )
local caster = keys.caster
local target = keys.target
local ability = keys.ability
local duration = ability:GetLevelSpecialValueFor("duration", (ability:GetLevel()) - 1)
if target:HasModifier("modifier_item_sphere") then
if target:HasModifier("modifier_item_sphere_target") then
ability:ApplyDataDrivenModifier(caster, target, "modifier_my_ability_hex", {duration = duration})
end
else
target:RemoveModifierByName("modifier_sphere")
target:RemoveModifierByName("modifier_sphere_target")
end
end
Но это же в луа, а мне нужно в датадрайвене(Можно сделать, делай проверку на этот модифаер modifier_item_sphere
И на этот модифаер modifier_item_sphere_target
Если он есть на враге, то ничего не происходит, если есть, то делает функцию
[/CODE]Lua:function SphereCheck( keys ) local target = keys.target local ability = keys.ability local duration = ability:GetLevelSpecialValueFor("duration", (ability:GetLevel()) - 1) if target:HasModifier("modifier_item_sphere") then if target:HasModifier("modifier_item_sphere_target") then ability:ApplyDataDrivenModifier(caster, target, "modifier_my_ability_hex", {duration = duration}) target:RemoveModifierByName("modifier_sphere") target:RemoveModifierByName("modifier_sphere_target") end end end
Но это же в луа, а мне нужно в датадрайвене(
"stun_and_damage"
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
"SpellImmunityType" "SPELL_IMMUNITY_ENEMIES_NO"
"SpellDispellableType" "SPELL_DISPELLABLE_YES"
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
"AbilityCooldown" "16 15 14 13"
"AbilityTextureName" "lina_laguna_blade"
"AbilityDamage" "8000"
"AbilityManaCost" "25 50 75 100"
"AbilityCastPoint" "0.3"
"AbilityCastRange" "1600"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"damage" "8000"
}
"02"
{
"var_type" "FIELD_FLOAT"
"duration" "5 6 7 8"
}
}
"OnSpellStart"
{
"RunScript"
{
"ScriptFile" "linked_sphere_check.lua"
"Function" "SphereCheck"
"modifier" "modifier_stun_and_damage_check"
}
}
"Modifiers"
{
"modifier_stun_and_damage_check"
{
"Duration" "0.1"
"IsHidden" "1"
"OnCreated" // После OnCreated всё что надо можешь делать, в этом случае, если линки нету, то
{
"Damage"
{
"Target" "TARGET"
"Type" "DAMAGE_TYPE_MAGICAL"
"Damage" "%damage"
}
"Stun"
{
"Target" "TARGET"
"Duration" "%duration"
}
}
}
}
}
function SphereCheck( keys )
if keys.target:HasModifier("modifier_item_sphere") then
if keys.target:HasModifier("modifier_item_sphere_target") then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, keys.modifier, {duration = 1})
end
else
keys.target:RemoveModifierByName("modifier_sphere")
keys.target:RemoveModifierByName("modifier_sphere_target")
end
end