Способность отталкивание
позволяет пользователю отталкивать от себя с радиусом 600 близких вражеских юнитов.
как мне после добавления группы вражеского юнита удалить его когда он сдохнет?
код:
function FilterKoroche takes nothing returns boolean
    return IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true and IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false 
endfunction

function Knockback takes nothing returns nothing
    local unit u = LoadUnitHandle(udg_H, 3, 0) 
    local unit e = GetEnumUnit()
    local real x
    local real y
    local real r
    set r = 57.295*Atan2(GetWidgetY(e)-GetWidgetY(u), GetWidgetX(e)-GetWidgetX(u))
    set x = GetUnitX(e) + 30*Cos(r * 0.0174)
    set y = GetUnitY(e) + 30*Sin(r * 0.0174)
    call SetUnitPosition( e, x,y )
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\FlakCannons\\FlakTarget.mdl",GetUnitX(e),GetUnitY(e)))
    set x=0
    set y=0
    set r=0
    set u = null
    set e = null
endfunction

function Knockback_Actions takes nothing returns nothing
    local group g = LoadGroupHandle(udg_H, 3, 1) 
    call ForGroup( g, function Knockback )
    set g = null
endfunction

function Trig_Knockback_Actions takes nothing returns nothing
if GetSpellAbilityId() == 'A000' then
    local trigger z = CreateTrigger()
    local boolexpr b = Condition(function FilterKoroche)
    local unit a = GetTriggerUnit()
    local group g = CreateGroup()
    call GroupEnumUnitsInRange(g,GetWidgetX(a),GetWidgetY(a),600,b)
    call SaveUnitHandle(udg_H, 3, 0, a) 
    call SaveGroupHandle(udg_H, 3, 1, g) 
    call TriggerRegisterTimerEvent( z, 0.03, true )
    call TriggerAddAction(z,function Knockback_Actions)
    call DestroyBoolExpr(b)
    set b = null
    set a = null
    call TriggerSleepAction( 0.50 )
    call DestroyGroup(g)
    call DestroyTrigger( z )
    call FlushChildHashtable(udg_H,3)
    set z = null
    set g = null
endif    
endfunction

//===========================================================================
function InitTrig_ShinraTensei takes nothing returns nothing
    local trigger Nagato = CreateTrigger(  )
    call TriggerInitAll( Nagato, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( Nagato, function Trig_Knockback_Actions )
    set Nagato = null
endfunction

событие юнит умер
действие удалить юнита из группы
хватит уже писать тупые вопросы ответ на которые есть в статьях и F.A.Q.
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
событие юнит умер
действие удалить юнита из группы
хватит уже писать тупые вопросы ответ на которые есть в статьях и F.A.Q.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.