Jump to content

ajutor PlayAudioStreamForPlayer intr-o locatie nu prea stiu sa-l fac :/


AlexCelTare

Recommended Posts

Salut baieti, am si eu nevoie de putin ajutor, vreau sa fac o comanda, ca atunci cand playerul da /enablemusic sa ii cante muzica in toate locatiile astea. Dar problema e, ca, doar un steram merge, cel de la sfarsit, restul, primele 2, nu se aud deloc.

 

// playerid

// url

// coordonates X Y Z

// distance


{
    if (strcmp("/enablemusic", cmdtext, true) == 0)
    {
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6", -2130.5364,-2061.0081,63.3233, 30.0, 1);
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7", -2218.7273,-2154.1978,43.6795, 20.0, 1);
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0", -2197.3599,-2254.3499,30.8057, 20.0, 1);
        return 1;
    }
    return 0;

}
 

multumesc!

Edited by AlexCelTare
Link to comment
Share on other sites

  • AlexCelTare changed the title to ajutor PlayAudioStreamForPlayer intr-o locatie nu prea stiu sa-l fac :/

Din pacate poti avea doar un sigur stream care sa functioenze per player la un moment. Daca pornesti mai multe in acelasi timp doar ultimul va functiona

Ti-as recomanda eventual sa folosesti streamer mai exact https://github.com/samp-incognito/samp-streamer-plugin/wiki/Natives-(Areas)

Te poti folosi de areas de la streamer pentru a crea anumite zone pe serverul tau si in momentul in care playerul intra/iese din acea forma pe care o creezi sa pornesti/opresti muzica si desigur bazat eventual pe o variabila gen Player[playerid][HasPlayerMusicEnabled] astfel poti avea muzica in acele zone

Link to comment
Share on other sites

6 minutes ago, Banditul said:

Din pacate poti avea doar un sigur stream care sa functioenze per player la un moment. Daca pornesti mai multe in acelasi timp doar ultimul va functiona

Ti-as recomanda eventual sa folosesti streamer mai exact https://github.com/samp-incognito/samp-streamer-plugin/wiki/Natives-(Areas)

Te poti folosi de areas de la streamer pentru a crea anumite zone pe serverul tau si in momentul in care playerul intra/iese din acea forma pe care o creezi sa pornesti/opresti muzica si desigur bazat eventual pe o variabila gen Player[playerid][HasPlayerMusicEnabled] astfel poti avea muzica in acele zone

ok l-am instalat streamer plugin ul, dar nu sunt asa pro cu scriptingul,abia ce stiu si eu basics, crezi ca imi poti face tu aceasta comanda? Daca doresti te rog

Link to comment
Share on other sites

As putea traduce codul pe care il ai in ceva asemanator cu

enum pData
{
    // date aici
    STREAMER_TAG_AREA: MusicZone[3],
    // alte date aici eventual
}
new Player[MAX_PLAYERS][pData];

if (strcmp("/enablemusic", cmdtext, true) == 0)
    {
        Player[playerid][MusicZone][0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0, playerid: playerid);
        Player[playerid][MusicZone][1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0, playerid: playerid);
        Player[playerid][MusicZone][2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0, playerid: playerid);
        return 1;
    }
    if (strcmp("/disablemusic", cmdtext, true) == 0)
    {
        DestroyDynamicArea(Player[playerid][MusicZone][0]);
        DestroyDynamicArea(Player[playerid][MusicZone][1]);
        DestroyDynamicArea(Player[playerid][MusicZone][2]);

        Player[playerid][MusicZone][0] = 0;
        Player[playerid][MusicZone][1] = 0;
        Player[playerid][MusicZone][2] = 0;
        return 1;
    }

public OnPlayerEnterDynamicArea(playerid, areaid) 
{
    if (areaid == Player[playerid][MusicZone][0])
    {
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6");
    }
    else if (areaid == Player[playerid][MusicZone][1])
    {
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7");
    }
    else if (areaid == Player[playerid][MusicZone][2])
    {
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0");
    }
    
}
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
    StopAudioStreamForPlayer(playerid);
}

Stiu ti-am complicat logica si codul dar cel putin asa as vizualiza ce incerci sa faci si anume sa creezi 3 zone pentru player in care sa asculte muzica in momentul in care activeaza acest lucru.

Acum, poate un cerc nu este potrivit pentru acea zona poate ai nevoie de un dreptunghi sau altceva pentru asta.

In cazul in care doresti ca acest lucru sa fie mai general si daca consideri ca acele poziti cu muzica sunt pentru toate lumea si nu vor diferi poti folosi codul de mai jos. Desigur poate fi facut mai usor de organizat in cazul in care ai mai multe zone cu muzica dar e ceva de baza, sper ca se intelege.

enum pData
{
    // date aici
    HasMusicEnabled,
    // alte date aici eventual
}
new Player[MAX_PLAYERS][pData];

if (strcmp("/enablemusic", cmdtext, true) == 0)
    {
        if (Player[playerid][HasMusicEnabled] == false) // Desigur acel Player[][] este cea ce foloseti tu pentru a stoca informatii despre player
        {
            Player[playerid][HasMusicEnabled] = true;
        }
        else
        {
            Player[playerid][HasMusicEnabled] = false;
        }
        
        return 1;
    }

