Autohaus Problem

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
  • Sorry, ist doch nicht ID 0, es ist nur das letzte Fahrzeug bzw das einzigste.
    Jetzt ist es grad ID 2 und es wird glaub dann die ID 0 gelöscht?


    SQL
    [12:33:59] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
    [12:34:12] [DEBUG] mysql_tquery - connection: 1, query: "DELETE FROM Cars WHERE ID = '0'", callback: "(null)", format: "(null)"
    [12:34:13] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [12:34:13] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 0.489 milliseconds
    [12:34:13] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving


    //Edit:
    Ich weiß jetzt wo der Fehler liegt/lag
    Ich hab ein /versichern befehl zum Testen gemacht, für ein späteres System.
    Der soll dann in dem Auto wo man sitzt und das einem gehört die Versicherung ändern.
    Und jenachdem welche man hat wird das Fahrzeug halt gelöscht oder nicht und ich merke gerade das der Versicherungsbefehl nur bei ID 0 versichert egal in welchem Auto man sitzt

    Spoiler anzeigen
    ocmd:versichern(playerid)
    {
    new vrs[128];
    for(new i=0; i<MAX_AUTOS; i++)
    {
    CarInfo[i][c_Versicherung] = 1;
    format(vrs, sizeof(vrs), "%s hat den Wagen(Modell: %d) auf Versicherungsstufe %d versichert.", CarInfo[i][Besitzer], CarInfo[i][modelID], CarInfo[i][c_Versicherung]);
    SendClientMessage(playerid, info, vrs);
    return 1;
    }
    return 1;
    }

    Ich bekomme immer 'Niemand' hat den Wagen.....' egal in welchem Auto, weil er es immer aus ID0 ausliest und ich hab bsp ID2 gekauft.
    Jeffry:


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF () aus folgendem Grund: Edit wegen Code hinzugefügt

  • ocmd:versichern(playerid)
    {
    new vrs[128], veh = GetPlayerVehicleID(playerid);
    if(!veh) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du musst in einem Fahrzeug sein.");
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] != veh) continue;
    CarInfo[i][c_Versicherung] = 1;
    format(vrs, sizeof(vrs), "%s hat den Wagen(Modell: %d) auf Versicherungsstufe %d versichert.", CarInfo[i][Besitzer], CarInfo[i][modelID], CarInfo[i][c_Versicherung]);
    SendClientMessage(playerid, info, vrs);
    return 1;
    }
    return 1;
    }


    Geht das andere jetzt?

  • Hi,


    danke, das Versichern funktioniert nun!^^


    Ab und zu ist es so, dass ich bsp die ID 2 nicht löschen kann.
    Aber das auch nur, wenn ID 2 als einzigste in der DB ist, dann will das System nämlich immer ID0 löschen.



    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Ohja, ich merke grade, das das ein Fehler in meinem Tutorial ist. 8|
    Das hatte ich so gar nie getestet.


    Poste bitte den Code mit dem du die Fahrzeuge aus der Datenbank lädst, den aktuellsten. Und einen Screenshot von der Tabelle aus der Datenbank, dann mache ich dir das kurz.
    Den Fehler im Tutorial repariere ich dann natürlich sofort, wenn es bei dir geht.

  • Fehler können passieren :D


    Hier mal LoadCars_Data


    Spoiler anzeigen
    forward LoadCars_Data();
    public LoadCars_Data()
    {

    Spoiler anzeigen
    new rows;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    cache_get_field_content(i, "Besitzer", CarInfo[i][Besitzer],handle,34);
    CarInfo[i][modelID] = cache_get_field_content_int(i, "ModelID");
    CarInfo[i][c_x] = cache_get_field_content_float(i, "PosX");
    CarInfo[i][c_y] = cache_get_field_content_float(i, "PosY");
    CarInfo[i][c_z] = cache_get_field_content_float(i, "PosZ");
    CarInfo[i][c_a] = cache_get_field_content_float(i, "PosA");
    CarInfo[i][c_color1] = cache_get_field_content_int(i, "Color1");
    CarInfo[i][c_color2] = cache_get_field_content_int(i, "Color2");
    CarInfo[i][c_Preis] = cache_get_field_content_int(i, "Preis");
    CarInfo[i][c_Gekauft] = cache_get_field_content_int(i, "Gekauft");
    CarInfo[i][c_Versicherung] = cache_get_field_content_int(i, "Versicherung");

    Spoiler anzeigen
    if(CarInfo[i][modelID] >= 400 && CarInfo[i][modelID] <= 611)
    {
    new text[64];
    CarInfo[i][c_vID] = CreateVehicle(CarInfo[i][modelID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z], CarInfo[i][c_a], CarInfo[i][c_color1], CarInfo[i][c_color2], -1);
    format(text, sizeof(text), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",CarInfo[i][Besitzer],CarInfo[i][c_Preis], CarInfo[i][c_Preis] / 10);
    CarInfo[i][Carlable] = Create3DTextLabel(text,0x0FFF00FF,CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z],20.0,0,1);
    Attach3DTextLabelToVehicle(CarInfo[i][Carlable],CarInfo[i][modelID], 0.0, 0.0, 2.0);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", CarInfo[i][modelID], i);
    }
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");

    Spoiler anzeigen
    if(i == MAX_AUTOS-1) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_AUTOS) erreicht.");
    }
    return 1;
    }


    Und Screen :p



    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Teste es bitte so:

    Spoiler anzeigen
    forward LoadCars_Data();
    public LoadCars_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "id");
    if(id < 0 || id >= sizeof(CarInfo)) continue;
    cache_get_field_content(i, "Besitzer", CarInfo[id][Besitzer],handle,34);
    CarInfo[id][modelID] = cache_get_field_content_int(i, "ModelID");
    CarInfo[id][c_x] = cache_get_field_content_float(i, "PosX");
    CarInfo[id][c_y] = cache_get_field_content_float(i, "PosY");
    CarInfo[id][c_z] = cache_get_field_content_float(i, "PosZ");
    CarInfo[id][c_a] = cache_get_field_content_float(i, "PosA");
    CarInfo[id][c_color1] = cache_get_field_content_int(i, "Color1");
    CarInfo[id][c_color2] = cache_get_field_content_int(i, "Color2");
    CarInfo[id][c_Preis] = cache_get_field_content_int(i, "Preis");
    CarInfo[id][c_Gekauft] = cache_get_field_content_int(i, "Gekauft");
    CarInfo[id][c_Versicherung] = cache_get_field_content_int(i, "Versicherung");

    if(CarInfo[id][modelID] >= 400 && CarInfo[id][modelID] <= 611)
    {
    new text[64];
    CarInfo[id][c_vID] = CreateVehicle(CarInfo[id][modelID], CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z], CarInfo[id][c_a], CarInfo[id][c_color1], CarInfo[id][c_color2], -1);
    format(text, sizeof(text), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",CarInfo[id][Besitzer],CarInfo[id][c_Preis], CarInfo[id][c_Preis] / 10);
    CarInfo[id][Carlable] = Create3DTextLabel(text,0x0FFF00FF,CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z],20.0,0,1);
    Attach3DTextLabelToVehicle(CarInfo[id][Carlable],CarInfo[id][modelID], 0.0, 0.0, 2.0);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", CarInfo[id][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_AUTOS) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_AUTOS) erreicht.");
    }
    return 1;
    }


    Dann dürfte es gehen.

    3HZXdYd.png

    3 Mal editiert, zuletzt von Jeffry ()

  • Mir wird jetzt immer bei jedem Auto den Besitzer von ID 0 angezeigt.^^
    Dazu kommt, dass ID 2(eigentlich Model 411) als Model 560 gespawnt wird und auch bei der Position von ID 0 (Also übereinander)
    Aber in der Datenbank steht es noch richtig :/



    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Das mit dem Owner sollte jetzt passen, hatte dort das id vergessen, kopiere den Code von oben nochmal.


    Löst das auch das Problem mit den Models? Das kann ich nämlich so nicht direkt nachvollziehen.


    EDIT:
    Aufgrund der aktuellen Änderung im Tutorial hier die korrekte Version:

    Spoiler anzeigen
    forward LoadCars_Data();
    public LoadCars_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "id");
    if(id < 0 || id >= sizeof(CarInfo)) continue;
    cache_get_field_content(i, "Besitzer", CarInfo[id][Besitzer],handle,34);
    CarInfo[id][modelID] = cache_get_field_content_int(i, "ModelID");
    CarInfo[id][c_x] = cache_get_field_content_float(i, "PosX");
    CarInfo[id][c_y] = cache_get_field_content_float(i, "PosY");
    CarInfo[id][c_z] = cache_get_field_content_float(i, "PosZ");
    CarInfo[id][c_a] = cache_get_field_content_float(i, "PosA");
    CarInfo[id][c_color1] = cache_get_field_content_int(i, "Color1");
    CarInfo[id][c_color2] = cache_get_field_content_int(i, "Color2");
    CarInfo[id][c_Preis] = cache_get_field_content_int(i, "Preis");
    CarInfo[id][c_Gekauft] = cache_get_field_content_int(i, "Gekauft");
    CarInfo[id][c_Versicherung] = cache_get_field_content_int(i, "Versicherung");

    if(CarInfo[id][modelID] >= 400 && CarInfo[id][modelID] <= 611)
    {
    new text[64];
    CarInfo[id][c_vID] = CreateVehicle(CarInfo[id][modelID], CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z], CarInfo[id][c_a], CarInfo[id][c_color1], CarInfo[id][c_color2], -1);
    format(text, sizeof(text), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",CarInfo[id][Besitzer],CarInfo[id][c_Preis], CarInfo[id][c_Preis] / 10);
    CarInfo[id][Carlable] = Create3DTextLabel(text,0x0FFF00FF,CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z],20.0,0,1);
    Attach3DTextLabelToVehicle(CarInfo[id][Carlable],CarInfo[id][modelID], 0.0, 0.0, 2.0);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", CarInfo[id][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_AUTOS) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_AUTOS) erreicht.");
    }
    return 1;
    }

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()

  • /*Hi Jeffry,


    es scheint zu funktionieren :thumbup:


    Kleine Frage, da ich ja ein Versicherungssystem hinzufüge, wollte ich jetzt wissen wie ich das mache.
    Du hast mir ja vorhin mein Befehl korrigiert, jedoch hast du es so gemacht, dass das Auto in dem man ist Versichert wird.
    Ich wollte es jetzt aber in Dialoge umschreiben, so dass man es so macht:


    Man geht zu einem bestimmten Punkt zufuß und dann öffnet sich das Dialog, bis dahin hab ich es.
    Dann sollen in dem Dialog die Gekauften Fahrzeuge angezeigt werden und auf das wo man klickt, bekommt man dann ein weiteres Dialog wo man die Versicherung für das Fahrzeug wählen kann.


    Mir ist jetzt nur unklar wie ich die gekauften Fahrzeuge anzeigen lasse, das Versichern kann ich ja selbst ^^


    Mit freundlichen Grüßen*/


    Komisch.. jetzt wird alles wieder komisch gespeichert und die Fahrzeuge werden manchmal trotzdem übereinander gespawnt :wacko:
    Ich weiß nicht mehr weiter, jetzt hatte ich 2 Super GTS gespawnt, ein Infernus und ein Sultan, einen Super GT habe ich gekauft.
    Als ich jetzt den Server restartet habe, war in der Datenbank mein SuperGT wieder "Verkauft" also Besitzer war "Niemand"
    Und sie spawnten an der gleichen Pos.


    Jeffry:
    Jeffry



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hast du den Code auch wirklich so wie ich es dir gemacht habe?
    Kannst du die Tabelle in der Datenbank mal leeren und es dann erneut testen? Ich kann mir nicht vorstellen, dass alle diese Probleme nur durch diese kleine Änderung, die ich vorgenommen habe, auftreten, das würde keinen Sinn machen. :wacko:
    Bist du sicher, dass sonst alles passt, beim Speichern?

  • Jo, hab grad alles nochmal getestet.
    Ist immer noch gleich :wacko:


    Schau:

    Spoiler anzeigen
    forward SaveAllCars();
    public SaveAllCars()
    {
    printf("Starte SaveAllCars");
    new query[512];
    for(new i=0; i<MAX_AUTOS; i++)
    {
    printf("i: %d | Model: %d | Besitzer: %s", i, CarInfo[i][modelID], CarInfo[i][Besitzer]);
    if(CarInfo[i][modelID] >= 400 && CarInfo[i][modelID] <= 611)
    {
    printf("Gekauft: %d", CarInfo[i][c_Gekauft]);
    if(CarInfo[i][c_Gekauft] == 0)
    {
    GetVehiclePos(CarInfo[i][c_vID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z]);
    GetVehicleZAngle(CarInfo[i][c_vID], CarInfo[i][c_a]);
    format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d', Versicherung = '%d' WHERE ID = '%d'",
    CarInfo[i][Besitzer],CarInfo[i][modelID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z], CarInfo[i][c_a], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft], CarInfo[i][c_Versicherung], i);
    mysql_tquery(handle, query);
    SendClientMessageToAll(info, "Nicht gekauft Autos wurden gespeichert!");
    }
    if(CarInfo[i][c_Gekauft] == 1)
    {
    new Float:VehPos[4];
    GetVehiclePos(CarInfo[i][c_vID],VehPos[0],VehPos[1],VehPos[2]);
    GetVehicleZAngle(CarInfo[i][c_vID], VehPos[3]);
    format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d', Versicherung = '%d' WHERE ID = '%d'",
    CarInfo[i][Besitzer],CarInfo[i][modelID], VehPos[0], VehPos[1], VehPos[2], VehPos[3], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft],CarInfo[i][c_Versicherung], i);
    mysql_tquery(handle, query);
    SendClientMessageToAll(info, "Gekaufte Autos wurden gespeichert!");
    }
    }
    }
    SendClientMessageToAll(info, "Alle Fahrzeuge wurden gespeichert!");
    printf("Fertig.");
    return 1;
    }


    Spoiler anzeigen
    forward LoadCars_Data();
    public LoadCars_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "id");
    if(id < 0 || id >= sizeof(CarInfo)) continue;
    cache_get_field_content(i, "Besitzer", CarInfo[id][Besitzer],handle,34);
    CarInfo[id][modelID] = cache_get_field_content_int(i, "ModelID");
    CarInfo[id][c_x] = cache_get_field_content_float(i, "PosX");
    CarInfo[id][c_y] = cache_get_field_content_float(i, "PosY");
    CarInfo[id][c_z] = cache_get_field_content_float(i, "PosZ");
    CarInfo[id][c_a] = cache_get_field_content_float(i, "PosA");
    CarInfo[id][c_color1] = cache_get_field_content_int(i, "Color1");
    CarInfo[id][c_color2] = cache_get_field_content_int(i, "Color2");
    CarInfo[id][c_Preis] = cache_get_field_content_int(i, "Preis");
    CarInfo[id][c_Gekauft] = cache_get_field_content_int(i, "Gekauft");
    CarInfo[id][c_Versicherung] = cache_get_field_content_int(i, "Versicherung");

    Spoiler anzeigen
    if(CarInfo[id][modelID] >= 400 && CarInfo[id][modelID] <= 611)
    {
    new text[64];
    CarInfo[id][c_vID] = CreateVehicle(CarInfo[id][modelID], CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z], CarInfo[id][c_a], CarInfo[id][c_color1], CarInfo[id][c_color2], -1);
    format(text, sizeof(text), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",CarInfo[id][Besitzer],CarInfo[id][c_Preis], CarInfo[id][c_Preis] / 10);
    CarInfo[id][Carlable] = Create3DTextLabel(text,0x0FFF00FF,CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z],20.0,0,1);
    Attach3DTextLabelToVehicle(CarInfo[id][Carlable],CarInfo[id][c_vID], 0.0, 0.0, 2.0);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", CarInfo[id][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_AUTOS) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_AUTOS) erreicht.");
    }
    return 1;
    }


    Mit freundlichen Grüßen


    Jeffry:


    /Edit:


    Am Carpark kanns nicht liegen oder?
    bekomme da immer ein Unknow Command ^^
    ocmd:carpark(playerid)
    {
    if(SpielerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, error, "Du bist kein Admin!");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, error, "Du bist in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(SaveCarCheck(vehicleid)) return SendClientMessage(playerid, erfolg, "Fahrzeug geparkt."), MachtAuto[playerid] = 0;
    else return SendClientMessage(playerid, error, "Dieses Fahrzeug kann nicht geparkt werden.");
    }



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF () aus folgendem Grund: Code hinzugefügt

  • Dann poste bitte mal den MySQL Log der kommt, wenn die Fahrzeuge gespeichert werden (LOG_ALL).
    Funktioniert es denn alles, wenn du den Schritt mit dem Kauf weg lässt? Poste dann ggf. noch den Befehl um das Fahrzeug zu kaufen.


    Zum Edit:
    Poste bitte dein SaveCarCheck.

  • Also, nach einem GMX habe ich gemerkt wird nur noch 1 Fahrzeug gespeichert und auch als ein Kaufbares Auto anerkannt.
    Mein Buy Befehl ist zum Dialog geworden:


    Buycar
    if(dialogid == DIALOG_BUYCAR)
    {
    if(response == 1)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, error, "Du bist in keinem Fahrzeug");
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] != vehicleid) continue;
    if(CarInfo[i][c_Gekauft] == 0)
    {
    if(SpielerInfo[playerid][pGeld] < CarInfo[i][c_Preis]) return SendClientMessage(playerid, error, "Du hast nicht genug Geld!");
    format(CarInfo[i][Besitzer], 34, "%s",SpielerName(playerid));
    CarInfo[i][c_Gekauft] = 1;
    GivePlayerMoney(playerid, -CarInfo[i][c_Preis]);
    SendClientMessage(playerid, erfolg, "Herzlichen Glückwunsch, du hast dieses Auto gekauft!");
    TogglePlayerControllable(playerid,1);
    buytcar[playerid] = false;
    SaveAllCars();
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    buytcar[playerid] = false;
    SendClientMessage(playerid, error, "Dieses Auto steht nicht zum Verkauf!");
    return 1;
    }
    }
    return SendClientMessage(playerid, error, "Du bist in keinem Fahrzeug.");
    }
    else if(response ==0)
    {
    buytcar[playerid] = false;
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid, error, "Du hast den Vorgang abgebrochen!");
    }
    }


    MySQL Log
    [14:28:36] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE Cars SET Besitzer = 'Niemand',ModelID = '506', PosX = '-1944.176513', PosY = '266.577911', PosZ = '35.150806', PosA = '264.041778', Color1 = '1', Color2 = '1',Preis = '1',Gekauft = '0', Versicherung = '0' WHERE ID = '0'", callback: "(null)", format: "(null)"
    [14:28:36] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [14:28:37] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 1141.587 milliseconds
    [14:28:37] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
    [14:28:40] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE Cars SET Besitzer = 'Niemand',ModelID = '506', PosX = '-1944.176513', PosY = '266.577911', PosZ = '35.150806', PosA = '264.041778', Color1 = '1', Color2 = '1',Preis = '1',Gekauft = '0', Versicherung = '0' WHERE ID = '0'", callback: "(null)", format: "(null)"
    [14:28:40] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [14:28:41] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 1129.50 milliseconds
    [14:28:41] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving

    Da ja nur noch 1 Fahrzeug von eigentlich 4 gespeichert werden(3 Kaufbare, 1 gekauftes)


    Und wenn ich keins Kaufe, wird halt trotzdem nur noch 1 gespeichert.

    SaveCarCheck
    stock SaveCarCheck(vehicleid)
    {
    new query[256];
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] == vehicleid)
    {
    if(CarInfo[i][c_Gekauft] == 0) {
    GetVehiclePos(CarInfo[i][c_vID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z]);
    GetVehicleZAngle(CarInfo[i][c_vID], CarInfo[i][c_a]);
    format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d', Versicherung = '%d' WHERE ID = '%d'",
    CarInfo[i][Besitzer],CarInfo[i][modelID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z], CarInfo[i][c_a], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft], CarInfo[i][c_Versicherung], i);
    mysql_tquery(handle, query);
    }
    else if(CarInfo[i][c_Gekauft] == 1) {
    new Float:VehPos[4];
    GetVehiclePos(CarInfo[i][c_vID],VehPos[0],VehPos[1],VehPos[2]);
    GetVehicleZAngle(CarInfo[i][c_vID], VehPos[3]);
    format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d',Versicherung = '%d' WHERE ID = '%d'",
    CarInfo[i][Besitzer],CarInfo[i][modelID], VehPos[0], VehPos[1], VehPos[2], VehPos[3], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft],CarInfo[i][c_Versicherung], i);
    mysql_tquery(handle, query);
    }
    return 1;
    }
    }
    return 0;
    }


    Jeffry:


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Debugge das Speichern mal so und poste dann was im Log, wenn du deine Fahrzeuge speicherst und es nicht geht:

    Spoiler anzeigen
    forward SaveAllCars();
    public SaveAllCars()
    {
    printf("Starte SaveAllCars");
    new query[512];
    for(new i=0; i<MAX_AUTOS; i++)
    {
    printf("i: %d | Model: %d | Besitzer: %s", i, CarInfo[i][modelID], CarInfo[i][Besitzer]);
    if(CarInfo[i][modelID] >= 400 && CarInfo[i][modelID] <= 611)
    {
    printf("Gekauft: %d", CarInfo[i][c_Gekauft]);
    if(CarInfo[i][c_Gekauft] == 0)
    {
    GetVehiclePos(CarInfo[i][c_vID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z]);
    GetVehicleZAngle(CarInfo[i][c_vID], CarInfo[i][c_a]);
    format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d', Versicherung = '%d' WHERE ID = '%d'",
    CarInfo[i][Besitzer],CarInfo[i][modelID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z], CarInfo[i][c_a], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft], CarInfo[i][c_Versicherung], i);
    mysql_tquery(handle, query);
    printf("query: %s", query);
    SendClientMessageToAll(info, "Nicht gekauft Autos wurden gespeichert!");
    }
    if(CarInfo[i][c_Gekauft] == 1)
    {
    new Float:VehPos[4];
    GetVehiclePos(CarInfo[i][c_vID],VehPos[0],VehPos[1],VehPos[2]);
    GetVehicleZAngle(CarInfo[i][c_vID], VehPos[3]);
    format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d', Versicherung = '%d' WHERE ID = '%d'",
    CarInfo[i][Besitzer],CarInfo[i][modelID], VehPos[0], VehPos[1], VehPos[2], VehPos[3], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft],CarInfo[i][c_Versicherung], i);
    mysql_tquery(handle, query);
    printf("query: %s", query);
    SendClientMessageToAll(info, "Gekaufte Autos wurden gespeichert!");
    }
    }
    }
    SendClientMessageToAll(info, "Alle Fahrzeuge wurden gespeichert!");
    printf("Fertig.");
    return 1;
    }

  • MySQL:

    SQL
    [15:26:03] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called[15:26:12] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE Cars SET Besitzer = 'Niemand',ModelID = '412', PosX = '-1989.932373', PosY = '263.207916', PosZ = '36.216743', PosA = '270.217132', Color1 = '1', Color2 = '1',Preis = '1',Gekauft  = '0', Versicherung = '0' WHERE ID = '0'", callback: "(null)", format: "(null)"[15:26:12] [DEBUG] CMySQLQuery::Execute[] - starting query execution[15:26:12] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 161.951 milliseconds[15:26:12] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving


    Server:

    SQL
    [15:26:12] Starte SaveAllCars[15:26:12] i: 0 | Model: 412 | Besitzer: Niemand[15:26:12] Gekauft: 0[15:26:12] query: UPDATE Cars SET Besitzer = 'Niemand',ModelID = '412', PosX = '-1989.932373', PosY = '263.207916', PosZ = '36.216743', PosA = '270.217132', Color1 = '1', Color2 = '1',Preis = '1',Gekauft  = '0', Versicherung = '0' WHERE ID = '0'[15:26:12] i: 1 | Model: 0 | Besitzer: [15:26:12] i: 2 | Model: 0 | Besitzer: [15:26:12] i: 3 | Model: 0 | Besitzer: [15:26:12] i: 4 | Model: 0 | Besitzer: [15:26:12] i: 5 | Model: 0 | Besitzer: [15:26:12] i: 6 | Model: 0 | Besitzer: [15:26:12] i: 7 | Model: 0 | Besitzer: [15:26:12] i: 8 | Model: 0 | Besitzer: [15:26:12] i: 9 | Model: 0 | Besitzer: [15:26:12] Fertig.


    Und wie gesagt jetzt ist es wieder genau so, dass aufeinmal 2 Fahrzeuge übereinander spawnen.
    Das was über dem anderen Spawnt hat dann auch die ModelID, also wird einfach sozusagen kopiert.


    Wie kann das möglich sein 8|


    Jeffry:


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Lädst du die Fahrzeuge möglicherweise doppelt?
    Also laut dem Log stimmt beim Speichern alles, es wird genau das eine existierende Fahrzeug gespeichert.


    Hast du auch nur das eine Fahrzeug in der Datenbank, oder warum speichert es nur eins?

  • Nene ich habe 4 drin.
    Es wird beim erstellen noch gespeichert doch nach einem gmx wird nur noch 1 gespeichert :/
    Und ich lasse sie nur 1x laden :/



    Jeffry:


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

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