Daten kommen nicht im Enum an

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
  • Hallo. Ich hab gedacht ich versuch mich mal an einem eigenen Script für SA. Aber so langsam bin ich am verzweifeln.


    naja, ich hab ein enum erstellt welches ja die daten bekommen soll:


    in einem Stock hole ich die daten aus der Datenbank:


    der stock wird in OnDialogResponse aufgerufen, nachdem das Password überprüft wurde.
    in der Konsole kann ich die Testausgabe aus dem Stock sehen.
    dort kommt sowas an:


    Code
    1|Testuser|170|200|5aae391f8b738903e41c0c0a8cd3a028|-2121.839400|1199.909200|11.281400|273.644400|100.000000|100.000000|5|0|22|1|0


    das OnDialogResponse wird wieder über einen Stock aufgerufen


    dort wird im else z.b. ShowPlayerDialog augerufen und zwar den 1.


    bei diesen Testausgaben müssten doch die Daten aus dem enum drinn sein. Sind sie aber nicht.
    Dadurch weiss das Script auch nicht wo ich spawnen soll, und ich bleibe in der Luft hängen.



    was mache ich denn falsch? Warum kommen die Daten im Enum nicht an? Ich hab da schon vieles Ausprobiert, nichts hat bisher zum Ziel geführt.

    2 Mal editiert, zuletzt von ChrisX ()

  • blöde frage (kann mich zwar täuschen) aber irgendwie fehlt mir die Abfrage aus der Mysql Datenbank^^
    also z.b. mysql_GetInt (so ist es bei mir beim daten auslesen^^)

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • Dieses Script ist so unsauber strukturiert da weiß man nicht was hinten und vorne ist.
    Bitte einmal ordentlicher einfügen daher den oberen Beitrag nochmal editieren.


    PaddyBoy diese Funktionen gibts nur im MySql System was ich released hatte.


    LG RFT

    RFT

  • doch das ist sauber ;)
    im Prinzip brauchst du nur die ersten beiden Code Blöcke beachten. Der MySQL Select wird ja ausgeführt, ansonsten hätte ich ja nicht die Testausgabe in der Konsole.


    Ich mach mal 6x f und dann schau ich mal ob tatsächlich daran liegt.

  • PaddyBoy diese Funktionen gibts nur im MySql System was ich released hatte.


    ich nimm glaub das von Gstylezz her^^ aber zudem oben also so wie ich es rauslesen konnte nutzt er doch auch MySQL bzw will es nutzen 8|

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • ja PaddyBoy
    ich nutze auch das MySQL. und das Select funktioniert ja auch. nur eben das die Daten nicht im Array landen. beim print zeigt er die daten auch an die aus der DB kommen.



    so siehts immo aus. in der Konsole bekomme ich vom print() diese Ausgabe:


    Code
    [10:01:44] Incoming connection: 127.0.0.1:63536
    [10:01:44] [join] Testuser has joined the server (0:127.0.0.1)
    [10:01:48] 1|Testuser|170|200|5aae391f8b738903e41c0c0a8cd3a028|-2121.839400|1199.909200|11.281400|273.644400|100.000000|100.000000|5|0|22|0|1
    [10:01:48] userID: Testuser; Name: Testuser; Skin: ; Money: ; Pass: ;
    [10:01:48] PosX: 903e41c0c0a8cd3a028;  PosY: 03e41c0c0a8cd3a028; PosZ: 3e41c0c0a8cd3a028; PosA: e41c0c0a8cd3a028;


    wie man sieht kommen Die Daten aus der Datenbank
    wenn ich aber dann darunter die Testausgabe des Arrays mache, bzw Inhalte davon, kommen keine bzw falsche Daten dort an.

  • Schreib lieber ein par mehr zeilen, dann haste keine Probleme ...
    mysql_query(Query);
    mysql_store_result();
    if(mysql_num_rows())
    {
    mysql_fetch_field("Adminlevel",Query); pUserData[playerid][Admin] = strval(Query);
    /*
    Usw ....
    natürlich für floats: floatstr(Query) benutzen ....
    strings kannste einfach so lassen!
    mysql_free_result(); nicht vergessen, aber immer zum schluss, bis alle Daten ausgelesen wurden!
    */
    }

  • ok. ich habs mal weggelassen. nun sind schonmal die falschen Daten auch weg.
    ist denn bei dem sscansf der Parameter vorne richtig? e<p<|>
    Ich habe da keine Erfahrung was sscansf angeht und hab auch keinen zum fragen. nur hier halt.
    das was ich habe habe ich durch lesen angenommen.


    edit
    Kevin, du meinst ich soll jedes Feld da einzelnd angeben? Das wollte ich gerade nicht. Ich dachte es würde auch als Array ankommen

  • Ich verwende diesen Delimiter, sollte also stimmen,wenn nicht,mit Komma,sollte aber gehen


    Such mal nach sscanf 2 Tutorial


    also ich hab nun alle nachfolgenden Varianten ausprobiert.
    scheinbar klappts nicht oder der Fehler liegt wo anders



    mysql_real_escape_string(GetName(playerid), EscapedName);
    format(Query, sizeof(Query), "SELECT * FROM `user_info` WHERE `username` = '%s'", EscapedName);
    mysql_query(Query);
    mysql_store_result();

    // if(mysql_num_rows() != 0) sscanf(Query, "p<|>e<is[45]iis[34]ffffffis[16]iiiiiiiiiiiiiiffff>",pUserData[playerid]);
    // if(mysql_num_rows() != 0) sscanf(Query, "p<,>e<is[45]iis[34]ffffffis[16]iiiiiiiiiiiiiiffff>",pUserData[playerid]);
    // if(mysql_num_rows() != 0) sscanf(Query, "p<;>e<is[45]iis[34]ffffffis[16]iiiiiiiiiiiiiiffff>",pUserData[playerid]);

    // if(mysql_num_rows() != 0) sscanf(Query, "e<p<|>is[45]iis[34]ffffffis[16]iiiiiiiiiiiiiiffff>",pUserData[playerid]);
    // if(mysql_num_rows() != 0) sscanf(Query, "e<p<,>is[45]iis[34]ffffffis[16]iiiiiiiiiiiiiiffff>",pUserData[playerid]);
    // if(mysql_num_rows() != 0) sscanf(Query, "e<p<;>is[45]iis[34]ffffffis[16]iiiiiiiiiiiiiiffff>",pUserData[playerid]);


    // sscanf(Query, "p<|>e<ds[45]dds[34]ffffffds[16]ddddddddddddddffff>",pUserData[playerid]);
    // sscanf(Query, "e<p<|>ds[45]dds[34]ffffffds[16]ddddddddddddddffff>",pUserData[playerid]);

  • kann es auch sein das du bei sscanf was vergessen hast ?!?^^ denn so wenn du es lädst weiß ja sscanf nicht welcher variable er die zahlen zuweißen muss;)


    if(mysql_num_rows() != 0) sscanf(Query, "e<p<|>is[45]iis[34]ffffffis[16]iiiiiiiiiiiiiiffff>",pUserData[playerid],HIER NOCH DIE GANZEN VARIABLEN);
    /edit beispiel von mir^^


    sscanf(line, "p<,>ddffffff",art, modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ); glaub diese musste angeben damit er das richtig einlädt^^

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...