Problem mit createfcar

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
  • das ?

    LoadFracVehicles()
    {
    new vehicleid, query[128];
    format(query,sizeof(query),"SELECT * FROM frakautos ORDER BY ID ASC");
    mysql_function_query(dbhandle,query,true,"LoadFracVehicles_Data","i",vehicleid);
    return 1;
    }

  • Sorry, hab die Anzahl vergessen.
    Mache es so:
    public LoadFracVehicles_Data()
    {
    printf("LoadFracVehicles_Data aufgerufen.");
    new rows, id, createdVehs;
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    printf("%d Fahrzeuge gefunden.", num_rows);
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "ID");
    printf("id: %d", id);
    if(id < 0 || id >= MAX_FRAC_VEHICLES) continue;
    fcInfo[id][e_modelID] = cache_get_field_content_int(i, "ModelID");
    fcInfo[id][e_x] = cache_get_field_content_float(i, "PosX");
    fcInfo[id][e_y] = cache_get_field_content_float(i, "PosY");
    fcInfo[id][e_z] = cache_get_field_content_float(i, "PosZ");
    fcInfo[id][e_a] = cache_get_field_content_float(i, "PosA");
    fcInfo[id][e_color1] = cache_get_field_content_int(i, "Color1");
    fcInfo[id][e_color2] = cache_get_field_content_int(i, "Color2");
    fcInfo[id][e_fracID] = cache_get_field_content_int(i, "FracID");
    if(fcInfo[id][e_modelID] >= 400 && fcInfo[id][e_modelID] <= 611)
    {
    printf("%d %f %f %f %f %d %d", fcInfo[id][e_modelID], fcInfo[id][e_x], fcInfo[id][e_y], fcInfo[id][e_z], fcInfo[id][e_a], fcInfo[id][e_color1], fcInfo[id][e_color2]);
    fcInfo[id][e_vID] = CreateVehicle(fcInfo[id][e_modelID], fcInfo[id][e_x], fcInfo[id][e_y], fcInfo[id][e_z], fcInfo[id][e_a], fcInfo[id][e_color1], fcInfo[id][e_color2], -1);
    printf("Erstellt: %d", fcInfo[id][e_vID]);
    }
    else
    {
    printf("[ERROR] Model-ID %d existiert nicht (ID: %d).", fcInfo[id][e_modelID], id);
    }
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    createdVehs++;
    if(createdVehs == MAX_FRAC_VEHICLES) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_FRAC_VEHICLES) erreicht.");
    }
    return 1;
    }


    Dem Log kann man aber wohl entnehmen, dass die Anzahl 0 ist.


    Heißt deine Tabelle auch wirklich frakautos?

  • Ja Hier
    http://prntscr.com/7p2gxr


    //edit

    SQL
    [17:04:53] LoadFracVehicles_Data aufgerufen.[17:04:53] 5 Fahrzeuge gefunden.



    Trotzdem keine ingame gespawnt :/


    //edit
    und irgendwie ist das mit dem Color2 und FracID vertauscht anstatt da bei Color 86 steht steht da jetzt die Frac id also 7 und bei Fracid steht da halt 86 :/
    war vorher nicht so wo ich es vorhin noch getestet habe ?(
    http://prntscr.com/7p2jm3

    Einmal editiert, zuletzt von JOK3R ()

  • Also entweder bin ich Blind oder blöd



    public SaveAllFracVehs()
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_modelID] >= 400 && fcInfo[i][e_modelID] <= 611)
    {
    GetVehiclePos(fcInfo[i][e_vID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z]);
    GetVehicleZAngle(fcInfo[i][e_vID], fcInfo[i][e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[i][e_modelID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z], fcInfo[i][e_a], fcInfo[i][e_color1], fcInfo[i][e_color2], fcInfo[i][e_fracID], i);
    mysql_function_query(dbhandle, query, false, "", "");
    }
    }
    return 1;
    }


    stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vehicleid)
    {
    GetVehiclePos(fcInfo[i][e_vID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z]);
    GetVehicleZAngle(fcInfo[i][e_vID], fcInfo[i][e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[i][e_modelID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z], fcInfo[i][e_a], fcInfo[i][e_color1], fcInfo[i][e_color2], fcInfo[i][e_fracID], i);
    mysql_function_query(dbhandle, query, false, "", "");
    return 1;
    }
    }
    return 0;


    }

  • Hm, das sieht alles gut aus.
    Du kannst ja nochmal alle Fahrzeuge löschen und neu erstellen. Davor fügst du bei jedem Query von den Fahrzeugen einen print hinzu, und schaust, ab wann es die beiden vertauscht. An sich sind die beiden Codes aber korrekt.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • hmm anscheint hat nur die Tabelle rum gebuggt :) sollte jetzt alles klappen danke Jeffry
    und gz für 10k Beiträge :p


    Ehm jetzt habe ich noch eine frage zu dem command


    ocmd:deletefcar(playerid, params[])
    {
    new vid;
    if(!IsNumeric(params) || !strlen(params)) return SendClientMessage(playerid, COLOR_GREY, "INFO: {FF9600}/deletefcar {B3B3B3}[Vehicle ID]");
    vid = strval(params);
    if(vid <= 0) return SendClientMessage(playerid, COLOR_DRED, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vid)
    {
    fcInfo[i][e_modelID] = 0;
    fcInfo[i][e_x] = 0.0;
    fcInfo[i][e_y] = 0.0;
    fcInfo[i][e_z] = 0.0;
    fcInfo[i][e_a] = 0.0;
    fcInfo[i][e_color1] = 0;
    fcInfo[i][e_color2] = 0;
    fcInfo[i][e_fracID] = -1;
    new query[128];
    format(query, sizeof(query), "DELETE FROM FracVehicles WHERE ID = '%d'", i);
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(fcInfo[i][e_vID]);
    fcInfo[i][e_vID] = 0;
    return SendClientMessage(playerid, COLOR_DGREEN, "** Das Fahrzeug wurde Erfolgreich gelöscht. **");
    }
    }
    return SendClientMessage(playerid, COLOR_DRED, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    }


    Sobald ich den Command eingebe steht da Error: Vehicle-ID ist kein Fraktions-Fahrzeug

  • Was wird dir so im Server Log ausgegeben?
    ocmd:deletefcar(playerid, params[])
    {
    new vid;
    if(!IsNumeric(params) || !strlen(params)) return SendClientMessage(playerid, COLOR_GREY, "INFO: {FF9600}/deletefcar {B3B3B3}[Vehicle ID]");
    vid = strval(params);
    printf("params: %s / vid: %d", params, vid);
    if(vid <= 0) return SendClientMessage(playerid, COLOR_DRED, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    printf("i: %d / e_vID: %d / vid: %d", i, fcInfo[i][e_vID], vid);
    if(fcInfo[i][e_vID] == vid)
    {
    printf("Lösche.");
    fcInfo[i][e_modelID] = 0;
    fcInfo[i][e_x] = 0.0;
    fcInfo[i][e_y] = 0.0;
    fcInfo[i][e_z] = 0.0;
    fcInfo[i][e_a] = 0.0;
    fcInfo[i][e_color1] = 0;
    fcInfo[i][e_color2] = 0;
    fcInfo[i][e_fracID] = -1;
    new query[128];
    format(query, sizeof(query), "DELETE FROM FracVehicles WHERE ID = '%d'", i);
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(fcInfo[i][e_vID]);
    fcInfo[i][e_vID] = 0;
    return SendClientMessage(playerid, COLOR_DGREEN, "** Das Fahrzeug wurde Erfolgreich gelöscht. **");
    }
    }
    printf("Keins gefunden.");
    return SendClientMessage(playerid, COLOR_DRED, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    }


    PS: Danke ^^

  • Da kommt dann das hier


    [18:08:36] params: 567 / vid: 567
    [18:08:36] i: 0 / e_vID: 0 / vid: 567
    [18:08:36] i: 1 / e_vID: 0 / vid: 567
    [18:08:36] i: 2 / e_vID: 0 / vid: 567
    [18:08:36] i: 3 / e_vID: 0 / vid: 567
    [18:08:36] i: 4 / e_vID: 0 / vid: 567
    [18:08:36] i: 5 / e_vID: 0 / vid: 567
    [18:08:36] i: 6 / e_vID: 0 / vid: 567
    [18:08:36] i: 7 / e_vID: 0 / vid: 567
    [18:08:36] i: 8 / e_vID: 0 / vid: 567
    [18:08:36] i: 9 / e_vID: 41 / vid: 567
    [18:08:36] Keins gefunden.