Mit Enum erstellte Fahrzeuge mit IDs/Variablen belegen

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 Forum!
    Würde gerne 2 Variablen auf meine mit Enum erstellten Fahrzeuge legen.
    Allerdings spacken die Fahrzeuge/Abfragen extremst rum und das eine Taxi funktioniert mit jeder Fraktion und das nächste nur wenn man in Frak x und in Job y ist.
    Code:

    stock LoadCars()
    {
    for(new i=0;i<sizeof(vInfo);i++)
    {
    SetVehicleNumberPlate(AddStaticVehicle(vInfo[i][v_model],vInfo[i][v_x],vInfo[i][v_y],vInfo[i][v_z],vInfo[i][v_r],vInfo[i][v_color1],vInfo[i][v_color2]),vInfo[i][v_numberplate]);
    Veh_Frak[i] = vInfo[i][v_Frak];
    Veh_Job[i] = vInfo[i][v_Job];
    cars++;
    }
    }


    {0,2,420,2065.6611,-1904.2598,13.3268,180.7632,6,6,"LS-TD 01"},
    {0,2,420,2062.2744,-1904.0479,13.3250,180.2793,6,6,"LS-TD 02"},
    {0,2,420,2059.1790,-1904.2069,13.3256,180.6637,6,6,"LS-TD 03"},
    {0,2,420,2055.9187,-1904.2354,13.3266,180.0234,6,6,"LS-TD 04"},
    {0,2,420,2052.5586,-1904.2544,13.3257,180.1285,6,6,"LS-TD 05"},
    {0,2,420,2065.4082,-1919.2643,13.3263,359.6339,6,6,"LS-TD 06"},
    {0,2,420,2062.3108,-1919.2400,13.3257,359.1778,6,6,"LS-TD 07"}


    enum vehicles
    {
    v_Frak,
    v_Job,
    v_model,
    Float:v_x,
    Float:v_y,
    Float:v_z,
    Float:v_r,
    v_color1,
    v_color2,
    v_numberplate[24]
    };


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(pInfo[playerid][pFrak]!=Veh_Frak[GetPlayerVehicleID(playerid)])
    {
    ERROR_RESTRICTED_CAR
    RemovePlayerFromVehicle(playerid);
    }
    if(pInfo[playerid][pJob]!=Veh_Job[GetPlayerVehicleID(playerid)])
    {
    ERROR_RESTRICTED_CAR
    RemovePlayerFromVehicle(playerid);
    }
    }
    }

    Hoffe mir kann da jemand helfen.

  • Das ganze funktioniert nur, wenn du zuerst nur diese autos erstellen lässt, da die ID Vergabe bei den Autos nach einem Slotsystem geht.
    Du kannst auch auf eine nummer sicher gehen und die Fahrzeugid auch noch speichern.



    ahja
    Veh_Frak[i] = vInfo[i][v_Frak];
    Veh_Job[i] = vInfo[i][v_Job];
    brauchst du nichtmal das hast du schon alles in deinem array vInfo enthalten

  • Kann dem nicht ganz folgen..

    Ganz einfach die Abfrage wird nicht funktionieren wenn du vor dem Funktion aufruf von LoadCars Fahrzeuge erstellst.


    Was ist damit gemeint ?



    public OnGameModeInit() {
    CreateVehicle(560,0.0,0.0,0.0,0.0,1,1,-1);
    LoadCars();
    ...


    wenn du in das Auto, in den Sultan einsteigst gelten die Daten des Index 0 deines Arrays obwohl der nix mit den Fraktionsautos zu tun hat.
    Das wird wahrscheinlich dein Problem sein.