Portal SAMP
[Ajuda] Musicas para o SA-MP - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Musicas para o SA-MP (/showthread.php?tid=524)



Musicas para o SA-MP - LeleziiN - 18/12/2020

Bom como fazer para dropar musicas para tocar no SA-MP, tipo fiz um sistema de musica em base de um que vi na internet, só que não sei como por a musica para toca, pq o sistema de base q peguei lá diz se por o link de qualquer musica do youtube toca ou mesmo só o nome da musica mais, não funcionou aqui. Alguem poderia mim ajudar pfvr

Código:
#include <a_samp>
#include <streamer>

#define DIALOG_MUSICA        64832
#define DIALOG_AJUDA         64833
#define DIALOG_PEDIRMUSICA   64834

#define COR_ERRO        0xFF0000FF
#define COR_INFO        0x00FF00FF
#define COR_DICA        0x0000FFFF

new pname[MAX_PLAYER_NAME];
new bool:PediuMusica[MAX_PLAYERS];

public OnFilterScriptInit()
{
    //print("\n   [FS] Música carregado by [TSVR]LeleziN.Dr   ");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}
public OnPlayerConnect(playerid)
{
    PediuMusica[playerid] = false;
    return 1;
}

public OnPlayerSpawn(playerid)
{
    static nomedoserver[64], str[128];
    //GetConsoleVarAsString("hostname", nomedoserver, sizeof(nomedoserver));
    format(str, sizeof(str), "O %s contém um sistema de música feito por [TSVR]LeleziN.Dr | CMD: /amusica ", nomedoserver);
    SendClientMessage(playerid, COR_DICA, str);
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_MUSICA)
    {
        if(!response)
        {
            SendClientMessage(playerid, COR_INFO, "DICA: Comandos do Sistema de Música: ( /amusica )");
        }
        else
        {
            if(strlen(inputtext) < 1)
            {
                SendClientMessage(playerid, COR_ERRO, "ERRO: Insira alguma música!");
                ShowPlayerDialog(playerid, DIALOG_MUSICA, DIALOG_STYLE_INPUT, "Música para todos", "Insira o nome da música desejada!\n(AVISO): Coloque o cantor e o nome da música ou o link do youtube para melhores resultados\n", "Tocar", "Cancelar");
            }
            else
            {
            static i, str[128], str2[104+MAX_PLAYER_NAME];
            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);
                format(str2, sizeof(str2), "[ADMIN] %s colocou a música %s, digite /pmusica se quiser parar!", pname, inputtext);
                }
                }
            SendClientMessageToAll(COR_INFO, str2);
            }
        }
        return 1;
    }
    if(dialogid == DIALOG_PEDIRMUSICA)
    {
        if(!response)
        {
            SendClientMessage(playerid, -1, "DICA: Comandos do Sistema de Música: ( /amusica )");
        }
        else
        {
            if(strlen(inputtext) < 1)
            {
                SendClientMessage(playerid, COR_ERRO, "ERRO: Insira alguma música!");
                ShowPlayerDialog(playerid, DIALOG_PEDIRMUSICA, 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 ou o link do youtube para melhores resultados\n", "Pedir", "Cancelar");
            }
            else
            {
            SendClientMessage(playerid, COR_DICA, "AVISO: Música enviada com sucesso aos ADMINS!");
               PediuMusica[playerid] = true;
            SetTimerEx("PedidoDeMusica", 120000, false, "d", playerid);
            static i, str2[104+MAX_PLAYER_NAME];
            GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
            for( i = GetMaxPlayers() - 1; i > -1; --i)
            {
                if(IsPlayerAdmin(i))
                {
                format(str2, sizeof(str2), "ATENÇÃO ADMINS: %s está pedindo a música %s", pname, inputtext);
                SendClientMessage(i, COR_INFO, str2);
                }
                }
            }
        }
        return 1;
    }
    return 1;
}
//Funções
forward PedidoDeMusica(playerid);
public PedidoDeMusica(playerid)
{
    PediuMusica[playerid] = false;
    return 1;
}
//Comandos
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp(cmdtext, "/tocarmusica", true)==0)
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COR_ERRO, "ERRO: Comando disponível apenas para admins RCON!");
        ShowPlayerDialog(playerid, DIALOG_MUSICA, DIALOG_STYLE_INPUT, "Música para todos", "Insira o nome da música desejada!\n[AVISO]: Coloque o cantor e o nome da música ou o link do youtube para melhores resultados\n", "Tocar", "Cancelar");
        return 1;
    }
   
    if (strcmp(cmdtext, "/pmusicatodos", true)==0)
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COR_ERRO, "ERRO: Comando disponível apenas para admins RCON!");
        static i,str[104+MAX_PLAYER_NAME];
         GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
        for( i = GetMaxPlayers() - 1; i > -1; --i)
        {
            if(IsPlayerConnected(i))
            {
                StopAudioStreamForPlayer(i);
            }
        }
        format(str, sizeof(str), "[ADMIN] %s parou a música atual!", pname);
        SendClientMessageToAll(COR_INFO, str);
        return 1;
    }
   
    if (strcmp(cmdtext, "/pmusica", true)==0)
    {
        StopAudioStreamForPlayer(playerid);
        SendClientMessage(playerid, COR_INFO, "INFO: A reprodução de sons foi parada!");
        return 1;
    }
   
    if (strcmp(cmdtext, "/pedirmusica", true)==0)
    {
        if(PediuMusica[playerid] == false)
        {
            ShowPlayerDialog(playerid, DIALOG_PEDIRMUSICA, 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 ou o link do youtube para melhores resultados\n", "Pedir", "Cancelar");
        }
        else
        {
            SendClientMessage(playerid, COR_ERRO, "ERRO: Aguarde 2 Minutos para pedir outra música!");
        }
        return 1;
    }
   
    if (strcmp(cmdtext, "/amusica", true)==0)
    {
        if(IsPlayerAdmin(playerid))
        {
            ShowPlayerDialog(playerid, DIALOG_AJUDA, DIALOG_STYLE_MSGBOX, "Comandos de Música", "COMANDOS ADM: \n\n/tocarmusica - Toca uma música para todos pelo nome ou link do youtube\n/pmusicatodos - Para a música de todos\n\nCOMANDOS PLAYER: \n\n/pmusica - Para a música atual\n/pedirmusica - Envia a música desejada para os admins online\n", "Ok", "");
        }
        else
        {
            ShowPlayerDialog(playerid, DIALOG_AJUDA, DIALOG_STYLE_MSGBOX, "Comandos de Música", "/pmusica - Para a música atual\n/pedirmusica - Envia a música desejada para os admins online\n", "Ok", "");
        }
        return 1;
    }
    return 1;
}



RE: Musicas para o SA-MP - LeleziiN - 18/12/2020

Bom eu conseguir dropar as musicas, mais quando ponho o link da musica na DIALOG não toca oq poderá ser?


RE: Musicas para o SA-MP - xbruno1000x - 20/12/2020

Você pode utilizar o MP3 juice para baixar uma música do Youtube e por no servidor, ou então upar no dropbox. Caso contrário, não funcionará.


RE: Musicas para o SA-MP - Hazard - 20/12/2020

é porque essa api que converte nome da musica no link de download dela deve ter caído


RE: Musicas para o SA-MP - LeleziiN - 20/12/2020

Bom conseguir resolver o problema, mais não deu para avisa pois o Forum estava em manutenção, mais muito obrigado a todos pela ajuda