Double-O-Users - Die einfachste und schnellste Methode, Accounts zu speichern! (Super für Anfänger!)

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
  • Double-O-Users


    Was ist Double-O-Users?
    Double-O-Users ist ein Accountsystem, welches alle Benutzerdaten automatisch speichert.
    Der Scripter, der dies verwendet muss lediglich einen Login- und Registercommand scripten und die gegebene Loginfunktion anwenden und dann kann er ganz normal PVars benutzen mit einem kleinen Unterschied:
    PVar muss mit UVar ersetzt werden.
    Das heisst, man kann UVars FAST GENAU gleich wie PVars anwenden, jedoch werden diese AUTOMATISCH gespeichert!



    Funktionen
    native RegisterUser(playerid, password[]);
    native CheckUserLogin(playerid, password[]);
    native LoginUser(playerid);
    native StoreUserData(playerid);
    native IsUserRegistered(playerid);
    native IsUserLoggedIn(playerid);
    native SetUserPassword(playerid, password[]);
    native SetAutoLogin(playerid, bool:autologin);
    native SetUVarInt(playerid, uvar[], value);
    native UpdateUVarInt(playerid, uvar[], value);
    native GetUVarInt(playerid, uvar[]);
    native SetUVarFloat(playerid, uvar[], Float:value);
    native UpdateUVarFloat(playerid, uvar[], Float:value);
    native Float:GetUVarFloat(playerid, uvar[]);
    native SetUVarString(playerid, uvar[], string[]);
    native GetUVarString(playerid, uvar[], string[], len = sizeof string);
    native DeleteUVar(playerid, uvar[]);


    Die Funktionsnamen sollten selbsterklärend sein.
    Und wie gesagt, kann man UVars genauso wie PVars anwenden, wobei diese NICHT einfach so untereinander kompatibel sind.


    Beispiel:
    #include <a_samp>
    #include <zcmd>
    #define USER_ACCOUNT_PATH "%s.ini" // Anpassen bitte, für Benutzerdatei.
    #include <Double-O-Users>


    COMMAND:register(playerid, params[])
    {
    if (IsUserRegistered(playerid))
    {
    SendClientMessage(playerid, 0xFF0000FF, "Du bist schon registriert!");
    return 1;
    }

    if (RegisterUser(playerid, params))
    SendClientMessage(playerid, 0x00AA00FF, "Du hast Dich erfolgreich registriert!");
    else
    SendClientMessage(playerid, 0xFF0000FF, "Registrierung fehlgeschlagen!");
    return 1;
    }


    COMMAND:login(playerid, params[])
    {
    if (!IsUserRegistered(playerid))
    {
    SendClientMessage(playerid, 0xFF0000FF, "Bitte registriere Dich zuerst mit /register <Passwort>!");
    return 1;
    }

    if (!CheckUserLogin(playerid, params))
    SendClientMessage(playerid, 0xFF0000FF, "Falsches Passwort!");
    else
    {
    LoginUser(playerid);
    SendClientMessage(playerid, 0x00AA00FF, "Willkommen zurück!");
    }
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    // Zwinge Spieler, sich erst einzuloggen!
    if (IsUserRegistered(playerid) && !IsUserLoggedIn(playerid))
    {
    SendClientMessage(playerid, 0xFF0000FF, "Bitte logge Dich ein mit /login <Passwort>!");
    return 0;
    }
    return 0;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    UpdateUVarInt(playerid, "Deaths", 1); // + 1
    if (killerid != INVALID_PLAYER_ID)
    UpdateUvarInt(playerid, "Kills", 1); // + 1
    return 1;
    }
    Das obige Script ist grundsätzlich schon fertig. Jetzt kann man einfach noch weitere UVars hinzufügen.


    Download
    Double-O-Users (Pastebin)
    Double-O-Files 2, notwendig (Pastebin)

  • Ich verstehe nicht wieso du es zum 5 mal neu Postest? :P


    Sonst gefällt es mir, werde es mir anschauen und bei mir testen.


    8/10