[Frage] Leben Abrufen-Geschwindigkeit Setzen

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
  • Schönen guten tag.


    Ich Möchte etwas Scripten in den Abgefragt wird wie viel leben er hatt. Dies allerdings nicht in einen Befehl.
    Wenn das Leben nun z.b 80% Beträgt das Dieser Spieler dann um 0.2% Langsamer wird.
    Ist dies Möglich?


    MfG feni12

  • Also da es ja ein DayZ Script werden soll für samp Währe es Schlecht wenn alle Spieler Langsamer werden :)


    Wenn jemmand irgendwie eine Idee hatt bzw es doch eine möglichkeit giebt würde ich Mich freuen wenn Hier Jemmand Schreibt.


    Damit will ich eben Simulieren das der Spieler sein bein Verkrüppelt hatt.

  • Diesen Befehl habe ich auch schon Gesehen. Allerdings soll dies ja von selbst kommen und in keinen Befehl. und wiee Don meinte müsste dieser in einer Schleife sein. Auserdem so wie ich es dort verstehe ist das mann ja hoch/runter gerade aus/rückwertz oder links/rechts Geportet wird sogesehen oder nicht?

  • Das ist möglich :)


    Ich gebe mal ein kleines Beispiel:


    //Oben im Script
    new move[MAX_PLAYERS char];


    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) {
    new Float:health;
    GetPlayerHealth(playerid,health);
    health = floatround(100-health);
    move{playerid} = floatround(floatmul(health,0.02)); //0.02 = 2%
    return 1;
    }


    public OnPlayerUpdate(playerid) {
    if(move{playerid} && !IsPlayerInAnyVehicle(playerid)) {
    SetPlayerVelocity(playerid,-move{playerid},0.0,0.0);
    }
    return 1;
    }


    Nicht getestet :D


    Aber probiere es einfach mal aus und spiele mit der Funktion SetPlayerVelocity ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Cool. Schonmal danke für die Antwort werde ich Ausprobieren Allerdings.
    Möchte ich ja das er ab 80% Leben 0.2% Langsamer geht. Also müsste ich
    health = floatround(100-health);
    Durch
    health = floatround(80-health);
    ersetzen oder?


    Und


    if(move{playerid} && !IsPlayerInAnyVehicle(playerid)) {
    SetPlayerVelocity(playerid,-move{playerid},0.0,0.0);


    Warum fragt er dort ab ob er in einen Auto ist?


    Er soll ja nur zu füß 0.2% Langsamer sein, Dies soll eben Darstellen das er verlezt ist.


    //Edit ach Verstehe glaube. Dies bewirkt das er im Auto nicht 0.2% Langsamer fährt richtig? :)

  • Durch


    health = floatround(80-health);


    ersetzen oder?


    Nein!


    Dann musst du das so machen:


    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) {
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health > 80) return 1;
    health = floatround(100-health);
    move{playerid} = floatround(floatmul(health,0.02)); //0.02 = 2%
    return 1;
    }


    Warum fragt er dort ab ob er in einen Auto ist?


    Da ist ein ! davor, sprich er darf nicht in einem Auto sein ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Alles klar. Nun möchte ich aber das er z.b ab 60% Leben um 0.4% Langsamer wird. Könnte ich den Gleichen Befehl Benutzen bloß umändern? oder würde dann nicht kommen das es bereits 2x Definiert ist bzw bereits verwendet wird?

  • Alles klar. Nun möchte ich aber das er z.b ab 60% Leben um 0.4% Langsamer wird. Könnte ich den Gleichen Befehl Benutzen bloß umändern? oder würde dann nicht kommen das es bereits 2x Definiert ist bzw bereits verwendet wird?


    Der läuft doch langsamer, je mehr schaden er bekommt, schau dir doch mal den Code richtig an :rolleyes:


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Müsste ich Teroritisch nurnoch
    if(health > 80)&& |if(health > 60) return 1;
    Und so weiter oder?


    Sorry für diese etwas Dumme frage


    Nein, einfach so lassen, sobald man weniger leben als 80 hat wird man langsamer, je mehr dmg man bekommt/hat ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Und um wie viel Sinkt das, Kann ich aus den Code leider nicht erkennen..


    Doch, kannst du dir doch ausrechnen:


    Bei 80hp:
    //Zuerst rechne ich:
    100-80 = 20;
    //Dann:
    20*0.02 = 0.4; //um 0.4 wird man dann langsamer


    Bei 79hp:
    100-79 = 21;
    21*0.02 = 0.42; //jetzt wird man um 0.42 langsamer und so weiter...


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S