Compare commits

..

10 Commits

Author SHA1 Message Date
Sotirios Pupakis
2c9cbb8d09 misc 2025-07-01 19:42:36 +02:00
Sotirios Pupakis
1842de959a update 2025-07-01 19:08:01 +02:00
Tklama
47093b52fa Corrected inheritance issues 2025-06-29 16:58:07 +02:00
Sotirios Pupakis
e078d684c8 version bump 2025-04-01 02:56:02 +02:00
Tklama
a896a89d7e Audio at range fix 2025-03-24 15:04:05 +01:00
Sotirios Pupakis
1eb15eec04 version bump + casing setting 2025-03-10 19:06:50 +01:00
Tklama
f23da89e7e Update
- Added camouflage variants
- Fixed weapon loudness at distance
- Fixed issue with the weapon getting Arma´d after a casing is ejected
2025-03-10 17:50:51 +01:00
ilbinek
f178efc5ae version bump 2025-01-28 05:29:09 +01:00
ilbinek
c77d5403a4 stringtable sort 2025-01-28 05:27:00 +01:00
ilbinek
2269d78784 redid rotations 2025-01-28 05:25:42 +01:00
80 changed files with 488 additions and 324 deletions

View File

@@ -10,7 +10,7 @@ exclude=[".vscode/**/*"]
[version] [version]
major=0 major=0
minor=1 minor=1
patch=6 patch=10
git_hash=0 git_hash=0
@@ -22,13 +22,11 @@ archive=false
workshop = [ workshop = [
"450814997", # CBA_A3 "450814997", # CBA_A3
"463939057", # ACE "463939057", # ACE
"2369477168", # Advanced Developer Tools "3499977893", # Advanced Developer Tools
"3058335345", # TBD Mortars "3058335345", # TBD Mortars
] ]
dlc = [ dlc = [
"S.O.G. Prairie Fire",
"Global Mobilization",
] ]
mission = "test.Stratis" mission = "test.Stratis"

View File

@@ -36,7 +36,7 @@ GVAR(towingList) = [
["gm_ge_army_u1300l_container", [0, -2.69, -2.47], -0.18], ["gm_ge_army_u1300l_container", [0, -2.69, -2.47], -0.18],
["gm_ge_army_kat1_45,1.*", [-0.04, -3.34, -2.37], -0.20], ["gm_ge_army_kat1_45,1.*", [-0.04, -3.34, -2.37], -0.20],
["gm_ge_army_kat1_454.*", [-0.02, -4.62, -1.84], -0.20], ["gm_ge_army_kat1_454.*", [-0.02, -4.62, -1.84], -0.20],
["gm_ge_army_fuchsa0.*", [-0.27, -3.42, -2.6], -0.16], ["gm_ge_army_fuchsa0.*", [-0.27, -3.42, -2.6], -0.16]
]; ];
[QGVAR(detached), { [QGVAR(detached), {

View File

@@ -32,17 +32,31 @@ ADDON = true;
} }
] call CBA_fnc_addEventHandler; ] call CBA_fnc_addEventHandler;
GVAR(LAST_ROT_RIGHT) = 0;
GVAR(LAST_ROT_LEFT) = 0;
[LLSTRING(name), "RotateRight", [LLSTRING(rotright), LLSTRING(rotright_desc)], { [LLSTRING(name), "RotateRight", [LLSTRING(rotright), LLSTRING(rotright_desc)], {
if (vehicle player == player) exitWith {}; if (isNull objectParent player) exitWith {};
if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {}; if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {};
if (GVAR(LAST_ROT_RIGHT) > time + 0.05) exitWith {};
GVAR(LAST_ROT_RIGHT) = time;
call FUNC(rotateRight); call FUNC(rotateRight);
}, {}, }, {},
[0x20, [false, false, false]], true, 0.1] call CBA_fnc_addKeybind; [0x20, [false, false, false]], true] call CBA_fnc_addKeybind;
[LLSTRING(name), "RotateLeft", [LLSTRING(rotleft), LLSTRING(rotleft_desc)], { [LLSTRING(name), "RotateLeft", [LLSTRING(rotleft), LLSTRING(rotleft_desc)], {
if (vehicle player == player) exitWith {}; if (isNull objectParent player) exitWith {};
if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {}; if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {};
if (GVAR(LAST_ROT_LEFT) > time + 0.05) exitWith {};
GVAR(LAST_ROT_LEFT) = time;
call FUNC(rotateLeft); call FUNC(rotateLeft);
}, {}, }, {},
[0x1E, [false, false, false]], true, 0.1] call CBA_fnc_addKeybind; [0x1E, [false, false, false]], true] call CBA_fnc_addKeybind;
[
QGVAR(EJECT),
"CHECKBOX",
[LLSTRING(EJECT), LLSTRING(EJECT_DESC)],
QUOTE(ADDON_NICE),
true
] call CBA_fnc_addSetting;

View File

@@ -2,4 +2,4 @@
#include "XEH_PREP.hpp" #include "XEH_PREP.hpp"
ADDON = true; ADDON = true;

View File

