[Pedido] Stream Audio no carro
#1

Gostaria de saber como posso aprimorar esse sistema e colocar pra tocar a mъsica no carro, semelhante ao MDPM, um sistema de tocar mъsicas no porta malas, com audio 3d, e a medida que vai afastando a mъsica vai parando, mas nгo de parar de uma vez, ir abaixando o som e tal..

Um sistema semelhante a esse: https://sampforum.blast.hk/showthread.php?tid=290595

"Play for a location"

Vнdeo dele: https://www.youtube.com/watch?v=6dly-iV62SM

Se possнvel, com esse dialog de escolher a distвncia e tocar a mъsica para todos.

Meu cуdigo:

PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new 
pname[MAX_PLAYER_NAME];
    
    if(
dialogid == D_MUSICA)
    {
        if(!
response)
        {
        }
        else
        {
            if(
strlen(inputtext) < 1)
            {
                
SendClientMessage(playerid, COLOR_ERRO, "[ x ] Insira alguma mъsica!");
                
ShowPlayerDialog(playerid, D_MUSICA, DIALOG_STYLE_INPUT, "Tocar mъsica para todos", "Insira o nome da mъsica desejada!\n Coloque o nome da mъsica e o cantor! \n", "Tocar", "Cancelar");
            }
            else
            {
            static 
i, str[128];
            
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
            for( 
i = GetMaxPlayers() - 1; i > -1; --i)
            {
                if(
IsPlayerConnected(i))
                {
                
format(str, sizeof(str), "https://6t.pe/?song=%s", inputtext);
                
PlayAudioStreamForPlayer(i, str);
                }
                }
            }
        }
        return 
1;
    } 
Reply
#2

deixa eu entender direito... Vocк quer escolher a distancia sua atй os players para tocar uma mъsica?

cria um loop e verifica o rangeofpoint dos players assim vocк toca o som pra eles
Reply
#3

Creio que dentro do comando, vocк pode usar essa funзгo aqui, nгo me lembro muito bem.
PHP код:
for(new i=0; i <= MAX_PLAYERS; i++)
if(
GetDistanceBetweenPlayers(playerid, i) <= 100)
PlayAudioStreamForPlayer(playerid, "url music"); 
Reply
#4

Quote:
Originally Posted by Relaxed
Посмотреть сообщение
Creio que dentro do comando, vocк pode usar essa funзгo aqui, nгo me lembro muito bem.
PHP код:
for(new i=0; i <= MAX_PLAYERS; i++)
if(
GetDistanceBetweenPlayers(playerid, i) <= 100)
PlayAudioStreamForPlayer(playerid, "url music"); 
Sim, queria criar um comando pra tocar a mъsica pra todos que estivessem perto de onde eu dei o comando, e aн aparece o dialog pra eu escolher a distвncia da mъsica..

EDIT

Acho que achei o cуdigo, creio que seja esse:

PHP код:
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
new 
radius = strval(U2BRadius[playerid]);
for(new 
i = 0; i < MAX_PLAYERS; i++)
{
if(
IsPlayerConnected(i))
{
if(
IsPlayerInRangeOfPoint(i, radius , X, Y, Z))
{
PlayAudioStreamForPlayer(i, streamedurl, X, Y, Z, radius, 1); 
Mas nгo sei como passar para o meu comando atual, em dialog..
Reply
#5

Consegui fazer isso aqui, nгo funcionou..

PHP код:
new Float:X, Float:Y, Float:Z;
    new 
U2BRadius[MAX_PLAYERS][16];
    
    if(
dialogid == D_LOCAL)
    {
            if(
strlen(inputtext) < 1)
            {
                
SendClientMessage(playerid, COLOR_ERRO, "[ x ] Insira alguma mъsica!");
                
ShowPlayerDialog(playerid, D_LOCAL, DIALOG_STYLE_INPUT, "Pedir uma Mъsica", "Insira o nome da mъsica desejada!\n[AVISO]: Coloque o cantor e o nome da mъsica para melhores resultados!\n", "Pedir", "Cancelar");
            }
            else
            {
            
GetPlayerPos(playerid, X, Y, Z);
            new 
radius = strval(U2BRadius[playerid]);
            static 
str[128];
            for(new 
i = 0; i < MAX_PLAYERS; i++)
            {
            {
            if(
IsPlayerInRangeOfPoint(i, radius , X, Y, Z))
            {
            
format(str, sizeof(str), "https://6t.pe/?song=%s", inputtext);
            
PlayAudioStreamForPlayer(i, str, X, Y, Z, radius, 1);
                }
                }
            }
        }
            return 
1;
    } 
Reply
#6

PHP код:
//Comeзo
#define DIALOG_MUSIC 1
//Comando
CMD:music(playerid, params[])
{
    
#pragma unused params
    
ShowPlayerDialog(playerid, DIALOG_MUSIC, DIALOG_STYLE_INPUT,"musica","digite o link da musica","tocar","cancelar");
    return 
1;
}
//Dialog
if(dialogid == DIALOG_MUSIC)
{
    if(
response)
    {
        for(new 
i=0;i<MAX_PLAYERS; i++)
        {
            new 
Float:X,Float:Y,Float:Z,Float:Distance = 50.0;
            
GetPlayerPos(playerid,X,Y,Z);
            if(
strlen(inputtext) <= 1) return SCM(playerid, 0xFF0000FF, "Erro: link invбlido!");
            
StopAudioStreamForPlayer(i);
            if(
GetDistanceBetweenPlayers(playerid, i) <= 50.0)
            {
                  if(
IsPlayerConnected(i))
                {
                
PlayAudioStreamForPlayer(i, inputtext, X, Y, Z, Distance, true);
                }
            }
        }
    }
} 
Reply
#7

Quote:
Originally Posted by ApocaSamp
Посмотреть сообщение
PHP код:
//Comeзo
#define DIALOG_MUSIC 1
//Comando
CMD:music(playerid, params[])
{
    
#pragma unused params
    
ShowPlayerDialog(playerid, DIALOG_MUSIC, DIALOG_STYLE_INPUT,"musica","digite o link da musica","tocar","cancelar");
    return 
1;
}
//Dialog
if(dialogid == DIALOG_MUSIC)
{
    if(
response)
    {
        for(new 
i=0;i<MAX_PLAYERS; i++)
        {
            new 
Float:X,Float:Y,Float:Z,Float:Distance = 50.0;
            
GetPlayerPos(playerid,X,Y,Z);
            if(
strlen(inputtext) <= 1) return SCM(playerid, 0xFF0000FF, "Erro: link invбlido!");
            
StopAudioStreamForPlayer(i);
            if(
GetDistanceBetweenPlayers(playerid, i) <= 50.0)
            {
                  if(
IsPlayerConnected(i))
                {
                
PlayAudioStreamForPlayer(i, inputtext, X, Y, Z, Distance, true);
                }
            }
        }
    }
} 
Deu esse erro: "error 017: undefined symbol "GetDistanceBetweenPlayers"

Pesquisando, vi que precisava da Stock


PHP код:
stock GetDistanceBetweenPlayers(player1, player2)
{
new 
Float:p1x, Float:p2x, Float:p1y, Float:p2y, Float:p1z, Float:p2z;
GetPlayerPos(player1, p1x, p1y, p1z);
GetPlayerPos(player2, p2x, p2y, p2z);
new 
dist = floatsqroot((floatpower((p2x - p1x), 2) + floatpower((p2y - p1y), 2) + floatpower((p2z - p1z), 2)));
return 
dist;
} 
Agora dб um Warning: "(907) : warning 213: tag mismatch"

Linha 907:
PHP код:
new dist = floatsqroot((floatpower((p2x - p1x), 2) + floatpower((p2y - p1y), 2) + floatpower((p2z - p1z), 2))); 
EDIT

Consegui, os ъnicos problemas que achei й que precisa do link direto do .mp3, queria adaptar no meu sistema atual, como mostra o tуpico.

E tambйm se possнvel, antes do dialog do nome da mъsica, um dialog com a distвncia desejada..
Reply
#8

Correto... Agora vocк cria um dialog onde o inputtext serб a distвncia!
Reply
#9

Quote:
Originally Posted by ApocaSamp
Посмотреть сообщение
Correto... Agora vocк cria um dialog onde o inputtext serб a distвncia!
Sou novato em Dialog ._.
Reply
#10

й simples, mais simples que sscanf. Onde vocк sу usa o parametro "inputtext"
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)