- 3 Май 2017
- 9
- 0
восполняет манну в зависимости от нанесенного урона с руки
нет урона;c решено
также пополняет манну за урон от способностей и предметов;c
надо ток от автоатак
KV:
"tessendris_inversion_datadriven"
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"SpellImmunityType" "SPELL_IMMUNITY_ENEMIES_YES"
"AbilityTextureName" "obsidian_destroyer_essence_aura"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"inversion_value" "10 20 30 40"
}
"02"
{
"var_type" "FIELD_INTEGER"
"attack_damage" "100"
}
}
"Modifiers"
{
"modifier_inversion_datadriven"
{
"Passive" "1"
"IsHidden" "1"
"IsDebuff" "0"
"OnAttackLanded"
// "%attack_damage" is set to the damage value before mitigation
{
"RunScript"
{
"ScriptFile" "heroes/hero_tessendris/tessendris_inversion.lua"
"Function" "InversionApply"
}
}
}
"modifier_inversion"
{
"IsHidden" "1"
"OnDealDamage"
// "%attack_damage" is set to the damage value after mitigation
{
"RunScript"
{
"ScriptFile" "heroes/hero_tessendris/tessendris_inversion.lua"
"Function" "Inversion"
"Damage" "%attack_damage"
}
}
}
}
}
Lua:
function InversionApply( key )
-- Variables
local attacker = key.attacker
local target = key.target
local ability = key.ability
if target.GetInvulnCount == nil and not target:IsBuilding() then
ability:ApplyDataDrivenModifier(attacker, attacker, "modifier_inversion", {})
end
end
function Inversion( key )
local attacker = key.attacker
local target = key.target
local ability = key.ability
local post_damage = key.Damage
local modifier = "modifier_inversion"
ability.inversion_value = ability:GetLevelSpecialValueFor("inversion_value", ability:GetLevel() - 1)
local new_mana = post_damage * ability.inversion_value / 100
local now_mana = attacker:GetMana() + new_mana
if now_mana > attacker:GetMaxMana() then
attacker:SetMana(attacker:GetMaxMana())
else
attacker:SetMana(now_mana)
end
attacker:RemoveModifierByName(modifier)
end
надо ток от автоатак
Последнее редактирование: