Bankdaten werden nicht richtig ausgegeben

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
  • Guten Abend,


    Ich habe mal wieder ein Problem. Ich speichere beim Registrieren Kontonummer und Pin aus einer zufälliggenerierten Zahl, aber wenn ich jetzt /profil mache, steht dort:
    Kontonummer: -1
    Pin: -1
    Was mach ich denn falsch ? Die Bankdaten werden korrekt aus MySQL ausgelesen, also daran kann es nicht liegen.
    Hier mal mein Befehl:
    ocmd:profil(playerid, params[]) {
    if(IstSpielerAFK[playerid] == false) {
    if(IsPlayerConnected(playerid) && SpielerInfo[playerid][Eingeloggt] == 1) {
    new kontonum[4], kontopin[4], str[255];
    for(new bank = 0; bank < MAX_BANK_KONTEN; bank++) {
    if(strfind(PlayerxName(playerid), BankAccounts[bank][Besitzer], false) != -1) {
    printf("%s - %s", BankAccounts[bank][Besitzer], PlayerxName(playerid));
    format(kontonum, 4, "%d", BankAccounts[bank][Kontonummer]);
    format(kontopin, 4, "%d", BankAccounts[bank][Pin]);
    printf("%d - %d - %d", bank, kontopin, kontopin);
    format(str, sizeof(str), "Kontonummer: %s\nPin: %s\n* Bankdaten kopieren *", kontonum, kontopin);


    }
    //if(!strcmp(PlayerxName(playerid), BankAccounts[bank][Besitzer], false) == 1) {
    //}
    ShowPlayerDialog(playerid, Dialog_Profil, DIALOG_STYLE_LIST, "Profil:", str, "Weiter", "Abbrechen");
    return 1;
    }
    }
    }
    return 1;
    }


    Hoffe, welche von euch sind wieder so nett, und helfen mir, da ich irgendwie die einfachsten Dinge nicht hinbekomme :D


    Liebe Grüße und einen schönen Abend!
    Canna!

  • ja wo steht bei dir kontopin =
    oder kontonummer = ^^


    //edit


    Also die Deklaration


    format(kontonum, 4, "%d", BankAccounts[bank][Kontonummer]);
    format(kontopin, 4, "%d", BankAccounts[bank][Pin]);
    Ich habe es schon anders versucht, aber dann habe ich genau das selbe Problem.


    Grüße!


    Edit:// Was genau meinst du? Wo diese ausgelesen werden ?

  • dann versuchs auf dem direktem Weg


    BankAccounts[bank][Kontonummer]


    Aber wäre das nicht einfacher, wenn du diese Information in die PlayerInfo einführst?


    Werde ich gleich mal versuchen!
    Naja, ich habe vor noch für Firmen ein Bankkonto zu erstellen und jeder User, kann sich natürlich auch ein "neues" Konto machen lassen, deshalb in einer seperaten Tabelle und enum. ;)
    Melde mich gleich, ob es geklappt hat!


    Edit:// Funktioniert immer noch nicht. :/

  • Du kannst trotzdem separate Tabellen erstellen, nur eben die Daten aus PlayerInfo rauslesen.


    Das habe ich mir auch schon überlegt.


    Edit:// Hab es jetzt mal so gemacht. Jetzt wird zwar der Pin richtig ausgegeben, aber die Kontonummer jedoch nicht, ob wohl sie genau so ausgelesen wird, wie die Pin.
    SpielerInfo[playerid][Kontonummer] = mysql_GetInt("acccounts", "Kontonummer", "Name", PlayerxName(playerid));
    SpielerInfo[playerid][Pinnummer] = mysql_GetInt("accounts", "Pin", "Name", PlayerxName(playerid));
    //---------------------------------------------------------------------------------------------------
    ocmd:profil(playerid, params[]) {
    if(IstSpielerAFK[playerid] == false) {
    if(IsPlayerConnected(playerid) && SpielerInfo[playerid][Eingeloggt] == 1) {
    new str[255];
    format(str, 255, "{6E6E6E}Kontonummer: {FFFFFF}%d\n{6E6E6E}Pin: {FFFFFF}%d\n{6E6E6E}* Bankdaten kopieren *", SpielerInfo[playerid][Kontonummer], SpielerInfo[playerid][Pinnummer]);
    ShowPlayerDialog(playerid, Dialog_Profil, DIALOG_STYLE_LIST, "Profil:", str, "Weiter", "Abbrechen");
    return 1;
    }
    else return SendClientMessage(playerid, Rot, "Du musst Eingeloggt sein um diesen Command zu benutzen!");
    }
    else return SendClientMessage(playerid, Rot, "Du bist AFK! Um Commands zu benutzen musst du /back kommen!");
    }

    webexpandedSignatur-newSimple.png

    Einmal editiert, zuletzt von Canna ()

  • Überprüfe, ob SpielerInfo[playerid][Pinnummer] nach dem Laden und vor der Verwendung gesetzt ist. Schaue dir den Wert an und vergleiche Typ-Fehler der Variable, falscher Inhalt etc. (Debugging).

  • Überprüfe, ob SpielerInfo[playerid][Pinnummer] nach dem Laden und vor der Verwendung gesetzt ist. Schaue dir den Wert an und vergleiche Typ-Fehler der Variable, falscher Inhalt etc. (Debugging).


    Hab es schon Debug verwendet.
    Thema ist erledigt. Danke an alle die mir geholfen haben !


    Grüße und schnönen Abend!