new MusicAreas[3];
public OnGameModeInit()
{
    MusicAreas[0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0);
    MusicAreas[1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0);
    MusicAreas[2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0);
}

public OnPlayerEnterDynamicArea(playerid, areaid) 
{
    if (Player[playerid][HasMusicEnabled] == true)
    {
        if (areaid == MusicAreas[0])
        {
            PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6");
        }
        else if (areaid == MusicAreas[1])
        {
            PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7");
        }
        else if (areaid == MusicAreas[2])
        {
            PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0");
        }
    }
}
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
    StopAudioStreamForPlayer(playerid);
}

Daca ai intrebari ma poti intreba oricand. Ti-as sugera citesti eventual linkul pe care ti l-am oferit despre cum cum functioneaza streamer si poate ca tema sa citesti despre arrays ( nu neaparat in limbajul pawn )

Link to comment
Share on other sites

3 minutes ago, Banditul said:

As putea traduce codul pe care il ai in ceva asemanator cu

enum pData
{
    // date aici
    STREAMER_TAG_AREA: MusicZone[3],
    // alte date aici eventual
}
new Player[MAX_PLAYERS][pData];

if (strcmp("/enablemusic", cmdtext, true) == 0)
    {
        Player[playerid][MusicZone][0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0, playerid: playerid);
        Player[playerid][MusicZone][1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0, playerid: playerid);
        Player[playerid][MusicZone][2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0, playerid: playerid);
        return 1;
    }
    if (strcmp("/disablemusic", cmdtext, true) == 0)
    {
        DestroyDynamicArea(Player[playerid][MusicZone][0]);
        DestroyDynamicArea(Player[playerid][MusicZone][1]);
        DestroyDynamicArea(Player[playerid][MusicZone][2]);

        Player[playerid][MusicZone][0] = 0;
        Player[playerid][MusicZone][1] = 0;
        Player[playerid][MusicZone][2] = 0;
        return 1;
    }

public OnPlayerEnterDynamicArea(playerid, areaid) 
{
    if (areaid == Player[playerid][MusicZone][0])
    {
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6");
    }
    else if (areaid == Player[playerid][MusicZone][1])
    {
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7");
    }
    else if (areaid == Player[playerid][MusicZone][2])
    {
        PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0");
    }
    
}
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
    StopAudioStreamForPlayer(playerid);
}

Stiu ti-am complicat logica si codul dar cel putin asa as vizualiza ce incerci sa faci si anume sa creezi 3 zone pentru player in care sa asculte muzica in momentul in care activeaza acest lucru.

Acum, poate un cerc nu este potrivit pentru acea zona poate ai nevoie de un dreptunghi sau altceva pentru asta.

In cazul in care doresti ca acest lucru sa fie mai general si daca consideri ca acele poziti cu muzica sunt pentru toate lumea si nu vor diferi poti folosi codul de mai jos. Desigur poate fi facut mai usor de organizat in cazul in care ai mai multe zone cu muzica dar e ceva de baza, sper ca se intelege.

enum pData
{
    // date aici
    HasMusicEnabled,
    // alte date aici eventual
}
new Player[MAX_PLAYERS][pData];

if (strcmp("/enablemusic", cmdtext, true) == 0)
    {
        if (Player[playerid][HasMusicEnabled] == false) // Desigur acel Player[][] este cea ce foloseti tu pentru a stoca informatii despre player
        {
            Player[playerid][HasMusicEnabled] = true;
        }
        else
        {
            Player[playerid][HasMusicEnabled] = false;
        }
        
        return 1;
    }

new MusicAreas[3];
public OnGameModeInit()
{
    MusicAreas[0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0);
    MusicAreas[1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0);
    MusicAreas[2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0);
}

public OnPlayerEnterDynamicArea(playerid, areaid) 
{
    if (Player[playerid][HasMusicEnabled] == true)
    {
        if (areaid == MusicAreas[0])
        {
            PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6");
        }
        else if (areaid == MusicAreas[1])
        {
            PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7");
        }
        else if (areaid == MusicAreas[2])
        {
            PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0");
        }
    }
}
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
    StopAudioStreamForPlayer(playerid);
}

Daca ai intrebari ma poti intreba oricand. Ti-as sugera citesti eventual linkul pe care ti l-am oferit despre cum cum functioneaza streamer si poate ca tema sa citesti despre arrays ( nu neaparat in limbajul pawn )

imi da erorile astea:
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(41) : error 010: invalid function or declaration
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(43) : error 010: invalid function or declaration
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(47) : error 010: invalid function or declaration
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(52) : error 010: invalid function or declaration
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(58) : error 017: undefined symbol "CreateDynamicCircle"
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(59) : error 017: undefined symbol "CreateDynamicCircle"
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(60) : error 017: undefined symbol "CreateDynamicCircle"
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(63) : warning 235: public function lacks forward declaration (symbol "OnPlayerEnterDynamicArea")
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(65) : warning 213: tag mismatch
E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(81) : warning 235: public function lacks forward declaration (symbol "OnPlayerLeaveDynamicArea")

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.