diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp
index 41462354d8..8aa5d3173e 100644
--- a/addons/aircraft/CfgAmmo.hpp
+++ b/addons/aircraft/CfgAmmo.hpp
@@ -2,7 +2,7 @@
class CfgAmmo {
class BulletBase;
class B_20mm : BulletBase {
- hit = 80;
+ hit = 80;
indirectHit = 12;
indirectHitRange = 2; //2;
caliber = 1.4;
@@ -13,7 +13,7 @@ class CfgAmmo {
tracerEndTime = 3.5;
CraterEffects = "ExploAmmoCrater";
- explosionEffects = "ExploAmmoExplosion";
+ explosionEffects = "ExploAmmoExplosion";
model = "\A3\Weapons_f\Data\bullettracer\tracer_red";
};
class ACE_20mm_HE : B_20mm {};
@@ -23,7 +23,7 @@ class CfgAmmo {
indirectHitRange = 0.3; //2;
explosive = 0;
CraterEffects = "";
- explosionEffects = "";
+ explosionEffects = "";
};
// adjust minigun caliber and deflection to other ammo
diff --git a/addons/aircraft/Heli_Attack_01_base_F.hpp b/addons/aircraft/Heli_Attack_01_base_F.hpp
index 7276b3e402..22f2da3833 100644
--- a/addons/aircraft/Heli_Attack_01_base_F.hpp
+++ b/addons/aircraft/Heli_Attack_01_base_F.hpp
@@ -907,7 +907,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
thermalMode[] = {0,1};
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
- horizontallyStabilized = 1;
+ horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
};
class Medium: Wide
@@ -918,7 +918,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
maxFov = 0.093;
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
- horizontallyStabilized = 1;
+ horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_medium_F";
};
class Narrow: Wide
@@ -929,7 +929,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
maxFov = 0.029;
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
- horizontallyStabilized = 1;
+ horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
};
@@ -941,7 +941,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
maxFov = 0.01;
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
- horizontallyStabilized = 1;
+ horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
};
diff --git a/addons/common/ProgressScreen.hpp b/addons/common/ProgressScreen.hpp
index df07e5ca2f..ab624669cf 100644
--- a/addons/common/ProgressScreen.hpp
+++ b/addons/common/ProgressScreen.hpp
@@ -1,7 +1,7 @@
class GVAR(ProgressBar_Dialog) {
idd = -1;
movingEnable = false;
- onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 2)];);
+ onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBG)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 2)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 3)];);
objects[] = {};
class controlsBackground {
@@ -23,26 +23,31 @@ class GVAR(ProgressBar_Dialog) {
w = "safezoneW";
h = "safezoneH";
};
- class Progress: ACE_gui_RscProgress {
+ class TitleBackground: ACE_gui_staticBase {
idc = 1;
- x = "1.2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
- y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
- w = "37.8 * (((safezoneW / safezoneH) min 1.2) / 40)";
- h = ".8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
- colorFrame[] = {0,0,0,0.0};
- colorBar[] = {0.27,0.5,0.31,0.8};
- texture = "#(argb,8,8,3)color(1,1,1,0.7)";
- };
- class Title_Bar : ACE_gui_staticBase {
- idc = 2;
- style = 0x22;
- colorBackground[] = {0, 0, 0, 0};
+ style = ST_CENTER;
+ sizeEx = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
+ colorBackground[] = {0, 0, 0, 0.5};
colorText[] = {1, 1, 1, 1};
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "0 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
+ class Progress: ACE_gui_RscProgress {
+ idc = 2;
+ x = "1.2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
+ y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
+ w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
+ h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
+ colorFrame[] = {1,1,1,0.5};
+ colorBar[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"};
+ texture = "#(argb,8,8,3)color(1,1,1,0.7)";
+ };
+ class TitleText: TitleBackground {
+ idc = 3;
+ colorBackground[] = {0, 0, 0, 0};
+ };
};
};
diff --git a/addons/common/functions/fnc_progressBar.sqf b/addons/common/functions/fnc_progressBar.sqf
index 03c56398c4..f7d927556c 100644
--- a/addons/common/functions/fnc_progressBar.sqf
+++ b/addons/common/functions/fnc_progressBar.sqf
@@ -38,12 +38,14 @@ createDialog QGVAR(ProgressBar_Dialog);
//Adjust position based on user setting:
_ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBarTitle));
_ctrlPos set [1, ((0 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
-(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos;
-(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0;
-_ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBar));
-_ctrlPos set [1, ((0.1 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
+
+(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlSetPosition _ctrlPos;
+(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlCommit 0;
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlCommit 0;
+(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos;
+(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0;
+
_perFrameFunction = {
diff --git a/addons/disposable/CfgEventHandlers.hpp b/addons/disposable/CfgEventHandlers.hpp
index 02d0cb625f..4b5614f553 100644
--- a/addons/disposable/CfgEventHandlers.hpp
+++ b/addons/disposable/CfgEventHandlers.hpp
@@ -1,44 +1,28 @@
class Extended_PreInit_EventHandlers {
class ADDON {
- init = QUOTE( call COMPILE_FILE(XEH_preInit) );
+ init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
- clientInit = QUOTE( call COMPILE_FILE(XEH_postInitClient) );
+ init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};
class Extended_FiredBIS_EventHandlers {
class CAManBase {
class ADDON {
- firedBIS = QUOTE( _this call FUNC(replaceATWeapon) );
+ firedBIS = QUOTE(_this call FUNC(replaceATWeapon));
};
};
};
// handle preloaded missile
-class Extended_Init_EventHandlers {
+class Extended_InitPost_EventHandlers {
class CAManBase {
class ADDON {
- init = QUOTE( _this call FUNC(takeLoadedATWeapon) );
- };
- };
-};
-
-class Extended_Take_EventHandlers {
- class CAManBase {
- class ADDON {
- take = QUOTE( _this call FUNC(takeLoadedATWeapon); [_this select 0] call FUNC(updateInventoryDisplay); );
- };
- };
-};
-
-class Extended_Put_EventHandlers {
- class CAManBase {
- class ADDON {
- put = QUOTE( [_this select 0] call FUNC(updateInventoryDisplay); );
+ init = QUOTE([ARR_2(_this select 0, secondaryWeapon (_this select 0))] call FUNC(takeLoadedATWeapon); systemChat str [ARR_2(_this select 0, secondaryWeapon (_this select 0))]);
};
};
};
diff --git a/addons/disposable/CfgMagazines.hpp b/addons/disposable/CfgMagazines.hpp
index 8fbae08dfd..6265c06f50 100644
--- a/addons/disposable/CfgMagazines.hpp
+++ b/addons/disposable/CfgMagazines.hpp
@@ -3,6 +3,7 @@ class CfgMagazines {
class ACE_PreloadedMissileDummy: NLAW_F { // The dummy magazine
author = "$STR_ACE_Common_ACETeam";
scope = 1;
+ scopeArsenal = 1;
displayName = "$STR_ACE_Disposable_PreloadedMissileDummy";
picture = PATHTOEF(common,UI\blank_CO.paa);
weaponPoolAvailable = 0;
diff --git a/addons/disposable/XEH_postInit.sqf b/addons/disposable/XEH_postInit.sqf
new file mode 100644
index 0000000000..bc51974bc6
--- /dev/null
+++ b/addons/disposable/XEH_postInit.sqf
@@ -0,0 +1,10 @@
+// by commy2
+#include "script_component.hpp"
+
+if (!hasInterface) exitWith {};
+
+["inventoryDisplayLoaded", {[ACE_player, _this select 0] call FUNC(updateInventoryDisplay)}] call EFUNC(common,addEventHandler);
+["playerInventoryChanged", {
+ [_this select 0, _this select 1 select 11] call FUNC(takeLoadedATWeapon);
+ [_this select 0] call FUNC(updateInventoryDisplay);
+}] call EFUNC(common,addEventHandler);
diff --git a/addons/logistics_wirecutter/CfgEventHandlers.hpp b/addons/logistics_wirecutter/CfgEventHandlers.hpp
index 79c3aaa959..3daad1425a 100644
--- a/addons/logistics_wirecutter/CfgEventHandlers.hpp
+++ b/addons/logistics_wirecutter/CfgEventHandlers.hpp
@@ -1,4 +1,3 @@
-
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
diff --git a/addons/logistics_wirecutter/CfgVehicles.hpp b/addons/logistics_wirecutter/CfgVehicles.hpp
new file mode 100644
index 0000000000..a31d9c0d99
--- /dev/null
+++ b/addons/logistics_wirecutter/CfgVehicles.hpp
@@ -0,0 +1,8 @@
+class CfgVehicles {
+ class Box_NATO_Support_F;
+ class ACE_Box_Misc: Box_NATO_Support_F {
+ class TransportItems {
+ MACRO_ADDITEM(ACE_wirecutter,4);
+ };
+ };
+};
diff --git a/addons/logistics_wirecutter/CfgWeapons.hpp b/addons/logistics_wirecutter/CfgWeapons.hpp
index 76b1003f34..648bc3a3f8 100644
--- a/addons/logistics_wirecutter/CfgWeapons.hpp
+++ b/addons/logistics_wirecutter/CfgWeapons.hpp
@@ -1,16 +1,16 @@
class CfgWeapons {
- class InventoryItem_Base_F;
- class ACE_ItemCore;
+ class InventoryItem_Base_F;
+ class ACE_ItemCore;
- class ACE_wirecutter: ACE_ItemCore {
- author = "$STR_ACE_Common_ACETeam";
- displayName = "$STR_ACE_logistics_wirecutter_wirecutterName";
- descriptionShort = "$STR_ACE_logistics_wirecutter_wirecutterDescription";
- model = "\A3\weapons_F\ammo\mag_univ.p3d";
- picture = QUOTE(PATHTOF(ui\item_wirecutter_ca.paa));
- scope = 2;
- class ItemInfo: InventoryItem_Base_F {
- mass = 100;
+ class ACE_wirecutter: ACE_ItemCore {
+ author = "$STR_ACE_Common_ACETeam";
+ displayName = "$STR_ACE_logistics_wirecutter_wirecutterName";
+ descriptionShort = "$STR_ACE_logistics_wirecutter_wirecutterDescription";
+ model = "\A3\weapons_F\ammo\mag_univ.p3d";
+ picture = QUOTE(PATHTOF(ui\item_wirecutter_ca.paa));
+ scope = 2;
+ class ItemInfo: InventoryItem_Base_F {
+ mass = 100;
+ };
};
- };
};
diff --git a/addons/logistics_wirecutter/config.cpp b/addons/logistics_wirecutter/config.cpp
index 6e1db15061..d83cff4035 100644
--- a/addons/logistics_wirecutter/config.cpp
+++ b/addons/logistics_wirecutter/config.cpp
@@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
units[] = {};
- weapons[] = {};
+ weapons[] = {"ACE_wirecutter"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author[] = {"gpgpgpgp", "PabstMirror"};
@@ -13,5 +13,5 @@ class CfgPatches {
};
#include "CfgEventHandlers.hpp"
-#include "CfgSounds.hpp"
#include "CfgWeapons.hpp"
+#include "CfgVehicles.hpp"
diff --git a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf
index ee4c512cd2..5153176de2 100644
--- a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf
+++ b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf
@@ -16,19 +16,26 @@
*/
#include "script_component.hpp"
+#define SOUND_CLIP_TIME_SPACEING 1.5
private ["_timeToCut"];
PARAMS_2(_unit,_fenceObject);
if (_unit != ACE_player) exitWith {};
-_timeToCut = if ([ACE_player] call EFUNC(common,isEngineer)) then {5} else {10};
+_timeToCut = if ([ACE_player] call EFUNC(common,isEngineer)) then {7.5} else {11};
[ACE_player, "AinvPknlMstpSnonWnonDr_medic5", 0] call EFUNC(common,doAnimation);
-if (_timeToCut > 5) then {
- playSound "ACE_wirecutter_sound_long";
-} else {
- playSound "ACE_wirecutter_sound";
+_progressCheck = {
+ PARAMS_2(_args,_passedTime);
+ EXPLODE_2_PVT(_args,_fenceObject,_lastSoundEffectTime);
+ if (_passedTime > (_lastSoundEffectTime + SOUND_CLIP_TIME_SPACEING)) then {
+ // playSound "ACE_wirecutter_sound";
+ playSound3D [QUOTE(PATHTO_R(sound\wirecut.ogg)), objNull, false, (getPosASL ACE_player), 3, 1, 10];
+ _args set [1, _passedTime];
+ };
+
+ ((!isNull _fenceObject) && {(damage _fenceObject) < 1} && {("ACE_wirecutter" in (items ACE_player))})
};
-[_timeToCut, [_fenceObject], {(_this select 0) call FUNC(cutDownFenceCallback)}, {(_this select 0) call FUNC(cutDownFenceAbort)}, localize "STR_ACE_logistics_wirecutter_CuttingFence"] call EFUNC(common,progressBar);
+[_timeToCut, [_fenceObject,0], {(_this select 0) call FUNC(cutDownFenceCallback)}, {(_this select 0) call FUNC(cutDownFenceAbort)}, localize "STR_ACE_logistics_wirecutter_CuttingFence", _progressCheck] call EFUNC(common,progressBar);
diff --git a/addons/logistics_wirecutter/functions/fnc_getNearestFence.sqf b/addons/logistics_wirecutter/functions/fnc_getNearestFence.sqf
index c9e59b41a0..15bfbdb8ef 100644
--- a/addons/logistics_wirecutter/functions/fnc_getNearestFence.sqf
+++ b/addons/logistics_wirecutter/functions/fnc_getNearestFence.sqf
@@ -20,9 +20,9 @@ PARAMS_1(_unit);
_nearestFence = objNull;
{
- if ((isNull _nearestFence) && {[_x] call FUNC(isFence)}) then {
- _nearestFence = _x;
- };
+ if ((isNull _nearestFence) && {[_x] call FUNC(isFence)}) then {
+ _nearestFence = _x;
+ };
} forEach nearestObjects [_unit, [], 15];
_nearestFence
diff --git a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf
index 6dace9c42d..ddd180047c 100644
--- a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf
+++ b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf
@@ -35,7 +35,7 @@ if (!("ACE_wirecutter" in (items ace_player))) exitWith {};
} else {
// Prevent Rare Error when ending mission with interact key down:
if (isNull ace_player) exitWith {};
-
+
//If player moved >5 meters from last pos, then rescan
if (((getPosASL ace_player) distance _setPosition) > 5) then {
diff --git a/addons/logistics_wirecutter/functions/fnc_isFence.sqf b/addons/logistics_wirecutter/functions/fnc_isFence.sqf
index aee9a22ef9..1ab97a67af 100644
--- a/addons/logistics_wirecutter/functions/fnc_isFence.sqf
+++ b/addons/logistics_wirecutter/functions/fnc_isFence.sqf
@@ -17,11 +17,9 @@
#include "script_component.hpp"
//find is case sensitive, so keep everything lowercase
-#define FENCE_A3_TYPENAMES ["land_net_fence_4m_f", "land_net_fence_8m_f", "land_net_fenced_8m_f", "land_new_wiredfence_5m_f", "land_new_wiredfence_10m_dam_f", "land_new_wiredfence_10m_f", "land_pipe_fence_4m_f", "land_pipe_fence_4mnolc_f", "land_sportground_fence_f", "land_wired_fence_4m_f", "land_wired_fence_4md_f", "land_wired_fence_8m_f", "land_wired_fence_8md_f", "land_razorwire_f"]
-#define FENCE_A3_P3DS ["mil_wiredfence_f.p3d"]
+#define FENCE_TYPENAMES ["land_net_fence_4m_f", "land_net_fence_8m_f", "land_net_fenced_8m_f", "land_new_wiredfence_5m_f", "land_new_wiredfence_10m_dam_f", "land_new_wiredfence_10m_f", "land_pipe_fence_4m_f", "land_pipe_fence_4mnolc_f", "land_sportground_fence_f", "land_wired_fence_4m_f", "land_wired_fence_4md_f", "land_wired_fence_8m_f", "land_wired_fence_8md_f", "land_razorwire_f"]
-#define FENCE_AIA_TYPENAMES []
-#define FENCE_AIA_P3DS ["wall_indfnc_3.p3d", "wall_indfnc_9.p3d", "wall_indfnc_corner.p3d", "pletivo_wired.p3d", "wall_fen1_5.p3d"]
+#define FENCE_P3DS ["mil_wiredfence_f.p3d","wall_indfnc_3.p3d", "wall_indfnc_9.p3d", "wall_indfnc_corner.p3d", "pletivo_wired.p3d", "wall_fen1_5.p3d"]
private ["_typeOf", "_returnValue"];
PARAMS_1(_object);
@@ -30,14 +28,15 @@ _typeOf = toLower (typeOf _object);
_returnValue = false;
if (_typeOf != "") then {
- _returnValue = _typeOf in (FENCE_A3_TYPENAMES + FENCE_AIA_TYPENAMES);
+ //If the fence has configEntry we can check it directly
+ _returnValue = _typeOf in FENCE_TYPENAMES;
} else {
_typeOf = toLower (str _object); //something like "123201: wall_indfnc_9.p3d"
{
- if ((_typeOf find _x) != -1) then {
+ if ((_typeOf find _x) != -1) exitWith {
_returnValue = true;
};
- } forEach (FENCE_A3_P3DS + FENCE_AIA_P3DS);
+ } forEach FENCE_P3DS;
};
_returnValue
diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml
index 5ad5b4b956..5316eb7bd9 100644
--- a/addons/nametags/stringtable.xml
+++ b/addons/nametags/stringtable.xml
@@ -104,4 +104,4 @@
Colore nametag di default (membri non del gruppo)
-
\ No newline at end of file
+
diff --git a/addons/optics/CfgWeapons.hpp b/addons/optics/CfgWeapons.hpp
index 7749db0bc4..6d61ff98a2 100644
--- a/addons/optics/CfgWeapons.hpp
+++ b/addons/optics/CfgWeapons.hpp
@@ -5,20 +5,20 @@ class CfgWeapons {
class Default;
class Binocular: Default {
- forceOptics = 0; // Allow using compass with Binocular
- opticsZoomMin = 0.056889; // 5.25x power
- opticsZoomMax = 0.056889; // 9 px/mil
- modelOptics = "\z\ace\addons\optics\models\NWD_M22_5x"; // 7 horizontal field of view
- visionMode[] = {"Normal"}; // Can't use nvgs with binoculars any more than you can with scopes
- // Fix AI using Binocs on short range - #18737
+ forceOptics = 0; // Allow using compass with Binocular
+ opticsZoomMin = 0.056889; // 5.25x power
+ opticsZoomMax = 0.056889; // 9 px/mil
+ modelOptics = "\z\ace\addons\optics\models\NWD_M22_5x"; // 7 horizontal field of view
+ visionMode[] = {"Normal"}; // Can't use nvgs with binoculars any more than you can with scopes
+ // Fix AI using Binocs on short range - #18737
// minRange = 300; // 300 = uses Rangefinder often (runs a few meters, stops, uses RF, repeats)
minRange = 500; //500 = seem almost never use it..?
- minRangeProbab = 0.001;
+ minRangeProbab = 0.001;
midRange = 1000;
midRangeProbab = 0.01;
maxRange = 5000;
maxRangeProbab = 0.01;
- };
+ };
// zooming reticle scopes
class optic_DMS: ItemCore {
diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml
index c4ac2b1593..f9bd537e3f 100644
--- a/addons/optionsmenu/stringtable.xml
+++ b/addons/optionsmenu/stringtable.xml
@@ -22,6 +22,7 @@
Napraw animację
Corriger animation
Animációk kijavítása
+ Fixa l'animazione
diff --git a/addons/parachute/XEH_postInit.sqf b/addons/parachute/XEH_postInit.sqf
index ead4b33943..19e6d413a2 100644
--- a/addons/parachute/XEH_postInit.sqf
+++ b/addons/parachute/XEH_postInit.sqf
@@ -14,12 +14,13 @@
* Public: No
*/
#include "script_component.hpp"
+
if (!hasInterface) exitWith {};
["ACE3", QGVAR(showAltimeter), localize "STR_ACE_Parachute_showAltimeter",
{
// Conditions: canInteract
- if !([ACE_player, objNull, ["isNotEscorting"]] call EFUNC(common,canInteractWith)) exitWith {false};
+ if !([ACE_player, objNull, ["isNotEscorting", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
if (!('ACE_Altimeter' in assignedItems ace_player)) exitWith {false};
if (!(missionNamespace getVariable [QGVAR(AltimeterActive), false])) then {
[ace_player] call FUNC(showAltimeter);
@@ -40,5 +41,4 @@ GVAR(PFH) = false;
}] call EFUNC(common,addEventHandler);
// don't show speed and height when in expert mode
-["Parachute", {if (!cadetMode) then {_dlg = _this select 0; {(_dlg displayCtrl _x) ctrlShow false} forEach [121, 122, 1004, 1005, 1006, 1014];};}] call EFUNC(common,addInfoDisplayEventHandler); //@todo addEventHandler infoDisplayChanged with select 1 == "Parachute"
-["Soldier", {if (!cadetMode) then {_dlg = _this select 0; {_ctrl = (_dlg displayCtrl _x); _ctrl ctrlSetPosition [0,0,0,0]; _ctrl ctrlCommit 0;} forEach [380, 382]};}] call EFUNC(common,addInfoDisplayEventHandler); //@todo addEventHandler infoDisplayChanged with select 1 == "Soldier"
+["infoDisplayChanged", {_this call FUNC(handleInfoDisplayChanged)}] call EFUNC(common,addEventHandler);
diff --git a/addons/parachute/XEH_preInit.sqf b/addons/parachute/XEH_preInit.sqf
index 91c24606c6..f446d955b8 100644
--- a/addons/parachute/XEH_preInit.sqf
+++ b/addons/parachute/XEH_preInit.sqf
@@ -18,6 +18,7 @@
ADDON = false;
PREP(doLanding);
+PREP(handleInfoDisplayChanged);
PREP(hideAltimeter);
PREP(onEachFrame);
PREP(showAltimeter);
diff --git a/addons/parachute/functions/fnc_handleInfoDisplayChanged.sqf b/addons/parachute/functions/fnc_handleInfoDisplayChanged.sqf
new file mode 100644
index 0000000000..9b076256dd
--- /dev/null
+++ b/addons/parachute/functions/fnc_handleInfoDisplayChanged.sqf
@@ -0,0 +1,41 @@
+/*
+ * Author: commy2
+ * Hides the height and velocity display while freefalling or parachuting on higher difficulties.
+ *
+ * Arguments:
+ * Stuff from infoDisplayChanged eventhandler.
+ *
+ * Return Value:
+ * None
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_dialog", "_type"];
+
+_dialog = _this select 0;
+_type = _this select 1;
+
+// don't do anything in noob mode
+if (cadetMode) exitWith {};
+
+switch (_type) do {
+ case ("Parachute"): {
+ {
+ (_dialog displayCtrl _x) ctrlShow false;
+ } forEach [121, 122, 1004, 1005, 1006, 1014];
+ };
+
+ case ("Soldier"): {
+ {
+ private "_control";
+ _control = (_dialog displayCtrl _x);
+
+ // these reset ctrlShow every frame by the engine. Set height/width to 0 as work around.
+ _control ctrlSetPosition [0,0,0,0];
+ _control ctrlCommit 0;
+ } forEach [380, 382];
+ };
+};
+nil // switch might return true if no case was found. Just to make sure the return value matches
diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml
index 52ccaefe77..a1de714331 100644
--- a/addons/parachute/stringtable.xml
+++ b/addons/parachute/stringtable.xml
@@ -11,6 +11,7 @@
Altímetro
Magasságmérő
Высотомер
+ Altimetro
Altimeter Watch
@@ -21,6 +22,7 @@
Reloj altímetro
Magasságmérős karóra
Часы с высотомером
+ Controlla l'altimetro
Used to show height, descent rate and the time.
@@ -31,6 +33,7 @@
Utilizado para mostrar altura, tasa de descenso y hora.
Mutatja a magasságot, a zuhanási sebességet, és az időt.
Используется для определения высоты, скорости снижения и времени.
+ Usato per mostrare l'altitudine, la velocità di discesa e l'ora.
Non-Steerable Parachute
@@ -41,6 +44,7 @@
Neříditelný padák
Irányíthatatlan ejtőernyő
Неуправляемый парашют
+ Paracadute non manovrabile
-
\ No newline at end of file
+
diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml
index 425c2ba8db..ceaf32c2d8 100644
--- a/addons/reload/stringtable.xml
+++ b/addons/reload/stringtable.xml
@@ -70,4 +70,4 @@
Attacco la tracolla...
-
\ No newline at end of file
+
diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml
index ff5637eaf6..7716050334 100644
--- a/addons/reloadlaunchers/stringtable.xml
+++ b/addons/reloadlaunchers/stringtable.xml
@@ -11,6 +11,7 @@
Załaduj wyrzutnię
Charger lanceur
Kilövö betöltése
+ Carica lanciamissili
Loading launcher ...
@@ -21,6 +22,7 @@
Nabíjím odpalovač ...
Ładowanie wyrzutni ...
Kilövő betöltés alatt ...
+ Carico il lanciamissili ...
Launcher loaded
@@ -31,6 +33,7 @@
Odpalovač nabit
Wyrzutnia załadowana
Kilövő betöltve
+ Lanciamissili caricato
Load %1
@@ -41,6 +44,7 @@
Nabít %1
Załadowano %1
%1 betöltése
+ Caricato %1
diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml
index 40691bd7da..521651999a 100644
--- a/addons/safemode/stringtable.xml
+++ b/addons/safemode/stringtable.xml
@@ -10,6 +10,7 @@
Biztonságos mód
Предохранитель
Sécurité
+ Sicura inserita
Take off Safety
@@ -20,6 +21,7 @@
Biztonsági kapcsoló eltolása
Снять с предохранителя
Enlever sécurité
+ Togli la sicura
Put on Safety
@@ -30,6 +32,7 @@
Biztonsági kapcsoló helyretolása
Поставить на предохранитель
Sécurité mise
+ Inserisci la sicura
Took off Safety
@@ -40,6 +43,7 @@
Biztonságos mód megszüntetve
Снят с предохранителя
Sécurité enlevée
+ Togli la sicura
diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml
index 4a06a779b5..dd5abdef55 100644
--- a/addons/scopes/stringtable.xml
+++ b/addons/scopes/stringtable.xml
@@ -6,54 +6,63 @@
Zerowanie powoli w górę
Малая корректировка ВВЕРХ
Ajuste menor arriba
+ Regola leggermente alzata in alto
Minor adjustment down
Zerowanie powoli w dół
Малая корректировка ВНИЗ
Ajuste menor abajo
+ Regola leggermente alzata in basso
Minor adjustment right
Zerowanie powoli w prawo
Малая корректировка ВПРАВО
Ajuste menor derecha
+ Regola leggermente il tiro a destra
Minor adjustment left
Zerowanie powoli w lewo
Малая корректировка ВЛЕВО
Ajuste menor izquierda
+ Regola leggermete il tiro a sinistra
Major adjustment up
Zerowanie w górę
Большая корректировка ВВЕРХ
Ajuste mayor arriba
+ Regola l'alzata in alto
Major adjustment down
Zerowanie w dół
Большая корректировка ВНИЗ
Ajuste mayor abajo
+ Regola l'alzata in basso
Major adjustment right
Zerowanie w prawo
Большая корректировка ВПРАВО
Ajuste mayor derecha
+ Regola il tiro a destra
Major adjustment left
Zerowanie w lewo
Большая корректировка ВЛЕВО
Ajuste mayor izquierda
+ Regola il tiro a sinistra
Set zero adjustment
Zresetuj wyzerowanie
Сбросить корректировку
Establecer ajuste a cero
+ Resetta i valori del tiro
diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml
index c95da37337..58b0b46d6d 100644
--- a/addons/switchunits/stringtable.xml
+++ b/addons/switchunits/stringtable.xml
@@ -10,6 +10,7 @@
Cambiado de unidad
Unité changée
Egység átváltva
+ Cambia unità
This unit is too close to the enemy.
@@ -20,6 +21,7 @@
Esta unidad está demasiado cerca del enemigo.
Cette unité est trop proche des ennemis
Ez az egység túl közel van az ellenséghez.
+ Questa unità è troppo vicina al nemico.
diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml
index 6bf62bb671..e62f9fdc5f 100644
--- a/addons/vehiclelock/stringtable.xml
+++ b/addons/vehiclelock/stringtable.xml
@@ -10,6 +10,7 @@
Odemknout vozidlo
Jármű nyitása
Открыть машину
+ Apri il veicolo
Lock Vehicle
@@ -20,6 +21,7 @@
Zamknout vozidlo
Jármű zárása
Закрыть машину
+ Chiudi il veicolo
Lockpick Vehicle
@@ -30,6 +32,7 @@
Vypáčit vozidlo
Jármű feltörése
Взломать замок
+ Scassina veicolo
Picking Lock....
@@ -40,6 +43,7 @@
Páčim vozidlo...
Zár feltörése...
Взламываем замок...
+ Scassino il veicolo....
A custom key that will open a specific vehicle.
@@ -50,6 +54,7 @@
Vlastní klíč, který otevře konkrétní vozidlo.
Egy egyedi kulcs, ami egy meghatározott járművet nyit ki.
Ключ от конкретной машины.
+ Una chiave personalizzata che apre determinati veicoli.
A Master Key will open any lock, no matter what!
@@ -60,6 +65,7 @@
Hlavní klíč otevře libovolný zámek, bez vyjímek!
Egy főkulcs, ami minden zárat kinyit, helyzettől függetlenül!
Универсальный ключ, открывающий любой замок.
+ Una chiave principale che apre qualsiasi serratura!
A lockpick set that can pick the locks of most vehicles.
@@ -70,6 +76,7 @@
Sada paklíčů, která dokáže odemknout zámky u většiny vozidel.
Egy tolvajkulcs-készlet, mely a legtöbb jármű zárjait fel tudja törni.
Набор отмычек, которым можно взломать почти любую машину.
+ Un grimardello per forzare la maggior parte dei veicoli
A key that should open most WEST vehicles.
@@ -80,6 +87,7 @@
Klíč který by měl otevřít většinou Západních vozidel.
Egy kulcs, ami a NYUGAT egységeinek legtöbb járművét ki tudja nyitni.
Ключ для открытия большинства машин Красных.
+ Una chiave che apre la maggior parte dei veicoli WEST
A key that should open most EAST vehicle.
@@ -90,6 +98,7 @@
Egy kulcs, ami a KELET egységeinek legtöbb járművét ki tudja nyitni.
Klíč který by měl otevřít vetšinu Východních vozidel.
Ключ для открытия большинства машин Синих.
+ Una chaive che apr ela maggior parte dei veicoli EAST
A key that should open most INDEP vehicle.
@@ -100,6 +109,7 @@
Egy kulcs, ami a FÜGGETLEN egységek legtöbb járművét ki tudja nyitni.
Klíč který by měl otevřít většinu Nezávislých vozidel.
Ключ для открытия большинства машин Независимых.
+ Una chaive che apr ela maggior parte dei veicoli INDEP
A key that should open most CIV vehicle.
@@ -110,6 +120,7 @@
Klíč který by měl otevřít většinu Civilních vozidel.
Egy kulcs, ami a CIVIL járművek többségét ki tudja nyitni.
Ключ для открытия большинства машин Гражданских.
+ Una chaive che apr ela maggior parte dei veicoli CIV
-
\ No newline at end of file
+
diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml
index 060d9b6f51..2278bf350d 100644
--- a/addons/weather/stringtable.xml
+++ b/addons/weather/stringtable.xml
@@ -7,6 +7,7 @@
Показать информацию о погоде
Afficher information du vent
Mostrar información del viento
+ Mostra informazioni sul vento
diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml
index 73d07eddd4..b6172bad51 100644
--- a/addons/winddeflection/stringtable.xml
+++ b/addons/winddeflection/stringtable.xml
@@ -59,4 +59,4 @@
-
\ No newline at end of file
+