Autos nach Zeit Löschen

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,


    ich habe eine Funktion gemacht, dass sich jeder über Dialog-Boxen Wagen spawnen kann. Ich möchte aber, dass die Autos nach z.B. 30 Sekunden wieder verschwinden, wenn niemand mehr darin sitzt. Also Quasi so ähnlich wie AddStaticVehicleEx, nur statt Respawn-Delay soll der Wagen gelöscht werden.


    Kann mir vllt jemand helfen?


    Danke schon mal




    GER-Clan - Seit 2007 - WIEDER DA!

  • OnPlayerExitVehicle dann per SetTimerEx eine Funktion aufrufen lassen die das Auto zerstört.

  • Das Folgende ist natürlich für alle Autos derzeit (musst halt umschreiben) und ist um einiges besser als der Vorschlag von ]hp[


    #define MAX_DESTROY_TIME (120) //Nach wieviel Sekunden Fahrzeug zerstört werden soll.


    new gVehiclesLastUsed[MAX_VEHICLES];


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) gVehiclesLastUsed[GetPlayerVehicleID(playerid)] = gettime();
    }


    public OnVehicleSpawn(vehicleid)
    {
    gVehiclesLastUsed[vehicleid] = gettime();
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    if((gettime() - gVehiclesLastUsed[vehicleid]) > MAX_DESTROY_TIME) DestroyVehicle(vehicleid);
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Naja, dass ist auch Sinn der Sache das nach 2 min alle Autos verschwinden ^^. Du musst halt selbst definieren welche nicht verschwinden solln und Co.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Naja, dass ist auch Sinn der Sache das nach 2 min alle Autos verschwinden ^^. Du musst halt selbst definieren welche nicht verschwinden solln und Co.


    Naja, klar, dass die Verschwinden, aber die kommen ja garnicht erst :D Ich gebe meinen Befehl ein, wähle mein Auto im Listendialog aus. Ohne deine Funktion sitze ich dann in dem Wagen, mit deiner Funktion Spawnt das Auto aber garnichtmehr. Die Nachricht die dazu erscheinen soll, kommt aber.




    GER-Clan - Seit 2007 - WIEDER DA!

  • #define MAX_DESTROY_TIME (120) //Nach wieviel Sekunden Fahrzeug zerstört werden soll.


    new gVehiclesLastUsed[MAX_VEHICLES];
    new bool:gVehiclesCreated[MAX_PLAYERS];


    forward Check_DestroyVehicle(vehicleid);


    public Check_DestroyVehicle(vehicleid)
    {
    gVehiclesCreated[vehicleid] = false;
    return DestroyVehicle(vehicleid);
    }


    #define DestroyVehicle Check_DestroyVehicle


    //Dieser obige Code muss soweit wie möglich oben im Script sein, der Rest ist egal ^^


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && gVehiclesCreated[GetPlayerVehicleID(playerid)]) gVehiclesLastUsed[GetPlayerVehicleID(playerid)] = gettime();
    }


    public OnVehicleSpawn(vehicleid)
    {
    gVehiclesLastUsed[vehicleid] = gettime();
    gVehiclesCreated[vehicleid] = true;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    if((gettime() - gVehiclesLastUsed[vehicleid]) > MAX_DESTROY_TIME && gVehiclesCreated[vehicleid]) DestroyVehicle(vehicleid);
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Sorry, geht aber immernoch nicht :S Also die Vehicles, die gelöscht werden sollen,werden mir dem namen deinwagen gespawnt, wie ich oben schon gesagt habe. Kannst du mir das bitte mal Einsetzten? Wäre sehr nett. Bin dann auch mal weg für heute. Und danke schon für das bisherige




    GER-Clan - Seit 2007 - WIEDER DA!