Gangautohaus 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
  • Guten Nacht/Morgen.


    Ich habe mal ein Gangautohaus geschrieben es geht auch alles aber wenn ich beim Kaufen loadFraktionCars mache und ich 2 Fahrzeuge kaufe wird das erst 2 mal erstellt ;( bitte um hilfe hir dir codes:


    OnDialog:


    Spoiler anzeigen
    case DIALOG_BUYFRAKTIONSCAR: {
    if(response) {
    for(new idx = 0; idx < sizeof(FraktionCar); idx ++) {
    for(new buycar=0; buycar < sizeof(frakcarhouse); buycar ++) {
    if(GetPlayerVehicleID(playerid) == frakcarhouse[buycar][CarID]) {
    if(P_GetPlayerMoney(playerid) >= frakcarhouse[buycar][CarPreis]) {
    new query[500];
    format(query, sizeof(query), "INSERT INTO `fraktionscars` (`FraktionsID`, `ModelID`, `FahrzeugName`, `X`,`Y`, `Z`, `A`, `Color1`, `Color2`) VALUES ('%d', '%d', '%s', '%f', '%f', '%f', '%f', '%d', '%d')",
    PlayerInfo[playerid][fLeader],frakcarhouse[buycar][ModelID],frakcarhouse[buycar][CarName],frakcarhouse[buycar][fsX],frakcarhouse[buycar][fsY],frakcarhouse[buycar][fsZ],frakcarhouse[buycar][fsA],FraktionsCarColor(playerid),FraktionsCarColor(playerid));
    mysql_query(query);
    GivePlayerMoney(playerid,-frakcarhouse[buycar][CarPreis]);
    SendClientMessage(playerid, COLOR_GREEN, "Mit /fpark kannst du das Fraktion Fahrzeug in deiner base parken so das es immer wieder dort Spawnt.");
    SendClientMessage(playerid, COLOR_YELLOW, "Das Fraktion Fahrzeug steht am Ausgabepunkt bereit! Viel Spaß beim Fahren!");
    SetPlayerCheckpoint(playerid,frakcarhouse[buycar][fsX],frakcarhouse[buycar][fsY],frakcarhouse[buycar][fsZ],5.0);
    FraktionCar[idx][fCarid] = CreateVehicle(frakcarhouse[buycar][ModelID],frakcarhouse[buycar][fsX],frakcarhouse[buycar][fsY],frakcarhouse[buycar][fsZ],frakcarhouse[buycar][fsA],FraktionsCarColor(playerid),FraktionsCarColor(playerid),-1);
    return 1;
    }else return SendClientMessage(playerid, COLOR_LIGHTRED, " Du besitzt nicht genügent geld für dieses Fahrzeug.!");
    }
    }
    }
    }
    }


    und der stock:


    Spoiler anzeigen
    Function LoadFraktionCars()
    {
    new idx=0;
    mysql_query( "SELECT * FROM `fraktionscars`");
    mysql_store_result();
    while(mysql_retrieve_row())//lauf durch alle zeilen durch
    {
    new tmp[128];
    mysql_fetch_field_row(tmp, "ModelID");
    FraktionCar[idx][VehID] = strval(tmp);
    if(FraktionCar[idx][VehID] < 400) {
    break;//continue;
    }
    mysql_fetch_field_row(tmp, "X");
    FraktionCar[idx][Pos][0] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "Y");
    FraktionCar[idx][Pos][1] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "Z");
    FraktionCar[idx][Pos][2] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "A");
    FraktionCar[idx][Pos][3] = floatstr(tmp);
    mysql_fetch_field_row(tmp, "Color1");
    FraktionCar[idx][Color][0] = strval(tmp);
    mysql_fetch_field_row(tmp, "Color2");
    FraktionCar[idx][Color][1] = strval(tmp);
    mysql_fetch_field_row(tmp, "FraktionsID");
    FraktionCar[idx][FraktionsID] = strval(tmp);
    FraktionCar[idx][fCarid] = CreateVehicle(FraktionCar[idx][VehID],FraktionCar[idx][Pos][0],FraktionCar[idx][Pos][1],FraktionCar[idx][Pos][2],FraktionCar[idx][Pos][3],FraktionCar[idx][Color][0],FraktionCar[idx][Color][1],-1);
    idx++;
    }
    mysql_free_result();
    return printf("* Es wurden %i Fraktions-Fahrzeuge geladen & erstellt. *", idx);
    }


    ich hoffe mir kann jemand helfen

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • Achsoooo
    Hatte die Frage bissl falsch verstanden ;)


    Du musst in der Schleife
    for(new idx = 0; idx < sizeof(FraktionCar); idx ++) {
    Auch überprüfen ob diese ID schon belegt ist


    am einfachsten:
    Ongamemodeinit
    for new blub max_fraccars
    FraktionCar[blub][fCarid] = INVALID_VEHICLE_ID;


    dann unter der Schleife
    for(new idx = 0; idx < sizeof(FraktionCar); idx ++) {
    eine if Abfrage
    if ( FraktionCar[idx][fCarid] == INVALID_VEHICLE_ID )


    Gruß


    Achja zum laden musst du die noch in die Tabelle schreiben

    ik bin der vito c: