Решено Решено - Не смотреть!

DDSuper

Друзья CG
31 Май 2019
405
57
Всем привет, мне необходима помощь из этим!

Lua:
function HitMeCaster(keys)
    local caster = keys.caster
    local target = keys.target
    local ability = keys.ability

    local projectile_info =
    {
        EffectName = "particles/base_attacks/ranged_tower_bad.vpcf",
        Ability = ability,
        vSpawnOrigin = target:GetAbsOrigin(),
        Target = caster,
        Source = target,
        bHasFrontalCone = false,
        iMoveSpeed = 1000,
        bReplaceExisting = false,
        bProvidesVision = true,
        iVisionRadius = 0,
        iVisionTeamNumber = caster:GetTeamNumber()
    }
    ProjectileManager:CreateTrackingProjectile( projectile_info )
    caster:Heal(caster:GetPrimaryAttribute() * 30 / 100, caster)
end
Проблема:

Повтор projectile оно всегда вновь и вновь создается!

Либо я не знаю что делать!
Заранее благодарное спасибо!
 

DDSuper

Друзья CG
31 Май 2019
405
57
Механика: кидаю у врага тогда снаряд летит в кастера
 
Последнее редактирование:

LAPKI

Продвинутый
26 Окт 2018
271
61
Сделай проверку на caster! = target либо ability! = абилка которую ты триггеришь, а лучше оба, так ты избавишься от проблем если абилка будет у нескольких героев сразу и если тебе надо будет юзать абилку при использовании других скиллов на себя. при касте скилла на твоём юните. Так как у тебя при любом хите вызывается скилл, то и твой хил триггерит этот метод
 

DDSuper

Друзья CG
31 Май 2019
405
57
Сделай проверку на caster! = target либо ability! = абилка которую ты триггеришь, а лучше оба, так ты избавишься от проблем если абилка будет у нескольких героев сразу и если тебе надо будет юзать абилку при использовании других скиллов на себя. при касте скилла на твоём юните. Так как у тебя при любом хите вызывается скилл, то и твой хил триггерит этот метод
Но как? Какую проверку сделать?
if caster...Дальше не знаю
Ну или код кинь.

Projectile летит у героя(себя) тогда projectile спавнится уже у самого героя, а target_location становится бесполезным!
 
Последнее редактирование:

xDes

Продвинутый
8 Ноя 2018
232
34
Проект
Boss Survival Adventure
Если ты решил свою проблему, то зачем менять названия темы и не писать решение? Делая это на форуме образуется сотни тем в которых обрывки вопросов/решений, тупо засоряется форум.
 

DDSuper

Друзья CG
31 Май 2019
405
57
Если ты решил свою проблему, то зачем менять названия темы и не писать решение? Делая это на форуме образуется сотни тем в которых обрывки вопросов/решений, тупо засоряется форум.
Решение... Сделал проверку
 

DDSuper

Друзья CG
31 Май 2019
405
57
покажи как сделал
Код:
function HitMeCaster(keys)
    local caster = keys.caster
    local target = keys.target
    local ability = keys.ability
  
    if ability.trigger == nil then
        ability.trigger = false
    end

    if ability.trigger == false then
        local projectile_info =
        {
            EffectName = "particles/units/heroes/hero_abaddon/abaddon_death_coil.vpcf",
            Ability = ability,
            vSpawnOrigin = target:GetAbsOrigin(),
            Target = caster,
            Source = target,
            bHasFrontalCone = false,
            iMoveSpeed = 1000,
            bReplaceExisting = false,
            bProvidesVision = false,
            iVisionTeamNumber = caster:GetTeamNumber()
        }
        ProjectileManager:CreateTrackingProjectile( projectile_info )
        target:EmitSound( "Hero_Abaddon.DeathCoil.Cast" )
        ability.trigger = true
    else
        caster:Heal(caster:GetPrimaryStatValue() * 200 / 100 , caster)
        SendOverheadEventMessage(nil, OVERHEAD_ALERT_CRITICAL, caster, caster:GetPrimaryStatValue() * 200 / 100 , nil)
        ability.trigger = false

        caster:EmitSound( "Hero_Abaddon.DeathCoil.Target" )
    end
