U ovom tutorialu cu objasniti kako napraviti pravi Online radio u igri u samo nekoliko koraka.
Za pocetak vam je potreban Audio server plugin (http://solidfiles.com/d/572c/) za server i audio client plugin (http://solidfiles.com/d/67f/) za igrace.
Kada skinete audio server plugin, raspakirajte audio.dll u svoj plugins folder, te dodajte u server.cfg "plugins audio".
Nakon sto ste to napravili dodajte audio.inc u codeo/includes folder, te dodajte u gamemodu "#include <audio>".
Nakon toga mozemo krenuti na komande, dodajte izvan callbacka:
new musicc[MAX_PLAYERS];
U callback OnPlayerConnect(playerid) dodajte:
musicc[playerid] = -1;
Pronadjite callback OnPlayerStateChange(playerid, newstate, oldstate)
i unutra pronadjite
if(newstate == PLAYER_STATE_ONFOOT)
{
te dodajte unutar tog newstatea:
Audio_Stop(playerid, musicc[playerid]);
Ukoliko nemozete pronaci taj newstate, jednostavno ga kreirajte, pa bi vam kod ovako morao izgledati:
if(newstate == PLAYER_STATE_ONFOOT)
{
Audio_Stop(playerid, musicc[playerid]);
}
Kada ste to zavrsili mozete preci na komande, u OnPlayerCommandText callback dodajte ovo:
Komanda /setvolume stavlja igracu glasnocu radia na koju on odredi.
Komanda /setradio radi jedino kada ste vozac vozila, ako ima suvozaca (putnika) i oni ce cuti vas radio, ako izadete iz vozila, radio se automatski gasi.
if(strcmp(cmd, "/setvolume", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Pomoc: /setvolume [1-100]");
return 1;
}
new volume = strval(tmp);
Audio_SetVolume(playerid, musicc[playerid], volume);
format(string, sizeof(string), "Volume postavljen na %d", volume);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
return 1;
}
if(strcmp(cmd, "/setradio", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2)
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "Pomoc: /setradio (IME) | Imena: (0-3) | /setvolume");
SendClientMessage(playerid, COLOR_WHITE, "0: Ugasi radio");
SendClientMessage(playerid, COLOR_WHITE, "1: Radio1");
SendClientMessage(playerid, COLOR_WHITE, "2: Radio2");
SendClientMessage(playerid, COLOR_WHITE, "3: Radio3");
return 1;
}
if(strcmp(x_nr,"0",true) == 0)
{
format(string, sizeof(string), "*%s gasi radio u vozilu", GetPlayerNameEx(playerid));
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
Audio_Stop(playerid, musicc[playerid]);
for(new i=0; i<MAX_PLAYERS; i++)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 3)
{
Audio_Stop(i, musicc[i]);
}
}
return 1;
}
else if(strcmp(x_nr,"1",true) == 0)
{
format(string, sizeof(string), "*%s stavlja radio stanicu u vozilu na Radio 1", GetPlayerNameEx(playerid));
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
Audio_Stop(playerid, musicc[playerid]);
musicc[playerid] = Audio_PlayStreamed(playerid, "http://URL/radio1.asx", false, false, false);
Audio_SetVolume(playerid, musicc[playerid], 50);
for(new i=0; i<MAX_PLAYERS; i++)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 3)
{
Audio_Stop(i, musicc[i]);
musicc[i] = Audio_PlayStreamed(i, "http://URL/radio1.asx", false, false, false);
Audio_SetVolume(i, musicc[i], 50);
}
}
return 1;
}
else if(strcmp(x_nr,"2",true) == 0)
{
format(string, sizeof(string), "*%s stavlja radio stanicu u vozilu na Radio 2", GetPlayerNameEx(playerid));
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
Audio_Stop(playerid, musicc[playerid]);
musicc[playerid] = Audio_PlayStreamed(playerid, "http://URL/radio2.m3u", false, false, false);
Audio_SetVolume(playerid, musicc[playerid], 50);
for(new i=0; i<MAX_PLAYERS; i++)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 3)
{
Audio_Stop(i, musicc[i]);
musicc[i] = Audio_PlayStreamed(i, "http://URL/radio2.m3u", false, false, false);
Audio_SetVolume(i, musicc[i], 50);
}
}
return 1;
}
else if(strcmp(x_nr,"3",true) == 0)
{
format(string, sizeof(string), "*%s stavlja radio stanicu u vozilu na Radio3", GetPlayerNameEx(playerid));
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
Audio_Stop(playerid, musicc[playerid]);
musicc[playerid] = Audio_PlayStreamed(playerid, "http://URL/radio3.pls", false, false, false);
Audio_SetVolume(playerid, musicc[playerid], 50);
for(new i=0; i<MAX_PLAYERS; i++)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 3)
{
Audio_Stop(i, musicc[i]);
musicc[i] = Audio_PlayStreamed(i, "http://URL/radio3.pls", false, false, false);
Audio_SetVolume(i, musicc[i], 50);
}
}
return 1;
}
}
return 1;
}
Mozete dodati jos svojih radia, to valjda znate posto imate primjer, za Audio_PlayStreamed funkciju mozete koristiti fileove tipa m3u, pls, asx, mp3...
Ukoliko nemate GetPlayerNameEx funkciju, morate ju dodati izvan Callbacka.
stock GetPlayerNameEx(playerid)
{
new string[24];
GetPlayerName(playerid,string,24);
new str[24];
strmid(str,string,0,strlen(string),24);
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
if (str[i] == '_') str[i] = ' ';
}
return str;
}
too care hvala ti punoo
jel se moze sa ovim praviti svoj radio? xDD jeste botovsko pitanje ali nisam bas najbolje skontao pa pitam
Ovo je plugin za slusanje radia ingame, a ne za nesto drugo, znaci da ubacis neke radie i sl.
Preodlicno je,bilo je na GGu i radia su odlicna
Citat: LuKsA poslato Januar 12, 2011, 20:01:35 POSLE PODNE
Ovo je plugin za slusanje radia ingame, a ne za nesto drugo, znaci da ubacis neke radie i sl.
znaci mogu napraviti svoj radio?
Ovisi na koji nacin ti to mislis, ako mislis na nacin da ti stavljas pjesme i slicno, to ne, mozes napravit preko plugina audio pack samo, ali ako mislis napravit na nacin da ubacujes nove radie, onda mozes..
da mislio sam npr uradim radio da se zove radio dota xD
Citat: [IG]black_dota poslato Januar 12, 2011, 23:34:50 POSLE PODNE
da mislio sam npr uradim radio da se zove radio dota xD
E onda nemozes, nitko se nezeli zvati dota...xaxaxa
Ma naravno da mozes :)
Odlican tut, ubacicu ovo
prejako ;) svaka cast :)
Ma nije bas nesto po meni, moze se to jos jako editat, vjerojatno cu i editat post s novim mogucnostima, ali to nakon par dana...
Ispricavam se za REFRESH Teme!
@Luksa, hvala ti najljepša za Tutorial! Radi sve!
Samo jedno pitanje, kada idem /setradio 1, 2 puta mi ispiše na postavljam stanicu. Kako da to riješim?
The Joker
http://url/radio3.pls
ovo ti je link odakle pusta muziku
znaci moras staviti tacno ime odakle ce muzika da se pusta
npr
http://188.72.243.68:8001/listen.pls