XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
FatalBlade

offline
Опыт: 7,398
Активность:
Как сделать что бы платформы поднимали не всех
У меня в ланде есть платформы, которые я использую в качестве мостов над обрывами. Очень удобно и работает как надо. Неважно на какую высоту их поднять, юниты всегда ходят по ним. Ну сам наврено знаете, не буду обьяснять.
Дело в том, что платформа действует как на наземных так и на летающих юнитов. Как сделать что бы платформы поднимали ТОЛЬКО наземных юнитов? А то не красиво получается, что летит себе юнит, а под ним мост из платфом, и тут вдруг высота юнита резко меняется. А ещё если можно, то что бы они НЕ ПОДНИМАЛИ юнитов с типом передвижения Hover.
Старый 01.10.2012, 13:56
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
только если триггерно менять высоту полёта, пока по мосту ходишь
Старый 01.10.2012, 14:12
FatalBlade

offline
Опыт: 7,398
Активность:
16GB:
только если триггерно менять высоту полёта, пока по мосту ходишь
Как вычислить юнита на мосту. Только надо что бы точно было. Дело в том что платформа то квадратная, и простым расстоянием между координатами это не вычислить. Почему это так важно? Потому что стоит юниту наступить на платформу, его высота тут же меняется. И я не хочу что бы триггерно менялась высота когда юнит рядом с платформой но не на ней, или наоборот, на краю платформы, но с точки зрения триггера не на ней.
Для этого идеально подходят области - они квадратные. Но платформ у меня на карте 480. Не создавать же мне 480 областей?...
Старый 01.10.2012, 14:51
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
Для этого идеально подходят области - они квадратные. Но платформ у меня на карте 480.
Не создавать же мне 480 областей?...
а почему бы собственно и не создать,
создай область на весь мост ровную, ну а дальше вошел добавить полет удалить полет,изменить высоту а как уходит из области то снижать канечно криво но больше решения нету.
Старый 01.10.2012, 15:19
pAxsIs

offline
Опыт: 2,389
Активность:
Вот так попробуй как я сделал. и не придется делать области.
range сделаешь под край моста и все
Вот смотри:
Подходит?
Миниатюры
Кликните на картинку для увеличения
Название:  вот так.JPG
Просмотров: 29
Размер:  43.4 Кбайт  
Старый 01.10.2012, 15:40
FatalBlade

offline
Опыт: 7,398
Активность:
pAxsIs, в том то и дело, что в радиусе 512 это... РАДИУС! Круг. А платформа квадратная. Проверка не даст точный результат.
З.Ы. Кстати то что ты щас написал убьёт карту за пару минут :)
Старый 01.10.2012, 15:47
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
З.Ы. Кстати то что ты щас написал убьёт карту за пару минут :)
удали к чертям эти платформы поставь клифы закрой декором и не парься.
Cosonic5 добавил:
вот смотри как мост сделан...
Прикрепленные файлы
Тип файла: w3x Мост.w3x (54.1 Кбайт, 6 просмотров )

Отредактировано Cosonic5, 01.10.2012 в 16:03.
Старый 01.10.2012, 15:55
FatalBlade

offline
Опыт: 7,398
Активность:
Cosonic5, над клифами юниты тоже меняют высоту :)
Старый 01.10.2012, 16:29
pAxsIs

offline
Опыт: 2,389
Активность:
тебе нужно чтобы летающие юниты могли пролететь под мостом, так?
Старый 01.10.2012, 16:41
FatalBlade

offline
Опыт: 7,398
Активность:
pAxsIs:
тебе нужно чтобы летающие юниты могли пролететь под мостом, так?
нет
мне нужно что бы когда они летали НАД МОСТОМ, их высота не менялась
Старый 01.10.2012, 17:30
pAxsIs

offline
Опыт: 2,389
Активность:
Цитата:
Сообщение от FatalBlade
~pAxsIs:
> тебе нужно чтобы летающие юниты могли пролететь под мостом, так?
нет
мне нужно что бы когда они летали НАД МОСТОМ, их высота не менялась

Высота относительно чего? Земли под мостом, земли до моста, моста
конкретней изъяснись пожалуйста
Старый 01.10.2012, 17:48
FatalBlade

