Доброго дня, джентельмены.
Проектируется карта жанра Hero Defense, с типичной механикой волн противников.
Система волн сработана так:
Существует переменная, в которую записывается +1 при возникновении каждого юнита противника.
При гибели юнита, от переменной отнимается один.
Когда погибает юнит, проверяется равна ли переменная 0.
Если равна, то волна считается законченой и стартует новый триггер, переключающий порядковый номер волны и запускающий новую волну.
Система волн сработана так:
Существует переменная, в которую записывается +1 при возникновении каждого юнита противника.
При гибели юнита, от переменной отнимается один.
Когда погибает юнит, проверяется равна ли переменная 0.
Если равна, то волна считается законченой и стартует новый триггер, переключающий порядковый номер волны и запускающий новую волну.
Вопрос:
При одновременной гибели юнитов противника (от сплеша/взрыва/убивающего триггера), периодически происходит дублирование срабатывания триггера, выявляющего окончание волны. Как я понимаю, потому, что несколько триггерных событий происходят одновременно или с коротким промежутком.
При одновременной гибели юнитов противника (от сплеша/взрыва/убивающего триггера), периодически происходит дублирование срабатывания триггера, выявляющего окончание волны. Как я понимаю, потому, что несколько триггерных событий происходят одновременно или с коротким промежутком.
Возможно ли предотвратить дублирование данного триггера в таком случае? Перерабатывать систему в плане иного отсечения момента окончания волны уже сложно, потому что много чего наслоилось сверху.
Принятый ответ
СерафимКречет, чтобы отсечь дублирование окончания в условии триггера поставь проверку, что счетчик больше 0, и тогда триггер не будет запускаться.
Пример:
С: Юнит умирает
У: Счетчик > 0
Д:
set Счетчик = Счетчик - 1
Ждем 0.01 сек
if Счетчик == 0 then
Выдать поражение и текст: волна зввершена
endif
Ты должен назару в окошко стучаться. На вэйт плевать, надо сначала логически понять, что у вас ломается. Ибо это сломается и без вэйта.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Переменная станет равна нулю и запустится ожидание на 10 триггеров. После которого все 10 триггеров увидят переменную равную нулю.
Отредактирован MpW
P.S.: Хотя я и не вполне понял механизм отсечения, его математическую природу.