[DUVIDA] Fazer comando /tocar
#1

Olб, gostaria de saber se tem alguma forma de fazer um comando assim:
/tocar [url] e ai comeзava a tocar a url que o player copiou e colou la no campo de texto do samp.
Eu fiz um,mas comeзou dar erro e ai apaguei tudo, fiz tipo assim:
pawn Код:
if(strcmp(cmd, "/tocar", true) == 0)
{
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Use: /tocar [url]");
    new musica = strlen(tmp);
    PlayAudioStreamForPlayer(playerid, musica);
    return 1;
}
mas ai deu erro em new musica = strlen(tmp); dizendo que nunca foi usado, aн coloquei um valor em new musica e deu mais erro ainda. E na linha PlayAudioStreamForPlayer dб um erro falando do argument 2 (musica), nгo lembro o erro.
Acho que era tag mismatch.
Enfim, alguйm sabe se tem como?
Reply
#2

Os parвmetros sгo do PlayAudioStreamForPlayer sгo assim:
pawn Код:
PlayAudioStreamForPlayer(playerid, url[], X, Y, Z, distвncia, usepos);
Reply
#3

Quote:
Originally Posted by Hardware
Посмотреть сообщение
Os parвmetros sгo do PlayAudioStreamForPlayer sгo assim:
pawn Код:
PlayAudioStreamForPlayer(playerid, url[], X, Y, Z, distвncia, usepos);
Mas no FS que eu tava fazendo de mъsicas ele pegou sem isso, nгo dб erro nem nada, e funciona. Acho que й opcional, nгo?

@Edit: Fiz assim e deu erro:
pawn Код:
if(strcmp(cmd, "/tocar", true) == 0)
{
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Use: /tocar [url]");
    new musica = strlen(tmp);
    new Float:X, Float:Y, Float:Z, Float:Distance = 5.0;
    GetPlayerPos(playerid, X, Y, Z);
    PlayAudioStreamForPlayer(playerid, musica,X, Y, Z, Distance, 1);
    return 1;
}
error 035: argument type mismatch (argument 2)
C:\Users\Andrйa\Downloads\Arquivos, Ana\Ajudando os outros\gamemodes\Testando.pwn(129) : warning 204: symbol is assigned a value that is never used: "Distance"
C:\Users\Andrйa\Downloads\Arquivos, Ana\Ajudando os outros\gamemodes\Testando.pwn(12 : warning 204: symbol is assigned a value that is never used: "musica"
Reply
#4

@edit
O cуdigo de antes nгo estava funcionando. Agora eu testei e funciona:
pawn Код:
if(strcmp(cmd, "/tocar", true) == 0)
{
     new str[128];
     str = strrest(cmdtext,idx);
     if(!strlen(str)) return SendClientMessage(playerid, -1, "Use: /tocar [url]");
     PlayAudioStreamForPlayer(playerid, str, 0, 0, 0, 20, 0);
     return 1;
}
Caso dк erro ali no strrest, coloque isso:
pawn Код:
stock strrest(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }
    new offset = index;
    new result[128];
    while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
Reply
#5

aff, nгo dб AHUAHUA o Link nгo cabe tudo onde digita o texto D:
Reply
#6

Coloca sу /t no comando. Eu fiz com o comando "/t" e funcionou.
Reply
#7

Aumenta o limite da str :}
Reply
#8

Em Dialog e Melhor....
Reply
#9

hardware, poderia me mandar o codigo da musica que voce testou ? ja tentei com 2 e nenhum pegou :S
Reply
#10

Usei o comando que postei, sу que era "/t" e funcionou. Mas como tu disse que nгo funcionou, tu tentou aumentar um pouco mais o tamanho da string str?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)