HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Частота звуков шагов
как?
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
JPEG
Житель форума

Дата регистрации: Sep 2013
Проживает: рф
Сообщений: 669

Рейтинг



Частота звуков шагов

Два вопросика:
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, а эти шаги мешают

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))

Сообщить модератору | IP: Записан
Сообщение: 147469

Старое сообщение 06-06-2015 19:34
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6855
Возраст: 34

Рейтинг



1). Чудеса какие-то. Что в сингле, что в мульте частота звуков прекрасно меняется при изменении скорости движения. Глянь новый хлсдк с гитхаба, возможно это в старом какие-то недочёты.
2). Тут сложно. Надо каким-то образом делать проверку, заблокирован игрок сверху чем-то, или нет. В момент прыжка делать трейс из ориджина игрока вверх юнитов на 38 когда стоит и на 20 когда сидит. Если упираемся в стенку - запрещаем прыжок. На сервере анимация всё равно будет играться, придётся делать второй трейс в функции CBasePlayer::Jump и запрещать рисовать анимацию.

Добавлено 07-06-2015 в 03:23:

Цитата:
Yo Den писал:
Охото кастомный поставить, типа как в tfc, а эти шаги мешают

Закомментируй PM_PlayStepSound в функции PM_Jump. Вообще не будут играться.

Сообщить модератору | IP: Записан
Сообщение: 147470

Старое сообщение 06-06-2015 21:23
- За что?
JPEG
Житель форума

Дата регистрации: Sep 2013
Проживает: рф
Сообщений: 669

Рейтинг



Цитата:
Ku2zoff писал:
Закомментируй PM_PlayStepSound в функции PM_Jump. Вообще не будут играться.

помогло, спасибо
Цитата:
Ku2zoff писал:
Тут сложно.

Ну это и не надо, лучше как сделать проигрывание звука при приземлении после прыжка?

Добавлено 07-06-2015 в 00:58:

Цитата:
Ku2zoff писал:
Чудеса какие-то.

ты прав, но если использовать более медленную скорость (в хл она слишком быстаря), например cl_forwardspeed 100, то частота звука шагов, что с шифтом, что без - одинаковая. Что отвечает за частоту шагов при беге и без?

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))

Сообщить модератору | IP: Записан
Сообщение: 147471

Старое сообщение 06-06-2015 21:58
- За что?
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



Частота обновляется в void PM_UpdateStepSound( void ) в pm_shared.c полем pmove->flTimeStepSound

Сообщить модератору | IP: Записан
Сообщение: 147472

Старое сообщение 07-06-2015 04:06
- За что?
JPEG
Житель форума

Дата регистрации: Sep 2013
Проживает: рф
Сообщений: 669

Рейтинг



Цитата:
ILZM писал:
Частота обновляется в void PM_UpdateStepSound( void ) в pm_shared.c полем pmove->flTimeStepSound


А что значит вот это (чуть выше находится)?

C++ Source Code:
1
if ( ( pmove->flags & FL_DUCKING) || fLadder )
2
{
3
  velwalk = 60;		// These constants should be based on cl_movespeedkey * cl_forwardspeed somehow
4
  velrun = 80;		// UNDONE: Move walking to server
5
  flduck = 100;
6
}
7
else
8
{
9
  velwalk = 120;
10
  velrun = 210;
11
  flduck = 0;
12
}

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))

Сообщить модератору | IP: Записан
Сообщение: 147529

Старое сообщение 08-06-2015 17:36
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 18:44. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Частота звуков шагов
как?
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024