Скилл заключается в том, что юнит кидает молоток в выбранного врага, тот станится и получает урон, потом я создаю группу вокруг таргета, и наношу всем поочередно урон, но почему-то наносится урон только таргету(потому что он получает урон от способности в редакторе) Остальные рядом ни урона, ни оглушения не получают. Прикрепил карту к вопросу.
function Trig_Spell_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function Trig_Spell_Actions takes nothing returns nothing 
    local unit caster = GetSpellAbilityUnit()
    local unit target = GetSpellTargetUnit()
    local unit checked_unit
    local unit dummy_stun 
    local group units_in_radius = CreateGroup()
    local real distance = DistanceBetweenPoints(GetUnitLoc(caster),GetUnitLoc(caster)) 
    local real hammer_speed = 1000 
    local real radius = 225 
    local real lvl_ability
    local real damage = 70 + lvl_ability * 70
    local real time = distance / hammer_speed
    local real target_position_x = GetUnitX(target)
    local real target_position_y = GetUnitY(target)
    call TriggerSleepAction(time)
    call GroupEnumUnitsInRange(units_in_radius,target_position_x,target_position_y,radius,null)
    call GroupRemoveUnit(units_in_radius,target)
loop
    exitwhen checked_unit == null 
    set checked_unit = FirstOfGroup(units_in_radius)
    if IsUnitType(checked_unit,UNIT_TYPE_DEAD) == FALSE and IsUnitEnemy(checked_unit,GetOwningPlayer(caster)) == TRUE then 
        if lvl_ability == 1 then
            set dummy_stun = CreateUnit(GetOwningPlayer(caster),'h001',target_position_x,target_position_y,bj_DEGTORAD)
            call IssueTargetOrder(dummy_stun,"thunderbolt",checked_unit)
            call UnitDamageTarget(caster,target,damage,false,false,null,null,null)
            call GroupRemoveUnit(units_in_radius,checked_unit)
            set checked_unit = FirstOfGroup(units_in_radius)
            call RemoveUnit(dummy_stun)
        endif
        if lvl_ability == 2 then
            set dummy_stun = CreateUnit(GetOwningPlayer(caster),'h002',target_position_x,target_position_y,bj_DEGTORAD)
            call IssueTargetOrder(dummy_stun,"thunderbolt",checked_unit)
            call UnitDamageTarget(caster,target,damage,false,false,null,null,null)
            call GroupRemoveUnit(units_in_radius,checked_unit)
            set checked_unit = FirstOfGroup(units_in_radius)     
            call RemoveUnit(dummy_stun)
        endif 
        if lvl_ability == 3 then
            set dummy_stun = CreateUnit(GetOwningPlayer(caster),'h004',target_position_x,target_position_y,bj_DEGTORAD)
            call IssueTargetOrder(dummy_stun,"thunderbolt",checked_unit)
            call UnitDamageTarget(caster,target,damage,false,false,null,null,null)
            call GroupRemoveUnit(units_in_radius,checked_unit)
            set checked_unit = FirstOfGroup(units_in_radius) 
            call RemoveUnit(dummy_stun)
        endif 
        if lvl_ability == 4 then 
            set dummy_stun = CreateUnit(GetOwningPlayer(caster),'h003',target_position_x,target_position_y,bj_DEGTORAD)
            call IssueTargetOrder(dummy_stun,"thunderbolt",checked_unit)
            call UnitDamageTarget(caster,target,damage,false,false,null,null,null)
            call GroupRemoveUnit(units_in_radius,checked_unit)
            set checked_unit = FirstOfGroup(units_in_radius)  
            call RemoveUnit(dummy_stun)
        endif 
    endif
    call GroupRemoveUnit(units_in_radius,checked_unit)
    set checked_unit = FirstOfGroup(units_in_radius)  
endloop
    set caster = null 
    set target = null 
    set checked_unit = null
    set dummy_stun = null
    call DestroyGroup(units_in_radius)
endfunction

function InitTrig_Spell takes nothing returns nothing 
    local trigger t = CreateTrigger()
    local integer index
    set index = 0
loop
    exitwhen index == 14
    call TriggerRegisterPlayerUnitEvent(t,Player(index),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
    set index = index + 1 
endloop
    call TriggerAddAction(t,function Trig_Spell_Actions)
    call TriggerAddCondition(t,function Trig_Spell_Conditions)
    set t = null
endfunction 


У тебя цикл закончился не начавшись
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
перебор 1 таймером стека быстрее чем хэш в 3n раз где n - количество одновременно работающих триггеров
В базе есть статья об этом?
ответ
убрал координаты даммика все заработало
ответ
Bergi_Bear, не знаю, я так понимаю, что редактор кампаний как-то по особому позволяет редактировать карту. Насколько помню, изменения карты, что вносятся через редактор кампаний, не влияют на саму карту.
ответ
Lord_Tomat, я хотел скриншот. У тебя стоит галка "Запускать во время инициализации" в самом верху триггера?
Используйте форматирование.
ответ
это всегда было или после определённого момента?


28

У тебя цикл закончился не начавшись
Загруженные файлы
Принятый ответ
32
Мда, лютая дичь. Автор хоть бы немного почитал статьи.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.