Можно ли удалить предметы определенного типа, в указанной области. К примеру мне надо удалить руны с определенной зоны, можно это устроить?

Raised, а зачем ты сначала добавляешь в массив с помощью EnumItemsInRect, а потом идёшь по нему циклом?
library RegionRemoveItemType

    globals
        private integer CurrentType
    endglobals

    function RemoveItemOfType takes nothing returns nothing
        if GetItemTypeId(GetFilterItem()) == CurrentType then
            call RemoveItem(GetFilterItem())
        endif
    endfunction


    function RemoveItemOfTypeInRect takes rect r, integer iT returns nothing
        set CurrentType = iT
        call EnumItemsInRect(r, function RemoveItemOfType, null) // да, в filter можно передавать функции, которые ничего не возвращают.
    endfunction
    
endlibrary

Да и вариант 8gabriel8 нормальный, как раз для человека, который не разбирается в Jass.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
Понял. Тогда тебе нужно это:
 call rRemoveItemType(название твоего региона,равкод предмета)
code
library RegionRemoveItemType

    globals
        private item array ITEMS
        private integer i = 0
    endglobals


    function rRemoveItemTypeAction takes nothing returns nothing
        set ITEMS[i] = GetEnumItem()
        set i = i+1
    endfunction


    function rRemoveItemType takes rect r, integer iT returns nothing
        call EnumItemsInRect(r,null,function rRemoveItemTypeAction)
        
        loop
            if GetItemTypeId(ITEMS[i]) == iT then
                call RemoveItem(ITEMS[i])
                set ITEMS[i] = null
            else
                set ITEMS[i] = null
            endif
        exitwhen i == 0
            set i = i-1
        endloop
    endfunction
    
endlibrary

В топку руссификатор.
28
Raised, а зачем ты сначала добавляешь в массив с помощью EnumItemsInRect, а потом идёшь по нему циклом?
library RegionRemoveItemType

    globals
        private integer CurrentType
    endglobals

    function RemoveItemOfType takes nothing returns nothing
        if GetItemTypeId(GetFilterItem()) == CurrentType then
            call RemoveItem(GetFilterItem())
        endif
    endfunction


    function RemoveItemOfTypeInRect takes rect r, integer iT returns nothing
        set CurrentType = iT
        call EnumItemsInRect(r, function RemoveItemOfType, null) // да, в filter можно передавать функции, которые ничего не возвращают.
    endfunction
    
endlibrary

Да и вариант 8gabriel8 нормальный, как раз для человека, который не разбирается в Jass.
Принятый ответ
21
PT153, теперь я сам бы хотел знать. Думаю - потому что забыл как enum работает.
26
Absolute:
Не могу разобраться, у меня руссификатор стоит
Тогда понятно почему такие вопросы, в русификаторе перевод не несёт должного понимания сути. Вот карта с примером триггера xgm.guru/files/100/211841/comments/390977/1.w3x, чтобы посмотрел с русификатором.
Загруженные файлы
17
8gabriel8:
Absolute:
Не могу разобраться, у меня руссификатор стоит
Тогда понятно почему такие вопросы, в русификаторе перевод не несёт должного понимания сути. Вот карта с примером триггера xgm.guru/files/100/211841/comments/390977/1.w3x, чтобы посмотрел с русификатором.
Так куда понятнее.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.