Способность отталкивание
позволяет пользователю отталкивать от себя с радиусом 600 близких вражеских юнитов.
как мне после добавления группы вражеского юнита удалить его когда он сдохнет?
код:
позволяет пользователю отталкивать от себя с радиусом 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.
действие удалить юнита из группы
хватит уже писать тупые вопросы ответ на которые есть в статьях и F.A.Q.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
действие удалить юнита из группы
хватит уже писать тупые вопросы ответ на которые есть в статьях и F.A.Q.