Иллюзии не используют способность через скрипт.

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

Kpyrep

Пользователь
27 Фев 2019
43
10
Проект
Arena of purification
В общем проблема такая. Сделал скрипт при котором иллюзии при появлении используют способность. Но по какой-то причине они иногда не делают этого. По ощущениям это ни от чего не зависит. Также функция SretCrontolableByPlayer() не работает, я всё ещё могу их контролить, хотя в аналогичном коде она работает вообще без проблем. Подскажите, что в моём коде не так?
Lua:
function Ult( keys )
    -- body
    local target = keys.target
    local caster = keys.caster
    local ability = keys.ability
    local ability_level = ability:GetLevel() - 1
    local rand_distance = math.random(300, 500)
    local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
    local outgoingDamage = ability:GetLevelSpecialValueFor("out_dmg", ability_level)
    local incomingDamage = 0
    local duration = ability:GetLevelSpecialValueFor("duration", ability_level)
    Timers:CreateTimer(0.2, function()
            local rand_distance = math.random(300, 500)
        local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
        local illusion1 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
        illusion1:SetControllableByPlayer(caster:GetPlayerID(), false)
        illusion1:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
        local subab = illusion1:FindAbilityByName("blink_strike_datadriven_ills")
        local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
        Timers:CreateTimer(0.0035, function()
            illusion1:CastAbilityOnTarget(target, subab, -1)
        end)
    end)
        Timers:CreateTimer(0.6, function()
                local rand_distance = math.random(300, 500)
    local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
        local illusion2 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
        illusion2:SetControllableByPlayer(caster:GetPlayerID(), true)
        illusion2:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
        local subab = illusion2:FindAbilityByName("blink_strike_datadriven_ills")
        local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
        Timers:CreateTimer(0.0035, function()
            illusion2:CastAbilityOnTarget(target, subab, -1)
        end)
    end)
    Timers:CreateTimer(0.8, function()
            local rand_distance = math.random(300, 500)
    local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
        local illusion3 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
        illusion3:SetControllableByPlayer(caster:GetPlayerID(), true)
        illusion3:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
        local subab = illusion3:FindAbilityByName("blink_strike_datadriven_ills")
        local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
        Timers:CreateTimer(0.0035, function()
            illusion3:CastAbilityOnTarget(target, subab, -1)
        end)
    end)
        Timers:CreateTimer(1.0, function()
                local rand_distance = math.random(300, 500)
    local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
        local illusion4 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
        illusion4:SetControllableByPlayer(caster:GetPlayerID(), true)
        illusion4:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
        local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
        local subab = illusion4:FindAbilityByName("blink_strike_datadriven_ills")
        Timers:CreateTimer(0.0035, function()
            illusion4:CastAbilityOnTarget(target, subab, -1)
        end)
    end)
        if ability:GetLevel() > 1 then
            Timers:CreateTimer(1.2, function()
                    local rand_distance = math.random(300, 500)
    local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
        local illusion5 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
        illusion5:SetControllableByPlayer(caster:GetPlayerID(), true)
        illusion5:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
        local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
        local subab = illusion5:FindAbilityByName("blink_strike_datadriven_ills")
        Timers:CreateTimer(0.0035, function()
            illusion5:CastAbilityOnTarget(target, subab, -1)
        end)
    end)
        end
if ability:GetLevel() > 2 then
    Timers:CreateTimer(1.4, function()
            local rand_distance = math.random(300, 500)
    local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
        local illusion6 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
        illusion6:SetControllableByPlayer(caster:GetPlayerID(), true)
        illusion6:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
        local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
        local subab = illusion6:FindAbilityByName("blink_strike_datadriven_ills")
        Timers:CreateTimer(0.0035, function()
            illusion6:CastAbilityOnTarget(target, subab, -1)
        end)
    end)
end
    if ability:GetLevel() > 3 then
        Timers:CreateTimer(1.6, function()
            local rand_distance = math.random(300, 500)
            local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
            local illusion7 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
            illusion7:SetControllableByPlayer(caster:GetPlayerID(), true)
            illusion7:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
            local subab = illusion7:FindAbilityByName("blink_strike_datadriven_ills")
            local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
            Timers:CreateTimer(0.0035, function()
                illusion7:CastAbilityOnTarget(target, subab, -1)
            end)
        end)
    end
    if caster:HasTalent("special_bonus_unquie_2_attacks") then
                Timers:CreateTimer(1.8, function()
            local rand_distance = math.random(300, 500)
            local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
            local illusion8 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
            illusion8:SetControllableByPlayer(caster:GetPlayerID(), true)
            illusion8:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
            local subab = illusion8:FindAbilityByName("blink_strike_datadriven_ills")
            local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
            Timers:CreateTimer(0.0035, function()
                illusion8:CastAbilityOnTarget(target, subab, -1)
            end)
        end)
                        Timers:CreateTimer(2.0, function()
            local rand_distance = math.random(300, 500)
            local origin = caster:GetAbsOrigin() + RandomVector(rand_distance)
            local illusion9 = CreateIllusion(caster,caster,origin, duration,outgoingDamage,incomingDamage)
            illusion9:SetControllableByPlayer(caster:GetPlayerID(), true)
            illusion9:SwapAbilities("blink_strike_datadriven", "blink_strike_datadriven_ills", false, true)
            local subab = illusion9:FindAbilityByName("blink_strike_datadriven_ills")
            local p = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_smoke_b.vpcf", PATTACH_ABSORIGIN_FOLLOW, illusion)
            Timers:CreateTimer(0.0035, function()
                illusion9:CastAbilityOnTarget(target, subab, -1)
            end)
        end)
                    end
end


Функция CreateIllusion() взята из библиотеки и работает в других кодах исправно.
 
Реклама: