Hi Leute warum wird der dialog nicht angezeigt ?
public OnPlayerConnect(playerid)
{
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 Newtown Deathmatch/Stun 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");
ShowPlayerDialog(playerid,DIALOG_G,DIALOG_STYLE_LIST,"Geschlecht","Männlich \nWeiblich","Okay","Abbrechen");
}
else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einlogg
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf Newtown Reallife 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;
}
Dialog wird beim Connecten nicht angezeigt
- DeutsArtwork
- Geschlossen
- Erledigt
-
-
Wenn der Account nicht vorhanden ist zeigst du zwei Dialoge.
Der zweite "überlagert" den ersten & somit wird nur der zweite vom Spieler gesehen. -
ich habe doch ein else davor gemachmt ...
-
nein du zeigst ihm erst den register dialog und sofort den geschlüechts dialog das packt der ahber niicht deswegen pack den geschlechts dialog unter oondialogresponse beim register
-
aso okay bringt aber auch nichts ...
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.
ShowPlayerDialog(playerid,DIALOG_G,DIALOG_STYLE_LIST,"Geschlecht","Männlich \nWeiblich","Okay","Abbrechen");
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.
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.
}
}
} -
hast du es bei onplayerconnect raus
-
ja habe ich ...
-
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.
OnPlayerConnect = Wenn er den Server betritt.
OnPlayerRequestClass = SkinauswahlOder irre ich mich da?
Demnach kannst du die zitierte Abfrage der 'PVar' löschen
Kommentier sie mal aus und probier es aus. -
Passiert aber auch nichts ...
-
was für ein dialog wird denn nicht angezeigt beide oder nur einer?
MFG
xDNGRSx -
beide werden nicht angezeigt naja zumindest komm kein Dialog zum regestrieren dann werde ich einfach gespawnt bzw ich muss auf spawn klicken
-
könntest du mir mal dein stock spieler speicher speiler laden register login zeigen
also von allen den ein stock wiel wie du das geschrieben hast ist mir glaub ich schon klar das dat nicht funkt//eidt trotz alledem probs mal so:
public OnPlayerConnect(playerid)
{
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))//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf Newtown Deathmatch/Stun 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");
ShowPlayerDialog(playerid,DIALOG_G,DIALOG_STYLE_LIST,"Geschlecht","Männlich \nWeiblich","Okay","Abbrechen");
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf Newtown Reallife 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;
} -
danke aber jetzt kommt der Login Dialog obwohl ich nocht nicht regestriert bin ...
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
{
if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
{
//Nun speichern wir die Daten in der Datenbank.
mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Adminlevel", SpielerInfo[playerid][pAdminlevel], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Alter", SpielerInfo[playerid][pAge], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Land", SpielerInfo[playerid][pLand], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Geschlecht", SpielerInfo[playerid][pGeschlecht], "Name", SpielerInfo[playerid][pName]);
}
}
return 1;
}stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
{
GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Level", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Geld", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pAdminlevel] = mysql_GetInt("accounts", "Adminlevel", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pAge] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pLand] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pGeschlecht] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
}
return 1;
} -
ich probs mal zu beheben
//edit wo ist denn da bitte der dialog?
//edit achso du hast zu mir danke gesgat oder?
//edit3 ah so jetzt habe ich es verstanden
//edit4 hast du kein stock checkaccount oder so? -
stock mysql_CheckAccount(playerid)
{
new Query[128],Name[MAX_PLAYER_NAME],count;
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name, Name);
format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
mysql_query(Query);
mysql_store_result();
count = mysql_num_rows();
mysql_free_result();
return count;
} -
ich empfehle dir mal statt dem == 1)
bei if(!
ein ausrufezeichen setzten wenn was kommen soll wenn es nicht der fall ist und wenn kein ausrufezeichen ist zu sagen was passieren soll wenn es der fall ist
//editprobs mal so :
public OnPlayerConnect(playerid)
{
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))//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf Newtown Deathmatch/Stun 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");
ShowPlayerDialog(playerid,DIALOG_G,DIALOG_STYLE_LIST,"Geschlecht","Männlich \nWeiblich","Okay","Abbrechen");
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf Newtown Reallife 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;
} -
und wie hilft mir das jetzt weiter ?
-
wie?
probiers mal ich habe was geändert -
so jetzt wird der Register dialog angezeigt aber er stellt keine Tabelle bzw es kommt immer wieder der Register dialog.
-
Zitat
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
ShowPlayerDialog(playerid,DIALOG_G,DIALOG_STYLE_LIST,"Geschlecht","Männlich \nWeiblich","Okay","Abbrechen");Du lässt zwei Dialog gleichzeitig anzeigen?
-