Остановка работает, но код который я дал, скорее всего отвечает за воспроизведение мелодии при показе окна победителя, соответственно, все звуки играющие до показа окна, останавливаются при его показе и начинает играть мелодия ”победителя”. Так как весь плагин сюда не впихнуть ввиду большого количества строк с кодом, поэтому попробую выдернуть куски, которые могут отвечать за проигрывание мелодии при переходе не уровень с Ножом и Гранатой, перед проигрыванием которых нужно вставить остановку предыдущих звуков.
1.Код:
// don't ask me where I'm getting this from.
if(shouldWarmup)
{
shouldWarmup = 0;
start_warmup();
}
if(warmup <= 0)
{
new leader = get_leader();
if(equal(lvlWeapon[leader],"hegrenade")) play_sound_by_cvar(0,gg_sound_nade);
else if(equal(lvlWeapon[leader],"knife")) play_sound_by_cvar(0,gg_sound_knife);
}
2. Код:
// this is a sound
if(equal(command,"gg_sound_",9) || equal(command,"gg_lead_sounds"))
{
parse(command,cvar,31,value,WINSOUNDS_SIZE-1);
set_cvar_string(cvar,value);
}
3. Код:
// I'm a leader!
if(warmup <= 0 && level[get_leader()] == level[id])
{
new sound_cvar;
if(nade) sound_cvar = gg_sound_nade;
else if(equal(lvlWeapon[id],"knife")) sound_cvar = gg_sound_knife;
if(sound_cvar)
{
// only play sound if we reached this level first
if(num_players_on_level(level[id]) == 1) play_sound_by_cvar(0,sound_cvar);
}
}
4. Код:
// another easy function to play sound via cvar
stock play_sound_by_cvar(id,pcvar)
{
static value[64];
get_pcvar_string(pcvar,value,63);
if(!value[0]) return;
if(containi(value,".mp3") != -1) client_cmd(id,"mp3 play ^"%s^"",value);
else client_cmd(id,"spk ^"%s^"",value);
}
5.Код:
// a taskable play_sound_by_cvar
public play_sound_by_cvar_task(params[2])
{
play_sound_by_cvar(params[0],params[1]);
}
6. Это тот кусок в которй мы прописали остановку.Код:
// this functions take a filepath, but manages speak/mp3 play
stock play_sound(id,value[])
{
if(!value[0]) return;
client_cmd(id, "stopsound;mp3 stop");
if(containi(value,".mp3") != -1) client_cmd(id,"mp3 play ^"%s^"",value);
else
{
if(equali(value,"sound/",6)) client_cmd(id,"spk ^"%s^"",value[6]);
else client_cmd(id,"spk ^"%s^"",value);
}
}
Отредактировал: drivemaster, - 24.12.2013, 12:37