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

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

Закрытая тема
 
playerzorg

offline
Опыт: 214
Активность:
Кривой полёт снаряда
Как сделать снаряд(юнит, москит, без типа передвижения, но с добавленной и удалённой способностью 'arav' чтобы можно было изменять высоту) летящий по линии типа пример (-1)h0(l/lmax-1) где h0 начальная высота, l текущее расстояние от кастера до снаряда, lmax максимальное расстояние. С этой формулой на склонах снаряд скачет, а мне нужна ровная линия, с такой формулой линия будет ровная только если на всём пути высота рельефа будет одинакова. Тоже самое с параболой, снаряд также скачет на склонах.
Старый 14.10.2009, 21:32
ZregerZ
Мы - лёд!
offline
Опыт: 7,029
Активность:
проверяй высоту на перемещаемой точке и вычитай значение разницы высоты точки от текущей позиции юнита из высоты юнита
Старый 14.10.2009, 22:11
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
подсказываю:
  1. Лучше создать 1 глобалку с локацией - двигай её, бери её высоту.
  2. Функции GetUnitFlyHeight и GetLocationZ тебе в помощь
  3. Производи вычисления =)
Старый 14.10.2009, 22:35
playerzorg

offline
Опыт: 214
Активность:
Вроде всё делаю правильно, а снаряд всё равно скачет
function GetLineHeight takes real h0, real z, real l, real lmax returns real
    return (-1)*h0*(l/lmax-1)-z
endfunction
//
local real h = GetLineHeight(h0,GetLocationZ(GetUnitLoc(c)),DistanceBetweenXY(GetUnitX(c),GetUnitX(b),GetUnitY(c),G​etUnitY(b)),LoadReal(AY,x, StringHash("Range")))

call SetUnitFlyHeight(c,h,0)
//
call SaveReal(AY, i, StringHash("h0"), GetLocationZ(GetUnitLoc(caster)))
Старый 17.10.2009, 16:12
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Библиотека функций => "Определение высоты рельефа"
Старый 17.10.2009, 16:54
playerzorg

offline
Опыт: 214
Активность:
всё, заработало!
call SetUnitFlyHeight(m,-z*(dist/d-1)-GetLocationZ(GetUnitLoc(m))+ZDef,0)
"определение высоты рельефа" я не понимаю зачем нужно двигать локацию и узнавать по ней высоту если есть GetLocationZ
Старый 17.10.2009, 19:13
Закрытая тема

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

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

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

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



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