Przerobiłem plugin Cheq "SmartRS", działa bez problemów, debug włączony i zero błędów a sprawa wygląda tak:
Po wejściu na serwer RS działa prawidłowo tak jak w kodzie zapisano, problem pojawia się przy zmianie mapy. Po zmianie mapy już nie gra muzyka, plugin działa, zero błędów, można /rs wpisać i niby włącza i wyłącza, tytuł też pokazuje tak jakby odtwarzało ale mp3 nie leci.
Dotyczy to każdego gracza który był na serwerze podczas zmiany mapy, a później to różnie, albo trzeba reset serwera bo kolejna zmiana mapy nic nie daje, albo czasem sam się odmuli i zaczyna grać normalnie.
Myślę że w kodzie może czegoś brakować, pomoże ktoś?
*.sma się kompiluje bez błędów, debug nie daje żadnych errorów a plugin działa już 2 dzień
//Poprawiony SmartRS - kod: CheQ, poprawki: atdirmaq, psilocybe
//Roundsound losowo odtwarza mp3 z folderu "folder_rs"
//Usuniete reklamy z oryginalnej wersji
//Usuniete komendy /tytul, colorchat przy RS ON automatycznie pokazuje tytuł granej nuty
//W public RoundSound recznie definiujemy liczbe losowanych nut(oryginalny kod sypal czasem blad index out of bounds)
#include <amxmodx>
#include <colorchat>
#define PLUGIN "SmartRS"
#define VERSION "1.2"
#define AUTHOR "CheQ"
// NIE DOPISUJEMY KONCOWKI MP3
new const numery_nut[][] = {"Brak!","nuta1","nuta2","nuta3","nuta4",
"nuta5","nuta6","nuta7","nuta8","nuta9","nuta10","nuta11","nuta12","nuta13","nuta14","nuta15","nuta16","nuta17","nuta18","nuta19","nuta20"
}
new const nazwy_nut[][] = {"Brak!", // Zostawiamy Brak! jako zerowy element Tablicy
"","","","","","","","","","","","","","","","","","","","",
}
new folder_rs[] = "misc/roundsound_psilo";
new bool:mute[33];
new numer;
new utwor;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("SendAudio", "RoundSound", "a", "2&%!MRAD_ctwin", "2&%!MRAD_terwin", "2&%!MRAD_rounddraw")
register_clcmd("say /rs","MuteRS")
register_clcmd("say rs","MuteRS")
register_clcmd("say /roundsound","MuteRS")
register_clcmd("say roundsound","MuteRS")
register_clcmd("say_team /rs","MuteRS")
register_clcmd("say_team rs","MuteRS")
register_clcmd("say_team /roundsound","MuteRS")
register_clcmd("say_team roundsound","MuteRS")
numer = 0
}
public plugin_precache()
{
for(new i = 1; i < sizeof numery_nut; i++)
{
new adres[64];
format(adres,63,"sound/%s/%s.mp3",folder_rs,numery_nut[i])
precache_generic(adres)
}
}
public client_connect(id)
{
mute[id] = true;
}
public client_disconnect(id)
{
mute[id] = false;
}
public MuteRS(id)
{
if(mute[id])
{
ColorChat(id, GREEN, "[ROUNDSOUND] ^x01 Roundsound ^x03 OFF")
mute[id] = false;
}
else
{
ColorChat(id, GREEN, "[ROUNDSOUND] ^x01 Roundsound ^x03 ON")
mute[id] = true;
}
}
public RoundSound()
{
numer = random_num(1, 20);
if(utwor == numer)
RoundSound();
else
{
utwor = numer;
new Players[32],num;
get_players(Players,num)
for(new ajdi = 0;ajdi<num;ajdi++)
{
if(mute[ajdi])
Graj(ajdi);
}
}
return PLUGIN_CONTINUE;
}
public Graj(ajdi)
{
client_cmd(ajdi, "mp3 stop");
client_cmd(ajdi, "mp3 play sound/%s/%s.mp3",folder_rs,numery_nut[numer]);
ColorChat(ajdi, GREEN, "[MP3-ROUNDSOUND] ^x03 Teraz gra:")
ColorChat(ajdi, GREEN, "^x03[MP3-ROUNDSOUND] ^x04 %s",nazwy_nut[numer])
}


Dodatki SourceMod














