Errors

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1068) : error 017: undefined symbol "cmd"
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : error 017: undefined symbol "strtok"
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : error 033: array must be indexed (variable "tmp")
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1080) : error 017: undefined symbol "tmpstring"
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1080) : error 017: undefined symbol "tmpstring"
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1080) : error 029: invalid expression, assumed zero
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1080) : fatal error 107: too many error messages on one line


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



    8 Errors.

  • if (strcmp(cmd, "/freeze", true)==0)
    {
    new tmp[256];
    if(IsPlayerAdmin(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /freeze [ID]");
    return 1;
    }
    new pid = strval(tmp);
    TogglePlayerControllable(pid,0);
    format(tmpstring,sizeof(tmpstring),"%s wurde von %s eingefroren",PlayerName(pid),PlayerName(playerid));
    SendClientMessageToAll(COLOR_LIGHTBLUE,tmpstring);
    }
    return 1;
    }


    if (strcmp(cmd, "/unfreeze", true)==0)
    {
    new tmp[256];
    if(IsPlayerAdmin(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /unfreeze [ID]");
    return 1;
    }
    new pid = strval(tmp);
    TogglePlayerControllable(pid,1);
    format(tmpstring,sizeof(tmpstring),"%s wurde von %s aufgetaut",PlayerName(pid),PlayerName(playerid));
    SendClientMessageToAll(COLOR_LIGHTBLUE,tmpstring);
    }
    return 1;
    }

  • Ok hab ich



    if (strcmp(cmd, "/freeze", true)==0)
    {
    new tmp[256];
    if(IsPlayerAnAdmin(playerid,2))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, 0xFF0019FF, "Benutze: /freeze [ID]");
    return 1;
    }
    new pid = strval(tmp);
    TogglePlayerControllable(pid,0);
    format(tmpstring,sizeof(tmpstring),"%s wurde von %s eingefroren",PlayerName(pid),PlayerName(playerid));
    SendClientMessageToAll(0x00CDFFFF,tmpstring);
    }
    return 1;
    }


    ====================


    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : error 029: invalid expression, assumed zero
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : warning 215: expression has no effect
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : warning 215: expression has no effect
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : error 001: expected token: ";", but found ")"
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : error 029: invalid expression, assumed zero
    C:\Users\Martin\Desktop\samp03csvr_R2-2_win32\Martin2.pwn(1073) : fatal error 107: too many error messages on one line

  • Erstmal muss die Funktion "strtok" überhaupt erstellt werden.
    Dafür ins Script folgendes einfügen:
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    Unter OnPlayerCommandText dann noch folgendes einfügen:
    new cmd[128], idx;
    cmd = strtok(cmdtext, idx);
    Damit wäre das Thema strtok schon mal abgeschlossen (hier gibt es das nochmal zum nachlesen (Englisch)).


    Jetzt den Befehl noch etwas umbauen:
    if(strcmp(cmd, "/freeze", true)==0)
    {
    if(IsPlayerAnAdmin(playerid,2))
    {
    new tmp[128],tmpstring[64]; // die Zeichenkette tmpstring muss vor ihrer Benutzung erstellt werden, die Größe 64 sollte für die Zeichenkette reichen (23 Zeichen Text + 2 Namen mit je maximal 20 Zeichen)
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, 0xFF0019FF, "Benutze: /freeze [ID]");
    return 1;
    }
    new pid = strval(tmp);
    TogglePlayerControllable(pid,0);
    format(tmpstring,sizeof(tmpstring),"%s wurde von %s eingefroren",PlayerName(pid),PlayerName(playerid));
    SendClientMessageToAll(0x00CDFFFF,tmpstring);
    }
    return 1;
    }

  • Erstmal vielen dank....

    Kann es aber sein das es ein fehler gibt, da der PawnoCompiler danach abkackt^^

  • Wo hast du es eingefügt ?
    Der Code gehört natürlich außerhalb von jenen anderen Funktionen und darf nicht in einem public oder sonstigem stehen, weil es eine eigene Funktion ist.


    BTW: Solltest du die defines von Digidiligitia noch drinnen haben, dann lösch diese. ;)