Если у меня есть вот такой код:
Code
local real x
local real y
local rect c
local integer i = 1
loop
exitwhen i > 10
set x = GetWidgetX(udg_HeroesPlaying[i])
set y = GetWidgetY(udg_HeroesPlaying[i])
set c = Rect( x - 12.5, y - 12.5, x + 12.5, y + 12.5 )
call EnumItemsInRect( c, null, function FilterItems(i) )
call RemoveRect(c)
set i = i + 1
endloop
set c = null
И вот функция FilterItems которая должна принимать integer
Code
function FilterItems takes integer i returns nothing
local integer it = GetItemTypeId(GetFilterItem())
if it == 'I04M' or it == 'I04N' or it == 'I04O' or it == 'I04Q' or it == 'I04R' or it == 'I04S' then
call UnitAddItem( udg_HeroesPlaying[i], GetFilterItem() )
endif
endfunction
Можно так писать? И почему она выдаёт ошибку там где я пишу call EnumItemsInRect( c, null, function FilterItems(i) ) ? Как правильно сделать так что бы функция принимала интежер и ничего не возвращала?