Fraktion laden (MYSQL)

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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 habe ein Problem mit meinem Fraktionsladen-System.
    Ich bekomme keine Error oder Warnings. Bloß meine Konsole gibt mir nicht das was ich haben möchte.


    forward LoadFractions_Data();
    public LoadFractions_Data()
    {
    new rows, id;
    rows = cache_num_rows();
    printf("Gefundene Rows: %d" ,rows);
    for(new i=0; i<rows; i++)
    {
    id = cache_get_value_name_int(i, "FID", fInfo[i][fid]);
    if(id < 0 || id >= rows) continue;
    cache_get_value_name(i, "Name", fInfo[i][f_name]);
    cache_get_value_name(i, "Shortname", fInfo[i][f_shortname]);
    cache_get_value_name_float(i, "X", fInfo[i][f_x]);
    cache_get_value_name_float(i, "Y", fInfo[i][f_y]);
    cache_get_value_name_float(i, "Z", fInfo[i][f_z]);
    cache_get_value_name_float(i, "R", fInfo[i][f_r]);
    cache_get_value_name_int(i, "Inter", fInfo[i][f_inter]);
    cache_get_value_name_int(i, "World", fInfo[i][f_world]);
    cache_get_value_name_int(i, "Leaderskin", fInfo[i][f_leaderskin]);
    cache_get_value_name_int(i, "Kasse", fInfo[i][f_kasse]);
    cache_get_value_name_int(i, "Mats", fInfo[i][f_mats]);
    cache_get_value_name_int(i, "Drogen", fInfo[i][f_drogen]);
    cache_get_value_name(i, "Color", fInfo[i][f_color]);
    printf("[Fraktions] Durchlauf: %d | Fraktions-ID: %d| Fraktions-Name: %s [Fraktions]", i, fInfo[i][fid], fInfo[i][f_name]);
    }
    return 1;
    }
    Die Konsole spuckt die IDS richtig aus in der richtigen reihenfolge aber den Namen nicht.

  • cache_get_value_name(i, "Name", fInfo[i][f_name]);
    zu:
    cache_get_value_name(i, "Name", fInfo[i][f_name], 32);


    Die 32 steht für die maximale Länge des Namens. Das muss in diesem Fall mit angegeben werden.

    Das habe ich im laufe des Tages auch rausgefunden,
    Aber weißt du wie ich alle Fraktionen laden kann und die geladenen Werte Benutzen kann?
    Bis jetzt überschreibt sich durch die schleife immer die werte.


    forward LoadFractions_Data();
    public LoadFractions_Data()
    {
    new rows, id;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    fInfo[id][fid] = cache_get_value_name_int(i, "FID", fInfo[i][fid]);
    fInfo[id][f_name] = cache_get_value_name(i, "Name", fInfo[i][f_name], 256);
    fInfo[id][f_shortname] = cache_get_value_name(i, "Shortname", fInfo[i][f_shortname], 64);
    fInfo[id][f_x] = cache_get_value_name_float(i, "X", fInfo[i][f_x]);
    fInfo[id][f_y] = cache_get_value_name_float(i, "Y", fInfo[i][f_y]);
    fInfo[id][f_z] = cache_get_value_name_float(i, "Z", fInfo[i][f_z]);
    fInfo[id][f_r] = cache_get_value_name_float(i, "R", fInfo[i][f_r]);
    fInfo[id][f_inter] = cache_get_value_name_int(i, "Inter", fInfo[i][f_inter]);
    fInfo[id][f_world] = cache_get_value_name_int(i, "World", fInfo[i][f_world]);
    fInfo[id][f_leaderskin] = cache_get_value_name_int(i, "Leaderskin", fInfo[i][f_leaderskin]);
    fInfo[id][f_kasse] = cache_get_value_name_int(i, "Kasse", fInfo[i][f_kasse]);
    fInfo[id][f_mats] = cache_get_value_name_int(i, "Mats", fInfo[i][f_mats]);
    fInfo[id][f_drogen] = cache_get_value_name_int(i, "Drogen", fInfo[i][f_drogen]);
    fInfo[id][f_color] = cache_get_value_name(i, "Color", fInfo[i][f_color], 64);
    }
    printf("%s", fInfo[2][f_name]);
    printf("[FRAKTIONS] %d/%d Fraktionen geladen.", rows, MAX_FRAC);
    return 1;
    }


  • Nutze anstatt
    fInfo[id]
    Das i:
    fInfo[i]

    Er gibt mir immer noch nur den Letzten Datensatz aus.
    Will das später so benutzen:
    fInfo[PlayerInfo[playerid][pF_id]][f_name]


    Aktueller Code:
    forward LoadFractions_Data();
    public LoadFractions_Data()
    {
    new rows, id;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    fInfo[i][fid] = cache_get_value_name_int(i, "FID", fInfo[i][fid]);
    fInfo[i][f_name] = cache_get_value_name(i, "Name", fInfo[i][f_name], 256);
    fInfo[i][f_shortname] = cache_get_value_name(i, "Shortname", fInfo[i][f_shortname], 64);
    fInfo[i][f_x] = cache_get_value_name_float(i, "X", fInfo[i][f_x]);
    fInfo[i][f_y] = cache_get_value_name_float(i, "Y", fInfo[i][f_y]);
    fInfo[i][f_z] = cache_get_value_name_float(i, "Z", fInfo[i][f_z]);
    fInfo[i][f_r] = cache_get_value_name_float(i, "R", fInfo[i][f_r]);
    fInfo[i][f_inter] = cache_get_value_name_int(i, "Inter", fInfo[i][f_inter]);
    fInfo[i][f_world] = cache_get_value_name_int(i, "World", fInfo[i][f_world]);
    fInfo[i][f_leaderskin] = cache_get_value_name_int(i, "Leaderskin", fInfo[i][f_leaderskin]);
    fInfo[i][f_kasse] = cache_get_value_name_int(i, "Kasse", fInfo[i][f_kasse]);
    fInfo[i][f_mats] = cache_get_value_name_int(i, "Mats", fInfo[i][f_mats]);
    fInfo[i][f_drogen] = cache_get_value_name_int(i, "Drogen", fInfo[i][f_drogen]);
    fInfo[i][f_color] = cache_get_value_name(i, "Color", fInfo[i][f_color], 64);
    }
    printf("%s", fInfo[PlayerInfo[playerid][pF_id]][f_name]);
    printf("%s", fInfo[1][f_name]);
    printf("%s", fInfo[3][f_name]);
    printf("[FRAKTIONS] %d/%d Fraktionen geladen.", rows, MAX_FRAC);
    return 1;
    }

  • Code
    fInfo[i ][f_x] = cache_get_value_name_float(i, "X", fInfo[i][f_x]);

    cache_get_value_name* gibt bei Erfolg 1 und bei einem Fehler 0 zurück. Dadurch ergibt sich dein Fehler -> entferne die Zuweisung.



    Code
    cache_get_value_name_float(i, "X", fInfo[i][f_x]);

    So wäre es richtig. Der Inhalt der Spalte wird per Referenz an die jeweilige Variable übergeben.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beispielsweise, Ja.

    Habe in meiner DB 4 Datensätze. Zivilist, LSPD, FBI, SAOD.
    Leider gibt er mir wieder nur SAOD aus aber zwei mal.
    forward LoadFractions_Data();
    public LoadFractions_Data()
    {
    new rows, id;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    cache_get_value_name_int(i, "FID", fInfo[i][fid]);
    cache_get_value_name(i, "Name", fInfo[i][f_name], 256);
    cache_get_value_name(i, "Shortname", fInfo[i][f_shortname], 64);
    cache_get_value_name_float(i, "X", fInfo[i][f_x]);
    cache_get_value_name_float(i, "Y", fInfo[i][f_y]);
    cache_get_value_name_float(i, "Z", fInfo[i][f_z]);
    cache_get_value_name_float(i, "R", fInfo[i][f_r]);
    cache_get_value_name_int(i, "Inter", fInfo[i][f_inter]);
    cache_get_value_name_int(i, "World", fInfo[i][f_world]);
    cache_get_value_name_int(i, "Leaderskin", fInfo[i][f_leaderskin]);
    cache_get_value_name_int(i, "Kasse", fInfo[i][f_kasse]);
    cache_get_value_name_int(i, "Mats", fInfo[i][f_mats]);
    cache_get_value_name_int(i, "Drogen", fInfo[i][f_drogen]);
    cache_get_value_name(i, "Color", fInfo[i][f_color], 64);
    }
    printf("%s", fInfo[2][f_name]);
    printf("%s", fInfo[1][f_name]);
    printf("%s", fInfo[3][f_name]);
    printf("%s", fInfo[0][f_name]);
    printf("[FRAKTIONS] %d/%d Fraktionen geladen.", rows, MAX_FRAC);
    return 1;
    }



    Keine Warnings oder Errors

  • In der Schleife funktioniert es so wie es soll. Bloß außerhalb nicht. Da printet er nichts.
    Vielleicht hilft eine Erklärung für was ich es benutzen will. Will damit z.B. Bei OnPlayerSpawn den Spawn setzen es funktioniert aber immer nur der letzte Datensatz in dem Falle San Andreas Order Department. @>Apple

  • Das scheint denn allerdings an einer anderen Stelle in die Konsole geschrieben zu werden, da du in deinem Code ja nur den Namen ausgibst und nirgends "ID:, Name:" printest

    forward LoadFractions_Data();
    public LoadFractions_Data()
    {
    new rows, i;
    rows = cache_num_rows();
    for(i=0; i<rows; i++)
    {
    cache_get_value_name_int(i, "FID", fInfo[i][fid]);
    cache_get_value_name(i, "Name", fInfo[i][f_name], 256);
    cache_get_value_name(i, "Shortname", fInfo[i][f_shortname], 64);
    cache_get_value_name_float(i, "X", fInfo[i][f_x]);
    cache_get_value_name_float(i, "Y", fInfo[i][f_y]);
    cache_get_value_name_float(i, "Z", fInfo[i][f_z]);
    cache_get_value_name_float(i, "R", fInfo[i][f_r]);
    cache_get_value_name_int(i, "Inter", fInfo[i][f_inter]);
    cache_get_value_name_int(i, "World", fInfo[i][f_world]);
    cache_get_value_name_int(i, "Leaderskin", fInfo[i][f_leaderskin]);
    cache_get_value_name_int(i, "Kasse", fInfo[i][f_kasse]);
    cache_get_value_name_int(i, "Mats", fInfo[i][f_mats]);
    cache_get_value_name_int(i, "Drogen", fInfo[i][f_drogen]);
    cache_get_value_name(i, "Color", fInfo[i][f_color], 64);
    printf("ID:%d Name:%s", i, fInfo[i][f_name]);
    }
    printf("Name:%s", fInfo[i][f_name]);
    printf("[FRAKTIONS] %d/%d Fraktionen geladen.", rows, MAX_FRAC);
    return 1;
    }


    Hier der Code. Er printet Name:%s nicht.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen