Half-Life SDK: Разнообразные звуки стрельбы
Суть: Несколько звуков стрельбы для оружия.
Например, у "MP5" в "dlls/mp5.cpp" в "::Precache()" с помощью операции "PRECACHE_SOUND(...)" взято три звука: "hks(1-3).wav":
PRECACHE_SOUND("weapons/hks1.wav"); PRECACHE_SOUND("weapons/hks2.wav"); PRECACHE_SOUND("weapons/hks3.wav");
Проигрывание звуков в "cl_dlls/ev_hldm.cpp" в функции "EV_FireMP5":
switch (gEngfuncs.pfnRandomLong(0, 1)) { case 0: gEngfuncs.pEventAPI->EV_PlaySound(idx, origin, CHAN_WEAPON, "weapons/hks1.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong(0, 0xf)); break; case 1: gEngfuncs.pEventAPI->EV_PlaySound(idx, origin, CHAN_WEAPON, "weapons/hks2.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong(0, 0xf)); break; }
Здесь ставим свои звуки. Количество проигрываемых звуков регулируем вторым параметром "gEngfuncs.pfnRandomLong(a, b)". Например, если нужно проиграть три звука, то завместо 1 (единицы) пишем 2 (два) и додаём ещё один "case" ("case 2:"), копируя содержимое других "case". Только не забудьте додать нужный звук в "PRECACHE_SOUND" в функцию "Precache" нужного оружия.
Для других оружий всё тоже самое. Например, для "glock" в файле "cl_dlls/ev_hldm.cpp" в функции "EV_FireGlock1":
gEngfuncs.pEventAPI->EV_PlaySound(idx, origin, CHAN_WEAPON, "weapons/pl_gun3.wav", gEngfuncs.pfnRandomFloat(0.92, 1.0), ATTN_NORM, 0, 98 + gEngfuncs.pfnRandomLong(0, 3));
Додаём "switch-case" как в у "MP5" и кешируем звук в "Precache".