Недавно обнаружил что не существует Условия по типу
Если "Область в которую вошёл юнит" Равно "Область1"
Как проверить в какую именно область вошёл юнит? если в событиях указаны 3 события по заходу в разные области

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

Сделать 3 отделах триггера
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
4 года назад
0
Похожие вопросы:

ответ
Утечка - это когда не удаляются ненужные объекты. Здесь регион нельзя удалять, потому что без него событие не будет работать. Но если у вас много таких событий, то лучше использовать один регион для всех событий, при условии, что размеры региона не будут изменяться в процессе игры, потому что это может нарушить работу других событий, привязанных к данному региону.
А функция TriggerRegisterEnterRectSimple в теории не утечна, но на практике может утекать, например, если в потоке триггера будет вызвано её уничтожение RemoveRegion(GetTriggeringRegion()).

1
32
4 года назад
1
Сделать 3 отделах триггера
Принятый ответ
1
27
4 года назад
Отредактирован MpW
1
по-моему, там "событие на вход в регион", а не в область. в событии триггера на гуи указывают обычно область. если на jass раскрыть это событие: там берется область, добавляется в регион, и потом на регион вешают событие захода.
по идее можно создать хоть 50 областей, и добавить их в один регион. и не нужно тогда плодить регионы. и 50 областей тоже не нужно плодить. это я к тому что не нужно плодить одинаковые триггеры для каждой области
если нужно проверить в какой области, есть в boolean проверки:
  • находится ли точка или юнит в области, область это прямоугольник (rectangle, рект).
  • находится ли точка или юнит в регионе. в регионе могут несколько областей
0
28
4 года назад
0
Если "Область в которую вошёл юнит" Равно "Область1"
На гуи такой опции нет. Для области (ректа) создаётся регион, и на регион вешается событие. Есть возможность проверить в какой регион вошёл юнит.
0
15
4 года назад
0
PT153:
Если "Область в которую вошёл юнит" Равно "Область1"
На гуи такой опции нет. Для области (ректа) создаётся регион, и на регион вешается событие. Есть возможность проверить в какой регион вошёл юнит.
в том то и дело что возможности проверить в какой именно регион вошёл юнит просто нет
0
28
4 года назад
0
Artyom18, для региона есть, для области нет.
0
27
4 года назад
Отредактирован MpW
0
вот есть
код
native IsLocationInRegion takes region whichRegion, location whichLocation returns boolean
native IsPointInRegion takes region whichRegion, real x, real y returns boolean

function RectContainsCoords takes rect r, real x, real y returns boolean
    return (GetRectMinX(r) <= x) and (x <= GetRectMaxX(r)) and (GetRectMinY(r) <= y) and (y <= GetRectMaxY(r))
endfunction
function RectContainsUnit takes rect r, unit whichUnit returns boolean
    return RectContainsCoords(r, GetUnitX(whichUnit), GetUnitY(whichUnit))
endfunction
так понимаю мы говорим про разные варкрафты или что?)) для гуишников не проблема, если в шапку засунуть код. есть check и на нахождение юнита в ректе (на гуи есть), и на нахождение точки в ректе (правда на гуи не вижу че-то, но не проблема. а вот нашел сорри см. 3 скрин)
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.