[mod/dev] EffectJump
Код:
diff --git a/src/game/MotionMaster.cpp b/src/game/MotionMaster.cpp Но остались некоторые вопросы. 1) как высчитать uint32 time = 521; В тринити делают так uint32 time = speedZ * 100; Но это неправильно.(так как при их расчетах получается число 1500 а должно 521, это напримере Десгрипа http://ru.wowhead.com/spell=49575). 2)И значение speedZ у них неверное. Должно быть в раене 19.2 При поможи speedZ = float(m_spellInfo->EffectMiscValueB[eff_idx])/7.8f; получилось что-то близкое к 19.2, но тоже не уверен в правильности) Не откажусь от советов и помощи в доработки. |
Так в общем все эти размышления по поводу скорости были неверны.
Решил поснифать побольше данных с оффа. Вот что получилось вот как изменяются параметры time и speedZ в зависимости от расстояния. Первый тест: расстояние - 10,931 Цитата:
Цитата:
Цитата:
Все тесты проводились на http://ru.wowhead.com/spell=49576 |
Судя по приведенному, используется приближенная физика расчета параболической траектории. При этом
time=v0*sin(a)/g speedZ явно от приведенной к треугольнику траектории перемещения, тогда speedZ = (v0**2*sin(a)**2/2g)*2/time При этом угол a зависит от расстояния (видимо из-за лимита координаты Z, скорее всего из него и рассчитывается), начальная скорость v0 явно константа, а переменную гравитации g можно выкопать где-нибудь из физики мира ядра. Могу подобрать и все коэффициенты, но это надо глубоко в код лезть... |
Хм, а если на зависимость времени движения от расстояния глянуть, то она полностью линейная выходит, в пределах небольшой погрешности.
8,15411512 - 131 19,637 - T2 10,931 - T3 1 - T4 T2 = 19,637 * 131 / 8,15411512 = 315,48 T3 = 10,931 * 131 / 8,15411512 = 175,61 T4 = 1 * 131 / 8,15411512 = 16,0655 Откуда можно предположить, что на преодоление единицы пути тратится около 16 единиц времени. |
Ну при малом угле а (а при лимите координаты Z он не будет большим никогда, на малой дистанции его придется снижать) скорость перемещения по X действительно будет почти константой ;)
|
Цитата:
|
ну там неправильно считаются time и speedZ
если сравнивать с оффом. Даже на глаз разница ощутима. |
не замечал разницы, что то у вас глаз какой-то слишком точный.
|
Просто я запускал 2 клиента один на оффе другой на свой сервер и сравнивал.
Сравнивал десгрип и прыжок у кошки. Разница видна. На своем серве скорость полета ниже. Да и достаточно сравнить сниффы с официала и пиратки чтобы увидеть что расчеты у тринити неверно делаются. |
Не забываем что мы работаем в 3 мерном пространстве, а трех мерное пространство это бяка. Нужно учитывать рельеф. Что если тот на кого ты прыгаешь находиться выше чем высота прыжка? Учитывайте разницу высот.
|
Проверил мод - работает.
Но когда я притягиваю спеллом ДК к себе моба например и убью его - то после его убийства этот труп от меня с быстрой скоростью ползет на тоже место где стоял моб - вот этот визуальный баг мне непонятен. |
Текущее время: 19:18. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS