SA-MP Forums Archive
Chuck Norris - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Chuck Norris (/showthread.php?tid=236435)



Chuck Norris - Roomeo - 07.03.2011

Hey guys i added chuck norris system and now it's giving this damn warning
pawn Код:
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(699) : error 017: undefined symbol "cmd"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(699) : error 017: undefined symbol "strtok"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(700) : error 017: undefined symbol "cmd"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(709) : error 017: undefined symbol "RandomMessages"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(709) : error 029: invalid expression, assumed zero
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(709) : warning 215: expression has no effect
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(710) : error 017: undefined symbol "RandomMessages"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(710) : warning 215: expression has no effect
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(710) : error 001: expected token: ";", but found "]"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(710) : error 029: invalid expression, assumed zero
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(710) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


9 Errors.
Script

pawn Код:
{
    new string[512 char];
    new sendername[MAX_PLAYER_NAME];
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd, "/chucknorris", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(!IsPlayerAdmin(playerid))
            {
                SendClientMessage(playerid, 0xFF9900AA, "You are not authorized to use that command.");
                return 1;
            }
            new randMSG = random(sizeof(RandomMessages));
            SendClientMessageToAll(0xFF9900AA, RandomMessages[randMSG]);
            format(string, sizeof(string), "[ADMIN]: %s has Announced Chuck's Fact!.", sendername);
        }
        return 1;
    }
    return 0;
}
And yes pleaze tell me what was the problem?


Re: Chuck Norris - Roomeo - 07.03.2011

Someone Help ME? PLeaze


Re : Chuck Norris - Vukilore - 07.03.2011

replace cmd in cmdtext k:


Re: Chuck Norris - pawn_ - 07.03.2011

512 cells for a string? No, that's just too much, unless you're splitting a string that will cover the whole chat box, it's not recommended.

And there's no need for the 'char' in the string, and why did you format the string but not use it?

And you didn't define idx and cmd.

Fixed code:

pawn Код:
new RandomMessages[][] =
{
    "blabla",
    "blabla2",
    "blabla3",
    "blabla4",
    "blabla5",
    "blabla6",
    "blabla7",
    "blabla8",
    "blabla9",
    "blabla10"
};

public OnPlayerCommandText(playerid, cmdtext[])
{
    new string[128], sendername[24],
    cmd[128], idx; // You forgot these.
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd, "/chucknorris", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(!IsPlayerAdmin(playerid))
            {
                SendClientMessage(playerid, 0xFF9900AA, "You are not authorized to use that command.");
                return 1;
            }
            new randMSG = random(sizeof(RandomMessages));
            SendClientMessageToAll(0xFF9900AA, RandomMessages[randMSG]);
            format(string, sizeof(string), "[ADMIN]: %s has Announced Chuck's Fact!.", sendername);
            SendClientMessageToAll(0xFF9900AA, string);
        }
        return 1;
    }
    return 0;
}

strtok(const string[], &index)
{
    // taken out of pawn_lang.pdf, credits to CompuPhase
    new length = strlen(string);
    /* skip leading white space */
    while (index < length && string[index] <= ' ') index++;
    /* store the word letter for letter */
    new offset = index; /* save start position of token */
    new result[20]; /* string to store the word in */
    while (index < length
    && string[index] > ' '
    && index - offset < sizeof result - 1)
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS; /* zero-terminate the string */
    return result;
}
Works perfectly, but next time, I'd recommend you use zcmd + sscanf for improved speed, plus it's easier.


Re: Chuck Norris - Roomeo - 08.03.2011

pawn Код:
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(647) : error 017: undefined symbol "RandomMessages"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(647) : error 029: invalid expression, assumed zero
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(647) : warning 215: expression has no effect
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(648) : error 017: undefined symbol "RandomMessages"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(648) : warning 215: expression has no effect
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(648) : error 001: expected token: ";", but found "]"
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(648) : error 029: invalid expression, assumed zero
I:\Games\RockStar Game Gta San Andreas\Gta Sanandreas\My Script\gamemodes\My Script.pwn(648) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.
Really?Some Errors

pawn Код:
647)new randMSG = random(sizeof(RandomMessages));
648)           SendClientMessageToAll(0xFF9900AA, RandomMessages[randMSG]);
            format(string, sizeof(string), "[ADMIN]: %s has Announced Chuck's Fact!.", sendername);
            SendClientMessageToAll(0xFF9900AA, string);