Ahja, na dann:
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(response)
{
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Regestration","Datenbank: Das angegebene Passwort ist zu kurz!","Register","Abbrechen");
return 1;
}
else
{
CreateAccount(playerid, inputtext);
SetPVarInt(playerid,"Eingeloggt",1);
SpawnPlayer(playerid);
SetSpawnInfo(playerid, 0, 0, -1982.5010,140.7040,27.6875,89.0363, 0, 0, 0, 0, 0, 0 );
return 1;
}
}
else
{
Kick(playerid);
}
}
case DIALOG_LOGIN:
{
if(response)
{
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Einloggen","Datenbank: Das angegebene Passwort ist falsch!","Login","Abbrechen");
return 1;
}
else
{
new PlayerName[MAX_PLAYER_NAME], query[256];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
mysql_format(handle, query, sizeof(query), "SELECT * FROM accounts WHERE Name = '%e' AND Passwort = '%e'", PlayerName, inputtext);
mysql_tquery(handle, query, "CheckPassword", "d", playerid);
}
}
else
{
Kick(playerid);
}
}
}
Dann sollte das Login klappen.
Zwecks dem Speichern:
Du löschst zuerst die PVar und fragst dann ab ob sie 1 ist, dann kann nicht gehen. ![]()
public OnPlayerDisconnect(playerid, reason)
{
DeletePVar(playerid,"Eingeloggt");
SavePlayer(playerid);
zu:
public OnPlayerDisconnect(playerid, reason)
{
SavePlayer(playerid);
DeletePVar(playerid,"Eingeloggt");