Hey,
ich stehe gerade vor einem merkwürdigen Problem:
Eine Ein-Dimensionale Variable wird immer überschrieben. Ich kann allerdings nicht den Fehler finden.
Es handelt sich um folgende Variablen:
new lr_n_input[MAX_PLAYERS];/
new lr_p_input[MAX_PLAYERS];
Die Codes, in denen die Var's verwendet werden:
case DIALOG_CON_NAME:
{
if(!response)return 1;
if(strlen(inputtext) > 24 || strlen(inputtext) < 2)return ShowPlayerDialog(playerid,DIALOG_CON_NAME,DIALOG_STYLE_INPUT," Name","Der eingegebene Name ist zu lange oder zu kurz!\nEs sind maximal 24 Zeichen verfügbar! Mindestens 3 Zeichen müssen angegeben werden!\n\nGib hier bitte deinen Benutzernamen ein:","Weiter","Abbrechen");
new str[24+1];
format(str,sizeof(str),"%s",inputtext);
PlayerTextDrawSetString(playerid,lr_name_input[playerid],str);
format(lr_n_input[playerid],24,"%s",inputtext);
}
else if(playertextid == lr_tu[playerid])
{
new length1 = strlen(lr_n_input[playerid]);
new length2 = strlen(lr_p_input[playerid]);
printf("%i",length1);
printf("%i",length2);
printf("%s",lr_n_input[playerid]);
printf("%s",lr_p_input[playerid]);
if(length1 <= 0 || length2 <= 0)return SendClientMessage(playerid,-1," Bitte fülle zuerst alle Zeilen aus!");
new query[128];
mysql_format(1,query,sizeof(query),"SELECT * FROM user WHERE name ='%s'",player[playerid][name]);
mysql_tquery(1,query,"OnUserCheck","d",playerid);
Login(playerid);
}
else
{
new str[215];
format(str,sizeof(str),"Es wurde kein Account mit diesem Namen gefunden.\nMoechten sie sich einen Account mit folgenden Daten erstellen?\nName: %s\nPasswort: %s",lr_n_input[playerid],lr_p_input[playerid]);
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_MSGBOX," Registration",str,"Ja","Nein");
}
Ablauf: User klickt auf TextDraw -> Wenn Name registriert & PW stimmt -> Einloggen.
Wenn Name nicht registriert ist -> Registration.
Wenn man nichts angibt und sofort auf das TextDraw klickt -> Fehler. Das funktioniert allerdings nur beim ersten Spieler.
Sollte ein 2. Spieler online kommen, werden die Daten des ersten Spielers übernommen.
Als Output kommt folgendes:
7
6
Manniac
testpw
( Für der ersten Spieler )
und
6
5
anniac
estpw
Für den 2. Spieler.
Kann mir, wie schon gesagt, den Fehler nicht erklären.
Grüße