Вычитание брони(способности) при атаке происходит стабильно у юнитов созданных при создании(инициализации) карты, однако действием триггер создать юнита и атаковав этого юнита вычет брони(способности) не происходит. Также пробовал призвать юнита с помощью духа воды у дамми-кастера и у этого юнита броня(способность) не вычитается при атаке. В чём же проблема ?
function KDDS_Display takes nothing returns nothing
local unit u = GetTriggerUnit()
local real d = GetEventDamage()
local integer p = GetPlayerId(GetOwningPlayer(GetEventDamageSource()))
SetUnitAbilityLevel(u, 'A002', GetUnitAbilityLevel(u, 'A002') + 1 )
SetUnitAbilityLevel(u, 'A003', GetUnitAbilityLevel(u, 'A003') + 1 )
SetUnitAbilityLevel(u, 'A004', GetUnitAbilityLevel(u, 'A004') + 1 )
SetUnitAbilityLevel(u, 'A001', GetUnitAbilityLevel(u, 'A001') + 1 )
Конец действия
set u = null
set d = 0
set p = 0
endfunction
function KDDS_RegisterUnit takes unit u returns nothing
call TriggerRegisterUnitEvent( gg_trg_Display_Damage_System, u, EVENT_UNIT_DAMAGED )
endfunction

function KDDS_SetUp takes nothing returns nothing
local group g = CreateGroup()
local unit u
set g = GetUnitsInRectAll(GetPlayableMapRect())

loop
set u = FirstOfGroup(g)

exitwhen u == null
call KDDS_RegisterUnit(u)
call GroupRemoveUnit(g, u)
endloop
set g = null

endfunction
===========================================================================
function InitTrig_Display_Damage_System takes nothing returns nothing
set gg_trg_Display_Damage_System = CreateTrigger( )
call TriggerAddAction( gg_trg_Display_Damage_System, function KDDS_Display )
call KDDS_SetUp()
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...