Hallo Community
Ich suche ein Login & Register System im Dialog was für 0.3d optimiert ist das heist es sollte volgende funktionen haben: Passwort Speichern, Geld Speichern, Score Speichern(Nicht unbedingt), Waffen Speichern, Passwort in Hash(nicht nötig) wen man das Passwort ein gibt das keine buchstaben sondern punkte anzeigt,
und wen man sich regerstriert sollte diese fragen kommen und auch gespeichert werden:
-Wie alt bist du?
-Aus welchem Land kommst du?
-Hiermit acceptierst du bla bla die regeln Aceept
so etwas brauch ich und wichtig ist auch das wen man joint das ohne command der dialog auftaucht wen man einfach spawn will steht da Du ist dich erst einloggen.
Ich hoffe jemand weis wo sowas zu finden ist ich hatte bereits eins das aber nicht genau so wahr hoffe ich kriegen antworten Thx im voraus!
Login & Register System mit Dialog
- Y3Z0N
- Geschlossen
- Erledigt
-
-
Hier stelle ich dir mal ein kleines von mir rein, ist leicht bearbeitbar.
Oben trägst du ein:
#include <dini>Dann definierst du die Dialoge oben:
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2Dann machst du am Ende des Gamemode's diese stock's:
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);
SendClientMessage(playerid,WEISS,"Du hast dich erfolgreich registriert.");
SetPlayerScore(playerid,0);
SetPVarInt(playerid,"loggedin",1);
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,WEISS,"Du hast dich erfolgreich eingeloggt.");
return 1;
}
else
{
SendClientMessage(playerid,WEISS,"Du hast ein falsches Passwort eingegeben...");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LogIn","Dein Account wurde gefunden. Gib bitte das 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,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Fraktlevel",dini_Int(Spielerdatei,"Fraktlevel"));
SetPVarInt(playerid,"Leader",dini_Int(Spielerdatei,"Leader"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,ROT,"Du wurdest vom Server gebannt!");
Kick(playerid);
}
SetPVarInt(playerid,"loggedin",1);
return 1;
}stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Fraktlevel",GetPVarInt(playerid,"Fraktlevel"));
dini_IntSet(Spielerdatei,"Leader",GetPVarInt(playerid,"Leader"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
}
return 1;
}Nun bei OnPlayerConnect das einfügen:
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,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LogIn","Dein Account wurde gefunden und geladen.\nBitte gib nun dein Passwort ein:","LogIn","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte dein gewünschtes Passwort ein:","Registrieren","Abbrechen");
}
return 1;
}Bei OnPlayerDisconnect dieses einfügen:
public OnPlayerDisconnect(playerid, reason)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
SpielerSpeichern(playerid);
}
return 1;
}Bei OnDialogResponse dieses einfügen:
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
SendClientMessage(playerid,WEISS,"Du hast den LogIn-Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,WEISS,"Das eingegebene Passwort war leider zu kurz.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LogIn","Dein Account wurde gefunden und geladen.\nBitte gib nun dein Passwort ein:","LogIn","Abbrechen");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
SendClientMessage(playerid,WEISS,"Du hast die Registration abgrebrochen..");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,WEISS,"Das gewünschte Passwort war leider kurz...");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}Das wars, nun nur noch im Scriptfiles Ordner den Order: "Accounts" erstellen.
Den Rest kannst du selber bearbeiten.Viel Spaß.
-
-
breadfish.de
Hat das Thema geschlossen.