[Ajuda] undefined symbol "sscanf"
#1

bem Galera la estava eu indo criar um Code pronto !! terminei na exata hora que vou copilar tchanam
da 5 Erros
1°:error 017: undefined symbol "sscanf"
2°:error 029: invalid expression, assumed zero
3°:error 017: undefined symbol "sscanf"
4°:invalid expression, assumed zero
5°:fatal error 107: too many error messages on one line

Linha dos Erros:
PHP код:
if(sscanf(params"i"Desafia)) return SendClientMessage(playerid, -1"Use: /Desafia [id]");
outro erro:
 
stock sscanf(string[], format[], {Float,_}:...) 
Observaзхes: Estou usando uma strtok que um amigo aki do forum me passou que usando ela nгo preзisar de include usei ir ja testei em outros fs mais nesse ta dando esses erros
Strtok:
PHP код:
stock sscanf(string[], format[], {Float,_}:...)
{
    
#if defined isnull
        
if (isnull(string))
    
#else
        
if (string[0] == || (string[0] == && string[1] == 0))
    
#endif
        
{
            return 
format[0];
        }
    
#pragma tabsize 4
    
new
        
formatPos 0,
        
stringPos 0,
        
paramPos 2,
        
paramCount numargs(),
        
delim ' ';
    while (
string[stringPos] && string[stringPos] <= ' ')
    {
        
stringPos++;
    }
    while (
paramPos paramCount && string[stringPos])
    {
        switch (
format[formatPos++])
        {
            case 
'\0':
            {
                return 
0;
            }
            case 
'i''d':
            {
                new
                    
neg 1,
                    
num 0,
                    
ch string[stringPos];
                if (
ch == '-')
                {
                    
neg = -1;
                    
ch string[++stringPos];
                }
                do
                {
                    
stringPos++;
                    if (
'0' <= ch <= '9')
                    {
                        
num = (num 10) + (ch '0');
                    }
                    else
                    {
                        return -
1;
                    }
                }
                while ((
ch string[stringPos]) > ' ' && ch != delim);
                
setarg(paramPos0num neg);
            }
            case 
'h''x':
            {
                new
                    
num 0,
                    
ch string[stringPos];
                do
                {
                    
stringPos++;
                    switch (
ch)
                    {
                        case 
'x''X':
                        {
                            
num 0;
                            continue;
                        }
                        case 
'0' .. '9':
                        {
                            
num = (num << 4) | (ch '0');
                        }
                        case 
'a' .. 'f':
                        {
                            
num = (num << 4) | (ch - ('a' 10));
                        }
                        case 
'A' .. 'F':
                        {
                            
num = (num << 4) | (ch - ('A' 10));
                        }
                        default:
                        {
                            return -
1;
                        }
                    }
                }
                while ((
ch string[stringPos]) > ' ' && ch != delim);
                
setarg(paramPos0num);
            }
            case 
'c':
            {
                
setarg(paramPos0string[stringPos++]);
            }
            case 
'f':
            {
                new 
changestr[16], changepos 0strpos stringPos;
                while(
changepos 16 && string[strpos] && string[strpos] != delim)
                {
                    
changestr[changepos++] = string[strpos++];
                    }
                
changestr[changepos] = '\0';
                
setarg(paramPos,0,_:floatstr(changestr));
            }
            case 
'p':
            {
                
delim format[formatPos++];
                continue;
            }
            case 
'\'':
            {
                new
                    
end formatPos 1,
                    
ch;
                while ((
ch format[++end]) && ch != '\'') {}
                if (!
ch)
                {
                    return -
1;
                }
                
format[end] = '\0';
                if ((
ch strfind(stringformat[formatPos], falsestringPos)) == -1)
                {
                    if (
format[end 1])
                    {
                        return -
1;
                    }
                    return 
0;
                }
                
format[end] = '\'';
                
stringPos ch + (end formatPos);
                
formatPos end 1;
            }
            case 
'u':
            {
                new
                    
end stringPos 1,
                    
id 0,
                    
bool:num true,
                    
ch;
                while ((
ch string[++end]) && ch != delim)
                {
                    if (
num)
                    {
                        if (
'0' <= ch <= '9')
                        {
                            
id = (id 10) + (ch '0');
                        }
                        else
                        {
                            
num false;
                        }
                    }
                }
                if (
num && IsPlayerConnected(id))
                {
                    
setarg(paramPos0id);
                }
                else
                {
                    
#if !defined foreach
                        #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
                        #define __SSCANF_FOREACH__
                    #endif
                    
string[end] = '\0';
                    
num false;
                    new
                        
name[MAX_PLAYER_NAME];
                    
id end stringPos;
                    foreach (
Playerplayerid)
                    {
                        
GetPlayerName(playeridnamesizeof (name));
                        if (!
strcmp(namestring[stringPos], trueid))
                        {
                            
setarg(paramPos0playerid);
                            
num true;
                            break;
                        }
                    }
                    if (!
num)
                    {
                        
setarg(paramPos0INVALID_PLAYER_ID);
                    }
                    
string[end] = ch;
                    
#if defined __SSCANF_FOREACH__
                        #undef foreach
                        #undef __SSCANF_FOREACH__
                    #endif
                
}
                
stringPos end;
            }
            case 
's''z':
            {
                new
                    
0,
                    
ch;
                if (
format[formatPos])
                {
                    while ((
ch string[stringPos++]) && ch != delim)
                    {
                        
setarg(paramPosi++, ch);
                    }
                    if (!
i)
                    {
                        return -
1;
                    }
                }
                else
                {
                    while ((
ch string[stringPos++]))
                    {
                        
setarg(paramPosi++, ch);
                    }
                }
                
stringPos--;
                
setarg(paramPosi'\0');
            }
            default:
            {
                continue;
            }
        }
        while (
string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
        {
            
stringPos++;
        }
        while (
string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
        {
            
stringPos++;
        }
        
paramPos++;
    }
    do
    {
        if ((
delim format[formatPos++]) > ' ')
        {
            if (
delim == '\'')
            {
                while ((
delim format[formatPos++]) && delim != '\'') {}
            }
            else if (
delim != 'z')
            {
                return 
delim;
            }
        }
    }
    while (
delim ' ');
    return 
0;

+rep pra quem ajuda ae por favor
Reply
#2

final do gm
PHP код:
stock sscanf(string[], format[], {Float,_}:...)
{
    
#if defined isnull
        
if (isnull(string))
    
#else
        
if (string[0] == || (string[0] == && string[1] == 0))
    
#endif
        
{
            return 
format[0];
        }
    
#pragma tabsize 4
    
new
        
formatPos 0,
        
stringPos 0,
        
paramPos 2,
        
paramCount numargs(),
        
delim ' ';
    while (
string[stringPos] && string[stringPos] <= ' ')
    {
        
stringPos++;
    }
    while (
paramPos paramCount && string[stringPos])
    {
        switch (
format[formatPos++])
        {
            case 
'\0':
            {
                return 
0;
            }
            case 
'i''d':
            {
                new
                    
neg 1,
                    
num 0,
                    
ch string[stringPos];
                if (
ch == '-')
                {
                    
neg = -1;
                    
ch string[++stringPos];
                }
                do
                {
                    
stringPos++;
                    if (
'0' <= ch <= '9')
                    {
                        
num = (num 10) + (ch '0');
                    }
                    else
                    {
                        return -
1;
                    }
                }
                while ((
ch string[stringPos]) > ' ' && ch != delim);
                
setarg(paramPos0num neg);
            }
            case 
'h''x':
            {
                new
                    
num 0,
                    
ch string[stringPos];
                do
                {
                    
stringPos++;
                    switch (
ch)
                    {
                        case 
'x''X':
                        {
                            
num 0;
                            continue;
                        }
                        case 
'0' .. '9':
                        {
                            
num = (num << 4) | (ch '0');
                        }
                        case 
'a' .. 'f':
                        {
                            
num = (num << 4) | (ch - ('a' 10));
                        }
                        case 
'A' .. 'F':
                        {
                            
num = (num << 4) | (ch - ('A' 10));
                        }
                        default:
                        {
                            return -
1;
                        }
                    }
                }
                while ((
ch string[stringPos]) > ' ' && ch != delim);
                
setarg(paramPos0num);
            }
            case 
'c':
            {
                
setarg(paramPos0string[stringPos++]);
            }
            case 
'f':
            {
 
                new 
changestr[16], changepos 0strpos stringPos;     
                while(
changepos 16 && string[strpos] && string[strpos] != delim)
                {
                    
changestr[changepos++] = string[strpos++];
                    } 
                
changestr[changepos] = '\0'
                
setarg(paramPos,0,_:floatstr(changestr)); 
            } 
            case 
'p':
            {
                
delim format[formatPos++];
                continue;
            }
            case 
'\'':
            {
                new
                    
end formatPos 1,
                    
ch;
                while ((
ch format[++end]) && ch != '\'') {}
                if (!
ch)
                {
                    return -
1;
                }
                
format[end] = '\0';
                if ((
ch strfind(stringformat[formatPos], falsestringPos)) == -1)
                {
                    if (
format[end 1])
                    {
                        return -
1;
                    }
                    return 
0;
                }
                
format[end] = '\'';
                
stringPos ch + (end formatPos);
                
formatPos end 1;
            }
            case 
'u':
            {
                new
                    
end stringPos 1,
                    
id 0,
                    
bool:num true,
                    
ch;
                while ((
ch string[++end]) && ch != delim)
                {
                    if (
num)
                    {
                        if (
'0' <= ch <= '9')
                        {
                            
id = (id 10) + (ch '0');
                        }
                        else
                        {
                            
num false;
                        }
                    }
                }
                if (
num && IsPlayerConnected(id))
                {
                    
setarg(paramPos0id);
                }
                else
                {
                    
#if !defined foreach
                        #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
                        #define __SSCANF_FOREACH__
                    #endif
                    
string[end] = '\0';
                    
num false;
                    new
                        
name[MAX_PLAYER_NAME];
                    
id end stringPos;
                    foreach (
Playerplayerid)
                    {
                        
GetPlayerName(playeridnamesizeof (name));
                        if (!
strcmp(namestring[stringPos], trueid))
                        {
                            
setarg(paramPos0playerid);
                            
num true;
                            break;
                        }
                    }
                    if (!
num)
                    {
                        
setarg(paramPos0INVALID_PLAYER_ID);
                    }
                    
string[end] = ch;
                    
#if defined __SSCANF_FOREACH__
                        #undef foreach
                        #undef __SSCANF_FOREACH__
                    #endif
                
}
                
stringPos end;
            }
            case 
's''z':
            {
                new
                    
0,
                    
ch;
                if (
format[formatPos])
                {
                    while ((
ch string[stringPos++]) && ch != delim)
                    {
                        
setarg(paramPosi++, ch);
                    }
                    if (!
i)
                    {
                        return -
1;
                    }
                }
                else
                {
                    while ((
ch string[stringPos++]))
                    {
                        
setarg(paramPosi++, ch);
                    }
                }
                
stringPos--;
                
setarg(paramPosi'\0');
            }
            default:
            {
                continue;
            }
        }
        while (
string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
        {
            
stringPos++;
        }
        while (
string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
        {
            
stringPos++;
        }
        
paramPos++;
    }
    do
    {
        if ((
delim format[formatPos++]) > ' ')
        {
            if (
delim == '\'')
            {
                while ((
delim format[formatPos++]) && delim != '\'') {}
            }
            else if (
delim != 'z')
            {
                return 
delim;
            }
        }
    }
    while (
delim ' ');
    return 
false;

Reply
#3

Deu o mesmo erro ¬¬
Reply
#4

Manda o comando inteiro ¬¬
Reply
#5

Vocк tem a include sscanf? '-'
Reply
#6

Verifique se vocк instalou correctamenteo plugin/include.

Abraзos.
Reply
#7

Quote:
Originally Posted by Los
Посмотреть сообщение
Verifique se vocк instalou correctamenteo plugin/include.

Abraзos.
Los, ele usa unicamente a stock sscanf dentro do prуprio script.
Reply
#8

eu uso uma strtok dentro do script n preзisa de include antigamente dava certo mais agora n sei pq ta errado
Reply
#9

Tente:

Coloque o plugin sscanf na pasta plugins como disse o LУS.
Apуs ter colocado abra o pwn.exe e no canto esquerdo superior tem uma pasta amarela, clique-a e abra seu gamemode.
Compile e reporte abaixo o que deu.
Reply
#10

TENTA ASSIM :
pawn Код:
// ================[ SSCANF ]================ //

stock sscanf(string[], format[], {Float,_}:...)
{
    #if defined isnull
        if (isnull(string))
    #else
        if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
        {
            return format[0];
        }
    #pragma tabsize 4
    new
        formatPos = 0,
        stringPos = 0,
        paramPos = 2,
        paramCount = numargs(),
        delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
        stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
        switch (format[formatPos++])
        {
            case '\0':
            {
                return 0;
            }
            case 'i', 'd':
            {
                new
                    neg = 1,
                    num = 0,
                    ch = string[stringPos];
                if (ch == '-')
                {
                    neg = -1;
                    ch = string[++stringPos];
                }
                do
                {
                    stringPos++;
                    if ('0' <= ch <= '9')
                    {
                        num = (num * 10) + (ch - '0');
                    }
                    else
                    {
                        return -1;
                    }
                }
                while ((ch = string[stringPos]) > ' ' && ch != delim);
                setarg(paramPos, 0, num * neg);
            }
            case 'h', 'x':
            {
                new
                    num = 0,
                    ch = string[stringPos];
                do
                {
                    stringPos++;
                    switch (ch)
                    {
                        case 'x', 'X':
                        {
                            num = 0;
                            continue;
                        }
                        case '0' .. '9':
                        {
                            num = (num << 4) | (ch - '0');
                        }
                        case 'a' .. 'f':
                        {
                            num = (num << 4) | (ch - ('a' - 10));
                        }
                        case 'A' .. 'F':
                        {
                            num = (num << 4) | (ch - ('A' - 10));
                        }
                        default:
                        {
                            return -1;
                        }
                    }
                }
                while ((ch = string[stringPos]) > ' ' && ch != delim);
                setarg(paramPos, 0, num);
            }
            case 'c':
            {
                setarg(paramPos, 0, string[stringPos++]);
            }
            case 'f':
            {

                new changestr[16], changepos = 0, strpos = stringPos;
                while(changepos < 16 && string[strpos] && string[strpos] != delim)
                {
                    changestr[changepos++] = string[strpos++];
                    }
                changestr[changepos] = '\0';
                setarg(paramPos,0,_:floatstr(changestr));
            }
            case 'p':
            {
                delim = format[formatPos++];
                continue;
            }
            case '\'':
            {
                new
                    end = formatPos - 1,
                    ch;
                while ((ch = format[++end]) && ch != '\'') {}
                if (!ch)
                {
                    return -1;
                }
                format[end] = '\0';
                if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
                {
                    if (format[end + 1])
                    {
                        return -1;
                    }
                    return 0;
                }
                format[end] = '\'';
                stringPos = ch + (end - formatPos);
                formatPos = end + 1;
            }
            case 'u':
            {
                new
                    end = stringPos - 1,
                    id = 0,
                    bool:num = true,
                    ch;
                while ((ch = string[++end]) && ch != delim)
                {
                    if (num)
                    {
                        if ('0' <= ch <= '9')
                        {
                            id = (id * 10) + (ch - '0');
                        }
                        else
                        {
                            num = false;
                        }
                    }
                }
                if (num && IsPlayerConnected(id))
                {
                    setarg(paramPos, 0, id);
                }
                else
                {
                    #if !defined foreach
                        #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
                        #define __SSCANF_FOREACH__
                    #endif
                    string[end] = '\0';
                    num = false;
                    new
                        name[MAX_PLAYER_NAME];
                    id = end - stringPos;
                    foreach (Player, playerid)
                    {
                        GetPlayerName(playerid, name, sizeof (name));
                        if (!strcmp(name, string[stringPos], true, id))
                        {
                            setarg(paramPos, 0, playerid);
                            num = true;
                            break;
                        }
                    }
                    if (!num)
                    {
                        setarg(paramPos, 0, INVALID_PLAYER_ID);
                    }
                    string[end] = ch;
                    #if defined __SSCANF_FOREACH__
                        #undef foreach
                        #undef __SSCANF_FOREACH__
                    #endif
                }
                stringPos = end;
            }
            case 's', 'z':
            {
                new
                    i = 0,
                    ch;
                if (format[formatPos])
                {
                    while ((ch = string[stringPos++]) && ch != delim)
                    {
                        setarg(paramPos, i++, ch);
                    }
                    if (!i)
                    {
                        return -1;
                    }
                }
                else
                {
                    while ((ch = string[stringPos++]))
                    {
                        setarg(paramPos, i++, ch);
                    }
                }
                stringPos--;
                setarg(paramPos, i, '\0');
            }
            default:
            {
                continue;
            }
        }
        while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
        {
            stringPos++;
        }
        while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
        {
            stringPos++;
        }
        paramPos++;
    }
    do
    {
        if ((delim = format[formatPos++]) > ' ')
        {
            if (delim == '\'')
            {
                while ((delim = format[formatPos++]) && delim != '\'') {}
            }
            else if (delim != 'z')
            {
                return delim;
            }
        }
    }
    while (delim > ' ');
    return 0;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)