HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Частота звуков шагов (https://hlfx.ru/forum/showthread.php?threadid=4612)
Отправлено JPEG 06-06-2015 в 19:34:
Частота звуков шагов
Два вопросика:
1) В pm_shared.c
C++ Source Code:
irand = pmove->RandomLong(0,1) + ( pmove->iStepLeft * 4 ); |
"pmove->iStepLeft * X" отвечает за частоту повторения шагов, чем значение меньше, тем чаще повторяется звук шага. Есть также C++ Source Code:
if ( pmove->multiplayer && ( !g_onladder && Length( hvel ) <= 220 ) ) |
для мультиплеера, который при скорости ходьбы меньшей 220 отключает звук шага, т.е. нажимаешь шифт (в хл это замедление, естественно) звук шагов пропадает, это для оптимизации. В сингле звук шагов при медленной ходьбе есть, но повторяется он с той же частотой, что и при беге, только тише, поэтому подвоха не заметно. Но как в сингле (ну можно заодно, чтобы и в мп работало) сделать, чтобы при беге была одна частота шагов (ну это есть по-умолчанию), а при ходьбе (т.е. скорости меньшей 220) была более медленная частота повторения шагов? Т.е. нужно как-то объеденить две предыдущие функции.
2) Как убрать звук шагов при нажатии прыжка? Т.е. если даже нажал прыжок, а по какой-то причине прыжка не происходит, например упираешься в потолок, как в вентиляции, то звук всё равно происходит.. Охото кастомный поставить, типа как в tfc, а эти шаги мешают__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Отправлено Ku2zoff 06-06-2015 в 21:23:
1). Чудеса какие-то. Что в сингле, что в мульте частота звуков прекрасно меняется при изменении скорости движения. Глянь новый хлсдк с гитхаба, возможно это в старом какие-то недочёты.
2). Тут сложно. Надо каким-то образом делать проверку, заблокирован игрок сверху чем-то, или нет. В момент прыжка делать трейс из ориджина игрока вверх юнитов на 38 когда стоит и на 20 когда сидит. Если упираемся в стенку - запрещаем прыжок. На сервере анимация всё равно будет играться, придётся делать второй трейс в функции CBasePlayer::Jump и запрещать рисовать анимацию.
Добавлено 07-06-2015 в 03:23:
Цитата:
Yo Den писал:
Охото кастомный поставить, типа как в tfc, а эти шаги мешают
Закомментируй PM_PlayStepSound в функции PM_Jump. Вообще не будут играться.
Отправлено JPEG 06-06-2015 в 21:58:
Цитата:
Ku2zoff писал:
Закомментируй PM_PlayStepSound в функции PM_Jump. Вообще не будут играться.
помогло, спасибоЦитата:
Ku2zoff писал:
Тут сложно.
Ну это и не надо, лучше как сделать проигрывание звука при приземлении после прыжка?
Добавлено 07-06-2015 в 00:58:
Цитата:
Ku2zoff писал:
Чудеса какие-то.
ты прав, но если использовать более медленную скорость (в хл она слишком быстаря), например cl_forwardspeed 100, то частота звука шагов, что с шифтом, что без - одинаковая. Что отвечает за частоту шагов при беге и без?__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Отправлено ILZM 07-06-2015 в 04:06:
Частота обновляется в void PM_UpdateStepSound( void ) в pm_shared.c полем pmove->flTimeStepSound
Отправлено JPEG 08-06-2015 в 17:36:
Цитата:
ILZM писал:
Частота обновляется в void PM_UpdateStepSound( void ) в pm_shared.c полем pmove->flTimeStepSound
А что значит вот это (чуть выше находится)?
C++ Source Code:
1 | if ( ( pmove->flags & FL_DUCKING) || fLadder ) |
3 | velwalk = 60; // These constants should be based on cl_movespeedkey * cl_forwardspeed somehow |
4 | velrun = 80; // UNDONE: Move walking to server |
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))