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

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.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
17
Raised:
native EnumItemsInRect
native GetItemType / GetItemTypeId
Куда и как вписать зону и тип предмета?
21
Тебе подойдет пример на Jass? Я в графических триггерах не разбираюсь.
17
Raised:
Тебе подойдет пример на Jass? Я в графических триггерах не разбираюсь.
В Jass я не разбираюсь, смогу только скопировать, желательно выделить то, что придется изменить и объяснить как именно это сделать.
18
Извини за грубость, но прежде чем задать этот вопрос ты сам попробовал полистать GUI меню со всякими функциями или почитать это?
17
UrsaBoss:
Извини за грубость, но прежде чем задать этот вопрос ты сам попробовал полистать GUI меню со всякими функциями или почитать это?
Через триггеры можно выбрать конкретный предмет у героя и удалить его, но массово в какой-то зоне, тем более конкретный , я такого не нашел.
26
Absolute, поддерживаю UrsaBoss, вроде бы ты за серьёзную вещь взялся, но вопросы такие, что просто подумать, порыться в редакторе или вбить вопрос в поисковик. Сюда обращаются, когда уже все эти варианты испробованы.

Вот скрин из карты, где делал перемещение предметов из изолированной локации вслед за героем. Чтобы отсеять лишь нужные предметы, ставь действие If/Then/Else.
Загруженные файлы
17
8gabriel8:
Absolute, поддерживаю UrsaBoss, вроде бы ты за серьёзную вещь взялся, но вопросы такие, что просто подумать, порыться в редакторе или вбить вопрос в поисковик. Сюда обращаются, когда уже все эти варианты испробованы.

Вот скрин из карты, где делал перемещение предметов из изолированной локации вслед за героем. Чтобы отсеять лишь нужные предметы, ставь действие If/Then/Else.
Но я не смогу сделать этого с предметом определенного типа, удалятся все предметы?
21
Предметы могут быть следующих типов:

ITEM_TYPE_ANY
ITEM_TYPE_ARTIFACT
ITEM_TYPE_CAMPAIGN
ITEM_TYPE_CHARGED
ITEM_TYPE_MISCELLANEOUS
ITEM_TYPE_PERMANENT
ITEM_TYPE_POWERUP
ITEM_TYPE_PURCHASABLE
ITEM_TYPE_TOME
ITEM_TYPE_UNKNOWN

При конвертации регионов в рект, к названию региона добавляется префикс gg_rct_Название_Региона (пустые места между словами заменяются "_" (нижним подчеркиванием)).

Избегай кириллических символов в названиях регионов. Потому что они конвертируются в это. Как именно - думай сам, если оно вообще тебе нужно.
То что тебе нужно делается с помощью следующей команды/функции:
    call rRemoveItemType(название твоего региона,тип предмета из списка выше)
Пример: prntscr.com/kc5cot
Алсо стоит сказать что технически регион - это группа ректов.
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, itemtype iT returns nothing
        call EnumItemsInRect(r,null,function rRemoveItemTypeAction)
        
        loop
            if GetItemType(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
26
Ну вот опять
Но я не смогу сделать этого с предметом определенного типа, удалятся все предметы?
Чтобы отсеять лишь нужные предметы, ставь действие If/Then/Else.
Загруженные файлы
21
Absolute, и да, что ты подразумеваешь под типом предметов? itemtype или itemtypeid (равкод)?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.