mirror of
https://github.com/acemod/ACE3.git
synced 2025-07-25 21:02:48 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@ -24,22 +24,6 @@ if (!hasInterface) exitWith {};
|
||||
|
||||
// Register Perframe Handler
|
||||
[LINKFUNC(handleFirePFH), GVAR(simulationInterval)] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
//Add warnings for missing compat PBOs (only if AB is on)
|
||||
{
|
||||
_x params ["_modPBO", "_compatPBO"];
|
||||
if ([_modPBO] call EFUNC(common,isModLoaded) && {!([_compatPBO] call EFUNC(common,isModLoaded))}) then {
|
||||
WARNING_2("Weapon Mod [%1] missing ace compat pbo [%2] (from @ace\optionals)",_modPBO,_compatPBO);
|
||||
};
|
||||
} forEach [
|
||||
["RH_acc","ace_compat_rh_acc"],
|
||||
["RH_de_cfg","ace_compat_rh_de"],
|
||||
["RH_m4_cfg","ace_compat_rh_m4"],
|
||||
["RH_PDW","ace_compat_rh_pdw"],
|
||||
["RKSL_PMII","ace_compat_rksl_pm_ii"],
|
||||
["iansky_opt","ace_compat_sma3_iansky"],
|
||||
["R3F_Armes","ace_compat_r3f"]
|
||||
];
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
|
@ -5,7 +5,9 @@ private _category = format ["ACE %1", localize LSTRING(DisplayName)];
|
||||
[LSTRING(enabled_DisplayName), LSTRING(enabled_Description)],
|
||||
_category,
|
||||
false,
|
||||
1
|
||||
1,
|
||||
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -45,5 +47,7 @@ private _category = format ["ACE %1", localize LSTRING(DisplayName)];
|
||||
[LSTRING(simulationInterval_DisplayName), LSTRING(simulationInterval_Description)],
|
||||
_category,
|
||||
[0, 0.2, 0.05, 2],
|
||||
1
|
||||
1,
|
||||
{[QGVAR(simulationInterval), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -78,6 +78,7 @@ PREP(removeStat);
|
||||
PREP(removeVirtualItems);
|
||||
PREP(renameDefaultLoadout);
|
||||
PREP(replaceUniqueItemsLoadout);
|
||||
PREP(saveLoadout);
|
||||
PREP(scanConfig);
|
||||
PREP(showItem);
|
||||
PREP(sortPanel);
|
||||
|
@ -85,10 +85,10 @@ private _insigniaCondition = toString {
|
||||
|
||||
// Ref fnc_addListBoxItem, 0/nil = configFile, 1 = campaignConfigFile, 2 = missionConfigFile
|
||||
{
|
||||
GVAR(insigniaCache) set [_x, 1];
|
||||
GVAR(insigniaCache) set [configName _x, 1];
|
||||
} forEach (_insigniaCondition configClasses (campaignConfigFile >> "CfgUnitInsignia"));
|
||||
{
|
||||
GVAR(insigniaCache) set [_x, 2];
|
||||
GVAR(insigniaCache) set [configName _x, 2];
|
||||
} forEach (_insigniaCondition configClasses (missionConfigFile >> "CfgUnitInsignia"));
|
||||
|
||||
ADDON = true;
|
||||
|
37
addons/arsenal/functions/fnc_saveLoadout.sqf
Normal file
37
addons/arsenal/functions/fnc_saveLoadout.sqf
Normal file
@ -0,0 +1,37 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: DartRuffian
|
||||
* Saves a given loadout to the client's profile.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Name of loadout <STRING>
|
||||
* 1: CBA extended loadout or getUnitLoadout array <ARRAY>
|
||||
* 2: Replace existing loadout <BOOL> (default: false)
|
||||
*
|
||||
* Return Value:
|
||||
* True if loadout was saved, otherwise false <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* ["Current Loadout", getUnitLoadout ACE_player] call ace_arsenal_fnc_saveLoadout
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_name", "", [""]], ["_loadout", [], [[]]], ["_replaceExisting", false, [false]]];
|
||||
|
||||
if (_name == "" || {_loadout isEqualTo []}) exitWith { false };
|
||||
|
||||
private _loadouts = profileNamespace getVariable [QGVAR(saved_loadouts), []];
|
||||
private _loadoutIndex = _loadouts findIf {(_x#0) == _name};
|
||||
|
||||
// If a loadout with same name already exists and no overwriting enabled, quit
|
||||
if (!_replaceExisting && {_loadoutIndex != -1}) exitWith { false };
|
||||
|
||||
if (_loadoutIndex == -1) then {
|
||||
_loadouts pushBack [_name, _loadout];
|
||||
} else {
|
||||
_loadouts set [_loadoutIndex, [_name, _loadout]];
|
||||
};
|
||||
|
||||
profileNamespace setVariable [QGVAR(saved_loadouts), _loadouts];
|
||||
true
|
@ -6,7 +6,7 @@ class CfgPatches {
|
||||
units[] = {"ACE_Item_ATragMX"};
|
||||
weapons[] = {"ACE_ATragMX"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_Advanced_Ballistics", "ACE_common", "ACE_weather"};
|
||||
requiredAddons[] = {"ace_advanced_ballistics", "ace_common", "ace_weather"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Ruthberg"};
|
||||
url = ECSTRING(main,URL);
|
||||
|
@ -50,8 +50,8 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
||||
} else {
|
||||
GVAR(placeAction) = PLACE_WAITING;
|
||||
|
||||
[_unit, "forceWalk", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockThrow", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "forceWalk", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockThrow", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
[{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call CBA_fnc_execNextFrame;
|
||||
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = PLACE_APPROVE;}] call EFUNC(common,AddActionEventHandler)];
|
||||
@ -88,8 +88,8 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
||||
{!([_attachToVehicle, _unit, _itemClassname] call FUNC(canAttach))}) then {
|
||||
|
||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||
[_unit, "forceWalk", "ACE_Attach", false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockThrow", "ACE_Attach", false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "forceWalk", QUOTE(ADDON), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockThrow", QUOTE(ADDON), false] call EFUNC(common,statusEffect_set);
|
||||
[] call EFUNC(interaction,hideMouseHint);
|
||||
[_unit, "DefaultAction", (_unit getVariable [QGVAR(placeActionEH), -1])] call EFUNC(common,removeActionEventHandler);
|
||||
_unit removeAction _actionID;
|
||||
|
@ -40,12 +40,12 @@ if (_respawn > 3) then {
|
||||
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||
[_unit, false] call FUNC(setHandcuffed);
|
||||
};
|
||||
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "setCaptive", QGVAR(handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
||||
[_unit, false] call FUNC(setSurrendered);
|
||||
};
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "setCaptive", QGVAR(surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_unit getVariable [QGVAR(isEscorting), false]) then {
|
||||
_unit setVariable [QGVAR(isEscorting), false, true];
|
||||
|
@ -41,8 +41,8 @@ if ((_unit getVariable [QGVAR(isHandcuffed), false]) isEqualTo _state) exitWith
|
||||
|
||||
if (_state) then {
|
||||
_unit setVariable [QGVAR(isHandcuffed), true, true];
|
||||
[_unit, "setCaptive", QGVAR(Handcuffed), true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(Handcuffed), true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "setCaptive", QGVAR(handcuffed), true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(handcuffed), true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_unit getVariable [QGVAR(isSurrendering), false]) then { //If surrendering, stop
|
||||
[_unit, false] call FUNC(setSurrendered);
|
||||
@ -82,8 +82,8 @@ if (_state) then {
|
||||
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
_unit setVariable [QGVAR(isHandcuffed), false, true];
|
||||
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "setCaptive", QGVAR(handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
//remove AnimChanged EH
|
||||
private _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1];
|
||||
|
@ -44,8 +44,8 @@ if (_state) then {
|
||||
|
||||
_unit setVariable [QGVAR(isSurrendering), true, true];
|
||||
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(Surrendered), true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "setCaptive", QGVAR(surrendered), true] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(surrendered), true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_unit == ACE_player) then {
|
||||
["captive", [false, false, false, false, false, false, false, false, false, true]] call EFUNC(common,showHud);
|
||||
@ -71,8 +71,8 @@ if (_state) then {
|
||||
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
_unit setVariable [QGVAR(isSurrendering), false, true];
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "setCaptive", QGVAR(surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
[_unit, "blockRadio", QGVAR(surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
//remove AnimChanged EH
|
||||
private _animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1];
|
||||
|
@ -158,6 +158,7 @@
|
||||
<Japanese>目隠しを外す</Japanese>
|
||||
<Russian>Снять повязку с глаз</Russian>
|
||||
<Spanish>Quitar vendas de los ojos</Spanish>
|
||||
<Portuguese>Remover a venda</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_CableTie">
|
||||
<English>Cable Tie</English>
|
||||
|
@ -62,6 +62,17 @@ if (_item isEqualType objNull) then {
|
||||
|
||||
// Some objects below water will take damage over time, eventually becoming "water logged" and unfixable (because of negative z attach)
|
||||
[_item, "blockDamage", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
// Prevent UAVs from firing
|
||||
private _UAVCrew = _item call EFUNC(common,getVehicleUAVCrew);
|
||||
|
||||
if (_UAVCrew isNotEqualTo []) then {
|
||||
{
|
||||
[_x, true] call EFUNC(common,disableAiUAV);
|
||||
} forEach _UAVCrew;
|
||||
|
||||
_item setVariable [QGVAR(isUAV), _UAVCrew, true];
|
||||
};
|
||||
};
|
||||
|
||||
// Invoke listenable event
|
||||
|
@ -100,14 +100,26 @@ if (_item isEqualType objNull) then {
|
||||
|
||||
// Create smoke effect when crate landed
|
||||
[{
|
||||
(_this select 0) params ["_object"];
|
||||
params ["_object", "_pfhID"];
|
||||
|
||||
if (isNull _object) exitWith {
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
_pfhID call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
if (getPos _object select 2 < 1) exitWith {
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
_pfhID call CBA_fnc_removePerFrameHandler;
|
||||
|
||||
// Reenable UAV crew
|
||||
private _UAVCrew = _object getVariable [QGVAR(isUAV), []];
|
||||
|
||||
if (_UAVCrew isNotEqualTo []) then {
|
||||
// Reenable AI
|
||||
{
|
||||
[_x, false] call EFUNC(common,disableAiUAV);
|
||||
} forEach _UAVCrew;
|
||||
|
||||
_object setVariable [QGVAR(isUAV), nil, true];
|
||||
};
|
||||
|
||||
if ((GVAR(disableParadropEffectsClasstypes) findIf {_object isKindOf _x}) == -1) then {
|
||||
private _smoke = "SmokeshellYellow" createVehicle [0, 0, 0];
|
||||
|
@ -96,6 +96,18 @@ if (_object isEqualType objNull) then {
|
||||
|
||||
[QEGVAR(zeus,addObjects), [[_object], _objectCurators]] call CBA_fnc_serverEvent;
|
||||
};
|
||||
|
||||
// Reenable UAV crew
|
||||
private _UAVCrew = _object getVariable [QGVAR(isUAV), []];
|
||||
|
||||
if (_UAVCrew isNotEqualTo []) then {
|
||||
// Reenable AI
|
||||
{
|
||||
[_x, false] call EFUNC(common,disableAiUAV);
|
||||
} forEach _UAVCrew;
|
||||
|
||||
_object setVariable [QGVAR(isUAV), nil, true];
|
||||
};
|
||||
} else {
|
||||
_object = createVehicle [_item, _emptyPosAGL, [], 0, "NONE"];
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {"ACE_Box_Chemlights","ACE_Item_Chemlight_Shield","ACE_Item_Chemlight_Shield_Green","ACE_Item_Chemlight_Shield_Red","ACE_Item_Chemlight_Shield_Blue","ACE_Item_Chemlight_Shield_Yellow","ACE_Item_Chemlight_Shield_Orange","ACE_Item_Chemlight_Shield_White","ModuleChemlightOrange","ModuleChemlightWhite","ModuleChemlightHiRed","ModuleChemlightHiYellow","ModuleChemlightHiWhite","ModuleChemlightHiBlue","ModuleChemlightHiGreen","ModuleChemlightUltraHiOrange"};
|
||||
weapons[] = {"ACE_Chemlight_Shield", "ACE_Chemlight_Shield_Green","ACE_Chemlight_Shield_Red","ACE_Chemlight_Shield_Blue","ACE_Chemlight_Shield_Yellow","ACE_Chemlight_Shield_Orange","ACE_Chemlight_Shield_White"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
|
@ -1,4 +1,5 @@
|
||||
#define COMPONENT chemlights
|
||||
#define COMPONENT_BEAUTIFIED Chemlights
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
|
@ -43,6 +43,7 @@ PREP(deviceKeyFindValidIndex);
|
||||
PREP(deviceKeyRegisterNew);
|
||||
PREP(deprecateComponent);
|
||||
PREP(disableAI);
|
||||
PREP(disableAiUAV);
|
||||
PREP(disableUserInput);
|
||||
PREP(displayIcon);
|
||||
PREP(displayText);
|
||||
@ -177,6 +178,7 @@ PREP(setupLocalUnitsHandler);
|
||||
PREP(setVariableJIP);
|
||||
PREP(setVariablePublic);
|
||||
PREP(setVolume);
|
||||
PREP(setWeaponLightLaserState);
|
||||
PREP(showHud);
|
||||
PREP(statusEffect_addType);
|
||||
PREP(statusEffect_get);
|
||||
@ -189,6 +191,7 @@ PREP(stopGesture);
|
||||
PREP(stringCompare);
|
||||
PREP(stringToColoredText);
|
||||
PREP(swayLoop);
|
||||
PREP(switchAttachmentMode);
|
||||
PREP(switchPersistentLaser);
|
||||
PREP(switchToGroupSide);
|
||||
PREP(throttledPublicVariable);
|
||||
|
@ -19,16 +19,16 @@
|
||||
|
||||
//Status Effect EHs:
|
||||
[QGVAR(setStatusEffect), LINKFUNC(statusEffect_set)] call CBA_fnc_addEventHandler;
|
||||
["forceWalk", false, ["ace_advanced_fatigue", "ACE_SwitchUnits", "ACE_Attach", "ace_dragging", "ACE_Explosives", "ACE_Ladder", "ACE_Sandbag", "ACE_refuel", "ACE_rearm", "ACE_Trenches", "ace_medical_fracture"]] call FUNC(statusEffect_addType);
|
||||
["blockSprint", false, ["ace_advanced_fatigue", "ace_dragging", "ace_medical_fracture"]] call FUNC(statusEffect_addType);
|
||||
["setCaptive", true, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered)]] call FUNC(statusEffect_addType);
|
||||
["blockDamage", false, ["fixCollision", "ACE_cargo"]] call FUNC(statusEffect_addType);
|
||||
["blockEngine", false, ["ACE_Refuel"]] call FUNC(statusEffect_addType);
|
||||
["blockThrow", false, ["ACE_Attach", "ACE_concertina_wire", "ace_dragging", "ACE_Explosives", "ACE_Ladder", "ACE_rearm", "ACE_refuel", "ACE_Sandbag", "ACE_Trenches", "ACE_tripod"]] call FUNC(statusEffect_addType);
|
||||
["forceWalk", false, ["ace_advanced_fatigue", "ace_attach", "ace_dragging", "ace_explosives", QEGVAR(medical,fracture), "ace_rearm", "ace_refuel", "ace_sandbag", "ace_switchunits", "ace_tacticalladder", "ace_trenches"]] call FUNC(statusEffect_addType);
|
||||
["blockSprint", false, ["ace_advanced_fatigue", "ace_dragging", QEGVAR(medical,fracture)]] call FUNC(statusEffect_addType);
|
||||
["setCaptive", true, [QEGVAR(captives,handcuffed), QEGVAR(captives,surrendered)]] call FUNC(statusEffect_addType);
|
||||
["blockDamage", false, ["fixCollision", "ace_cargo"]] call FUNC(statusEffect_addType);
|
||||
["blockEngine", false, ["ace_refuel"]] call FUNC(statusEffect_addType);
|
||||
["blockThrow", false, ["ace_attach", "ace_concertina_wire", "ace_dragging", "ace_explosives", "ace_rearm", "ace_refuel", "ace_sandbag", "ace_tacticalladder", "ace_trenches", "ace_tripod"]] call FUNC(statusEffect_addType);
|
||||
["setHidden", true, ["ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||
["blockRadio", false, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), "ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||
["blockRadio", false, [QEGVAR(captives,handcuffed), QEGVAR(captives,surrendered), "ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||
["blockSpeaking", false, ["ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||
["disableWeaponAssembly", false, ["ace_common", "ace_common_lockVehicle", "ace_csw"]] call FUNC(statusEffect_addType);
|
||||
["disableWeaponAssembly", false, ["ace_common", QGVAR(lockVehicle), "ace_csw"]] call FUNC(statusEffect_addType);
|
||||
["lockInventory", true, [], true] call FUNC(statusEffect_addType);
|
||||
|
||||
[QGVAR(forceWalk), {
|
||||
@ -133,6 +133,30 @@
|
||||
_object lockInventory (_set > 0);
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(disableAiUAV), {
|
||||
params ["_unit", "_disable"];
|
||||
|
||||
if (_disable) then {
|
||||
private _features = ["AUTOTARGET", "TARGET", "WEAPONAIM"/*, "FIREWEAPON"*/, "RADIOPROTOCOL"]; // TODO: Uncomment in 2.18
|
||||
|
||||
// Save current status
|
||||
_unit setVariable [QGVAR(featuresAiUAV), _features apply {[_x, _unit checkAIFeature _x]}];
|
||||
|
||||
{
|
||||
_unit enableAIFeature [_x, false];
|
||||
} forEach _features;
|
||||
} else {
|
||||
// Restore previous status
|
||||
private _features = _unit getVariable [QGVAR(featuresAiUAV), []];
|
||||
|
||||
{
|
||||
_unit enableAIFeature [_x select 0, _x select 1];
|
||||
} forEach _features;
|
||||
|
||||
_unit setVariable [QGVAR(featuresAiUAV), nil];
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
//Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit
|
||||
//This variable is used for isPlayer checks
|
||||
if (isServer) then {
|
||||
@ -192,6 +216,7 @@ if (isServer) then {
|
||||
[QGVAR(setVectorDirAndUp), {(_this select 0) setVectorDirAndUp (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(addWeaponItem), {(_this select 0) addWeaponItem [(_this select 1), (_this select 2)]}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(removeMagazinesTurret), {(_this select 0) removeMagazinesTurret [_this select 1, _this select 2]}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(triggerAmmo), {triggerAmmo _this}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(setVanillaHitPointDamage), {
|
||||
params ["_object", "_hitPointAnddamage"];
|
||||
|
@ -12,6 +12,8 @@ GVAR(showHudHash) = createHashMap;
|
||||
GVAR(vehicleIconCache) = createHashMap; // for getVehicleIcon
|
||||
GVAR(wheelSelections) = createHashMap;
|
||||
|
||||
GVAR(InteractionConditions) = createHashMap;
|
||||
|
||||
GVAR(blockItemReplacement) = false;
|
||||
|
||||
// Cache for FUNC(isModLoaded)
|
||||
|
@ -15,3 +15,25 @@ uiNamespace setVariable [QGVAR(addonCache), createHashMap];
|
||||
|
||||
// Cache for FUNC(getConfigName)
|
||||
uiNamespace setVariable [QGVAR(configNames), createHashMap];
|
||||
|
||||
//Add warnings for missing compat PBOs
|
||||
GVAR(isModLoadedCache) = createHashMap;
|
||||
{
|
||||
_x params ["_modPBO", "_compatPBO"];
|
||||
if ([_modPBO] call FUNC(isModLoaded) && {!([_compatPBO] call FUNC(isModLoaded))}) then {
|
||||
WARNING_2("Weapon Mod [%1] missing ace compat pbo [%2]",_modPBO,_compatPBO);
|
||||
};
|
||||
} forEach [
|
||||
["CUP_Creatures_People_LoadOrder","ace_compat_cup_units"],
|
||||
["CUP_Vehicles_LoadOrder","ace_compat_cup_vehicles"],
|
||||
["CUP_Weapons_LoadOrder","ace_compat_cup_weapons"],
|
||||
["r3f_armes_c","ace_compat_r3f"],
|
||||
["RF_Data_Loadorder","ace_compat_rf"],
|
||||
["RH_acc","ace_compat_rh_acc"],
|
||||
["RH_de_cfg","ace_compat_rh_de"],
|
||||
["RH_m4_cfg","ace_compat_rh_m4"],
|
||||
["RH_PDW","ace_compat_rh_pdw"],
|
||||
["RKSL_PMII","ace_compat_rksl_pm_ii"],
|
||||
["iansky_opt","ace_compat_sma3_iansky"],
|
||||
["R3F_Armes","ace_compat_r3f"]
|
||||
];
|
||||
|
@ -19,17 +19,4 @@
|
||||
params ["_conditionName", "_conditionFunc"];
|
||||
|
||||
_conditionName = toLowerANSI _conditionName;
|
||||
|
||||
private _conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];
|
||||
_conditions params ["_conditionNames", "_conditionFuncs"];
|
||||
|
||||
private _index = _conditionNames find _conditionName;
|
||||
|
||||
if (_index == -1) then {
|
||||
_index = count _conditionNames;
|
||||
};
|
||||
|
||||
_conditionNames set [_index, _conditionName];
|
||||
_conditionFuncs set [_index, _conditionFunc];
|
||||
|
||||
GVAR(InteractionConditions) = _conditions;
|
||||
GVAR(InteractionConditions) set [_conditionName, _conditionFunc];
|
||||
|
@ -27,15 +27,11 @@ private _owner = _target getVariable [QGVAR(owner), objNull];
|
||||
if (!isNull _owner && {_unit != _owner}) exitWith {false};
|
||||
|
||||
// check general conditions
|
||||
private _conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];
|
||||
_conditions params ["_conditionNames", "_conditionFuncs"];
|
||||
|
||||
private _canInteract = true;
|
||||
|
||||
{
|
||||
if (!(_x in _exceptions) && {!([_unit, _target] call (_conditionFuncs select _forEachIndex))}) exitWith {
|
||||
if (!(_x in _exceptions) && {!([_unit, _target] call _y)}) exitWith {
|
||||
_canInteract = false;
|
||||
};
|
||||
} forEach _conditionNames;
|
||||
} forEach GVAR(InteractionConditions);
|
||||
|
||||
_canInteract
|
||||
|
45
addons/common/functions/fnc_disableAiUAV.sqf
Normal file
45
addons/common/functions/fnc_disableAiUAV.sqf
Normal file
@ -0,0 +1,45 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: johnb43
|
||||
* Disables/Enables UAV AI crew members, can be run on any machine and is applied globally.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Disable AI <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, true] call ace_common_fnc_disableAiUAV
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params [["_unit", objNull, [objNull]], ["_disable", true, [false]]];
|
||||
|
||||
// Allow disabling of Zeus remote controlled units
|
||||
if (!alive _unit || {isPlayer _unit} || {!unitIsUAV _unit}) exitWith {};
|
||||
|
||||
if (_disable) then {
|
||||
// Ignore if already disabled
|
||||
if (!isNil "_jipID") exitWith {};
|
||||
|
||||
// Disable shooting and targeting on every machine
|
||||
// Give predefined JIP ID, in case of simultaneous executions on different machines
|
||||
private _jipID = [QGVAR(disableAiUAV), [_unit, _disable], QGVAR(disableAiUAV_) + hashValue _unit] call CBA_fnc_globalEventJIP;
|
||||
[_jipID, _unit] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_unit setVariable [QGVAR(disableAiUavJipID), _jipID, true];
|
||||
} else {
|
||||
// Restore shooting and targeting to each client's individual state prior to disabling
|
||||
private _jipID = _unit getVariable QGVAR(disableAiUavJipID);
|
||||
|
||||
if (isNil "_jipID") exitWith {};
|
||||
|
||||
_jipID call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_unit setVariable [QGVAR(disableAiUavJipID), nil, true];
|
||||
|
||||
[QGVAR(disableAiUAV), [_unit, _disable]] call CBA_fnc_globalEvent;
|
||||
};
|
@ -1,34 +1,45 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: commy2
|
||||
* Author: commy2, johnb43
|
||||
* Get the available firing modes of a weapon. Will ignore the AI helper modes.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Weapon <STRING>
|
||||
* 1: Muzzle <STRING> (default: weapon)
|
||||
*
|
||||
* Return Value:
|
||||
* Firing Modes <ARRAY>
|
||||
*
|
||||
* Example:
|
||||
* ["gun"] call ace_common_fnc_getWeaponModes
|
||||
* "arifle_AK12_F" call ace_common_fnc_getWeaponModes
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_weapon", "", [""]]];
|
||||
params [["_weapon", "", [""]], ["_muzzle", nil, [""]]];
|
||||
|
||||
private _config = configFile >> "CfgWeapons" >> _weapon;
|
||||
|
||||
if (!isNil "_muzzle") then {
|
||||
_config = _config >> _muzzle
|
||||
};
|
||||
|
||||
if (!isClass _config) exitWith {
|
||||
[] // return
|
||||
};
|
||||
|
||||
private _modes = [];
|
||||
|
||||
{
|
||||
if (getNumber (_config >> _x >> "showToPlayer") == 1) then {
|
||||
_modes pushBack _x;
|
||||
};
|
||||
|
||||
if (_x == "this") then {
|
||||
_modes pushBack _weapon;
|
||||
if (_x == "this") then {
|
||||
_modes pushBack (configName _config);
|
||||
} else {
|
||||
if (isClass (_config >> _x)) then {
|
||||
_modes pushBack (configName (_config >> _x));
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach getArray (_config >> "modes");
|
||||
|
||||
_modes
|
||||
_modes // return
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: commy2
|
||||
* Author: commy2, johnb43
|
||||
* Get the muzzles of a weapon.
|
||||
*
|
||||
* Arguments:
|
||||
@ -10,19 +10,30 @@
|
||||
* All weapon muzzles <ARRAY>
|
||||
*
|
||||
* Example:
|
||||
* ["gun"] call ace_common_fnc_getWeaponMuzzles
|
||||
* "arifle_AK12_F" call ace_common_fnc_getWeaponMuzzles
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_weapon", "", [""]]];
|
||||
|
||||
private _muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles");
|
||||
private _config = configFile >> "CfgWeapons" >> _weapon;
|
||||
|
||||
if (!isClass _config) exitWith {
|
||||
[] // return
|
||||
};
|
||||
|
||||
private _muzzles = [];
|
||||
|
||||
// Get config case muzzle names
|
||||
{
|
||||
if (_x == "this") then {
|
||||
_muzzles set [_forEachIndex, configName (configFile >> "CfgWeapons" >> _weapon)];
|
||||
_muzzles pushBack (configName _config);
|
||||
} else {
|
||||
if (isClass (_config >> _x)) then {
|
||||
_muzzles pushBack (configName (_config >> _x));
|
||||
};
|
||||
};
|
||||
} forEach _muzzles;
|
||||
} forEach getArray (_config >> "muzzles");
|
||||
|
||||
_muzzles
|
||||
_muzzles // return
|
||||
|
@ -18,16 +18,4 @@
|
||||
params ["_conditionName"];
|
||||
|
||||
_conditionName = toLowerANSI _conditionName;
|
||||
|
||||
private _conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];
|
||||
|
||||
_conditions params ["_conditionNames", "_conditionFuncs"];
|
||||
|
||||
private _index = _conditionNames find _conditionName;
|
||||
|
||||
if (_index == -1) exitWith {};
|
||||
|
||||
_conditionNames deleteAt _index;
|
||||
_conditionFuncs deleteAt _index;
|
||||
|
||||
GVAR(InteractionConditions) = _conditions;
|
||||
GVAR(InteractionConditions) deleteAt _conditionName;
|
||||
|
59
addons/common/functions/fnc_setWeaponLightLaserState.sqf
Normal file
59
addons/common/functions/fnc_setWeaponLightLaserState.sqf
Normal file
@ -0,0 +1,59 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: johnb43
|
||||
* Toggles the unit's current weapon's light & laser.
|
||||
* API for persistent lasers. Doesn't work on AI, as they have their own logic.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Weapon light/laser state <BOOL> (default: false)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, true] call ace_common_fnc_setWeaponLightLaserState
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_unit", objNull, [objNull]], ["_state", false, [false]]];
|
||||
|
||||
if (!local _unit || {!alive _unit} || {!(_unit call FUNC(isPlayer))}) exitWith {};
|
||||
|
||||
if !(_unit call CBA_fnc_canUseWeapon) exitWith {};
|
||||
|
||||
private _currentWeapon = currentWeapon _unit;
|
||||
|
||||
// Exit if unit has no weapon selected
|
||||
if (_currentWeapon == "") exitWith {};
|
||||
|
||||
private _weaponIndex = [_unit, _currentWeapon] call FUNC(getWeaponIndex);
|
||||
|
||||
// Ignore binoculars
|
||||
if (_weaponIndex == -1) exitWith {};
|
||||
|
||||
_unit setVariable [QGVAR(laserEnabled_) + str _weaponIndex, _state];
|
||||
|
||||
// Turn off light/laser (switching between weapons can leave previous weapon laser on)
|
||||
action ["GunLightOff", _unit];
|
||||
action ["IRLaserOff", _unit];
|
||||
|
||||
// Light/laser is off, don't need to do anything more
|
||||
if (!_state) exitWith {};
|
||||
|
||||
// Turn laser on next frame (if weapon hasn't changed)
|
||||
[{
|
||||
params ["_unit", "_currentWeapon"];
|
||||
|
||||
private _weaponState = (weaponState _unit) select [0, 3];
|
||||
|
||||
if (_weaponState select 0 != _currentWeapon) exitWith {};
|
||||
|
||||
action ["GunLightOn", _unit];
|
||||
action ["IRLaserOn", _unit];
|
||||
|
||||
_unit selectWeapon _weaponState;
|
||||
}, [_unit, _currentWeapon]] call CBA_fnc_execNextFrame;
|
||||
|
||||
nil
|
73
addons/common/functions/fnc_switchAttachmentMode.sqf
Normal file
73
addons/common/functions/fnc_switchAttachmentMode.sqf
Normal file
@ -0,0 +1,73 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Switch attachment from one mode to another - based on CBA_accessory_fnc_switchAttachment
|
||||
* ToDo: Port this to CBA?
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Weapon (String or CBA-Weapon-Index (not ace's getWeaponIndex)) <STRING|NUMBER>
|
||||
* 2: From <STRING>
|
||||
* 3: To <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, 0, "ACE_DBAL_A3_Green_VP", "ACE_DBAL_A3_Green"] call ace_common_fnc_switchAttachmentMode
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit", "_weapon", "_currItem", "_switchItem"];
|
||||
TRACE_4("switchAttachmentMode",_unit,_weapon,_currItem,_switchItem);
|
||||
|
||||
if (_weapon isEqualTo "") exitWith {};
|
||||
|
||||
private _exit = _unit != ACE_player;
|
||||
switch (_weapon) do {
|
||||
case 0;
|
||||
case (primaryWeapon _unit): {
|
||||
private _currWeaponType = 0;
|
||||
_unit removePrimaryWeaponItem _currItem;
|
||||
[{
|
||||
params ["_unit", "", "_switchItem"];
|
||||
_unit addPrimaryWeaponItem _switchItem;
|
||||
["CBA_attachmentSwitched", _this] call CBA_fnc_localEvent;
|
||||
}, [_unit, _currItem, _switchItem, _currWeaponType]] call CBA_fnc_execNextFrame;
|
||||
};
|
||||
case 1;
|
||||
case (handgunWeapon _unit): {
|
||||
private _currWeaponType = 1;
|
||||
_unit removeHandgunItem _currItem;
|
||||
[{
|
||||
params ["_unit", "", "_switchItem"];
|
||||
_unit addHandgunItem _switchItem;
|
||||
["CBA_attachmentSwitched", _this] call CBA_fnc_localEvent;
|
||||
}, [_unit, _currItem, _switchItem, _currWeaponType]] call CBA_fnc_execNextFrame;
|
||||
};
|
||||
case 2;
|
||||
case (secondaryWeapon _unit): {
|
||||
private _currWeaponType = 2;
|
||||
_unit removeSecondaryWeaponItem _currItem;
|
||||
[{
|
||||
params ["_unit", "", "_switchItem"];
|
||||
_unit addSecondaryWeaponItem _switchItem;
|
||||
["CBA_attachmentSwitched", _this] call CBA_fnc_localEvent;
|
||||
}, [_unit, _currItem, _switchItem, _currWeaponType]] call CBA_fnc_execNextFrame;
|
||||
};
|
||||
default {
|
||||
ERROR_1("bad weapon - %1",_this);
|
||||
_exit = true;
|
||||
};
|
||||
};
|
||||
if (_exit) exitWith {}; // Don't notify if the unit isn't the local player or if an invalid weapon was passed
|
||||
|
||||
private _configSwitchItem = configfile >> "CfgWeapons" >> _switchItem;
|
||||
private _switchItemHintText = getText (_configSwitchItem >> "MRT_SwitchItemHintText");
|
||||
private _switchItemHintImage = getText (_configSwitchItem >> "picture");
|
||||
|
||||
playSound "click";
|
||||
if (_switchItemHintText != "") then {
|
||||
[[_switchItemHintImage, 2.0], [_switchItemHintText], true] call CBA_fnc_notify;
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dystopian
|
||||
* Author: Dystopian, johnb43
|
||||
* Controls persistent laser state.
|
||||
*
|
||||
* Arguments:
|
||||
@ -17,51 +17,87 @@
|
||||
|
||||
params ["_enabled"];
|
||||
|
||||
if (!hasInterface) exitwith {};
|
||||
|
||||
// Reset state
|
||||
{
|
||||
ACE_player setVariable [QGVAR(laserEnabled_) + str _x, nil];
|
||||
} forEach [0, 1, 2];
|
||||
|
||||
if (!_enabled) exitWith {
|
||||
if (isNil QGVAR(laserKeyDownEH)) exitWith {};
|
||||
["KeyDown", GVAR(laserKeyDownEH)] call CBA_fnc_removeDisplayHandler;
|
||||
|
||||
removeUserActionEventHandler ["headlights", "Activate", GVAR(laserKeyDownEH)];
|
||||
|
||||
["loadout", GVAR(laserLoadoutEH)] call CBA_fnc_removePlayerEventHandler;
|
||||
["turret", GVAR(laserTurretEH)] call CBA_fnc_removePlayerEventHandler;
|
||||
["vehicle", GVAR(laserVehicleEH)] call CBA_fnc_removePlayerEventHandler;
|
||||
["weapon", GVAR(laserWeaponEH)] call CBA_fnc_removePlayerEventHandler;
|
||||
|
||||
GVAR(laserKeyDownEH) = nil;
|
||||
GVAR(laserLoadoutEH) = nil;
|
||||
GVAR(laserTurretEH) = nil;
|
||||
GVAR(laserVehicleEH) = nil;
|
||||
GVAR(laserWeaponEH) = nil;
|
||||
};
|
||||
|
||||
GVAR(laserKeyDownEH) = ["KeyDown", {
|
||||
if !((_this select 1) in actionKeys "headlights") exitWith {false};
|
||||
private _weapon = currentWeapon ACE_player;
|
||||
[
|
||||
{
|
||||
params ["_weapon", "_laserWasEnabled"];
|
||||
private _laserEnabled = ACE_player isIRLaserOn _weapon || {ACE_player isFlashlightOn _weapon};
|
||||
if (_laserEnabled && {_laserWasEnabled} || {!_laserEnabled && {!_laserWasEnabled}}) exitWith {};
|
||||
private _weaponIndex = [ACE_player, _weapon] call FUNC(getWeaponIndex);
|
||||
ACE_player setVariable [QGVAR(laserEnabled_) + str _weaponIndex, [nil, true] select _laserEnabled];
|
||||
},
|
||||
[_weapon, ACE_player isIRLaserOn _weapon || {ACE_player isFlashlightOn _weapon}]
|
||||
] call CBA_fnc_execNextFrame;
|
||||
false
|
||||
}] call CBA_fnc_addDisplayHandler;
|
||||
private _fnc_getLightLaserState = {
|
||||
private _currentWeapon = currentWeapon ACE_player;
|
||||
|
||||
private _laserEH = {
|
||||
if (sunOrMoon == 1) exitWith {};
|
||||
params ["_player"];
|
||||
private _weaponIndex = [_player, currentWeapon _player] call FUNC(getWeaponIndex);
|
||||
if (
|
||||
!(_player getVariable [QGVAR(laserEnabled_) + str _weaponIndex, false])
|
||||
|| {_weaponIndex > 0 && {"" != primaryWeapon _player}} // Arma switches to primary weapon if exists
|
||||
|| {!(_player call CBA_fnc_canUseWeapon)} // ignore in vehicle except FFV
|
||||
) exitWith {};
|
||||
[
|
||||
// wait for weapon in "ready to fire" direction
|
||||
{0.01 > getCameraViewDirection _this vectorDistance (_this weaponDirection currentWeapon _this)},
|
||||
{{_this action [_x, _this]} forEach ["GunLightOn", "IRLaserOn"]},
|
||||
_player,
|
||||
3,
|
||||
{{_this action [_x, _this]} forEach ["GunLightOn", "IRLaserOn"]}
|
||||
] call CBA_fnc_waitUntilAndExecute;
|
||||
if (_currentWeapon == "") exitWith {};
|
||||
|
||||
// Ignore in vehicle except FFV
|
||||
if !(ACE_player call CBA_fnc_canUseWeapon) exitWith {};
|
||||
|
||||
private _weaponIndex = [ACE_player, _currentWeapon] call FUNC(getWeaponIndex);
|
||||
|
||||
if (_weaponIndex == -1) exitWith {};
|
||||
|
||||
// Light/laser state only changes in the next frame
|
||||
// However, as by default changing attachment modes is CTRL + L, the vanilla EH triggers when lights are bound to L (even despite CBA intercepting keystroke)
|
||||
// Therefore, add an extra frame of delay, after which the previous laser state will have been restored
|
||||
[{
|
||||
ACE_player setVariable [
|
||||
QGVAR(laserEnabled_) + str (_this select 1),
|
||||
ACE_player isIRLaserOn (_this select 0) || {ACE_player isFlashlightOn (_this select 0)}
|
||||
];
|
||||
}, [_currentWeapon, _weaponIndex], 2] call CBA_fnc_execAfterNFrames;
|
||||
};
|
||||
|
||||
GVAR(laserLoadoutEH) = ["loadout", _laserEH] call CBA_fnc_addPlayerEventHandler;
|
||||
GVAR(laserTurretEH) = ["turret", _laserEH] call CBA_fnc_addPlayerEventHandler;
|
||||
GVAR(laserVehicleEH) = ["vehicle", _laserEH] call CBA_fnc_addPlayerEventHandler;
|
||||
GVAR(laserWeaponEH) = ["weapon", _laserEH] call CBA_fnc_addPlayerEventHandler;
|
||||
// Get current weapon light/laser state
|
||||
call _fnc_getLightLaserState;
|
||||
|
||||
// Update state every time it's changed
|
||||
GVAR(laserKeyDownEH) = addUserActionEventHandler ["headlights", "Activate", _fnc_getLightLaserState];
|
||||
|
||||
// Dropping weapons, as well as switching light/laser attachments turns off lights/lasers
|
||||
GVAR(lastWeapons) = (getUnitLoadout ACE_player) select [0, 3];
|
||||
|
||||
// Monitor weapon addition/removal here
|
||||
GVAR(laserLoadoutEH) = ["loadout", {
|
||||
params ["_unit", "_loadout"];
|
||||
|
||||
private _weapons = _loadout select [0, 3];
|
||||
|
||||
if (_weapons isEqualTo GVAR(lastWeapons)) exitWith {};
|
||||
|
||||
GVAR(lastWeapons) = _weapons;
|
||||
|
||||
[
|
||||
_unit,
|
||||
_unit getVariable [QGVAR(laserEnabled_) + str ([_unit, currentWeapon _unit] call FUNC(getWeaponIndex)), false]
|
||||
] call FUNC(setWeaponLightLaserState);
|
||||
}] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
private _fnc_switchPersistentLaserEH = {
|
||||
params ["_unit"];
|
||||
|
||||
[
|
||||
_unit,
|
||||
_unit getVariable [QGVAR(laserEnabled_) + str ([_unit, currentWeapon _unit] call FUNC(getWeaponIndex)), false]
|
||||
] call FUNC(setWeaponLightLaserState);
|
||||
};
|
||||
|
||||
GVAR(laserTurretEH) = ["turret", _fnc_switchPersistentLaserEH] call CBA_fnc_addPlayerEventHandler;
|
||||
GVAR(laserVehicleEH) = ["vehicle", _fnc_switchPersistentLaserEH] call CBA_fnc_addPlayerEventHandler;
|
||||
GVAR(laserWeaponEH) = ["weapon", _fnc_switchPersistentLaserEH] call CBA_fnc_addPlayerEventHandler;
|
||||
|
1
addons/compat_aegis/$PBOPREFIX$
Normal file
1
addons/compat_aegis/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\compat_aegis
|
82
addons/compat_aegis/CfgVehicles.hpp
Normal file
82
addons/compat_aegis/CfgVehicles.hpp
Normal file
@ -0,0 +1,82 @@
|
||||
class CfgVehicles {
|
||||
class Tank;
|
||||
class Tank_F: Tank {
|
||||
class Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_01_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
// Overwrite the changes Aegis makes for the .338 coax MG on the Slammer/Merkava
|
||||
// The idea is:
|
||||
// 1) keep it as realistic as possible
|
||||
// 2) easier to overwrite something with skipWhenMissingDependencies than to not overwrite something if another mod is loaded
|
||||
weapons[] = {"cannon_120mm", "ACE_LMG_coax_MAG58_mem3"}; // Base 1.82: "cannon_120mm","LMG_coax"
|
||||
magazines[] = {
|
||||
"24Rnd_120mm_APFSDS_shells_Tracer_Red",
|
||||
"12Rnd_120mm_HE_shells_Tracer_Red",
|
||||
"12Rnd_120mm_HEAT_MP_T_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"4Rnd_120mm_LG_cannon_missiles" // Aegis adds laser-guided munitions
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class B_MBT_01_base_F: MBT_01_base_F {};
|
||||
class B_MBT_01_cannon_F: B_MBT_01_base_F {};
|
||||
class B_MBT_01_TUSK_F: B_MBT_01_cannon_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
weapons[] = {"cannon_120mm", "ACE_LMG_coax_MAG58_mem3"}; // Base 1.82: "cannon_120mm","LMG_coax"
|
||||
magazines[] = {
|
||||
"24Rnd_120mm_APFSDS_shells_Tracer_Red",
|
||||
"12Rnd_120mm_HE_shells_Tracer_Red",
|
||||
"12Rnd_120mm_HEAT_MP_T_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"200Rnd_762x51_Belt_Red",
|
||||
"4Rnd_120mm_LG_cannon_missiles" // Aegis adds laser-guided munitions
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
18
addons/compat_aegis/config.cpp
Normal file
18
addons/compat_aegis/config.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_vehicles", "A3_Aegis_Armor_F_Aegis_MBT_01"};
|
||||
skipWhenMissingDependencies = 1;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"johnb43"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgVehicles.hpp"
|
5
addons/compat_aegis/script_component.hpp
Normal file
5
addons/compat_aegis/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT compat_aegis
|
||||
#define COMPONENT_BEAUTIFIED Aegis Compatibility
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -1,15 +1,15 @@
|
||||
class CfgMagazines {
|
||||
class US85_Magazine;
|
||||
class US85_ATMine_mag: US85_Magazine {
|
||||
EGVAR(explosives,SetupObject) = "ACE_Explosives_Place_US85_ATMine_mag";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_US85_ATMine_mag";
|
||||
useAction = 0;
|
||||
};
|
||||
class US85_M14Mine_mag: US85_Magazine {
|
||||
EGVAR(explosives,SetupObject) = "ACE_Explosives_Place_US85_M14Mine";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_US85_M14Mine";
|
||||
useAction = 0;
|
||||
};
|
||||
class US85_SatchelCharge_Mag: US85_Magazine {
|
||||
EGVAR(explosives,SetupObject) = "ACE_Explosives_Place_US85_SatchelCharge_Mag";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_US85_SatchelCharge_Mag";
|
||||
useAction = 0;
|
||||
};
|
||||
};
|
||||
|
@ -65,7 +65,7 @@ class CfgVehicles {
|
||||
class ace_csw {
|
||||
enabled = 1;
|
||||
proxyWeapon = "CUP_proxy_DSHKM";
|
||||
magazineLocation = "_target selectionPosition 'magazine'";
|
||||
magazineLocation = "_target selectionPosition 'otocvez'";
|
||||
disassembleWeapon = "CUP_DSHKM_carry";
|
||||
disassembleTurret = "ace_csw_kordTripod";
|
||||
desiredAmmo = 100;
|
||||
@ -119,7 +119,7 @@ class CfgVehicles {
|
||||
class ace_csw {
|
||||
enabled = 1;
|
||||
proxyWeapon = "CUP_proxy_MK19";
|
||||
magazineLocation = "_target selectionPosition 'magazine'";
|
||||
magazineLocation = "_target selectionPosition 'otochlaven'";
|
||||
disassembleWeapon = "CUP_MK19_carry";
|
||||
disassembleTurret = "ace_csw_m3TripodLow";
|
||||
desiredAmmo = 48;
|
||||
@ -165,7 +165,7 @@ class CfgVehicles {
|
||||
class ace_csw {
|
||||
enabled = 1;
|
||||
proxyWeapon = "CUP_proxy_SPG9";
|
||||
magazineLocation = "_target selectionPosition 'otochlaven'";
|
||||
magazineLocation = "_target selectionPosition 'handle'";
|
||||
disassembleWeapon = "CUP_SPG9_carry";
|
||||
disassembleTurret = "ace_csw_spg9Tripod";
|
||||
desiredAmmo = 1;
|
||||
|
@ -9,6 +9,7 @@
|
||||
<German>[CSW] AGS30 Gurt</German>
|
||||
<Spanish>[CSW] Cinta de AGS30</Spanish>
|
||||
<Italian>[CSW] Nastro AGS30</Italian>
|
||||
<Portuguese>[CSW] Cinto de AGS30</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_MK19_displayName">
|
||||
<English>[CSW] MK19 Belt</English>
|
||||
@ -18,6 +19,7 @@
|
||||
<German>[CSW] MK19 Gurt</German>
|
||||
<Spanish>[CSW] Cinta de MK19</Spanish>
|
||||
<Italian>[CSW] Nastro MK19</Italian>
|
||||
<Portuguese>[CSW] Cinto de MK19</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_TOW_displayName">
|
||||
<English>[CSW] TOW Tube</English>
|
||||
@ -27,6 +29,7 @@
|
||||
<German>[CSW] TOW Rohr</German>
|
||||
<Spanish>[CSW] Tubo de TOW</Spanish>
|
||||
<Italian>[CSW] Tubo TOW</Italian>
|
||||
<Portuguese>[CSW] Tubo de TOW</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_TOW2_displayName">
|
||||
<English>[CSW] TOW2 Tube</English>
|
||||
@ -36,6 +39,7 @@
|
||||
<German>[CSW] TOW2 Rohr</German>
|
||||
<Spanish>[CSW] Tubo de TOW2</Spanish>
|
||||
<Italian>[CSW] Tubo TOW2</Italian>
|
||||
<Portuguese>[CSW] Tubo de TOW2</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_PG9_displayName">
|
||||
<English>[CSW] PG-9 Round</English>
|
||||
@ -45,6 +49,7 @@
|
||||
<German>[CSW] PG-9 Rakete</German>
|
||||
<Spanish>[CSW] Carga de PG-9</Spanish>
|
||||
<Italian>[CSW] Razzo PG-9</Italian>
|
||||
<Portuguese>[CSW] Cartucho PG-9</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_OG9_displayName">
|
||||
<English>[CSW] OG-9 Round</English>
|
||||
@ -54,6 +59,7 @@
|
||||
<German>[CSW] OG-9 Rakete</German>
|
||||
<Spanish>[CSW] Carga de OG-9</Spanish>
|
||||
<Italian>[CSW] Razzo OG-9</Italian>
|
||||
<Portuguese>[CSW] Cartucho OG-9</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M1HE_displayName">
|
||||
<English>[CSW] M1 HE</English>
|
||||
@ -74,6 +80,7 @@
|
||||
<German>[CSW] M84 Rauch</German>
|
||||
<Spanish>[CSW] Humo M84</Spanish>
|
||||
<Italian>[CSW] M84 Fumogeno</Italian>
|
||||
<Portuguese>[CSW] M84 Fumígeno</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M60A2_displayName">
|
||||
<English>[CSW] M60A2 WP</English>
|
||||
|
@ -4,18 +4,18 @@ class CfgAmmo {
|
||||
hit = 3000;
|
||||
indirectHit = 3000;
|
||||
indirectHitRange = 5;
|
||||
ace_explosives_explodeOnDefuse = 0.02;
|
||||
EGVAR(explosives,explodeOnDefuse) = 0.02;
|
||||
};
|
||||
class CUP_PipeBomb_Ammo: PipeBombBase {
|
||||
hit = 3000;
|
||||
indirectHit = 3000;
|
||||
indirectHitRange = 5;
|
||||
ace_explosives_explodeOnDefuse = 0.02;
|
||||
EGVAR(explosives,explodeOnDefuse) = 0.02;
|
||||
};
|
||||
|
||||
class CUP_Mine_Ammo;
|
||||
class CUP_IED_V1_Ammo: CUP_Mine_Ammo {
|
||||
ace_explosives_explodeOnDefuse = 0.06;
|
||||
EGVAR(explosives,explodeOnDefuse) = 0.06;
|
||||
triggerWhenDestroyed = 1;
|
||||
};
|
||||
};
|
||||
|
@ -2,9 +2,9 @@ class CfgMagazines {
|
||||
class CA_Magazine;
|
||||
class CUP_TimeBomb_M: CA_Magazine {
|
||||
scope = 1;
|
||||
ace_explosives_placeable = 1;
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
useAction = 0;
|
||||
ace_explosives_setupObject = "ACE_PipeBomb_place_CUP";
|
||||
EGVAR(explosives,setupObject) = "ACE_PipeBomb_place_CUP";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch", "Cellphone"};
|
||||
class Timer {
|
||||
@ -16,9 +16,9 @@ class CfgMagazines {
|
||||
};
|
||||
};
|
||||
class CUP_Mine_M: CUP_TimeBomb_M {
|
||||
ace_explosives_placeable = 1;
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
useAction = 0;
|
||||
ace_explosives_setupObject = "ACE_Mine_place_CUP";
|
||||
EGVAR(explosives,setupObject) = "ACE_Mine_place_CUP";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -27,9 +27,9 @@ class CfgMagazines {
|
||||
};
|
||||
};
|
||||
class CUP_MineE_M: CUP_TimeBomb_M {
|
||||
ace_explosives_placeable = 1;
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
useAction = 0;
|
||||
ace_explosives_setupObject = "ACE_MineE_place_CUP";
|
||||
EGVAR(explosives,setupObject) = "ACE_MineE_place_CUP";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -39,20 +39,20 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class CUP_IED_V1_M: CUP_Mine_M {
|
||||
ace_explosives_placeable = 1;
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
useAction = 0;
|
||||
ace_explosives_setupObject = "ACE_IED_V1_place_CUP";
|
||||
EGVAR(explosives,setupObject) = "ACE_IED_V1_place_CUP";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch", "Cellphone", "PressurePlate"};
|
||||
};
|
||||
};
|
||||
class CUP_IED_V2_M: CUP_IED_V1_M {
|
||||
useAction = 0;
|
||||
ace_explosives_setupObject = "ACE_IED_V2_place_CUP";
|
||||
EGVAR(explosives,setupObject) = "ACE_IED_V2_place_CUP";
|
||||
};
|
||||
class CUP_IED_V3_M: CUP_IED_V1_M {
|
||||
useAction = 0;
|
||||
ace_explosives_setupObject = "ACE_IED_V3_place_CUP";
|
||||
EGVAR(explosives,setupObject) = "ACE_IED_V3_place_CUP";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch", "Cellphone", "PressurePlate"};
|
||||
class Timer {
|
||||
@ -77,7 +77,7 @@ class CfgMagazines {
|
||||
};
|
||||
class CUP_IED_V4_M: CUP_IED_V1_M {
|
||||
useAction = 0;
|
||||
ace_explosives_setupObject = "ACE_IED_V4_place_CUP";
|
||||
EGVAR(explosives,setupObject) = "ACE_IED_V4_place_CUP";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch", "Cellphone", "PressurePlate"};
|
||||
class Timer {
|
||||
|
@ -1,32 +1,31 @@
|
||||
class CfgVehicles {
|
||||
class ACE_Explosives_Place;
|
||||
class ACE_PipeBomb_place_CUP: ACE_Explosives_Place {
|
||||
displayName = "Satchel Charge";
|
||||
displayName = "$STR_CUP_dn_PipeBomb";
|
||||
model = "\CUP\Weapons\CUP_Weapons_Put\CUP_Satchel.p3d";
|
||||
ace_explosives_offset[] = {0, 0, 0};
|
||||
};
|
||||
class ACE_Mine_place_CUP: ACE_Explosives_Place {
|
||||
displayName = "AT-15 Anti-Tank Mine";
|
||||
displayName = "$STR_CUP_dn_Mine";
|
||||
model = "\CUP\Weapons\CUP_Weapons_Put\CUP_AT15.p3d";
|
||||
ace_explosives_offset[] = {0, 0, 0};
|
||||
};
|
||||
class ACE_MineE_place_CUP: ACE_Explosives_Place {
|
||||
displayName = "TM46 Anti-Tank Mine";
|
||||
displayName = "$STR_CUP_dn_MineE";
|
||||
model = "\CUP\Weapons\CUP_Weapons_Put\CUP_TM46.p3d";
|
||||
ace_explosives_offset[] = {0, 0, 0};
|
||||
};
|
||||
class ACE_IED_V1_place_CUP: ACE_Explosives_Place {
|
||||
displayName = "IED";
|
||||
displayName = "$STR_A3_CfgVehicles_IEDUrbanSmall_F";
|
||||
model = "\CUP\Weapons\CUP_Weapons_Put\CUP_IED_V1.p3d";
|
||||
ace_explosives_offset[] = {0, 0, 0};
|
||||
};
|
||||
class ACE_IED_V2_place_CUP: ACE_IED_V1_place_CUP {
|
||||
displayName = "$STR_A3_CfgVehicles_IEDUrbanBig_F";
|
||||
model = "\CUP\Weapons\CUP_Weapons_Put\CUP_IED_V2.p3d";
|
||||
};
|
||||
class ACE_IED_V3_place_CUP: ACE_IED_V1_place_CUP {
|
||||
displayName = "$STR_A3_CfgVehicles_IEDLandSmall_F";
|
||||
model = "\CUP\Weapons\CUP_Weapons_Put\CUP_IED_V3.p3d";
|
||||
};
|
||||
class ACE_IED_V4_place_CUP: ACE_IED_V1_place_CUP {
|
||||
displayName = "$STR_A3_CfgVehicles_IEDLandBig_F";
|
||||
model = "\CUP\Weapons\CUP_Weapons_Put\CUP_IED_V4.p3d";
|
||||
};
|
||||
};
|
||||
|
@ -2,9 +2,8 @@ class CfgMagazines {
|
||||
// Explosives
|
||||
class gm_explosive_petn_charge_base;
|
||||
class gm_explosive_petn_charge: gm_explosive_petn_charge_base {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) =QEGVAR(explosives,Place_gm_explosive_petn);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_gm_explosive_petn);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
@ -21,9 +20,8 @@ class CfgMagazines {
|
||||
|
||||
class gm_explosive_plnp_charge_base;
|
||||
class gm_explosive_plnp_charge: gm_explosive_plnp_charge_base {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) =QEGVAR(explosives,Place_gm_explosive_plnp);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_gm_explosive_plnp);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
@ -40,8 +38,8 @@ class CfgMagazines {
|
||||
|
||||
class gm_mine_at_base;
|
||||
class gm_mine_at_tm46: gm_mine_at_base {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) =QEGVAR(explosives,Place_gm_mine_tm46);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_gm_mine_tm46);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -51,8 +49,8 @@ class CfgMagazines {
|
||||
};
|
||||
};
|
||||
class gm_mine_at_dm21: gm_mine_at_base {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) =QEGVAR(explosives,Place_gm_explosive_dm21);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_gm_explosive_dm21);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -62,8 +60,8 @@ class CfgMagazines {
|
||||
};
|
||||
};
|
||||
class gm_mine_at_mn111: gm_mine_at_base {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) =QEGVAR(explosives,Place_gm_explosive_m111);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_gm_explosive_m111);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -74,8 +72,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class gm_mine_ap_dm31: gm_mine_at_base {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) =QEGVAR(explosives,Place_gm_explosive_dm31);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_gm_explosive_dm31);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
|
@ -108,19 +108,7 @@ class CfgWeapons {
|
||||
EGVAR(overpressure,offset) = 1.65;
|
||||
};
|
||||
|
||||
class H_HelmetB;
|
||||
class rhs_tsh4: H_HelmetB {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
|
||||
class rhs_6b47_bare;
|
||||
class rhs_6b48: rhs_6b47_bare {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
|
||||
class rhs_zsh7a: H_HelmetB {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
class rhs_zsh7a;
|
||||
class rhs_zsh7a_alt: rhs_zsh7a {
|
||||
ACE_Protection = 1;
|
||||
};
|
||||
@ -133,22 +121,6 @@ class CfgWeapons {
|
||||
ACE_Protection = 1;
|
||||
};
|
||||
|
||||
class rhs_gssh18: H_HelmetB {
|
||||
HEARING_PROTECTION_EARMUFF;
|
||||
};
|
||||
|
||||
class rhs_6b47;
|
||||
class rhs_6b47_6m2: rhs_6b47 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhs_6b47_6m2_1: rhs_6b47 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
class rhs_6m2: H_HelmetB {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
class rhs_weap_d81;
|
||||
class rhs_weap_2a70: rhs_weap_d81 { // "Low pressure" 100mm cannon
|
||||
EGVAR(overpressure,range) = 15;
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if !(["ace_nametags"] call EFUNC(common,isModLoaded)) exitWith {};
|
||||
|
||||
private _russianRankIcons = [
|
||||
QPATHTOEF(nametags,UI\icons_russia\private_gs.paa),
|
||||
QPATHTOEF(nametags,UI\icons_russia\corporal_gs.paa),
|
||||
|
@ -6,4 +6,12 @@ PREP_RECOMPILE_START;
|
||||
#include "XEH_PREP.hpp"
|
||||
PREP_RECOMPILE_END;
|
||||
|
||||
// Disable RHS' wheel replacement mechanic
|
||||
if (["ace_repair"] call EFUNC(common,isModLoaded)) then {
|
||||
RHS_Retread_Enabled = false;
|
||||
rhs_btr70_EnableRetread = false;
|
||||
rhs_TypeTirePressure = 1;
|
||||
RHS_BTR_Effects_Init = true;
|
||||
};
|
||||
|
||||
ADDON = true;
|
||||
|
@ -2,7 +2,7 @@ class CfgMagazines {
|
||||
// ACE Explosives
|
||||
class ATMine_Range_Mag;
|
||||
class rhs_mine_tm62m_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_tm62m);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_tm62m);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -12,7 +12,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_pmn2_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_pmn2);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_pmn2);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -22,7 +22,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mag_mine_ptm1: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_ptm1);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_ptm1);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -32,7 +32,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mag_mine_pfm1: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_pfm1);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_pfm1);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -42,8 +42,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_ec75_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_ec75);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_ec75);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
@ -59,27 +58,27 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_ec75_sand_mag: rhs_ec75_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_ec75_sand);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_ec75_sand);
|
||||
};
|
||||
|
||||
class rhs_ec200_mag: rhs_ec75_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_ec200);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_ec200);
|
||||
};
|
||||
|
||||
class rhs_ec200_sand_mag: rhs_ec200_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_ec200_sand);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_ec200_sand);
|
||||
};
|
||||
|
||||
class rhs_ec400_mag: rhs_ec75_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_ec400);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_ec400);
|
||||
};
|
||||
|
||||
class rhs_ec400_sand_mag: rhs_ec400_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_ec400_sand);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_ec400_sand);
|
||||
};
|
||||
|
||||
class rhs_mine_msk40p_white_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_white);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_white);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -89,19 +88,19 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_msk40p_red_mag: rhs_mine_msk40p_white_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_red);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_red);
|
||||
};
|
||||
|
||||
class rhs_mine_msk40p_green_mag: rhs_mine_msk40p_white_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_green);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_green);
|
||||
};
|
||||
|
||||
class rhs_mine_msk40p_blue_mag: rhs_mine_msk40p_white_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_blue);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_msk40p_blue);
|
||||
};
|
||||
|
||||
class rhs_mine_sm320_white_mag: rhs_mine_msk40p_white_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_sm320_white);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_sm320_white);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -111,15 +110,15 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_sm320_red_mag: rhs_mine_sm320_white_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_sm320_red);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_sm320_red);
|
||||
};
|
||||
|
||||
class rhs_mine_sm320_green_mag: rhs_mine_sm320_white_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_sm320_green);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_sm320_green);
|
||||
};
|
||||
|
||||
class rhs_mine_ozm72_a_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_ozm72_a);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_ozm72_a);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -129,12 +128,11 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_ozm72_b_mag: rhs_mine_ozm72_a_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_ozm72_b);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_ozm72_b);
|
||||
};
|
||||
|
||||
class rhs_mine_ozm72_c_mag: rhs_mine_ozm72_a_mag {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhs_mine_ozm72_c);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhs_mine_ozm72_c);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command", "MK16_Transmitter"};
|
||||
|
@ -0,0 +1,28 @@
|
||||
class CfgWeapons {
|
||||
class H_HelmetB;
|
||||
class rhs_tsh4: H_HelmetB {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
class rhs_zsh7a: H_HelmetB {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
class rhs_gssh18: H_HelmetB {
|
||||
HEARING_PROTECTION_EARMUFF;
|
||||
};
|
||||
class rhs_6m2: H_HelmetB {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
class rhs_6b47;
|
||||
class rhs_6b47_6m2: rhs_6b47 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhs_6b47_6m2_1: rhs_6b47 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
class rhs_6b47_bare;
|
||||
class rhs_6b48: rhs_6b47_bare {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
};
|
19
addons/compat_rhs_afrf3/compat_rhs_afrf3_hearing/config.cpp
Normal file
19
addons/compat_rhs_afrf3/compat_rhs_afrf3_hearing/config.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
#include "script_component.hpp"
|
||||
#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class SUBADDON {
|
||||
addonRootClass = QUOTE(COMPONENT);
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {
|
||||
"rhs_main_loadorder",
|
||||
"ace_hearing"
|
||||
};
|
||||
skipWhenMissingDependencies = 1;
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
@ -0,0 +1,3 @@
|
||||
#define SUBCOMPONENT hearing
|
||||
#define SUBCOMPONENT_BEAUTIFIED Hearing
|
||||
#include "..\script_component.hpp"
|
123
addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/CfgVehicles.hpp
Normal file
123
addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/CfgVehicles.hpp
Normal file
@ -0,0 +1,123 @@
|
||||
class CfgVehicles {
|
||||
class Wheeled_APC_F;
|
||||
class rhs_btr_base: Wheeled_APC_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class wheel_1_unhide {
|
||||
positions[] = {{-0.8, -1.7, 0}};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
class wheel_2_unhide {
|
||||
positions[] = {{0.35, -2.9, -0.1}};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhs_btr70_vmf: rhs_btr_base {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class wheel_1_unhide: wheel_1_unhide {
|
||||
positions[] = {{-1.2, -2.6, 0.2}};
|
||||
};
|
||||
class wheel_2_unhide: wheel_2_unhide {
|
||||
positions[] = {{-0.3, -3.8, 0}};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhs_btr70_msv: rhs_btr70_vmf {};
|
||||
class rhs_btr80_msv: rhs_btr70_msv {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class wheel_1_unhide: wheel_1_unhide {
|
||||
positions[] = {{-1, -2.5, 0.6}};
|
||||
};
|
||||
class wheel_2_unhide: wheel_2_unhide {
|
||||
enabled = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Truck_F;
|
||||
class rhs_truck: Truck_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class spare_hide {
|
||||
selections[] = {"spare"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RHS_Ural_BaseTurret: Truck_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class spare_hide {
|
||||
selections[] = {"spare"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhs_zil131_base: Truck_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class spare_hide {
|
||||
selections[] = {"spare"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhs_kraz255_base;
|
||||
class rhs_kraz255b1_base: rhs_kraz255_base {
|
||||
class EGVAR(interaction,anims) {
|
||||
class spare_hide {
|
||||
selections[] = {"spare"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class O_Truck_02_covered_F;
|
||||
class rhs_kamaz5350: O_Truck_02_covered_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class spare_hide {
|
||||
selections[] = {"spare"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MRAP_02_base_F;
|
||||
class rhs_tigr_base: MRAP_02_base_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class spare_hide {
|
||||
selections[] = {"spare"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Offroad_01_base_f;
|
||||
class RHS_UAZ_Base: Offroad_01_base_f {
|
||||
class EGVAR(interaction,anims) {
|
||||
class spare_hide {
|
||||
selections[] = {"spare"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
21
addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/config.cpp
Normal file
21
addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/config.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class SUBADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {
|
||||
"rhs_main_loadorder",
|
||||
"ace_repair"
|
||||
};
|
||||
skipWhenMissingDependencies = 1;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Dystopian", "johnb43"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgVehicles.hpp"
|
@ -0,0 +1,3 @@
|
||||
#define SUBCOMPONENT repair
|
||||
#define SUBCOMPONENT_BEAUTIFIED Repair
|
||||
#include "..\script_component.hpp"
|
@ -1,5 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
@ -7,7 +6,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"rhs_main_loadorder"};
|
||||
requiredAddons[] = {"ace_common", "rhs_main_loadorder"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Ruthberg", "GitHawk", "BaerMitUmlaut", "commy2", "Skengman2"};
|
||||
url = ECSTRING(main,URL);
|
||||
|
@ -1,83 +1,83 @@
|
||||
class CfgAmmo {
|
||||
class APERSMine_Range_Ammo;
|
||||
class rhs_mine_a200_bz_ammo: APERSMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.035};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.035};
|
||||
};
|
||||
|
||||
class rhs_mine_a200_dz35_ammo: rhs_mine_a200_bz_ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.02};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02};
|
||||
};
|
||||
|
||||
class rhs_mine_glasmine43_hz_ammo: APERSMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.015};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.015};
|
||||
};
|
||||
|
||||
class rhs_mine_glasmine43_bz_ammo: rhs_mine_glasmine43_hz_ammo {
|
||||
ace_minedetector_detectable = 0;
|
||||
EGVAR(minedetector,detectable) = 0;
|
||||
};
|
||||
|
||||
class rhs_mine_bounding_trigger_base;
|
||||
class rhs_mine_m2a3b_press_ammo: rhs_mine_bounding_trigger_base {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0.046, 0.02};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0.046, 0.02};
|
||||
};
|
||||
|
||||
class rhs_mine_m2a3b_trip_ammo: rhs_mine_m2a3b_press_ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0.046, 0.055};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0.046, 0.055};
|
||||
};
|
||||
|
||||
class rhs_mine_M3_pressure_ammo: APERSMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.015};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.015};
|
||||
};
|
||||
|
||||
class rhs_mine_M3_tripwire_ammo: rhs_mine_M3_pressure_ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.055};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.055};
|
||||
};
|
||||
|
||||
class ATMine_Range_Ammo;
|
||||
class rhs_mine_TM43_ammo: ATMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.072};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.072};
|
||||
};
|
||||
|
||||
class rhs_mine_M7A2_ammo: APERSMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.067};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.067};
|
||||
};
|
||||
|
||||
class rhs_mine_Mk2_pressure_ammo: APERSMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.02};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02};
|
||||
};
|
||||
|
||||
class rhs_mine_Mk2_tripwire_ammo: rhs_mine_Mk2_pressure_ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.055};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.055};
|
||||
};
|
||||
|
||||
class APERSBoundingMine_Range_Ammo;
|
||||
class rhs_mine_smine35_press_ammo: APERSBoundingMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.03};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.03};
|
||||
};
|
||||
|
||||
class rhs_mine_smine35_trip_ammo: rhs_mine_bounding_trigger_base {
|
||||
ace_explosives_defuseObjectPosition[] = {0, 0, 0.04};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.04};
|
||||
};
|
||||
|
||||
class rhs_mine_smine44_trip_ammo: rhs_mine_smine35_trip_ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {-0.03, 0, 0.015};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {-0.03, 0, 0.015};
|
||||
};
|
||||
|
||||
class rhs_mine_smine44_press_ammo: APERSBoundingMine_Range_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {-0.02, 0, 0.02};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {-0.02, 0, 0.02};
|
||||
};
|
||||
|
||||
class APERSTripMine_Wire_Ammo;
|
||||
class rhs_mine_stockmine43_2m_ammo: APERSTripMine_Wire_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {-1, 0, 0.25};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {-1, 0, 0.25};
|
||||
};
|
||||
|
||||
class rhs_mine_stockmine43_4m_ammo: rhs_mine_stockmine43_2m_ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {-2, 0, 0.25};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {-2, 0, 0.25};
|
||||
};
|
||||
|
||||
class DemoCharge_Remote_Ammo;
|
||||
class rhs_charge_M2tet_x2_ammo: DemoCharge_Remote_Ammo {
|
||||
ace_explosives_defuseObjectPosition[] = {0.095, 0, 0.055};
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0.095, 0, 0.055};
|
||||
};
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
class CfgMagazines {
|
||||
class APERSMine_Range_Mag;
|
||||
class rhs_mine_a200_bz_mag: APERSMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_a200_bz";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_a200_bz";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -11,7 +11,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_a200_dz35_mag: rhs_mine_a200_bz_mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_a200_dz35";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_a200_dz35";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -21,7 +21,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_glasmine43_hz_mag: APERSMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_glasmine43_hz";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_glasmine43_hz";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -31,12 +31,12 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_glasmine43_bz_mag: rhs_mine_glasmine43_hz_mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_glasmine43_bz";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_glasmine43_bz";
|
||||
};
|
||||
|
||||
class APERSBoundingMine_Range_Mag;
|
||||
class rhs_mine_m2a3b_press_mag: APERSBoundingMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_m2a3b_press";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_m2a3b_press";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -46,7 +46,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_m2a3b_trip_mag: rhs_mine_m2a3b_press_mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_m2a3b_trip";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_m2a3b_trip";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -56,7 +56,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_m3_pressure_mag: APERSMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_m3_pressure";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_m3_pressure";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -67,7 +67,7 @@ class CfgMagazines {
|
||||
|
||||
class APERSTripMine_Wire_Mag;
|
||||
class rhs_mine_M3_tripwire_mag: APERSTripMine_Wire_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_M3_tripwire";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_M3_tripwire";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -78,7 +78,7 @@ class CfgMagazines {
|
||||
|
||||
class ATMine_Range_Mag;
|
||||
class rhs_mine_TM43_mag: ATMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_TM43";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_TM43";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -88,7 +88,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_M7A2_mag: APERSMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_M7A2";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_M7A2";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -98,7 +98,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_mk2_pressure_mag: APERSMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_mk2_pressure";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_mk2_pressure";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -108,7 +108,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_Mk2_tripwire_mag: APERSTripMine_Wire_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_Mk2_tripwire";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_Mk2_tripwire";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -118,7 +118,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_smine35_press_mag: APERSBoundingMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_smine35_press";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_smine35_press";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -128,7 +128,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_smine35_trip_mag: rhs_mine_smine35_press_mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_smine35_trip";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_smine35_trip";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -138,7 +138,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_smine44_trip_mag: APERSBoundingMine_Range_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_smine44_trip";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_smine44_trip";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -148,7 +148,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_smine44_press_mag: rhs_mine_smine44_trip_mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_smine44_press";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_smine44_press";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -158,7 +158,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_stockmine43_2m_mag: APERSTripMine_Wire_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_stockmine43_2m";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_stockmine43_2m";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -168,7 +168,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhs_mine_stockmine43_4m_mag: rhs_mine_stockmine43_2m_mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_mine_stockmine43_4m";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_mine_stockmine43_4m";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire {
|
||||
@ -179,7 +179,7 @@ class CfgMagazines {
|
||||
|
||||
class DemoCharge_Remote_Mag;
|
||||
class rhs_charge_M2tet_x2_mag: DemoCharge_Remote_Mag {
|
||||
ace_explosives_SetupObject = "ACE_Explosives_Place_rhs_charge_M2tet_x2";
|
||||
EGVAR(explosives,setupObject) = "ACE_Explosives_Place_rhs_charge_M2tet_x2";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
class Timer {
|
||||
|
@ -6,7 +6,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"rhsgref_main_loadorder"};
|
||||
requiredAddons[] = {"ace_common", "rhsgref_main_loadorder"};
|
||||
skipWhenMissingDependencies = 1;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"PabstMirror", "Ruthberg", "Anton"};
|
||||
|
@ -3,22 +3,22 @@ class CfgMagazines {
|
||||
// ACE Explosives
|
||||
class ATMine_Range_Mag;
|
||||
class rhssaf_mine_mrud_a_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_a);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_a);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
};
|
||||
};
|
||||
|
||||
class rhssaf_mine_mrud_b_mag: rhssaf_mine_mrud_a_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_b);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_b);
|
||||
};
|
||||
|
||||
class rhssaf_mine_mrud_c_mag: rhssaf_mine_mrud_a_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_c);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_c);
|
||||
};
|
||||
|
||||
class rhssaf_mine_mrud_d_mag: rhssaf_mine_mrud_a_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_d);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_mine_mrud_d);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command", "MK16_Transmitter"};
|
||||
class Command {
|
||||
@ -29,7 +29,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhssaf_mine_pma3_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_mine_pma3);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_mine_pma3);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -39,7 +39,7 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhssaf_mine_tma4_mag: ATMine_Range_Mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_mine_tma4);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_mine_tma4);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
@ -51,9 +51,8 @@ class CfgMagazines {
|
||||
class CA_Magazine;
|
||||
class rhssaf_tm100_mag: CA_Magazine {
|
||||
useAction = 0;
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_tm100);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_tm100);
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter"};
|
||||
class Timer {
|
||||
@ -67,10 +66,10 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class rhssaf_tm200_mag: rhssaf_tm100_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_tm200);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_tm200);
|
||||
};
|
||||
|
||||
class rhssaf_tm500_mag: rhssaf_tm100_mag {
|
||||
EGVAR(explosives,SetupObject) = QEGVAR(explosives,Place_rhssaf_tm500);
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhssaf_tm500);
|
||||
};
|
||||
};
|
||||
|
@ -6,7 +6,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"rhssaf_main_loadorder"};
|
||||
requiredAddons[] = {"ace_common", "rhssaf_main_loadorder"};
|
||||
skipWhenMissingDependencies = 1;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {};
|
||||
|
@ -43,8 +43,7 @@ class CfgVehicles {
|
||||
EGVAR(refuel,fuelCapacity) = 302;
|
||||
};
|
||||
|
||||
class Truck_F;
|
||||
class Truck_01_base_F: Truck_F {};
|
||||
class Truck_01_base_F;
|
||||
class rhsusf_fmtv_base: Truck_01_base_F {
|
||||
EGVAR(refuel,fuelCapacity) = 219;
|
||||
};
|
||||
@ -55,8 +54,7 @@ class CfgVehicles {
|
||||
EGVAR(refuel,fuelCargo) = 900; // 45 jerrycans
|
||||
};
|
||||
|
||||
class rhsusf_HEMTT_A4_base: Truck_01_base_F {};
|
||||
class rhsusf_M977A4_usarmy_wd: rhsusf_HEMTT_A4_base {};
|
||||
class rhsusf_M977A4_usarmy_wd;
|
||||
class rhsusf_M977A4_AMMO_usarmy_wd: rhsusf_M977A4_usarmy_wd {
|
||||
EGVAR(rearm,defaultSupply) = 1200;
|
||||
};
|
||||
|
@ -206,170 +206,7 @@ class CfgWeapons {
|
||||
EGVAR(overpressure,offset) = 0.9;
|
||||
};
|
||||
|
||||
// Fast Helmets
|
||||
class rhsusf_opscore_01;
|
||||
class rhsusf_opscore_ut_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor1_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor1_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_bk_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_fg_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_fg_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_fg_pelt_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_paint_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_paint_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_paint_pelt_nsw_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor2_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor2_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_ut_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_ut_pelt_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_ut_pelt_nsw_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_cover;
|
||||
class rhsusf_opscore_mc_cover_pelt_nsw: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_cover_pelt: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_cover_pelt_cam: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_rg_cover_pelt: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_coy_cover_pelt: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mar_01;
|
||||
class rhsusf_opscore_mar_ut_pelt: rhsusf_opscore_mar_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mar_fg_pelt: rhsusf_opscore_mar_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
// ACH Helmets
|
||||
class rhsusf_ach_helmet_ocp;
|
||||
class rhsusf_ach_bare_des_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_des_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_semi_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_semi_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_tan_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_tan_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_wood_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_wood_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_helmet_headset_ocp: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_helmet_headset_ess_ocp: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
// ACVC Helmets
|
||||
class rhsusf_cvc_helmet: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
|
||||
// MICH Helmets
|
||||
class rhsusf_mich_bare;
|
||||
class rhsusf_mich_bare_alt: rhsusf_mich_bare {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos;
|
||||
class rhsusf_mich_bare_norotos_alt: rhsusf_mich_bare_norotos {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc;
|
||||
class rhsusf_mich_bare_norotos_arc_alt: rhsusf_mich_bare_norotos_arc {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_semi;
|
||||
class rhsusf_mich_bare_alt_semi: rhsusf_mich_bare_semi {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_semi;
|
||||
class rhsusf_mich_bare_norotos_alt_semi: rhsusf_mich_bare_norotos_semi {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc_semi: rhsusf_mich_bare_norotos_alt_semi {
|
||||
HEARING_PROTECTION_OPEN;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc_alt_semi: rhsusf_mich_bare_norotos_arc_semi {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_tan;
|
||||
class rhsusf_mich_bare_alt_tan: rhsusf_mich_bare_tan {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_tan;
|
||||
class rhsusf_mich_bare_norotos_alt_tan: rhsusf_mich_bare_norotos_tan {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc_tan;
|
||||
class rhsusf_mich_bare_norotos_arc_alt_tan: rhsusf_mich_bare_norotos_arc_tan {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
class rhsusf_hgu56p: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
class rhsusf_hgu56p;
|
||||
class rhsusf_hgu56p_visor: rhsusf_hgu56p {
|
||||
ACE_Protection = 1;
|
||||
};
|
||||
@ -420,13 +257,9 @@ class CfgWeapons {
|
||||
class rhsusf_hgu56p_mask_black_skull: rhsusf_hgu56p_visor_mask_black_skull {
|
||||
ACE_Protection = 0;
|
||||
};
|
||||
class rhsusf_ihadss: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
|
||||
class H_HelmetB;
|
||||
class RHS_jetpilot_usaf: H_HelmetB {
|
||||
ACE_Protection = 1;
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
};
|
||||
|
@ -1,7 +1,6 @@
|
||||
class CfgMagazines {
|
||||
class CA_Magazine;
|
||||
class rhsusf_m112_mag: CA_Magazine {
|
||||
EGVAR(explosives,delayTime) = 1;
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEGVAR(explosives,Place_rhsusf_explosive_m112);
|
||||
useAction = 0;
|
||||
|
174
addons/compat_rhs_usf3/compat_rhs_usf3_hearing/CfgWeapons.hpp
Normal file
174
addons/compat_rhs_usf3/compat_rhs_usf3_hearing/CfgWeapons.hpp
Normal file
@ -0,0 +1,174 @@
|
||||
class CfgWeapons {
|
||||
// Fast Helmets
|
||||
class rhsusf_opscore_01;
|
||||
class rhsusf_opscore_ut_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor1_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor1_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_bk_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_fg_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_fg_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_fg_pelt_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_paint_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_paint_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_paint_pelt_nsw_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor2_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_aor2_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_ut_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_ut_pelt_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_ut_pelt_nsw_cam: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_pelt: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_pelt_nsw: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_cover;
|
||||
class rhsusf_opscore_mc_cover_pelt_nsw: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_cover_pelt: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mc_cover_pelt_cam: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_rg_cover_pelt: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_coy_cover_pelt: rhsusf_opscore_cover {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mar_01;
|
||||
class rhsusf_opscore_mar_ut_pelt: rhsusf_opscore_mar_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_opscore_mar_fg_pelt: rhsusf_opscore_mar_01 {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
// ACH Helmets
|
||||
class rhsusf_ach_helmet_ocp;
|
||||
class rhsusf_ach_bare_des_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_des_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_semi_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_semi_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_tan_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_tan_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_wood_headset: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_bare_wood_headset_ess: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_helmet_headset_ocp: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_ach_helmet_headset_ess_ocp: rhsusf_ach_helmet_ocp {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
// ACVC Helmets
|
||||
class rhsusf_cvc_helmet: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
|
||||
// MICH Helmets
|
||||
class rhsusf_mich_bare;
|
||||
class rhsusf_mich_bare_alt: rhsusf_mich_bare {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos;
|
||||
class rhsusf_mich_bare_norotos_alt: rhsusf_mich_bare_norotos {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc;
|
||||
class rhsusf_mich_bare_norotos_arc_alt: rhsusf_mich_bare_norotos_arc {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_semi;
|
||||
class rhsusf_mich_bare_alt_semi: rhsusf_mich_bare_semi {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_semi;
|
||||
class rhsusf_mich_bare_norotos_alt_semi: rhsusf_mich_bare_norotos_semi {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc_semi: rhsusf_mich_bare_norotos_alt_semi {
|
||||
HEARING_PROTECTION_OPEN;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc_alt_semi: rhsusf_mich_bare_norotos_arc_semi {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_tan;
|
||||
class rhsusf_mich_bare_alt_tan: rhsusf_mich_bare_tan {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_tan;
|
||||
class rhsusf_mich_bare_norotos_alt_tan: rhsusf_mich_bare_norotos_tan {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
class rhsusf_mich_bare_norotos_arc_tan;
|
||||
class rhsusf_mich_bare_norotos_arc_alt_tan: rhsusf_mich_bare_norotos_arc_tan {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
};
|
||||
|
||||
class rhsusf_hgu56p: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
class rhsusf_ihadss: rhsusf_opscore_01 {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
|
||||
class H_HelmetB;
|
||||
class RHS_jetpilot_usaf: H_HelmetB {
|
||||
HEARING_PROTECTION_VICCREW;
|
||||
};
|
||||
};
|
19
addons/compat_rhs_usf3/compat_rhs_usf3_hearing/config.cpp
Normal file
19
addons/compat_rhs_usf3/compat_rhs_usf3_hearing/config.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
#include "script_component.hpp"
|
||||
#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class SUBADDON {
|
||||
addonRootClass = QUOTE(COMPONENT);
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {
|
||||
"rhsusf_main_loadorder",
|
||||
"ace_hearing"
|
||||
};
|
||||
skipWhenMissingDependencies = 1;
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
@ -0,0 +1,3 @@
|
||||
#define SUBCOMPONENT hearing
|
||||
#define SUBCOMPONENT_BEAUTIFIED Hearing
|
||||
#include "..\script_component.hpp"
|
@ -0,0 +1,52 @@
|
||||
class CfgVehicles {
|
||||
class rhsusf_stryker_base;
|
||||
class rhsusf_stryker_m1126_base: rhsusf_stryker_base {
|
||||
class EGVAR(interaction,anims) {
|
||||
class Hide_FCans {
|
||||
positions[] = {{-0.7, -3, -0.4}};
|
||||
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
|
||||
name = ECSTRING(refuel,TakeFuelCanister);
|
||||
text = ECSTRING(refuel,TakeFuelCanisterAction);
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_stryker_m1127_base: rhsusf_stryker_m1126_base {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class Hide_FCans: Hide_FCans {
|
||||
positions[] = {{-0.5, -3, -0.4}};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_stryker_m1126_m2_base: rhsusf_stryker_m1126_base {};
|
||||
class rhsusf_stryker_m1132_m2_base: rhsusf_stryker_m1126_m2_base {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class Hide_FCans: Hide_FCans {
|
||||
positions[] = {{-1, -4, -0.4}};
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_stryker_m1134_base: rhsusf_stryker_m1132_m2_base {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class Hide_FCans: Hide_FCans {
|
||||
positions[] = {{-0.7, -3, -0.7}};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_m1a2tank_base;
|
||||
class rhsusf_m1a2sep2_base: rhsusf_m1a2tank_base {
|
||||
class EGVAR(interaction,anims) {
|
||||
class fuelcans_hide {
|
||||
// Rotate interactions with turret rotation
|
||||
positions[] = {
|
||||
"[0.23, -0.6, 0] vectorAdd ([[1.1, -3.6, 0.6], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)",
|
||||
"[0.23, -0.6, 0] vectorAdd ([[-1.1, -3.6, 0.6], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)"
|
||||
};
|
||||
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
|
||||
name = ECSTRING(refuel,TakeFuelCanister);
|
||||
text = ECSTRING(refuel,TakeFuelCanisterAction);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -21,3 +21,4 @@ class CfgPatches {
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
|
126
addons/compat_rhs_usf3/compat_rhs_usf3_repair/CfgVehicles.hpp
Normal file
126
addons/compat_rhs_usf3/compat_rhs_usf3_repair/CfgVehicles.hpp
Normal file
@ -0,0 +1,126 @@
|
||||
class CfgVehicles {
|
||||
class Truck_01_base_F;
|
||||
class rhsusf_fmtv_base: Truck_01_base_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class hide_spare {
|
||||
positions[] = {{1, 1.4, 0}};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_M1078A1P2_fmtv_usarmy: rhsusf_fmtv_base {};
|
||||
class rhsusf_M1078A1P2_B_fmtv_usarmy: rhsusf_M1078A1P2_fmtv_usarmy {};
|
||||
class rhsusf_M1078A1P2_B_M2_fmtv_usarmy: rhsusf_M1078A1P2_B_fmtv_usarmy {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class hide_spare: hide_spare {
|
||||
positions[] = {{1, 1.4, -0.5}};
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_M1078A1R_SOV_M2_D_fmtv_socom: rhsusf_M1078A1P2_B_M2_fmtv_usarmy {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class hide_spare: hide_spare {
|
||||
positions[] = {{1, 1, -0.5}};
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_M1083A1P2_fmtv_usarmy: rhsusf_M1078A1P2_fmtv_usarmy {};
|
||||
class rhsusf_M1083A1P2_B_fmtv_usarmy: rhsusf_M1083A1P2_fmtv_usarmy {};
|
||||
class rhsusf_M1083A1P2_B_M2_fmtv_usarmy: rhsusf_M1083A1P2_B_fmtv_usarmy {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class hide_spare: hide_spare {
|
||||
positions[] = {{1, 1.4, -0.5}};
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_M1084A1P2_fmtv_usarmy: rhsusf_M1083A1P2_fmtv_usarmy {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class hide_spare: hide_spare {
|
||||
positions[] = {{1, 1.8, 0}};
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_M1084A1P2_B_M2_fmtv_usarmy: rhsusf_M1083A1P2_B_M2_fmtv_usarmy {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class hide_spare: hide_spare {
|
||||
positions[] = {{1, 1.8, -0.5}};
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_M1085A1P2_B_Medical_fmtv_usarmy: rhsusf_M1083A1P2_B_fmtv_usarmy {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class hide_spare: hide_spare {
|
||||
positions[] = {{1, 6.1, 0}};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_HEMTT_A4_base: Truck_01_base_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class hide_spare {
|
||||
positions[] = {"_target selectionPosition 'sparewheel' vectorAdd [0.6, 0.6, -0.4]"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MRAP_01_base_F;
|
||||
class rhsusf_m1151_base: MRAP_01_base_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class hide_spare {
|
||||
positions[] = {"_target selectionPosition 'sparewheel' vectorAdd [-0.465, 0, 0]"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
// Don't inherit, as it's easier for the trenches compat
|
||||
class rhsusf_M1165A1_GMV_SAG2_base: rhsusf_m1151_base {
|
||||
class EGVAR(interaction,anims) {
|
||||
class hide_spare {
|
||||
positions[] = {"_target selectionPosition 'sparewheel_gmv' vectorAdd [0, -0.44, 0]"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_rg33_base: MRAP_01_base_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class hide_spare {
|
||||
selections[] = {"sparewheel"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_M1239_base: MRAP_01_base_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class hide_spare {
|
||||
selections[] = {"sparewheel"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_MATV_base: MRAP_01_base_F {
|
||||
class EGVAR(interaction,anims) {
|
||||
class hide_spare {
|
||||
selections[] = {"sparewheel"};
|
||||
items[] = {"ACE_Wheel"};
|
||||
name = ECSTRING(repair,RemoveWheel);
|
||||
text = ECSTRING(repair,RemovingWheel);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
23
addons/compat_rhs_usf3/compat_rhs_usf3_repair/config.cpp
Normal file
23
addons/compat_rhs_usf3/compat_rhs_usf3_repair/config.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class SUBADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {
|
||||
"rhsusf_main_loadorder",
|
||||
"ace_repair"
|
||||
};
|
||||
skipWhenMissingDependencies = 1;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"johnb43"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
|
||||
addonRootClass = QUOTE(ADDON);
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgVehicles.hpp"
|
@ -0,0 +1,3 @@
|
||||
#define SUBCOMPONENT repair
|
||||
#define SUBCOMPONENT_BEAUTIFIED Repair
|
||||
#include "..\script_component.hpp"
|
@ -0,0 +1,48 @@
|
||||
class CfgVehicles {
|
||||
class rhsusf_stryker_base;
|
||||
class rhsusf_stryker_m1126_base: rhsusf_stryker_base {
|
||||
class EGVAR(interaction,anims) {
|
||||
class Hide_PioKit {
|
||||
positions[] = {{-1, -2.2, -0.5}};
|
||||
items[] = {"ACE_EntrenchingTool"};
|
||||
name = ECSTRING(trenches,EntrenchingToolName);
|
||||
text = ECSTRING(trenches,EntrenchingToolName);
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_stryker_m1127_base: rhsusf_stryker_m1126_base {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class Hide_PioKit: Hide_PioKit {
|
||||
positions[] = {{-0.8, -2.2, -0.5}};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_stryker_m1126_m2_base: rhsusf_stryker_m1126_base {};
|
||||
class rhsusf_stryker_m1132_m2_base: rhsusf_stryker_m1126_m2_base {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class Hide_PioKit: Hide_PioKit {
|
||||
positions[] = {{-1.3, -3.3, -0.5}};
|
||||
};
|
||||
};
|
||||
};
|
||||
class rhsusf_stryker_m1134_base: rhsusf_stryker_m1132_m2_base {
|
||||
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
|
||||
class Hide_PioKit: Hide_PioKit {
|
||||
positions[] = {{-1, -2.2, -0.8}};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class rhsusf_m1151_base;
|
||||
class rhsusf_M1165A1_GMV_SAG2_base: rhsusf_m1151_base {
|
||||
class EGVAR(interaction,anims) {
|
||||
class tools_hide {
|
||||
positions[] = {{0.365, 1.5, -0.4}};
|
||||
items[] = {"ACE_EntrenchingTool"};
|
||||
name = ECSTRING(trenches,EntrenchingToolName);
|
||||
text = ECSTRING(trenches,EntrenchingToolName);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
23
addons/compat_rhs_usf3/compat_rhs_usf3_trenches/config.cpp
Normal file
23
addons/compat_rhs_usf3/compat_rhs_usf3_trenches/config.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class SUBADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {
|
||||
"rhsusf_main_loadorder",
|
||||
"ace_trenches"
|
||||
};
|
||||
skipWhenMissingDependencies = 1;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"johnb43"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
|
||||
addonRootClass = QUOTE(ADDON);
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgVehicles.hpp"
|
@ -0,0 +1,3 @@
|
||||
#define SUBCOMPONENT trenches
|
||||
#define SUBCOMPONENT_BEAUTIFIED Trenches
|
||||
#include "..\script_component.hpp"
|
@ -1,5 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
@ -7,7 +6,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"rhsusf_main_loadorder"};
|
||||
requiredAddons[] = {"ace_common", "rhsusf_main_loadorder"};
|
||||
skipWhenMissingDependencies = 1;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Ruthberg", "GitHawk", "BaerMitUmlaut", "Fyuran"};
|
||||
|
@ -2,7 +2,7 @@ class ACE_CSW_Groups {
|
||||
|
||||
// --- Gun Turrets -------------------------------------------------------------
|
||||
|
||||
class ace_csw_100Rnd_127x99_mag {
|
||||
class EGVAR(csw,100Rnd_127x99_mag) {
|
||||
vn_m2_v_100_mag = 1;
|
||||
};
|
||||
|
||||
|
@ -2,16 +2,10 @@ class DirectionalBombBase;
|
||||
class vn_mine_m18_ammo: DirectionalBombBase {
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.15};
|
||||
EGVAR(explosives,size) = 1;
|
||||
EGVAR(explosives,explosive) = "vn_mine_m18_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_m18_x3_ammo: vn_mine_m18_ammo {
|
||||
EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.1};
|
||||
EGVAR(explosives,explosive) = "vn_mine_m18_x3_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_m18_wp_ammo: vn_mine_m18_ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_m18_wp_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_m16_base;
|
||||
@ -99,13 +93,7 @@ class vn_mine_punji_05_ammo: vn_mine_punji_04_ammo {
|
||||
};
|
||||
|
||||
class APERSMine_Range_Ammo;
|
||||
class vn_mine_bike_ammo: APERSMine_Range_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_bike_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_cartridge_ammo: APERSMine_Range_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_cartridge_ammo_scripted";
|
||||
|
||||
// bump range and damage slightly, default values do not work well with ACE Medical
|
||||
indirectHit = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_cartridge_ammo' >> 'GVAR(indirectHit)'));
|
||||
GVAR(indirectHit) = QUOTE([ARR_2(2,1)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));
|
||||
@ -116,50 +104,8 @@ class vn_mine_cartridge_ammo: APERSMine_Range_Ammo {
|
||||
|
||||
class vn_mine_lighter_ammo: APERSMine_Range_Ammo {
|
||||
ACE_damageType = QGVAR(explosive_incendiary);
|
||||
|
||||
EGVAR(explosives,explosive) = "vn_mine_lighter_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_jerrycan_ammo: APERSMine_Range_Ammo {
|
||||
ACE_damageType = QGVAR(explosive_incendiary);
|
||||
|
||||
EGVAR(explosives,explosive) = "vn_mine_jerrycan_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_pot_ammo: APERSMine_Range_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_pot_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_mortar_range_ammo: APERSMine_Range_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_mortar_range_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_limpet_01_ammo: DemoCharge_Remote_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_limpet_01_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_limpet_02_ammo: vn_mine_limpet_01_ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_limpet_02_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_chicom_no8_ammo: APERSMine_Range_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_chicom_no8_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_dh10_ammo: DirectionalBombBase {
|
||||
EGVAR(explosives,explosive) = "vn_mine_dh10_ammo_scripted";
|
||||
};
|
||||
|
||||
class PipeBombBase;
|
||||
class vn_mine_gboard_range_ammo: PipeBombBase {
|
||||
EGVAR(explosives,explosive) = "vn_mine_gboard_range_ammo_scripted";
|
||||
};
|
||||
|
||||
class SatchelCharge_Remote_Ammo;
|
||||
class vn_mine_satchelcharge_02_ammo: SatchelCharge_Remote_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_satchelcharge_02_ammo_scripted";
|
||||
};
|
||||
|
||||
class vn_mine_bangalore_ammo: SatchelCharge_Remote_Ammo {
|
||||
EGVAR(explosives,explosive) = "vn_mine_bangalore_ammo_scripted";
|
||||
};
|
||||
|
@ -6,8 +6,8 @@ class vn_mine_m18_mag: vn_magazine {
|
||||
|
||||
displayNameShort = ""; // Every explosive inherits this and it breaks naming in the placing menu
|
||||
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m18);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m18);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command", "MK16_Transmitter"};
|
||||
@ -42,7 +42,7 @@ class vn_mine_m18_fuze10_mag: vn_mine_m18_mag {
|
||||
|
||||
// Claymore x3 (Remote)
|
||||
class vn_mine_m18_x3_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m18_x3);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m18_x3);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command", "MK16_Transmitter"};
|
||||
@ -65,7 +65,7 @@ class vn_mine_m18_x3_range_mag: vn_mine_m18_x3_mag {
|
||||
|
||||
// WP Claymore (Remote)
|
||||
class vn_mine_m18_wp_mag: vn_mine_m18_fuze10_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m18_wp);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m18_wp);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command", "MK16_Transmitter"};
|
||||
@ -101,7 +101,7 @@ class vn_mine_m18_wp_fuze10_mag: vn_mine_m18_wp_mag {
|
||||
|
||||
// Toe-Popper
|
||||
class vn_mine_m14_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m14);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m14);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -113,7 +113,7 @@ class vn_mine_m14_mag: vn_mine_m18_mag {
|
||||
|
||||
// Bounding Mine
|
||||
class vn_mine_m16_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m16);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m16);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -125,7 +125,7 @@ class vn_mine_m16_mag: vn_mine_m18_mag {
|
||||
|
||||
// Bounding Mine (Trip Wire 2m)
|
||||
class vn_mine_tripwire_m16_02_mag: vn_mine_m16_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m16_tripwire_2m);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m16_tripwire_2m);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
@ -136,7 +136,7 @@ class vn_mine_tripwire_m16_02_mag: vn_mine_m16_mag {
|
||||
};
|
||||
// Bounding Mine (Trip Wire 4m)
|
||||
class vn_mine_tripwire_m16_04_mag: vn_mine_tripwire_m16_02_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m16_tripwire_4m);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m16_tripwire_4m);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
@ -148,22 +148,22 @@ class vn_mine_tripwire_m16_04_mag: vn_mine_tripwire_m16_02_mag {
|
||||
|
||||
// F1 (Trip Wire 2m)
|
||||
class vn_mine_tripwire_f1_02_mag: vn_mine_tripwire_m16_02_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(f1_tripwire_2m);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(f1_tripwire_2m);
|
||||
};
|
||||
// F1 (Trip Wire 4m)
|
||||
class vn_mine_tripwire_f1_04_mag: vn_mine_tripwire_f1_02_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(f1_tripwire_4m);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(f1_tripwire_4m);
|
||||
};
|
||||
|
||||
// Arty Shell (Trip Wire 4m)
|
||||
class vn_mine_tripwire_arty_mag: vn_mine_tripwire_m16_02_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(arty_tripwire_4m);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(arty_tripwire_4m);
|
||||
};
|
||||
|
||||
// Satchel Charge
|
||||
class vn_mine_satchel_remote_02_mag: vn_mine_m18_mag {
|
||||
useAction = 0;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(satchel_remote_02);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(satchel_remote_02);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
@ -180,7 +180,7 @@ class vn_mine_satchel_remote_02_mag: vn_mine_m18_mag {
|
||||
|
||||
// TM57 Anti-Tank Mine
|
||||
class vn_mine_tm57_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(tm57);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(tm57);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -190,7 +190,7 @@ class vn_mine_tm57_mag: vn_mine_m18_mag {
|
||||
|
||||
// M15 Anti-Tank Mine
|
||||
class vn_mine_m15_mag: vn_mine_tm57_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m15);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m15);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -202,7 +202,7 @@ class vn_mine_m15_mag: vn_mine_tm57_mag {
|
||||
|
||||
// M112 Breaching charge
|
||||
class vn_mine_m112_remote_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(m112);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(m112);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
@ -221,7 +221,7 @@ class vn_mine_m112_remote_mag: vn_mine_m18_mag {
|
||||
|
||||
// Spiked ammo box
|
||||
class vn_mine_ammobox_range_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(ammobox_range);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(ammobox_range);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -234,7 +234,7 @@ class vn_mine_ammobox_range_mag: vn_mine_m18_mag {
|
||||
// Punji large
|
||||
class vn_mine_punji_01_mag: vn_mine_m18_mag {
|
||||
useAction = 0;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(punji_01);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(punji_01);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -246,18 +246,18 @@ class vn_mine_punji_01_mag: vn_mine_m18_mag {
|
||||
|
||||
// Punji small
|
||||
class vn_mine_punji_02_mag: vn_mine_punji_01_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(punji_02);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(punji_02);
|
||||
};
|
||||
|
||||
// Punji whip
|
||||
class vn_mine_punji_03_mag: vn_mine_punji_01_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(punji_03);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(punji_03);
|
||||
};
|
||||
|
||||
// Punji door-way
|
||||
class vn_mine_punji_04_mag: vn_mine_m18_mag {
|
||||
useAction = 0;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(punji_04);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(punji_04);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -270,7 +270,7 @@ class vn_mine_punji_04_mag: vn_mine_m18_mag {
|
||||
|
||||
// Punji side whip
|
||||
class vn_mine_punji_05_mag: vn_mine_punji_04_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(punji_05);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(punji_05);
|
||||
|
||||
class ACE_Triggers: ACE_Triggers {
|
||||
class PressurePlate: PressurePlate {
|
||||
@ -281,7 +281,7 @@ class vn_mine_punji_05_mag: vn_mine_punji_04_mag {
|
||||
|
||||
// Bike mine (Remote)
|
||||
class vn_mine_bike_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(bike);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(bike);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {QGVAR(Command), QGVAR(MK16_Transmitter)};
|
||||
@ -304,7 +304,7 @@ class vn_mine_bike_range_mag: vn_mine_bike_mag {
|
||||
|
||||
// Cartridge mine
|
||||
class vn_mine_cartridge_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(cartridge);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(cartridge);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -316,7 +316,7 @@ class vn_mine_cartridge_mag: vn_mine_m18_mag {
|
||||
|
||||
// Lighter mine (Proximity)
|
||||
class vn_mine_lighter_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(lighter);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(lighter);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -328,7 +328,7 @@ class vn_mine_lighter_mag: vn_mine_m18_mag {
|
||||
|
||||
// Pot mine (Remote)
|
||||
class vn_mine_pot_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(pot);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(pot);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command", "MK16_Transmitter"};
|
||||
@ -351,7 +351,7 @@ class vn_mine_pot_range_mag: vn_mine_pot_mag {
|
||||
|
||||
// Jerrycan mine (Remote)
|
||||
class vn_mine_jerrycan_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(jerrycan);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(jerrycan);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command", "MK16_Transmitter"};
|
||||
@ -374,7 +374,7 @@ class vn_mine_jerrycan_range_mag: vn_mine_jerrycan_mag {
|
||||
|
||||
// Mortar shell on a stick (Proximity)
|
||||
class vn_mine_mortar_range_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(mortar_range);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(mortar_range);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -386,17 +386,17 @@ class vn_mine_mortar_range_mag: vn_mine_m18_mag {
|
||||
|
||||
// Limpet mine USA (Remote)
|
||||
class vn_mine_limpet_01_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(limpet_01);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(limpet_01);
|
||||
};
|
||||
|
||||
// Limpet mine RUS (Remote)
|
||||
class vn_mine_limpet_02_mag: vn_mine_limpet_01_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(limpet_02);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(limpet_02);
|
||||
};
|
||||
|
||||
// Chicom NO8 mine
|
||||
class vn_mine_chicom_no8_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(chicom_no8);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(chicom_no8);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -408,7 +408,7 @@ class vn_mine_chicom_no8_mag: vn_mine_m18_mag {
|
||||
|
||||
// DH10 mine (Remote)
|
||||
class vn_mine_dh10_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(dh10);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(dh10);
|
||||
};
|
||||
// DH10 mine (Proximity)
|
||||
class vn_mine_dh10_range_mag: vn_mine_dh10_mag {
|
||||
@ -422,7 +422,7 @@ class vn_mine_dh10_range_mag: vn_mine_dh10_mag {
|
||||
|
||||
// Grenade board mine (Tripwire 4m)
|
||||
class vn_mine_gboard_range_mag: vn_mine_m18_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(gboard);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(gboard);
|
||||
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
@ -434,10 +434,10 @@ class vn_mine_gboard_range_mag: vn_mine_m18_mag {
|
||||
|
||||
// Satchel charge
|
||||
class vn_mine_satchelcharge_02_mag: vn_mine_satchel_remote_02_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(satchelcharge_02);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(satchelcharge_02);
|
||||
};
|
||||
|
||||
// Bangalore mine
|
||||
class vn_mine_bangalore_mag: vn_mine_satchel_remote_02_mag {
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(bangalore);
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(bangalore);
|
||||
};
|
||||
|
@ -1,9 +1,8 @@
|
||||
class CfgMagazines {
|
||||
class SPE_Mine_Magazine;
|
||||
class SPE_US_TNT_4pound_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(4LBTNT);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(4LBTNT);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"};
|
||||
@ -19,9 +18,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_US_TNT_half_pound_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(halfLBTNT);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(halfLBTNT);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"};
|
||||
@ -37,9 +35,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_US_Bangalore_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(bangalore);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(bangalore);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"};
|
||||
@ -55,9 +52,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_Ladung_Small_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(smallLadung);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(smallLadung);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"};
|
||||
@ -73,9 +69,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_Ladung_Big_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,DelayTime) = 1;
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(bigLadung);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(bigLadung);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"};
|
||||
@ -91,8 +86,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_US_M1A1_ATMINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(M1A1at);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(M1A1at);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -102,8 +97,8 @@ class CfgMagazines {
|
||||
};
|
||||
};
|
||||
class SPE_US_M3_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(M3ap);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(M3ap);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
@ -113,8 +108,8 @@ class CfgMagazines {
|
||||
};
|
||||
};
|
||||
class SPE_US_M3_Pressure_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(M3Pressure);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(M3Pressure);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -125,8 +120,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_Shg24x7_Improvised_Mine_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(Shg24x7);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(Shg24x7);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -137,8 +132,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_TMI_42_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(TMI42);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(TMI42);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -149,8 +144,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_SMI_35_1_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(SMI35_1);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(SMI35_1);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
@ -161,8 +156,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_SMI_35_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(SMI35);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(SMI35);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
@ -173,8 +168,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_SMI_35_Pressure_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(SMI35Pressure);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(SMI35Pressure);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
@ -185,8 +180,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_STMI_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(STMI);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(STMI);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
@ -197,8 +192,8 @@ class CfgMagazines {
|
||||
};
|
||||
|
||||
class SPE_shumine_42_MINE_mag: SPE_Mine_Magazine {
|
||||
EGVAR(explosives,Placeable) = 1;
|
||||
EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(shumine42);
|
||||
EGVAR(explosives,placeable) = 1;
|
||||
EGVAR(explosives,setupObject) = QEXPLOSIVES_PLACE(shumine42);
|
||||
useAction = 0;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
|
@ -91,7 +91,7 @@ private _configMagazine = configFile >> "CfgMagazines" >> _magazineClassname;
|
||||
private _ammo = getText (_configMagazine >> "ammo");
|
||||
private _configAmmo = configFile >> "CfgAmmo" >> _ammo;
|
||||
|
||||
private _simType = toLower getText (_configAmmo >> "simulation");
|
||||
private _simType = toLowerANSI getText (_configAmmo >> "simulation");
|
||||
private _speed = linearConversion [0, 1, random 1, 1, 20, true];
|
||||
private _effect2pos = _object selectionPosition "destructionEffect2";
|
||||
|
||||
@ -100,7 +100,7 @@ private _fnc_spawnProjectile = {
|
||||
// If the magazines are inside of the cargo (inventory), don't let their projectiles escape the interior of the vehicle
|
||||
if (!_spawnProjectile) exitWith {};
|
||||
|
||||
params ["_object", "_ammo", "_speed", "_flyAway"];
|
||||
params ["_flyAway"];
|
||||
|
||||
private _spawnPos = _object modelToWorld [-0.2 + random 0.4, -0.2 + random 0.4, random 3];
|
||||
|
||||
@ -117,7 +117,7 @@ private _fnc_spawnProjectile = {
|
||||
_projectile setVectorDir _vectorVelocity;
|
||||
_projectile setVelocity _vectorVelocity;
|
||||
} else {
|
||||
_projectile setDamage 1;
|
||||
triggerAmmo _projectile;
|
||||
};
|
||||
};
|
||||
|
||||
@ -126,14 +126,14 @@ switch (_simType) do {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
if (random 1 < 0.6) then {
|
||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||
true call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
case "shotshell": {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
if (random 1 < 0.15) then {
|
||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||
true call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
case "shotgrenade": {
|
||||
@ -141,7 +141,7 @@ switch (_simType) do {
|
||||
_speed = 0;
|
||||
};
|
||||
|
||||
[_object, _ammo, _speed, random 1 < 0.5] call _fnc_spawnProjectile;
|
||||
(random 1 < 0.5) call _fnc_spawnProjectile;
|
||||
};
|
||||
case "shotrocket";
|
||||
case "shotmissile";
|
||||
@ -149,7 +149,7 @@ switch (_simType) do {
|
||||
if (random 1 < 0.1) then {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
||||
(random 1 < 0.3) call _fnc_spawnProjectile;
|
||||
} else {
|
||||
createVehicle ["ACE_ammoExplosionLarge", _object modelToWorld _effect2pos, [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
@ -157,22 +157,13 @@ switch (_simType) do {
|
||||
case "shotdirectionalbomb";
|
||||
case "shotmine": {
|
||||
if (random 1 < 0.5) then {
|
||||
// Not all explosives detonate on destruction, some have scripted alternatives
|
||||
if (getNumber (_configAmmo >> "triggerWhenDestroyed") != 1) then {
|
||||
_ammo = getText (_configAmmo >> QEGVAR(explosives,explosive));
|
||||
};
|
||||
|
||||
// If a scripted alternative doesn't exist use generic explosion
|
||||
if (_ammo != "") then {
|
||||
[_object, _ammo, 0, false] call _fnc_spawnProjectile;
|
||||
} else {
|
||||
createVehicle ["SmallSecondary", _object modelToWorld _effect2pos, [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
// _speed should be 0, but as it doesn't fly away, no need to set _speed
|
||||
false call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
case "shotilluminating": {
|
||||
if (random 1 < 0.15) then {
|
||||
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
||||
(random 1 < 0.3) call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -52,7 +52,7 @@ private _ammo = "";
|
||||
_x params ["_magazine", "_count"];
|
||||
|
||||
if (_count > 0 && {!(_magazine call FUNC(isMagazineFlare))}) then {
|
||||
_ammoToDetonate pushBack [_magazine, _count, false];
|
||||
_ammoToDetonate pushBack [_magazine, _count, random 1 < 0.5];
|
||||
_totalAmmo = _totalAmmo + _count;
|
||||
};
|
||||
} forEach (magazinesAmmoCargo _object);
|
||||
|
@ -58,6 +58,7 @@ class CfgMagazines {
|
||||
class GVAR(20Rnd_20mm_G_belt): 40Rnd_20mm_G_belt {
|
||||
author = ECSTRING(common,ACETeam);
|
||||
displayName = CSTRING(GMGBelt_displayName);
|
||||
descriptionShort = CSTRING(GMGBelt_descriptionShort);
|
||||
model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d";
|
||||
picture = QPATHTOF(UI\ammoBox_50bmg_ca.paa);
|
||||
type = 256;
|
||||
|
@ -16,7 +16,7 @@ private _inherited = [];
|
||||
private _config = _x;
|
||||
private _configEnabled = (getNumber (_config >> QUOTE(ADDON) >> "enabled")) == 1;
|
||||
if (_configEnabled) then {
|
||||
private _configExplicit = (count configProperties [_config, "configName _x == 'ace_csw'", false]) == 1;
|
||||
private _configExplicit = (count configProperties [_config, toString {configName _x == QUOTE(ADDON)}, false]) == 1;
|
||||
if (_configExplicit) then {
|
||||
_explicitBases pushBack (configName _config);
|
||||
_inherited pushBack [];
|
||||
@ -43,8 +43,8 @@ private _inherited = [];
|
||||
|
||||
INFO("------ Logging static magazines with no carry version -------");
|
||||
private _hash = createHashMap;
|
||||
// private _logAll = true; // logs all possible weapon magazines (even if not used in a static weapon)
|
||||
private _logAll = false;
|
||||
private _logAll = false; // logs all possible weapon magazines (even if not used in a static weapon) when set to true
|
||||
|
||||
{
|
||||
private _vehicleType = configName _x;
|
||||
private _turretConfig = [_vehicleType, [0]] call CBA_fnc_getTurret;
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Helper function for ace_rearm; Gets magazines that should be loaded by csw
|
||||
* Helper function for ace_rearm; Gets magazines that should be loaded by csw.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: Specific Turret or pass bool to check all turrets <ARRAY><BOOL>(default: true)
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Specific Turret or pass bool to check all turrets <ARRAY|BOOL> (default: true)
|
||||
*
|
||||
* Return Value:
|
||||
* [0: compatible veh mags, 1: carry mags] <ARRAY>
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Handles AI Fired EH
|
||||
* Handles AI Fired EH.
|
||||
*
|
||||
* Arguments:
|
||||
* Fired EH
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Grim
|
||||
* Handles AI GetIn on an empty weapon
|
||||
* Author: LinkIsGrim
|
||||
* Handles AI GetIn on an empty CSW.
|
||||
*
|
||||
* Arguments:
|
||||
* GetIn EH
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror, modified by Grim
|
||||
* Handles AI reloading
|
||||
* Author: PabstMirror, LinkIsGrim
|
||||
* Handles AI reloading.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Static Weapon <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Gunner <OBJECT>
|
||||
* 2: Weapon <STRING>
|
||||
* 3: Magazine <STRING> (default: "")
|
||||
@ -15,7 +15,7 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_staticWeapon", "_gunner", "_weapon", ["_magazine", ""]];
|
||||
params ["_vehicle", "_gunner", "_weapon", ["_magazine", ""]];
|
||||
|
||||
private _turretPath = [_gunner] call EFUNC(common,getTurretIndex);
|
||||
private _reloadSource = objNull;
|
||||
@ -24,7 +24,7 @@ private _reloadNeededAmmo = -1;
|
||||
|
||||
private _cfgMagGroups = configFile >> QGVAR(groups);
|
||||
|
||||
private _nearSupplies = [_gunner] + ((_staticWeapon nearSupplies 10) select {
|
||||
private _nearSupplies = [_gunner] + ((_vehicle nearSupplies 10) select {
|
||||
isNull (group _x) ||
|
||||
{!([_x] call EFUNC(common,isPlayer)) && {[side group _gunner, side group _x] call BIS_fnc_sideIsFriendly}}
|
||||
});
|
||||
@ -49,7 +49,7 @@ private _nearSupplies = [_gunner] + ((_staticWeapon nearSupplies 10) select {
|
||||
private _xWeaponMag = _x;
|
||||
{
|
||||
if ((getNumber (_cfgMagGroups >> _x >> _xWeaponMag)) == 1) then {
|
||||
private _loadInfo = [_staticWeapon, _turretPath, _x, _xSource] call FUNC(reload_canLoadMagazine);
|
||||
private _loadInfo = [_vehicle, _turretPath, _x, _xSource] call FUNC(reload_canLoadMagazine);
|
||||
if (_loadInfo select 0) then {
|
||||
_reloadMag = _x;
|
||||
_reloadSource = _xSource;
|
||||
@ -81,16 +81,16 @@ if (_bestAmmoToSend == -1) exitWith {ERROR("No ammo");};
|
||||
[_reloadSource, _reloadMag, _bestAmmoToSend] call EFUNC(common,removeSpecificMagazine);
|
||||
|
||||
private _timeToLoad = 1;
|
||||
if (!isNull(configOf _staticWeapon >> QUOTE(ADDON) >> "ammoLoadTime")) then {
|
||||
_timeToLoad = getNumber(configOf _staticWeapon >> QUOTE(ADDON) >> "ammoLoadTime");
|
||||
if (!isNull(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime")) then {
|
||||
_timeToLoad = getNumber(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime");
|
||||
};
|
||||
|
||||
TRACE_1("Reloading in progress",_timeToLoad);
|
||||
[{
|
||||
params ["_staticWeapon", "_turretPath", "_gunner", "_reloadMag", "_bestAmmoToSend"];
|
||||
if ((!alive _staticWeapon) || {!alive _gunner} || {(_staticWeapon distance _gunner) > 10}) exitWith {TRACE_1("invalid state",_this);};
|
||||
params ["_vehicle", "_turretPath", "_gunner", "_reloadMag", "_bestAmmoToSend"];
|
||||
if ((!alive _vehicle) || {!alive _gunner} || {(_vehicle distance _gunner) > 10}) exitWith {TRACE_1("invalid state",_this);};
|
||||
|
||||
// Reload the static weapon
|
||||
TRACE_5("calling addTurretMag event",_staticWeapon,_turretPath,_gunner,_reloadMag,_bestAmmoToSend);
|
||||
TRACE_5("calling addTurretMag event",_vehicle,_turretPath,_gunner,_reloadMag,_bestAmmoToSend);
|
||||
[QGVAR(addTurretMag), _this] call CBA_fnc_globalEvent;
|
||||
}, [_staticWeapon, _turretPath, _gunner, _reloadMag, _bestAmmoToSend], _timeToLoad] call CBA_fnc_waitAndExecute;
|
||||
}, [_vehicle, _turretPath, _gunner, _reloadMag, _bestAmmoToSend], _timeToLoad] call CBA_fnc_waitAndExecute;
|
||||
|
@ -1,14 +1,14 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Checks if you can deploy a weapon on the tripod
|
||||
* Checks if you can deploy a weapon on the tripod.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Target Tripod <OBJECT>
|
||||
* 0: Target <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Wether or not you can deploy the weapon <BOOL>
|
||||
* Whether or not you can deploy the weapon <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, player] call ace_csw_fnc_assemble_canDeployWeapon
|
||||
|
@ -1,23 +1,23 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* If the CSW is mounted or in use this will not allow you to dismount the weapon
|
||||
* If the CSW is mounted or in use this will not allow you to dismount the weapon.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Static Weapon <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can Dismount <BOOL>
|
||||
* Can dismount weapon <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject] call ace_csw_fnc_assemble_canPickupWeapon
|
||||
* cursorObject call ace_csw_fnc_assemble_canPickupWeapon
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_staticWeapon"];
|
||||
params ["_vehicle"];
|
||||
|
||||
// Assembly mode: [0=disabled, 1=enabled, 2=enabled&unload, 3=default]
|
||||
private _assemblyMode = [false, true, true, GVAR(defaultAssemblyMode)] select (_staticWeapon getVariable [QGVAR(assemblyMode), 3]);
|
||||
private _assemblyMode = [false, true, true, GVAR(defaultAssemblyMode)] select (_vehicle getVariable [QGVAR(assemblyMode), 3]);
|
||||
|
||||
_assemblyMode && {alive _staticWeapon} && {((crew _staticWeapon) findIf {alive _x && {!unitIsUAV _x}}) == -1} // return
|
||||
_assemblyMode && {alive _vehicle} && {((crew _vehicle) findIf {alive _x && {!unitIsUAV _x}}) == -1} // return
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Deploys the tripod
|
||||
* Deploys the tripod.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
@ -10,7 +10,7 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player] call ace_csw_fnc_assemble_deployTripod
|
||||
* player call ace_csw_fnc_assemble_deployTripod
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -34,7 +34,7 @@
|
||||
_args params ["_player", "_secondaryWeaponClassname", "_secondaryWeaponInfo"];
|
||||
TRACE_3("deployTripod finish",_player,_secondaryWeaponClassname,_secondaryWeaponInfo);
|
||||
|
||||
private _tripodClassname = getText(configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deploy");
|
||||
private _tripodClassname = getText (configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deploy");
|
||||
|
||||
// Create a tripod
|
||||
private _cswTripod = createVehicle [_tripodClassname, [0, 0, 0], [], 0, "NONE"];
|
||||
@ -96,6 +96,6 @@
|
||||
} forEach _secondaryWeaponInfo;
|
||||
};
|
||||
|
||||
private _deployTime = getNumber(configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deployTime");
|
||||
private _deployTime = getNumber (configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deployTime");
|
||||
[TIME_PROGRESSBAR(_deployTime), [_player, _secondaryWeaponClassname, _secondaryWeaponInfo], _onFinish, _onFailure, LLSTRING(PlaceTripod_progressBar)] call EFUNC(common,progressBar);
|
||||
}, _this] call CBA_fnc_execNextFrame;
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Deploys the current CSW
|
||||
* Deploys the current CSW.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Target <OBJECT>
|
||||
* 1: Unit <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
* 2: Args <ANY>
|
||||
* 3: Action Data <ARRAY>
|
||||
*
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Modifies interaction for deploying weapon
|
||||
* Modifies interaction for deploying weapon.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Target <OBJECT>
|
||||
@ -21,7 +21,7 @@
|
||||
params ["_target", "_player", "", "_actionData"];
|
||||
|
||||
private _carryWeaponClassname = secondaryWeapon _player;
|
||||
private _assembleTo = (getText(configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "assembleTo" >> (typeOf _target)));
|
||||
private _assembleTo = getText (configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "assembleTo" >> typeOf _target);
|
||||
private _icon = getText (configFile >> "CfgVehicles" >> _assembleTo >> "picture");
|
||||
TRACE_2("",_assembleTo,_icon);
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Picks up the tripod and adds it to the player launcher slot
|
||||
* Picks up the tripod and adds it to the player launcher slot.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Tripod <OBJECT>
|
||||
* 1: Unit <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -56,7 +56,7 @@
|
||||
if (isNull _weaponHolder || {_tripodPos distance _weaponHolder > 2}) then {
|
||||
_weaponHolder = createVehicle ["GroundWeaponHolder", [0, 0, 0], [], 0, "CAN_COLLIDE"];
|
||||
_weaponHolder setDir random [0, 180, 360];
|
||||
_weaponHolder setVehiclePosition [_tripodPos, [], 0, "CAN_COLLIDE"]; // places object on surface below
|
||||
_weaponHolder setVehiclePosition [_tripodPos, [], 0, "CAN_COLLIDE"]; // Places object on surface below
|
||||
};
|
||||
|
||||
_weaponHolder addWeaponCargoGlobal [_tripodClassname, 1];
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Dismounts the weapon from the tripod and drops its backpack beside
|
||||
* Dismounts the weapon from the tripod and drops its backpack beside.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Static Weapon <OBJECT>
|
||||
* 1: Unit <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -17,10 +17,10 @@
|
||||
*/
|
||||
|
||||
[{
|
||||
params ["_staticWeapon", "_player"];
|
||||
TRACE_2("assemble_pickupWeapon",_staticWeapon,_player);
|
||||
params ["_vehicle", "_player"];
|
||||
TRACE_2("assemble_pickupWeapon",_vehicle,_player);
|
||||
|
||||
private _weaponConfig = configOf _staticWeapon >> QUOTE(ADDON);
|
||||
private _weaponConfig = configOf _vehicle >> QUOTE(ADDON);
|
||||
private _carryWeaponClassname = getText (_weaponConfig >> "disassembleWeapon");
|
||||
|
||||
if (!isClass (configFile >> "CfgWeapons" >> _carryWeaponClassname)) exitWith {
|
||||
@ -37,15 +37,15 @@
|
||||
private _onDisassembleFunc = getText (_weaponConfig >> "disassembleFunc");
|
||||
|
||||
private _pickupTime = getNumber (configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "pickupTime");
|
||||
TRACE_4("",typeOf _staticWeapon,_carryWeaponClassname,_turretClassname,_pickupTime);
|
||||
TRACE_4("",typeOf _vehicle,_carryWeaponClassname,_turretClassname,_pickupTime);
|
||||
|
||||
private _onFinish = {
|
||||
params ["_args"];
|
||||
_args params ["_staticWeapon", "_player", "_carryWeaponClassname", "_turretClassname", "_onDisassembleFunc"];
|
||||
TRACE_4("disassemble finish",_staticWeapon,_player,_carryWeaponClassname,_turretClassname);
|
||||
_args params ["_vehicle", "_player", "_carryWeaponClassname", "_turretClassname", "_onDisassembleFunc"];
|
||||
TRACE_4("disassemble finish",_vehicle,_player,_carryWeaponClassname,_turretClassname);
|
||||
|
||||
private _weaponPos = (getPosATL _staticWeapon) vectorAdd [0, 0, 0.1];
|
||||
private _weaponDir = getDir _staticWeapon;
|
||||
private _weaponPos = (getPosATL _vehicle) vectorAdd [0, 0, 0.1];
|
||||
private _weaponDir = getDir _vehicle;
|
||||
|
||||
private _carryWeaponMag = [];
|
||||
private _carryWeaponMags = compatibleMagazines _carryWeaponClassname;
|
||||
@ -64,7 +64,7 @@
|
||||
TRACE_2("Removing ammo",_xMag,_carryMag);
|
||||
[_player, _carryMag, _xAmmo] call FUNC(reload_handleReturnAmmo);
|
||||
};
|
||||
} forEach (magazinesAllTurrets _staticWeapon);
|
||||
} forEach (magazinesAllTurrets _vehicle);
|
||||
|
||||
if (_turretClassname isNotEqualTo "") then {
|
||||
private _cswTripod = createVehicle [_turretClassname, [0, 0, 0], [], 0, "NONE"];
|
||||
@ -76,7 +76,7 @@
|
||||
_cswTripod setVelocity [0, 0, -0.05];
|
||||
_cswTripod setVectorUp (surfaceNormal _weaponPos);
|
||||
}, [_cswTripod, _weaponDir, _weaponPos]] call CBA_fnc_execNextFrame;
|
||||
[_cswTripod, _staticWeapon] call (missionNamespace getVariable _onDisassembleFunc);
|
||||
[_cswTripod, _vehicle] call (missionNamespace getVariable _onDisassembleFunc);
|
||||
};
|
||||
|
||||
[{
|
||||
@ -99,7 +99,7 @@
|
||||
// Create a new weapon holder (don't try to get an existing one, as no guarantee where it could be)
|
||||
private _weaponHolder = createVehicle ["GroundWeaponHolder", [0, 0, 0], [], 0, "CAN_COLLIDE"];
|
||||
_weaponHolder setDir random [0, 180, 360];
|
||||
_weaponHolder setVehiclePosition [_weaponPos, [], 0, "CAN_COLLIDE"]; // places object on surface below
|
||||
_weaponHolder setVehiclePosition [_weaponPos, [], 0, "CAN_COLLIDE"]; // Places object on surface below
|
||||
_weaponHolder addWeaponWithAttachmentsCargoGlobal [[_carryWeaponClassname, "", "", "", _carryWeaponMag, [], ""], 1];
|
||||
}, [_player, _weaponPos, _carryWeaponClassname, _carryWeaponMag, _turretClassname]] call CBA_fnc_execNextFrame;
|
||||
|
||||
@ -108,23 +108,23 @@
|
||||
// Eject dead units (all crew are dead or UAV at this point, otherwise condition would have failed), but ignore UAV units
|
||||
{
|
||||
if (unitIsUAV _x) then {
|
||||
_staticWeapon deleteVehicleCrew _x;
|
||||
_vehicle deleteVehicleCrew _x;
|
||||
} else {
|
||||
moveOut _x;
|
||||
};
|
||||
} forEach (crew _staticWeapon);
|
||||
} forEach (crew _vehicle);
|
||||
|
||||
deleteVehicle _staticWeapon;
|
||||
deleteVehicle _vehicle;
|
||||
|
||||
LOG("end");
|
||||
};
|
||||
|
||||
private _condition = {
|
||||
params ["_args"];
|
||||
_args params ["_staticWeapon"];
|
||||
_args params ["_vehicle"];
|
||||
|
||||
_staticWeapon call FUNC(assemble_canPickupWeapon)
|
||||
_vehicle call FUNC(assemble_canPickupWeapon)
|
||||
};
|
||||
|
||||
[TIME_PROGRESSBAR(_pickupTime), [_staticWeapon, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, LLSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar);
|
||||
[TIME_PROGRESSBAR(_pickupTime), [_vehicle, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, LLSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar);
|
||||
}, _this] call CBA_fnc_execNextFrame;
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Checks if the unit can deploy a tripod
|
||||
* Checks if the player can deploy the tripod.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 0: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can deploy <BOOL>
|
||||
@ -15,8 +15,8 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit"];
|
||||
params ["_player"];
|
||||
|
||||
private _secondaryWeapon = secondaryWeapon _unit;
|
||||
private _secondaryWeapon = secondaryWeapon _player;
|
||||
|
||||
_secondaryWeapon != "" && {getText (configFile >> "CfgWeapons" >> _secondaryWeapon >> QUOTE(ADDON) >> "type") == "mount"} // return
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Checks if it's possible to get in the CSW
|
||||
* Checks if it's possible to get in the CSW.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
|
@ -1,17 +1,16 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Checks if the unit can pickup the tripod
|
||||
* Checks if the player can pickup the tripod.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Tripod <OBJECT>
|
||||
* 1: Unit (not used) <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can pickup <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, player] call ace_csw_fnc_canPickupTripod
|
||||
* cursorObject call ace_csw_fnc_canPickupTripod
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror, Dystopian
|
||||
* Gets magazine that the player can carry, suitable to vehicle magazine
|
||||
* Gets magazine that the player can carry, suitable to vehicle magazine.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle Magazine <STRING>
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Gets sub actions for what the unit can load into the CSW
|
||||
* Gets sub actions for what the player can load into the CSW.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
@ -35,7 +35,7 @@ private _condition = {
|
||||
([_target, _turretPath, _carryMag, _magSource] call FUNC(reload_canLoadMagazine)) select 0
|
||||
};
|
||||
|
||||
private _cfgMagazines = configFile >> "CfgMagazines"; // micro-optimization
|
||||
private _cfgMagazines = configFile >> "CfgMagazines"; // Micro-optimization
|
||||
private _actions = [];
|
||||
{
|
||||
_x params ["_carryMag", "", "_loadInfo"];
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Initializes CSW systems on vehicle
|
||||
* Initializes CSW systems on vehicle.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
@ -78,7 +78,7 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then {
|
||||
if ((GVAR(ammoHandling) == 0) && {!([false, true, true, GVAR(defaultAssemblyMode)] select (_target getVariable [QGVAR(assemblyMode), 3]))}) exitWith { false };
|
||||
[_player, _target, ["isNotSwimming", "isNotSitting"]] call EFUNC(common,canInteractWith)
|
||||
};
|
||||
private _childenCode = {
|
||||
private _childrenCode = {
|
||||
BEGIN_COUNTER(getActions); // can remove for final release
|
||||
private _ret = (call FUNC(getLoadActions)) + (call FUNC(getUnloadActions));
|
||||
END_COUNTER(getActions);
|
||||
@ -86,10 +86,10 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then {
|
||||
};
|
||||
if (_configEnabled && {_magazineLocation != ""}) then {
|
||||
private _positionCode = compile _magazineLocation;
|
||||
private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction);
|
||||
private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childrenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction);
|
||||
_ammoActionPath = [_typeOf, 0, [], _ammoAction] call EFUNC(interact_menu,addActionToClass);
|
||||
} else {
|
||||
private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode] call EFUNC(interact_menu,createAction);
|
||||
private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childrenCode] call EFUNC(interact_menu,createAction);
|
||||
_ammoActionPath = [_typeOf, 0, ["ACE_MainActions"], _ammoAction] call EFUNC(interact_menu,addActionToClass);
|
||||
};
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm, PabstMirror
|
||||
* Handles the use of proxy weapons to bypass engine reload times
|
||||
* Handles the use of proxy weapons to fix engine-reload times.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Turret <ARRAY>
|
||||
* 2: Proxy weapon needed <BOOL>
|
||||
* 2: Weapon should be emptied <BOOL>
|
||||
|
@ -1,16 +1,16 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror &tcvm
|
||||
* Tests if unit can load a magazine into a static weapon.
|
||||
* Author: PabstMirror, tcvm
|
||||
* Tests if unit can load a magazine into a CSW.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Static Weapon <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Turret Path <ARRAY>
|
||||
* 2: Carryable Magazine <STRING>
|
||||
* 3: Supplier <OBJECT>
|
||||
* 3: Supplier <OBJECT> (default: objNull)
|
||||
*
|
||||
* Return Value:
|
||||
* [CanLoad<BOOL>, LoadedMag<STRING>, AmmoNeeded<NUMBER>, IsBeltLinking<BOOL>]<ARRAY>
|
||||
* [Can Load <BOOL>, Loaded Mag <STRING>, Ammo Needed <NUMBER>, Is Belt Linking <BOOL>] <ARRAY>
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, [0], "ACE_csw_100Rnd_127x99_mag_red", player] call ace_csw_fnc_reload_canLoadMagazine
|
||||
@ -28,7 +28,7 @@ if (!alive _vehicle) exitWith { _return };
|
||||
// Verify holder has carry magazine
|
||||
if (
|
||||
(!isNull _magSource) &&
|
||||
{!((_magSource isKindOf "Bag_Base") || {_magSource isKindOf "ContainerSupply"})} && // hacky workaround for magazines within dropped backpacks
|
||||
{!((_magSource isKindOf "Bag_Base") || {_magSource isKindOf "ContainerSupply"})} && // Hacky workaround for magazines within dropped backpacks
|
||||
{
|
||||
((_vehicle distance _magSource) > 10) ||
|
||||
{((magazineCargo _magSource) findIf {_x == _carryMag}) == -1}
|
||||
@ -42,7 +42,7 @@ private _cfgGroupsCarryMag = configFile >> QGVAR(groups) >> _carryMag;
|
||||
|
||||
private _desiredAmmo = getNumber (configOf _vehicle >> QUOTE(ADDON) >> "desiredAmmo");
|
||||
if (_desiredAmmo == 0) then { _desiredAmmo = 100; };
|
||||
private _ammoNeeded = _desiredAmmo min getNumber (_cfgMagazinesCarryMag >> "count"); // assume it needs full carry mag
|
||||
private _ammoNeeded = _desiredAmmo min getNumber (_cfgMagazinesCarryMag >> "count"); // Assume it needs full carry mag
|
||||
private _loadedMag = "";
|
||||
private _isBeltLinking = false;
|
||||
|
||||
@ -62,7 +62,7 @@ scopeName "main";
|
||||
};
|
||||
private _maxMagazineAmmo = _desiredAmmo min getNumber (_cfgMagazines >> _xMag >> "count");
|
||||
if (_xAmmo >= _maxMagazineAmmo) exitWith {
|
||||
[false, _loadedMag, -6, false] breakOut "main"; // Already at capicity
|
||||
[false, _loadedMag, -6, false] breakOut "main"; // Already at capacity
|
||||
};
|
||||
_ammoNeeded = _maxMagazineAmmo - _xAmmo;
|
||||
_isBeltLinking = true;
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Tests if unit can unload a magazine from a static weapon.
|
||||
* Tests if unit can unload a magazine from a CSW.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Static Weapon <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Turret Path <ARRAY>
|
||||
* 2: Player <OBJECT>
|
||||
* 3: Carryable Magazine <STRING>
|
||||
|
@ -1,15 +1,15 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Gets magazines that the player is carrying that can be loaded into the static weapon
|
||||
* Gets nearby magazines that can be loaded into the CSW.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
* 0: CSW <OBJECT>
|
||||
* 1: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Mags <ARRAY>
|
||||
* [Carry Magazine <STRING>, Turret Path <ARRAY>, Load Info <NUMBER>, Magazine Source <OBJECT>]
|
||||
* [Carry Magazine <STRING>, Turret Path <ARRAY>, Load Info <ARRAY>, Magazine Source <OBJECT>]
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, player] call ace_csw_fnc_reload_getLoadableMagazines
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user