carrespawn bug + vehicle ID verschiebung vermeiden

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
  • Hallo Com,
    und zwar hab ich das Problem, das wenn ich /carrespawn eingebe der Server abstürzt


    Befehl:

    ocmd:carrespawn(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1337))return SendClientMessage(playerid,ROT,"Du bist kein Admin 1337.");
    {
    new bool:unwanted[CAR_AMOUNT];
    for(new player=0; player<GetMaxPlayers(); player++)
    {
    if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
    }
    for(new car = 0; car <= MAX_VEHICLES; car++)
    {
    if(!unwanted[car])
    {
    SetVehicleToRespawn(car);
    new fID = Fraktioncar[car];
    new ii = FraktioncarMaxCar[car];
    new pID = Spielercar[car];
    if(car == FraktioncarvID[fID][ii])
    {
    DestroyVehicle(FraktioncarvID[fID][ii]);
    LoadFraktionAutoBeiDeath(fID,ii);
    }
    if(car == SpielercarvID[pID][1])
    {
    DestroyVehicle(SpielercarvID[pID][1]);
    LoadPrivatAuto(pID,1);
    }
    if(car == SpielercarvID[pID][2])
    {
    DestroyVehicle(SpielercarvID[pID][2]);
    LoadPrivatAuto(pID,2);
    }
    if(car == SpielercarvID[pID][3])
    {
    DestroyVehicle(SpielercarvID[pID][3]);
    LoadPrivatAuto(pID,3);
    }
    if(car == SpielercarvID[pID][4])
    {
    DestroyVehicle(SpielercarvID[pID][4]);
    LoadPrivatAuto(pID,4);
    }
    }
    }
    new string[128];
    format(string,128,"Admin: %s hat alle unbesetzten Autos zurückgespawnt.",SpielerName(playerid));
    SendClientMessageToAll(GELB,string);
    }
    return 1;
    }


    Zu meiner 2 Frage
    und zwar hab ich gelsen bzw hat mir einer gesagt, das wenn ein Fahrzeug kapput geht, was ich erstellt habe so:
    armycar[]=...
    das es dann zur vID verschiebung kommen kann. Und das dann bei StateChange was anderes aufgerufen wird als vorher. Jetzt meine Frage, wie vermeide ich das bzw gibt es eine Lösung dafür.


    Mit freundlichen Grüßen

  • vehicleids verschieben sich wenn neue Fahrzeuge eingefügt werden.
    Deshalb sollte man am besten mit modelids anstatt vehicleids arbeiten.
    Wenn man aber Variablen für bestimmte Fahrzeuge verwendet und mit denen Arbeitet sind diese fest sofern ich mir das zusammenreimen kann :) .

    KleineHilfe 2.0

  • Ich habe noch nie erlebt, dass sich die VehicleIDs verschieben. Das macht auch keinen Sinn und wäre total unpraktisch. Mir ModelIDs zu arbeiten wird dir nicht gelingen.
    Das Einzige was du machen musst, um Fehler zu vermeiden ist, wenn du ein Vehicle/Objekt/Pickup/etc... Löschst (Destroy...), die dazugehörige Variable zu -1 zu setzen. Dann wirst du keine Probleme mehr haben. Ich hatte damit Probleme, hab die Variablen beim destroyen zu -1 gesetzt, Problem behoben.


    Grundätzlich "verschieben" sich aber IDs nicht, solange der Server läuft.


    Zwecks des Codes:
    Zeig doch bitte noch die LoadFraktionAutoBeiDeath und LoadPrivatAuto Funktionen.

  • Wie kann ich die Variable -1 setzen, weiß ja nicht ob das ein armycar ist oder pdcar.



    stock LoadFraktionAutoBeiDeath(fID,fa)
    {
    new fname50[50],Datei[100];
    switch(fID)
    {
    case 6:{fname50=fraktname6;}
    case 8:{fname50=fraktname8;}
    case 9:{fname50=fraktname9;}
    case 10:{fname50=fraktname10;}
    case 11:{fname50=fraktname11;}
    case 12:{fname50=fraktname12;}
    case 13:{fname50=fraktname13;}
    case 14:{fname50=fraktname14;}
    case 15:{fname50=fraktname15;}
    case 16:{fname50=fraktname16;}
    }
    format(Datei,100,"/FraktionAuto/%s_Auto_%d.ini",fname50,fa);
    if(dini_Exists(Datei))
    {
    faInfo[fID][fa][Model] = dini_Int(Datei,"Model");
    faInfo[fID][fa][HP] = dini_Int(Datei,"HP");
    dini_FloatSet(Datei,"KM",KMAnzeigeF[FraktioncarvID[fID][fa]]);
    faInfo[fID][fa][KM] = dini_Int(Datei,"KM");
    faInfo[fID][fa][Tank] = dini_Int(Datei,"Tank");
    faInfo[fID][fa][PosX] = dini_Int(Datei,"PosX");
    faInfo[fID][fa][PosY] = dini_Int(Datei,"PosY");
    faInfo[fID][fa][PosZ] = dini_Int(Datei,"PosZ");
    faInfo[fID][fa][PosA] = dini_Int(Datei,"PosA");
    faInfo[fID][fa][Farbe1] = dini_Int(Datei,"Farbe1");
    faInfo[fID][fa][Farbe2] = dini_Int(Datei,"Farbe2");
    faInfo[fID][fa][Spoiler] = dini_Int(Datei,"Spoiler");
    faInfo[fID][fa][Wheels] = dini_Int(Datei,"Wheels");
    faInfo[fID][fa][Nitro] = dini_Int(Datei,"Nitro");
    faInfo[fID][fa][Roof] = dini_Int(Datei,"Roof");
    faInfo[fID][fa][Hood] = dini_Int(Datei,"Hood");
    faInfo[fID][fa][Sideskirt] = dini_Int(Datei,"Sideskirt");
    faInfo[fID][fa][Lamps] = dini_Int(Datei,"Lamps");
    faInfo[fID][fa][Exhaust] = dini_Int(Datei,"Exhaust");
    faInfo[fID][fa][Stereo] = dini_Int(Datei,"Stereo");
    faInfo[fID][fa][Hydraulics] = dini_Int(Datei,"Hydraulics");
    faInfo[fID][fa][VentRight] = dini_Int(Datei,"VentRight");
    faInfo[fID][fa][VentLeft] = dini_Int(Datei,"VentLeft");
    faInfo[fID][fa][FrontBumper] = dini_Int(Datei,"FrontBumper");
    faInfo[fID][fa][RearBumper] = dini_Int(Datei,"RearBumper");
    faInfo[fID][fa][Neon] = dini_Int(Datei,"Neon");
    faInfo[fID][fa][Neon_Typ1] = dini_Int(Datei,"Neon_Typ1");
    faInfo[fID][fa][Neon_Typ2] = dini_Int(Datei,"Neon_Typ2");
    new vehicleid = FraktioncarvID[fID][fa];
    new vID = CreateVehicle(dini_Int(Datei,"Model"),dini_Float(Datei,"PosX"),dini_Float(Datei,"PosY"),dini_Float(Datei,"PosZ"),dini_Float(Datei,"PosA"),dini_Int(Datei,"Farbe1"),dini_Int(Datei,"Farbe2"),0);
    KMAnzeigeF[vID] = KMAnzeigeF[vehicleid];
    Fraktioncar[vID] = fID; //fID
    FraktioncarvID[fID][fa] = vID; // vID
    FraktioncarMaxCar[vID] = fa; // NR von Fraktion Autos
    SetVehicleNumberPlate(vID,dini_Get(Datei,"Nummernschild"));
    if(faInfo[fID][fa][Neon] > 0)
    {
    faInfo[fID][fa][Neon_Obj0] = CreateObject(faInfo[fID][fa][Neon_Typ1],0,0,0,0,0,0,0);
    faInfo[fID][fa][Neon_Obj1] = CreateObject(faInfo[fID][fa][Neon_Typ1],0,0,0,0,0,0,0);
    AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj0], FraktioncarvID[fID][fa], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj1], FraktioncarvID[fID][fa], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    if(faInfo[fID][fa][Neon_Typ2] > 0)
    {
    faInfo[fID][fa][Neon_Obj2] = CreateObject(faInfo[fID][fa][Neon_Typ2],0,0,0,0,0,0,0);
    faInfo[fID][fa][Neon_Obj3] = CreateObject(faInfo[fID][fa][Neon_Typ2],0,0,0,0,0,0,0);
    AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj2], FraktioncarvID[fID][fa], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj3], FraktioncarvID[fID][fa], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    }
    if(faInfo[fID][fa][HP] >= 250)
    {
    SetVehicleHealth(vID,faInfo[fID][fa][HP]);
    }
    else SetVehicleHealth(vID,1000.00);
    if(faInfo[fID][fa][Farbe1] >= 0 || faInfo[fID][fa][Farbe2] >= 0)
    {
    ChangeVehicleColor(vID,faInfo[fID][fa][Farbe1],faInfo[fID][fa][Farbe2]);
    }
    if(faInfo[fID][fa][Spoiler] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Spoiler]);
    }
    if(faInfo[fID][fa][Hood] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Hood]);
    }
    if(faInfo[fID][fa][Roof] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Roof]);
    }
    if(faInfo[fID][fa][Sideskirt] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Sideskirt]);
    }
    if(faInfo[fID][fa][Lamps] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Lamps]);
    }
    if(faInfo[fID][fa][Nitro] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Nitro]);
    }
    if(faInfo[fID][fa][Exhaust] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Exhaust]);
    }
    if(faInfo[fID][fa][Wheels] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Wheels]);
    }
    if(faInfo[fID][fa][Stereo] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Stereo]);
    }
    if(faInfo[fID][fa][Hydraulics] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][Hydraulics]);
    }
    if(faInfo[fID][fa][FrontBumper] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][FrontBumper]);
    }
    if(faInfo[fID][fa][RearBumper] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][RearBumper]);
    }
    if(faInfo[fID][fa][VentRight] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][VentRight]);
    }
    if(faInfo[fID][fa][VentLeft] >= 0)
    {
    AddVehicleComponent(vID,faInfo[fID][fa][VentLeft]);
    }
    }
    return 1;
    }


    stock LoadPrivatAuto(playerid,i)
    {
    new pName[MAX_PLAYER_NAME],Autodatei[150];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(Autodatei,150,"/Auto/%s_Auto_%d.txt",pName,i);
    if(dini_Exists(Autodatei))
    {
    new vehicleid = SpielercarvID[playerid][i];
    Autos[playerid][i][Model] = dini_Int(Autodatei,"Model");
    Autos[playerid][i][Tank] = dini_Int(Autodatei,"Tank");
    Autos[playerid][i][HP] = dini_Int(Autodatei,"HP");
    dini_FloatSet(Autodatei,"KM",KMAnzeigeF[vehicleid]);
    Autos[playerid][i][KM] = dini_Int(Autodatei,"KM");
    Autos[playerid][i][Farbe1] = dini_Int(Autodatei,"Farbe1");
    Autos[playerid][i][Farbe2] = dini_Int(Autodatei,"Farbe2");
    Autos[playerid][i][Paintjob] = dini_Int(Autodatei,"Paintjob");
    format(Autos[playerid][i][Nummernschild],16,dini_Get(Autodatei,"Nummernschild"));
    Autos[playerid][i][PosX] = dini_Int(Autodatei,"PosX");
    Autos[playerid][i][PosY] = dini_Int(Autodatei,"PosY");
    Autos[playerid][i][PosZ] = dini_Int(Autodatei,"PosZ");
    Autos[playerid][i][PosA] = dini_Int(Autodatei,"PosA");
    Autos[playerid][i][Abgeschlossen] = dini_Int(Autodatei,"Abgeschlossen");
    Autos[playerid][i][Spoiler] = dini_Int(Autodatei,"Spoiler");
    Autos[playerid][i][Wheels] = dini_Int(Autodatei,"Wheels");
    Autos[playerid][i][Nitro] = dini_Int(Autodatei,"Nitro");
    Autos[playerid][i][Roof] = dini_Int(Autodatei,"Roof");
    Autos[playerid][i][Hood] = dini_Int(Autodatei,"Hood");
    Autos[playerid][i][Sideskirt] = dini_Int(Autodatei,"Sideskirt");
    Autos[playerid][i][Lamps] = dini_Int(Autodatei,"Lamps");
    Autos[playerid][i][Exhaust] = dini_Int(Autodatei,"Exhaust");
    Autos[playerid][i][Stereo] = dini_Int(Autodatei,"Stereo");
    Autos[playerid][i][Hydraulics] = dini_Int(Autodatei,"Hydraulics");
    Autos[playerid][i][VentRight] = dini_Int(Autodatei,"VentRight");
    Autos[playerid][i][VentLeft] = dini_Int(Autodatei,"VentLeft");
    Autos[playerid][i][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
    Autos[playerid][i][RearBumper] = dini_Int(Autodatei,"RearBumper");
    Autos[playerid][i][Neon] = dini_Int(Autodatei,"Neon");
    Autos[playerid][i][Neon_Typ1] = dini_Int(Autodatei,"Neon_Typ1");
    Autos[playerid][i][Neon_Typ2] = dini_Int(Autodatei,"Neon_Typ2");
    new vID = CreateVehicle(Autos[playerid][i][Model],Autos[playerid][i][PosX],Autos[playerid][i][PosY],Autos[playerid][i][PosZ],Autos[playerid][i][PosA],Autos[playerid][i][Farbe1],Autos[playerid][i][Farbe2],0);
    KMAnzeigeF[vID] = KMAnzeigeF[vehicleid];
    Spielercar[vID] = playerid;
    SpielercarvID[playerid][i] = vID;
    SetVehicleNumberPlate(vID,dini_Get(Autodatei,"Nummernschild"));
    if(Autos[playerid][i][Neon] > 0)
    {
    Autos[playerid][i][Neon_Obj0] = CreateObject(Autos[playerid][i][Neon_Typ1],0,0,0,0,0,0,0);
    Autos[playerid][i][Neon_Obj1] = CreateObject(Autos[playerid][i][Neon_Typ1],0,0,0,0,0,0,0);
    AttachObjectToVehicle(Autos[playerid][i][Neon_Obj0], SpielercarvID[playerid][i], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(Autos[playerid][i][Neon_Obj1], SpielercarvID[playerid][i], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    if(Autos[playerid][i][Neon_Typ2] > 0)
    {
    Autos[playerid][i][Neon_Obj2] = CreateObject(Autos[playerid][i][Neon_Typ2],0,0,0,0,0,0,0);
    Autos[playerid][i][Neon_Obj3] = CreateObject(Autos[playerid][i][Neon_Typ2],0,0,0,0,0,0,0);
    AttachObjectToVehicle(Autos[playerid][i][Neon_Obj2], SpielercarvID[playerid][i], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(Autos[playerid][i][Neon_Obj3], SpielercarvID[playerid][i], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    }
    if(Autos[playerid][i][Abgeschlossen] == 1)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID,engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
    Lock[vID] = true;
    }
    SetVehicleParamsForPlayer(vID,playerid,0,0);
    if(Autos[playerid][i][HP] > 250)
    {
    SetVehicleHealth(vID,Autos[playerid][i][HP]);
    }
    else SetVehicleHealth(vID,255.0);
    if(Autos[playerid][i][Paintjob] >= 0)
    {
    ChangeVehiclePaintjob(vID,Autos[playerid][i][Paintjob]);
    }
    if(Autos[playerid][i][Farbe1] >= 0 || Autos[playerid][i][Farbe2] >= 0)
    {
    ChangeVehicleColor(vID,Autos[playerid][i][Farbe1],Autos[playerid][i][Farbe2]);
    }
    if(Autos[playerid][i][Spoiler] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Spoiler]);
    }
    if(Autos[playerid][i][Hood] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Hood]);
    }
    if(Autos[playerid][i][Roof] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Roof]);
    }
    if(Autos[playerid][i][Sideskirt] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Sideskirt]);
    }
    if(Autos[playerid][i][Lamps] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Lamps]);
    }
    if(Autos[playerid][i][Nitro] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Nitro]);
    }
    if(Autos[playerid][i][Exhaust] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Exhaust]);
    }
    if(Autos[playerid][i][Wheels] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Wheels]);
    }
    if(Autos[playerid][i][Stereo] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Stereo]);
    }
    if(Autos[playerid][i][Hydraulics] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][Hydraulics]);
    }
    if(Autos[playerid][i][FrontBumper] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][FrontBumper]);
    }
    if(Autos[playerid][i][RearBumper] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][RearBumper]);
    }
    if(Autos[playerid][i][VentRight] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][VentRight]);
    }
    if(Autos[playerid][i][VentLeft] >= 0)
    {
    AddVehicleComponent(vID,Autos[playerid][i][VentLeft]);
    }
    }
    return 1;
    }

  • Ich habe noch nie erlebt, dass sich die VehicleIDs verschieben. Das macht auch keinen Sinn und wäre total unpraktisch. Mir ModelIDs zu arbeiten wird dir nicht gelingen.

    Wenn man nicht aufpasst und Systeme hat die von Vehicle ID auslesen,
    kann es natürlich dazu kommen, dass sie sich verschieben.
    Gab auch schon mehrere Threads hier in Breadfish zu diesem Problem ....
    Ghostrider hat hier also recht, versuche mit ModelID´s zu arbeiten, dann kannst du
    definitiv davon ausgehen, dass keine Vehicle ID verschiebung passieren kann.

  • new PräsiAuto[5];
    PräsiAuto[0] = CreateVehicle(..
    PräsiAuto[1] = CreateVehicle(..
    PräsiAuto[2] = CreateVehicle(..
    PräsiAuto[3] = CreateVehicle(..
    PräsiAuto[4] = CreateVehicle(..


    Dann kannst du gemütlich per Schleife alle PräsiAutos steuern.
    Hier ein hilfreicher Thread für dich.
    Ich such mal das Tutorial dazu

    KleineHilfe 2.0

  • kann es natürlich dazu kommen, dass sie sich verschieben.
    Gab auch schon mehrere Threads hier in Breadfish zu diesem Problem ....


    Könntest du mir mal so ein Topic geben, damit ich mir mal ein Bild davon machen kann. Vielleicht haben wir unterschiedliche Auffassungen von "verschieben". Danke. :)

  • Es gibt nicht umsonst die Funktion GetPlayerVehicleID
    Kannst dir ja mal die richtig vom Server festgelegten Fahrzeug Nummerierungen ausgeben :thumbup:


    Ist mir schon klar, aber wenn er z.B. bei OnGameModeInit ein, sagen wir Cheetah1 erstellt, der die ID 1234 bekommt, dann hat die Variable Cheetah1 den Wert 1234 und zwar solange bis man sie per script ändert. Der Cheetah (also das Auto) wird auch immer, bis er gelöscht wird, die ID 1234 haben. Auch wenn ich ID 1000-1100 lösche, bleibt mein Cheetah auf ID 1234.
    Die ID von Spielern ändert sich ja auch nicht einfach so.


    Deshalb hab ich nach dem Topic gefragt, außer du kannst es darstellen, wie diese "Verschiebung" gemeint ist.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Jo das ist schon richtig. Ich habs auch falsch ausgedrückt.
    Man kann sich die vehicle id auch einfach unter OnPlayerEnterVehicle durch vehicleid ausgeben lassen.
    Diese Verschiebungen werden halt nur "sichtbar" bzw. bemerkbar wenn man sein Script auf vehicleid basierend lässt.
    Deshalb sollte man halt allgemein immer mit festen Variablen arbeiten.

    KleineHilfe 2.0


  • So hab ich das, soll ich dann bei OnVehicleDeath alle fahrzeuge mit schleifen durchgehen? und dann die richtige -1 setzen?


    MFG


  • Jo das ist schon richtig. Ich habs auch falsch ausgedrückt.


    Um es mal darzustellen, meinst du es so:


    Cheetah1 wird erstellt, und erhält die ID 1234.
    Cheetah1 wird gelöscht, behält aber die ID 1234 in der variable, die ändert sich ja bei DestroyVehicle nicht.
    Infernus1 wird erstellt, und erhält nun ID 1234, da diese frei geworden ist.


    OnPlayerEnterVehicle:
    Spieler geht in den Infernus1:
    if(vehicleid == Cheetah1) SCM(playerid, rot, "Hallo im Cheetah1");
    Tatsächlich bin ich aber in den Infernus1 eingestiegen, und habe trotzdem die Nachricht bekommen, ich sei in dem Cheetah1.


    Ist das was du gemeint hast? Wenn ja, dann wäre das auch das was ich meinte, und dies kann verhindert werden, wenn ich Cheetah1 = -1 setzen, nach DestroyVehicle.

  • ich destroy es ja nicht :D z.B. fährst du gg eine Wand dann ist dein Fahrzeug kapput.


    Ja, das hab ich schon verstanden wie du das gemeint hast. Aber: Spawnt dein Auto nach dem "Tod", also wenn du die Wand geknutscht hast, wieder, oder wird es vom Server gelöscht? Nur bei letzterem solltest du die variable zu -1 setzen, und zwar mit dem Code den du ja schon gepostet hast. :)

  • Eine Vehicle ID Verschiebung tritt auf wenn ein Fahrzeug Explodiert nach der Explosion wird dann das Fahrzeug für 5-10 Sekunden vom Server Gelöscht wenn man in der Zeit ein neues Auto erstellt kommt es zur Vehicle ID verschiebung, man kann schon mit Vehicle IDs Arbeiten wie z.b.


    VarAuto[0] = CreateVehicle(....);


    if(vehicleid == VarAuto[0])
    {


    }
    Das funktioniert so lange bis das Oben beschriebene eintritt, deshalb z.b. bei Privatauto Systemen wo die Vehicle id oft in der Spielerdatei gespeichert wird sollte man noch eine extra Variable für Privatautos anlegen wenn ein Auto dann ein Privatauto ist einfach bei OnVehicleDeath das Fahrzeug mit SetVehicleToRespawn setzen dann kommt es auch nicht zu ID Verschiebungen oder aber auch vom Server Löschen und neu erstellen, sieht halt nicht so gut aus beim Explodieren des Fahrzeugs erfüllt aber sein Zweck.