How to fix these -
JoeDaDude - 20.01.2010
pawn Код:
new name[24];
GetPlayerName(playerid,name,24);
if(strcmp(name, "Torran", false) == 0)
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Admin","This Admin Account Requires a Password\nType down the correct password to login","OK","Cancel");
}
return 1;
}
Код:
C:\Program Files\Rockstar Games\GTA San Andreas\sa-mp\gamemodes\sftdm.pwn(415) : warning 219: local variable "name" shadows a variable at a preceding level
So to fix it i removed
And then it brung the errors
Код:
C:\Program Files\Rockstar Games\GTA San Andreas\sa-mp\gamemodes\sftdm.pwn(415) : error 017: undefined symbol "name"
C:\Program Files\Rockstar Games\GTA San Andreas\sa-mp\gamemodes\sftdm.pwn(416) : error 017: undefined symbol "name"
But ive never had this error before,
And ive used name lots and lots of times,
Re: How to fix these -
JoeDaDude - 20.01.2010
Same with strings too,
It all started when i added this command,
Im new to ZCMD so i might of done something wrong,
pawn Код:
CMD:arrest(playerid, params[]_
{
if (!sscanf(params, "u", id)) return SendClientMessage(playerid, COLOR_RED, "Usage: /arrest [Playerid/PartOfName]");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Player not found");
if (gTeam[playerid] != TEAM_CROOKSF) return SendClientMessage(playerid, COLOR_RED, "You are not a police officer");
if (id == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot use this command on yourself");
if (gTeam[id] == gTeam[playerid]) return SendClientMessage(playerid, COLOR_RED, "You cannot arrest a police officer");
new name[MAX_PLAYER_NAME], string[48];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "Police Officer %s has arrested you.", name);
SendClientMessage(id, COLOR_WHITE, string);
SetTimerEx("ArrestTimer", 20000, 0, "i", playerid);
SetPlayerPos(id, 264.9072,77.9281,1001.0391);
GivePlayerMoney(playerid,-1);
ResetPlayerMoney(playerid);
GetPlayerName(id, name, sizeof(name));
format(string, sizeof(string), "You have arrested %s", name);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
Re: How to fix these - WackoX - 20.01.2010
I think it means that you already have
at the top of your script, so not in a public.
Re: How to fix these -
JoeDaDude - 20.01.2010
I know what the error means,
Its just something in that code thats causing it
pawn Код:
CMD:arrest(playerid, params[])
{
if (!sscanf(params, "u", id)) return SendClientMessage(playerid, COLOR_RED, "Usage: /arrest [Playerid/PartOfName]");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Player not found");
if (gTeam[playerid] != TEAM_CROOKSF) return SendClientMessage(playerid, COLOR_RED, "You are not a police officer");
if (id == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot use this command on yourself");
if (gTeam[id] == gTeam[playerid]) return SendClientMessage(playerid, COLOR_RED, "You cannot arrest a police officer");
new name[MAX_PLAYER_NAME], string[48];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "Police Officer %s has arrested you.", name);
SendClientMessage(id, COLOR_WHITE, string);
SetTimerEx("ArrestTimer", 20000, 0, "i", playerid);
SetPlayerPos(id, 264.9072,77.9281,1001.0391);
GivePlayerMoney(playerid,-1);
ResetPlayerMoney(playerid);
GetPlayerName(id, name, sizeof(name));
format(string, sizeof(string), "You have arrested %s", name);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
Re: How to fix these -
Nero_3D - 20.01.2010
if you know what it means, fix it
you used "name" already somewhere above
easiest way for you, rename the name variable (and everywhere you used it in arrest)
or find "name" and change that varialbe / function whatever
Re: How to fix these -
JoeDaDude - 20.01.2010
Thats the fing, I do that! I know what to do, And ive doen it, And it still says it,
Its in that arrest code there, But if i remove name and string from tht, no errors,
But 2 warnings tht undefined symbol name and string,Whatevre i do just brings more errors
Re: How to fix these -
Nero_3D - 20.01.2010
what happens if you remove the whole arrest code ?
Re: How to fix these -
JoeDaDude - 20.01.2010
Compiled successfully
Re: How to fix these -
Nero_3D - 20.01.2010
thats indeed strange
try that
pawn Код:
CMD:arrest(playerid, params[])
{
if (gTeam[playerid] != TEAM_CROOKSF) return SendClientMessage(playerid, COLOR_RED, "You are not a police officer");
if (sscanf(params, "u", id)) return SendClientMessage(playerid, COLOR_RED, "Usage: /arrest [Playerid/PartOfName]");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Player not found");
if (id == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot use this command on yourself");
if (gTeam[id] == gTeam[playerid]) return SendClientMessage(playerid, COLOR_RED, "You cannot arrest a police officer");
new string[58];
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "Police Officer %s has arrested you.", string);
SendClientMessage(id, COLOR_WHITE, string);
GetPlayerName(id, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "You have arrested %s", string);
SendClientMessage(playerid, COLOR_WHITE, string);
SetTimerEx("ArrestTimer", 20000, 0, "i", playerid); //playerid ?
SetPlayerPos(id, 264.9072, 77.9281, 1001.0391);
ResetPlayerMoney(playerid); //playerid ?
return 1;
}
Re: How to fix these -
JoeDaDude - 20.01.2010
pawn Код:
stock sscanf(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;
}
Код:
C:\Program Files\Rockstar Games\GTA San Andreas\sa-mp\gamemodes\sftdm.pwn(1084) : error 017: undefined symbol "string"
C:\Program Files\Rockstar Games\GTA San Andreas\sa-mp\gamemodes\sftdm.pwn(1084) : error 029: invalid expression, assumed zero
C:\Program Files\Rockstar Games\GTA San Andreas\sa-mp\gamemodes\sftdm.pwn(1084) : error 017: undefined symbol "string"
C:\Program Files\Rockstar Games\GTA San Andreas\sa-mp\gamemodes\sftdm.pwn(1084) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
4 Errors.