remove protection, hitpoint config (fix ubc), some debug stuff

This commit is contained in:
commy2 2015-09-02 20:13:51 +02:00
parent dc5e6b7c3c
commit 7d2f1f52a4
14 changed files with 161 additions and 797 deletions

View File

@ -432,37 +432,33 @@ class CfgVehicles {
class Land; class Land;
class Man: Land { class Man: Land {
class HitPoints { class HitPoints;
class HitHead;
class HitBody;
class HitHands;
class HitLegs;
};
}; };
class CAManBase: Man { class CAManBase: Man {
class HitPoints: HitPoints { class HitPoints: HitPoints { // custom hitpoints. addons might want to adjust these accordingly
class HitFace; class HitLeftArm {
class HitNeck;
class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody;
class HitArms;
class HitHands;
class HitLegs;
class HitLeftArm: HitHands {
armor = ARM_LEG_ARMOR_DEFAULT; armor = ARM_LEG_ARMOR_DEFAULT;
material = -1;
name = "hand_l"; // @todo hopefully these still include the whole arm + hands name = "hand_l"; // @todo hopefully these still include the whole arm + hands
passThrough = 1;
radius = 0.08;
explosionShielding = 1;
visual = "injury_hands";
minimalHit = 0.01;
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitLeftArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands name = "hand_r"; // @todo hopefully these still include the whole arm + hands
}; };
class HitLeftLeg: HitLegs { class HitLeftLeg {
armor = ARM_LEG_ARMOR_DEFAULT; armor = ARM_LEG_ARMOR_DEFAULT;
material = -1;
name = "leg_l"; name = "leg_l";
passThrough = 1;
radius = 0.1;
explosionShielding = 1;
visual = "injury_legs";
minimalHit = 0.01;
}; };
class HitRightLeg: HitLeftLeg { class HitRightLeg: HitLeftLeg {
name = "leg_r"; name = "leg_r";
@ -527,60 +523,42 @@ class CfgVehicles {
class B_Soldier_04_f: B_Soldier_base_F { class B_Soldier_04_f: B_Soldier_base_F {
class HitPoints: HitPoints { class HitPoints: HitPoints {
class HitFace;
class HitNeck;
class HitHead; class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody; class HitBody;
class HitArms;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "hand_l"; // @todo hopefully these still include the whole arm + hands
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands
};
class HitLeftLeg: HitLegs {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitLeftLeg: HitLeftLeg {
name = "leg_r"; armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
}; };
}; };
}; };
class B_Soldier_05_f: B_Soldier_base_F { class B_Soldier_05_f: B_Soldier_base_F {
class HitPoints: HitPoints { class HitPoints: HitPoints {
class HitFace;
class HitNeck;
class HitHead; class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody; class HitBody;
class HitArms;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "hand_l";
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r";
};
class HitLeftLeg: HitLegs {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitLeftLeg: HitLeftLeg {
name = "leg_r"; armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
}; };
}; };
}; };
@ -589,150 +567,105 @@ class CfgVehicles {
class I_Soldier_03_F: I_Soldier_base_F { class I_Soldier_03_F: I_Soldier_base_F {
class HitPoints: HitPoints { class HitPoints: HitPoints {
class HitFace;
class HitNeck;
class HitHead; class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody; class HitBody;
class HitArms;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "hand_l"; // @todo hopefully these still include the whole arm + hands
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands
};
class HitLeftLeg: HitLegs {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitLeftLeg: HitLeftLeg {
name = "leg_r"; armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
}; };
}; };
}; };
class I_Soldier_04_F: I_Soldier_base_F { class I_Soldier_04_F: I_Soldier_base_F {
class HitPoints: HitPoints { class HitPoints: HitPoints {
class HitFace;
class HitNeck;
class HitHead; class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody; class HitBody;
class HitArms;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "hand_l"; // @todo hopefully these still include the whole arm + hands
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands
};
class HitLeftLeg: HitLegs {
armor = ARM_LEG_ARMOR_BETTER; armor = ARM_LEG_ARMOR_BETTER;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitLeftLeg: HitLeftLeg {
name = "leg_r"; armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
}; };
}; };
}; };
class O_Soldier_base_F: SoldierEB { class O_Soldier_base_F: SoldierEB {
class HitPoints: HitPoints { class HitPoints: HitPoints {
class HitFace;
class HitNeck;
class HitHead; class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody; class HitBody;
class HitArms;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_CSAT; armor = ARM_LEG_ARMOR_CSAT;
name = "hand_l"; // @todo hopefully these still include the whole arm + hands
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands
};
class HitLeftLeg: HitLegs {
armor = ARM_LEG_ARMOR_CSAT; armor = ARM_LEG_ARMOR_CSAT;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitLeftLeg: HitLeftLeg {
name = "leg_r"; armor = ARM_LEG_ARMOR_CSAT;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_CSAT;
}; };
}; };
}; };
class O_Soldier_02_F: O_Soldier_base_F { class O_Soldier_02_F: O_Soldier_base_F {
class HitPoints: HitPoints { class HitPoints: HitPoints {
class HitFace;
class HitNeck;
class HitHead; class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody; class HitBody;
class HitArms;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_CSAT; armor = ARM_LEG_ARMOR_CSAT;
name = "hand_l"; // @todo hopefully these still include the whole arm + hands
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands
};
class HitLeftLeg: HitLegs {
armor = ARM_LEG_ARMOR_CSAT; armor = ARM_LEG_ARMOR_CSAT;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitLeftLeg: HitLeftLeg {
name = "leg_r"; armor = ARM_LEG_ARMOR_CSAT;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_CSAT;
}; };
}; };
}; };
class O_officer_F: O_Soldier_base_F { class O_officer_F: O_Soldier_base_F {
class HitPoints: HitPoints { class HitPoints: HitPoints {
class HitFace;
class HitNeck;
class HitHead; class HitHead;
class HitPelvis;
class HitAbdomen;
class HitDiaphragm;
class HitChest;
class HitBody; class HitBody;
class HitArms;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_CSAT; // @todo is that suppossed to be the case? armor = ARM_LEG_ARMOR_CSAT; // @todo is that suppossed to be the case?
name = "hand_l"; // @todo hopefully these still include the whole arm + hands
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands armor = ARM_LEG_ARMOR_CSAT;
}; };
class HitLeftLeg: HitLegs { class HitLeftLeg: HitLeftLeg {
armor = ARM_LEG_ARMOR_CSAT; // @todo is that suppossed to be the case? armor = ARM_LEG_ARMOR_CSAT;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitRightLeg: HitRightLeg {
name = "leg_r"; armor = ARM_LEG_ARMOR_CSAT;
}; };
}; };
}; };
@ -743,19 +676,17 @@ class CfgVehicles {
class HitBody; class HitBody;
class HitHands; class HitHands;
class HitLegs; class HitLegs;
class HitLeftArm: HitHands { class HitLeftArm: HitLeftArm {
armor = 2; armor = 2;
name = "hand_l"; // @todo hopefully these still include the whole arm + hands
}; };
class HitRightArm: HitLeftArm { class HitRightArm: HitRightArm {
name = "hand_r"; // @todo hopefully these still include the whole arm + hands
};
class HitLeftLeg: HitLegs {
armor = 2; armor = 2;
name = "leg_l";
}; };
class HitRightLeg: HitLeftLeg { class HitLeftLeg: HitLeftLeg {
name = "leg_r"; armor = 2;
};
class HitRightLeg: HitRightLeg {
armor = 2;
}; };
}; };
}; };