end
Я обнаружил самое бесящее!!!
УРОН ПОЧЕМУ-ТО НАНОСИТСЯ НЕ ТОЛЬКО ВРАГУ НО И ПО СЕБЕ ЧТО ДЕЛАЕТ ХИЛ НУЛЕВЫМ!!!
ЧЕРЕЗ ДД И ЧЕРЕЗ ЛУА ПЫТАЛСЯ НО ЭТО БЫЛО БЕСПОЛЕЗНО ВСЕГДА НАНОСИТСЯ ВРАГУ И СЕБЕ
 
  • Нравится
Реакции: MZMAN

LAPKI

Продвинутый
26 Окт 2018
271
61
Код:
function HitMeCaster(keys)
    local caster = keys.caster
    local target = keys.target
    local ability = keys.ability

    if ability.trigger == nil then
        ability.trigger = false
    end

    if ability.trigger == false then
        local projectile_info =
        {
            EffectName = "particles/units/heroes/hero_abaddon/abaddon_death_coil.vpcf",
            Ability = ability,
            vSpawnOrigin = target:GetAbsOrigin(),
            Target = caster,
            Source = target,
            bHasFrontalCone = false,
            iMoveSpeed = 1000,
            bReplaceExisting = false,
            bProvidesVision = false,
            iVisionTeamNumber = caster:GetTeamNumber()
        }
        ProjectileManager:CreateTrackingProjectile( projectile_info )
        target:EmitSound( "Hero_Abaddon.DeathCoil.Cast" )
        ability.trigger = true
    else
        caster:Heal(caster:GetPrimaryStatValue() * 200 / 100 , caster)
        SendOverheadEventMessage(nil, OVERHEAD_ALERT_CRITICAL, caster, caster:GetPrimaryStatValue() * 200 / 100 , nil)
        ability.trigger = false

        caster:EmitSound( "Hero_Abaddon.DeathCoil.Target" )
    end
end
Я обнаружил самое бесящее!!!
УРОН ПОЧЕМУ-ТО НАНОСИТСЯ НЕ ТОЛЬКО ВРАГУ НО И ПО СЕБЕ ЧТО ДЕЛАЕТ ХИЛ НУЛЕВЫМ!!!
ЧЕРЕЗ ДД И ЧЕРЕЗ ЛУА ПЫТАЛСЯ НО ЭТО БЫЛО БЕСПОЛЕЗНО ВСЕГДА НАНОСИТСЯ ВРАГУ И СЕБЕ
Я удивляюсь как вообще у тебя опять не зациклило твои снаряды, ведь trigger ты вообще не передаёшь, он у тебя всегда приходит nil, а значит и else блок в принципе никогда не вызовется
 

LAPKI

Продвинутый
26 Окт 2018
271
61
И самое тупое и простое решение? правда без доп проверок, но тебе с мисткойлом абадона поможет
function HitMeCaster(keys)
local caster = keys.caster
local target = keys.target
local ability = keys.ability
if caster == target then return

local projectile_info =
{
EffectName = "particles/base_attacks/ranged_tower_bad.vpcf",
Ability = ability,
vSpawnOrigin = target:GetAbsOrigin(),
Target = caster,
Source = target,
bHasFrontalCone = false,
iMoveSpeed = 1000,
bReplaceExisting = false,
bProvidesVision = true,
iVisionRadius = 0,
iVisionTeamNumber = caster:GetTeamNumber()
}
ProjectileManager:CreateTrackingProjectile( projectile_info )
caster:Heal(caster:GetPrimaryAttribute() * 30 / 100, caster)
end
 
Реклама: