Создал свою систему инвентаря, все работает нормально... Кроме самого легкого. Когда предмет выбрасывается из слота оружия, то должен создаваться предмет пустышка (пустой слот).
Но триггер совершенно не запускается, т.к там стоит условие: пользовательское значение манипулируемого предмета = 2. Я проверял, значение расставлено правильно, и когда я вылаживаю из слота у него действительно значение = 2. Но триггер не запускается.
Скрин:
Выкладывать скрины триггера инвентаря не вижу смысла, т.к он большой, и посмотреть можно скачав карту.
Карта:
Что не так, помогите -_-
Заранее спасибо.

Открыл твою карту. Ну да, у тебя там остальные действия пропускаются и триггер этот выключен, лол)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
Т.е. текст не показывается, который у тебя через действие "123"?
26
вот я так делал, периодически проверял все предметы на карте, и заменял соответствующими
library ItemReplacement initializer Init requires InjuredUnits

// globlas
    private timer MyTimer = CT
    
    
private void ItemAct(){
    item i = GetEnumItem()
    int id = GetItemTypeId(i), charges = GetItemCharges(i)
    real x = GetItemX(i), y = GetItemY(i)
        RemoveItem(i)
        if id == 'I004' {
            SetItemCharges(CreateItem('I00D', x, y), charges)
        }
        elseif id == 'I003' {
            SetItemCharges(CreateItem('I00M', x, y), charges)
        }
        elseif id == 'I005' {
            SetItemCharges(CreateItem('I00C', x, y), charges)
        }
        elseif id == 'I001' {
            SetItemCharges(CreateItem('I00B', x, y), charges)
        }
        elseif id == 'I00R' {
            AddVictim(1, x, y, GetRandomReal(0., 360.))
        }
        elseif id == 'I00S' {
            AddVictim(2, x, y, GetRandomReal(0., 360.))
        }
        elseif id == 'I00T' {
            AddVictim(3, x, y, GetRandomReal(0., 360.))
        }
    i = null
}    
    
private bool ItemFilter(){
int id = GetItemTypeId(GetFilterItem())
return (id == 'I004' or id == 'I003' or id == 'I005' or id == 'I001' or id == 'I00R' or id == 'I00S' or id == 'I00T')
}
    
private void ItemEnum(){
    EnumItemsInRect(bj_mapInitialPlayableArea, Filter(function ItemFilter), function ItemAct)
}

private void Init(){
    TimerStart(MyTimer, 0.1, true, function ItemEnum)
}

endlibrary
20
Hate:
Если я просто ставлю событие "Теряет предмет", то работает когда предмет вылаживается. Может попробовать убрать условие, записывать предмет в переменную, а потом уже проверять его значение. И также я могу ссылаться на этот предмет, т.к проверял его значение, при событии теряет предмет.
KaneThaumaturge:
Hate:
Если я просто ставлю событие "Теряет предмет", то работает когда предмет вылаживается. Может попробовать убрать условие, записывать предмет в переменную, а потом уже проверять его значение. И также я могу ссылаться на этот предмет, т.к проверял его значение, при событии теряет предмет.
Эмм, я спутал триггер, черт, я был не прав.
21
Hate:
событие теряет предмет не работает так как вы думаете. оно работает когда юнит умирает и роняет предметы которые падают при смерти.
Ничего подобного. Только что проверил.
20
Proshel_Doty:
Сможешь помочь?
Proshel_Doty:
То робит, то не робит, я не понимаю
Все я понял...
21
KaneThaumaturge:
Proshel_Doty:
Сможешь помочь?
Смогу)
Proshel_Doty:
То робит, то не робит, я не понимаю
Все я понял...
Так что было то?
По любому ошибка в условии)
20
Т.к там событие теряет предмет, он конфликтовал с триггером инвенторя, я отключал триггер и выключал, но там была функция пропустить остальные действия, я забыл про это.
21
Открыл твою карту. Ну да, у тебя там остальные действия пропускаются и триггер этот выключен, лол)
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.