Помогите реализовать следующую задумку. Если начинается строительство не в зоне, то что бы команда отставить. У меня в карте 100+ игровых зон, то есть если игрок пытается строить не в этих зонах, что бы приказ "отставить". Как лучше всего это реализовать? или допустим пойти по другому пути, если он есть) Спасибо!!

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

записать все зоны в массив областей
проверять циклом нахождение координат точки строительства в какой-либо из них
если нет ни в одной, то отставить
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
19
3 года назад
0
Похожие вопросы:

ответ
Kind Ram:
Если у юнита тип перемещения включён на "нет", но есть скорость перемещения, он будет перемещаться сквозь любые объекты. Если же у него перемещение стоит "летающий", то его могут заблочить только воздушные юниты и воздушные блокираторы пути. Но в случае с летающим типом, это станет заметно как он "плавно" взбирается на вертикальные стены рельефа.
ответ
orc01, хм... Ладно, попробую сейчас.
Всё, нашёл как нужно было сделать
Через то же что и первый раз делал, только выбрал всех юнитов игрока красного, то есть - одного героя. И сразу все стало нормально)
ответ
8gabriel8, стандартные порталы как раз включаются триггером, так же триггерно им можно назначать области телепорта, так же они не ломают карту путей.
Насчет упираются в здание, карту путей ставь от портала, физ размер в 0.
ответ
Альфа канал (есть статья на сайте), нестандартная шарообразная модель неба (модель есть на сайте) и правильный туман.
ответ
Так что лучше теперь юзать?)
Отключаемый триггер с общим событием, который включается когда есть нужные юниты и отключается когда их нет.

0
22
3 года назад
0
записать все зоны в массив областей
проверять циклом нахождение координат точки строительства в какой-либо из них
если нет ни в одной, то отставить
Принятый ответ
0
23
3 года назад
0
раставить блокатор с запретом строить главное текстура цвет черный вроде запрешает строить и радуем.

было гайд каждый цвет текстур отвечал запреты строить или проходить или летать
0
27
3 года назад
Отредактирован MpW
0
pro100master, в этом то и проблема в моей наработке. блокираторы ограничены 3 типами, и они общие. нельзя индивидуально сделать для каждого игрока. пример, для одного игрока можно строить, тк это его зона. А синему игроку нельзя. Как такое сделать? Триггерно можно по-другому сделать, но не будет это показано, что там чужая зона. Только молниями отделил и все. как и сказал Proshel_Doty отмена и системная ошибка о том что нельзя. И все.
но вот визуальная составляющая, помните, когда выбираете площадку. У вас подкрашивается цветом: можно-зеленый, нельзя - красный. Деревья, здания, клиффы красным подкрашивается маркер. Визуально можно еще и подкрашивать красным чужую зону. Правда никто не знает? только в статье берги есть описание, что можно маркеры перекрашивать при строительстве, жаль наработки нету для примера.
0
3
3 года назад
0
pro100master:
раставить блокатор с запретом строить главное текстура цвет черный вроде запрешает строить и радуем.

было гайд каждый цвет текстур отвечал запреты строить или проходить или летать
это вообще не вариант
0
29
3 года назад
Отредактирован nazarpunk
0
Так можно добавить все Rect в Region и использовать IsPointInRegion().
1
27
3 года назад
Отредактирован MpW
1
но вот визуальная составляющая, помните, когда выбираете площадку. У вас подкрашивается цветом: можно-зеленый, нельзя - красный. Деревья, здания, клиффы красным подкрашивается маркер. Визуально можно еще и подкрашивать красным чужую зону. Правда никто не знает? только в статье берги есть описание, что можно маркеры перекрашивать при строительстве, жаль наработки нету для примера.
посмотрел как маркеры создаются у берги в статьях. там используют image. вроде можно текстурки пути скрыть (если они будут мешать), нужную там текстуру цвета взять. по-моему черная делает прозрачной маркер. xgm.guru/p/wc3/pathing-alternate или вообще стереть путь к текстурке в редакторе у здании. но наверн придется для каждого размера площадки создавать свой черный, ибо когда мышкой проволишь к границам карты, то чувствуется что упирается ваш квадрат об границу. из-за чего она препятствует? наверн текстура. еще интересно черная текстурка будет упираться? если нет, то можно взять цвет у наземного блокиратора, кажется красный?
визуально поверх ландшафта прорисовывать image на кубики. там у вара сетка 32x32. так что не нужно пиксельно делать. Визуально они показывают только локальному игроку GetLocalPlayer. И толкать ежесекудно функцией SetImagePosition относительно координат мыши. А SetImageColor менять цвет, и делать прозрачной. ниче сложного для 1.26 нет, разве что координаты мыши не отследить. но в рефе все есть
native CreateImage takes string file, real sizeX, real sizeY, real sizeZ, real posX, real posY, real posZ, real originX, real originY, real originZ, integer imageType returns image
native SetImagePosition takes image whichImage, real x, real y, real z returns nothing
а моменты прожатия на иконку здания в менюшке отслеживаем так

но проблемы прибавятся, если отключим вариковский. по-моему IsTerrainPathable не отслеживает блокираторы, деревья, здания. и похоже придется делать свой
0
23
3 года назад
0
МрачныйВорон, черный удаляется все запреты =) и а синый запрешает строить.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.