Вопрос по созданию абилки с механикой контратаки

  • Автор темы Автор темы ddd3m0s
  • Дата начала Дата начала

ddd3m0s

Пользователь
25 Апр 2024
11
2
Проект
anton_box
Я хочу сделать абилку которая прокает с некоторым шансом при ударе по владельцу способности, что то похожее на пассивку леги, но чтобы при этом активировался ненаправленный скилл
Исходник на луа на этот третий скилл леги, естественно, не нашел, а на моддоте или валвовском апи не могу найти модификатор/функцию которая может активировать что либо по получении урона
 
Код:
if not jotaro_counterattack then
    jotaro_counterattack = class({})
end
function jotaro_counterattack:GetIntrinsicModifierName()
    return "modifier_jotaro_counterattack"
end
if not modifier_jotaro_counterattack then
    modifier_jotaro_counterattack = class({})
end
function modifier_jotaro_counterattack:IsHidden()
    return true
end

if IsServer() then
    function modifier_jotaro_counterattack:OnCreated(t)
        self.ab = self:GetAbility()
        self.parent = self:GetParent()
    end
    function modifier_jotaro_counterattack:DeclareFunctions()
        return {MODIFIER_EVENT_ON_ATTACK_LANDED}
    end
    function modifier_jotaro_counterattack:OnAttackLanded(data)
        local mult = 1
        if self.parent:HasModifier("modifier_item_special_jotaro") or self.parent:HasModifier("modifier_item_special_jotaro_upgrade") then
            mult = 2
        end   
        local trigger_chance = self.ab:GetSpecialValueFor("trigger_chance")*mult

        if data.target == self.parent and self.parent:IsAlive() and RollPercentage(trigger_chance) then
            self.parent:SetHealth(data.damage + self.parent:GetHealth())
            local nFX = ParticleManager:CreateParticle("particles/units/heroes/hero_faceless_void/faceless_void_time_lock_bash.vpcf", PATTACH_WORLDORIGIN, self.parent)
            ParticleManager:SetParticleControl(nFX, 0, data.attacker:GetAbsOrigin() )
            ParticleManager:SetParticleControl(nFX, 1, data.attacker:GetAbsOrigin() )
            ParticleManager:SetParticleControl(nFX, 2, Vector(1,1,1) )
            ParticleManager:SetParticleControl(nFX, 4, data.attacker:GetAbsOrigin() )
            ParticleManager:SetParticleControl(nFX, 5, Vector(1,1,1) )
            ParticleManager:ReleaseParticleIndex(nFX)
            self.parent:PerformAttack(data.attacker, true, true, true, true, false, false, true)
            EmitSoundOn("jotaro_counterattack", data.attacker)

            self.parent:StartGestureWithPlaybackRate(ACT_DOTA_ATTACK, 5)
        end
    end
end
 
  • Нравится
Реакции: ddd3m0s
Реклама: