Beiträge von ENEF

    Hi Jeffry: sorry das ich dir erst jetzt antworte.
    Der Code vom kauf sieht so aus:


    Spoiler anzeigen
    if(dialogid == DIALOG_BUYCAR)
    {
    if(response == 1)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, error, "Du bist in keinem Fahrzeug");
    new vehicleid = GetPlayerVehicleID(playerid);
    new lable[64];
    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);
    format(lable, sizeof(lable), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",SpielerName(playerid),CarInfo[i][c_Preis], CarInfo[i][c_Preis] / 100);
    Update3DTextLabelText(CarInfo[i][Carlable], 0x0FFF00FF, lable);
    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!");
    }
    }
    return 1;
    }


    Mit freundlichen Grüßen

    Okey ich hab mal alle Autos verkauft und 2 neu gekauft, jetzt bekomm ich die Nachricht das ich kein Auto besitze :o
    Hab schon versucht mit nur 1 Auto, oder mit 2 bei beiden kommt diese Fehlermeldung :/

    Hi Jeffry, erstmal danke für die schnelle Antwort :)


    Leider wird nur das erste Auto angezeigt in meinem fall ein Infernus, trotz das ich noch einen Sultan besitze :)
    In der DB wird der Sultan aber angezeigt und auch ich bin der Besitzer davon.
    Ich habe das aber so gemacht:


    Spoiler anzeigen
    //_______________________________________ Versicherungen _________________________
    if(dialogid == DIALOG_VERSICHERN)
    {
    new string[512];
    if(response == 1)
    {
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(listitem == 0)
    {
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);

    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    format(string, sizeof(string), "%s%s (ID: %d)", PlayerVehicle[CarInfo[i][modelID]-400], id);
    id++;
    }
    if(id == 0) SendClientMessage(playerid, 0xFF0000FF, "Error: Du hast kein Fahrzeug.");
    else ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG1, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    return 1;
    }
    if(listitem == 1)
    {
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);

    Spoiler anzeigen
    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    format(string, sizeof(string), "%s%s (ID: %d)", PlayerVehicle[CarInfo[i][modelID]-400], id);
    id++;
    }
    if(id == 0) SendClientMessage(playerid, 0xFF0000FF, "Error: Du hast kein Fahrzeug.");
    else ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG2, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    return 1;
    }
    if(listitem == 2)
    {
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);

    Spoiler anzeigen
    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    format(string, sizeof(string), "%s%s (ID: %d)", PlayerVehicle[CarInfo[i][modelID]-400], id);
    id++;
    }
    if(id == 0) SendClientMessage(playerid, 0xFF0000FF, "Error: Du hast kein Fahrzeug.");
    else ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG3, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    return 1;
    }
    return 1;
    }
    if(response == 0)
    {
    SendClientMessage(playerid, error, "Du hast den Vorgang abgebrochen.");
    }
    }
    }
    if(dialogid == DIALOG_VERSICHERUNG1)
    {
    if(!response) return 1;
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    if(listitem == id)
    {
    new string[145];
    format(string, sizeof(string), "Du hast dein %s versichert1.", PlayerVehicle[CarInfo[i][modelID]-400]);
    SendClientMessage(playerid, 0xFF0000FF, string);
    CarInfo[i][c_Versicherung] = 1;
    return 1;
    }
    id++;
    }
    }
    return 1;
    }
    if(dialogid == DIALOG_VERSICHERUNG2)
    {
    if(!response) return 1;
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    if(listitem == id)
    {
    new string[145];
    format(string, sizeof(string), "Du hast dein %s versichert2.", PlayerVehicle[CarInfo[i][modelID]-400]);
    SendClientMessage(playerid, 0xFF0000FF, string);
    CarInfo[i][c_Versicherung] = 2;
    return 1;
    }
    id++;
    }
    }
    return 1;
    }
    if(dialogid == DIALOG_VERSICHERUNG3)
    {
    if(!response) return 1;
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    if(listitem == id)
    {
    new string[145];
    format(string, sizeof(string), "Du hast dein %s versichert3.", PlayerVehicle[CarInfo[i][modelID]-400]);
    SendClientMessage(playerid, 0xFF0000FF, string);
    CarInfo[i][c_Versicherung] = 3;
    return 1;
    }
    id++;
    }
    }
    return 1;
    }


    Mit freundlichen Grüßen

    Guten Tag leute, ich bräuchte etwas Hilfe da ich schon seit paar Monaten nicht mehr gescriptet habe(Private Probleme)


    Ich wollte jetzt mein Script weiter ausbauen und hatte damals ein Versicherungssystem für Autos angefangen.
    Ich habe bis jetzt den Dialog schon fertig wo man sich die Art(Teilkasko, Vollkasko, Unlimited Respawn) aussuchen kann.
    Jedoch möchte ich, dass wenn man eins auswählt dann die Datenbank durchsucht wird und die Autos auflistet die man hat und dann halt das jeweilige damit versichern kann.
    bsp:
    Welches Auto möchtest du Versichern?
    - Infernus(ID: %d)
    - Sultan(ID: %d)
    - Infernus(ID:%d)


    das halt nur so viele Listitems kommen, so viele wie man halt auch autos besitzt.


    Da ich jetzt nicht weiss was ihr alles braucht gebe ich euch einfach mal paar sachen:


    Spoiler anzeigen
    enum AutoDaten
    {
    Besitzer[34],
    modelID,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_a,
    c_color1,
    c_color2,
    c_vID,
    c_Preis,
    c_Gekauft,
    c_Versicherung,
    Text3D:Carlable
    };
    new CarInfo[MAX_AUTOS][AutoDaten];


    Hier mal als beispiel der Deletecar befehl


    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.");
    }


    Das ganze System ist mit Hilfe von Jeffry seinem Tutorial entstanden, noch dazu hat er mir bei kleinigkeiten geholfen.



    Mit freundlichen Grüßen


    Pit

    Einfach in deinem enum


    pickup_id


    Und bei deinem createpickup


    pickup_id = createpickup


    Und Bsp beim deletetankstelle Befehl


    destroypickup(pickup_id);


    Sind nur Beispiele.
    Mit Handy geschrieben
    Mit freundlichen Grüßen

    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

    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

    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

    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.");
    }

    /*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

    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

    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

    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

    Du könntest(soweit ich weiß) es einfach so machen:
    enum BaumEnum{
    BModel,
    Float:BX,
    Float:BY,
    Float:BZ,
    Float:BRX,
    Float:BRY,
    Float:BRZ,
    bID
    }


    Und da wo du das Objekt erstellst:
    Bsp!!
    BaumInfo[i][bID] = CreateObject...
    Wenn du es löschen willst
    DestroyObject(BaumInfo[i][bID]);



    Oder du trägst sie einfach hier ein:
    new Baum[][BaumEnum] = {
    {618, -626.19171, -1548.73389, 16.99309, 0.00000, 0.00000, 0.00000, /*ID*/0}


    };


    Aber ich glaube das geht auch mit Methode 1.
    Falls ich was falsch gemacht habe oder es nicht klappen würde soll ein Scripter der es besser weiß bitte korrigieren ^^


    Mit freundlichen Grüßen

    Nope.


    if(newkeys & KEY_YES)
    {
    if(PlayerInfo[playerid][pEingeloggt] < 1 ) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht nutzen, weil du nicht eingeloggt bist.");
    if(IsPlayerInRangeOfPoint(playerid,10,1067.6, 1358.2, 12.5))
    {
    if(PlayerInfo[playerid][pFraktion] == 12)
    {
    MoveObject(Fahrschulgate,1067.6, 1358.2, 2.5,5);
    SendClientMessage(playerid,Gruen,"Das Tor schließt sich in 5 Sekunden wieder!");
    SetTimer("Fahrschulclose",5000,0);
    return 1;
    }
    }
    }


    'KEY_YES' = Taste Z


    Mit freundlichen Grüßen