Hey,
wenn ich im Login-Screen bin, ist ganz am Anfang alles ganz normal, ich sehe die angegebene Stelle.
Gebe ich jedoch etwas ein (falsches Passwort oder auch gar keine Eingabe), dann werde ich an den eigentlichen Spawn mit dem CJ Skin geworfen (( https://i.imgur.com/2WCOSM3.jpg )). Drücke ich dann noch einmal etwas (egal ob falsches Passwort oder keine Eingabe), dann bin ich wieder an der Login-Screen Stelle. (( https://i.imgur.com/HQSHtFu.jpg ))
Kann mir wer helfen? Das nervt voll und ich finde den Fehler nicht.
Wenn ihr prüfen wollt, was genau ich meine, probiert es selbst aus: 85.131.209.229:7777
Code
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new rSkin, string[128], accFormat[128], query[256];
if (response)
{
switch (dialogid)
{
case DIALOG_LOGIN:
{
if (!strlen(inputtext) || isnull(inputtext))
{
LoginScreen(playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Infinity Deathmatch", "{FFFFFF}Willkommen auf Infinity Deathmatch\n \nDu kannst dich nun einloggen. Bitte trage dein Passwort ein:", "Bestätigen", "Abbruch");
return SendClientMessage(playerid, COLOR_DARKRED, "Du hast kein Passwort eingetragen.");
}
LoginScreen(playerid);
mysql_format(dbhandle, accFormat, sizeof(accFormat), "SELECT * FROM `accounts` WHERE `name`='%e';", SpielerName(playerid));
mysql_tquery(dbhandle, accFormat, "CheckPasswordDialog", "dsd", playerid, inputtext, 1);
}
case DIALOG_REG:
{
LoginScreen(playerid);
if (!strlen(inputtext) || isnull(inputtext))
{
LoginScreen(playerid);
ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_PASSWORD, "Infinity Deathmatch", "{FFFF00}Keine Eingabe!{FFFFFF}\n \nEs wurde kein Account unter diesem Namen gefunden.\nDu kannst dich nun Registrieren. Bitte trage dein Passwort ein:", "Bestätigen", "Abbruch");
return SendClientMessage(playerid, COLOR_DARKRED, "Du hast kein Passwort eingetragen.");
}
if (strlen(inputtext) < 6)
{
LoginScreen(playerid);
ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_PASSWORD, "Infinity Deathmatch", "{FFFF00}Zu kurzes Passwort!{FFFFFF}\n \nEs wurde kein Account unter diesem Namen gefunden.\nDu kannst dich nun Registrieren. Bitte trage dein Passwort ein:", "Bestätigen", "Abbruch");
return SendClientMessage(playerid, COLOR_DARKRED, "Das Passwort muss mindestens 6 Zeichen lang sein.");
}
rSkin = random(311);
if (rSkin == 0 || rSkin == 74 || rSkin == 92 || rSkin == 99)
{
Player[playerid][skin] = rSkin ++;
}
else
{
Player[playerid][skin] = rSkin;
}
mysql_format(dbhandle, query, sizeof(query), "INSERT INTO `accounts` (`name`, `password`, `skin`) VALUES ('%e', '%s', '%d');", SpielerName(playerid), inputtext, Player[playerid][skin]);
mysql_tquery(dbhandle, query, "", "");
mysql_format(dbhandle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `name` = '%e';", SpielerName(playerid));
mysql_tquery(dbhandle, query, "CheckPasswordDialog", "dsd", playerid, inputtext, 1);
for (new i = 0; i < 20; i ++)
{
SendClientMessage(playerid, COLOR_WHITE, "");
}
SendClientMessage(playerid, COLOR_LIGHTBLUE, "SERVER: {FFFFFF}Dein Account wurde registriert, du wurdest automatisch eingeloggt.");
SetPVarInt(playerid, "registered", 1);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
}
}
}
else
{
switch (dialogid)
{
case DIALOG_LOGIN:
{
SendClientMessage(playerid, COLOR_DARKRED, "Du hast den Loginprozess abgebrochen.");
return SetTimerEx("KickPublic", 400, 0, "d", playerid);
}
case DIALOG_REG:
{
SendClientMessage(playerid, COLOR_DARKRED, "Du hast den Registrierungsprozess abgebrochen.");
return SetTimerEx("KickPublic", 400, 0, "d", playerid);
}
}
return 1;
}
return 1;
}
stock LoginScreen(playerid)
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 100);
SetPlayerPos(playerid, 1415.3909, -1626.0238, 20.6056);
SetPlayerCameraPos(playerid, 1418.9369, -1629.8965, 54.6056);
SetPlayerCameraLookAt(playerid, 1521.6505, -1706.4551, 13.5469);
}
Alles anzeigen