13.12.2014, 16:12
Boa Tarde, preciso de uma ajudinha aqui no seguinte sistema que elaborei...
objetivo do sistema й o player andar tocando o som junto com ele e conforme ele vai chegando perto do player o som aumenta e quando ele sai o som abaixa, isso jб estб acontecendo, sу que para a mъsica ser tocada tem que ser floodada varias vezes, e nem todo mundo que estб perto do player esculta, sу as vezes, o objetivo estб sendo feito sу estб bugado.
eu botei para cada 1 segundo ele atualizar a localidade dele e da mъsica, sу que fica floodando desse jeito
http://i.imgur.com/c6N6jk8.png
Quem poder ajudar agradeзo desde jб.
objetivo do sistema й o player andar tocando o som junto com ele e conforme ele vai chegando perto do player o som aumenta e quando ele sai o som abaixa, isso jб estб acontecendo, sу que para a mъsica ser tocada tem que ser floodada varias vezes, e nem todo mundo que estб perto do player esculta, sу as vezes, o objetivo estб sendo feito sу estб bugado.
eu botei para cada 1 segundo ele atualizar a localidade dele e da mъsica, sу que fica floodando desse jeito
http://i.imgur.com/c6N6jk8.png
Quem poder ajudar agradeзo desde jб.
Код:
CMD:tocar(playerid)
{
ShowPlayerDialog(playerid, DIALOG_TOCAR,DIALOG_STYLE_INPUT,"{0000FF}Toque sua mъsica.","{FFFFFF}Link Abaixo:","Tocar","Cancelar");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_TOCAR)
{
if(response)
{
BLigarMP3(playerid, inputtext);
}
}
return 1;
}
stock BLigarMP3(playerid, url[])
{
for(new i=0;i<MAX_PLAYERS; i++)
{
new Float:X,Float:Y,Float:Z,Float:Distance = 60.0;
GetPlayerPos(playerid,X,Y,Z);
if(strlen(url) <= 1) return SendClientMessage(playerid, -1, "ERRO: Digite a URL da mъsica");
StopAudioStreamForPlayer(i);
StopAudioStreamForPlayer(playerid);
if(GetandoDistancia(playerid, i) <= 60.0)
{
PlayAudioStreamForPlayer(i, url,X,Y,Z,Distance,true);
}
}
SetTimerEx("AtualizarMusica",1000,false, "i",playerid);
return 1;
}
forward AtualizarMusica(playerid, url[]);
public AtualizarMusica(playerid, url[])
{
for(new i=0;i<MAX_PLAYERS; i++)
{
new Float:X,Float:Y,Float:Z,Float:Distance = 60.0;
GetPlayerPos(playerid,X,Y,Z);
if(GetandoDistancia(playerid, i) <= 60.0)
{
PlayAudioStreamForPlayer(i, url,X,Y,Z,Distance,true);
}
}
return SetTimerEx("AtualizarMusica",1000,false, "i",playerid);
}
stock GetandoDistancia(playerid,playerid2)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(playerid2,x2,y2,z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
return floatround(tmpdis);
}



