mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'refs/remotes/acemod/master' into refuel
This commit is contained in:
commit
8fc52a4dfb
@ -183,13 +183,13 @@ class CfgGlasses {
|
||||
ACE_Resistance = 1;
|
||||
ACE_Protection = 1;
|
||||
};
|
||||
class G_Bandanna_sport:G_Bandanna_blk {
|
||||
class G_Bandanna_sport: G_Bandanna_shades {
|
||||
ACE_Color[] = {1,0,0};
|
||||
ACE_TintAmount=COLOUR;
|
||||
ACE_Resistance = 1;
|
||||
ACE_Protection = 1;
|
||||
};
|
||||
class G_Bandanna_aviator:G_Bandanna_blk {
|
||||
class G_Bandanna_aviator: G_Bandanna_shades {
|
||||
ACE_Color[] = {0,0,-1};
|
||||
ACE_TintAmount=COLOUR;
|
||||
ACE_Resistance = 1;
|
||||
|
@ -25,4 +25,10 @@ class ACE_Settings {
|
||||
displayName = CSTRING(enabledForZeusUnits_DisplayName);
|
||||
description = CSTRING(enabledForZeusUnits_Description);
|
||||
};
|
||||
class GVAR(autoAddEarplugsToUnits) {
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
displayName = CSTRING(autoAddEarplugsToUnits_DisplayName);
|
||||
description = CSTRING(autoAddEarplugsToUnits_Description);
|
||||
};
|
||||
};
|
||||
|
@ -13,7 +13,7 @@ class Extended_PostInit_EventHandlers {
|
||||
class Extended_Init_EventHandlers {
|
||||
class CAManBase {
|
||||
class GVAR(AddEarPlugs) {
|
||||
init = QUOTE( if (local (_this select 0)) then {_this call FUNC(addEarPlugs)}; );
|
||||
serverInit = QUOTE( _this call FUNC(addEarPlugs) );
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -33,3 +33,11 @@ class Extended_Explosion_EventHandlers {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Respawn_EventHandlers {
|
||||
class CAManBase {
|
||||
class ADDON {
|
||||
respawn = QUOTE(_this call FUNC(handleRespawn));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -137,6 +137,12 @@ class CfgVehicles {
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class autoAddEarplugsToUnits {
|
||||
displayName = CSTRING(autoAddEarplugsToUnits_DisplayName);
|
||||
description = CSTRING(autoAddEarplugsToUnits_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
class ModuleDescription {
|
||||
description = CSTRING(Module_Description);
|
||||
|
@ -42,7 +42,8 @@ class CfgWeapons {
|
||||
class H_PilotHelmetFighter_O: H_PilotHelmetFighter_B {};
|
||||
class H_PilotHelmetFighter_I: H_PilotHelmetFighter_B {};
|
||||
|
||||
class H_Cap_headphones: H_HelmetB {
|
||||
class HelmetBase;
|
||||
class H_Cap_headphones: HelmetBase {
|
||||
GVAR(protection) = 0.5;
|
||||
GVAR(lowerVolume) = 0.60;
|
||||
};
|
||||
|
@ -6,6 +6,7 @@ PREP(addEarPlugs);
|
||||
PREP(earRinging);
|
||||
PREP(explosionNear);
|
||||
PREP(firedNear);
|
||||
PREP(handleRespawn);
|
||||
PREP(hasEarPlugsIn);
|
||||
PREP(moduleHearing);
|
||||
PREP(putInEarPlugs);
|
||||
|
@ -14,29 +14,50 @@
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit"];
|
||||
TRACE_2("params",_unit,typeOf _unit);
|
||||
|
||||
// Exit if hearing is disabled or soldier has earplugs already in (persistence scenarios)
|
||||
if (!GVAR(enableCombatDeafness) || {[_unit] call FUNC(hasEarPlugsIn)}) exitWith {};
|
||||
// only run this after the settings are initialized
|
||||
if !(EGVAR(common,settingsInitFinished)) exitWith {
|
||||
EGVAR(common,runAtSettingsInitialized) pushBack [FUNC(addEarPlugs), _this];
|
||||
};
|
||||
|
||||
private ["_launcher"];
|
||||
// Exit if hearing is disabled OR autoAdd is disabled OR soldier has earplugs already in (persistence scenarios)
|
||||
if (!GVAR(enableCombatDeafness) || {!GVAR(autoAddEarplugsToUnits)} || {[_unit] call FUNC(hasEarPlugsIn)}) exitWith {};
|
||||
|
||||
// add earplugs if the soldier has a rocket launcher
|
||||
_launcher = secondaryWeapon _unit;
|
||||
|
||||
if (_launcher != "") exitWith {
|
||||
if ((secondaryWeapon _unit) != "") exitWith {
|
||||
TRACE_1("has launcher - adding",_unit);
|
||||
_unit addItem "ACE_EarPlugs";
|
||||
};
|
||||
|
||||
// otherwise add earplugs if the soldier has a big rifle
|
||||
private ["_magazine", "_ammo"];
|
||||
if ((primaryWeapon _unit) == "") exitWith {};
|
||||
|
||||
_magazine = primaryWeaponMagazine _unit select 0;
|
||||
(primaryWeaponMagazine _unit) params [["_magazine", ""]];
|
||||
if (_magazine == "") exitWith {};
|
||||
|
||||
if (isNil "_magazine") exitWith {};
|
||||
private _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed");
|
||||
private _ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
private _count = getNumber (configFile >> "CfgMagazines" >> _magazine >> "count");
|
||||
|
||||
_ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
private _caliber = getNumber (configFile >> "CfgAmmo" >> _ammo >> "ACE_caliber");
|
||||
_caliber = call {
|
||||
if (_ammo isKindOf ["ShellBase", (configFile >> "CfgAmmo")]) exitWith { 80 };
|
||||
if (_ammo isKindOf ["RocketBase", (configFile >> "CfgAmmo")]) exitWith { 200 };
|
||||
if (_ammo isKindOf ["MissileBase", (configFile >> "CfgAmmo")]) exitWith { 600 };
|
||||
if (_ammo isKindOf ["SubmunitionBase", (configFile >> "CfgAmmo")]) exitWith { 80 };
|
||||
if (_caliber <= 0) then { 6.5 } else { _caliber };
|
||||
};
|
||||
private _loudness = (_caliber ^ 1.25 / 10) * (_initspeed / 1000) / 5;
|
||||
|
||||
if (getNumber (configFile >> "CfgAmmo" >> _ammo >> "audiblefire") > 8) then {
|
||||
//If unit has a machine gun boost effective loudness 50%
|
||||
if (_count >= 50) then {_loudness = _loudness * 1.5};
|
||||
|
||||
TRACE_2("primaryWeapon",_unit,_loudness);
|
||||
|
||||
if (_loudness > 0.2) then {
|
||||
TRACE_1("loud gun - adding",_unit);
|
||||
_unit addItem "ACE_EarPlugs";
|
||||
};
|
||||
|
35
addons/hearing/functions/fnc_handleRespawn.sqf
Normal file
35
addons/hearing/functions/fnc_handleRespawn.sqf
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Reset earplugs on respawn, and then re-add if appropriate
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* [player] call ACE_hearing_fnc_handleRespawn;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit"];
|
||||
TRACE_2("params",_unit,typeOf _unit);
|
||||
|
||||
if (!local _unit) exitWith {}; //XEH should only be called on local units
|
||||
|
||||
private _respawn = [0] call BIS_fnc_missionRespawnType;
|
||||
|
||||
//if respawn is not Group or side:
|
||||
if (_respawn <= 3) then {
|
||||
//Remove earplugs if they have them:
|
||||
if (_unit getVariable ["ACE_hasEarPlugsin", false]) then {
|
||||
TRACE_1("had EarPlugs in - removing",_unit);
|
||||
_unit setVariable ["ACE_hasEarPlugsin", false, true];
|
||||
};
|
||||
};
|
||||
|
||||
//Re-add if they need them:
|
||||
[_unit] call FUNC(addEarPlugs);
|
@ -20,4 +20,5 @@ if ((_logic getVariable "DisableEarRinging") != -1) then {
|
||||
};
|
||||
|
||||
[_logic, QGVAR(enabledForZeusUnits), "enabledForZeusUnits"] call EFUNC(common,readSettingFromModule);
|
||||
[_logic, QGVAR(autoAddEarplugsToUnits), "autoAddEarplugsToUnits"] call EFUNC(common,readSettingFromModule);
|
||||
ACE_LOGINFO("Hearing Module Initialized.");
|
||||
|
@ -165,5 +165,11 @@
|
||||
<Portuguese>Permite que unidades remotamente controladas pelo Zeus sejam atingidas por danos auditivos.</Portuguese>
|
||||
<Spanish>Permitir a las unidades por control remoto de zeus que puedan tener daños auditivos.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Hearing_autoAddEarplugsToUnits_DisplayName">
|
||||
<English>Add earplugs to units</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Hearing_autoAddEarplugsToUnits_Description">
|
||||
<English>Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts.</English>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -87,31 +87,37 @@ class RscDisplayInventory {
|
||||
class BackgroundSlotPrimaryMuzzle: BackgroundSlotPrimary {
|
||||
x = X_PART(26.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class BackgroundSlotPrimaryUnderBarrel: BackgroundSlotPrimary {
|
||||
x = X_PART(29);
|
||||
x = X_PART(28.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class BackgroundSlotPrimaryFlashlight: BackgroundSlotPrimary {
|
||||
x = X_PART(31.4);
|
||||
x = X_PART(30.6);
|
||||
y = Y_PART(9.2); //not sure why different (double check release)
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class BackgroundSlotPrimaryOptics: BackgroundSlotPrimary {
|
||||
x = X_PART(33.8);
|
||||
x = X_PART(32.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class BackgroundSlotPrimaryMagazineGL: BackgroundSlotPrimary {
|
||||
x = X_PART(34.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class BackgroundSlotPrimaryMagazine: BackgroundSlotPrimary {
|
||||
x = X_PART(36.2);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class BackgroundSlotSecondary: BackgroundSlotPrimary {
|
||||
@ -292,31 +298,37 @@ class RscDisplayInventory {
|
||||
class SlotPrimaryMuzzle: SlotPrimary {
|
||||
x = X_PART(26.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class SlotPrimaryUnderBarrel: SlotPrimary {
|
||||
x = X_PART(29);
|
||||
x = X_PART(28.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class SlotPrimaryFlashlight: SlotPrimary {
|
||||
x = X_PART(31.4);
|
||||
x = X_PART(30.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class SlotPrimaryOptics: SlotPrimary {
|
||||
x = X_PART(33.8);
|
||||
x = X_PART(32.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class SlotPrimaryMagazineGL: SlotPrimary {
|
||||
x = X_PART(34.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class SlotPrimaryMagazine: SlotPrimary {
|
||||
x = X_PART(36.2);
|
||||
x = X_PART(36.6);
|
||||
y = Y_PART(9.1);
|
||||
w = W_PART(2.3);
|
||||
w = W_PART(1.9);
|
||||
h = H_PART(2);
|
||||
};
|
||||
class SlotSecondary: SlotPrimary {
|
||||
|
@ -433,39 +433,38 @@ class CfgVehicles {
|
||||
#define ARM_LEG_ARMOR_BETTER 5
|
||||
#define ARM_LEG_ARMOR_CSAT 4
|
||||
|
||||
class Land;
|
||||
class Man: Land {
|
||||
class HitPoints;
|
||||
};
|
||||
|
||||
#define ADD_ACE_HITPOINTS(ARM_ARMOR,LEG_ARMOR) \
|
||||
class HitLeftArm { \
|
||||
armor = ARM_ARMOR; \
|
||||
material = -1; \
|
||||
name = "hand_l"; \
|
||||
passThrough = 1; \
|
||||
radius = 0.08; \
|
||||
explosionShielding = 1; \
|
||||
visual = "injury_hands"; \
|
||||
minimalHit = 0.01; \
|
||||
}; \
|
||||
class HitRightArm: HitLeftArm { \
|
||||
name = "hand_r"; \
|
||||
}; \
|
||||
class HitLeftLeg { \
|
||||
armor = LEG_ARMOR; \
|
||||
material = -1; \
|
||||
name = "leg_l"; \
|
||||
passThrough = 1; \
|
||||
radius = 0.1; \
|
||||
explosionShielding = 1; \
|
||||
visual = "injury_legs"; \
|
||||
minimalHit = 0.01; \
|
||||
}; \
|
||||
class HitRightLeg: HitLeftLeg { \
|
||||
name = "leg_r"; \
|
||||
}; \
|
||||
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class HitPoints: HitPoints { // custom hitpoints. addons might want to adjust these accordingly
|
||||
class HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_DEFAULT;
|
||||
material = -1;
|
||||
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 {
|
||||
name = "hand_r"; // @todo hopefully these still include the whole arm + hands
|
||||
};
|
||||
class HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_DEFAULT;
|
||||
material = -1;
|
||||
name = "leg_l";
|
||||
passThrough = 1;
|
||||
radius = 0.1;
|
||||
explosionShielding = 1;
|
||||
visual = "injury_legs";
|
||||
minimalHit = 0.01;
|
||||
};
|
||||
class HitRightLeg: HitLeftLeg {
|
||||
name = "leg_r";
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_DEFAULT,ARM_LEG_ARMOR_DEFAULT);
|
||||
};
|
||||
|
||||
class ACE_SelfActions {
|
||||
@ -525,174 +524,82 @@ class CfgVehicles {
|
||||
class B_Soldier_base_F: SoldierWB {};
|
||||
|
||||
class B_Soldier_04_f: B_Soldier_base_F {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class B_Soldier_05_f: B_Soldier_base_F {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class I_Soldier_base_F: SoldierGB {};
|
||||
|
||||
class I_Soldier_03_F: I_Soldier_base_F {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class I_Soldier_04_F: I_Soldier_base_F {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = ARM_LEG_ARMOR_BETTER;
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class O_Soldier_base_F: SoldierEB {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class O_Soldier_diver_base_F: O_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class O_Soldier_02_F: O_Soldier_base_F {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class O_officer_F: O_Soldier_base_F {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = ARM_LEG_ARMOR_CSAT; // @todo is that suppossed to be the case?
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = ARM_LEG_ARMOR_CSAT;
|
||||
};
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER);
|
||||
};
|
||||
};
|
||||
|
||||
class O_Protagonist_VR_F: O_Soldier_base_F {
|
||||
class HitPoints: HitPoints {
|
||||
class HitHead;
|
||||
class HitBody;
|
||||
class HitHands;
|
||||
class HitLegs;
|
||||
class HitLeftArm: HitLeftArm {
|
||||
armor = 2;
|
||||
};
|
||||
class HitRightArm: HitRightArm {
|
||||
armor = 2;
|
||||
};
|
||||
class HitLeftLeg: HitLeftLeg {
|
||||
armor = 2;
|
||||
};
|
||||
class HitRightLeg: HitRightLeg {
|
||||
armor = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
//These VR guys already have limb hitpoints that we should be able to use
|
||||
//Note: the selections are a little weird, eg: class leg_l {name = "leg_l";};
|
||||
// class B_Soldier_VR_F: B_Soldier_base_F { {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class O_Soldier_VR_F: O_Soldier_base_F { {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class I_Soldier_VR_F: I_Soldier_base_F { {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class C_Soldier_VR_F: C_man_1 {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class O_Protagonist_VR_F: O_Soldier_base_F {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
|
||||
class MapBoard_altis_F;
|
||||
class ACE_bodyBagObject: MapBoard_altis_F {
|
||||
|
Loading…
Reference in New Issue
Block a user