Portal SAMP
[Ajuda] JBL TOCA NO MAPA TODO - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP Mobile (https://portalsamp.com/forumdisplay.php?fid=11)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=12)
+--- Tópico: [Ajuda] JBL TOCA NO MAPA TODO (/showthread.php?tid=4267)



JBL TOCA NO MAPA TODO - EduzinMods - 03/12/2023

TOU COM UMA GM COM SISTEMA DE JBL POREM NO ANDROID QUANDO AFASTA DA JBL EU FICO OUVINDA A JBL A QUALQUER DISTANCIA E TAMBEM A MUSICA SO TOCA PELA METADE E DEPOIS REINICA NOVAMENTE.
ALGUEM PODE MIM AJUDAR ?


RE: JBL TOCA NO MAPA TODO - Carlos Victor - 03/12/2023

Você precisa compartilhar o código conosco, não conseguimos te ajudar sem ver o código e o erro que está presente nele, se é um erro.

Mas com base no que você falou, provavelmente a função PlayAudioStreamForPlayer está setada para tocar para todos os jogadores e não em uma determinada posição como você disse, a posição da JBL.

Código PHP:
CMD:musica(playerid)
{
    new 
        
Float:x,
        
Float:y,
        
Float:z;

    
GetPlayerPos(playeridxyz);
    
PlayAudioStreamForPlayer(playerid"http://live.hunterfm.com/live"xyz20.01);
    
// Vai tocar a rádio HunterFM em um raio de 20 metros na posição x, y, z (do jogador)
    
return 1;




RE: JBL TOCA NO MAPA TODO - EduzinMods - 03/12/2023

(03/12/2023 21:48)Carlos Victor Escreveu: Você precisa compartilhar o código conosco, não conseguimos te ajudar sem ver o código e o erro que está presente nele, se é um erro.

Mas com base no que você falou, provavelmente a função PlayAudioStreamForPlayer está setada para tocar para todos os jogadores e não em uma determinada posição como você disse, a posição da JBL.

Código PHP:
CMD:musica(playerid)
{
    new 
        Float:x,
        Float:y,
        Float:z;

    GetPlayerPos(playeridxyz);
    PlayAudioStreamForPlayer(playerid"http://live.hunterfm.com/live"xyz20.01);
    // Vai tocar a rádio HunterFM em um raio de 20 metros na posição x, y, z (do jogador)
    return 1;


mn ta tudo certo mn so mente no mobile que ta dando isso, tentei varias vezes e n deu certo.


RE: JBL TOCA NO MAPA TODO - Carlos Victor - 03/12/2023

Agora que você falou mobile, se o seu código está 100% correto, eu tenho quase certeza que o problema é APK. Se você estiver usando um APK padrão, SA-MP Launcher, etc... Provavelmente o erro está em seu código, tenho sistemas semelhantes e não tenho problema nenhum com isso com esses APK's padrões.


RE: JBL TOCA NO MAPA TODO - EduzinMods - 03/12/2023

(03/12/2023 22:01)Carlos Victor Escreveu: Agora que você falou mobile, se o seu código está 100% correto, eu tenho quase certeza que o problema é APK.

tbm n e o apk testei com 3 samp e continua do mesmo jeito. talvez poderia ser o link da musica ?


RE: JBL TOCA NO MAPA TODO - Carlos Victor - 03/12/2023

É mais fácil você compartilhar o código, ficar tentando adivinhar o problema não é uma boa opção.


RE: JBL TOCA NO MAPA TODO - EduzinMods - 03/12/2023

(03/12/2023 22:06)Carlos Victor Escreveu: É mais fácil você compartilhar o código, ficar tentando adivinhar o problema não é uma boa opção.

DIALOG DA JBL

  if(dialogid == DIALOG_JBL)
    {
        if(response)
        {
            for(new j; j < MAX_JBL; j++)
            {
                if(InfoJBL[JblUsed][j] > -1)
                {
                    new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB);
                    if(IsPlayerInRangeOfPoint(playerid, 20.0, XB, YB, ZB))
                    {
                        return SCM(playerid, 0xFF4500FF, "{FFA07A}[!] Ja tem uma JBL tocando nesse local");
                    }
                }
            }
            for(new j; j < MAX_JBL; j++)
            {
                if(InfoJBL[JblUsed][j] == -1)
                {
                    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
                    GetPlayerPos(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]);
                    GetXYInFrontOfPlayer(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7);
                    JBL[playerid] = CreateDynamicObject(2226, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.9, 0.0, 0, 0);
                    InfoJBL[JblUsed][j] = JBL[playerid];
                    DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
                    new strp[80];
                    format(strp, sizeof(strp), "{FFFF00}JBL {00FF00}Ligada\n{FFFFFF}Proprietario: ID:[%d]", PlayerInfo[playerid][IDF]);
                    InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.5, 10.0);
                    Streamer_Update(playerid);
                    switch(listitem)
                    {
                        case 0:
                        {
                            format(InfoJBL[StringMusica][j], 100, "https://www.dropbox.com/scl/fi/86xgktd2eq6ohoq89ghbq/22.mp3?rlkey=9bdxbmu8o0cdd3xosx5oge5sl&dl=0");
                        }
                        case 1:
                        {
                            format(InfoJBL[StringMusica][j], 100, "http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                        case 2:
                        {
                            format(InfoJBL[StringMusica][j], 100, "http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                    }
                    return 1;
                }
            }
            return SCM(playerid, 0xFF4500FF, "{FFA07A}[!] Ops! ja tem muitas JBL's ligadas na cidade, aguarde.");
        }
    }

CMD DA JBL

CMD:ljbl(playerid, params[])
{
    if(PlayerInfo[playerid][Algemado] == true)return SCM(playerid, -1, "{FFA07A}[!] Voce nao pode usar este comando agora");
    if(PlayerInfo[playerid][Ferido] == true)return SCM(playerid, -1, "{FFA07A}[!] Voce nao pode usar este comando agora.");
    if(PlayerInfo[playerid][TemJbl] == 1)
    {
        if(GetPlayerInterior(playerid) != 0)
        {
            return SCM(playerid, 0xFF4500FF, "{FFA07A}[!] Interior bloqueado.");
        }
        if(IsPlayerInAnyVehicle(playerid))
        {
            return SCM(playerid, 0xFF4500FF, "{FFA07A}[!] Voce nao pode ligar em veiculos.");
        }
        if(JBL[playerid] > -1)
        {
            return SCM(playerid, 0xFF4500FF, "{FFA07A}[!] Voce ja tem uma JBL ligada.");
        }
        new stringj[8000];
        strcat(stringj,"{FF0000}VOCE JA SABE QUAL E\n{FF0000}JOAO GOMES\n{FF0000}PAPAI BANCA");
        ShowPlayerDialog(playerid, DIALOG_JBL, DIALOG_STYLE_LIST, "{FFFFFF}JBL", stringj, "Tocar", ">>");
    }
    else
    {
        SCM(playerid, 0xFF4500FF, "{FF2400}ERRO - {FFFFFF}Voce nao tem uma JBL");
    }
    return 1;
}


RE: JBL TOCA NO MAPA TODO - Carlos Victor - 03/12/2023

Pelo o que eu vi, não tem a função de colocar a música para os jogadores, então para deixar as coisas mais fáceis de usar, fiz uma função PlayJBL que você usará para iniciar uma música.

A função conta com 3 parametros:
- playerid que é o jogador da JBL, a posição irá vir dele.
- range que é o raio que a música vai tocar.
- url que é o URL/Link da música que vai tocar.

Código PHP:
PlayJBL(playeridFloat:rangeurl[])
{
    static
        
Float:xFloat:yFloat:z;

    
GetPlayerPos(playeridxyz);
    for(new 
0GetPlayerPoolSize(); <= ji++) if(IsPlayerConnected(i)) {
        if(
IsPlayerInRangeOfPoint(irangexyz)) {
            
PlayAudioStreamForPlayer(iurlxyzrange1);
        }
    }
    return 
1;


Seu código:
Código PHP:
if(dialogid == DIALOG_JBL)
    {
        if(
response)
        {
            for(new 
jMAX_JBLj++)
            {
                if(
InfoJBL[JblUsed][j] > -1)
                {
                    new 
Float:XBFloat:YBFloat:ZBGetDynamicObjectPos(InfoJBL[JblUsed][j], XBYBZB);
                    if(
IsPlayerInRangeOfPoint(playerid20.0XBYBZB))
                    {
                        return 
SCM(playerid0xFF4500FF"{FFA07A}[!] Ja tem uma JBL tocando nesse local");
                    }
                }
            }
            for(new 
jMAX_JBLj++)
            {
                if(
InfoJBL[JblUsed][j] == -1)
                {
                    
ApplyAnimation(playerid"BOMBER""BOM_Plant"4.000000);
                    
GetPlayerPos(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]);
                    
GetXYInFrontOfPlayer(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7);
                    
JBL[playerid] = CreateDynamicObject(2226InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.90.000);
                    
InfoJBL[JblUsed][j] = JBL[playerid];
                    
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
                    new 
strp[80];
                    
format(strpsizeof(strp), "{FFFF00}JBL {00FF00}Ligada\n{FFFFFF}Proprietario: ID:[%d]"PlayerInfo[playerid][IDF]);
                    
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.510.0);
                    
Streamer_Update(playerid);
                    switch(
listitem)
                    {
                        case 
0:
                        {
                            
format(InfoJBL[StringMusica][j], 100"https://www.dropbox.com/scl/fi/86xgktd2eq6ohoq89ghbq/22.mp3?rlkey=9bdxbmu8o0cdd3xosx5oge5sl&dl=0");
                        }
                        case 
1:
                        {
                            
format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                        case 
2:
                        {
                            
format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                    }

                    
PlayJBL(playerid20.0InfoJBL[StringMusica][j]);
                    return 
1;
                }
            }
            return 
SCM(playerid0xFF4500FF"{FFA07A}[!] Ops! ja tem muitas JBL's ligadas na cidade, aguarde.");
        }
    } 

Cara, na real. Analisando aqui eu acho melhor você manipular areas ao invés de ficar fazendo loopings, você utiliza o streamer, então é melhor usar ele mesmo criando areas para JBL's.


Código PHP:
// Cria essa nova variável no enumerador
STREAMER_TAG_AREA:jblArea


public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
     if(
dialogid == DIALOG_JBL)
    {
        if(
response)
        {
            for(new 
jMAX_JBLj++)
            {
                if(
InfoJBL[JblUsed][j] > -1)
                {
                    new 
Float:XBFloat:YBFloat:ZBGetDynamicObjectPos(InfoJBL[JblUsed][j], XBYBZB);
                    if(
IsPlayerInRangeOfPoint(playerid20.0XBYBZB))
                    {
                        return 
SCM(playerid0xFF4500FF"{FFA07A}[!] Ja tem uma JBL tocando nesse local");
                    }
                }
            }

            for(new 
jMAX_JBLj++)
            {
                if(
InfoJBL[JblUsed][j] == -1)
                {
                    
ApplyAnimation(playerid"BOMBER""BOM_Plant"4.000000);
                    
GetPlayerPos(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]);
                    
GetXYInFrontOfPlayer(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7);
                    
JBL[playerid] = CreateDynamicObject(2226InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.90.000);
                    
InfoJBL[JblUsed][j] = JBL[playerid];
                    
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
                    new 
strp[80];
                    
format(strpsizeof(strp), "{FFFF00}JBL {00FF00}Ligada\n{FFFFFF}Proprietario: ID:[%d]"PlayerInfo[playerid][IDF]);
                    
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.510.0);
                    
InfoJBL[jblArea][j] = CreateDynamicCircle(InfoJBL[xJBL][j], InfoJBL[yJBL][j], 20.0);                    

                    
Streamer_Update(playerid);
                    switch(
listitem)
                    {
                        case 
0:
                        {
                            
format(InfoJBL[StringMusica][j], 100"https://www.dropbox.com/scl/fi/86xgktd2eq6ohoq89ghbq/22.mp3?rlkey=9bdxbmu8o0cdd3xosx5oge5sl&dl=0");
                        }
                        case 
1:
                        {
                            
format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                        case 
2:
                        {
                            
format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                    }

                    for(new 
0GetPlayerPoolSize(); <= xi++) if(IsPlayerConnected(i))
                    {
                        if(
IsPlayerInDynamicArea(iInfoJBL[jblArea][j]))
                            
PlayAudioStreamForPlayer(iInfoJBL[StringMusica][j]);
                    }
                    return 
1;
                }
            }
            return 
SCM(playerid0xFF4500FF"{FFA07A}[!] Ops! ja tem muitas JBL's ligadas na cidade, aguarde.");
        }
    }
    return 
1;
}

IsPlayerInDynamicArea(playeridSTREAMER_TAG_AREA:areaidrecheck 0)

public 
OnPlayerEnterDynamicArea(playeridSTREAMER_TAG_AREA:areaid)
{
    for(new 
jMAX_JBLj++)
    {
        if(
InfoJBL[JblUsed][j] != -1)
        {
            if(
areaid == InfoJBL[jblArea][j])
            {
                
PlayAudioStreamForPlayer(playeridInfoJBL[StringMusica][j]);
                
// Jogador entrou na área da JBL
            
}
        }
    }
    return 
1;
}

public 
OnPlayerLeaveDynamicArea(playeridSTREAMER_TAG_AREA:areaid)
{
    for(new 
jMAX_JBLj++)
    {
        if(
InfoJBL[JblUsed][j] != -1)
        {
            if(
areaid == InfoJBL[jblArea][j])
            {
                
StopAudioStreamForPlayer(playerid);
                
// Jogador saiu da área da JBL
            
}
        }
    }
    return 
1;


Aí quando o jogador destruir a JBL, você destrói a área para evitar conflitos.
Código PHP:
DestroyDynamicArea(InfoJBL[jblArea][j]); 



RE: JBL TOCA NO MAPA TODO - White_Blue - 03/12/2023

(03/12/2023 22:22)Carlos Victor Escreveu: Pelo o que eu vi, não tem a função de colocar a música para os jogadores, então para deixar as coisas mais fáceis de usar, fiz uma função PlayJBL que você usará para iniciar uma música.

A função conta com 3 parametros:
- playerid que é o jogador da JBL, a posição irá vir dele.
- range que é o raio que a música vai tocar.
- url que é o URL/Link da música que vai tocar.

Código PHP:
PlayJBL(playeridFloat:rangeurl[])
{
    static
        Float:xFloat:yFloat:z;

    GetPlayerPos(playeridxyz);
    for(new 0GetPlayerPoolSize(); <= ji++) if(IsPlayerConnected(i)) {
        if(IsPlayerInRangeOfPoint(irangexyz)) {
            PlayAudioStreamForPlayer(iurlxyzrange1);
        }
    }
    return 1;


Seu código:
Código PHP:
if(dialogid == DIALOG_JBL)
    {
        if(response)
        {
            for(new jMAX_JBLj++)
            {
                if(InfoJBL[JblUsed][j] > -1)
                {
                    new Float:XBFloat:YBFloat:ZBGetDynamicObjectPos(InfoJBL[JblUsed][j], XBYBZB);
                    if(IsPlayerInRangeOfPoint(playerid20.0XBYBZB))
                    {
                        return SCM(playerid0xFF4500FF"{FFA07A}[!] Ja tem uma JBL tocando nesse local");
                    }
                }
            }
            for(new jMAX_JBLj++)
            {
                if(InfoJBL[JblUsed][j] == -1)
                {
                    ApplyAnimation(playerid"BOMBER""BOM_Plant"4.000000);
                    GetPlayerPos(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]);
                    GetXYInFrontOfPlayer(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7);
                    JBL[playerid] = CreateDynamicObject(2226InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.90.000);
                    InfoJBL[JblUsed][j] = JBL[playerid];
                    DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
                    new strp[80];
                    format(strpsizeof(strp), "{FFFF00}JBL {00FF00}Ligada\n{FFFFFF}Proprietario: ID:[%d]"PlayerInfo[playerid][IDF]);
                    InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.510.0);
                    Streamer_Update(playerid);
                    switch(listitem)
                    {
                        case 0:
                        {
                            format(InfoJBL[StringMusica][j], 100"https://www.dropbox.com/scl/fi/86xgktd2eq6ohoq89ghbq/22.mp3?rlkey=9bdxbmu8o0cdd3xosx5oge5sl&dl=0");
                        }
                        case 1:
                        {
                            format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                        case 2:
                        {
                            format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                    }

                    PlayJBL(playerid20.0InfoJBL[StringMusica][j]);
                    return 1;
                }
            }
            return SCM(playerid0xFF4500FF"{FFA07A}[!] Ops! ja tem muitas JBL's ligadas na cidade, aguarde.");
        }
    

Cara, na real. Analisando aqui eu acho melhor você manipular areas ao invés de ficar fazendo loopings, você utiliza o streamer, então é melhor usar ele mesmo criando areas para JBL's.


Código PHP:
// Cria essa nova variável no enumerador
STREAMER_TAG_AREA:jblArea


public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
     if(dialogid == DIALOG_JBL)
    {
        if(response)
        {
            for(new jMAX_JBLj++)
            {
                if(InfoJBL[JblUsed][j] > -1)
                {
                    new Float:XBFloat:YBFloat:ZBGetDynamicObjectPos(InfoJBL[JblUsed][j], XBYBZB);
                    if(IsPlayerInRangeOfPoint(playerid20.0XBYBZB))
                    {
                        return SCM(playerid0xFF4500FF"{FFA07A}[!] Ja tem uma JBL tocando nesse local");
                    }
                }
            }

            for(new jMAX_JBLj++)
            {
                if(InfoJBL[JblUsed][j] == -1)
                {
                    ApplyAnimation(playerid"BOMBER""BOM_Plant"4.000000);
                    GetPlayerPos(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]);
                    GetXYInFrontOfPlayer(playeridInfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7);
                    JBL[playerid] = CreateDynamicObject(2226InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.90.000);
                    InfoJBL[JblUsed][j] = JBL[playerid];
                    DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
                    new strp[80];
                    format(strpsizeof(strp), "{FFFF00}JBL {00FF00}Ligada\n{FFFFFF}Proprietario: ID:[%d]"PlayerInfo[playerid][IDF]);
                    InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.510.0);
                    InfoJBL[jblArea][j] = CreateDynamicCircle(InfoJBL[xJBL][j], InfoJBL[yJBL][j], 20.0);                    

                    Streamer_Update
(playerid);
                    switch(listitem)
                    {
                        case 0:
                        {
                            format(InfoJBL[StringMusica][j], 100"https://www.dropbox.com/scl/fi/86xgktd2eq6ohoq89ghbq/22.mp3?rlkey=9bdxbmu8o0cdd3xosx5oge5sl&dl=0");
                        }
                        case 1:
                        {
                            format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                        case 2:
                        {
                            format(InfoJBL[StringMusica][j], 100"http://som.brasilplaygames.com.br/som/testejbl.mp3");
                        }
                    }

                    for(new 0GetPlayerPoolSize(); <= xi++) if(IsPlayerConnected(i))
                    {
                        if(IsPlayerInDynamicArea(iInfoJBL[jblArea][j]))
                            PlayAudioStreamForPlayer(iInfoJBL[StringMusica][j]);
                    }
                    return 1;
                }
            }
            return SCM(playerid0xFF4500FF"{FFA07A}[!] Ops! ja tem muitas JBL's ligadas na cidade, aguarde.");
        }
    }
    return 1;
}

IsPlayerInDynamicArea(playeridSTREAMER_TAG_AREA:areaidrecheck 0)

public 
OnPlayerEnterDynamicArea(playeridSTREAMER_TAG_AREA:areaid)
{
    for(new jMAX_JBLj++)
    {
        if(InfoJBL[JblUsed][j] != -1)
        {
            if(areaid == InfoJBL[jblArea][j])
            {
                PlayAudioStreamForPlayer(playeridInfoJBL[StringMusica][j]);
                // Jogador entrou na área da JBL
            }
        }
    }
    return 1;
}

public 
OnPlayerLeaveDynamicArea(playeridSTREAMER_TAG_AREA:areaid)
{
    for(new jMAX_JBLj++)
    {
        if(InfoJBL[JblUsed][j] != -1)
        {
            if(areaid == InfoJBL[jblArea][j])
            {
                StopAudioStreamForPlayer(playerid);
                // Jogador saiu da área da JBL
            }
        }
    }
    return 1;


Aí quando o jogador destruir a JBL, você destrói a área para evitar conflitos.
Código PHP:
DestroyDynamicArea(InfoJBL[jblArea][j]); 

Apenas um adendo, o parâmetro "url" deve ser constante, pois não é modificado dentro da função.

Código PHP:
PlayJBL(playeridFloat:range, const url[])