Login & Register System als enum statt PVarINT's ?

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
  • Sers.
    Scripte nun seit gestern mit enums.
    hier mal eine frage, wie man ein Login sys mit enums aufbaut.
    Voher der stock LoadAccount:
    //Stocks
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,Blau,"Erfolgreich registriert.");
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,Blau,"Erfolgreich eingeloggt.");
    SetPVarInt(playerid,"Flug",1);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Blau,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Warn",dini_Int(Spielerdatei,"Warn"));
    SetPVarInt(playerid,"Autolic",dini_Int(Spielerdatei,"Autolic"));
    SetPVarInt(playerid,"Bikeli",dini_Int(Spielerdatei,"Bikeli"));
    SetPVarInt(playerid,"Flugli",dini_Int(Spielerdatei,"Flugli"));
    SetPVarInt(playerid,"Truckli",dini_Int(Spielerdatei,"Truckli"));
    SetPVarInt(playerid,"Boatli",dini_Int(Spielerdatei,"Boatli"));
    SetPVarInt(playerid,"Tutorial",dini_Int(Spielerdatei,"Tutorial"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,Rot,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Warn",GetPVarInt(playerid,"Warn"));
    dini_IntSet(Spielerdatei,"Autolic",GetPVarInt(playerid,"Autolic"));
    dini_IntSet(Spielerdatei,"Bikeli",GetPVarInt(playerid,"Bikeli"));
    dini_IntSet(Spielerdatei,"Flugli",GetPVarInt(playerid,"Flugli"));
    dini_IntSet(Spielerdatei,"Truckli",GetPVarInt(playerid,"Truckli"));
    dini_IntSet(Spielerdatei,"Boatli",GetPVarInt(playerid,"Boatli"));
    dini_IntSet(Spielerdatei,"Tutorial",GetPVarInt(playerid,"Tutorial"));
    }
    return 1;
    }


    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }
    //Stocks ende
    so, wie mache ich das jetzt zu enum?
    Hier mal wie meine enums aussehen, von dem Spieler:
    enum Spieler
    {
    pLevel,
    pGeld,
    pAdmin,
    pSupporter,
    pMember,
    pLeader,
    pJob,
    pNebenjob
    }
    new sInfo[MAX_PLAYERS][Spieler];
    wie macht man das dann?
    also zbsp so?
    sInfo[playerid][pAdmin] = dini_Int(Spielerdatei,"Adminlevel");

  • habe nun errors:J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(362) : error 001: expected token: ";", but found ")"
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(362) : error 029: invalid expression, assumed zero
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(362) : warning 215: expression has no effect
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(363) : error 001: expected token: ";", but found ")"
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(363) : error 029: invalid expression, assumed zero
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(363) : warning 215: expression has no effect
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(364) : error 001: expected token: ";", but found ")"
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(364) : error 029: invalid expression, assumed zero
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(364) : warning 215: expression has no effect
    J:\SA-MP\Pawno&Scripts\Scripts\nt-rl.pwn(377) : error 001: expected token: ";", but found "return"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.
    Hier die zeilen:
    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    sInfo[playerid][pAdmin] = dini_Int(Spielerdatei,"Adminlevel");
    sInfo[playerid][pLeader] = dini_Int(Spielerdatei,"Leader"));
    sInfo[playerid][pMember] = dini_Int(Spielerdatei,"Member"));
    sInfo[playerid][pWarn] = dini_Int(Spielerdatei,"Warn"));
    /*SetPVarInt(playerid,"Autolic",dini_Int(Spielerdatei,"Autolic"));
    SetPVarInt(playerid,"Bikeli",dini_Int(Spielerdatei,"Bikeli"));
    SetPVarInt(playerid,"Flugli",dini_Int(Spielerdatei,"Flugli"));
    SetPVarInt(playerid,"Truckli",dini_Int(Spielerdatei,"Truckli"));
    SetPVarInt(playerid,"Boatli",dini_Int(Spielerdatei,"Boatli"));
    SetPVarInt(playerid,"Tutorial",dini_Int(Spielerdatei,"Tutorial"));*/
    if(sInfo[playerid][pBan] == 1)
    {
    SendClientMessage(playerid,Rot,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    sInfo[playerid][pLoggedin] = 1
    return 1;
    }
    und wie soll ich das bei spielerspeichern machen?
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Warn",GetPVarInt(playerid,"Warn"));
    dini_IntSet(Spielerdatei,"Autolic",GetPVarInt(playerid,"Autolic"));
    dini_IntSet(Spielerdatei,"Bikeli",GetPVarInt(playerid,"Bikeli"));
    dini_IntSet(Spielerdatei,"Flugli",GetPVarInt(playerid,"Flugli"));
    dini_IntSet(Spielerdatei,"Truckli",GetPVarInt(playerid,"Truckli"));
    dini_IntSet(Spielerdatei,"Boatli",GetPVarInt(playerid,"Boatli"));
    dini_IntSet(Spielerdatei,"Tutorial",GetPVarInt(playerid,"Tutorial"));
    }
    return 1;
    }