goko-- 147 Posted September 27, 2018 (edited) A3 HARDCORE DAMAGE MODIFICATION mp compatible: not tested (should work theoratically, tell if it does please) compatibility with other mods: Works fine with mods like RHS. Wont work with ACE due to its own medical system. version: 1.0 github repo: https://github.com/the0utsider/A3-HC-Damage Download on Steam workshop Description: The way of arma handling damage is possible the most sophisticated in any engine out there; you get all sorts of calculation for ballistic protection vs bullet caliber, hit velocity, angles etc. But most of the time (especially with level 4-5 armor) you have to be really precise to get headshots. You need to hit 'in the face' and that is doable but what happens when you miss? This is the problem. If your shot falls close to neck area, that is a seperate body part which have 0 affect for what you want: headshot. Similar situation with chest and upper body. There are 3 body parts in arma damage system for upper-body: abdomen, diaphragm and chest. While game evaluates total damage, not all of this is added to overall health. This results as what you mostly experience: guy gets shot again and again, he moves his arms, twitches and nothing happens. He keeps running. When you modify bullet hit values, you lost logical ballistic originality of game. Yes it would work, there are many config altering mods out there as well but they just do more than they should and break the game. It is just not fun to shoot a guy from pixel (or pinky) of left foot and get a kill for that. It breaks everything. Short desription of problem is: arma treat humanoid models like frankenstein: Each body part should have some affect on overall health but some of them do not or relationship is really low. This mod uses arma's own damage model and improves it by binding damage of certain areas of body together, getting past frankenstein issue on homanoid characters: *Neck and face damages are added up and passes to 'head' damage. *Upper chest, diaphragm and abdomen area now affects overall health of body (which they should, it is the place of all vital organs) *Pelvis (or lower gut or balls) damage passes to legs. It's not ideal when you got wounded around pelvis and still be able to run like gazelle. These values are passed on with a "multiplier" inside code and it is available under CBA addon options for you to decide a ratio for your liking, default is 1.5. *As another option, you can change the effect of how upper body damage dealt with. It is multiplied to 'body' health as default which means death when reaches to 1 and this is default behavior of mod. The option is to pass damage to 'hands' which will not kill you no matter how high it is, it is not fatal but it will cause extreme weapon swing. These are all global settings; meaning they apply to everyone on server and you have to be logged as admin in a server to change them. Last one is development debugger setting which will hint you what multiplier applied, what was the damage and where etc. Local option. Should be used good for testing. Variables and their defaults: ["goko_damage_multiplier", 1.5]; ["goko_damage_fatalHeadWounds", true]; ["goko_damage_fatalChestWounds", 0]; ["goko_damage_affects_hands", true]; ["goko_damage_disableLegs", true]; ["goko_dev_debugger", false]; Edited October 3, 2018 by goko-- updated links 2 3 Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted September 27, 2018 Very Nice Goko ! Thank and Congratulations for the release ! 2 Share this post Link to post Share on other sites
goko-- 147 Posted September 27, 2018 Thats very kind of you. Thanks George! 1 Share this post Link to post Share on other sites
goko-- 147 Posted September 27, 2018 does it work on MP? anyone? Share this post Link to post Share on other sites
goko-- 147 Posted September 27, 2018 updated repo link https://github.com/the0utsider/A3-HC-Damage 1 Share this post Link to post Share on other sites
LSValmont 789 Posted October 24, 2018 Goko, please consider releasing a script version of your damage mod. I am using this right now: Spoiler // Damage reduction EH params[ "_unit" ]; // Damage reduction from https://forums.bistudio.com/forums/topic/198136-reducing-player-damage/ // Exit if we are a player and not local // Otherwise add EH for AI every where just in case their locality // changes due to moving into a players group // the EH will only fire where the AI is local if ( isPlayer _unit && { !local _unit } ) exitWith {}; if ( isPlayer _unit ) then { _unit removeAllEventHandlers 'HandleDamage'; }; // Only damage from last applied handleDamage EH is taken into consideration by the engine // Apply a new EH so as we can override the damage applied _unit addEventHandler [ "HandleDamage", { params ["_unit", "_hitSelection", "_damage","_source","_projectile","_hitPartIndex", "_instigator", "_hitPoint"]; // Damage multipliers. The damage of each projectile will be multiplied by this number. private _damageMultiplierHead = 0.40; private _damageMultiplierBody = 0.30; private _damageMultiplierLimbs = 0.20; private _damageMultiplierOverall = 0.30; // Damage limits. Each projectile will be limited to a max of this much damage. private _limitHead = 0.40; private _limitBody = 0.25; private _limitLimbs = 0.15; private _limitOverall = 0.25; private _oldDamage = 0; if (_hitSelection isEqualTo "") then {_oldDamage = damage _unit} else {_oldDamage = _unit getHit _hitSelection}; private _newDamage = _damage - _oldDamage max 0; private _incomingDamage = _newDamage; private _playerHealth = damage _unit; // Infantry selections // Keep in mind that if revive is enabled then incapacitation may occur at around 0.7 damage. // "": The overall damage that determines the damage value of the unit. Unit dies at damage equal to or above 1 // "face_hub": Unit dies at damage equal to or above 1 // "neck": Unit dies at damage equal to or above 1 // "head": Unit dies at damage equal to or above 1 // "pelvis": Unit dies at damage equal to or above 1 // "spine1": Unit dies at damage equal to or above 1 // "spine2": Unit dies at damage equal to or above 1 // "spine3": Unit dies at damage equal to or above 1 // "body": Unit dies at damage equal to or above 1 // "arms": Unit doesn't die with damage to this part // "hands": Unit doesn't die with damage to this part // "legs": Unit doesn't die with damage to this part // Do any other damage calculations here // _damage is the previous damage plus any new damage and will be applied // as the total damage the unit has for this selection once this EH returns // Only modify damage if it is a known projectile (leave falling damage etc alone) if (_newDamage > 0 && !(_projectile isEqualTo "")) then { // Reduce damage by damage multiplier private _damageMultiplier = _damageMultiplierBody; private _upperLimit = _limitBody; switch (_hitSelection) do { case "face_hub"; case "head": { _damageMultiplier = _damageMultiplierHead; _upperLimit = _limitHead; }; case "arms"; case "hands"; case "legs": { _damageMultiplier = _damageMultiplierLimbs; _upperLimit = _limitLimbs; }; case "": { _damageMultiplier = _damageMultiplierOverall; _upperLimit = _limitOverall; }; default { _damageMultiplier = _damageMultiplierBody; _upperLimit = _limitBody; }; }; _newDamage = _newDamage * _damageMultiplier; // Place an upper limit on projectile damage done at once if (_newDamage > _upperLimit) then { _newDamage = _upperLimit; }; _damage = _oldDamage + _newDamage; }; // For players ignore damage if they are incapacitated and pass damage to bis revive handler if ( isPlayer _unit ) then { if ( lifeState _unit == "INCAPACITATED" ) then { //if we are incapacitated take no additional damage _damage = _oldDamage; } else { _this set[ 2, _damage ]; //Call BI REVIVE HandleDamage EH passing new _damage value _damage = _this call bis_fnc_reviveEhHandleDamage; }; }; // systemChat format[ "pHealth: %1 selection: %2 oldTotal: %3 newTotal: %4 incomingDmg: %6 appliedDmg: %6", _playerHealth, _hitSelection, _oldDamage, _damage, _incomingDamage, _newDamage]; _damage }]; //systemChat format[ "Damage reduction applied to %1", _unit ]; // End of damage reduction The problem with a mod version is that my players are running so many mods already it gets harder for them to download more. 1 Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted December 5, 2018 On 25/10/2018 at 12:21 AM, LSValmont said: players are running so many mods already it gets harder This is true ! The scripts , ( with a small size ) are always a better solution for MP ! Using a Mod is easier though , but in order to sort of a mod list for MP , then for sure every single mod used , is one more parameter to think of ! 1 Share this post Link to post Share on other sites