PDA

View Full Version : [Tutorial] /amusic



Aldu.
18-10-15, 19:57
Descriere: Sa zicem ca un oarecare player X va folosi comanda /amusic,indicand raza si linkul cu sursa directa a unei melodii sau al unui post de radio. Exemplu: /amusic [30] CLICK (http://muzfm.md/muzfm.m3u)
Astfel, toti jucatorii ce se afla la o raza de 30 metri de punctul din care a fost folosita comanda, vor putea asculta sursa audio indicata.



1. La toate include:

#include <a_samp>

#include <streamer>

#include <sscanf2>
2. La toate new:

new area,url[64],Float:dist,Float:music[3];

new bool:turned = false;
3. La toate public (pe la mijloc):

public OnFilterScriptExit()

{

for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerInDynamicArea(i,area)) StopAudioStreamForPlayer(i);

return 1;

}
4. La public OnPlayerCommandText(playerid,cmdtext[]):

new params[96];

sscanf(cmdtext,"s[32]s[96]",cmd,params);

if(strcmp(cmd, "/amusic", true) == 0 && (PlayerInfo[playerid][pAdmin] >= 1))

{

if(!turned)

{

if(sscanf(params,"fs[64]",dist,url)) return SendClientMessage(playerid,-1,"Folositi: /amusic [raza] [link]");

if(dist <= 0) dist = 1000.0;

GetPlayerPos(playerid,music[0],music[1],music[2]);

area = CreateDynamicSphere(music[0],music[1],music[2],dist*2.0,-1,-1,-1);

turned = true;

SendClientMessage(playerid,COLOR_GREY,"Ati conectat sursa audio si ati indicat distanta de audiere!");

}

else

{

for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerInDynamicArea(i,area)) StopAudioStreamForPlayer(i);

DestroyDynamicArea(area);

turned = false;

SendClientMessage(playerid,COLOR_GREY,"Ati deconectat sursa audio!");

}

return 1;

}
5. La toate public (undeva la sfarsitul modului):

public OnPlayerEnterDynamicArea(playerid,areaid)

{

if(areaid == area) PlayAudioStreamForPlayer(playerid,url,music[0],music[1],music[2],dist,true);

return 1;

}



public OnPlayerLeaveDynamicArea(playerid,areaid)

{

if(areaid == area) StopAudioStreamForPlayer(playerid);

return 1;

}
Asta a fost cam tot. Cred ca va fi de folos cuiva dintre amatori. Va multumesc tuturor pentru atentie.