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)
 
		 
		
		
	 
			
									
		
 Werde mal bisschen damit arbeiten.
 Werde mal bisschen damit arbeiten.