Fehler Behebung, weiß nicht weiter

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
  • Hey,
    bin recht neu hier beim Sachen Pawn und auch hier im Forum!
    Ich weiß nicht wie ich diese Fehler hier beheben kann.


    Die Fehler:


    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(83) : error 029: invalid expression, assumed zero
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(83) : warning 215: expression has no effect
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(83) : error 001: expected token: ";", but found "]"
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(83) : error 029: invalid expression, assumed zero
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(83) : fatal error 107: too many error messages on one line


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




    4 Errors.
    Der Script:
    http://pastebin.de/22737


    Währe schön wenn ihr einem Anfänger wie mir helfen könntet!


    Mit freundlichen Grüßen
    m0ran55


  • In der Zeile 83 wird irgendwo ein Zeichen falsch gesetzt sein, überprüf bitte die Zeile ganz genau.

    Dies habe ich bereits mehrmals. Aber die Zeile ist genau wie im Tutorial!


    Das Tutorial findet ihr hier !

  • Also das ist meine Zeile (btw: PasteBin ist eingefügt!):


    if(loggedin[playerid] == false)

  • Wieso hälst du dich nicht an das Tutorial?

    Zitat

    Jetzt müssen wir einen neuen bool ertsellen. ein Bool ist soetwas wie eine funktion. Diesen bool brauchen wir, damit der Sevrer weiß, wann der Spieler eingeloggt ist, und wann nicht.


    Und das macht man wie im Tutorial geschrieben mit:
    new bool:loggedin[MAX_PLAYERS];
    Und nicht niemals mit define ;)

  • Du hast es laut pastebin.de derzeit so:
    #define loggedin
    richtig wäre aber:
    new bool:loggedin[MAX_PLAYERS];
    Aus dem ganz einfachen Grund, dass du in einer if-Abfrage nur Variablen nutzen kannst, und keine defines (gibt's dafür eigentlich einen Fachausdruck?).
    Heißt, das define entfernen und außerhalb eines Callbacks die oben genannte Variabel dekladieren.


    /E: Der Ink war schneller .__.

    Bin weg, Tschau! (Account kann gelöscht werden)

  • Wieso hälst du dich nicht an das Tutorial?


    Und das macht man wie im Tutorial geschrieben mit:
    new bool:loggedin[MAX_PLAYERS];
    Und nicht niemals mit define ;)

    Ja, das soll ich doch in das enum reinmachen, oder nicht?


    @InterntlInk aka Benjamin:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Lerne direkt den Code einzurücken, so wie ich jetzt, dann siehst du solche fehler (Klammerfehler) sofort.

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new spieler[MAX_PLAYER_NAME];
    if(strcmp(strget(cmdtext,0),"/register",true) == 0)
    {
    new save[40];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(!dini_Exists(save))
    {
    dini_Create(save))
    dini_IntSet(save,"passwort",udb_hash(strget/cmdtext,1)));
    SendClientMessage(playerid,HELLBLAU,"Dein Account wurde erfolgreich registriert");
    SendClientMessage(playerid,HELLBLAU,"Benutze /login [PASSWORT] um dich einzuloggen");
    }
    else
    {
    if(dini_Exists(save))
    {
    SendClientMessage(playerid,HELLBLAU,"Dein Account wurde schon registriert");
    }
    }
    return 1;
    }//Fehlte
    if(strcmp(strget(cmdtext,0),"/login",true)== 0)
    {
    new save[40], s2[256];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save,"Spieler/%s.ini",spieler);
    if(dini_Exists(save))
    {
    s2=dini_Get(save,"passwort");
    if(strval(s2==udb_hash(strget(cmdtext,1)))
    {
    loggedin[playerid] = true;
    SendClientMessage(playerid,HELLBLAU,"Du hast dich erfolgreich eingeloggt");
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid,HELLBLAU,"Passwort falsch eingegeben");
    }
    }
    return 1;
    }
    return 0;//Fehlte
    }//Fehlte


  • //Edit INk
    -Komplett Zitat ist unnötig-


    Immernoch 9 Errors!



    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(122) : error 001: expected token: ";", but found ")"
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(122) : error 029: invalid expression, assumed zero
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(123) : error 076: syntax error in the expression, or invalid function call
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(123) : error 029: invalid expression, assumed zero
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(123) : warning 215: expression has no effect
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(140) : error 001: expected token: ")", but found ","
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(144) : error 033: array must be indexed (variable "s2")
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(300) : error 001: expected token: "-identifier-", but found "new"
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(301) : error 054: unmatched closing brace ("}")
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(301) : error 010: invalid function or declaration
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(320) : warning 203: symbol is never used: "pInfo"
    C:\Users\Lucas\Desktop\samp\gamemodes\shinetonight.pwn(320) : warning 203: symbol is never used: "ret_memcpy"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Errors.