SelfMade Problem ... <.<

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
  • Heyho, Breadfischis. :p
    Ich arbeite gerade an einem Selfmade, also ich versuche es, wirklich 100% Selfmade zu machen, es soll nen Reallife / Roleplay werden.
    Ich schaue mir das Tutorial von .:luma:. an, hier mal ein Link: SA-MP Forum - .:luma:. - Simples Login- / Registersystem (mit DINI)



    Also, ich habe das System nicht ganz fertig, aber:


    C:\Dokumente und Einstellungen\WarRock\Desktop\Programme\pawno\Untitled.pwn(287) : error 017: undefined symbol "strget"
    C:\Dokumente und Einstellungen\WarRock\Desktop\Programme\pawno\Untitled.pwn(295) : error 017: undefined symbol "strget"
    C:\Dokumente und Einstellungen\WarRock\Desktop\Programme\pawno\Untitled.pwn(487) : warning 235: public function lacks forward declaration (symbol "SetPlayerSpawn")
    C:\Dokumente und Einstellungen\WarRock\Desktop\Programme\pawno\Untitled.pwn(510) : warning 235: public function lacks forward declaration (symbol "TOTTimer")
    C:\Dokumente und Einstellungen\WarRock\Desktop\Programme\pawno\Untitled.pwn(533) : warning 203: symbol is never used: "loggedin"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    Das kommt beim Compile. Aber strget ist doch kein Fehler, oder doch? Das ist doch dini, und dini habe ich "geincludet".


    if(strcmp(strget(cmdtext,0), "/register", true) == 0)


    Da, das ist die Reihe, wo der strget Fehler vorkommt.



    Pls help. <.<

  • //Login/Register
    new spieler[MAX_PLAYER_NAME];



    enum pInfo
    {
    pTot,
    Float:pTx,
    Float:pTy,
    Float:pTz,
    passwort[128],
    skin
    };
    new PlayerInfo[MAX_PLAYERS][pInfo];


    new bool:loggedin[MAX_PLAYERS];


    //Login/Register


    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Accounts/%s.ini",name);
    if(dini_Exists(save))
    {
    SendClientMessage(playerid,WEISS,"Dein Account wurde gefunden.");
    SendClientMessage(playerid,WEISS,"Benutze /login [passwort] um dich einzuloggen!");
    GivePlayerMoney(playerid,dini_Int(save,"Geld"));
    SetPlayerSkin(playerid,dini_Int(save,"Skin"));
    }
    else
    {
    if(!dini_Exists(save))
    {
    SendClientMessage(playerid,WEISS,"Dein Account wurde nicht gefunden.");
    SendClientMessage(playerid,WEISS,"Benutze /register [passwort] um dich zu registrieren!");
    }
    }



    //Login/Register

    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Accounts/%s.ini",name);
    if(dini_Exists(save))
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid));

    }



    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"/Accounts/%s.ini,spieler");
    if(!dini_Exists(save))
    {
    dini_Create(save);
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1)));
    SendClientMessage(playerid,DUNKELROT,"Dein Account wurde erfolgreich registriert!");
    SendClientMessage(playerid,WEISS,"Benutze /login [passwort] um dich einzuloggen!");
    }
    else
    {
    if(dini_Exists(save))
    {
    SendClientMessage(playerid,DUNKELROT," FEHLER: Der Account besteht bereits!");
    }
    }
    }



    Die Sachen stehen bis jetzt drin. ^^

  • mir fällt direkt nichts auf bis auf
    if(dini_Exists(save))
    {
    SendClientMessage(playerid,WEISS,"Dein Account wurde gefunden.");
    !!!!!!!!SendClientMessage(playerid,WEISS,"Benutze /login [passwort] um dich einzuloggen!");
    GivePlayerMoney(playerid,dini_Int(save,"Geld"));
    SetPlayerSkin(playerid,dini_Int(save,"Skin"));
    }



    Wieso sendest du ihm die Naricht obwohl er bereis eingeloggt ist in diesem Moment. Du solltest eher noch loggedin[playerid] = 1; einfügen damit er sich nicht nochmal einloggen. Sieht dann so aus :
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Accounts/%s.ini",name);
    if(loggedin[playerid] == 1)
    {
    SendClientMessage(playerid,DUNKELROT,"Du bist bereits eingeloggt");
    }
    else if(dini_Exists(save))
    {
    SendClientMessage(playerid,WEISS,"Dein Account wurde gefunden.");
    GivePlayerMoney(playerid,dini_Int(save,"Geld"));
    SetPlayerSkin(playerid,dini_Int(save,"Skin"));
    loggedin[playerid] = 1;
    }
    else if(!dini_Exists(save))
    {
    SendClientMessage(playerid,WEISS,"Dein Account wurde nicht gefunden.");
    SendClientMessage(playerid,WEISS,"Benutze /register [passwort] um dich zu registrieren!");
    }


    Und dann halt noch unter OnPlayerDisconnect loggedin[playerid] = 0;

  • //Close


    Habs jetzt. Der stock fehlte. ^^


    //Edit


    Nicht closen...


    Also, wenn ich meinen Server starte, geht er sobald ich /register eingebe sofort wieder aus ... -.-


    Heeeelppp :o


    //Edit2


    Und meine Männchen kriegen keine Waffen, obwohl ich bei OnPlayerSpawn gemacht habe, dass sie Waffen + Rüstung bekommen. :sleeping: