Beiträge von ENEF

    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

    Soweit passt alles.


    Vielen dank Jeffry!


    Sobald ich irgendwas neues habe, oder Hilfe brauche Editiere ich den Beitrag.


    Bis dahin Erledigt!


    Mit freundlichen Grüßen


    //Edit:
    Es ist mir gerade aufgefallen, dass das Fahrzeug mit ID 0 nie gelöscht wird, weder bei Deletecar oder bei OnVehicleDeath.


    Erstelle ich ein neues, wird dieses dann bsp. wenn es zerstört wird gelöscht aber ID 0 bleibt.
    hier mal bsp. mein /Deletecar:

    Spoiler anzeigen
    ocmd:deletecar(playerid, params[])
    {
    new vid = GetPlayerVehicleID(playerid);
    //if(sscanf(params,"d",vid)) return SendClientMessage(playerid, error, "Nutze: /ffloeschen [Vehicle ID]");
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] == vid)
    {
    format(CarInfo[i][Besitzer], 34, "");
    CarInfo[i][modelID] = 0;
    CarInfo[i][c_x] = 0.0;
    CarInfo[i][c_y] = 0.0;
    CarInfo[i][c_z] = 0.0;
    CarInfo[i][c_a] = 0.0;
    CarInfo[i][c_color1] = 0;
    CarInfo[i][c_color2] = 0;
    CarInfo[i][c_Preis] = -1;
    CarInfo[i][c_Gekauft] = -1;
    new query[128];
    format(query, sizeof(query), "DELETE FROM Cars WHERE ID = '%d'", i);
    mysql_tquery(handle, query);
    DestroyVehicle(CarInfo[i][c_vID]);
    CarInfo[i][c_vID] = 0;
    return SendClientMessage(playerid, info, "Fahrzeug gelöscht.");
    }
    }
    return SendClientMessage(playerid, error, "Vehicle-ID ist kein Fraktions-Fahrzeug.");
    } Jeffry:


    Und genau so lösch ich die Autos bei OnVehicleDeath



    Mit freundlichen Grüßen

    Hallo,


    wie du siehst fühlt sich keiner wirklich von deiner Anfrage angesprochen.
    Du solltest sie noch einmal ändern wenn du mit deiner Suche Erfolg haben möchtest.
    Mein Tipp:


    • Mehr Informationen zu deinem momentanen Team
    • Informationen zum Script(falls vorhanden)
    • Euer Forum
    • Gegenleistung
    • ...Uvm


    Ich finde wer ein Projekt starten möchte, muss sich auch Zeit für die Vorstellung oder für die Anfrage auf Teammitglieder Zeit nehmen!


    Mit freundlichen Grüßen

    uppss.. Danke :whistling:


    Die Log sagt jetzt:

    SQL
    [19:59:46] RCON (In-Game): Player #0 (iCarus) has logged in.[19:59:48] RCON (In-Game): Player [iCarus] sent command: gmx[19:59:48] query: UPDATE accounts SET Name = 'iCarus', Level = '6', Geld = '628037', Kills = '0', Tode = '15', Admin = '6', Banned = '0', Leader = '1', Member = '0', Team = '1', Rank = '6', Duty = '0', Skin = '303', Health = '0.000000', xKord = '-1986.960937', yKord = '140.376754', zKord = '27.539062', Interior = '0', Carlic = '0', Bikelic = '0', Flylic = '0', Bootlic = '0', LKWlic = '0', Konto = '1', Kontostand = '313675', Beantragt = '0', Pin = '1229', Kontonummer = '2006', Abholen = '0', `Alter` = '18', Geschlecht = 'Maennlich', Levelpunkte = '19', Payday = '5', Herkunft = 'Baden-Wuerttemberg', Verheiratetmit = 'Niemand', Telefonnummer = '0', Tutorial = '1', Dutyskin = '283', Tot = '0', Totskin = '162', Wanteds = '0', Knast = '0', Knastzeit = '-1428515988', KnastzeitBis = '0', Knastskin = '0', Sterne = '0', Verbrechen = '0', wTot = '0', Inhaftiert = '0', tWerbung = '1', Perso = '1', Persobereit = '2', vWelt = '0', Premium = '1', Premzeit = '0', Togooc = '0', Job = '0' WHERE Name = 'iCarus'[19:59:48] Starte SaveAllCars[19:59:48] i: 0 | Model: 0[19:59:48] i: 1 | Model: 560[19:59:48] Gekauft: 1[19:59:48] query: UPDATE Cars SET Besitzer = 'iCarus',ModelID = '560', PosX = '-1985.284545', PosY = '140.771575', PosZ = '27.392204', PosA = '0.643158', Color1 = '1', Color2 = '1',Preis = '1',Gekauft  = '1' WHERE ID = '1'[19:59:48] i: 2 | Model: 560[19:59:48] Gekauft: 0[19:59:48] query: UPDATE Cars SET Besitzer = 'Niemand',ModelID = '560', PosX = '-1991.910034', PosY = '127.962997', PosZ = '27.250600', PosA = '8.880020', Color1 = '1', Color2 = '1',Preis = '1',Gekauft  = '0' WHERE ID = '2'[19:59:48] i: 3 | Model: 560[19:59:48] Gekauft: 0[19:59:48] query: UPDATE Cars SET Besitzer = 'Niemand',ModelID = '560', PosX = '-1991.657348', PosY = '143.926788', PosZ = '27.243560', PosA = '332.910919', Color1 = '1', Color2 = '1',Preis = '1',Gekauft  = '0' WHERE ID = '3'[19:59:48] i: 4 | Model: 0[19:59:48] i: 5 | Model: 0[19:59:48] i: 6 | Model: 0[19:59:48] i: 7 | Model: 0[19:59:48] i: 8 | Model: 0[19:59:48] i: 9 | Model: 0[19:59:48] Fertig.


    So, jetzt kurz zum /buycar, ich kann ein Auto zwar kaufen, irgendwie wird es halt erst nach einem GMX in der Datenbank eingetragen, egal aufjedenfall bekomm ich die Nachricht:
    Dieses Auto steht nicht zum Verkauf
    Und trotzdem noch die Nachricht das ich es gekauft habe.
    Soll ja so sein das wenn dieses Auto kein Kaufauto ist soll es diese Nachricht zeigen oder wenn es schon jemand gehört


    Spoiler anzeigen
    ocmd:buycar(playerid, params[])
    { //if(CarInfo[i][c_vID] != 0)continue;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, error, "Du bist in keinem Fahrzeug");
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(SpielerInfo[playerid][pGeld] < CarInfo[i][c_Preis]) return SendClientMessage(playerid, error, "Du hast nicht genug Geld!");
    if(CarInfo[i][c_Gekauft] == 0)
    {
    format(CarInfo[i][Besitzer], 34, "%s",SpielerName(playerid));
    CarInfo[i][c_Gekauft] = 1;
    GivePlayerMoney(playerid, -CarInfo[i][c_Preis]);
    break;
    }
    else {
    SendClientMessage(playerid, error, "Dieses Auto steht nicht zum Verkauf!");
    }
    }
    SendClientMessage(playerid, erfolg, "Herzlichen Glückwunsch, du hast dieses Auto gekauft!");
    return 1;
    }


    Mit freundlichen Grüßen

    Hi,


    gespeichert wird alles so wie es aussieht 8|


    SQL
    [19:48:58] Starte SaveAllCars[19:48:58] i: 0 | Model: 1[19:48:58] i: 1 | Model: 2[19:48:58] i: 2 | Model: 3[19:48:58] i: 3 | Model: 4[19:48:58] i: 4 | Model: 5[19:48:58] i: 5 | Model: 0[19:48:58] i: 6 | Model: 0[19:48:58] i: 7 | Model: 0[19:48:58] i: 8 | Model: 0[19:48:58] i: 9 | Model: 0[19:48:58] Fertig.


    Ist Model nicht eigentlich bsp Infernus 411?


    Jeffry:


    Mit freundlichen Grüßen

    Hi Jeffry:


    Also den Code zum Laden:


    LoadCars_Data
    forward LoadCars_Data();
    public LoadCars_Data()
    {

    LoadCars_Data
    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");

    LoadCars_Data
    if(CarInfo[i][modelID] >= 400 && CarInfo[i][modelID] <= 611)
    {
    new text[64];
    CarInfo[i][modelID] = 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.");

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


    Createcar
    ocmd:createcar(playerid, params[])
    {
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return SendClientMessage(playerid, error, "Es können keine weiteren Fahrzeuge erstellt werden, Limit (MAX_AUTOS) erreicht.");
    new model, color1 = -1, color2 = -1, cPreis;
    if(sscanf(params,"dddd",model,color1, color2,cPreis))return SendClientMessage(playerid,info,"/Createcar [Modellid] [Farbe1] [Farbe2] [Preis]");
    if(model < 400 || model > 611) return SendClientMessage(playerid, error, "Model ID existiert nicht.");
    if(SpielerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, error, "Du bist kein Admin!");
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] == 0)
    {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    format(CarInfo[i][Besitzer], 34, "Niemand");
    CarInfo[i][modelID] = model;
    CarInfo[i][c_x] = x;
    CarInfo[i][c_y] = y;
    CarInfo[i][c_z] = z;
    CarInfo[i][c_a] = a;
    CarInfo[i][c_color1] = color1;
    CarInfo[i][c_color2] = color2;
    CarInfo[i][c_Preis] = cPreis;
    CarInfo[i][c_Gekauft] = 0;

    Createcar
    new query[256];
    format(query, sizeof(query), "INSERT INTO Cars (ID, Besitzer, ModelID, PosX, PosY, PosZ, PosA, Color1, Color2, Preis, Gekauft) VALUES ('%d','%s', '%d', '%f', '%f', '%f', '%f', '%d', '%d','%d','%d')",
    i, 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]);
    mysql_tquery(handle, query);
    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);
    PutPlayerInVehicle(playerid, CarInfo[i][c_vID], 0);
    SaveAllCars();
    return SendClientMessage(playerid, erfolg, "Fahrzeug gespeichert.");
    }
    }
    return SendClientMessage(playerid, error, "Limit für Fraktions-Fahrzeuge erreicht.");
    }


    Irgendwie werden glaub ich einfach die ID's getauscht so dass das Auto kein Kaufbares Auto mehr ist, deswegen wird es bestimmt nicht mehr richtig gespeichert und man kann es ja auch nicht mehr Löschen/Parken..


    Mit freundlichen Grüßen

    Hallo Jeffry: , danke für deine Antwort.


    Fangen wir jetzt erstmal damit an, dass die Positionen des Fahrzeuges nur gespeichert wird, wenn man in der Sitzung(Ich mache /Createcar... dann funktioniert alles, nach einem GMX geht nichts mehr) gesavet wird.
    Wie du ja gelesen hast, hab ich es so gemacht das bei gekauften Autos die letzte Postion gespeichert werden soll und bei einem kaufbaren Auto die Postion immer gleich bleiben soll, also da wo ich zuletzt /carpark gemacht habe:


    Spoiler anzeigen
    forward SaveAllCars();
    public SaveAllCars()
    {
    new query[512];
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][modelID] >= 400 && CarInfo[i][modelID] <= 611)
    {
    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' 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], 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' 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], i);
    mysql_tquery(handle, query);
    SendClientMessageToAll(info, "Gekaufte Autos wurden gespeichert!");
    }
    printf("query: %s", query);
    /*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' 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], i);
    */
    }
    }
    SendClientMessageToAll(info, "Alle Fahrzeuge wurden gespeichert!");
    return 1;
    }


    SaveAllCars wird jede Minute bei OnGameModeInit aufgerufen.


    Sollte ich nicht eigentlich 2 Nachrichten bekommen? ich bekomme ja immer nur "Alle Fahrzeuge gespeichert" obwohl eigentlich garnichts gespeichert wurde.


    Mit freundlichen Grüßen

    Poste mal die jeweiligen Zeilen wo die Errors kommen.
    C:\Users\rAuL\Desktop\Test\gamemodes\CnR.pwn(973) : error 021: symbol already defined: "mysql_GetInt"
    C:\Users\rAuL\Desktop\Test\gamemodes\CnR.pwn(1323) : warning 203: symbol is never used: "MySQLConnection"
    C:\Users\rAuL\Desktop\Test\gamemodes\CnR.pwn(1323) : warning 203: symbol is never used: "Textdraw2"


    mysql_GetInt ist schon definiert, MySQLConnection wird nicht benutzen genau so wie Textdraw2(Definiert aber wird nirgens verwendet)


    Mit freundlichen Grüßen

    So wie ich das sehe wird der dort rotiert.
    Musste einfach einen Timer starten wenn du beginnst, Abfragen vor welchem Baum er steht und ob er die Taste gedrückt hält und somit dann halt immer ein Stück weiter rotieren.



    Mit freundlichen Grüßen

    Meinste jetzt bei "Createcar"?
    Das war so richtig, hatte nur einen kleinen Fehler drinne :D


    Aber Danke dir trotzdem, wollte es grad editieren ^^


    Mit freundlichen Grüßen

    Tust du "SpielerSpeichern" auch nachm Registrieren aufrufen?
    Wahrscheinlich speichert er nach dem Register das Passwort und beim Ausloggen wird dann SpielerSpeichern aufgerufen.


    Zeig mal den Code..


    Mit freundlichen Grüßen

    Da sammeln sich wieder neue Probleme.


    Diesmal gibt er mir beim Createcar die Fehlermeldung "Limit für Fraktionsfahrzeuge erreicht!"


    Zweitens, bei meinem Speicher Public wird es so gemacht:


    Ist ein Auto gekauft, spawnt es an seinem letzten Punkt, die Koordinaten werden also gespeichert.
    Ist es nicht gekauft spawnt es da wo der Admin /Carpark gemacht hat.


    Dazu hab ich den Save so gemacht:


    Spoiler anzeigen
    forward SaveAllCars();
    public SaveAllCars()
    {
    new query[512];
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][modelID] >= 400 && CarInfo[i][modelID] <= 611)
    {
    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' 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], i);
    mysql_tquery(handle, query);
    SendClientMessageToAll(info, "Nicht gekauft Autos wurden gespeichert!");
    }
    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' 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], i);
    mysql_tquery(handle, query);
    SendClientMessageToAll(info, "Gekaufte Autos wurden gespeichert!");
    }
    printf("query: %s", query);
    /*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' 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], i);
    */
    }
    }
    SendClientMessageToAll(info, "Alle Fahrzeuge wurden gespeichert!");
    return 1;
    }


    Jedoch wird es nur so gespeichert wenn ich bsp ein neues Auto erstelle und das dann Parke.
    Dann bekomme ich die Nachrichten (Jenachdem ob ich es gekauft habe oder nicht)


    falls gekauft: SendClientMessageToAll(info, "Gekaufte Autos wurden gespeichert!");
    falls nicht; SendClientMessageToAll(info, "Nicht gekauft Autos wurden gespeichert!");


    + SendClientMessageToAll(info, "Alle Fahrzeuge wurden gespeichert!");


    Hab ich mehrere Fahrzeuge(jetzt nicht mehr möglich da die Fehlermeldung oben kommt) gekauft kommen dann halt beide + Alle fahrzeuge gespeichert.


    Das soll ja nicht so sein, es sollen immer alle gespeichert werden muss ich dann das else weg lassen?
    Weil wenn ich eins gekauft habe und eins nicht, wird entweder nur das nicht gekaufte gespeichert, das gekaufte oder "Alle fahrzeuge gespeichert" aber es wird im endeffekt nichts gesavet.
    Sorry wenn ich schlecht erkläre.


    Noch dazu:
    Nach einem GMX kann ich keine Fahrzeuge mehr löschen / Parken oder sonstiges da kommt immer die Meldung
    if(vid <= 0) return SendClientMessage(playerid, error, "Vehicle-ID ist kein kaufbares Auto.");
    oder
    SendClientMessage(playerid, error, "Dieses Fahrzeug kann nicht geparkt werden.");

    Spoiler anzeigen


    ocmd:deletecar(playerid, params[])
    {
    new vid = GetPlayerVehicleID(playerid);
    //if(sscanf(params,"d",vid)) return SendClientMessage(playerid, error, "Nutze: /ffloeschen [Vehicle ID]");
    if(vid <= 0) return SendClientMessage(playerid, error, "Vehicle-ID ist kein kaufbares Auto.");
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] == vid)
    {
    format(CarInfo[i][Besitzer], 34, "");
    CarInfo[i][modelID] = 0;
    CarInfo[i][c_x] = 0.0;
    CarInfo[i][c_y] = 0.0;
    CarInfo[i][c_z] = 0.0;
    CarInfo[i][c_a] = 0.0;
    CarInfo[i][c_color1] = 0;
    CarInfo[i][c_color2] = 0;
    CarInfo[i][c_Preis] = -1;
    CarInfo[i][c_Gekauft] = -1;
    new query[128];
    format(query, sizeof(query), "DELETE FROM Cars WHERE ID = '%d'", i);
    mysql_tquery(handle, query);
    DestroyVehicle(CarInfo[i][c_vID]);
    CarInfo[i][c_vID] = 0;
    return SendClientMessage(playerid, info, "Fahrzeug gelöscht.");
    }
    }
    return SendClientMessage(playerid, error, "Vehicle-ID ist kein Fraktions-Fahrzeug.");
    }
    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.");
    else return SendClientMessage(playerid, error, "Dieses Fahrzeug kann nicht geparkt werden.");
    }


    Und das ist ziemlich komisch.


    Jeffry:


    Jetzt bist du gefragt, diesmal hab ich mich sehr stark an deinem Tutorial orientiert ^^


    Mit freundlichen Grüßen

    Guten Tag leute.


    Ich melde mich mit ein paar kleinen Problemen.
    Bin gerade dabei mit Jeffrys Tutorial ein Autohaus zu erstellen.
    Klapt eigentlich alles sehr gut, jedoch hab ich ein paar Problemchen.



    Zu Problem 1:
    Hier beim createcar Befehl sagt er immer das MAX_AUTOS schon erreicht wäre, obwohl es auf 10 gestellt ist und noch garkein Auto existiert.

    Spoiler anzeigen
    ocmd:createcar(playerid, params[])
    {
    // if(GetVehicleModel(MAX_AUTOS-1) != 0) return SendClientMessage(playerid, error, "Es können keine weiteren Fahrzeuge erstellt werden, Limit (MAX_AUTOS) erreicht.");
    new model, color1 = -1, color2 = -1, cPreis;
    if(sscanf(params,"dddd",model,color1, color2,cPreis))return SendClientMessage(playerid,info,"/Createcar [Modellid] [Farbe1] [Farbe2] [Preis]");
    if(model < 400 || model > 611) return SendClientMessage(playerid, error, "Model ID existiert nicht.");
    if(SpielerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, error, "Du bist kein Admin!");
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] == 0)
    {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    format(CarInfo[i][Besitzer], 34, "Niemand");
    CarInfo[i][modelID] = model;
    CarInfo[i][c_x] = x;
    CarInfo[i][c_y] = y;
    CarInfo[i][c_z] = z;
    CarInfo[i][c_a] = a;
    CarInfo[i][c_color1] = color1;
    CarInfo[i][c_color2] = color2;
    CarInfo[i][c_Preis] = cPreis;

    Spoiler anzeigen
    new query[256];
    format(query, sizeof(query), "INSERT INTO Cars (ID, Besitzer, ModelID, PosX, PosY, PosZ, PosA, Color1, Color2, Preis) VALUES ('%s','%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d','%d')",
    i, 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]);
    mysql_tquery(handle, query);
    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);
    PutPlayerInVehicle(playerid, CarInfo[i][c_vID], 0);
    return SendClientMessage(playerid, erfolg, "Fahrzeug gespeichert.");
    }
    }
    return SendClientMessage(playerid, error, "Limit für Fraktions-Fahrzeuge erreicht.");
    }



    //Edit: Selbst gefixxt! Nurnoch der Createcar buggt ;)
    Das war es erstmal ^^
    Jeffry:


    Mit freundlichen Grüßen

    Hi,


    ich weiß nicht ob das der Fehler ist aber du kannst es mal versuchen.
    Oben hast du Name so definiert "name" aber verwendest es immer "NAME"
    Änder das mal, vielleicht hilft es ja ^^



    Mit freundlichen Grüßen


    //Edit:


    Und übrigens musst du es so machen ^^
    new pID,reason[64],string[144],punkte,name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name, sizeof(name));