Открываем hl2_player.cpp
Вписываем над "DEFINE_SOUNDPATCH( m_sndLeeches ),"
DEFINE_SOUNDPATCH(m_pWooshSound),
Добавим его определение в хэдер "hl2_player.h". Объявите наш "m_pWooshSound" в разделе "private:"
CSoundPatch *m_pWooshSound;
Подготовим место под наши функции. В хэдер "hl2_player.h" ниже виртуального типа "OnRestore();" пишем
virtual void CreateSounds(void);
void UpdateWoosh(void);
Теперь прямо над "void CHL2_Player::StopLoopingSounds( void )" вписываем
//-----------------------------------------------------------------------------
// Creating Sound
//-----------------------------------------------------------------------------
void CHL2_Player::CreateSounds()
{
if (!m_pWooshSound)
{
CSoundEnvelopeController &controller = CSoundEnvelopeController::GetController();
CPASAttenuationFilter filter(this);
m_pWooshSound = controller.SoundCreate(filter, entindex(), "HL2Player.Woosh");
controller.Play(m_pWooshSound, 0, 100);
}
}
Теперь заставляем работать наш "CreateSounds". Внутри "Spawn(void)" ниже "BaseClass::Spawn();" добавляем
И теперь делаем пре-кэш звука. Внутри "void CHL2_Player::Precache( void )" пишем
PrecacheScriptSound("HL2Player.Woosh");
(Этого небыло в видео) Не забываем останавливать наш звук.
Внутри "void CHL2_Player::StopLoopingSounds( void )" в самом начале вписываем
if (m_pWooshSound)
{
CSoundEnvelopeController &controller = CSoundEnvelopeController::GetController();
controller.SoundDestroy(m_pWooshSound);
m_pWooshSound = NULL;
}
Добавляем обновление громкости нашего звука
void CHL2_Player::UpdateWoosh(void)
{
if (m_pWooshSound)
{
CSoundEnvelopeController &controller = CSoundEnvelopeController::GetController();
float fWooshVol = GetAbsVelocity().Length() - MIN_WOOSH_SPEED;
if (fWooshVol < 0.0f)
{
controller.SoundChangeVolume(m_pWooshSound, 0.0f, 0.1f);
return;
}
fWooshVol /= 2000.0f;
if (fWooshVol > 1.0f)
fWooshVol = 1.0f;
controller.SoundChangeVolume(m_pWooshSound, fWooshVol, 0.1f);
}
}
Теперь заставляем его работать. Внутри "void CHL2_Player::PostThink( void )" пишем
Также нужно определить наш "MIN_WOOSH_SPEED". Открываем хэдер "hl2_shareddefs.h" и вписываем
#define MIN_FLING_SPEED 750
На этом этапе с кодом покончено. Компилируем и приступаем к самой игре.
После компиляции перекидываем библиотеки client и server в наш мод.
Создаем директорию sound и кладем туда наш файл со
звуком ветра.
Далее в директории "scripts" создаем файл "game_sounds_mymod.txt" и вписываем в него
"HL2Player.Woosh"
{
"channel" "CHAN_STATIC"
"volume" "1.00"
"soundlevel" "SNDLVL_85dB"
"pitch" "100"
"wave" "woosh.wav"
}
Далее, вам нужен файл "game_sounds_manifest.txt" от той игры под которую вы делаете ваш мод, в моей случае это "HL2:EP2" и файл я беру его от туда.
Добавляем в этот файл пре-кэш нашего нового файла со звуками.
"precache_file" "scripts/game_sounds_mymod.txt"
На этом все.