Hey, habe ein Problem und zwar habe ich ein Register/Login Sys gescriptet und nichts, dass ausgeführt werden soll, wenn das passwort falsch ist, wird auch ausgeführt
case DIALOG_LOGIN1:
{
if(!response)
{
Kick(playerid);
}
else
{
new pwlength = strlen(inputtext);
if(pwlength > 0)
{
new pw[200];
format(pw, sizeof(pw), "%s", dini_Get(path, "password"));
if(strcmp(inputtext, pw) == 0)
{
pInfo[playerid][Geschlecht] = dini_Int(path, "Geschlecht");
pInfo[playerid][Alter] = dini_Int(path, "Alter");
pInfo[playerid][Logged] = 1;
SpielerLaden(playerid);
}
else
{
SendClientMessage(playerid,Rot,"Du hast ein falsches Passwort eingegeben und wurdest gekickt!"); //Das hier wird nicht ausgeführt
Kick(playerid); //Das auch nicht
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "Gib ein Passwort ein!", "OK", "Abbrechen");
}
}
}
alles andere, wie laden, speichern beim disconnect etc. funktioniert.
Nach Passworteingabe passiert nix mehr
- Uppermost
- Geschlossen
- Erledigt
-
-
Sorry, wenn ich jetzt noch mal nachfrage, aber ich verstehe dein Problem leider nicht...
ZitatHey, habe ein Problem und zwar habe ich ein Register/Login Sys gescriptet und nichts, dass ausgeführt werden soll, wenn das passwort falsch ist, wird auch ausgeführt
Also ist das Problem, dass du ein Register/Login Sys gescriptet hast...
Weil du dann returns mit 0 indem du sagst "und nichts".
Also es wird ausgeführt (nichts) wenn das Passwort falsch ist?
Du musst es mit einem Timer oder mit dem Include von Bevis machen...
Des heißt, BanFix.inc
[ INCLUDE ] Kick/Ban Fix -
Ich überprüfe mit strcmp ob der Input des Dialoges mit dem gespeicherten Passwort übereinstimmt. Falls nicht, soll der Spieler eine Message kriegen und gekickt werden, doch das passiert nicht. Wenn ich ein falsches Passwort eingebe, werde ich weder gekickt, noch bekomme ich eine Message. Der Dialog verschwindet einfach und ich bekomme die Spawn buttons unten, wenn ich draufdrücke spawne ich. Zwar an einem anderen Ort, aber trotzdem mit dem Geld, level etc. des spielers.
der Banfix würde zwar (wahrscheinlich) beheben, dass der Spieler gekickt wird, aber behebt er auch die Message, die eigtl erscheinen sollte? -
Ich überprüfe mit strcmp ob der Input des Dialoges mit dem gespeicherten Passwort übereinstimmt. Falls nicht, soll der Spieler eine Message kriegen und gekickt werden, doch das passiert nicht. Wenn ich ein falsches Passwort eingebe, werde ich weder gekickt, noch bekomme ich eine Message. Der Dialog verschwindet einfach und ich bekomme die Spawn buttons unten, wenn ich draufdrücke spawne ich. Zwar an einem anderen Ort, aber trotzdem mit dem Geld, level etc. des spielers.
der Banfix würde zwar (wahrscheinlich) beheben, dass der Spieler gekickt wird, aber behebt er auch die Message, die eigtl erscheinen sollte?Ja, die Message kommt dann auch, bevor er gekickt wird..
-
case DIALOG_LOGIN1:
{
if(!response)
{
Kick(playerid);
return 0;
}
else
{
new pwlength = strlen(inputtext);
if(pwlength > 0)
{
new pw[200];
format(pw, sizeof(pw), "%s", dini_Get(path, "password"));
if(strcmp(inputtext, pw) == 0)
{
pInfo[playerid][Geschlecht] = dini_Int(path, "Geschlecht");
pInfo[playerid][Alter] = dini_Int(path, "Alter");
pInfo[playerid][Logged] = 1;
SpielerLaden(playerid);
return 1;
}
else if(strcmp(inputtext, pw) == 1)
{
SendClientMessage(playerid,Rot,"Du hast ein falsches Passwort eingegeben und wurdest gekickt!"); //Das hier wird nicht ausgeführt
Kick(playerid); //Das auch nicht
return 0;
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "Gib ein Passwort ein!", "OK", "Abbrechen");
}
}
}
Bitte Hoffe es geht habe else if hinzugefügt und eingerückt
-
-
Zitat
Important Note: As of SA-MP 0.3x, any action taken before Kick() (such as sending a message with SendClientMessage) will not work. A timer must be used to delay the kick.
Stand im WIki du musst es so machen
//////////////////////////////////////////////////////////////////forward KickPublic(playerid);
public KickPublic(playerid) Kick(playerid);
///////////////////////////////////////////////////////////////////
case DIALOG_LOGIN1:
{
if(!response)
{
Kick(playerid);
return 0;
}
else
{
new pwlength = strlen(inputtext);
if(pwlength > 0)
{
new pw[200];
format(pw, sizeof(pw), "%s", dini_Get(path, "password"));
if(strcmp(inputtext, pw) == 0)
{
pInfo[playerid][Geschlecht] = dini_Int(path, "Geschlecht");
pInfo[playerid][Alter] = dini_Int(path, "Alter");
pInfo[playerid][Logged] = 1;
SpielerLaden(playerid);
return 1;
}
else if(strcmp(inputtext, pw) == 1)
{
KickWithMessage(playerid, 0xFF0000FF, "You have been kicked.");
return 1;
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "Gib ein Passwort ein!", "OK", "Abbrechen");
}
}
}
////////////////////////////////////////////////////////////////////////////////
stock KickWithMessage(playerid, color, message[])
{
SendClientMessage(playerid, color, message);
SetTimerEx("KickPublic", 1000, 0, "d", playerid); //Delay of 1 second before kicking the player so he recieves the message
-
Hatte wirklich Hoffnung diesmal - kein Erfolg
-
breadfish.de
Hat das Thema geschlossen.