Добрый вечер, у меня такая проблема: сделал триггер, в котором, при входе определенного юнита в определенную область должен работать триггер, но он работает только в том случае, если юнит зайдет один раз в область, выйдет и опять зайдет, как сделать так что бы первого раза всё сработало?

Принятый ответ

nazarpunk, ну ты бы хоть поинтересовался и удосужился проверить прежде чем дизинфу так нагло говорить, я только что проверил, не учитывает если войти с северо/востока

не первый раз ведь эта тема поднимается уже
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
4
1 год назад
1
Условие не верно. Необходима боевая единица, что заходит в область, а не УЖЕ находится в области.
1
27
1 год назад
1
когда юнит входит в область, учитывается видимо коллизия или что, короче комментатором выше верно подмечено, условие, что юнит находится в области, обрабатывает именно координаты юнита, без коллизии, оффсетов и прочего
1
29
1 год назад
Отредактирован nazarpunk
1
Сделай проверку TriggerUnit == Бриньёльф Торвик и отключай триггер после срабатывания.

когда юнит входит в область, учитывается видимо коллизия или что, короче комментатором выше верно подмечено, условие, что юнит находится в области, обрабатывает именно координаты юнита, без коллизии, оффсетов и прочего
Посмотри внимательно. Когда любой юнит входит в область, идёт проверка на наличие в области героя.
1
27
1 год назад
1
nazarpunk, ну то ладно, я имею ввиду что само событие некорректно срабатывает, если войти например с запада, то всё будет окей, а если с юга, то оно не будет учитывать, такая вот ерунда происходит
1
29
1 год назад
1
я имею ввиду что само событие некорректно срабатывает
Чего? Прямоугольнику пофиг, как в него попадёт юнит.
1
27
1 год назад
1
nazarpunk, ну ты бы хоть поинтересовался и удосужился проверить прежде чем дизинфу так нагло говорить, я только что проверил, не учитывает если войти с северо/востока

не первый раз ведь эта тема поднимается уже
Загруженные файлы
Принятый ответ
1
27
1 год назад
1
1
29
1 год назад
1
ну ты бы хоть поинтересовался и удосужился проверить прежде чем дизинфу так нагло говорить
Почему событие выхода из региона не вывел? Непонятно же, в какой момент выход происходит.
3
17
1 год назад
3
rsfghd, Блин, а что это, баг игры? Это же сильно мешает делать триггеры/скрипты на областях...
1
27
1 год назад
Отредактирован MpW
1
rsfghd,
Это с регионами было точно также. Там на клеточки 32×32 разбивает. Верхние и правые крайние квадратики не учитывает. Но суть та же.
Если у вас рект лежит между коордами 30-56
size = 56-30=26 - размер ректа. Там ширина или длина у пряугольника
minx=30 => программа будет брать 0. Если бы там был 35, то взял бы ближайший шаг 32.
maxx=minx+size=26 => преобразует 32. Сдвигает
Там сдвиг. То есть рект сдвигается на 32 влево и вниз. Поэтому проверка так багуется. Тут ивенты работают, если в эту клеточку попадаешь. Хер знает что так неудобно сдела близзард
Короче, тут как с иконками, от нижнего левого расширяется в правый верхний.

Тут просто ясное дело, что юнит попадает раньше слева или снизу (он уже фактически уже там, ивент опоздывает). И ивент с условием тоже срабатывает.
А сверху или справа, там ивент видимо срабатывает. Но само условие нет, так как самого юнита еще нет в ректе.

Если раскрыть функц ректа, смотреть в условие, там вроде сравнивают координаты. Не в них дело, значит.
А в проверках региона или ивента, как вот они работают. В регионах раьотают по клеткам, ивент входа в рект наверн также на клетки оперирует

minx=30 => программа будет брать 0. Если бы там был 35, то взял бы ближайший шаг 32.
Даже, когда у меня было minx или miny=32, то равен шагу 32. Он все равно берет 0. Будет 64, возмет 32. Будет 256, будет 224.
3
17
1 год назад
3
МрачныйВорон, На скрине выше, регион не совпадает с сеткой. Интересно, а линии сетки совпадают с теми квадратиками 32х32, что ты описал? Если да, то тогда достаточно взять за правило делать области строго по сетке, чтобы исключить баги.
1
27
1 год назад
1
Почему событие выхода из региона не вывел? Непонятно же, в какой момент выход происходит.
выход вроде всегда корректный, зачем событие выхода если мы обсуждаем событие входа, да и на видео, на скринах, видно и область и сам триггер, да и к тому же, если этого всего мало, я скинул карту на которой тестировал

Если да, то тогда достаточно взять за правило делать области строго по сетке, чтобы исключить баги.
лично я отказался от подобной проверки в условиях, я думал можно накидать кучу областей в событие и уже этим условием проверять в какую область юнит зашёл, а нет
в итоге просто на каждый регион регистрировал его рект, и уже выгружал рект из региона триггера
1
29
1 год назад
1
зачем событие выхода если мы обсуждаем событие входа
Если юнит не вышел. то он не сможет заново войти.
Если да, то тогда достаточно взять за правило делать области строго по сетке, чтобы исключить баги.
А можно наплодить даммиков и использовать UnitBecomesRange.
1
27
1 год назад
1
nazarpunk, мне казалось на видео и на скринах чётко видно область, я ведь ещё тайлом её выделил, но ты всё равно гнёшь на своём, если прям так лень смотреть, я запишу видео с дебагом выхода
1
17
1 год назад
1
nazarpunk, мне больше понравилась идея от rsfghd, с регионами, чтобы сделать пересекающиеся rect'ы, добавить их в region'ы, и юзать событие unit enters/leaves Region, а не Rect.
А Unit Range годится для событий и скриптов, не связанных с областями, на любое место карты.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.