Lua:
-- Создаем способность
local om_insta_kill = class({})
LinkLuaModifier("modifier_om_insta_kill", "abilities/om_insta_kill", LUA_MODIFIER_MOTION_NONE)
function om_insta_kill:GetIntrinsicModifierName()
return "modifier_om_insta_kill"
end
function om_insta_kill:OnSpellStart()
local caster = self:GetCaster()
local target = self:GetCursorTarget()
local targetMaxHP = target:GetMaxHealth()
local pureDamageAmount = targetMaxHP * 2.0 -- 200% от максимального здоровья
local damageTable = {
victim = target,
attacker = caster,
damage = pureDamageAmount,
damage_type = DAMAGE_TYPE_PURE,
damage_flags = DOTA_DAMAGE_FLAG_NONE,
}
ApplyDamage(damageTable)
-- Для эффекта визуального уведомления о нанесенном уроне
SendOverheadEventMessage(nil, OVERHEAD_ALERT_DAMAGE, target, pureDamageAmount, nil)
end
-- Возвращаем true для того, чтобы способность работала на всех юнитов
function om_insta_kill:CastFilterResultTarget(target)
if target == self:GetCaster() then
return UF_SUCCESS
end
return UF_FAIL_CUSTOM
end
function om_insta_kill:GetCustomCastErrorTarget(target)
if target == self:GetCaster() then
return "#dota_hud_error_cant_cast_on_self"
end
return ""
end
return om_insta_kill