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]) }