if Heal Anfrage von Fahrzeugen

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


    ich möchte gerne machen wenn das Auto nur noch 20% Health hat wird der Spieler gefreezt und muss mit /exit aussteigen, erst wenn das Auto wieder 100% hat wird das Fahrzeug entfreezt, hat wer dafür was? bräuchte glaub ich nur ein kleines Beispeil, wäre sehr Nett wenn ihr mir dabei helfen würdet .


    Gruß Metin2

  • Entnommen aus dem Sa-mp Wiki (http://wiki.sa-mp.com/wiki/GetVehicleDamageStatus und http://wiki.sa-mp.com/wiki/OnVehicleDamageStatusUpdate):



    public OnVehicleDamageStatusUpdate(vehicleid, playerid)
    {
    //#pragma unused playerid


    new Float:health;
    GetVehicleHealth(vehicleid, health);
    if(health >200)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerInVehicle(i,vehicleid))
    {
    RemovePlayerFromVehicle(i);
    }
    }
    }
    return 1;
    }


    Sorry fürs miese Einrücken, habs hier direkt im Editor geschrieben ;)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )


  • Habs So :

    Spoiler anzeigen
    public OnVehicleDamageStatusUpdate(vehicleid, playerid)
    {
    new Float:health;
    GetVehicleHealth(vehicleid, health);
    if(health >200)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerInVehicle(i,vehicleid))
    {
    SendClientMessage(i,ROT,"Du hast einen Motorschaden, Rufe einen Mechaniker An!");
    RemovePlayerFromVehicle(i);
    }
    }
    }
    return 1;
    }

    Habs Jetzt auf 200 Aber immernoch kann ich Wieder einsteigen und weiter, HELP ! ?

    Einmal editiert, zuletzt von Crocky ()

  • Weis wer wie man das aus dem SoL raus machen kann das dass Auto respawn nach dem es Kapput ist? also es explodiert nicht mal und respawnt, deshalb wird es auch nicht gehen.

  • Entschuldigung, hab heute nen kleinen Dreher drin. Müsste natürlich heißen, wenn health < 200 ist und NICHT größer 200 ^^


    also insg:


    public OnVehicleDamageStatusUpdate(vehicleid, playerid)
    {
    //#pragma unused playerid


    new Float:health;
    GetVehicleHealth(vehicleid, health);
    if(health<200)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerInVehicle(i,vehicleid))
    {
    RemovePlayerFromVehicle(i);
    }
    }
    }
    return 1;
    }


    Kickt übrigens gleich alle Spieler aus dem Auto ;)


    Wenn du den Wagen dazu abstellen möchtest, dann stell doch einfach den Motor aus ;)


    http://wiki.sa-mp.com/wiki/SetVehicleParamsEx



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )


  • Kannste das mal So machen das man dann nicht mehr mit dem Auto weiterfahren kann ? Pls :D bin Scripting anfänger :love:

  • Cool, geht bei mir, allerdings wäre es jetzt noch Hammer wenn er nicht mehr weiter fahren können, erst wieder wenn das Fahrzeug 100% healt hätte

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das ist auch relativ einfach gelöst, müsst nur mal nachdenken ;)
    also machen wir es wie folgt:
    Unter dem Callback OnPlayerStateChange:

    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    new Float:health;
    GetVehicleHealth(GetPlayerVehicleID(playerid), health);
    if(health<200)
    {
    RemovePlayerFromVehicle(playerid);//Kickt den Spieler beim Einsteigen als Fahrer direkt wieder raus!
    //Alternativ zum Remove, wäre auch "TogglePlayerControllable(playerid,0);" möglich, oder die etwas bessere Methode, die ich jetzt im Anschluss zeigen werde.
    }
    }


    Wie versprochen die ausführliche Methode:

    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    new Float:health;
    GetVehicleHealth(GetPlayerVehicleID(playerid), health);
    if(health<200)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid),0,lights,alarm,doors,bonnet,boot,objective);//Wir schalten einfach den Motor ab :D
    SendClientMessage(playerid, 0xFFAAFF,"Der Wagen hat einen Motorschaden, sorry Kumpel !");//Ja ich weiß, bei den Texten bin ich kreativ =P
    }
    }


    Notfalls ließe sich diese Funktion auch unter "OnPlayerEnterVehicle" einbinden, wäre wahrscheinlich sogar günstiger ;)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Motor wieder an und es geht wieder alles, wie kann man das machen das der Motor bei diesem Fahrzeug nicht mehr geht? erst wenn er wieder auf 100% 0 schaden ist?^^

  • Das ist doch wohl kein Problem, oder ?


    Du startest den Motor doch per Tastendruck, oder ? Wenn nicht, dann halt den folgenden Code im Command zum Motorstarten einfügen:



    new Float:health;
    GetVehicleHealth(GetPlayerVehicleID(playerid), health);
    if(health<200)
    {
    return SendClientMessage(playerid,0xFFAAFF,"Sorry Kolläsch, aber dein Motor will nichtmehr");
    }



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Sauber! Die letze frage, im SoL respawnt ja das car wenn es 200 oder so erreicht hat wo ist das, dass ich es raus nehmen kann?

  • Keine Ahnung was "SoL" bedeuten soll, aber ok.
    In irgendeinem Callback (wahrscheinlich ist wohl "OnVehicleDamageStatuUpdate") eine Funktion steht wie:"SetVehicleToRespawn(vehicleid)" oder RepairVehicle in Kombination mit SetVehiclePos.
    Suche einfach mal in dem Script danach ;) (STRG+F)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Noch ne Frage. Wie erstelle ich das Wenn das Fahrzeug unter 20% hat das es nicht weiter kaputt geht ? Also das es nur 20% Schaden bekommen kann und erst wieder Reperiert werden Muss ?


    Wenn es Rechtschreibfehler geben sollte bitte ich euch diese zu entschuldigen. Ich bin am Handy (iPhone) und das verbessert immer :0