Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Новичкам (http://mangos.ytdb.ru/forumdisplay.php?f=40)
-   -   Вопросы по боунд радиусам и SPLINEFLAG_FLYING в мувмент генераторах. (http://mangos.ytdb.ru/showthread.php?t=4287)

BloodWarrior 05.05.2011 12:23

Вопросы по боунд радиусам и SPLINEFLAG_FLYING в мувмент генераторах.
 
Добрый день.
Всем кому не лень потратить немного времени на ответы на нубовопросы - заранее спасибо.

Вопрос первый - касательно боунд радиусов. Фактически столкнулся с такой ситуевиной, когда определенные боссы, мобы - достаточно крупных размеров фактически обрабатываются как по большему БР, нежели имеется у их 3д модели.

Как пример гидра из БФД, или Ониксия.

Фактически для облучивания тушки этот вопрос ценности никакой физической не несет..

Но скажем находясь в зоне от 8 до 25 ярдов нельзя чарджнуться, сразу прочтем сообщение о том, что цель слишком близко.

+ ко всему бой происходящий по мили, касты не рассматриваю даже, выглядит несколько нелепо.
Тот - же танк стоит в ярдах 40 от боунда Ониксии и преспокойно лупцует оню, как и оня танка, ближе подходить ей не к чему.

Хотя все действо по сути должно происходить непосредственно у боунда, перед лапами драконихи.

В какую сторону рыть с некорректными боундами, нужно направление.

Вопрос второй.
Касательно - SPLINEFLAG_FLYING, на примере той-же ониксии возьмем.
С наступлением летной фазы все ок, включается поинт мувмент геренатор, ониксия летает по заранее заданным точкам.
Но тут есть одно но.
Как только оня остается без дела, фактически флаг с нее спадает.
Сперва мне говорили про спадающую анимацию полета, мол Оня стоит в воздухе как на земле, но поскольку использую мувмапы, сразу становится видно, что происходит пересчет Z координаты после достижения финальной точки.

Имею мнение, что данный момент связан конкретно с финализацией передвижения по мувгену, в прочем как и по остальным генераторам, ведь в бою в воде мы наблюдаем примерно схожую ситуацию со спадением флага.

На примере поинт мув гена.
Код:

template<class T>
void PointMovementGenerator<T>::Finalize(T &unit)
{
    unit.clearUnitState(UNIT_STAT_ROAMING|UNIT_STAT_ROAMING_MOVE);

    if (i_destinationHolder.HasArrived())
        MovementInform(unit);
}

Возможно пара дополнительных проверок на нахождение кричера в текущей позиции, с последующим сейвом координат и присвоением необходимого флага избавят от этой болезни?
Ну примерно на словах, без кода - просто голая идея.
но добавить в эту часть дополнительный проверки на из ин вотер и из флай. по з координате до террейна. И именно с насильным сохранением как флага так и положения на последней точке?

Или же я слишком ничего не понимаю? В любом случае реквестирую помощь, любым ответам буду рад.

Mediv 05.05.2011 19:07

Данная проблема довольно серьезная и старая.

Как пример босс Moam, бьющий за 100км в мили, не желающий подходить поближе.

KiriX 05.05.2011 20:21

1) С этими параметрами игрались?
2) Может стоит не снимать флаг SPLINEFLAG_FLYING до возвращения таких НПС на место?

Mediv 05.05.2011 20:58

Цитата:

Сообщение от KiriX (Сообщение 21838)
1) С этими параметрами игрались?
2) Может стоит не снимать флаг SPLINEFLAG_FLYING до возвращения таких НПС на место?

1) Эти параметры к данному вопросу не относятся. Например у Moam там 0.5 радиус всего-лишь, это не мешает бить ему через полкарты.

2) хз =)))

Sid 05.05.2011 22:06

Цитата:

Сообщение от Mediv (Сообщение 21840)
1) Эти параметры к данному вопросу не относятся. Например у Moam там 0.5 радиус всего-лишь, это не мешает бить ему через полкарты.

2) хз =)))

Да ты что? Этими параметрами можно пофиксить имба боунд у хаккара в зг.

Mediv 06.05.2011 01:38

Цитата:

Сообщение от Sid (Сообщение 21842)
Да ты что? Этими параметрами можно пофиксить имба боунд у хаккара в зг.

У вас на вальке пофикшено? :D

Где тогда патч для собщества мангос?

BloodWarrior 06.05.2011 04:16

Цитата:

Сообщение от KiriX (Сообщение 21838)
1) С этими параметрами игрались?
2) Может стоит не снимать флаг SPLINEFLAG_FLYING до возвращения таких НПС на место?

1 - Нет с параметрами не игрался, поэтому сразу и спросил в какую сторону рыть.

2 - флаг спадает сам.
Непонятно по какой особой причине.
Если моб кастует на игрока, то полет есть, оня бьется крыльями в агонии пуляя фаербол.
Если передвигается по поинтам - флаг работает. Если долетела до точки - бухается пузом.

При учете, что сам флаг насильно снимается только на 3ей фазе, когда у они осталось менее 40% вроде. До этого она летает как оголделая по фазе.
За исключением конечной позиции в которой идет простой!

