Проблемы с velocity на 100 aa

Сообщения
499
Реакции
271
Помог
6 раз(а)
Уже давным давно не возникает идей, чтобы решить одну довольно сложную задачу, поэтому решил обратиться на форум. Одним из важнейших элементов геймплея на Biohazard сервере является отброс от выстрелов. Он задаётся изменением вектора var_velocity. При выстреле, например, из дробовика, зомби отбрасывается по направлению выстрела с огромной силой (примечание: координата Z оставляется прежней, чтобы зомби нельзя было отбрасывать вверх или вниз). Однако, если зомби нажимает клавишу движения, противоположную направлению вектора полёта, скорость его полёта замедляется. Механика логичная, но на разных значениях sv_airaccelerate (далее аа) это происходит по-разному.

При аа 10 гасить отброс кнопкой движения практически не получается. Это нормальное и привычное поведение для классического Biohazard сервера. Если в тебя хорошо попали из дробовика, лети в другой конец карты.

Но у меня аа 100 и тут уже появляется проблемка. Отброс гасится практически мгновенно. Если зомби зажмёт кнопку движения вперёд и в него выстрелят из дробовика, он начнёт отлетать назад, но тут же погасит весь велосити, заданный ему выстрелом. Если выстрел будет немного под углом к направлению его движения, то он погасит только ту часть велосити, которая противоположна направлению движения, задаваеммому кнопкой движения. Таким образом, вектор велосити уже будет направлен вбок и зомби полетит не против выстрела, а уже вправо или влево.

Прикреплю видео, чтобы продемонстрировать это в действии:

23 Авг 2024
Собственно, задача в том, чтобы оставить sv_airaccelerate 100, но как-то уменьшить скорость гашения отдачи кнопками движения.
 
Последнее редактирование:
Сообщения
107
Реакции
10
CHEL74, Ну вообще sv_airaccelerate чем больше тем лучше для того что бы движок не тормозил клиента когда тот в полете пытается "мансить" в разные стороны двигать направление камеры типа как змейкой. Всегда на Knife серверах ставил 10000 значение, что бы можно было на парашюте норм летать и меня не тормозило. Мне кажется это не исправить если только костылем каким-то))
 
Сообщения
28
Реакции
0
CHEL74,
ХардКод!
: попробовать при попадании выставить таск, и при отбросе если клиент сопротивляется, поставить векторы чтобы его развернуло, на 180. Вперед <-> назад и тд. Ну а в зиньке клавиши получаешь, и выставляешь углы.

Повторюсь: Это ХардКод, к использованию на свой страх и риск!
 
Сообщения
256
Реакции
127
Помог
12 раз(а)
CHEL74, я бы попробовал на время отброса менять airaccelerate на 10 что-то типо такого :

Код:
RegisterHookChain(RG_PM_AirMove, "PM_AirMove")

public PM_AirMove(id)
    set_movevar(mv_airaccelerate, g_bIsKB[id] ? 10.0 : 100.0)
При отбросе взводить g_bIsKB[id] , а потом его гасить - для начала хоть через таск попробовать насколько устроит тебя результат, ну а потом если будет в этом смысл таск на что нить умнее заменить ...
 
Сообщения
499
Реакции
271
Помог
6 раз(а)
Mittu, странно будет выглядеть. Особенно, у улетающего зомби) Но как идея, прикольно

murlemur, была такая идея, но тогда будет убита распрыжка. По сути, 100 аа именно ради распрыга был сделан. При попаданиях стрейфы будут ломаться.
 
Сообщения
499
Реакции
271
Помог
6 раз(а)
Я думаю, что было бы логичным при нажатии летящим игроком клавиши движения определять вектор движения в зависимости от нажатой кнопки, определять его длину исходя из текущего велосити, прибавлять вектор к велосити и после нажатия кнопки выставлять полученный таким образом велосити.

Но чёт я трудно представляю код
 
Сообщения
458
Реакции
263
Помог
9 раз(а)
Скрытое содержимое для пользователей: CHEL74
CHEL74, попробуй такое решение. Не знаю насколько работает на челах в воздухе
 
Сообщения
211
Реакции
335
Помог
3 раз(а)
CHEL74, не будет убита: можно вешать этот флаг при получении огнестрельного урона по зомби и до первого соприкосновения с землёй. Единственная проблема, которая тут может быть, — это придикт движения: у зомби будет подлагивать полёт, когда на сервере определен 100aa, а физически работает 10аа. Можно исправить, отправляя откинутому зомби SVC_NEWMOVEVARS с соответствующим AirAccelerate значением
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу