Hey ich habe ein Problem mit meinem Textdraw und zwar habe ich kein Plan wie ich es einfüge und als Register System benutze
mein RegisterTextdraw sieht so aus: https://prnt.sc/gc7ulp
Falls einer eine Lösung hat wäre ich sehr dankbar
Hey ich habe ein Problem mit meinem Textdraw und zwar habe ich kein Plan wie ich es einfüge und als Register System benutze
mein RegisterTextdraw sieht so aus: https://prnt.sc/gc7ulp
Falls einer eine Lösung hat wäre ich sehr dankbar
Versuch es mal damit
Login & Register Textdraw basierend.
Wo kommst du den nicht weiter? Besitzt du bereits ein Login&Register?
Kannst meins verwenden oder dich daran orientieren, siehe letzte Beitrag:
@Zreeq Ich bin nur soweit wie auf dem Screenshot halt nur eingefügt aber noch nicht als Register oder so.
@JustMe.77 Danke dir ich schaue es mir mal an!
Wenn du das ganze haben möchtest das das Pw in das Textdrawfeld angezeigt wird bzw. zensiert wird arbeite mit [wiki]SetPVarInt[/wiki], [wiki]GetPVarInt[/wiki] und [wiki]PlayerTextDrawSetString[/wiki]
Ich hätte es so angefangen...
wegen mysql musst schauen mit deiner version davon dann.
hier:
Unter OnpalyerConnect die Textdraws anzeigen lassen ohne das Der Spieler gespawnt wurde und dann die abfrage
public OnPlayerConnect(playerid)
{
//textdraws zeigen...
}
danach musst du schauen ob du PalyerTextdraws nutz oder nur textdraws je anch dem halt OnPlayerClickTextDraw oder OnPlayerClickPlayerTextDraw
dann halt wie oben genant anpassen
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid==Textdraw0[playerid])// Also Die Box textdraw dann wo Passwort steht
{
new query[256];
mysql_format(Handle, query, sizeof(query), "SELECT * FROM user WHERE Username='%e'", Spielername(playerid));
mysql_tquery(Handle, query, "UserCheck", "i", playerid);
}
return 1;
}
dann bei UserCheck
forward UserCheck(playerid);
public UserCheck(playerid)
{
new num_rows, num_fields;
cache_get_data(num_rows, num_fields, Handle);
SetPlayerVirtualWorld(playerid,1);
if(num_rows == 0)
{
//Register..
ShowPlayerDialog(playerid, DIALOG_Passwort, DIALOG_STYLE_PASSWORD, "Anmeldung", "wähle dein Pw aus...", "Anmelden", "Abbrechen");;
}
else
{
//Login..
ShowPlayerDialog(playerid, DIALOG_Passwort, DIALOG_STYLE_PASSWORD, "Anmeldung", "gib dein Pw an...", "Anmelden", "Abbrechen");
}
}
dann bei Dialog_Login
if(dialogid == DIALOG_Passwort)
{
if(!response) return 1;
SetPVarString(playerid,"Pw",inputtext);
//hier dein Textdraw anpassen ist nur nen beispiel
new Text[100];
a=strlen(inputtext);
for(new i=0;i<a;i++)
{
format(Text, sizeof(Text), " %s*",Text);//setzt für jeden buchstaben ein * eig- nicht getestet nur gerade eingefallen
}
TextDrawSetString(Textdraw3[playerid], Text);
}
dann noch dies wenn er auf Registiren bzw dann am besten Login drücken will
//wieder anpassen OnPlayerClickPlayerTextDraw evt.
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid==Textdraw1[playerid])// Also Der Button zum login dann
{
new query[256], passworteingabe[128];
GetPVarString(playerid,"Pw",passworteingabe,128);;
mysql_format(Handle, query, sizeof(query), "SELECT * FROM user WHERE Username='%e' AND Passwort=MD5('%e')", Spielername(playerid),passworteingabe);
mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
}
return 1;
}
dann dies hier
forward OnPasswordResponse(playerid);
public OnPasswordResponse(playerid)
{
new num_fields, num_rows;
cache_get_data(num_rows, num_fields);
if(num_rows == 0)
{
SendClientMessage(palyerid,1,"Falsches Pw");
}
else
{
//Passwort richtig..
SendClientMessage(playerid,gelb, "Erfolgreich eingeloggt.");
//Spieler Laden lassen
}
return 1;
}
nun noch Reg.
//wieder anpassen OnPlayerClickPlayerTextDraw evt.
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid==Textdraw1[playerid])// Also Der Button zum Reg dann
{
new query[256], passworteingabe[128];
GetPVarString(playerid,"Pw",passworteingabe,128);
mysql_format(Handle, query, sizeof(query), "INSERT INTO user (Username, Passwort) VALUES ('%e',MD5('%e'))", Spielername(playerid), passworteingabe);
mysql_function_query(Handle, query, true,"OnPlayerRegister", "i",playerid);
}
return 1;
}
und das ende
forward OnPlayerRegister(playerid);
public OnPlayerRegister(playerid)
{
pInfo[playerid][db_id] = cache_insert_id(Handle);
TogglePlayerSpectating(playerid, 0);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
return 1;
}
Dies ist wie gesagt nur ne Idee und nicht 100% für dich angepasst bau dir was daraus