Sieht sehr gut aus. Ja, jetzt können wir zu den Textdraws.
Poste bitte den Code, bei wessen Ausführung diese Cache Warnungen kommen.
Ich weiß es jetzt leider nicht genau da keine Zeile angegeben wurde , aber ich poste dir einfach mein ganzes Login/register system eben hin:
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
new Text:Textdraw5;
new Text:Textdraw6;
new PlayerText:Textdraw7[MAX_PLAYERS];//Skinanzeige, (Ignorieren!)
//MySQL Verbindung(ongamemodeinit)
dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
//OnPlayerConnect
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
//Die beiden Dialogs
if(dialogid==DIALOG_LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);//Fragt ab ob das Passwort richtig ist
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
//keine Eingabe
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
}
}
else
{
SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
}
return 1;
}
if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>=3)
{
//Registerfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s',MD5('%s')) ",name,passwort);
mysql_function_query(dbhandle,query,false,"OnPlayerRegister","i",playerid);
}
else
{
//Kleiner als 4 Zeichen
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Das angegebende Passwort war zu kurz! Bitte versuchs nochmal:","Register","Abbrechen");
}
}
else
{
SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
}
return 1;
}
//und das halt die anklickbare Textdraw
if(_:clickedid != INVALID_TEXT_DRAW) //Sagt das wenn der Player ein falsches TD anklickt nichts passieren soll.
{
if(clickedid == Textdraw2)
{
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(OnUserCheck(playerid))//Wür überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
return 1;
}
else //Falls doch
{
SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist bereits Regestriert!");
return 1;
}
}
}
else if(clickedid == Textdraw3)
{
if(GetPVarInt(playerid,"eingeloggt") == 0)
{
if(OnUserCheck(playerid))
{
SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist nicht Regestriert! Um hier spielen zu können, musst du dich Regestrieren!");
return 1;
}
else//Falls doch
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
return 1;
}
}
}
//OnUserCheck & OnPlayerRegiter
public OnPlayerRegister(playerid)
{
SpielerInfo[playerid][u_id] = cache_insert_id(dbhandle);
return 1;
}
public OnUserCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)
{
//Registrierung
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
}
else
{
//Login
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
}
return 1;
}
So das wars, falls was fehlt einfach zurück schreiben 