[TuT] /setradio, /setvolume

Započeo LuKsA, Januar 12, 2011, 17:40:37 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

U ovom tutorialu cu objasniti kako napraviti pravi Online radio u igri u samo nekoliko koraka.

Za pocetak vam je potreban Audio server plugin za server i audio client plugin 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;
}
Poslednja Izmena: April 17, 2012, 14:52:41 POSLE PODNE od joXy_
Aequam memento rebus in arduis servare mentem.

too care hvala ti punoo
Kada se kunem majkom mozda lazem, ali kada se kunem ocem govorim 100 % istinu! Majke mi!

black_dota

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.
Aequam memento rebus in arduis servare mentem.

Preodlicno je,bilo je na GGu i radia su odlicna

black_dota

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..
Aequam memento rebus in arduis servare mentem.

black_dota

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 :)
Kr0s3
is back...

[FilterScript] BizzSystem
[FilterScript] Dinamicno Rotiranje Objekata

[MAP] BalkanNation: BalkanTV

[Tutorial] VrsteVozila
[Tutorial] Razne boje sa starim bojama
[Tutorial] Radenje RPG moda "od 0"

Ukoliko trebate pomoc u skriptanju, neznate nesto napraviti ili neznate popraviti neki bug slobodno me PM...
Voljan sam pomoci svakome, jer kada sam ja ucio meni nitko nije...


Ukoliko nas podupires stavi na svoj profil,
skripta online uskoro



www.balkan-nation.com



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...
Aequam memento rebus in arduis servare mentem.

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
Poslednja Izmena: Januar 30, 2011, 04:03:31 PRE PODNE od The Joker

black_dota

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