1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Fr: 23 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    HandleDamage bearbeiten

      • Altis Life
    • maltepower99
    • 27. April 2021 um 13:45
    • Erledigt
    • maltepower99
      Fortgeschrittener
      Reaktionen
      58
      Trophäen
      9
      Beiträge
      306
      • 27. April 2021 um 13:45
      • #1

      Morgen liebe NN-Community,

      ich habe bei mir die handleDamge.sqf soweit etwas bearbeitet um mir testweise mal /4 damage zu geben.

      Jedoch ist das Verhalten etwas komisch und ich bekomme zwar weniger damage aber teils auch einen heal oder viel zu wenig Damage.

      Vermutlich verstehe ich da etwas nur falsch und ihr könnt mich evtl besser aufklären :D.

      Also hier mal die Änderung + die Datei:

      Code
      if(license_civ_admin) then {
      _damage = _damage / 4;
      };
      Code
      /*
      File: fn_handleDamage.sqf
      Author: Bryan "Tonic" Boardwine
      
      
      Description:
      Handles damage, specifically for handling the 'tazer' pistol and nothing else.
      */
      private["_unit","_damage","_source","_projectile","_part","_curWep"];
      _unit = _this select 0;
      _part = _this select 1;
      _damage = _this select 2;
      _source = _this select 3;
      _projectile = _this select 4;
      
      
      //Internal Debugging.
      if(!isNil "TON_Debug") then {
      systemChat format["PART: %1 || DAMAGE: %2 || SOURCE: %3 || PROJECTILE: %4 || FRAME: %5",_part,_damage,_source,_projectile,diag_frameno];
      };
      
      
      if(license_civ_admin) then {
      _damage = _damage / 4;
      };
      
      
      if(vehicle _source isKindOf "LandVehicle") then {
      if(_source != _unit AND {alive _unit} AND {isPlayer _source}) then {
      _damage = 0.3;
      };
      };
      
      
      //Handle the tazer first (Top-Priority).
      if(!isNull _source) then {
      if(_source != _unit) then {
      _curWep = currentWeapon _source;
      if(_projectile in ["B_9x21_Ball","B_556x45_dual"] && _curWep in ["hgun_P07_snds_F","arifle_SDAR_F"]) then {
      if(side _source == west && playerSide != west) then {
      private["_distance","_isVehicle","_isQuad"];
      _distance = if(_projectile == "B_556x45_dual") then {100} else {35};
      _isVehicle = if(vehicle player != player) then {true} else {false};
      _isQuad = if(_isVehicle) then {if(typeOf (vehicle player) == "B_Quadbike_01_F") then {true} else {false}} else {false};
      
      
      _damage = false;
      if(_unit distance _source < _distance) then {
      if(!life_istazed && !(_unit getVariable["restrained",false])) then {
      if(_isVehicle && _isQuad) then {
      player action ["Eject",vehicle player];
      [_unit,_source] spawn life_fnc_tazed;
      } else {
      [_unit,_source] spawn life_fnc_tazed;
      };
      };
      };
      };
      
      
      //Temp fix for super tasers on cops.
      if(playerSide == west && side _source == west) then {
      _damage = false;
      };
      };
      };
      };
      
      
      [] call life_fnc_hudUpdate;
      _damage;
      Alles anzeigen

      Danke schonmal!

      MfG Malte

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 27. April 2021 um 15:01
      • #2

      https://community.bistudio.com/wiki/Arma_3:_E…rs#HandleDamage

      Zitat von BI Wiki

      If code provided returns a numeric value, this value will overwrite the default damage of given selection after processing.
      Return value of 0 will make the unit invulnerable if damage is not scripted in other ways (i.e using setDamage and/or setHit for additional damage handling).
      If no value is returned, the default damage processing will be done. This allows for safe stacking of this event handler.
      Only the return value of the last added "HandleDamage" EH is considered

      -> https://forums.bohemia.net/forums/topic/2…dler-explained/

      Der return-Wert ist nicht der Schaden, der dem Spieler zugefügt wird, sondern die absoluten HP. 0 = kein Schaden, 0.5 = 50% Leben. Hat der Spieler 50% Leben und der EH returned 0.4 bekommt er nicht 0.4 zusätzlich (-> 90% Leben) sondern wird auf 0.4 gesetzt (-> 60% Leben)

      Wenn du deinen Damage also durch 4 teilst, heilst du deinen Spieler zu 75% relativ zum aktuellen Lebenswert

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • maltepower99
      Fortgeschrittener
      Reaktionen
      58
      Trophäen
      9
      Beiträge
      306
      • 27. April 2021 um 17:28
      • #3

      Und gibt es eine Möglichkeit auf den "addierten Schadens Wert" zugreifen und diesen bearbeiten zu können?

      Also damit ich diesen einfach durch eine Zahl teilen kann und somit nicht alle Kaliber manuell definieren muss.

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 27. April 2021 um 17:40
      • #4

      Die Variable _damage stellt den Schadens-Wert nach dem EventHandler dar.

      Mit damage <OBJECT> lässt sich der aktuelle Schadens-Wert abfragen.

      Der handleDamage-EventHandler erwartet den Schadens-Wert als Rückgabe.

    • Basti0208
      Schüler
      Reaktionen
      58
      Trophäen
      10
      Beiträge
      138
      Dateien
      1
      • 27. April 2021 um 17:50
      • #5
      Zitat von Henne

      Die Variable _damage stellt den Schadens-Wert nach dem EventHandler dar.

      Mit damage <OBJECT> lässt sich der aktuelle Schadens-Wert abfragen.

      Der handleDamage-EventHandler erwartet den Schadens-Wert als Rückgabe.

      Das ganze könnte dann so aussehen:

      Code
      private _unitDamage = damage _unit;
      private _addedDamage = _damage - _unitDamage;
      // Dein ganzer Code
      _damage = _unitDamage + _addedDamage;

      Mit freundlichen Grüßen

      Basti

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Tags

    • 3.1.4.8

    Benutzer online in diesem Thema

    • 1 Besucher

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™