View File

@ -2,8 +2,7 @@
params ["_unit"]; params ["_unit"];
if !(local _unit) exitWith {}; // reset all variables. @todo GROUP respawn?
[_unit] call FUNC(init); [_unit] call FUNC(init);
// Reset captive status for respawning unit // Reset captive status for respawning unit

View File

@ -1,5 +1,5 @@
/* /*
* Author: KoffeinFlummi, Glowbal * Author: KoffeinFlummi, Glowbal, commy2
* Main HandleDamage EH function. * Main HandleDamage EH function.
* *
* Arguments: * Arguments:
@ -14,28 +14,39 @@
* *
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_damageReturn", "_typeOfDamage", "_minLethalDamage", "_newDamage", "_typeIndex", "_preventDeath"];
params ["_unit", "_selection", "_damage", "_shooter", "_projectile"]; params ["_unit", "_selection", "_damage", "_shooter", "_projectile"];
if !(local _unit) exitWith {nil}; // bug, apparently can fire for remote units in special cases
if !(local _unit) exitWith {
if (typeName _projectile == "OBJECT") then { #ifdef DEBUG_ENABLED_MEDICAL
_projectile = typeOf _projectile; ACE_LOGDEBUG_3("HandleDamage on remote unit! - %1 - %2 - %3",diag_frameno,_unit,isServer);
_this set [4, _projectile]; #endif
nil
}; };
// If the damage is being weird, we just tell it to fuck off. private ["_damageReturn", "_typeOfDamage", "_minLethalDamage", "_newDamage", "_typeIndex", "_preventDeath"];
if !(_selection in (GVAR(SELECTIONS) + [""])) exitWith {0};
// bug, assumed fixed, @todo excessive testing, if nothing happens remove
/*if (typeName _projectile == "OBJECT") then {
_projectile = typeOf _projectile;
_this set [4, _projectile];
};*/
#ifdef DEBUG_ENABLED_MEDICAL
ACE_LOGDEBUG_3("HandleDamage - %1 - %2 - %3",diag_frameno,_selection,_damage);
#endif
// If the damage is being weird, we just tell it to fuck off. Ignore: "hands", "legs", "?"
if (_selection != "" && {!(_selection in GVAR(SELECTIONS))}) exitWith {0}; //@todo "neck", "pelvis", "spine1", "spine2", "spine3"
// Exit if we disable damage temporarily // Exit if we disable damage temporarily
if !(_unit getVariable [QGVAR(allowDamage), true]) exitWith { if !(_unit getVariable [QGVAR(allowDamage), true]) exitWith {
if (_selection in GVAR(SELECTIONS)) then { if (_selection == "") then {
_unit getHit _selection
} else {
damage _unit damage _unit
} else {
_unit getHit _selection
}; };
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Author: KoffeinFlummi * Author: KoffeinFlummi, commy2
* Initializes unit variables. * Initializes unit variables.
* *
* Arguments: * Arguments:
@ -10,73 +10,77 @@
* *
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_allUsedMedication", "_logs"];
params ["_unit"]; params ["_unit"];
// basic
_unit setVariable [QGVAR(pain), 0, true]; _unit setVariable [QGVAR(pain), 0, true];
_unit setVariable [QGVAR(morphine), 0, true]; _unit setVariable [QGVAR(morphine), 0, true];
_unit setVariable [QGVAR(bloodVolume), 100, true]; _unit setVariable [QGVAR(bloodVolume), 100, true];
// tourniquets
_unit setvariable [QGVAR(tourniquets), [0,0,0,0,0,0], true];
// wounds and injuries
_unit setvariable [QGVAR(openWounds), [], true];
_unit setvariable [QGVAR(bandagedWounds), [], true];
_unit setVariable [QGVAR(internalWounds), [], true];
_unit setvariable [QGVAR(lastUniqueWoundID), 1, true];
// vitals
_unit setVariable [QGVAR(heartRate), 80];
_unit setvariable [QGVAR(heartRateAdjustments), []];
_unit setvariable [QGVAR(bloodPressure), [80, 120]];
_unit setVariable [QGVAR(peripheralResistance), 100];
// fractures
_unit setVariable [QGVAR(fractures), [], true];
// triage card and logs
_unit setvariable [QGVAR(triageLevel), 0, true];
_unit setvariable [QGVAR(triageCard), [], true];
// IVs
_unit setVariable [QGVAR(salineIVVolume), 0, true];
_unit setVariable [QGVAR(plasmaIVVolume), 0, true];
_unit setVariable [QGVAR(bloodIVVolume), 0, true];
// damage storage
_unit setvariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0], true];
// airway
_unit setvariable [QGVAR(airwayStatus), 100];
_unit setVariable [QGVAR(airwayOccluded), false];
_unit setvariable [QGVAR(airwayCollapsed), false];
// generic medical admin
_unit setvariable [QGVAR(addedToUnitLoop), false, true];
_unit setvariable [QGVAR(inCardiacArrest), false, true];
_unit setVariable ["ACE_isUnconscious", false, true]; _unit setVariable ["ACE_isUnconscious", false, true];
_unit setvariable [QGVAR(hasLostBlood), 0, true];
_unit setvariable [QGVAR(isBleeding), false, true];
_unit setvariable [QGVAR(hasPain), false, true];
_unit setvariable [QGVAR(amountOfReviveLives), GVAR(amountOfReviveLives), true];
_unit setvariable [QGVAR(painSuppress), 0, true];
// medication // advanced
_allUsedMedication = _unit getVariable [QGVAR(allUsedMedication), []]; if (GVAR(level) > 1) then {
{ // tourniquets
_unit setvariable [_x select 0, nil]; _unit setvariable [QGVAR(tourniquets), [0,0,0,0,0,0], true];
} foreach _allUsedMedication;
_unit setVariable [QGVAR(allUsedMedication), [], true];
_logs = _unit getvariable [QGVAR(allLogs), []]; // wounds and injuries
{ _unit setvariable [QGVAR(openWounds), [], true];
_unit setvariable [_x, nil]; _unit setvariable [QGVAR(bandagedWounds), [], true];
} foreach _logs; _unit setVariable [QGVAR(internalWounds), [], true];
_unit setvariable [QGVAR(allLogs), [], true]; _unit setvariable [QGVAR(lastUniqueWoundID), 1, true];
// vitals
_unit setVariable [QGVAR(heartRate), 80];
_unit setvariable [QGVAR(heartRateAdjustments), []];
_unit setvariable [QGVAR(bloodPressure), [80, 120]];
_unit setVariable [QGVAR(peripheralResistance), 100];
// fractures
_unit setVariable [QGVAR(fractures), [], true];
// triage card and logs
_unit setvariable [QGVAR(triageLevel), 0, true];
_unit setvariable [QGVAR(triageCard), [], true];
// IVs
_unit setVariable [QGVAR(salineIVVolume), 0, true];
_unit setVariable [QGVAR(plasmaIVVolume), 0, true];
_unit setVariable [QGVAR(bloodIVVolume), 0, true];
// damage storage
_unit setvariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0], true];
// airway
_unit setvariable [QGVAR(airwayStatus), 100];
_unit setVariable [QGVAR(airwayOccluded), false];
_unit setvariable [QGVAR(airwayCollapsed), false];
// generic medical admin
_unit setvariable [QGVAR(addedToUnitLoop), false, true];
_unit setvariable [QGVAR(inCardiacArrest), false, true];
_unit setvariable [QGVAR(hasLostBlood), 0, true];
_unit setvariable [QGVAR(isBleeding), false, true];
_unit setvariable [QGVAR(hasPain), false, true];
_unit setvariable [QGVAR(amountOfReviveLives), GVAR(amountOfReviveLives), true];
_unit setvariable [QGVAR(painSuppress), 0, true];
private ["_allUsedMedication", "_logs"];
// medication
_allUsedMedication = _unit getVariable [QGVAR(allUsedMedication), []];
{
_unit setvariable [_x select 0, nil];
} foreach _allUsedMedication;
_unit setVariable [QGVAR(allUsedMedication), [], true];
_logs = _unit getvariable [QGVAR(allLogs), []];
{
_unit setvariable [_x, nil];
} foreach _logs;
_unit setvariable [QGVAR(allLogs), [], true];
};
// items // items
[{ [{

View File

@ -1,6 +1,8 @@
#define COMPONENT medical #define COMPONENT medical
#include "\z\ace\addons\main\script_mod.hpp" #include "\z\ace\addons\main\script_mod.hpp"
#define DEBUG_ENABLED_MEDICAL true
#ifdef DEBUG_ENABLED_MEDICAL #ifdef DEBUG_ENABLED_MEDICAL
#define DEBUG_MODE_FULL #define DEBUG_MODE_FULL
#endif #endif

View File

@ -1 +0,0 @@
z\ace\addons\protection

View File

@ -1,5 +0,0 @@
class CfgVehicles {
#include <FixUniforms.hpp>
#include <FixHelmets.hpp>
};

View File

@ -1,4 +0,0 @@
class CfgWeapons {
#include <FixVests.hpp>
};

View File

@ -1,230 +0,0 @@
// INTEGER
#define HELMET_ARMOR_NO_PROTECTION 0
// FLOAT, 0-1
#define HELMET_PASSTHROUGH_NO_PROTECTION 1
/*class InventoryItem_Base_F;
class HeadgearItem: InventoryItem_Base_F {
armor = 0;
passThrough = 1;
};
class H_HelmetB: ItemCore {
class ItemInfo: HeadgearItem {
//mass = 40;
armor = 4;
passThrough = 0.5;
};
};
class H_HelmetB_camo: H_HelmetB {
class ItemInfo: HeadgearItem {
//mass = 40;
armor = 4;
passThrough = 0.5;
};
};
class H_HelmetB_light: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 30;
armor = 3;
passThrough = 0.5;
};
};
class H_Booniehat_khk: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 10;
armor = 0;
passThrough = 1;
};
};
class H_HelmetB_plain_mcamo: H_HelmetB {};
class H_HelmetSpecB: H_HelmetB_plain_mcamo {
class ItemInfo: ItemInfo {
//mass = 50;
armor = 5;
passThrough = 0.5;
};
};
class H_HelmetIA: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 40;
armor = 4;
passThrough = 0.5;
};
};
class H_Cap_red: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 4;
armor = 0;
passThrough = 1;
};
};
class H_Cap_headphones: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 8;
armor = 0;
passThrough = 1;
};
};
class H_HelmetCrew_B: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 40;
armor = 4;
passThrough = 0.5;
};
};
class H_PilotHelmetFighter_B: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 50;
armor = 5;
passThrough = 0.5;
};
};
class H_PilotHelmetHeli_B: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 30;
armor = 3;
passThrough = 0.5;
};
};
class H_CrewHelmetHeli_B: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 30;
armor = 3;
passThrough = 0.5;
};
};
class H_HelmetO_ocamo: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 50;
armor = 5;
passThrough = 0.5;
};
};
class H_HelmetLeaderO_ocamo: H_HelmetO_ocamo {
class ItemInfo: ItemInfo {
//mass = 60;
armor = 6;
passThrough = 0.5;
};
};
class H_MilCap_ocamo: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_BandMask_blk: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 8;
armor = 0;
passThrough = 1;
};
};
class H_HelmetSpecO_ocamo: H_HelmetO_ocamo {
class ItemInfo: ItemInfo {
//mass = 40;
armor = 4;
passThrough = 0.5;
};
};
class H_Bandanna_surfer: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 8;
armor = 0;
passThrough = 1;
};
};
class H_Shemag_khk: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_ShemagOpen_khk: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_Beret_blk: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_Beret_02: H_Beret_blk {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_Watchcap_blk: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_TurbanO_blk: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 8;
armor = 0;
passThrough = 1;
};
};
class H_StrawHat: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_Hat_blue: H_HelmetB {
class ItemInfo: ItemInfo {
//mass = 6;
armor = 0;
passThrough = 1;
};
};
class H_RacingHelmet_1_F: H_HelmetB_camo {
class ItemInfo: ItemInfo {
//mass = 50;
armor = 5;
passThrough = 0.5;
};
};*/

View File

@ -1,303 +0,0 @@
class ItemCore;
class VestItem;
class Vest_Camo_Base: ItemCore {
class ItemInfo: VestItem {
/*containerClass = "Supply0";
mass = 0;
armor = 0;
passThrough = 1;*/
};
};
class Vest_NoCamo_Base: ItemCore {
class ItemInfo: VestItem {
/*containerClass = "Supply0";
mass = 0;
armor = 0;
passThrough = 1;*/
};
};
// belts
class V_Rangemaster_belt: Vest_NoCamo_Base {
class ItemInfo: ItemInfo {
/*containerClass = "Supply40";
mass = 10;
armor = 0;
passThrough = 1;*/
};
};
// bandolliers
class V_BandollierB_khk: Vest_Camo_Base {
class ItemInfo: ItemInfo {
/*containerClass = "Supply80";
mass = 15;
armor = 0;*/
passThrough = 0.85; //1;
};
};
/*class V_BandollierB_cbr: V_BandollierB_khk {
class ItemInfo: ItemInfo {};
};
class V_BandollierB_rgr: V_BandollierB_khk {
class ItemInfo: ItemInfo {};
};
class V_BandollierB_blk: V_BandollierB_khk {
class ItemInfo: ItemInfo {};
};
class V_BandollierB_oli: V_BandollierB_khk {
class ItemInfo: ItemInfo {};
};*/
// plate carriers
class V_PlateCarrier1_rgr: Vest_NoCamo_Base { // lite
class ItemInfo: ItemInfo {
/*containerClass = "Supply140";
mass = 80;*/
armor = 8; //20;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrier2_rgr: V_PlateCarrier1_rgr { // heavy
class ItemInfo: ItemInfo {
/*containerClass = "Supply140";
mass = 100;*/
armor = 12; //30;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrier3_rgr: Vest_NoCamo_Base { // heavy (us)
class ItemInfo: ItemInfo {
/*containerClass = "Supply140";
mass = 100;*/
armor = 12; //30;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrierGL_rgr: Vest_NoCamo_Base { // lite (gl)
class ItemInfo: ItemInfo {
containerClass = "Supply160"; //"Supply140";
/*mass = 100;*/
armor = 8; //100;
passThrough = 0.75; //0.7;
};
};
class V_PlateCarrier1_blk: Vest_Camo_Base { // heavy (black)
class ItemInfo: ItemInfo {
/*containerClass = "Supply140";*/
mass = 100; //80;
armor = 12; //20;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrierSpec_rgr: Vest_NoCamo_Base { // lite (special)
class ItemInfo: ItemInfo {
/*containerClass = "Supply100";
mass = 120;*/
armor = 16; //40;
passThrough = 0.75; //0.1;
};
};
// chestrigs
/*class V_Chestrig_khk: Vest_Camo_Base {
class ItemInfo: ItemInfo {
containerClass = "Supply140";
mass = 20;
armor = 0;
passThrough = 1;
};
};
class V_Chestrig_rgr: V_Chestrig_khk {};
class V_Chestrig_blk: V_Chestrig_khk {};
class V_Chestrig_oli: Vest_Camo_Base {
class ItemInfo: ItemInfo {
containerClass = "Supply140";
mass = 20;
armor = 0;
passThrough = 1;
};
};*/
// tactical vests
class V_TacVest_khk: Vest_Camo_Base {
class ItemInfo: ItemInfo {
/*containerClass = "Supply100";
mass = 40;*/
armor = 8; //20;
/*passThrough = 1;*/
};
};
class V_TacVest_brn: V_TacVest_khk {};
class V_TacVest_oli: V_TacVest_khk {};
class V_TacVest_blk: V_TacVest_khk {};
class V_TacVest_camo: Vest_Camo_Base {
class ItemInfo: ItemInfo {
/*containerClass = "Supply100";
mass = 40;*/
armor = 8; //20;
/*passThrough = 1;*/
};
};
class V_TacVest_blk_POLICE: Vest_Camo_Base {
class ItemInfo: ItemInfo {
/*containerClass = "Supply100";*/
mass = 40; //60;
armor = 8; //100;
passThrough = 1; //0.7;
};
};
class V_TacVestIR_blk: Vest_NoCamo_Base { // raven vest
class ItemInfo: VestItem {
/*containerClass = "Supply100";
mass = 50;*/
armor = 8; //20;
passThrough = 0.85; //0.5;
};
};
class V_TacVestCamo_khk: Vest_Camo_Base {
class ItemInfo: VestItem {
/*containerClass = "Supply100";
mass = 40;*/
armor = 8; //20;
/*passThrough = 1;*/
};
};
// harnesses
class V_HarnessO_brn: Vest_NoCamo_Base {
class ItemInfo: ItemInfo {
/*containerClass = "Supply160";
mass = 30;
armor = 0;*/
passThrough = 0.85; //0.5;
};
};
class V_HarnessOGL_brn: Vest_NoCamo_Base { // gl
class ItemInfo: ItemInfo {
/*containerClass = "Supply120";
mass = 20;
armor = 0;*/
passThrough = 0.85; //0.5;
};
};
class V_HarnessO_gry: V_HarnessO_brn {
class ItemInfo: ItemInfo {
/*containerClass = "Supply160";
mass = 30;
armor = 0;*/
passThrough = 0.85; //0.5;
};
};
class V_HarnessOGL_gry: V_HarnessO_gry { // gl
class ItemInfo: ItemInfo {
/*containerClass = "Supply120";
mass = 20;
armor = 0;*/
passThrough = 0.85; //0.5;
};
};
class V_HarnessOSpec_brn: V_HarnessO_brn {
class ItemInfo: VestItem {
/*containerClass = "Supply160";
mass = 30;
armor = 0;*/
passThrough = 0.85; //0.5;
};
};
class V_HarnessOSpec_gry: V_HarnessO_gry {
class ItemInfo: ItemInfo {
/*containerClass = "Supply160";
mass = 30;
armor = 0;*/
passThrough = 0.85; //0.5;
};
};
// indep plate carriers
class V_PlateCarrierIA1_dgtl: Vest_NoCamo_Base { // lite
class ItemInfo: VestItem {
/*containerClass = "Supply120";
mass = 60;*/
armor = 8; //20;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrierIA2_dgtl: V_PlateCarrierIA1_dgtl { // heavy
class ItemInfo: VestItem {
/*containerClass = "Supply120";
mass = 80;*/
armor = 12; //30;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrierIAGL_dgtl: V_PlateCarrierIA2_dgtl { // heavy (gl)
class ItemInfo: VestItem {
containerClass = "Supply140"; //"Supply120";
mass = 100; //80;
armor = 12; //100;
passThrough = 0.75; //0.7;
};
};
// rebreather
/*class V_RebreatherB: Vest_Camo_Base {
class ItemInfo: ItemInfo {
containerClass = "Supply0";
mass = 80;
armor = 20;
passThrough = 1;
};
};
class V_RebreatherIR: V_RebreatherB {};
class V_RebreatherIA: V_RebreatherB {};*/
// more plate carriers
class V_PlateCarrier_Kerry: V_PlateCarrier1_rgr { // lighter
class ItemInfo: ItemInfo {
/*containerClass = "Supply140";
mass = 80;*/
armor = 8; //30;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrierL_CTRG: V_PlateCarrier1_rgr { // lite
class ItemInfo: ItemInfo {
/*containerClass = "Supply140";
mass = 80;*/
armor = 8; //20;
passThrough = 0.75; //0.5;
};
};
class V_PlateCarrierH_CTRG: V_PlateCarrier2_rgr { // heavy
class ItemInfo: ItemInfo {
/*containerClass = "Supply140";
mass = 100;*/
armor = 12; //30;
passThrough = 0.75; //0.5;
};
};
// another tactical vest
class V_I_G_resistanceLeader_F: V_TacVest_camo {
class ItemInfo: ItemInfo {};
};
// press vest
class V_Press_F: Vest_Camo_Base {
class ItemInfo: ItemInfo {
/*containerClass = "Supply40";
mass = 20;*/
armor = 8; //0; ?
/*passThrough = 1;*/
};
};
// marksman dlc
/*class V_PlateCarrierGL_blk: V_PlateCarrierGL_rgr {};
class V_PlateCarrierGL_mtp: V_PlateCarrierGL_rgr {};
class V_PlateCarrierSpec_blk: V_PlateCarrierSpec_rgr {};
class V_PlateCarrierSpec_mtp: V_PlateCarrierSpec_rgr {};
class V_PlateCarrierIAGL_oli: V_PlateCarrierIAGL_dgtl {};*/

View File

@ -1,12 +0,0 @@
ace_protection
==============
Fixes and tweaks the protection values of body armour.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
- [commy2](https://github.com/commy2)

View File

@ -1,16 +0,0 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author[] = {"commy2"};
authorUrl = "https://github.com/commy2";
VERSION_CONFIG;
};
};
#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"

View File

@ -1,12 +0,0 @@
#define COMPONENT protection
#include "\z\ace\addons\main\script_mod.hpp"
#ifdef DEBUG_ENABLED_PROTECTION
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_ENABLED_PROTECTION
#define DEBUG_SETTINGS DEBUG_ENABLED_PROTECTION
#endif
#include "\z\ace\addons\main\script_macros.hpp"