offline
Опыт: 7,398
Активность:
Относительно моста. Ведь мост находится выше земли.
FatalBlade добавил:
Cosonic5:
создай область на весь мост ровную, ну а дальше вошел добавить полет удалить полет,изменить высоту а как уходит из области то снижать канечно криво но больше решения нету.
Ок а если платформы находятся на разной высоте? Как вычислить на сколько поднята платформа от земли. Дело в том что триггерное вычисление высоты юнита делается относительно земли. Если юнит на земле, то его высота равна 0. Но этот "ноль" меняется там где есть платформы, и новым "нулём" становится сама платформа. В результате чего, если высота юнита от земли равна например 400, то когда этот юнит находится над платформой, эти 400 единиц отсчитываются от платформы, а не от земли карты.
То же самое не только с платформами, но и с клиффами и возвышениями. Я был бы очень рад если бы кто нибудь показал/сделал мне наработку, с помощью которой юниты будут летать на одной и той же высоте НЕЗАВИСИМО ОТ РЕЛЬЕФА
Старый 01.10.2012, 18:40
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
вроде в TcX такое было сорсы есть, но там полностью же нестандартная система движения так что.....
Старый 01.10.2012, 18:52
FatalBlade

offline
Опыт: 7,398
Активность:
16GB:
вроде в TcX такое было сорсы есть, но там полностью же нестандартная система движения так что.....
В ТсХ помоему все возвышенности - декор. Но там прыжки тоже на разных высотах. Да и там гигантская система ещё и на cJass или vJass, когда я шарю только в обычном джассе. Мне бы хотя бы знать в чём заключается наработка, как она работает (в теории). Я уже что нибудь попробую сделать на основе этой теории.
А то единственное что приходит на ум, это триггер с периодическим таймером в 0.03 секунды или меньше, где будут проверяться высоты всех юнитов на карте... Сами знаете, что это значит для производительности. Да и даже если сделать так, всё равно, разве можно вычислить высоту юнита по оси Z относительно самого пространства (куба) игры, а не относительно земли?
Есть ещё одна извращённая идея. Всю область которая должна быть непроходимой (в моём случае это альфа тайл), заставить НЕВИДИМЫМИ платформами, и поднять их на высоту моста. Таким образом всё что летает над мостом и над альфа тайлом - будет летать на одной высоте.

Отредактировано FatalBlade, 01.10.2012 в 20:21.
Старый 01.10.2012, 20:10
FatalBlade

offline
Опыт: 7,398
Активность:
Мне интересно ещё кое что. Как автор ТсХ смог использовать аж 25 тайлов вместо 12 и 4 клифа вместо 2?
FatalBlade добавил:
И так, как вычислить/изменить высоту юнита по оси Z относительно самого пространства (куба) игры, а не относительно земли?
Старый 02.10.2012, 00:08
quq_CCCP
Я белый и пушистый!
offline
Опыт: 94,266
Активность:
FatalBlade, есть тактика фишка как картинку на земле расположить (забыл как называется) ну судя по всему этим способом...
Старый 02.10.2012, 07:11
FatalBlade

offline
Опыт: 7,398
Активность:
quq_CCCP, ты про ось Z или про ТсХ?
Если про ось Z, то что мне поможет картинка? Если ей указывается Z по отношению пространства (куба) игры, то это так заложено в варике. Юниту таким образом не укажешь такой же параметр.
Старый 02.10.2012, 10:22
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
function GetUnitZ takes unit u returns real
local location p=GetUnitLocation(u)
local real r=GetPointZ(p)+GetUnitFlyHeight(u)
	call RemoveLocation(p)
set p=null
return r
endfunction
ну можно 1 точку глобальную сделать udg_PointZ==Location(0,0)
тогда функция будет выглядеть так
function GetUnitZ takes unit u returns real
local real r
	call MoveLocation(udg_PointZ,GetUnitX(u),GetUnitY(u))
	set r=GetPointZ(udg_PointZ)+GetUnitFlyHeight(u)
return r
endfunction
в итоге функция возвращает текущую полную высоту юнита
Старый 02.10.2012, 13:07
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 08:42.