[Ajuda] sscanf 2 ajuda
#1

O que eu to fazendo de errado q n ta indo?

pawn Код:
if ( !strcmp ( _cmdtext , "/transfer" ) )
    {
        new quantidade[50] , ID;    
        new string[80];
        if ( sscanf ( params , "si" , quantidade, ID ) ) //Sscanf retorna 1 quando os parвmetros nгo sгo completados com sucesso
            return SendClientMessage ( playerid , 0xFF0000FF , "Uso Correto /transfer [id] [value]" ); //OBS: Parвmetros aleatуrios.

           
        if(bank[playerid] < quantidade) {
            SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo tem todo esse dinheiro!");
        }
        format(string, sizeof(string), "%s transferiu %i para %s!", PlayerName(playerid), quantidade, PlayerName(ID) );
        SendClientMessage(playerid, COLOR_GREEN, string);
        SendClientMessage(ID, COLOR_GREEN, string);
       
        bank[playerid] -= quantidade;
        bank[ID] += quantidade;

        return 1;
    }
Reply
#2

Qual й o problema?
Reply
#3

if ( !strcmp ( _cmdtext , "/transfer" ) )
error 017: undefined symbol "_cmdtext"

if ( sscanf ( params , "si" , quantidade, ID ) ) //Sscanf retorna 1 quando os parвmetros nгo sгo completados com sucesso
error 017: undefined symbol "params"

if(bank[playerid] < quantidade) {
error 033: array must be indexed (variable "quantidade")

bank[playerid] -= quantidade;
bank[ID] += quantidade;
error 033: array must be indexed (variable "quantidade")
Reply
#4

pawn Код:
if(!strcmp(cmdtext,"/transfer"))
{
    new quantidade, ID;
    new string[80];
    if (sscanf(cmdtext,"ud",ID,quantidade)) //Sscanf retorna 1 quando os parвmetros nгo sгo completados com sucesso
    return SendClientMessage(playerid , 0xFF0000FF , "Uso Correto /transfer [id] [value]" ); //OBS: Parвmetros aleatуrios.
    if(bank[playerid] < quantidade)  return SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo tem todo esse dinheiro!");
    format(string, sizeof(string), "%s transferiu %d para %s!", PlayerName(playerid), quantidade, PlayerName(ID) );
    SendClientMessage(playerid, COLOR_GREEN, string);
    SendClientMessage(ID, COLOR_GREEN, string);
    bank[playerid] -= quantidade;
    bank[ID] += quantidade;
    return 1;
}
caso continue dando erro coloque no inicio da onplayercommandotext
pawn Код:
new cmdtext[40];
Reply
#5

Erro 017: a string _cmdtext nгo foi definida.

vocк deve ter visto este tutorial:
https://sampforum.blast.hk/showthread.php?tid=468180

Coloque no topo da callback OnPlayerCommandText:
pawn Код:
new _cmdtext [ 50 ];
Os outros erros sгo por vocк tentar comparar uma string com um inteiro.

Vocк definiu quantidade como uma string mais, pelo que eu vi que vocк tentou fazer vocк vai ter uma usar uma variбvel do tipo inteiro.

pawn Код:
new quantidade[50] , ID;
//Para
new quantidade , ID;

//Aqui
if ( sscanf ( params , "si" , quantidade, ID ) )

//Para

if ( sscanf ( params , "di" , quantidade, ID ) )
Reply
#6

Valeu entendi jб, sу nгo entendo pq tem q ficar definindo essas paradas

Mas ainda tem erro
if ( sscanf ( params , "si" , quantidade, ID ) )

error 017: undefined symbol "params"


Pq tem q ficar definindo essas paradas?

Й melhor em cada comando eu definir string[x] ou lб em oncommandtext colocar string[128]?
Reply
#7

Topo da callback OnPlayerCommandText, junto com a string _cmdtext:
pawn Код:
new params [ 200 ];
Reply
#8

o undefine symbol й por que o simbolo nгo estб definido.
pawn Код:
new params[250];
Reply
#9

Nao deve ser isso nao wendel, fico mt bugado qnd eu fiz tipo isso, se eu dou /entrar da o comando de transferir, varias paradas q eu faзo da /transferir, qnd eu do /transferir id quantidade nгo funciona
Reply
#10

Vocк colocou a ordem dos parвmetros na seguinte forma: /transferir [quantidade] [id].
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)