if(equali(sound_name[strlen(sound_name) - 4], ".mp3"))
precache_generic(sound_name);
else precache_sound(sound_name);
for(new i; i < sizeof(sound_name); i++)
{
if(equali(sound_name[i][strlen(sound_name[i]) - 4], ".mp3"))
precache_generic(sound_name[i]);
else precache_sound(sound_name[i]);
}
Это полный аналог precache_sound, то есть по сути только wav формат. Хотя если посмотреть некоторые исходники в общем доступе, то там некоторые и mp3 формат используют... Но в крупных модах только wav. Так же не рекомендую для mp3 использовать.MakapoH
Спасибо то что нужно) а как с этим быть? оно любые звуки кеширует?
#define fm_precache_sound(%1) engfunc(EngFunc_PrecacheSound, %1)
Спасибо)Это полный аналог precache_sound, то есть по сути только wav формат. Хотя если посмотреть некоторые исходники в общем доступе, то там некоторые и mp3 формат используют... Но в крупных модах только wav. Так же не рекомендую для mp3 использовать.
Иногда мне лучше 1 раз спросить и запомнить чем по сто раз смотреть в код и потом переспрашивать)[DOUBLEPOST=1558046894][/DOUBLEPOST]Как пример:Анатолий,
натив precache_sound
alliedmodders/amxmodx
натив engfunc
alliedmodders/amxmodx
у обоих
#define PRECACHE_SOUND (*g_engfuncs.pfnPrecacheSound)
(или без макроса)
На будущее: если что то непонятно то всегда смотри исходники (если они есть). Это лучше чем ждать ответа.
#include <amxmodx>
#define K_SOUND "vampire/bell1.wav" // Путь до звука. (Обычное убийство) Формат звука .wav, .mp3
#define K_HS_SOUND "vampire/headshot.wav" // Путь до hs звука. (Убийство в голову) Формат звука .wav, .mp3
new bool:is_mp3_sound
new const g_Sounds[][] = {K_SOUND, K_HS_SOUND}
public plugin_precache()
{
for (new i; i < sizeof(g_Sounds); i ++)
{
if (equali(g_Sounds[i][strlen(g_Sounds[i]) -4], ".mp3"))
{
precache_generic(g_Sounds[i])
is_mp3_sound = true
}
else
{
precache_sound(g_Sounds[i])
is_mp3_sound = false
}
}
}
public plugin_init()
{
register_plugin("FM Vampire", "1.0", "AcE")
register_event("DeathMsg", "eDeathMsg", "a", "1>0")
}
public eDeathMsg()
{
static killer, victim
killer = read_data(1), victim = read_data(2)
if (!is_user_connected(killer) || victim == killer) return
switch(is_mp3_sound)
{
case true: client_cmd(killer, "mp3 play ^"sound/%s^"", (read_data(3) == 1) ? K_HS_SOUND : K_SOUND)
case false: client_cmd(killer, "spk ^"%s^"", (read_data(3) == 1) ? K_HS_SOUND : K_SOUND)
}
}