ja das is aber auch buggy .... xD
naja eqal schaue mal bis morgen früh schaff ich des schon das alles geht danke trozdem
ja das is aber auch buggy .... xD
naja eqal schaue mal bis morgen früh schaff ich des schon das alles geht danke trozdem
Das sollte vielleicht lieber ohne Abfrage in den Response vom Dialog
wie meinst du das?
if(response)
{
//pw richtig....
SpawnPlayer(playerid);
}
....
So, dann wird das sofort nach dem Dialog gemacht..
Nur Eine Sache Verstehe ich nicht ...
wenn ichs so machen würde ->
if(!Eingeloggt[playerid])
{
if(!strlen(inputtext))
{
if(response)
{
new kayitmsg[128];
format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
return 1;
}
if(!response)
{
SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Registriert!");
Kick(playerid);
return 1;
}
dann drück ich auf Registrieren und er spawnt einfach ohne das der rest des regi system kommt drück ich auf Verlassen kick nur frage mich wieder einfach nur spawn? mehr nicht
//EDIT: Ach ich bereuhe es mein altes script gelöscht zuhaben da hatte ichs richtig drinne mann boah hoffentlich kriegs ich noch hin
So müsstest du ja einen Button haben um zu Fragen:"Besitz du schon einen Account"?
Das musst du vorher abfragen , und dann sehen ob die Person schon registriert ist.
Wenn ja -> Zeig Login Dialog -> Wenn links geklickt, und PW richtig spawne Player
-> Wenn recht geklickt, kick Player
Wenn nein -> Zeig registerdialog -> Wenn links geklickt, erstelle Account
-> Wenn rechts geklickt, kick Player
Weiß du was ich meine?
Also wie hier ?
if(!dini_Exists(s))
{
new kayitmsg[128];
format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
}
else
if(dini_Exists(s))
{
new girismsg[128];
format(girismsg,128,"Herzlich Willkommen %s \n\nBitte Loggen sie sich ein \n\nGeben sie nun ihr Passwort ein",Name);
ShowPlayerDialog(playerid,9,DIALOG_STYLE_INPUT,"Einloggen",girismsg,"Login","Verlassen");
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(!Eingeloggt[playerid])
{
if(!strlen(inputtext))
{
if(response)
{
new kayitmsg[128];
format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
}
if(!response)
{
SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Registriert!");
Kick(playerid);
}
GetPlayerName(playerid,Name,sizeof(Name));
format(s,sizeof(s),"acc/%s.ini",Name);
if(!dini_Exists(s))
{
dini_Create(s);
dini_IntSet(s,"Passwort",udb_hash(inputtext));
dini_FloatSet(s,"X",-2756.4143);
dini_FloatSet(s,"Y",374.9626);
dini_FloatSet(s,"Z",4.3366);
dini_FloatSet(s,"A",269.2460);
dini_FloatSet(s,"Health",100);
dini_FloatSet(s,"Armor",0);
dini_IntSet(s,"Geld",500);
dini_IntSet(s,"Skin",26);
dini_IntSet(s,"Virt",0);
dini_IntSet(s,"Inte",0);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
}
}
}
return 1;
}
Jep, und nun das SpawnPlayer bei dem Response von Dialogid 9 rein, wenn das PW richtig war.
Denke so sollte das gehen
Er fragt schon hier ab, ob er registriert ist, ( if(!dini_Exists(s)) )
Du solltest das nicht doppelt machen
Edit: das geht do nicht
Du musst bei response die Daten erstellen, und bei !response kicken, oder was auch immer
Dialoge sind so aufgebau:
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren","lalala","Registrieren","Verlassen");
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response)
{
spielerdaten erstellen mit dem eigegebenem PW (inputtext)
}
else
{
// rechten button gedrückt
}
}
}
Siehe Oben so wie es ist das dialog system
geht kick zwar aber wenn er auf Registrieren klickt gehts net weiter..
Das ist der Grund:
if(response)
{
new kayitmsg[128];
format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
}
Zu zeigst dem Spieler dann gleich wieder den Dialog
ok ich hoffe ich kriegs nun hin noch ne weiter frage
meinste ich kann f4 igendwie machn das er dann gleich wieder spawnt weil mit dem einen code gings net
//EDIT:
habs nun so doch wieder das selbe wie eben Drück ich auf Regi gehts net weiter..
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(!Eingeloggt[playerid])
{
if(!strlen(inputtext))
{
if(response)
{
GetPlayerName(playerid,Name,sizeof(Name));
format(s,sizeof(s),"acc/%s.ini",Name);
if(!dini_Exists(s))
{
dini_Create(s);
dini_IntSet(s,"Passwort",udb_hash(inputtext));
dini_FloatSet(s,"X",-2756.4143);
dini_FloatSet(s,"Y",374.9626);
dini_FloatSet(s,"Z",4.3366);
dini_FloatSet(s,"A",269.2460);
dini_FloatSet(s,"Health",100);
dini_FloatSet(s,"Armor",0);
dini_IntSet(s,"Geld",500);
dini_IntSet(s,"Skin",26);
dini_IntSet(s,"Virt",0);
dini_IntSet(s,"Inte",0);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
return 1;
}
if(!response)
{
SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Registriert!");
Kick(playerid);
}
}
}
}
return 1;
}
OnPlayerRequestClass da nichts rein packen?
Höö Kapiers net also hier nommal
OnPlayerRequestClass:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerFacingAngle(playerid, 136.3925);
SetPlayerPos(playerid, -1531.6234,686.8140,133.0514);
SetPlayerCameraPos(playerid, -1544.0018,672.2354,147.4409);
SetPlayerCameraLookAt(playerid, -1531.6234,686.8140,133.0514);
GetPlayerName(playerid,Name,sizeof(Name));
format(s,sizeof(s),"acc/%s.ini",Name);
if(!dini_Exists(s))
{
new kayitmsg[128];
format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
}
else
if(dini_Exists(s))
{
new girismsg[128];
format(girismsg,128,"Herzlich Willkommen %s \n\nBitte Loggen sie sich ein \n\nGeben sie nun ihr Passwort ein",Name);
ShowPlayerDialog(playerid,9,DIALOG_STYLE_INPUT,"Einloggen",girismsg,"Login","Verlassen");
}
return 1;
}
und hier Login Dialog wenn er bei OnPlayerRequestClass auf Registrieren klickt:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(!Eingeloggt[playerid])
{
if(!strlen(inputtext))
{
if(response)
{
GetPlayerName(playerid,Name,sizeof(Name));
format(s,sizeof(s),"acc/%s.ini",Name);
if(!dini_Exists(s))
{
dini_Create(s);
dini_IntSet(s,"Passwort",udb_hash(inputtext));
dini_FloatSet(s,"X",-2756.4143);
dini_FloatSet(s,"Y",374.9626);
dini_FloatSet(s,"Z",4.3366);
dini_FloatSet(s,"A",269.2460);
dini_FloatSet(s,"Health",100);
dini_FloatSet(s,"Armor",0);
dini_IntSet(s,"Geld",500);
dini_IntSet(s,"Skin",26);
dini_IntSet(s,"Virt",0);
dini_IntSet(s,"Inte",0);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
return 1;
}
if(!response)
{
SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Registriert!");
Kick(playerid);
}
}
}
}
return 1;
}
und hir login
if(dialogid == 9)
{
if(!Eingeloggt[playerid])
{
if(!strlen(inputtext))
{
if(response)
{
new s2[265];
format(s,sizeof(s),"acc/%s.ini",Name);
if(dini_Exists(s))
{
s2=dini_Get(s,"Passwort");
if(udb_hash(inputtext)==strval(s2))
{
Eingeloggt[playerid] = 1;
SpawnPlayer(playerid);
return 1;
}
if(udb_hash(inputtext)!=strval(s2))
{
new girismsg[128];
format(girismsg,128,"Herzlich Willkommen %s \n\nBitte Loggen sie sich ein \n\nGeben sie nun ihr Passwort ein",Name);
ShowPlayerDialog(playerid,9,DIALOG_STYLE_INPUT,"Einloggen",girismsg,"Login","Verlassen");
return 1;
}
if(!response)
{
SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Eingeloggt!");
Kick(playerid);
}
}
}
}
}
}
return 1;
}
//edit. dialog zugefügt
SetPlayerFacingAngle(playerid, 136.3925);
SetPlayerPos(playerid, -1531.6234,686.8140,133.0514);
SetPlayerCameraPos(playerid, -1544.0018,672.2354,147.4409);
SetPlayerCameraLookAt(playerid, -1531.6234,686.8140,133.0514);
GetPlayerName(playerid,Name,sizeof(Name));
format(s,sizeof(s),"acc/%s.ini",Name);
if(!dini_Exists(s))
{
new kayitmsg[128];
format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
}
else
if(dini_Exists(s))
{
new girismsg[128];
format(girismsg,128,"Herzlich Willkommen %s \n\nBitte Loggen sie sich ein \n\nGeben sie nun ihr Passwort ein",Name);
ShowPlayerDialog(playerid,9,DIALOG_STYLE_INPUT,"Einloggen",girismsg,"Login","Verlassen");
}
das unter onplayerconnect machen.
Wenn das zu frü sein sollte, verzögert mit einem Timer ausführen
Und den Regi und Login Dialog so lassen?
Jep, genau
jap kann dir sagen was passiert
als erstes kommt meine Camera posis da nicht und wenn ich dann mich doch registrieren will
passiert folgenes ich gebe mein passwort ein drücke enter oder Registrieren dann Spawnt er
igendwo inna luft blueberry und mehr net
Benutzt du ein GF, und willst den auf Dialog umbauen?
Sonst müsstest du eigentlich wissen worwann das liegt
Guck dir mal tutorials über dialoge an.
Ich gehe nun auch mal in´s Bett
Benutze Selfmade
Ja sags mir bitte worran es liegt sonst komm ich net weiter..