I had this idea for an improved wounding and body armour system for arma 3, but thought that it would be possible to get a watered down version of this: http://forums.bistudio.com/showthread.php?t=129140
...in arma 2 CO.
Ok so with the AIS wounding module and changing around armor, armorStructural, passThrough and etc values I have been able to get good results for unarmoured people, but trying to simulate armour with the current health system is stupid because some damage WILL get through and end up killing people prematurly - the only way sort of make this unnoticable (with incapacitation happening at like 50% health) is to increase the unit's health so much they become resistent to headshots, even with 100% passThrough for head damage...
I am going to add a couple new variables to the configs of units and ammunition like armorPlates = 100 (or 0 for no armour), armorPiercing = 1 (or zero), baDamage (damage done to armour) and reqBaDamVel (required velocity of the round for it to deal damage to the armour.
So my idea is to make an sqf function that is called apon from the AIS damage script at the beggining that checks if the unit has > or = 1 armorPlates. If yes it checks if the section hit was the torso, if yes it will call apon my body armour function.
In the formula, there will also be a variable known as passThru which can = either 1 or 0. Once passThru's value is figured out, passThru is then returned to the AIS damage formula and before any damage is dealt to any part of the body at all the damage value has to be multiplied by passThru, therefore if it passed through it will be multiplied by 1 and deal normal damage, and if it didn’t pass through it will be multiplied by 0, effectively negating all damage.
(Because I don't know how properlly write these scripts, I will write just write in text what is actually meant to be happening.)
This is how I want the body armour function to work:
1. Velocity of the round that hit the unit needs to be compared to the reqBaDamVel (from the round's config) and if it is < reqBaDamVel then passThru will equal 0 and then passthru 0 will be returned to the original damage formula. If it is > or = to reqBaDamVel (from the round's config) then the formula will continue to the next step.
2. Then, the round's baDamage (in the round's config) is subtracted from the unit's armorPlates value (in the unit's config). The armorPlates value is then returned to the original formula and kept track of so if the unit still has say 60/100 armour health left (armorPlates = 60) it doesn't get reset each time the unit gets hit. (This will keep going until the unit is his in the torso region enough to reduce the armorPlates value to 0, then the body armour function will not be called apon and the passThru value will automatically become 1.
3. The last part of the formula is checking the round's config to see if armorPiercing = 1 or 0. If it equals 1, passThru will = 1 and passThru 1 will be returned to the original damage formula. If it equals 0, then passThru 0 will be returned to the original formula.
I used to know a little bit about sqf, but forgot it after i stopped playing arma for a while. I still know that stuff like ELSE and AND and OR can be used to make this script happen, I just don't know how to set everythign out.
I need help writting up the script properlly, but I also need help using local values (stuff with the _ symbol next to it) because otherwise the information used won't be relevent to each individual soldier being shot.
Here is what my attempt at writting a code resulted in:
if _vel < _reqBaDamVel then _passThru = 0 else; //is round fast enough to have effect
_armorPlates - _baDamage = _armorPlates; //damage is dealt to armour
if _armorPiercing = 1 then _passThru = 1 else; // can armour be bypassed?
If armourPiercing = 0 then _passThru = 0;
I'll give you a second to finish laughing...
So yeah I need help writting up the script and using local values.
After all of that I won't lie I am completely clueless as to how to edit the AIS module's damage formula, but not much needs to be added to that really, and that could be worried about latter.
Thanks in advanced guys. Happy holidays