How to fix these
#1

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

pawn Код:
new name[24];
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,
Reply
#2

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;
}
Reply
#3

I think it means that you already have
Код:
new name;
at the top of your script, so not in a public.
Reply
#4

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;
}
Reply
#5

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
Reply
#6

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
Reply
#7

what happens if you remove the whole arrest code ?
Reply
#8

Compiled successfully
Reply
#9

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;
}
Reply
#10

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)