@@ -29,13 +29,15 @@ params ["_arty", "_shell"];
if !(_arty getVariable[QGVAR(breech), false]) exitWith {false}; if !(_arty getVariable[QGVAR(breech), false]) exitWith {false};
// Check of the mortar is empty // Check if the mortar is empty
private _mags = _arty magazinesTurret [0]; private _mags = _arty magazinesTurret [0];
if (count _mags != 0) exitWith {false}; if (count _mags != 0) exitWith {false};
// Check if this shell is nearby // Check if this shell is nearby
private _veh = nearestObjects [player, [_shell], 3]; private _veh = nearestObjects [player, [_shell], 3];
private _ret = false; private _ret = false;
{ {
if (typeOf _x == _shell) exitWith {_ret = true;}; if (typeOf _x == _shell) exitWith {_ret = true;};

View File

@@ -28,7 +28,7 @@ params ["_arty"];
if !(_arty getVariable[QGVAR(breech), false]) exitWith {false}; if !(_arty getVariable[QGVAR(breech), false]) exitWith {false};
// Check of the mortar is empty // Check if the mortar is empty
private _mags = _arty magazinesTurret [0]; private _mags = _arty magazinesTurret [0];
if (count _mags == 0) exitWith {false}; if (count _mags == 0) exitWith {false};
true true

View File

@@ -27,7 +27,7 @@
params ["_arty"]; params ["_arty"];
if !([_arty] call FUNC(canCloseBrach)) exitWith {}; if !([_arty] call FUNC(canCloseBreech)) exitWith {};
_arty animateSource ["open_breech_source", 0]; _arty animateSource ["open_breech_source", 0];
_arty animateSource ["handle_breech_source", 0]; _arty animateSource ["handle_breech_source", 0];

View File

@@ -24,6 +24,8 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
if (!GVAR(EJECT)) exitWith {};
params ["_arty"]; params ["_arty"];
// tbd_mortars_105mm_casing_spent // tbd_mortars_105mm_casing_spent
@@ -42,4 +44,4 @@ _casing allowDamage false;
// Add vertical force to the magazine // Add vertical force to the magazine
[{params ["_casing"]; _casing addForce [_casing vectorModelToWorld [0, -100, 0], [0, 0, 0]];}, [_casing]] call CBA_fnc_execNextFrame; [{params ["_casing"]; _casing addForce [_casing vectorModelToWorld [0, -100, 0], [0, 0, 0]];}, [_casing]] call CBA_fnc_execNextFrame;
playsound3D [QPATHTO_R(TBD_M119\sounds\casing_drop.ogg), _casing, false, _soundPos , 5, 1, 30, 0.5]; playSound3D [QPATHTO_R(TBD_M119\sounds\casing_drop.ogg), _casing, false, _soundPos , 5, 1, 30, 0.5];

View File

@@ -107,4 +107,4 @@ _arty animateSource ["magazine_load_source", 0.36, 0.2];
["cba_xeh_deleted","ace_dragging_candrag","ace_common_effect_blockdamage","ace_interact_menu_atcache_ace_mainactions","cba_xeh_incomingmissile","cba_xeh_getin","ace_dragging_carryposition","ace_dragging_originalmass","ace_common_statuseffect_object","ace_dragging_carrydirection_temp","cba_xeh_local","cba_xeh_isprocessed","cba_xeh_init","cba_xeh_initpost","cba_xeh_fired","ace_dragging_dragposition","cba_xeh_engine","cba_xeh_respawn","ace_dragging_dragdirection","ace_dragging_cancarry","ace_interact_menu_atcache_ace_dragging_drop","ace_common_lockstatus","cba_xeh_killed","ace_dragging_carrydirection","ace_interact_menu_atcache_ace_dragging_drop_carry","cba_xeh_getout","cba_xeh_isinitialized","ace_dragging_ignoreweightdrag","ace_common_owner","tbd_mortars_105mm_dpicm_fuse_timer","ace_dragging_ignoreweightcarry"] ["cba_xeh_deleted","ace_dragging_candrag","ace_common_effect_blockdamage","ace_interact_menu_atcache_ace_mainactions","cba_xeh_incomingmissile","cba_xeh_getin","ace_dragging_carryposition","ace_dragging_originalmass","ace_common_statuseffect_object","ace_dragging_carrydirection_temp","cba_xeh_local","cba_xeh_isprocessed","cba_xeh_init","cba_xeh_initpost","cba_xeh_fired","ace_dragging_dragposition","cba_xeh_engine","cba_xeh_respawn","ace_dragging_dragdirection","ace_dragging_cancarry","ace_interact_menu_atcache_ace_dragging_drop","ace_common_lockstatus","cba_xeh_killed","ace_dragging_carrydirection","ace_interact_menu_atcache_ace_dragging_drop_carry","cba_xeh_getout","cba_xeh_isinitialized","ace_dragging_ignoreweightdrag","ace_common_owner","tbd_mortars_105mm_dpicm_fuse_timer","ace_dragging_ignoreweightcarry"]

View File

@@ -26,7 +26,7 @@
params ["_arty"]; params ["_arty"];
if !([_arty] call FUNC(canOpenBrach)) exitWith {}; if !([_arty] call FUNC(canOpenBreech)) exitWith {};
_arty animateSource ["open_breech_source", 1]; _arty animateSource ["open_breech_source", 1];
_arty animateSource ["handle_breech_source", 1]; _arty animateSource ["handle_breech_source", 1];

View File

@@ -24,7 +24,7 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
if (vehicle player == player) exitWith {}; if (isNull objectParent player) exitWith {};
if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {}; if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {};
private _arty = vehicle player; private _arty = vehicle player;
@@ -32,11 +32,7 @@ private _arty = vehicle player;
// Get the current animation source phase // Get the current animation source phase
private _currentPhase = _arty animationSourcePhase "howitzer_rotation_source"; private _currentPhase = _arty animationSourcePhase "howitzer_rotation_source";
// Edit it // Edit it
_currentPhase = _currentPhase - 4; _currentPhase = _currentPhase - 1;
if (_currentPhase < -1440) then {
_currentPhase = 1440;
};
// Set the new animation source phase // Set the new animation source phase
_arty animateSource ["howitzer_rotation_source", _currentPhase, 30]; _arty animateSource ["howitzer_rotation_source", _currentPhase, true];

View File

@@ -24,7 +24,7 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
if (vehicle player == player) exitWith {}; if (isNull objectParent player) exitWith {};
if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {}; if (typeOf (vehicle player) != QUOTE(TBD_M119)) exitWith {};
private _arty = vehicle player; private _arty = vehicle player;
@@ -32,11 +32,7 @@ private _arty = vehicle player;
// Get the current animation source phase // Get the current animation source phase
private _currentPhase = _arty animationSourcePhase "howitzer_rotation_source"; private _currentPhase = _arty animationSourcePhase "howitzer_rotation_source";
// Edit it // Edit it
_currentPhase = _currentPhase + 4; _currentPhase = _currentPhase + 1;
if (_currentPhase > 1440) then {
_currentPhase = 1440;
};
// Set the new animation source phase // Set the new animation source phase
_arty animateSource ["howitzer_rotation_source", _currentPhase, 30]; _arty animateSource ["howitzer_rotation_source", _currentPhase, true];

View File

@@ -15,7 +15,8 @@
#define PREP_SUB(subfolder,fncName) [QPATHTOF(functions\subfolder\DOUBLES(fnc,fncName).sqf), QUOTE(DFUNC(DOUBLES(subfolder,fncName)))] call CBA_fnc_compileFunction #define PREP_SUB(subfolder,fncName) [QPATHTOF(functions\subfolder\DOUBLES(fnc,fncName).sqf), QUOTE(DFUNC(DOUBLES(subfolder,fncName)))] call CBA_fnc_compileFunction
#define TBD_MORT(cmp,fncName) tbd_mortars##_##cmp##_##fnc##_##fncName #define TBD_MORT(cmp,fncName) tbd_mortars##_##cmp##_##fnc##_##fncName
//#define TBD_MORT(cmp,fncName) tbd##_##cmp##_##fnc##_##fncName
#define ADDON_NICE TBD M119
#define TBD_M119 tbd_m119 #define TBD_M119 tbd_m119
#define TBD_M119_WEAPON tbd_m119_weapon #define TBD_M119_WEAPON tbd_m119_weapon
@@ -23,6 +24,10 @@
#define TBD_M119_SHOT_SOUNDSET tbd_m119_shot_soundset #define TBD_M119_SHOT_SOUNDSET tbd_m119_shot_soundset
#define TBD_M119_SHOT_SOUNDSHADER tbd_M119_shot_soundshader #define TBD_M119_SHOT_SOUNDSHADER tbd_M119_shot_soundshader
#define TBD_M119_SHOT_MEADOWS_SOUNDSHADER tbd_M119_shot_meadows_soundshader
#define TBD_M119_SHOT_HOUSES_SOUNDSHADER tbd_M119_shot_houses_soundshader
#define TBD_M119_SHOT_FOREST_SOUNDSHADER tbd_M119_shot_forest_soundshader
#define TBD_MORTARS_105mm_ROUND_HE_CHARGE_1 tbd_mortars_105mm_round_he_charge_1 #define TBD_MORTARS_105mm_ROUND_HE_CHARGE_1 tbd_mortars_105mm_round_he_charge_1
#define TBD_MORTARS_105mm_ROUND_HE_CHARGE_2 tbd_mortars_105mm_round_he_charge_2 #define TBD_MORTARS_105mm_ROUND_HE_CHARGE_2 tbd_mortars_105mm_round_he_charge_2
#define TBD_MORTARS_105mm_ROUND_HE_CHARGE_3 tbd_mortars_105mm_round_he_charge_3 #define TBD_MORTARS_105mm_ROUND_HE_CHARGE_3 tbd_mortars_105mm_round_he_charge_3
@@ -85,4 +90,4 @@
#define TBD_MORTARS_105mm_ROUND_LASER_CHARGE_MAG_7 tbd_mortars_105mm_round_laser_charge_mag_7 #define TBD_MORTARS_105mm_ROUND_LASER_CHARGE_MAG_7 tbd_mortars_105mm_round_laser_charge_mag_7
#define TOW_RADIUS 10 #define TOW_RADIUS 10
#define ATTACH_RADIUS 2 #define ATTACH_RADIUS 2

View File

@@ -1,70 +1,35 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project name="tbd_mortar"> <Project name="tbd_mortar">
<Package name="Translation"> <Package name="Translation">
<Key ID="STR_TBD_M119_M119_NAME">
<English>M119A3</English>
<Czech>M119A3</Czech>
<Russian>M119A3</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_OPEN_BREECH">
<English>Open breech</English>
<Czech>Otevřít zadovku</Czech>
<Russian>Открыть</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_CLOSE_BREECH"> <Key ID="STR_TBD_M119_M119_CLOSE_BREECH">
<English>Close breech</English> <English>Close breech</English>
<Czech>Zavřít zadovku</Czech> <Czech>Zavřít zadovku</Czech>
<Russian>Закрыть</Russian> <Russian>Закрыть</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_FOLD">
<English>Fold</English>
<Czech>Složit</Czech>
<Russian>Сложить</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_UNFOLD">
<English>Unfold</English>
<Czech>Rozložit</Czech>
<Russian>Развернуть</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_LOAD">
<English>Load</English>
<Czech>Nabít</Czech>
<Russian>Зарядить</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_UNLOAD">
<English>Unload</English>
<Czech>Vybít</Czech>
<Russian>Разрядить</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_TOW">
<English>Tow</English>
<Czech>Zaháknout</Czech>
<Russian>Прицепить</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_DETACH"> <Key ID="STR_TBD_M119_M119_DETACH">
<English>Detach</English> <English>Detach</English>
<Czech>Odpojit</Czech> <Czech>Odpojit</Czech>
<Russian>Отсоединить</Russian> <Russian>Отсоединить</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_ROTLEFT"> <Key ID="STR_TBD_M119_M119_DPICM">
<English>Rotate left</English> <English>DPICM</English>
<Czech>Otočit vlevo</Czech> <Czech>Kazetové</Czech>
<Russian>Повернуть орудие влево</Russian> <Russian>Кассетный</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_ROTRIGHT"> <Key ID="STR_TBD_M119_M119_EJECT">
<English>Rotate right</English> <English>Eject casing</English>
<Czech>Otočit vprevo</Czech> <Czech>Vyhodit nábojnici</Czech>
<Russian>Повернуть орудие вправо</Russian> <Russian>Выбросить гильщу</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_ROTLEFT_DESC"> <Key ID="STR_TBD_M119_M119_EJECT_DESC">
<English>Rotate the gun to the left</English> <English>Should a casing be ejected when breech is opened after a shot was fired</English>
<Czech>Otočit celou houfnici vlevo</Czech> <Czech>Má se vyhodit nábojnice po otevření závodky po vystřelení</Czech>
<Russian>Повернуть орудие влево</Russian> <Russian>Должна гильза выброситься после открытия казенника после выстрела</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_ROTRIGHT_DESC"> <Key ID="STR_TBD_M119_M119_FOLD">
<English>Rotate the gun to the right</English> <English>Fold</English>
<Czech>Otočit celou houfnici vpravo</Czech> <Czech>Složit</Czech>
<Russian>Повернуть орудие вправо</Russian> <Russian>Сложить</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_HE"> <Key ID="STR_TBD_M119_M119_HE">
<English>HE</English> <English>HE</English>
@@ -76,15 +41,60 @@
<Czech>Laserové</Czech> <Czech>Laserové</Czech>
<Russian>управляемыми</Russian> <Russian>управляемыми</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_LOAD">
<English>Load</English>
<Czech>Nabít</Czech>
<Russian>Зарядить</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_NAME">
<English>M119A3</English>
<Czech>M119A3</Czech>
<Russian>M119A3</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_OPEN_BREECH">
<English>Open breech</English>
<Czech>Otevřít zadovku</Czech>
<Russian>Открыть</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_ROTLEFT">
<English>Rotate left</English>
<Czech>Otočit vlevo</Czech>
<Russian>Повернуть орудие влево</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_ROTLEFT_DESC">
<English>Rotate the gun to the left</English>
<Czech>Otočit celou houfnici vlevo</Czech>
<Russian>Повернуть орудие влево</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_ROTRIGHT">
<English>Rotate right</English>
<Czech>Otočit vprevo</Czech>
<Russian>Повернуть орудие вправо</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_ROTRIGHT_DESC">
<English>Rotate the gun to the right</English>
<Czech>Otočit celou houfnici vpravo</Czech>
<Russian>Повернуть орудие вправо</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_SMOKE"> <Key ID="STR_TBD_M119_M119_SMOKE">
<English>Smoke</English> <English>Smoke</English>
<Czech>Dýmové</Czech> <Czech>Dýmové</Czech>
<Russian>дымовыми</Russian> <Russian>дымовыми</Russian>
</Key> </Key>
<Key ID="STR_TBD_M119_M119_DPICM"> <Key ID="STR_TBD_M119_M119_TOW">
<English>DPICM</English> <English>Tow</English>
<Czech>Kazetové</Czech> <Czech>Zaháknout</Czech>
<Russian>Кассетный</Russian> <Russian>Прицепить</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_UNFOLD">
<English>Unfold</English>
<Czech>Rozložit</Czech>
<Russian>Развернуть</Russian>
</Key>
<Key ID="STR_TBD_M119_M119_UNLOAD">
<English>Unload</English>
<Czech>Vybít</Czech>
<Russian>Разрядить</Russian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@@ -69,4 +69,4 @@ class close_2 {
}; };

View File

@@ -1,6 +1,6 @@
class CfgSoundSets { class CfgSoundSets {
class TBD_M119_SHOT_SOUNDSET { class TBD_M119_SHOT_SOUNDSET {
soundShaders[] = {QUOTE(TBD_M119_SHOT_SOUNDSHADER)}; soundShaders[] = {QUOTE(TBD_M119_SHOT_MEADOWS_SOUNDSHADER),QUOTE(TBD_M119_SHOT_FOREST_SOUNDSHADER),QUOTE(TBD_M119_SHOT_HOUSES_SOUNDSHADER)};
volumeFactor = 1.6; volumeFactor = 1.6;
volumeCurve = "InverseSquare2Curve"; volumeCurve = "InverseSquare2Curve";
sound3DProcessingType = "WeaponMediumShot3DProcessingType"; sound3DProcessingType = "WeaponMediumShot3DProcessingType";
@@ -8,5 +8,9 @@ class CfgSoundSets {
spatial = 1; spatial = 1;
doppler = 0; doppler = 0;
loop = 0; loop = 0;
frequencyRandomizer = 2;
frequencyRandomizerMin = 0.2;
obstructionFactor = 0;
occlusionFactor = 0.3;
}; };
}; };

View File

@@ -1,8 +1,36 @@
class CfgSoundShaders { class CfgSoundShaders {
class TBD_M119_SHOT_SOUNDSHADER {
class TBD_M119_SHOT_MEADOWS_SOUNDSHADER {
samples[] = {{QPATHTOF(TBD_M119\sounds\M119shot.ogg), 1}}; samples[] = {{QPATHTOF(TBD_M119\sounds\M119shot.ogg), 1}};
volume = 4; volume = "2 * (meadows max sea) * (1 - (interior * 0.7))";
range = 1000; range = 5000;
rangeCurve = "LinearCurve"; rangeCurve[] = {{0, 1},
{5, 1},
{6, 1},
{5000, 1}
};
}; };
class TBD_M119_SHOT_HOUSES_SOUNDSHADER {
samples[] = {{QPATHTOF(TBD_M119\sounds\M119shot.ogg), 1}};
volume = "2 * houses * (1 - (interior * 0.7))";
range = 5000;
rangeCurve[] = {{0, 1},
{5, 1},
{6, 1},
{5000, 1}
};
};
class TBD_M119_SHOT_FOREST_SOUNDSHADER {
samples[] = {{QPATHTOF(TBD_M119\sounds\M119shot.ogg), 1}};
volume = "2 * (forest max trees) * (1 - (interior * 0.7))";
range = 5000;
rangeCurve[] = {{0, 1},
{5, 1},
{6, 1},
{5000, 1}
};
};
}; };

View File

@@ -1,42 +1,43 @@
class CfgVehicles { class CfgVehicles {
class Land; class Land;
class LandVehicle: Land { class LandVehicle : Land {
class Turrets; class NewTurret;
}; };
class StaticWeapon : LandVehicle { class StaticWeapon : LandVehicle {
class Turrets: Turrets {
class MainTurret;
};
class ACE_Actions; class ACE_Actions;
}; class Turrets {
class StaticMortar : StaticWeapon { class MainTurret : NewTurret {
class Turrets: Turrets {
class MainTurret: MainTurret {
class ViewOptics; class ViewOptics;
}; };
}; };
class ACE_Actions: ACE_Actions { };
class StaticMortar : StaticWeapon {
class ACE_Actions : ACE_Actions {
class ACE_MainActions; class ACE_MainActions;
}; };
}; };
class TBD_M119: StaticMortar { class TBD_M119 : StaticMortar {
artilleryScanner = 0; // turn off artillery computer artilleryScanner = 0; // turn off artillery computer
ace_artillerytables_showRangetable = 1; // "fix" rangetables not showing up ace_artillerytables_showRangetable =
ace_artillerytables_showGunLaying = 1; // "fix" rangetables not showing up 1; // "fix" rangetables not showing up
ace_artillerytables_showGunLaying =
1; // "fix" rangetables not showing up
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
author = "TBD Team"; author = "TBD Team";
displayName = CSTRING(name); displayName = CSTRING(name);
model = QPATHTOF(TBD_M119\TBD_M119); model = QPATHTOF(TBD_M119\TBD_M119.p3d);
editorPreview = QPATHTOF(TBD_M119\data\preview.jpg); editorPreview = QPATHTOF(TBD_M119\data\preview.jpg);
picture = QPATHTOF(TBD_M119\data\M119_icon.paa); picture = QPATHTOF(TBD_M119\data\M119_icon.paa);
side = 1; side = 1;
faction = "BLU_F"; faction = "BLU_F";
crew = "B_Soldier_F"; crew = "B_Soldier_F";
slingLoadCargoMemoryPoints[] = {"sling_point_1", "sling_point_2", "towing_point"}; slingLoadCargoMemoryPoints[] = {"sling_point_1", "sling_point_2",
"towing_point"};
transportSoldier = 0; transportSoldier = 0;
cargoAction[] = {"M119pose"}; cargoAction[] = {"M119pose"};
getInAction = "GetInMortar"; getInAction = "GetInMortar";
@@ -47,8 +48,87 @@ class CfgVehicles {
accuracy = 0.8; accuracy = 0.8;
EPEImpulseDamageCoef = 5; EPEImpulseDamageCoef = 5;
class Turrets: Turrets { hiddenSelections[] = {"camo1", "camo2", "camo3", "camo4", "camo5",
class MainTurret: MainTurret { "camo6", "camo7", "camo8", "camo9"};
hiddenSelectionsTextures[] = {
"x\TBD_M119\addons\M119\tbd_m119\data\one_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\two_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\three_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\four_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\five_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\six_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\seven_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\plate_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\scope_co.paa"};
class TextureSources {
class dark_green {
author = "Tklama";
displayName = "Dark Green";
factions[] = {};
textures[] = {
"x\TBD_M119\addons\M119\tbd_m119\data\one_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\two_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\three_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\four_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\five_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\six_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\seven_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\plate_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\scope_co.paa"};
};
class lightgreen {
author = "Tklama";
displayName = "Light Green";
factions[] = {};
textures[] = {
"x\TBD_M119\addons\M119\tbd_m119\data\one_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\two_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\three_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\four_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\five_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\six_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\seven_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\plate_lg_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\scope_lg_co.paa"};
};
class desert {
author = "Tklama";
displayName = "Desert";
factions[] = {};
textures[] = {
"x\TBD_M119\addons\M119\tbd_m119\data\one_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\two_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\three_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\four_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\five_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\six_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\seven_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\plate_desert_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\scope_desert_co.paa"};
};
class arctic {
author = "Tklama";
displayName = "Arctic";
factions[] = {};
textures[] = {
"x\TBD_M119\addons\M119\tbd_m119\data\one_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\two_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\three_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\four_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\five_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\six_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\seven_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\plate_arctic_co.paa",
"x\TBD_M119\addons\M119\tbd_m119\data\scope_arctic_co.paa"};
};
};
class Turrets : Turrets {
class MainTurret : MainTurret {
gunnerRightHandAnimName = "vertical_handpos"; gunnerRightHandAnimName = "vertical_handpos";
gunnerLeftHandAnimName = "horizontal_handpos"; gunnerLeftHandAnimName = "horizontal_handpos";
gunnerAction = "M119pose"; gunnerAction = "M119pose";
@@ -75,8 +155,9 @@ class CfgVehicles {
gunnerUsesPilotView = 1; gunnerUsesPilotView = 1;
disableSoundAttenuation = 1; disableSoundAttenuation = 1;
soundServo[] = {QPATHTOF(TBD_M119\sounds\wheels.ogg), 1, 1, 20}; soundServo[] = {QPATHTOF(TBD_M119\sounds\wheels.ogg), 1, 1, 20};
soundServoVertical[] = {QPATHTOF(TBD_M119\sounds\metalsqueal.ogg), 5, 1, 35}; soundServoVertical[] = {
class ViewOptics: ViewOptics { QPATHTOF(TBD_M119\sounds\metalsqueal.ogg), 5, 1, 35};
class ViewOptics : ViewOptics {
camPos = "gunnerview"; camPos = "gunnerview";
camDir = "look"; camDir = "look";
initAngleX = 0; initAngleX = 0;
@@ -122,71 +203,71 @@ class CfgVehicles {
selectionDamage = "zbytek"; selectionDamage = "zbytek";
class DestructionEffects { class DestructionEffects {
class Smoke2 {
class Smoke2 {
intensity = 1; intensity = 1;
interval = 1; interval = 1;
lifetime = 5; lifetime = 5;
position = "konec_hlavne"; position = "konec_hlavne";
simulation = "particles" ; simulation = "particles";
type = "WeaponWreckSmoke";}; type = "WeaponWreckSmoke";
};
class Smoke { class Smoke {
intensity = 1; intensity = 1;
interval = 1; interval = 1;
lifetime = 5; lifetime = 5;
position = "usti_hlavne"; position = "usti_hlavne";
simulation = "particles" ; simulation = "particles";
type = "WeaponWreckSmoke";}; type = "WeaponWreckSmoke";
};
class Smoke3 { class Smoke3 {
intensity = 0.15; intensity = 0.15;
interval = 1; interval = 1;
lifetime = 3.5; lifetime = 3.5;
position = "smoke"; position = "smoke";
simulation = "particles" ; simulation = "particles";
type = "ObjectDestructionSmoke";}; type = "ObjectDestructionSmoke";
};
};
class Damage {
mat[] = {
"x\TBD_M119\addons\M119\tbd_m119\data\one.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\one_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\one_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\two.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\two_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\two_destroy.rvmat",
}; "x\TBD_M119\addons\M119\tbd_m119\data\three.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\three_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\three_destroy.rvmat",
class Damage { "x\TBD_M119\addons\M119\tbd_m119\data\four.rvmat",
mat[] = {"x\TBD_M119\addons\M119\tbd_m119\data\one.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\four_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\one_damage.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\four_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\one_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\five.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\two.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\five_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\two_damage.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\five_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\two_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\six.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\three.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\six_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\three_damage.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\six_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\three_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\seven.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\four.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\seven_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\four_damage.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\seven_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\four_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\plate.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\five.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\plate_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\five_damage.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\plate_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\five_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\scope.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\six.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\scope_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\six_damage.rvmat", "x\TBD_M119\addons\M119\tbd_m119\data\scope_destroy.rvmat"};
"x\TBD_M119\addons\M119\tbd_m119\data\six_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\seven.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\seven_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\seven_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\plate.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\plate_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\plate_destroy.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\scope.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\scope_damage.rvmat",
"x\TBD_M119\addons\M119\tbd_m119\data\scope_destroy.rvmat"};
tex[] = {}; tex[] = {};
}; };
@@ -194,7 +275,7 @@ class CfgVehicles {
class rest_rotation_source { class rest_rotation_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 0; animPeriod = 0.05;
}; };
class howitzer_rotation_source { class howitzer_rotation_source {
source = "user"; source = "user";
@@ -244,26 +325,26 @@ class CfgVehicles {
animPeriod = 1; animPeriod = 1;
}; };
class recoil_barrel_source { class recoil_barrel_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 1; animPeriod = 1;
}; };
class open_breech_source { class open_breech_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 0.5; animPeriod = 0.5;
sound = "close"; sound = "close";
soundPosition = "konec_hlavne"; soundPosition = "konec_hlavne";
}; };
class handle_breech_source { class handle_breech_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 0.5; animPeriod = 0.5;
}; };
class hydraulics_source { class hydraulics_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
@@ -279,8 +360,8 @@ class CfgVehicles {
}; };
class magazine_load_source { class magazine_load_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 0.5; animPeriod = 0.5;
}; };
@@ -291,10 +372,9 @@ class CfgVehicles {
}; };
class magazine_smoke_load_source { class magazine_smoke_load_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 0.5; animPeriod = 0.5;
}; };
class magazine_smoke_hide_source { class magazine_smoke_hide_source {
@@ -304,10 +384,9 @@ class CfgVehicles {
}; };
class magazine_dpicm_load_source { class magazine_dpicm_load_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 0.5; animPeriod = 0.5;
}; };
class magazine_dpicm_hide_source { class magazine_dpicm_hide_source {
@@ -317,10 +396,9 @@ class CfgVehicles {
}; };
class magazine_laser_load_source { class magazine_laser_load_source {
source = "user"; source = "user";
initPhase = 0; initPhase = 0;
animPeriod = 0.5; animPeriod = 0.5;
}; };
class magazine_laser_hide_source { class magazine_laser_hide_source {
@@ -346,10 +424,15 @@ class CfgVehicles {
initPhase = 0; initPhase = 0;
animPeriod = 1; animPeriod = 1;
}; };
class m119_reload_source {
weapon = "TBD_M119_WEAPON";
source = "reload";
};
}; };
class ACE_Actions: ACE_Actions { class ACE_Actions : ACE_Actions {
class ACE_MainActions: ACE_MainActions { class ACE_MainActions : ACE_MainActions {
selection = "interact"; selection = "interact";
class TBD_Fold { class TBD_Fold {
@@ -388,64 +471,64 @@ class CfgVehicles {
class TBD_Load { class TBD_Load {
displayName = CSTRING(load); displayName = CSTRING(load);
distance = 1.5; distance = 1.5;
showDisabled=0; showDisabled = 0;
exceptions[]={}; exceptions[] = {};
priority=5; priority = 5;
selection = "casing_spawn"; selection = "casing_spawn";
icon = "x\tbd_mortars\addons\main\data\load.paa"; icon = "x\tbd_mortars\addons\main\data\load.paa";
class TBD_LoadHE { class TBD_LoadHE {
displayName = CSTRING(HE); displayName = CSTRING(HE);
class TBD_LoadHECh1 { class TBD_LoadHECh1 {
displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_1"; displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_1";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_1)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_1)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_1)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_1)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadHECh2 { class TBD_LoadHECh2 {
displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_2"; displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_2";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_2)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_2)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_2)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_2)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadHECh3 { class TBD_LoadHECh3 {
displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_3"; displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_3";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_3)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_3)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_3)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_3)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadHECh4 { class TBD_LoadHECh4 {
displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_4"; displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_4";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_4)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_4)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_4)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_4)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadHECh5 { class TBD_LoadHECh5 {
displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_5"; displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_5";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_5)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_5)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_5)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_5)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadHECh6 { class TBD_LoadHECh6 {
displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_6"; displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_6";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_6)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_6)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_6)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_6)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadHECh7 { class TBD_LoadHECh7 {
displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_7"; displayName = "$STR_TBD_MORTARS_105mm_HE_CHARGE_7";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_7)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_7)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_7)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_HE_CHARGE_7)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
@@ -455,56 +538,56 @@ class CfgVehicles {
class TBD_LoadLASERCh6 { class TBD_LoadLASERCh6 {
displayName = CSTRING(LASER); displayName = CSTRING(LASER);
class TBD_LoadLASERCh1 { class TBD_LoadLASERCh1 {
displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_1"; displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_1";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_1)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_1)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_1)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_1)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadLASERCh2 { class TBD_LoadLASERCh2 {
displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_2"; displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_2";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_2)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_2)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_2)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_2)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadLASERCh3 { class TBD_LoadLASERCh3 {
displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_3"; displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_3";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_3)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_3)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_3)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_3)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadLASERCh4 { class TBD_LoadLASERCh4 {
displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_4"; displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_4";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_4)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_4)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_4)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_4)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadLASERCh5 { class TBD_LoadLASERCh5 {
displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_5"; displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_5";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_5)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_5)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_5)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_5)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadLASERCh6 { class TBD_LoadLASERCh6 {
displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_6"; displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_6";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_6)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_6)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_6)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_6)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadLASERCh7 { class TBD_LoadLASERCh7 {
displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_7"; displayName = "$STR_TBD_MORTARS_105mm_LASER_CHARGE_7";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_7)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_7)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_7)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_LASER_CHARGE_7)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
@@ -514,56 +597,56 @@ class CfgVehicles {
class TBD_LoadSMOKECh6 { class TBD_LoadSMOKECh6 {
displayName = CSTRING(SMOKE); displayName = CSTRING(SMOKE);
class TBD_LoadSMOKECh1 { class TBD_LoadSMOKECh1 {
displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_1"; displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_1";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_1)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_1)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_1)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_1)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadSMOKECh2 { class TBD_LoadSMOKECh2 {
displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_2"; displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_2";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_2)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_2)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_2)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_2)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadSMOKECh3 { class TBD_LoadSMOKECh3 {
displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_3"; displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_3";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_3)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_3)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_3)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_3)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadSMOKECh4 { class TBD_LoadSMOKECh4 {
displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_4"; displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_4";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_4)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_4)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_4)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_4)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadSMOKECh5 { class TBD_LoadSMOKECh5 {
displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_5"; displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_5";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_5)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_5)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_5)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_5)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadSMOKECh6 { class TBD_LoadSMOKECh6 {
displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_6"; displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_6";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_6)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_6)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_6)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_6)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadSMOKECh7 { class TBD_LoadSMOKECh7 {
displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_7"; displayName = "$STR_TBD_MORTARS_105mm_SMOKE_CHARGE_7";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_7)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_7)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_7)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_SMOKE_CHARGE_7)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
@@ -573,56 +656,56 @@ class CfgVehicles {
class TBD_LoadDPICMCh6 { class TBD_LoadDPICMCh6 {
displayName = CSTRING(DPICM); displayName = CSTRING(DPICM);
class TBD_LoadDPICMCh1 { class TBD_LoadDPICMCh1 {
displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_1"; displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_1";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_1)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_1)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_1)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_1)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadDPICMCh2 { class TBD_LoadDPICMCh2 {
displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_2"; displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_2";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_2)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_2)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_2)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_2)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadDPICMCh3 { class TBD_LoadDPICMCh3 {
displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_3"; displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_3";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_3)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_3)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_3)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_3)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadDPICMCh4 { class TBD_LoadDPICMCh4 {
displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_4"; displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_4";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_4)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_4)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_4)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_4)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadDPICMCh5 { class TBD_LoadDPICMCh5 {
displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_5"; displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_5";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_5)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_5)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_5)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_5)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadDPICMCh6 { class TBD_LoadDPICMCh6 {
displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_6"; displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_6";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_6)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_6)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_6)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_6)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
}; };
class TBD_LoadDPICMCh7 { class TBD_LoadDPICMCh7 {
displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_7"; displayName = "$STR_TBD_MORTARS_105mm_DPICM_CHARGE_7";
condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_7)))] call FUNC(canLoad)); condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_7)))] call FUNC(canLoad));
statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_7)),0)] call FUNC(load)); statement = QUOTE([ARR_3(_target,QUOTE(QUOTE(TBD_MORTARS_105mm_ROUND_DPICM_CHARGE_7)),0)] call FUNC(load));
showDisabled = 0; showDisabled = 0;
@@ -630,10 +713,7 @@ class CfgVehicles {
}; };
}; };
}; };
/*
};*/
class TBD_Unload { class TBD_Unload {
selection = "casing_spawn"; selection = "casing_spawn";
distance = 1.5; distance = 1.5;
@@ -656,7 +736,8 @@ class CfgVehicles {
class TBD_Detach { class TBD_Detach {
selection = "towing_point"; selection = "towing_point";
distance = 2.5; distance = 2.5;
condition = QUOTE(_target getVariable [ARR_2(QUOTE(QGVAR(towed)),false)]); condition = QUOTE(
_target getVariable[ARR_2(QUOTE(QGVAR(towed)),false)]);
showDisabled = 0; showDisabled = 0;
displayName = CSTRING(DETACH); displayName = CSTRING(DETACH);
statement = QUOTE([ARR_1(_target)] call FUNC(detach)); statement = QUOTE([ARR_1(_target)] call FUNC(detach));

View File

@@ -1,11 +1,5 @@
class CfgWeapons { class CfgWeapons {
class CannonCore { class CannonCore;
class player;
class close;
class short;
class medium;
class far;
};
class mortar_82mm: CannonCore {}; class mortar_82mm: CannonCore {};
@@ -19,7 +13,7 @@ class CfgWeapons {
}; };
modes[] = {"Single"}; modes[] = {"Single"};
reloadSound[] = {}; reloadSound[] = {};
reloadMagazineSound[] = {}; reloadMagazineSound[] = {QPATHTOF(TBD_M119\sounds\reload.ogg), 3, 1, 50};
magazineReloadTime = 0.5; magazineReloadTime = 0.5;
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {

Binary file not shown.

View File

@@ -1,5 +1,4 @@
class CfgMovesBasic { class CfgMovesBasic {
class defaultDie;
class ManActions { class ManActions {
M119pose = "M119pose"; M119pose = "M119pose";
}; };

View File

@@ -0,0 +1,8 @@
class cfgSound3DProcessors {
class tbd_m119Tail_3DProcessingType {
innerRange = 20;
range = 1000;
typer = "panner";
rangeCurve = "InverseSquare3Curve";
};
};

View File

@@ -4,7 +4,7 @@ class CfgPatches {
class TBD_M119 { class TBD_M119 {
addonRootClass = "A3_Armor_F_Beta"; addonRootClass = "A3_Armor_F_Beta";
requiredAddons[] = {"cba_main", "ace_interact_menu"}; requiredAddons[] = {"cba_main", "ace_interact_menu"};
requiredVersion = 0.5; requiredVersion = 1.96;
weapons[] = {}; weapons[] = {};
units[] = {QUOTE(TBD_M119)}; units[] = {QUOTE(TBD_M119)};
}; };
@@ -17,3 +17,4 @@ class Mode_SemiAuto;
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"
#include "CfgAnimationSourceSounds.hpp" #include "CfgAnimationSourceSounds.hpp"
#include "CfgMoves.hpp" #include "CfgMoves.hpp"
#include "cfgSound3DProcessors.hpp"

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -7,17 +7,16 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture="x\TBD_M119\addons\M119\tbd_m119\data\four_nohq.paa"; texture="x\TBD_M119\addons\M119\tbd_m119\data\four_nohq.paa";
@@ -101,4 +100,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -100,4 +100,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -101,4 +101,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -7,12 +7,12 @@
#define _ARMA_ #define _ARMA_
//Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{ //Class armor_f_gamma : MBT_01\Data\MBT_01_body.rvmat{
ambient[] = { 0.65, 0.65, 0.65, 0.65 }; ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 0.65, 0.65, 0.65, 0.65 }; diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0, 0, 0, 1 }; forcedDiffuse[] = { 0, 0, 0, 1 };
emmisive[] = { 0, 0, 0, 1 }; emmisive[] = { 0, 0, 0, 1 };
specular[] = { 0.5, 0.5, 0.5, 0.5 }; specular[] = { 0.15, 0.15, 0.15, 0.15};
specularPower = 30; specularPower = 45;
PixelShaderID = "Super"; PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
@@ -100,4 +100,4 @@ class Stage7 {
}; };
class StageTI { class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa"; texture = "a3\data_f\default_vehicle_ti_ca.paa";
}; };

View File

@@ -23,6 +23,7 @@ class CfgSkeletons {
"handle_vertical", "otocvez", "handle_vertical", "otocvez",
"barrel", "otochlaven", "barrel", "otochlaven",
"trigger", "otochlaven", "trigger", "otochlaven",
"m119_zasleh", "otochlaven",
"magazine_translation_bone", "otochlaven", "magazine_translation_bone", "otochlaven",
"magazine", "magazine_translation_bone", "magazine", "magazine_translation_bone",
"magazine_smoke_translation_bone", "otochlaven", "magazine_smoke_translation_bone", "otochlaven",
@@ -49,10 +50,21 @@ class CfgModels {
class tbd_M119 : Default { class tbd_M119 : Default {
sectionsInherit = ""; sectionsInherit = "";
sections[] = { sections[]= {
"lwheel", "zbytek",
"rwheel" "camo1",
}; "camo2",
"camo3",
"camo4",
"camo5",
"camo6",
"camo7",
"camo8",
"camo9",
"camo10",
"M119_zasleh"
};
skeletonName = "tbd_M119_skeleton"; skeletonName = "tbd_M119_skeleton";
class Animations { class Animations {
@@ -83,6 +95,7 @@ class CfgModels {
source = "howitzer_rotation_source"; source = "howitzer_rotation_source";
selection = "leftwheel"; selection = "leftwheel";
axis = "axis_wheels"; axis = "axis_wheels";
sourceAddress = "loop";
minValue = -1440; minValue = -1440;
maxValue = 1440; maxValue = 1440;
angle0 = "rad -2880"; angle0 = "rad -2880";
@@ -94,6 +107,7 @@ class CfgModels {
source = "howitzer_rotation_source"; source = "howitzer_rotation_source";
selection = "rightwheel"; selection = "rightwheel";
axis = "axis_wheels"; axis = "axis_wheels";
sourceAddress = "loop";
minValue = -1440; minValue = -1440;
maxValue = 1440; maxValue = 1440;
angle0 = "rad +2880"; angle0 = "rad +2880";
@@ -105,10 +119,11 @@ class CfgModels {
source = "howitzer_rotation_source"; source = "howitzer_rotation_source";
selection = "dummy_bone"; selection = "dummy_bone";
axis = "axis_howitzer"; axis = "axis_howitzer";
sourceAddress = "loop";
minValue = -1440; minValue = -1440;
maxValue = 1440; maxValue = 1440;
angle0 = "rad -1440"; angle0 = "rad -360";
angle1 = "rad +1440"; angle1 = "rad +360";
}; };
class rest { class rest {
@@ -387,6 +402,18 @@ class CfgModels {
selection = "plate_back"; selection = "plate_back";
hideValue = 1; hideValue = 1;
}; };
class m119_zasleh_hide
{
source = "m119_reload_source";
type = "hide";
selection = "m119_zasleh";
minValue = 0;
maxValue = 1;
hideValue = 0;
unhideValue = 0.99;
};
}; };
}; };
}; };

View File

@@ -1832,4 +1832,4 @@ Example:
Author: Author:
commy2 commy2
------------------------------------------- */ ------------------------------------------- */
#define FILE_EXISTS(FILE) (fileExists (FILE)) #define FILE_EXISTS(FILE) (fileExists (FILE))