Перемещение по местности
|
|
Razor_dex | Дата: Пятница, 14 Января 2011, 13:23:12 | Сообщение # 1 |
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
| Как сделать чтобы Определенный герой мог ходить сквозь деревья, камни,кусты и перемещатся по воде\ Но при этом он немог бы перемещатся по горам,через ворота и каменых стен.
|
|
|
|
oleg_best_oleg | Дата: Пятница, 14 Января 2011, 15:50:34 | Сообщение # 2 |
Группа: Заблокированные
Сообщений: 1726
Награды: 0
Репутация: 654
Блокировки:
| Анимация - откл. столкновение
|
|
|
|
Пикс | Дата: Пятница, 14 Января 2011, 15:52:45 | Сообщение # 3 |
3 уровень
Группа: Пользователи
Сообщений: 53
Награды: 0
Репутация: 4
Блокировки:
| oleg_best_oleg, он тогда будет сквозь все проходить. а нам такое не нада
Без любви к своему делу создать что-то великое невозможно, а ради всего остального жить нет смысла (с) Сергей Орловский (глава компании Astrum Nival)
|
|
|
|
SirNikolas | Дата: Пятница, 14 Января 2011, 15:52:55 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| oleg_best_oleg,Quote (Razor_dex) Но при этом он не мог бы перемещатся по горам, через ворота и каменые стены.
|
|
|
|
Razor_dex | Дата: Пятница, 14 Января 2011, 23:23:07 | Сообщение # 5 |
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
| Угу, вот незадача -_-, Ну я думаю это как то в условиях че то химичить... По воде в принципе можно и без триггера там просто поменять категорию юнита как земноводный, а в остальном пока незнаю как...
|
|
|
|
Metanol | Дата: Суббота, 15 Января 2011, 07:31:10 | Сообщение # 6 |
Группа: Заблокированные
Сообщений: 4565
Награды: 11
Репутация: 1884
Блокировки:
| Quote (Razor_dex) Угу, вот незадача -_-, Ну я думаю это как то в условиях че то химичить... По воде в принципе можно и без триггера там просто поменять категорию юнита как земноводный, а в остальном пока незнаю как... Если у тебя один герой, который должен так делать, то можно так: Ставишь твоему герою тип - летающий. И везде где горы, каменные стены, ворота ставишь блокиратор пути(воздух). Если не один, то можно через тригги: Событие: Юнит зашёл в область 1 Условие: Входящий юнит равно тво герой Действие: двигать юнита куда тебе надо.
новый акк: http://warcraft3ft.info/index/8-70993
|
|
|
|
Пикс | Дата: Суббота, 15 Января 2011, 14:00:44 | Сообщение # 7 |
3 уровень
Группа: Пользователи
Сообщений: 53
Награды: 0
Репутация: 4
Блокировки:
| Metanol, бвеее) некрасиво, неудобно... но хоть как то) хотя я лучше бы забыл про эту идею чем реализовал так)
Без любви к своему делу создать что-то великое невозможно, а ради всего остального жить нет смысла (с) Сергей Орловский (глава компании Astrum Nival)
|
|
|
|
Razor_dex | Дата: Суббота, 15 Января 2011, 15:30:20 | Сообщение # 8 |
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
| Quote (Metanol) Если у тебя один герой, который должен так делать, то можно так: Ставишь твоему герою тип - летающий. И везде где горы, каменные стены, ворота ставишь блокиратор пути(воздух). В том то и дело что у меня будет еще 1 герой, у которого способность садится на птицу и летать ==>Отсюда следует что блокираторы пути бессмысленно ставитьДобавлено (15-01-2011, 15:30) ---------------------------------------------
Quote (Пикс) Событие: Юнит зашёл в область 1 Условие: Входящий юнит равно тво герой Действие: двигать юнита куда тебе надо. Так это же триггер на Тп
|
|
|
|
[DUОS] | Дата: Суббота, 15 Января 2011, 20:30:43 | Сообщение # 9 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Хмм, могу вот показать решение такой проблемы на Jass. Code function CorrectUnitPointOrder takes unit u, real x, real y, integer orderid returns nothing local real a = Atan2(GetWidgetY(u) - y,GetWidgetX(u) - x) local real dist = (GetWidgetY(u) - y)*(GetWidgetY(u) - y)+(GetWidgetX(u) - x)*(GetWidgetX(u) - x) local real x1 local real y1 call IssueImmediateOrderById(u,851972) loop exitwhen dist <= 0 set x1 = x + dist * Cos(a) set y1 = y + dist * Sin(a) if IsPointWater(x1,y1) == true or IsTerrainPathable(x1,y1,PATHING_TYPE_WALKABILITY) == false then call IssuePointOrderById(u,orderid,x1,y1) set dist = 14. endif set dist = dist - 15. endloop endfunction При использовании функции она проверит как надо точку при перемещении.
|
|
|
|
Brut@lus | Дата: Суббота, 15 Января 2011, 20:44:17 | Сообщение # 10 |
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
| Вот Razor_dex этого точно не поймёт, [DUОS]
|
|
|
|
Razor_dex | Дата: Понедельник, 17 Января 2011, 19:27:44 | Сообщение # 11 |
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
| Пойду учить Джасс Хотя я ожидал обойтись без него
|
|
|
|