Variable überschreibt sich

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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