Jump to content

[tutorial] Cum sa creez un radio pe server si cum sa iti creezi melodi pentru ascultat pe server


WiDuAlK

Recommended Posts

Salutare , am revenit cu un nou tutorial , dupa cum spune si titlul , astazi am sa va arat(pe intelesul tuturor cu sa iti pui radio pe server sau cum sa iti pui o melodie pe care iti place sa o asculti pe server.Ne vom folosi de functia:

PlayAudioStreamForPlayer(playerid,"link");

Intai incepem cu radioul.Sunt 2 metode de a defini un dialog:

#define DIALOG     1

sau o metoda mult mai optima:

enum
(
	DIALOG
);

Eu prefer metoda mai ooptima , cea cu enum. Voi crea dialogul RADIO deoarece nu vrem sa fie nici un BUG pe server(de obicei daca nu il definesti , te va pune sa te loghezi de fiecare data cand apelezi la el , cea ce va fi considerat BUG).

enum
(
	RADIO
);

Acum ca am creat dialogul, voi face comanda, pe care va avea de selectat 3 optiuni:

1)Radio Greu De difuzat(este radio-ul pe care il ascult in fiecare zi si care imi place la nebunie)

2)Radio Diz(un radio de muzica comerciala)

3)STOP(pentru a opri muzica.

 

Voi face comanda pentru 2 procesoare diferite de comenzi si anume ZCMD si STRCMP.

Incepem cu procesorul de comenzi a majoritatealor GM-uri de pe internet si anume STRCMP:

if (strcmp("/radio", cmdtext, true, 10) == 0)
	{
		ShowPlayerDialog(playerid, RADIO, DIALOG_STYLE_LIST, "Ce radio doresti sa asculti?", "Radio GreuDeDifuzat nRadio DiZ nOpreste muzica", "Asculta", "Cancel");
		return 1;
	}

si ZCMD:

CMD:radio(playerid,params[])
	{
		ShowPlayerDialog(playerid, RADIO, DIALOG_STYLE_LIST, "Ce radio doresti sa asculti?", "Radio GreuDeDifuzat nRadio DiZ nOpreste muzica", "Asculta", "Cancel");
		return 1;
	}

Acum sa va explic:

Funcita ShowPlayerDialog- pentru a apela la dialog

playerid- este playerul care foloseste comanda

DIALOG_STYLE_LIST- este stilul dialogului , in cazul nostru va pune numele radiourilor unele sub altele ca la GPS

"Ce radio doresti sa asculti?"- este mesajul care apare in partea de sus a dialogului , si care nu poate fi selectat

"Radio GreuDeDifuzat nRadio DiZ nOpreste muzica"- sunt mesajele cu radiouri care se pot selecta, prin "n" facem ca urmatorul mesaj sa fie sub cel precedent ceva de genu:

Radio GreuDeDifuzat
Radio Diz
STOP

iar "Asculta", "Cancel" sunt cele 2 butoane pe care selectam radio-ul dorit.

 

Acum ca am facut comanda, trebuie sa ne ducemla:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

Acesta este publicul resoponsabil cu dialogurile.

Acum , ne trebuie cele 2  link-uri ale radio-urilor.Ne trebuie programul Winamp pe care il puteti descarca de aici:http://download.chip.eu/ro/Winamp-Full-5.623.3199_87999.html

Mergem la pagina de download al primului radio si descarcam "kitul" cu care ascultam radio direct din Winamp.

Odata ce e instalat, Winamp si am deschis radio-ul din PC ,parcurgem urmatori pasi:

DRzJMgq.jpg?1

 

WjHR7cb.jpg?1
Repectiva adresa este link-ul direct al radio-ului, pe care serverul o recepteaza ca fisier audio si porneste melodia.

Facem aceasta si cu urmatorul radio, si salvam undeva cele 2 link-uri.

Acum e timpul sa trecem la crearea dialogului care va suna cam asa:

if(dialogid == RADIO)
    {
        if(response)
        {
            if(listitem == 0)
            {
                StopAudioStreamForPlayer(playerid);
                PlayAudioStreamForPlayer(playerid,"http://necenzurat.greudedifuzat.net:8012");
            }
            if(listitem == 1)
            {
                StopAudioStreamForPlayer(playerid);
                PlayAudioStreamForPlayer(playerid,"http://asculta.radiodiz.com:7070");
            }
            if(listitem == 3)
            {
                StopAudioStreamForPlayer(playerid);
                SendClientMessage(playerid,Rosu,"Ai inchis radioul!");
            }
        }
        
    }

Sa va explic ce face fiecare functie in parte.

if(dialogid == RADIO) - este apelarea comenzi la dialog

if(response)- este butonul "Asculta" daca era "if(!response)" era butonul "Cancel"

if(listitem == 0)- este primul nume din dialog adica GreuDeDifuzat. Dialogurile pot fi considerate vectori , ce aceea am pus "listitem == 0". Daca nu era vector luam valoarea 1 pentru primul dialog.

StopAudioStreamForPlayer(playerid);- este functia care opreste radio-ul. In caz ca este deja un radio in ascultare, si nu oprim , cele 2 radio-uri se vor suprapune.

PlayAudioStreamForPlayer(playerid,"http://necenzurat.greudedifuzat.net:8012");-este functia ce apeleaza la difuzarea link-ului care poate fi ascultat.playerid- este persoana ce a folosit comanda iar "http://necenzurat.greudedifuzat.net:8012" este link-ul direct de ascultare.

La fel face si radioul, al 2-lea.

if(listitem == 3)- reprezinta textul "Stop", si contine functia StopAudioStreamForPlayer(playerid); care ii opreste muzica.

SendClientMessage(playerid,Rosu,"Ai inchis radioul!");- este mesajul pe care il va da playerul ce utilizeaza acesta selectare.

 

Asa puteti face pentru orice radio doriti.

 

Acum sa trecem la cum pui o melodie. Va fi exact la fel , dar de data aceasta, ne v-om folosi de un site special ce transforma o melodie din pc , in una ce se poate asculta. Acel site este : http://www.wikiupload.com/ Odata ce am uploadat melodia, ne va da un link , pe care il vom copia si il vom pune in functia PlayAudioStreamForPlayer. Nu cred ca mai e nevoie sa va explic . sper ca acest tutorial sa va fie de folos.

 

Pana data viitoare , PACE!

Edited by WiDuAlK.SaMp
  • Upvote 5
Link to comment
Share on other sites

  • 5 months later...

Ai putea să-l faci puţin mai ... cum să spun ... " economic " adică , de exemplu la dialog:

în loc de ...

if(dialogid == RADIO)
    {
        if(response)
        {
            if(listitem == 0)
            {
                StopAudioStreamForPlayer(playerid);
                PlayAudioStreamForPlayer(playerid,"http://necenzurat.greudedifuzat.net:8012");
            }
            if(listitem == 1)
            {
                StopAudioStreamForPlayer(playerid);
                PlayAudioStreamForPlayer(playerid,"http://asculta.radiodiz.com:7070");
            }
            if(listitem == 3)
            {
                StopAudioStreamForPlayer(playerid);
                SendClientMessage(playerid,Rosu,"Ai inchis radioul!");
            }
        }
        
    }

Să faci aşa ...

	if(dialogid == RADIO)
	{
    	if(!response) return 1;
        	
        StopAudioStreamForPlayer(playerid);
		switch (listitem)
		{
		    case 0: PlayAudioStreamForPlayer(playerid,"http://necenzurat.greudedifuzat.net:8012");
		    case 1: PlayAudioStreamForPlayer(playerid,"http://asculta.radiodiz.com:7070");
		    case 2: SendClientMessage(playerid,Rosu,"Ai inchis radioul!");
		}
    }

Apropo , vezi că ai facut listitem == 3 nu listitem == 2 ... dacă tot e să îi învăţăm scripting , atunci este bine să-i învăţăm direct să lucreze " economic " .. părerea mea , oricum bun tutorial dar puţin cam simplu , încearcă ceva avansat de exemplu , minigun pentru maşini .

 

PS: Pentru cei ce nu ştiu să foloseasca switch: http://wiki.sa-mp.com/wiki/Control_Structures#switch_2

Edited by Ph0eniX
public OnPlayerConnect(playerid)
{
	print("[ERROR] - Unable to establish a connection with the world...");
	SendRconCommand("exit");
	return 1;
}

 

Link to comment
Share on other sites

  • 3 weeks later...

Ai putea să-l faci puţin mai ... cum să spun ... " economic " adică , de exemplu la dialog:

în loc de ...

if(dialogid == RADIO)
    {
        if(response)
        {
            if(listitem == 0)
            {
                StopAudioStreamForPlayer(playerid);
                PlayAudioStreamForPlayer(playerid,"http://necenzurat.greudedifuzat.net:8012");
            }
            if(listitem == 1)
            {
                StopAudioStreamForPlayer(playerid);
                PlayAudioStreamForPlayer(playerid,"http://asculta.radiodiz.com:7070");
            }
            if(listitem == 3)
            {
                StopAudioStreamForPlayer(playerid);
                SendClientMessage(playerid,Rosu,"Ai inchis radioul!");
            }
        }
        
    }

Să faci aşa ...

	if(dialogid == RADIO)
	{
    	if(!response) return 1;
        	
        StopAudioStreamForPlayer(playerid);
		switch (listitem)
		{
		    case 0: PlayAudioStreamForPlayer(playerid,"http://necenzurat.greudedifuzat.net:8012");
		    case 1: PlayAudioStreamForPlayer(playerid,"http://asculta.radiodiz.com:7070");
		    case 2: SendClientMessage(playerid,Rosu,"Ai inchis radioul!");
		}
    }

Apropo , vezi că ai facut listitem == 3 nu listitem == 2 ... dacă tot e să îi învăţăm scripting , atunci este bine să-i învăţăm direct să lucreze " economic " .. părerea mea , oricum bun tutorial dar puţin cam simplu , încearcă ceva avansat de exemplu , minigun pentru maşini .

 

PS: Pentru cei ce nu ştiu să foloseasca switch: http://wiki.sa-mp.com/wiki/Control_Structures#switch_2

Da, intr-adevar e mai rapida metoda ta, dar nu mi-a venit in cap in momentul ala. Ceva de genu folosesc si eu acum. Cat despre listen 3, eu fac in notepad++ si cate odata nu mai testez, e din neatentie pentru ca fac tutoriale numai seara(atunci le scriu) si nu pot fi 100% atent la ce scriu.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.