KiriX 06.05.2011 17:38

1 - так поиграйся!
2 - в скрипте сделай так, чтоб не снимался =)

BloodWarrior 06.05.2011 20:29

1 - поиграюсь бесспорно, за это спасибо.
2 - во время бездействя моба он сам падает, хз почему) В скрипте он насильно прописан на всю фазу. Именно в период пассивности и бездействия. Думал это мувмент генераторы, расширить пофлагово на стоп и на конечную обработку - не вканало)

Вообще странная работа с этими флагами по манго.
Взять тех же самых мурлоков в любом болоте.
До того как начинаем с ними биться они красиво плавают, только таскать их, махинировать существами, так визуализация плаванья пропадает, начинается поиск з координаты на террейне при каждой остановке в движении на конечном поинте и фейд до уровня дна и снова поднятие до плеера)

KiriX 06.05.2011 23:46

Ммапсы не используешь?
Флаг добавить в базу, чтоб он, так сказать, вечно был у кричера и посмотреть на поведение.

BloodWarrior 07.05.2011 07:34

Ммапсы еще как использую.
Благодаря этому азговор о у ониксии нет анимации полета когда она останавливается она стоит в воздухе как на земле перетек в другое русло. Флаг полета слетает и прет пересчет.

А если поставить насильно в базу. Она ведь тогда будет зараза вечно летать)

KiriX 07.05.2011 22:54

1) ммапсы не до конца отточены - именно они могут быть причиной твоего бага. Попробуй вообще без них. Именно скомпилированный без них сервер, а не просто отключенные. Если ошибки не будет на "чистом" - тогда к разрабам ммапс писать
2) Не должна вечно летать. Если скрипт грамотный - он должен в подходящее время снимать флаг и совсем не важно, где он был изначально выставлен - в базе или в самом скрипте.

BloodWarrior 08.05.2011 06:58

KiriX
Как я написал в самом начале:
Сперва мне говорили про спадающую анимацию полета, мол Оня стоит в воздухе как на земле, но поскольку использую мувмапы, сразу становится видно, что происходит пересчет Z координаты после достижения финальной точки.

Это какбе подтверждает наличие бага и без ммап.
Просто визуально Оня стоит в воздухе. И не происходит получение з координаты новой на земельке.
Но стоит на 4х лапах. Стои как на земле и стоит без анимации. В ммапах тут явно нет проблемы.
Как нет проблемы со спадающим свимом у мурлоков в воде которые вошли в бой и начинаеш их таскать. Тоже вечные пересчеты.
Все это указано еще с самого начала.

Про базу попробую просто ради интереса.

KiriX 08.05.2011 22:19

Для меня "какбе подтверждает" - не аргумент...

BloodWarrior 09.05.2011 05:40

KiriX
А что для Вас аргумент?)
До сервера добраться и тестонуть с изменениями не могу.

Но разве - становление ониксии в воздухе на 4 лапы как на твердой поверхности только в воздухе не аргумент?
Или вечные попытки получить земельку у плывущего за вами и бьющего вас мурлока в любом водоеме, тоже?
На сервере буз мувмап.

Правда в подобных случаях это называют - отсутствием анимации.

----

Так, же луркал в инфо по базе и нашел примерно следующее.
ПРИМЕЧАНИЕ: MONSTER_MOVE_SPLINE_FLY = MONSTER_MOVE_WALK + MONSTER_MOVE_SPLINE и существо сможет летать от точки к точки.

Про поведение между точками в момент простоя ничего не говорится.

Sid 09.05.2011 09:23

Написал бы что ты про MangosZero.
В нем код
Код:

m_creature->SetByteValue(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_UNK_2);
Который якобы делал парение на месте, в зеро ничего не делает. :)

MaxXx2021 09.05.2011 10:26

Цитата:

Сообщение от BloodWarrior (Сообщение 22004)
KiriX
А что для Вас аргумент?)
До сервера добраться и тестонуть с изменениями не могу.

Но разве - становление ониксии в воздухе на 4 лапы как на твердой поверхности только в воздухе не аргумент?
Или вечные попытки получить земельку у плывущего за вами и бьющего вас мурлока в любом водоеме, тоже?
На сервере буз мувмап.

Правда в подобных случаях это называют - отсутствием анимации.

----

Так, же луркал в инфо по базе и нашел примерно следующее.
ПРИМЕЧАНИЕ: MONSTER_MOVE_SPLINE_FLY = MONSTER_MOVE_WALK + MONSTER_MOVE_SPLINE и существо сможет летать от точки к точки.

Про поведение между точками в момент простоя ничего не говорится.

Cистема Fly Up, Fly Down пока, что не работает. Да и все полеты коряво работают. Взять Вотлк, Ставим анимацию полета валькире она мгновенно стоит по пояс в земле. Теперь, что мы наблюдает на оффе. Стоит Валькира, подпрыгивает, делает взмах крыльями и плавный переход на анимации полета (Fly Up System). При этом, МОДЕЛЬ валькири находится над землей примерно на 5.0f. Хотя само физическое тело находится на земле и ее можно с земли спокойно бить. А ммапсах просто проверять на флаг полета, если он есть то игноривать определенные ограничения.

