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); }