Nabend,
Habe den Thread schon woanders aufgemacht, muss noch von einem Mod freigegeben werden. Da das aber der falsche Thread sein wird, hoffe ich hier auf hilfe
Nunja, ich bin neu und lerne grade das Scripten. Ich habe
mit hilfe eines Tuts, ein Login system erstellt. Da das gut gekappt
hat, arbeite ich auch an einem Adminsystem. Sobald ich mich registriere
und das Adminlvl auf 2000 Stelle und mich wieder neu einlogge, ist es
auf 0. Ich habe vorher geschpeichert und den Server neu gestartet. Fals
es so ein Thread schon geben sollte, tut mir leid bin neu
Poste einfach mal die Zeilen.
enum SInfo
{
AdminLevel,
Fraktion
}
new SpielerInfo[MAX_PLAYERS][SInfo];
public OnPlayerConnect(playerid)
{
new SpielerDatei[64];
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,sizeof(Name));
format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.txt",Name);
if(dini_Exists(SpielerDatei))
{
ShowPlayerDialog(playerid,DialogLogin, DIALOG_STYLE_INPUT,"Herzlich Willkommen","Dein Account wurde gefunden. \nBitte gebe dein Passwort ein.","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DialogRegister,DIALOG_STYLE_INPUT,"Herzlich Willkommen","Gib bitte das gewünschte Passwort ein.","Register","Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SpielerSpeichern(playerid);
return 1;
}
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);
dini_IntSet(SpielerDatei,"AdminLevel",0);
SendClientMessage(playerid, Weiß, "Du hast dich erfolgreich registriert.");
SetPlayerScore(playerid, 0);
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, Weiß, "Erfolgreich Eingeloggt.");
return 1;
}
else
{
SendClientMessage(playerid, Weiß, "Das Passwort ist falsch.");
ShowPlayerDialog(playerid, DialogRegister, DIALOG_STYLE_INPUT,"Herzlich Willkommen","Dein Account wurde gefunden. \nBitte gebe dein 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,"Score"));
GivePlayerMoney(playerid,dini_Int(SpielerDatei,"Geld"));
SpielerInfo[playerid][AdminLevel]=dini_Int(SpielerDatei,"AdminLevel");
SpielerInfo[playerid][Fraktion]=dini_Int(SpielerDatei,"Fraktion");
return 1;
}
stock SpielerSpeichern(playerid)
{
new SpielerDatei[64];
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,sizeof(Name));
format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.txt",Name);
dini_IntSet(SpielerDatei,"Score",GetPlayerScore(playerid));
dini_IntSet(SpielerDatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(SpielerDatei,"AdminLevel",SpielerInfo[playerid][AdminLevel]);
dini_IntSet(SpielerDatei,"Fraktion",SpielerInfo[playerid][Fraktion]);
return 1;
}