#include <a_samp>
#include <dini>
#define Weiß 0xFFFFFFAA
#define Grau 0xAFAFAFAA
#define Rot 0xAA3333AA
#define Gruen 0x00CC33C0
#define LichtGruen 0x00CC33C0
#define Register 0
#define Login 1
forward Registrieren(playerid,key[]);
forward Anmelden(playerid,pw[]);
forward SpielerSpeichern(playerid);
forward PasswortFalsch(playerid);
forward SavePasswort(playerid);
forward SetPasswort(playerid,key[]);
enum SInfo
{
Passwort,
Wanteds,
Geld,
Eingeloggt,
}
new SpielerInfo[MAX_PLAYERS][SInfo];
main()
{
print("\n----------------------------------");
print(" Test Gamemode Login ");
print("----------------------------------\n");
}
public OnGameModeInit()
{
SetGameModeText("Test Gamemode Login");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
resetoldvars(playerid);
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
if(dini_Exists(Spielerdatei))
{
SendClientMessage(playerid,Gruen,"|__________Einloggen__________|");
SendClientMessage(playerid,Weiß,"Dein Account wurde gefunden");
SendClientMessage(playerid,Weiß,"um dich einzuloggen gebe einfach dein Passwort ein");
ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Login","Bitte tippe dein Passwort in das TextFeld ein um dich einzuloggen!","Login","Abbruch");
return 1;
}
else
{
SendClientMessage(playerid,Gruen,"|__________Registrieren__________|");
SendClientMessage(playerid,Weiß,"Dein Account wurde nicht gefunden");
SendClientMessage(playerid,Weiß,"um dich zu Registrieren gebe einfach dein gewünschtes Passwort ein");
ShowPlayerDialog(playerid,Register,DIALOG_STYLE_INPUT,"Regestrieren","Bitte tippe dein Passwort in das TextFeld ein um dich zu Regestrieren!","Register","Abbruch");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SpielerSpeichern(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(SpielerInfo[playerid][Eingeloggt] == 0)
{
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
if(dini_Exists(Spielerdatei))
{
SetPlayerHealth(playerid,0);
ForceClassSelection(playerid);
SendClientMessage(playerid,Rot,"Du musst dich erst einloggen bevor du Spawnen kannst");
ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Login","Bitte tippe dein Passwort in das TextFeld ein um dich einzuloggen!","Login","Abbruch");
}
else
{
SetPlayerHealth(playerid,0);
ForceClassSelection(playerid);
SendClientMessage(playerid,Rot,"Du musst dich erst Registrieren bevor du Spawnen kannst");
ShowPlayerDialog(playerid,Register,DIALOG_STYLE_INPUT,"Regestrieren","Bitte tippe dein Passwort in das TextFeld ein um dich zu Regestrieren!","Register","Abbruch");
}
return 1;
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Register)
{
if(response == 0)
{
SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
Kick(playerid);
}
if(response == 1)
{
new passx[128];
strmid(passx,inputtext,0,strlen(inputtext),128);
Registrieren(playerid,passx);
}
}
if(dialogid == Login)
{
if(response == 0)
{
SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
Kick(playerid);
}
if(response == 1)
{
new pass[128];
strmid(pass,inputtext, 0,strlen(inputtext),128);
Anmelden(playerid,pass);
}
}
return 1;
}
public Registrieren(playerid,key[])
{
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
if(dini_Exists(Spielerdatei))
{
SendClientMessage(playerid,Rot, "Fehler: Dieser Account exestiert bereits!");
}
else
{
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
SpielerInfo[playerid][Eingeloggt] = 1;
Anmelden(playerid,key);
SendClientMessage(playerid,LichtGruen,"Du wurdest automatisch eingeloggt");
}
return 0;
}
public Anmelden(playerid,pw[])
{
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
if(dini_Exists(Spielerdatei))
{
if (!strcmp(pw,dini_Get(Spielerdatei,"Passwort")))
{
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"Wanteds"));
SpielerInfo[playerid][Passwort] = dini_Int(Spielerdatei,"Passwort");
SendClientMessage(playerid,Weiß,"Wilkommen auf dem Server");
SpielerInfo[playerid][Eingeloggt] = 1;
SpawnPlayer(playerid);
}
else
{
SpielerInfo[playerid][Eingeloggt] = 0;
PasswortFalsch(playerid);
}
}
return 1;
}
public SpielerSpeichern(playerid)
{
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Wanteds",GetPlayerWantedLevel(playerid));
return 1;
}
Alles anzeigen