Nabend.
Ich habe jetzt mal ein Fraktion System angefangen.
Habe es so Versucht umzusetzen:
Fraktion #Define
//Fratkionen//#define FRAKTION_NAME_1 "LSPD"#define FRAKTION_NAME_2 "Sanitäter"
Fraktion Enum
enum fDaten{f_ID,fLeader, ///Erstellt die Spielervariable pLeaderfMember,fAdmin,eingeladen}new fInfo[MAX_PLAYERS][fDaten]
Makeleader Befehl
CMD:makeleader(playerid,params[])
{
	if(PlayerInfo[playerid][pAdmin]>=1 && PlayerInfo[playerid][pFraktion]>=1)return SendClientMessage(playerid, 0x00FF00,"Du kannst diesen Befehl nicht ausführen");
	{
	    new frakid, p_ID, name[MAX_PLAYER_NAME], string[128];
	    if(sscanf(params,"us", p_ID, frakid))return SendClientMessage(playerid, 0x00FF00, "[ Info ]Benutzung: /makeleader [id][frakid]");
	    GetPlayerName(playerid, string, MAX_PLAYER_NAME);
		GetPlayerName(p_ID, name, MAX_PLAYER_NAME);
	    PlayerInfo[p_ID][pFraktion] = frakid;
	    format(string, sizeof(string), "[ ! ]Admin: %s hat %s zum Leader einer Fraktion: %d gemacht!", string, name, GetFraktionRang(p_ID));
	    mysql_format(handle, string, sizeof(string), "UPDATE `users` SET `fraktion` = '%d' WHERE `id` = '%d'", frakid, PlayerInfo[p_ID][p_id]);
	    mysql_pquery(handle, string);
	    SendClientMessage(playerid, -1, string);
	}
	return 1;
}
 OnUserRegister(playerid)
forward OnUserRegister(playerid);
public OnUserRegister(playerid)
{
	//Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelesen
	PlayerInfo[playerid][p_id] = cache_insert_id();
	PlayerInfo[playerid][pLoggedIn]  = true;
	PlayerInfo[playerid][pAdmin] = 0;
	PlayerInfo[playerid][pKills] = 0;
	PlayerInfo[playerid][pBan] = 0;
	PlayerInfo[playerid][pMoney] = 10000;
	GivePlayerMoney(playerid, 10000);
	PlayerInfo[playerid][pLevel] = 1;
	PlayerInfo[playerid][pDeaths] = 0;
	//PlayerInfo[playerid][pFraktion] = 0;
	fInfo[playerid][f_ID] = 0;
	fInfo[playerid][fLeader] = 0;
	fInfo[playerid][fMember] = 0;
	fInfo[playerid][fAdmin] = 0;
	fInfo[playerid][eingeladen] = 0;
	SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich.");
	return 1;
}
OnUserLogin
public OnUserLogin(playerid)
{
	//Query wurde ausgeführt und das Ergebnis im Cache gespeichert
	new rows;
	cache_get_row_count(rows);
	if(rows == 0)
	{
		//Der Spieler hat ein falsches Passwort eingegeben
		ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
	}
	else
	{
		//Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben
		//Wir lesen nun die erste Zeile des Caches aus (ID 0)
 		cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
		cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]);
		cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]);
		cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]);
		cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]);
		cache_get_value_name_int(0, "ban", PlayerInfo[playerid][pBan]);
		cache_get_value_name_int(0, "admin", PlayerInfo[playerid][pAdmin]);
		//cache_get_value_name_int(0, "fraktion", PlayerInfo[playerid][pFraktion]);
		cache_get_value_name_int(0, "ID", fInfo[playerid][f_ID]);
		cache_get_value_name_int(0, "Leader", fInfo[playerid][fLeader]);
		cache_get_value_name_int(0, "Admin", fInfo[playerid][fAdmin]);
		cache_get_value_name_int(0, "Member", fInfo[playerid][fMember]);
		cache_get_value_name_int(0, "eingeladen", fInfo[playerid][eingeladen]);
		PlayerInfo[playerid][pLoggedIn]  = true;
		SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt.");
		GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
	}
	return 1;
}
SafeUserStats
stock SaveUserStats(playerid)
{
	//Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
	if(!PlayerInfo[playerid][pLoggedIn]) return 1;
	//Ansonsten speichere sie
	new query[1024];
	mysql_format(handle, query, sizeof(query), "UPDATE `users` SET `level` = '%d', `money` = '%d', `kills` = '%d', `deaths` = '%d',`ban` = '%d', `admin` = '%d', `fraktion` = '%d' WHERE `id` = '%d'",
		PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][p_id], PlayerInfo[playerid][pBan], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pFraktion]);
	mysql_format(handle, query, sizeof(query), "UPDATE `fraktion` SET `Leader` = '%d', `Admin` = '%d', `Member` = '%d', `eingeladen` = '%d' WHERE `id` = '%d'",fInfo[playerid][fLeader], fInfo[playerid][fAdmin], fInfo[playerid][fMember], fInfo[playerid][eingeladen], fInfo[f_ID]);
	//Das Query wird abgesendet
	mysql_pquery(handle, query);
	return 1;
}
Hab auch extra eine Datenbank für Fratkion erstellt
Leider wird dort nix Gespeichert und der Befehl CMD:makeleader scheint auch nicht richtig zu Funktioniere.
Findet ihr dort irgendwo einen Fehler?
 
		 
		
		
	



