Ich verwende MySQL R5
Codes:
#define DIALOG_REGISTER (1)
#define DIALOG_LOGIN (2)
enum spielerDaten
{
pName[MAX_PLAYER_NAME],
pLevel,
pGeld,
pKills,
pTode,
Float:pHealth
}
new spielerInfo[MAX_PLAYERS][spielerDaten];
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);
if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin Auswahl uns neu Einloggen müssen.
{
if(mysql_CheckAccount(playerid) == 0)//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
}
else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(response)
{
if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
return 1;
}
else
{
CreateAccount(playerid, inputtext); //Account wird erstellt
SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt, damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem Passwort gefragt zu werden.
SpawnPlayer(playerid); //Wir lassen den spieler Spawnen
return 1;
}
}
else
{
Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der spieler gekickt damit man ohne Account nicht Spielen kann.
}
}
case DIALOG_LOGIN:
{
if(response)
{
if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
return 1;
}
else
{
new spielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, spielerName, MAX_PLAYER_NAME);
if(!strcmp(inputtext, mysql_ReturnPasswort(spielerName), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
{
SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
LoadPlayer(playerid); //Der spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
SpawnPlayer(playerid); //Wir lassen den spieler Spawnen
return 1;
}
else
{
//Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der spieler das Richtige Passwort eingibt.
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
return 1;
}
}
}
else
{
Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der spieler gekickt damit man ohne Account nicht Spielen kann.
}
}
}
return 1;
}
Wenn ich bei der Skin Auswahl bin passiert einfach nichts, kann mich nur spawnen