MySQL und SSCANF lädt nicht in Enum

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
  • Servus,


    ich wollte mal von mysql_fetch_field auf sscanf umsteigen, aber irgendwie mag mich SSCANF nicht :/
    new query[256];
    format(query,256,"SELECT * FROM fautodatenbank");
    mysql_query(query);
    mysql_store_result();

    fa_count=1;
    while(mysql_fetch_row_format(query,"|"))
    {

    printf("%i",fa_count);


    sscanf(query,"p<|>e<iiiiiffffiiiiiiiiiiiiiiiiii",Fraktcar[fa_count]);



    Fraktcar[fa_count][id_x]=CreateVehicleEx(Fraktcar[fa_count][vmodel],Fraktcar[fa_count][v_x],Fraktcar[fa_count][v_y],Fraktcar[fa_count][v_z],Fraktcar[fa_count][v_a],Fraktcar[fa_count][col],Fraktcar[fa_count][col1],0);



    printf("Fcar: %i erstellt",fa_count);
    SetVehicleToRespawn(Fraktcar[fa_count][id_x]);
    fa_count++;
    print(query);


    }


    Aus dem Query kommt alles raus:

    Code
    1|1|522|1|1|1528.04|-1669.31|13.3828|13.6268|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0


    Aber der Enum bleibt leer :&


    Wisst ihr weiter?

  • hatte den fehler auch


    Die lösung währe, es nicht ans enum zu geben, sondern einfach jeden wert dahinterschreiben
    So ging es bei mir zumindest


    Teste es mal auf 3 Zeilen mehr kommt es ja wohl nicht an ;)

    All in all it's just another brick in the wall

  • Ich habs jetzt zu dem Ausgebaut:

    sscanf(query,"p<|>iiiiiffffiiiiiiiiiiiiiiiiii",Fraktcar[fa_count][ID],Fraktcar[fa_count][frakid],Fraktcar[fa_count][vmodel],Fraktcar[fa_count][col],Fraktcar[fa_count][col1],Fraktcar[fa_count][v_x],Fraktcar[fa_count][v_y],Fraktcar[fa_count][v_z],Fraktcar[fa_count][v_a],Fraktcar[fa_count][locked],Fraktcar[fa_count][vworld],
    Fraktcar[fa_count][vmod0],Fraktcar[fa_count][vmod1],Fraktcar[fa_count][vmod2],Fraktcar[fa_count][vmod3],Fraktcar[fa_count][vmod4],Fraktcar[fa_count][vmod5],Fraktcar[fa_count][vmod6],Fraktcar[fa_count][vmod7],Fraktcar[fa_count][vmod8],Fraktcar[fa_count][vmod9],Fraktcar[fa_count][vmod10],Fraktcar[fa_count][vmod11],Fraktcar[fa_count][vmod12],Fraktcar[fa_count][vmod13],Fraktcar[fa_count][neon],Fraktcar[fa_count][paintjob]);



    Mein Enum sieht so aus:



    enum vehicle_enum
    {
    ID,
    id_x,
    frakid,
    vmodel,
    col,
    col1,
    Float:v_x,
    Float:v_y,
    Float:v_z,
    Float:v_a,
    locked,
    vworld,
    vmod0,vmod1,vmod2,vmod3,vmod4,vmod5,vmod6,vmod7,vmod8,vmod9,vmod10,vmod11,vmod12,vmod13,
    neon,
    paintjob
    }

    Geht aber torzdem nicht 8|


    PS: Musste es in zwei Zeilen machen da ansonsten Pawno sagt dass die InputLine zu lang ist :)

  • Um das ganze richtig zu stellen musst du sscanf ein bissle verarschen daher setzt du die werte die du nicht brauchst fürs splitten nach hinten


    enum vehicle_enum
    {
    ID,
    frakid,
    vmodel,
    col,
    col1,
    Float:v_x,
    Float:v_y,
    Float:v_z,
    Float:v_a,
    locked,
    vworld,
    vmod0,vmod1,vmod2,vmod3,vmod4,vmod5,vmod6,vmod7,vmod8,vmod9,vmod10,vmod11,vmod12,vmod13,
    neon,
    paintjob,
    id_x,
    };


    dann sollte es so aufjedenfall gehen


    sscanf(query,"p<|>e<iiiiiffffiiiiiiiiiiiiiiiii>",Fraktcar[fa_count]);


    kannst dir die ergebniss e auch mal ausgeben lassen per schleifen


    for(new i; vehicle_enum:i < vehicle_enum; i++) printf((i == 5 || i == 6 || i == 7 || i == 8)?("%f"):("%d"),Fraktcar[fa_count][vehicle_enum:i]);


    Er will auch aus ihrgend einem grund auch mit den Klammern ein argument nicht ignorieren.