Forgotten 09.05.2011 11:05

зачем ставить анимацию вручную? анимации(большинство анимаций) определяются клиентом по мувимент флагам.
Насколько я знаю, для полета достаточно добавить MOVEFLAG_HOVER флаг(в MovementInfo) и вызвать SendHeartBeat

BloodWarrior 09.05.2011 11:42

Цитата:

Сообщение от MaxXx2021 (Сообщение 22008)
Cистема Fly Up, Fly Down пока, что не работает. Да и все полеты коряво работают. Взять Вотлк, Ставим анимацию полета валькире она мгновенно стоит по пояс в земле. Теперь, что мы наблюдает на оффе. Стоит Валькира, подпрыгивает, делает взмах крыльями и плавный переход на анимации полета (Fly Up System). При этом, МОДЕЛЬ валькири находится над землей примерно на 5.0f. Хотя само физическое тело находится на земле и ее можно с земли спокойно бить. А ммапсах просто проверять на флаг полета, если он есть то игноривать определенные ограничения.

Мув мапы тут особой роли не влияют, они просто дали понять что проблема гораздо глубже, чем просто отсутствие анимации о котором говорилось.

Все равно у меня на сервер кроме меня еще только 1 чел заходит, для меня особой разницы нет упадет ли оня на землю получив корректную з координату без полета или нет. Просто как-то это нетак) Вот и пытался понять в чем тупка) И как исправить)

KiriX 09.05.2011 16:37

Если оня при возвращении на поинт зависает высоко вверху - тут проблема в чём-то ином, т.к. она должны вернутся в точку респа по всем координатам, включая x, y, z и даже о.

MaxXx2021 09.05.2011 17:28

Цитата:

Сообщение от Forgotten (Сообщение 22010)
зачем ставить анимацию вручную? анимации(большинство анимаций) определяются клиентом по мувимент флагам.
Насколько я знаю, для полета достаточно добавить MOVEFLAG_HOVER флаг(в MovementInfo) и вызвать SendHeartBeat

HOVER воспроизводит Анимацию в клиенте hover, а не fly_stand, fly_up, fly_down.

Собственно нужно сделать в ядре функцию, вроде STAND_CUSTOM, (для червей это закапывание в землю, при установке нормального флага червь вылезает из земли.), которая будет при установке воспроизводить анимацию fly_up, после поднимет модель на 5 метров и будет отвечать за воспроизведение анимаций FLY. И наоборот, убираем, модель снижается, воспроизводится анимация fly_down. При наличии этого флага ммапс игнорирует Z координату и не мутит ничего левого.

Forgotten 10.05.2011 01:33

HOVER мув. флаг это не просто анимация, при включении воспроизводится нужная fly_up и переход в hover анимацию.
Вы хотите вручную ставить fly_up, затем hover при взлете и fly_down при снятии(приземлении)?
Можно, но имхо это велосипед. Не все анимации можно заменить мув. флагами, но я за более простой путь

MaxXx2021 10.05.2011 03:14

Вложений: 2
Цитата:

Сообщение от Forgotten (Сообщение 22057)
HOVER мув. флаг это не просто анимация, при включении воспроизводится нужная fly_up и переход в hover анимацию.
Вы хотите вручную ставить fly_up, затем hover при взлете и fly_down при снятии(приземлении)?
Можно, но имхо это велосипед. Не все анимации можно заменить мув. флагами, но я за более простой путь

Вы не путайте анимации. HOVER это отдельная анимация (Парение). Она не имеет отношения к FLY.

Forgotten 10.05.2011 04:17

Да мы говорили о разных анимациях.

Попробуйте найти hover анимацию у валькирии. Вы не найдете ее, но найдете похожую fly_stand с другим номером.
Мало того - модельки некоторых анимаций не содержат(сравните dragon.m2 и dragononyxia.m2).
Я к тому что работать c анимациями чаще всего дело клиента, чем сервера.
В случае ониксии(отдельная модель) возможно действительно нужно вручную выставлять некоторые анимации.

MaxXx2021 10.05.2011 05:15

Цитата:

Сообщение от Forgotten (Сообщение 22060)
Да мы говорили о разных анимациях.

Попробуйте найти hover анимацию у валькирии. Вы не найдете ее, но найдете похожую fly_stand с другим номером.
Мало того - модельки некоторых анимаций не содержат(сравните dragon.m2 и dragononyxia.m2).
Я к тому что работать c анимациями чаще всего дело клиента, чем сервера.
В случае ониксии(отдельная модель) возможно действительно нужно вручную выставлять некоторые анимации.

Я вам про этои говорю. Те модели что вы скинули они не ВОТЛК дополнения и анимаций там этих нет. Посмотрите модель малигоса ховер есть, есть и fly stand, Fly Settle, Fly To Ground. Дело в том, что нужно задействовать новые возможности. А не в ручную перегонят анимации.

BloodWarrior 22.05.2011 15:16

HOVER в принципе был бы великолепен, работай он еще в классике)))


Текущее время: 03:33. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS