sscfan -
Ћilvėnas - 26.03.2011
Hello sa-mp's Friend
Error! (: Who is within this?)
Код:
D: \ RUF \ gamemodes \ ZFR.pwn (257): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (295): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (313): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (329): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (339): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (355): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (370): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (384): error 017: undefined symbol 'sscanf'
C: \ RUF \ gamemodes \ ZFR.pwn (398): error 017: undefined symbol 'sscanf'
Code:
Pastebin CODE
I would ask the most pressing needs of the answers
thanks.
Re: sscfan -
armyoftwo - 26.03.2011
Do you have #include <sscanf2> on top of your script?
Re: sscfan -
aircombat - 26.03.2011
it depends which sscanf version u use 1 or 2?
Re: sscfan -
Ћilvėnas - 26.03.2011
MMM
#include <zcmd_sscanf> Whis added
Re: sscfan -
[ProX]BlueFire - 26.03.2011
u should do this:
Код:
#include <zcmd>
#include <sscanf2>
if u use sscanf 1 so do like this:
Код:
#include <zcmd>
#include <sscanf>
if u will do like this:
Код:
#include <zcmd_sscanf>
it will give u an error
Re: sscfan -
armyoftwo - 26.03.2011
1st version of sscanf
pawn Код:
/*----------------------------------------------------------------------------*-
Function:
sscanf
Params:
string[] - String to extract parameters from.
format[] - Parameter types to get.
{Float,_}:... - Data return variables.
Return:
0 - Successful, not 0 - fail.
Notes:
A fail is either insufficient variables to store the data or insufficient
data for the format string - excess data is disgarded.
A string in the middle of the input data is extracted as a single word, a
string at the end of the data collects all remaining text.
The format codes are:
c - A character.
d, i - An integer.
h, x - A hex number (e.g. a colour).
f - A float.
s - A string.
z - An optional string.
pX - An additional delimiter where X is another character.
'' - Encloses a litteral string to locate.
u - User, takes a name, part of a name or an id and returns the id if they're connected.
Now has IsNumeric integrated into the code.
Added additional delimiters in the form of all whitespace and an
optioanlly specified one in the format string.
-*----------------------------------------------------------------------------*/
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;
}
2nd - SEARCH!
Re: sscfan -
Ћilvėnas - 26.03.2011
And can you give me sscanf2 include,or sscanf
?
Re: sscfan -
armyoftwo - 26.03.2011
I just looked at the code, and i see that you're using 1st version of sscanf.
1. Find bottom of your script
2. Copy/Paste the code i gave you
3. Compile
4.
5. PROFIT!!
Re: sscfan -
Ћilvėnas - 26.03.2011
But,I don't make in .INC!
Re: sscfan -
[ProX]BlueFire - 26.03.2011
HERE
installation:
1)download(at the battom of the thread)
2)file "sscanf" to ur server,all the files in plugins put in ur "plugins" folder,the same with pawno(to pawno/includes)
3)go to ur server.cfg search for line called "plugins" if u dont have it yet so make 1(it should look like thet: plugins sscanf )
4)goto ur script or gm and add on the top of ur script : #include <sscanf2>
5)ur done!