Probleme beim Autosystem

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 Abend,


    ich hab folgendes Problem:
    Die Fahrzeuge laden alle normal auch mit den Datenbankeinträgen, nur wenn ich z.B. "/motor" mache werden die Werte von Fahrzeug mit der nächst höheren ID genommen,
    Also z.B. sitze ich im Fahrzeug mit der carid 2 aber er lädt aus dem enum die daten für die carid 3.
    Hätte jemand eine Idee woran dies liegen kann bzw. wie ich dies beheben kann?
    Grüße Nico


    Hier lade ich alles

    mysql_function_query(DB01,"SELECT * FROM `autos`",true,"LadeFahrzeuge","");



    enum Fahrzeugdaten
    {
    carID,
    modelID,
    Float:pos_x,
    Float:pos_y,
    Float:pos_z,
    Float:pos_r,
    FarbID1,
    FarbID2,
    Motor,
    Licht,
    Alarm,
    Tuer,
    Motorhaube,
    Kofferraum,
    HP
    }
    new FahrzeugDaten[MAX_VEHICLES][Fahrzeugdaten];


    forward LadeFahrzeuge();
    public LadeFahrzeuge()
    {
    new rows;
    rows = cache_get_row_count();
    if(rows)
    {
    for(new i; i < rows; i++)
    {
    FahrzeugDaten[i][Motor] = cache_get_field_content_int(i,"motor");
    FahrzeugDaten[i][Licht] = cache_get_field_content_int(i,"licht");
    FahrzeugDaten[i][Alarm] = cache_get_field_content_int(i,"alarm");
    FahrzeugDaten[i][Tuer] = cache_get_field_content_int(i,"tuer");
    FahrzeugDaten[i][Motorhaube] = cache_get_field_content_int(i,"motorhaube");
    FahrzeugDaten[i][Kofferraum] = cache_get_field_content_int(i,"kofferraum");
    FahrzeugDaten[i][carID] = CreateVehicle(.........);
    SetVehicleParamsEx(FahrzeugDaten[i][carID],FahrzeugDaten[i][Motor],FahrzeugDaten[i][Licht],FahrzeugDaten[i][Alarm],FahrzeugDaten[i][Tuer],FahrzeugDaten[i][Motorhaube],FahrzeugDaten[i][Kofferraum],0);
    }
    }
    return 1;
    }



    Hier der Befehl

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmd, "/motor", true))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new carid = GetPlayerVehicleID(playerid);
    return carmotor(carid);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Server: Du sitzt nicht auf dem Fahrersitz");
    }
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Server: Du sitzt nicht in einem Fahrzeug!");
    }
    }
    }


    forward carmotor(car);
    public carmotor(car)
    {
    if(FahrzeugDaten[car][Motor] == 0)
    {
    FahrzeugDaten[car][Motor] = 1;
    }
    else
    {
    FahrzeugDaten[car][Motor] = 0;
    }
    SetVehicleParamsEx(FahrzeugDaten[car][carID],FahrzeugDaten[car][Motor],FahrzeugDaten[car][Licht],FahrzeugDaten[car][Alarm],FahrzeugDaten[car][Tuer],FahrzeugDaten[car][Motorhaube],FahrzeugDaten[car][Kofferraum],0);
    return 1;
    }

  • Beitrag von robbi2304 ()

    Dieser Beitrag wurde vom Autor gelöscht ().

  • forward carmotor(car);
    public carmotor(car)
    {
    new _data = INVALID_VEHICLE_ID;
    for(new i; i<MAX_VEHICLES; i++){
    if(FahrzeugDaten[i][carID] != car) continue;
    _data = i;
    break
    }
    if(_data == INVALID_VEHICLE_ID) return false;
    if(FahrzeugDaten[car][Motor] == 0)
    {
    FahrzeugDaten[car][Motor] = 1;
    }
    else
    {
    FahrzeugDaten[car][Motor] = 0;
    }
    SetVehicleParamsEx(FahrzeugDaten[_data][carID],FahrzeugDaten[_data][Motor],FahrzeugDaten[_data][Licht],FahrzeugDaten[_data][Alarm],FahrzeugDaten[_data][Tuer],FahrzeugDaten[_data][Motorhaube],FahrzeugDaten[_data][Kofferraum],0);
    return 1;
    }

    Probier es mal so @Nico_98 :)

  • forward carmotor(car);public carmotor(car){ new _data = INVALID_VEHICLE_ID; for(new i; i<MAX_VEHICLES; i++){ if(FahrzeugDaten[i][carID] != car) continue; _data = i; break } if(_data == INVALID_VEHICLE_ID) return false; if(FahrzeugDaten[car][Motor] == 0) { FahrzeugDaten[car][Motor] = 1; } else { FahrzeugDaten[car][Motor] = 0; } SetVehicleParamsEx(FahrzeugDaten[_data][carID],FahrzeugDaten[_data][Motor],FahrzeugDaten[_data][Licht],FahrzeugDaten[_data][Alarm],FahrzeugDaten[_data][Tuer],FahrzeugDaten[_data][Motorhaube],FahrzeugDaten[_data][Kofferraum],0); return 1;}
    Probier es mal so @Nico_98 :)

    Nein bringt nichts, bekomme jetzt auch ein Server: Unknown Command ausgegeben im Chat
    Die SetVehicleParamsEx bezieht sich immer noch auf das Fahrzeug mit der nächsthöheren ID