[Duda] Sobre la mъsica
#1

Buenas tardes, tengo una duda lo que pasa es que quisiera saber como se hace para poner una canciуn pero en distancia, que quiero decir con eso, estar acercandome a una zona y se escuche la cancion pero al alejarme que se este bajando cada vez el sonido, ya lo eh visto en distintos servers y pues me llamo la atenciуn para su desarrollo, espero me ayuden, gracias!
Reply
#2

https://sampwiki.blast.hk/wiki/PlayAudioStreamForPlayer
Valor de la distancia, y usepos en 1
Reply
#3

Aquн tienes el plugin que puede hacer йso y de forma mбs "profesional": https://sampforum.blast.hk/showthread.php?tid=82162

Aunque puedes crear el sonido siguiendo los parбmetros de la funciуn PlayAudioStreamForPlayer y combinarla con IsPlayerInRangeOfPoint. Saludos.
Reply
#4

Quote:
Originally Posted by Fynn.
Посмотреть сообщение
Aquн tienes el plugin que puede hacer йso y de forma mбs "profesional": https://sampforum.blast.hk/showthread.php?tid=82162

Aunque puedes crear el sonido siguiendo los parбmetros de la funciуn PlayAudioStreamForPlayer y combinarla con IsPlayerInRangeOfPoint. Saludos.
No se tiene un ejemplo?
Reply
#5

Claro:

PHP код:
public OnGameModeInit()
{
    
SetTimer("callback_sonidos"1000true);
    return 
true;
}
forward callback_sonidos();
public 
callback_sonidos()
{
    foreach(new 
Player// Si no tienes foreach, usa un loop normal para llamar jugadores.
    
{
        if(
IsPlayerInRangeOfPoint(i10.0CoordenadaXCoordenadaYCoordenadaZ))
        {
            
PlayAudioStreamForPlayer(playeridurl[], CoordenadaXCoordenadaYCoordenadaZ10.01)
        }
    }
    return 
true;

Para extraer coordenadas usa /save + tag o nombre de la ubicaciуn (opcional) en tu servidor, luego revisa la carpeta mis documentos > GTA San Andreas User Files > SAMP y abres el archivo .txt savedpositions.

Si es por plugin ya es mбs complicado explicarlo.., si el sistema que piensas hacer es simple usa las funciones que ya trae nativamente el sa:mp, si es mбs profesional usa el plugin mencionado.
Reply
#6

Quote:
Originally Posted by Fynn.
Посмотреть сообщение
Claro:

PHP код:
public OnGameModeInit()
{
    
SetTimer("callback_sonidos"1000true);
    return 
true;
}
forward callback_sonidos();
public 
callback_sonidos()
{
    foreach(new 
Player// Si no tienes foreach, usa un loop normal para llamar jugadores.
    
{
        if(
IsPlayerInRangeOfPoint(i10.0CoordenadaXCoordenadaYCoordenadaZ))
        {
            
PlayAudioStreamForPlayer(playeridurl[], CoordenadaXCoordenadaYCoordenadaZ10.01)
        }
    }
    return 
true;

Para extraer coordenadas usa /save + tag o nombre de la ubicaciуn (opcional) en tu servidor, luego revisa la carpeta mis documentos > GTA San Andreas User Files > SAMP y abres el archivo .txt savedpositions.

Si es por plugin ya es mбs complicado explicarlo.., si el sistema que piensas hacer es simple usa las funciones que ya trae nativamente el sa:mp, si es mбs profesional usa el plugin mencionado.
lo que estas haciendo ya lo hace el mismo PlayAudioStreamForPlayer con el parбmetro usepos.

https://sampwiki.blast.hk/wiki/PlayAudioStreamForPlayer

PD: tu sabes que lo que hiciste es un atentado al su servidot? cada un segundo cargada PlayAudioStreamForPlayer xD

me da miedo pensar en lo que sucederб cuando entren en el rango de IsPlayerInRangeOfPoint. XS
Reply
#7

Entonces como tiene que ir, por que al colocar el "link" me lo da como no leido

PHP код:
forward callback_sonidos();
public 
callback_sonidos()
{
    foreach(new 
Player// Si no tienes foreach, usa un loop normal para llamar jugadores.
    
{
        if(
IsPlayerInRangeOfPoint(i10.0765.82, -37.041000.61))
        {
            
PlayAudioStreamForPlayer(playeridhttps://a.tumblr.com/tumblr_olak2bNh8j1w35cyio1.mp3[], 765.82, -37.04, 1000.61, 10.0, 1)
        
}
    }
    return 
true;

Reply
#8

PHP код:
// public OnPlayerConnect(playerid)
public OnPlayerSpawn(playerid)
// o donde quieras que empiece a ejecutarse
{
    
PlayAudioStreamForPlayer(playeridhttps://a.tumblr.com/tumblr_olak2bNh8j1w35cyio1.mp3"765.82, -37.041000.6110.01);
// NOTA: activando el parбmetro usepos solo se necesita ejecutar el PlayAudioStreamForPlayer una vez sola.
    
return true;

Reply
#9

Gracias Otacon si me funciono, pero igual gracias tambien Fynn!
Reply
#10

OTACON, es un ejemplo base.., obviamente tiene que aсadir restricciones y demбs, por que si no serб un ciclo infinito de reproducciones lo cual causarб probablemente crash o un lag intenso.

Las URL van entre comillas Coma, ademбs vi que no puse el punto y coma al final de la funciуn, te dejarй el cуdigo mбs 'completo'.

PHP код:
// ** Declaraciуn de variable bool para verificar si el usuario ya se encuentra escuchando la mъsica.
new bool:musica_on[MAX_PLAYERS];
// ** Timer...
public OnGameModeInit()
{
    
SetTimer("callback_sonidos"1000true);
    return 
true;
}
// ** OnPlayerConnect/OnPlayerDisconnect o en donde estйs reiniciando las variables del jugador:
public OnPlayerConnect(playerid)
{
    
musica_on[playerid] = false;
    return 
true;
}
// ** Callback para el sonido:
forward callback_sonidos();
public 
callback_sonidos()
{
    foreach(new 
Player// Si no tienes foreach, usa un loop normal para llamar jugadores.
    
{
        if(!
musica_on[i] && IsPlayerInRangeOfPoint(i10.0765.82, -37.041000.61))
        {
            
PlayAudioStreamForPlayer(i"https://a.tumblr.com/tumblr_olak2bNh8j1w35cyio1.mp3"765.82, -37.041000.6110.01);
            
musica_on[i] = true;
        }
        else 
        {
            if(
musica_on[i])
            {
                
StopAudioStreamForPlayer(playerid);
                
musica_on[i] = false;
            }
        }
    }
    return 
true;

Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)