Znaczy tylko dwa dźwięki, bo gdy jest 30 sek i 20 sek, to dźwięki ma się odtwarzać.
w poprzednim poście jest jeszcze na 10 sekund. Masz bez dyszki:
#include <amxmodx>
#include <csx>
new const g_szDzwiek[][] = {
"sound/misc/30sek.wav",
"sound/misc/20sek.wav"
};
new g_pCvar;
public plugin_init()
{
register_plugin("Explode sounds", "0.1", "d0naciak");
}
public plugin_precache()
{
new szDzwiek[256], iLen;
for(new i = 0; i < sizeof szDzwiek; i++)
{
iLen = formatex(szDzwiek, 255, g_szDzwiek[i]);
if(equal(szDzwiek[iLen - 3], "wav"))
replace(szDzwiek, 255, "sound/", "");
precache_sound(szDzwiek);
}
}
public plugin_cfg()
g_pCvar = get_cvar_pointer("mp_c4timer");
public bomb_planted()
{
new Float:fCzasDoWybuchu = get_pcvar_float(g_pCvar);
set_task(fCzasDoWybuchu - 30.0, "Dzwiek30Sekund");
set_task(fCzasDoWybuchu - 20.0, "Dzwiek20Sekund");
}
public Dzwiek30Sekund()
play_sound(0, g_szDzwiek[0]);
public Dzwiek20Sekund()
play_sound(0, g_szDzwiek[1]);
public play_sound(id, const szSound[])
{
new szFormatedSound[256];
new iLen = formatex(szFormatedSound, 255, szSound);
if(equal(szFormatedSound[iLen - 3], "mp3"))
{
client_cmd(id, "mp3 play ^"%s^"", szFormatedSound);
}
else if(equal(szFormatedSound[iLen - 3], "wav"))
{
replace(szFormatedSound, iLen, "sound/", "");
client_cmd(id, "spk ^"%s^"",szFormatedSound);
}
else return 0;
return 1;
}
Czemu na osobno?
Próbowałem napisać plugin "innym" sposobem - którego nie testowałem więc sprawdź czy trybi.