Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Как определить, пройдет ли Б/е и точку?
Есть ли функция, определяющая, пойдет юнит в указанную точку или нет? Или придется при помощи дамми-юнита проверять? Отредактировано Линкольн 6 Эхо, 15.11.2008 в 07:37. |
15.11.2008, 07:21 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
что вы понимаете под понятием "пройдет"? карту путей или траекторию его пути при отдаче приказа? |
15.11.2008, 09:08 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
ADOLF. Карту путей. Скажем, есть юнит, впереди от него находится обьект (Уклон, декорация, что угодно). Нужно узнать, может ли юнит пройти через этот обьект. Отредактировано Линкольн 6 Эхо, 15.11.2008 в 10:06. |
15.11.2008, 10:00 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
from search
http://xgm.guru/forum/showpost.php?p=363391 |
15.11.2008, 10:28 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Финаменально! Благодарю. |
15.11.2008, 11:18 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
При попытке сохранить карту, функция выдает ошибку.
Symbol IsTerrainPathable multiply defined Код:
|
15.11.2008, 16:21 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Код:
|
15.11.2008, 16:23 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Никогда с подобными функциями не работал. Может и протупил. Я использовал строку.
Код:
Я так понимаю, функция native IsTerrainPathable takes real x, real y, pathingtype t returns boolean есть в common.j и использовать её в коде не правильно. Или нет? |
15.11.2008, 16:59 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Aspid
offline
Опыт:
8,361Активность: |
Линкольн 6 Эхо ты еще мог обозвать собственную переменную или функцию именем IsTerrainPathable, проверься.
Нативка IsTerrainPathable работает только с рельефом, а тебе еще нужно проверить наличие в точке разрушаемых и убиваемых объектов. AMAI использует дамми. Хорошей альтернотивой может стать запихивание в код проанализированной карты путей (граф путей). |
15.11.2008, 17:13 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
ну строчка пральная, если и есть ошибки то не сдесь |
15.11.2008, 17:15 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Хорошо. Буду искать. Прошу пока тему не закрывать. Хмм, стихи. |
15.11.2008, 17:23 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
кстати IsTerrainPathable не подходит в некоторых случаях - например если координаты попадут между внешним контуром текстуры пути реки и самой водой, функция вернет что там волкабилити |
15.11.2008, 17:37 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Aspid
offline
Опыт:
8,361Активность: |
agentex, рельеф описывается квадратиками 128Х128 с одинаковым типом проходимости во всем квадрате. Проверять эти квадратики на границах нет никакого резона.
Любая точка принадлежит только одному такому квадрату. Напр. (0,0) из квадрата (0,0)-(127.999,127.999). Отредактировано Avatar, 15.11.2008 в 18:39. |
15.11.2008, 18:04 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Avatar, я просто заметил, что такое может случиться.. значит в этих квадратиках почемуто тип проходимости walkable
|
15.11.2008, 18:19 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Avatar. Что, или кто это - AMAI?
Линкольн 6 Эхо добавил: Цитата:
Правельно ли это - использовать дамми? Есть ли другие способы, помимо IsTerrainPathable? Опиши пожалуйста подробнее способ запихивания в код проанализированной карты путей. |
|
15.11.2008, 20:41 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Aspid
offline
Опыт:
8,361Активность: |
AMAI - искусственный интеллект для melee карт. В подобных скриптах действуют несколько иные правила. Например, нет доступа к разрушаемым объектам. Приходится извращаться. В war3map.j на маленькой карте лучше проверять точки на проходимость.
Цитата:
Это чистый креатив. Выбираешь важнейшие точки, находишь расстояния между ними, находишь тонкие стены из деревьев, которые могут быть уничтожены в игре и заносишь все в цепочку if где и как алгоритм требует. |
|
15.11.2008, 22:25 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
/me юзает дамми - перемещает его в проверяемое место, а потом сверяет координаты с нужными |
15.11.2008, 22:26 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Aspid
offline
Опыт:
8,361Активность: |
А потом ставит в проверяемую точку второго дамми и еще раз создает первого и проверяет его координаты. Дело в том, что если в квадрате -2000 +2000 нет возможности разместить юнита в свободной проходимой точке, то юнит размещается в указанной точке, не смотря ни на что. Я не помню результат тестирования, разница в быстродействии при исп 2 дамми и IsTerrainPathable + EnumUnits получилась маленькой. |
15.11.2008, 23:23 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
Даже если это так - для меня не актуально ибо используется для проверки при кастом движении юнита, а ситуации, описанные тобой, в этом случае недостижимы. Имхо эта ситуация вообще достижима достаточно редко. |
15.11.2008, 23:33 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Спасибо, дальше я сам разберусь. Тема больше не понадобится.
Линкольн 6 Эхо добавил: Поспешил. Напоследок, скажите пожалуйста, что делает функция Код:
|
16.11.2008, 18:14 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|