Freeze nach zusammenstoß

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


    ich würde gerne mal ein kleines Script zusammen stellen wo man
    bei einem Zusammen stoß bzw. Unfall zwischen Auto und Auto xD gefreezt wird also quasi
    ich baue einen Unfall und das Fahrzeug verliert 150 Health und dann wird man gefreezt
    habt ihr eine Ahnung wie das geht??
    ich habe da schon mal angefangen gehabt hat aber nicht geklappt xD


    mfg Dedi

  • 2 Timer , einer checkt die Energie vorher , der andere nachher , sollte eig. nicht schwer sein, aber so wie die Funktion willst ,
    heißt es du möchtest das , das Skript Mauern/ Objekte Synchronisiert , stell dir vor einer schießt auf das Auto und das Auto bleibt stehen ;)
    Natürlich kannst du auch 1 Timer nehmen der auf 900/ 800 ms arbeitet und per Case abfrage 2x Checkt

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • new Float:gVehHealth[MAX_VEHICLES];


    public OnPlayerUpdate(playerid)
    {
    new gCurVeh = GetPlayerVehicleID(playerid);
    if(gCurVeh) {
    new Float:tempHealth;
    GetVehicleHealth(gCurVeh, tempHealth);
    if(tempHealth != gVehHealth[gCurVeh]) {
    if(tempHealth < gVehHealth[gCurVeh]) OnVehicleHealthChange(gCurVeh, tempHealth, gVehHealth[gCurVeh], gVehHealth[gCurVeh] - tempHealth,false,playerid);
    if(tempHealth > gVehHealth[gCurVeh]) OnVehicleHealthChange(gCurVeh, tempHealth, gVehHealth[gCurVeh], tempHealth-gVehHealth[gCurVeh],true,playerid);
    GetVehicleHealth(gCurVeh, gVehHealth[gCurVeh]);
    }
    }
    return 1;
    }



    forward OnVehicleHealthChange(vehicleid, Float:newhealth, Float:oldhealth, Float:difference, bool:health_gained, driver);
    public OnVehicleHealthChange(vehicleid, Float:newhealth, Float:oldhealth, Float:difference, bool:health_gained, driver)
    {
    if(health_gained == true) {
    if(difference >= 150) {
    return TogglePlayerControllable(driver, false);
    }
    }
    return 1;
    }


    Alles was nach dem Zusammenstoß passieren soll kommt in OnVehicleHealthChange rein.
    Ich habs nicht getestet, es dürfte aber funktionieren.


    // Das mit dem Ausrollen KÖNNTE man per SetVehicleVelocity machen.
    // Ganz vergessen, das hier am Ende von OnGameModeInit einfügen:
    for(new v; v < MAX_VEHICLES; v++) {
    gVehHealth[v] = 1000.0;
    }

  • das geht halbwegs :D
    also ich habe ein CMD damit man Fahrzeug heilen kann und wenn ich den unfall baue
    verliert das auto 150+ und ist NICHT gefreezt
    aber wenn ich dann den cmd zum reppen benutzen bin ich gefrezzt xD
    also quasi das script funktioniert falsch rum

  • Oh, einfach das "if(health_gained == true)" in "if(health_gained == false)" ändern. ^^