Здравствуйте, можете рассказать как использовать функции c примером:
RemoveAction и RemoveCondition
Что такое Trigger queue и как он работает?

В чем разница между ResetTrigger и RunTrigger(Checking Condition) ?
2
26
7 лет назад
Отредактирован 8gabriel8
2
Чтобы пользоваться RemoveAction и RemoveCondition, надо использовать JASS, либо хэш-таблицу, у меня с хэш-таблицей пример, так как я пользоваться JASS не умею.
Там в самом начале создаётся хэш-таблица hash, потом в неё добавляются условие и действие под номерами соответственно 0 и 1 (в категории 0). Потом через 5 секунд работники переходят под контроль синего игрока, убийство их не даст ничего, так как во втором триггере теперь создано условие, что убитый юнит должен быть рабом. Когда убиваешь раба, то триггер срабатывает, и работники переходят под твой контроль. Но через пять секунд они снова переходят на сторону синего, а над паладином появляется восклицательный знак, так как было создано и занесено в hash такое действие, теперь можешь убивать любого работника, чтобы они вновь вернулись под твой контроль, но лишь на 5 секунд. Добавляется действие в триггер последним, если нужно ещё что-то, то добавляй ещё действия, потом можешь удалить любое из них, оставив остальные. Действие я удалять не стал, так как аналогично удалению условия.

Trigger queue - это очередь триггеров. Иногда бывает, что события для нескольких триггеров могут выполниться вместе, а сработать триггеры должны по очереди, а не одновременно, в первую очередь это касается кинематик. Действия триггера вносятся в другой триггер, а событие запускает отправку триггера с действиями в очередь триггеров. Если очереди нет, то триггер выполнится сразу, а если есть, то будет ждать конца остальных.
Но вообще вариантов использования trigger queue, конечно же, больше, просто этот пример наиболее наглядный.

RunTrigger(Checking Condition) запускает триггер, не взирая на его события. То есть в триггере может не быть событий, но он будет выполнен, также триггер может быть Turn off (изначально выключен в редакторе), но всё равно он будет выполнен. При этом триггер выполнится, не взирая на события, но учитывая условия, чтобы выполнить триггер без оглядки на события и условия, нужно поставить RunTrigger(Ignoring Condition).
А ResetTrigger я не знаю, но полагаю по описанию, что он приводит все триггеры в их изначальное состояние до добавления условий и действий. Проверять это мне уже поздно, но ты можешь проверить, практикуясь с RemoveAction и RemoveCondition. Например, добавь новый триггер с событием Игрок ввёл 1 Точное совпадение, в действиях ему ResetTrigger, введи 1 до того, как работники перейдут под контроль синего, если работает так, как я предполагаю, то добавленные условие и действие исчезнут, и ты сможешь убить работника до убийства раба, чтобы работники вернулись на твою сторону.
Загруженные файлы
1
32
7 лет назад
1
keks_090, вот тут есть подробный пример что к чему ссылка
2
27
7 лет назад
2
2
26
7 лет назад
2
Спасибо, Steal nerves, я даже не предполагал, что ResetTrigger сбрасывает на ноль количество выполнений триггера и срабатываний его событий событий с условиями.
0
5
7 лет назад
Отредактирован keks_090
0
8gabriel8:
Спасибо, Steal nerves, я даже не предполагал, что ResetTrigger сбрасывает на ноль количество выполнений триггера и срабатываний его событий событий с условиями.
Спасибо ты хорошо расписал, но твой пример-карта, криво работает)
2
26
7 лет назад
2
keks_090, а что там криво работает?
0
5
7 лет назад
0
8gabriel8:
keks_090, а что там криво работает?
Работники не переходят под мой контроль
2
26
7 лет назад
2
Ты первым оркского раба убиваешь или синего работника? Если работника, то и не должны переходить, потому что стоит условие на раба.
Когда убьёшь раба, то условие на раба уберётся и можно будет любого юнита убивать, чтобы работники вернулись под твой контроль на пять секунд, каждая новая смерть будет их возвращать, пока всех не перебьёшь)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.