Hallo,
Ich habe ein Problem mit meinem Login /register system und Zwar werden meine Parabeln nach einem GMX wieder auf 0 gesetzt. Fehler bekomme ich keine aber wenn ich nen gmx mache sind alle variablen wieder auf 0. kann mir da wer helfen?
Heir mal mein Quelltext:
Die Dialoge :
//-------------------------------------------------registrierung-----------------------------------------------
if(dialogid == REGISTER)
if(response == 0)
{
ShowPlayerDialog(playerid,ABBRUCH_REGISTER,DIALOG_STYLE_MSGBOX,"Abbrechen","Bist du sicher das du den vorgang abbrechen willst?","Zurück","Abbrechen");
return 1;
}
else
{
if(response == 1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Das angegebene Passwort ist zu kurz!");
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Rigitrierungsvorgang","Willkommen, Bitte gib dein gewünschtes Passwort ein. Verwende ein möglichst sicheres Passwort und sage dieses nicht weiter.","Registrieren","Abbrechen");
return 1;
}
else
{
Register(playerid,MD5_Hash(inputtext));
return 1;
}
}
}
//----------------------------------------ABBRUCH-REGISTER------------------------------------------------------------------
if(dialogid == ABBRUCH_REGISTER)
if(response == 0)
{
SendClientMessage(playerid,ROT,"Vorgang abgebrochen! Tippe /q um zu beenden.");
Kick(playerid);
return 1;
}
else
{
if(response == 1)
{
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Rigitrierungsvorgang","Willkommen, Bitte gib dein gewünschtes Passwort ein. Verwende ein möglichst sicheres Passwort und sage dieses nicht weiter.","Registrieren","Abbrechen");
return 1;
}
}
//------------------------------------------LOGIN---------------------------------------------------------------------------
if(dialogid == LOGIN)
if(response == 0)
{
ShowPlayerDialog(playerid,ABBRUCH_LOGIN,DIALOG_STYLE_MSGBOX,"Abbrechen","Bist du sicher das du den vorgang abbrechen willst?","Zurück","Abbrechen");
return 1;
}
else
{
if(response == 1)
{
Login (playerid,MD5_Hash(inputtext));
LoadPlayer(playerid);
return 1;
}
}
//----------------------------------------ABBRUCH-LOGIN------------------------------------------------------------------
if(dialogid == ABBRUCH_LOGIN)
if(response == 0)
{
SendClientMessage(playerid,ROT,"Vorgang abgebrochen! Tippe /q um zu beenden.");
Kick(playerid);
return 1;
}
else
{
if(response == 1)
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Willkommen, bitte logge dich ein um zu spielen.","Login","Abbrechen");
return 1;
}
}
Dann die stocks:
stock Register (playerid,key[])
{
new Accounts[64];
new Pname [MAX_PLAYER_NAME];
GetPlayerName(playerid,Pname,sizeof(Pname));
format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
dini_Create(Accounts);
dini_Set(Accounts,"Passwort",key);
dini_IntSet(Accounts,"Adminlevel",0);
dini_IntSet(Accounts,"Level",0);
dini_IntSet(Accounts,"Bargeld",0);
dini_IntSet(Accounts,"Fraktion",0);
SpawnPlayer(playerid);
SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich registiert!");
ResetPlayer(playerid);
return 1;
}
stock Login (playerid,key[])
{
new Accounts[64];
new Pname [MAX_PLAYER_NAME];
GetPlayerName(playerid,Pname,sizeof(Pname));
format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
if(!strcmp(key,dini_Get(Accounts,"Passwort"),true))
{
SendClientMessage(playerid,ROT,"Das Passwort war falsch! Bitte versuche es erneut. (Mit /q verlässt du das Spiel)");
Kick(playerid);
}
else
{
SendClientMessage(playerid,BLAU,"Wilkommen!");
LoadPlayer(playerid);
SpawnPlayer(playerid);
}
return 1;
}
stock SavePlayer(playerid)
{
new Accounts[64];
new Pname [MAX_PLAYER_NAME];
GetPlayerName(playerid,Pname,sizeof(Pname));
format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
if(dini_Exists(Accounts))
{
dini_IntSet(Accounts,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Accounts,"Level",sSpieler[playerid][Level]);
dini_IntSet(Accounts,"Bargeld",sSpieler[playerid][Bargeld]);
dini_IntSet(Accounts,"Fraktion",sSpieler[playerid][Fraktion]);
}
return 1;
}
stock LoadPlayer(playerid)
{
new Accounts[64];
new Pname [MAX_PLAYER_NAME];
GetPlayerName(playerid,Pname,sizeof(Pname));
format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
if(dini_Exists(Accounts))
{
SetPlayerScore(playerid,dini_Int(Accounts,"Level"));
sSpieler[playerid][Adminlevel] = dini_Int(Accounts,"Adminlevel");
sSpieler[playerid][Level] = dini_Int(Accounts,"Level");
sSpieler[playerid][Bargeld] = dini_Int(Accounts,"Bargeld");
sSpieler[playerid][Fraktion] = dini_Int(Accounts,"Fraktion");
sSpieler[playerid][sLogin] = 1;
}
return 1;
}
stock ResetPlayer(playerid)
{
sSpieler[playerid][Adminlevel] = 0;
sSpieler[playerid][Level] = 0;
sSpieler[playerid][Bargeld] = 0;
sSpieler[playerid][Fraktion] = 0;
return 1;
}
//Ist der Spieler Admin?
stock IsPlayerAnAdmin(playerid,rang)
{
if(sSpieler[playerid][Adminlevel] >= rang)return 1;
return 0;
}
//Ist der Spieler in einer Fraktion?
stock IsPlayerInFrakt(playerid,Fraktid)
{
if(sSpieler[playerid][Fraktion] == Fraktid) return 1;
return 0;
}
//eingeloggt?
stock IsPlayerLoggedIn(playerid)
{
if(sSpieler[playerid][sLogin] == 1) return 1;
return 1;
}
Hoffe mir kann da wer helfen definiert ist auch alles also solltte es eigentlich funktioneieren.
MFG Moneytoe
falls wer mehr vom script sehen will -->pn und ja ich habe die datei "accounts" im scriptfiles ordner erstellt