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
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
Du kannst die Geschwindigkeit des Spielers meines Achtens nicht beeinflussen durch das Script.
glaube das geht mit der graviti (bin mir nicht sicher) aber dann gilt es für alle spieler.
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.
Das geht durch aus
guck dir mal SetPlayerVelocity an ;).
Das ist eine Möglichkeit, aber dieser "Sprung" ist nur einmal, wenn dann müsste man es in einer Schleife dauerhaft wiederholen..
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?
Ehy du hast ein DayZ Script vor würde gerne mitwirken kann scripten
Ich suche keinen Scripter sondern eine Möglickeit
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
Aber probiere es einfach mal aus und spiele mit der Funktion SetPlayerVelocity
mfg.
Alles anzeigenDas 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
Aber probiere es einfach mal aus und spiele mit der Funktion SetPlayerVelocity
mfg.
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.
Alles anzeigen
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;
}
Da ist ein ! davor, sprich er darf nicht in einem Auto sein
mfg.
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
mfg.
Der läuft doch langsamer, je mehr schaden er bekommt, schau dir doch mal den Code richtig an
mfg.
Sorry. Habe mit soetwas noch nie Gearbeitet
Müsste ich Teroritisch nurnoch
if(health > 80)&& |if(health > 60) return 1;
Und so weiter oder?
Sorry für diese etwas Dumme frage
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.
Nein, einfach so lassen, sobald man weniger leben als 80 hat wird man langsamer, je mehr dmg man bekommt/hat
mfg.
Und um wie viel Sinkt das, Kann ich aus den Code leider nicht erkennen.. bzw will ja nicht das er mit 79% Hp wieder um 2% Langsamer wird sondern immer in 20 hp Schritten
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.
Ok Werde ich nun einmal Veruschen aufjedenfall vielen dank für deine Hilfe !