Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: LuKsA poslato Januar 12, 2011, 17:40:37 POSLE PODNE

Naslov: [TuT] /setradio, /setvolume
Poruka od: LuKsA poslato Januar 12, 2011, 17:40:37 POSLE PODNE
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;
}
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: Edin poslato Januar 12, 2011, 17:45:18 POSLE PODNE
too care hvala ti punoo
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: black_dota poslato Januar 12, 2011, 18:51:16 POSLE PODNE
jel se moze sa ovim praviti svoj radio? xDD jeste botovsko pitanje ali nisam bas najbolje skontao pa pitam
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: 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.
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: Jizzy poslato Januar 12, 2011, 20:04:05 POSLE PODNE
Preodlicno je,bilo je na GGu i radia su odlicna
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: black_dota poslato Januar 12, 2011, 21:42:50 POSLE PODNE
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?
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: LuKsA poslato Januar 12, 2011, 22:12:41 POSLE PODNE
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..
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: black_dota poslato Januar 12, 2011, 23:34:50 POSLE PODNE
da mislio sam npr uradim radio da se zove radio dota xD
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: BalcanNation poslato Januar 13, 2011, 06:56:24 PRE PODNE
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 :)
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: gonss poslato Januar 13, 2011, 08:26:10 PRE PODNE
Odlican tut, ubacicu ovo
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: k@lu poslato Januar 13, 2011, 10:17:27 PRE PODNE
prejako  ;) svaka cast  :)
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: LuKsA poslato Januar 13, 2011, 13:42:23 POSLE PODNE
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...
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: The Joker poslato Januar 30, 2011, 04:02:27 PRE PODNE
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
Naslov: Odg: [TUT] /setradio, /setvolume
Poruka od: black_dota poslato Februar 01, 2011, 13:42:00 POSLE PODNE
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