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.
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.