dosinabox / g2nr_unofficial_update

Исходники скриптов, релизы, хотфиксы и тестовые версии неофициального обновления для игры "Готика 2: Ночь Ворона".
https://worldofplayers.ru/threads/36817
The Unlicense
15 stars 2 forks source link

Маги скелеты зависают в лупе анимации доставания заклинания #402

Closed LDS1 closed 2 years ago

LDS1 commented 2 years ago

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

dosinabox commented 2 years ago

Может быть связано с zHumansRemaster.

Kor-Angar commented 2 years ago

они и без ремастера зависали. им оверлеи переделывал ElderGamer

dosinabox commented 2 years ago

Советы от ElderGamer:

Возможно, часть проблем в движке Г2НВ исправлена. Но не факт. Мне вспоминаются следующие сценарии зависания скелета мага.

  1. Зависание в состоянии "бега". Это когда маг тупо бежит вперёд, пока не упадёт, не выйдет из зоны действия ИИ или не упрётся в стенку. Возникает при попытке мага обойти препятствие в состоянии атаки. Для людей в состоянии магической атаки в Г1 это тоже актуально. Возможно, в Г2НВ это пофикшено. Решение: контролировать счётчик времени нахождения в состоянии и принимать меры по выводу мага из зависания, если оно зафиксировано. Правки нужны в скриптах состояния атаки. Смотри в скриптах мод-фикса состояние ZS_MM_AttackMage и прочие функции в одноимённом файле.

  2. Зависание после отскока. Это когда скелет маг не может продолжать атаку, если вынудить его совершить отскок (сальто назад), подойдя слишком близко. Думаю, этот эпизод связан с внутридвижковой блокировкой смены боевого режима. Решение: заблокировать анимацию отскока t_MagJumpB в оверлее скелета мага. Причём, виновата не сама анимация, а тот алгоритм движка, который заставляет мага совершить отскок. В состоянии атаки орочьего шамана в мод-фиксе я применил иное решение. Там контролируется расстояние до противника и анимация отскока проигрывается из скриптов, если расстояние слишком маленькое. Тем самым исключается (или существенно снижается вероятность) генерация отскока движком.

  3. Зависание после выполнения некоторых анимаций при перемещении скелета мага. Этот сценарий менее вероятен, чем предыдущий, но всё-таки возможен. Думаю, он имеет ту же природу, что и предыдущий. Решение: заблокировать рад анимаций (прыжки, подтягивание на уступ и др.) в оверлее скелета мага.

  4. Зависание после попытки каста заклинания заморозки. В оригинале Г1 скелет маг не использовал заклинание заморозки. Оно было введено в мод-фиксе по аналогии с Г2. Но в оверлее скелета мага не прописана соответствующая анимация, поэтому использовалась анимация человеческой модели. В ходе каста происходит резкое снижение положения тушки, движок фиксирует падение и прерывает каст. В результате скелет маг не может продолжать атаку. Решение: прописать анимацию каста заклинания заморозки в оверлее и скомпилировать её. То же самое в мод-фиксе сделано и для анимации каста заклинания вызова скелетов. Исходники анимаций создавались дополнительно.

LDS1 commented 2 years ago

В данном случае он именно подвисает с руками вверх, когда достает заклинание айс блока. В Г1 модфиксе они вроде вообще заморозку не используют, только призывают и какой-то другой атакующий спелл

LDS1 commented 2 years ago

А не, вспомнил, используют. Но это не первое заклинание, которое они достают. В Г1 у меня тоже хуман ремастер, если что, но там все ок.

dosinabox commented 2 years ago

ElderGamer подогнал исправленные анимации. Можете скопировать в Data и протестировать. Gothic_2_SkeletonMageOverlay.zip

LDS1 commented 2 years ago

все так же

dosinabox commented 2 years ago

А без zHumansRemaster? Его анимации наверняка перекрывают исправленные.

LDS1 commented 2 years ago

Без него работает. Нужно как-то подружить правку и ремастер

LDS1 commented 2 years ago

в Г1 с этим все ок