diff --git a/AUTHORS.txt b/AUTHORS.txt index 1540880b8b..83aa4a6385 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -90,6 +90,7 @@ havena Hawkins Head Hybrid V +john681611 Karneck Kavinsky Keithen diff --git a/addons/captives/XEH_postInit.sqf b/addons/captives/XEH_postInit.sqf index 196cacbbe7..70d708ced2 100644 --- a/addons/captives/XEH_postInit.sqf +++ b/addons/captives/XEH_postInit.sqf @@ -52,6 +52,6 @@ if (!hasInterface) exitWith {}; {false}, [DIK_F1, [true, false, false]], true] call CBA_fnc_addKeybind; // Shift + F1 -["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition); -["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),false))}] call EFUNC(common,addCanInteractWithCondition); -["isNotSurrendering", {!(GETVAR(_this select 0,GVAR(isSurrendering),false))}] call EFUNC(common,addCanInteractWithCondition); +["isNotEscorting", {!GETVAR(_this select 0,GVAR(isEscorting),false)}] call EFUNC(common,addCanInteractWithCondition); +["isNotHandcuffed", {!GETVAR(_this select 0,GVAR(isHandcuffed),false)}] call EFUNC(common,addCanInteractWithCondition); +["isNotSurrendering", {!GETVAR(_this select 0,GVAR(isSurrendering),false)}] call EFUNC(common,addCanInteractWithCondition); diff --git a/addons/captives/functions/fnc_doEscortCaptive.sqf b/addons/captives/functions/fnc_doEscortCaptive.sqf index ad57dabcd7..b17a48f7b8 100644 --- a/addons/captives/functions/fnc_doEscortCaptive.sqf +++ b/addons/captives/functions/fnc_doEscortCaptive.sqf @@ -32,7 +32,7 @@ if (_state) then { //Add Actionmenu to release captive private _actionID = _unit addAction [format ["%1", localize LSTRING(StopEscorting)], {[(_this select 0), ((_this select 0) getVariable [QGVAR(escortedUnit), objNull]), false] call FUNC(doEscortCaptive);}, - nil, 20, false, true, "", QUOTE(!isNull (GETVAR(_target,QGVAR(escortedUnit),objNull)))]; + nil, 20, false, true, "", QUOTE(!isNull GETVAR(_target,QGVAR(escortedUnit),objNull))]; [{ params ["_args", "_pfID"]; diff --git a/addons/common/functions/fnc_errorMessage.sqf b/addons/common/functions/fnc_errorMessage.sqf index 8ccd7c22fb..1be21e0e58 100644 --- a/addons/common/functions/fnc_errorMessage.sqf +++ b/addons/common/functions/fnc_errorMessage.sqf @@ -38,7 +38,7 @@ if (_textMessage isEqualType "") then { _textMessage = parseText _textMessage; }; -(ARR_SELECT(_this,4,call BIS_fnc_displayMission)) createDisplay "RscDisplayCommonMessagePause"; +ARR_SELECT(_this,4,call BIS_fnc_displayMission) createDisplay "RscDisplayCommonMessagePause"; private _display = uiNamespace getVariable "RscDisplayCommonMessage_display"; private _ctrlRscMessageBox = _display displayCtrl 2351; diff --git a/addons/common/functions/fnc_isFeatureCameraActive.sqf b/addons/common/functions/fnc_isFeatureCameraActive.sqf index 2f3cafe35d..dfe3869905 100644 --- a/addons/common/functions/fnc_isFeatureCameraActive.sqf +++ b/addons/common/functions/fnc_isFeatureCameraActive.sqf @@ -26,11 +26,11 @@ !( isNull curatorCamera && // Curator - {!(GETMVAR(EGVAR(spectator,isSet),false))} && // ACE Spectator - {isNull (GETMVAR(BIS_EGSpectatorCamera_camera, objNull))} && // BIS Nexus Spectator - {isNull (GETUVAR(BIS_fnc_arsenal_cam, objNull))} && // Arsenal camera - {isNull (GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull))} && // Establishing shot camera - {isNull (GETMVAR(BIS_fnc_camera_cam, objNull))} && // Splendid camera - {isNull (GETUVAR(BIS_fnc_animViewer_cam, objNull))} && // Animation viewer camera - {isNull (GETMVAR(BIS_DEBUG_CAM, objNull))} // Classic camera + {!GETMVAR(EGVAR(spectator,isSet),false)} && // ACE Spectator + {isNull GETMVAR(BIS_EGSpectatorCamera_camera, objNull)} && // BIS Nexus Spectator + {isNull GETUVAR(BIS_fnc_arsenal_cam, objNull)} && // Arsenal camera + {isNull GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull)} && // Establishing shot camera + {isNull GETMVAR(BIS_fnc_camera_cam, objNull)} && // Splendid camera + {isNull GETUVAR(BIS_fnc_animViewer_cam, objNull)} && // Animation viewer camera + {isNull GETMVAR(BIS_DEBUG_CAM, objNull)} // Classic camera ) // return diff --git a/addons/goggles/XEH_postInit.sqf b/addons/goggles/XEH_postInit.sqf index 5b93a7a459..9927a165f1 100644 --- a/addons/goggles/XEH_postInit.sqf +++ b/addons/goggles/XEH_postInit.sqf @@ -4,7 +4,7 @@ if (!hasInterface) exitWith {}; ["ACE3 Common", QGVAR(wipeGlasses), localize LSTRING(WipeGlasses), { if (GVAR(effects) != 2) exitWith {false}; //Can only wipe if full effects setting is set - if (!(GETVAR(ace_player,ACE_isUnconscious,false))) exitWith { + if (!GETVAR(ace_player,ACE_isUnconscious,false)) exitWith { call FUNC(clearGlasses); true }; diff --git a/addons/goggles/script_component.hpp b/addons/goggles/script_component.hpp index c0c8e43df4..854e27fab3 100644 --- a/addons/goggles/script_component.hpp +++ b/addons/goggles/script_component.hpp @@ -37,6 +37,6 @@ #define DBULLETS 2 #define DAMOUNT 3 -#define GLASSDISPLAY (GETUVAR(GVAR(Display),displayNull)) +#define GLASSDISPLAY GETUVAR(GVAR(Display),displayNull) #define CLAMP(x,low,high) (if(x > high)then{high}else{if(x < low)then{low}else{x}}) diff --git a/addons/grenades/functions/fnc_incendiary.sqf b/addons/grenades/functions/fnc_incendiary.sqf index 216ab349a3..5b0384da3b 100644 --- a/addons/grenades/functions/fnc_incendiary.sqf +++ b/addons/grenades/functions/fnc_incendiary.sqf @@ -34,6 +34,8 @@ #define ORIENTATION 5.4 #define EXPANSION 1 +#define DESTRUCTION_RADIUS 1.8 + params ["_projectile", "_timeToLive", "_center"]; if (isNull _projectile) exitWith {TRACE_1("null",_projectile);}; @@ -187,7 +189,7 @@ if (isServer) then { // --- inflame fireplace, barrels etc. _x inflame true; }; -} forEach (_position nearObjects EFFECT_SIZE); +} forEach (_position nearObjects DESTRUCTION_RADIUS); // --- damage local vehicle private _vehicle = _position nearestObject "Car"; diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 5480797513..16a33583a0 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -20,11 +20,11 @@ #define SETPVAR_SYS(var1,var2) setVariable [ARR_3(QUOTE(var1),var2,true)] #undef GETVAR -#define GETVAR(var1,var2,var3) var1 GETVAR_SYS(var2,var3) -#define GETMVAR(var1,var2) missionNamespace GETVAR_SYS(var1,var2) -#define GETUVAR(var1,var2) uiNamespace GETVAR_SYS(var1,var2) -#define GETPRVAR(var1,var2) profileNamespace GETVAR_SYS(var1,var2) -#define GETPAVAR(var1,var2) parsingNamespace GETVAR_SYS(var1,var2) +#define GETVAR(var1,var2,var3) (var1 GETVAR_SYS(var2,var3)) +#define GETMVAR(var1,var2) (missionNamespace GETVAR_SYS(var1,var2)) +#define GETUVAR(var1,var2) (uiNamespace GETVAR_SYS(var1,var2)) +#define GETPRVAR(var1,var2) (profileNamespace GETVAR_SYS(var1,var2)) +#define GETPAVAR(var1,var2) (parsingNamespace GETVAR_SYS(var1,var2)) #undef SETVAR #define SETVAR(var1,var2,var3) var1 SETVAR_SYS(var2,var3) @@ -37,7 +37,7 @@ #define GETGVAR(var1,var2) GETMVAR(GVAR(var1),var2) #define GETEGVAR(var1,var2,var3) GETMVAR(EGVAR(var1,var2),var3) -#define ARR_SELECT(ARRAY,INDEX,DEFAULT) if (count ARRAY > INDEX) then {ARRAY select INDEX} else {DEFAULT} +#define ARR_SELECT(ARRAY,INDEX,DEFAULT) (if (count ARRAY > INDEX) then {ARRAY select INDEX} else {DEFAULT}) #define MACRO_ADDWEAPON(WEAPON,COUNT) class _xx_##WEAPON { \ diff --git a/addons/maverick/CfgAmmo.hpp b/addons/maverick/CfgAmmo.hpp index cd53935a2e..275e9d739e 100644 --- a/addons/maverick/CfgAmmo.hpp +++ b/addons/maverick/CfgAmmo.hpp @@ -6,7 +6,7 @@ class CfgAmmo { class Missile_AGM_02_F : MissileBase {}; class GVAR(L) : Missile_AGM_02_F { - author = "rufix"; + author = "xrufix"; autoSeekTarget = 0; irLock = 0; laserLock = 0; @@ -39,4 +39,37 @@ class CfgAmmo { attackProfiles[] = {"maverick"}; }; }; + + class Missile_AGM_01_F : MissileBase {}; + class ace_kh25ml : Missile_AGM_01_F { + author = "xrufix"; + irLock = 0 + missileLockMaxDistance = 10000; + weaponLockSystem = 4; + class ace_missileguidance { + enabled = 1; + + minDeflection = 0.0005; + maxDeflection = 0.01; + incDeflection = 0.005; + + canVanillaLock = 0; + + defaultSeekerType = "SALH"; + seekerTypes[] = {"SALH"}; + + defaultSeekerLockMode = "LOAL"; + seekerLockModes[] = {"LOAL"}; + + seekLastTargetPos = 1; + seekerAngle = 40; + seekerAccuracy = 1; + + seekerMinRange = 1; + seekerMaxRange = 10000; + + defaultAttackProfile = "maverick"; + attackProfiles[] = {"maverick"}; + }; + }; }; diff --git a/addons/maverick/CfgMagazines.hpp b/addons/maverick/CfgMagazines.hpp index e3fd9d2194..3254f605c0 100644 --- a/addons/maverick/CfgMagazines.hpp +++ b/addons/maverick/CfgMagazines.hpp @@ -71,4 +71,43 @@ class CfgMagazines { displayNameShort = CSTRING(L_MAG_short); pylonWeapon = QGVAR(L_Launcher); }; + + // KH-25 + class 4Rnd_Missile_AGM_01_F; + class PylonRack_1Rnd_Missile_AGM_01_F : 4Rnd_Missile_AGM_01_F {}; + class magazine_Missile_AGM_KH25_x1 : VehicleMagazine {}; + class PylonMissile_Missile_AGM_KH25_x1 : magazine_Missile_AGM_KH25_x1 {}; + class PylonMissile_Missile_AGM_KH25_INT_x1 : PylonMissile_Missile_AGM_KH25_x1 {}; + + class ace_kh25ml_pylonrack_x1 : PylonRack_1Rnd_Missile_AGM_01_F { + ammo = "ace_kh25ml"; + author = "xrufix"; + descriptionShort = CSTRING(KH25ML_MAG_DESCR); + displayName = CSTRING(KH25ML_MAG_x1); + displayNameShort = CSTRING(L_MAG_short); + pylonWeapon = "ace_kh25ml_launcher"; + }; + class ace_kh25ml_magazine_x1 : magazine_Missile_AGM_KH25_x1 { + ammo = "ace_kh25ml"; + author = "xrufix"; + descriptionShort = CSTRING(KH25ML_MAG_DESCR); + displayName = CSTRING(KH25ML_MAG_x1); + displayNameShort = CSTRING(L_MAG_short); + }; + class ace_kh25ml_pylonmissile_x1 : PylonMissile_Missile_AGM_KH25_x1 { + ammo = "ace_kh25ml"; + author = "xrufix"; + descriptionShort = CSTRING(KH25ML_MAG_DESCR); + displayName = CSTRING(KH25ML_MAG_x1); + displayNameShort = CSTRING(L_MAG_short); + pylonWeapon = "ace_kh25ml_launcher"; + }; + class ace_kh25ml_pylonmissile_int_x1 : PylonMissile_Missile_AGM_KH25_INT_x1 { + ammo = "ace_kh25ml"; + author = "xrufix"; + descriptionShort = CSTRING(KH25ML_MAG_DESCR); + displayName = CSTRING(KH25ML_MAG_x1); + displayNameShort = CSTRING(L_MAG_short); + pylonWeapon = "ace_kh25ml_launcher"; + }; }; diff --git a/addons/maverick/CfgWeapons.hpp b/addons/maverick/CfgWeapons.hpp index 7a526c8692..c3157f34dd 100644 --- a/addons/maverick/CfgWeapons.hpp +++ b/addons/maverick/CfgWeapons.hpp @@ -45,4 +45,22 @@ class CfgWeapons { EGVAR(laser,showHud) = 1; // show attack profile / lock on hud GVAR(enabled) = 1; }; + + class weapon_AGM_KH25Launcher : MissileLauncher {}; + class ace_kh25ml_launcher : weapon_AGM_KH25Launcher { + author = "xrufix"; + displayName = CSTRING(KH25ML); + magazines[] = { + "ace_kh25ml_pylonrack_x1", + "ace_kh25ml_magazine_x1", + "ace_kh25ml_pylonmissile_x1", + "ace_kh25ml_pylonmissile_int_x1" + }; + weaponLockDelay = 0.1; + weaponLockSystem = 0; + + EGVAR(laser,canSelect) = 1; // can ace_laser lock (allows switching laser code) + EGVAR(laser,showHud) = 1; // show attack profile / lock on hud + GVAR(enabled) = 1; + }; }; diff --git a/addons/maverick/README.md b/addons/maverick/README.md index da103dbd7f..a931a2bc08 100644 --- a/addons/maverick/README.md +++ b/addons/maverick/README.md @@ -1,11 +1,12 @@ ace_maverick ========== -Adds pylon magazines with laser guided AGM-65 Maverick L. +Adds pylon magazines with laser guided AGM-65 Maverick L and KH25ML. -* The magazines can be added to every plane the vanilla Macer II can be added to. +* The Mavericks can be added to every plane the vanilla Macer II can be added to. +* The KH25ML can be added to every plane the vanilla KH25 and Sharur missiles can be added to. * The missile uses laser guidance based on ACE's Advanced Missile Guidance framework. -* The PylonWeapon from CfgWeapons is added to planes with pylons automatically. +* The PylonWeapon is added to planes with pylons automatically. ![Laser guided Maverick](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/US_Navy_041128-N-5345W-016_Aviation_Ordnanceman_3rd_Class_William_Miller_arms_a_AGM-65_Maverick_laser-guided_missile.jpg/1280px-US_Navy_041128-N-5345W-016_Aviation_Ordnanceman_3rd_Class_William_Miller_arms_a_AGM-65_Maverick_laser-guided_missile.jpg) diff --git a/addons/maverick/config.cpp b/addons/maverick/config.cpp index 2d8f43f64f..dbfabf7f9d 100644 --- a/addons/maverick/config.cpp +++ b/addons/maverick/config.cpp @@ -4,13 +4,14 @@ class CfgPatches { class ADDON { name = COMPONENT_NAME; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_hellfire"}; + requiredAddons[] = {"ace_missileguidance"}; author = ECSTRING(common,ACETeam); authors[] = {"xrufix"}; url = ECSTRING(main,URL); VERSION_CONFIG; ammo[] = { - GVAR(L) + GVAR(L), + "ace_kh25ml" }; magazines[] = { QGVAR(L_magazine_x1), @@ -19,11 +20,15 @@ class CfgPatches { QGVAR(L_pylonRack_1Rnd), QGVAR(L_PylonRack_3Rnd), QGVAR(L_PylonRack_x1), - QGVAR(L_PylonRack_x2) + QGVAR(L_PylonRack_x2), + "ace_kh25ml_magazine_x1", + "ace_kh25ml_pylonmissile_x1", + "ace_kh25ml_pylonmissile_int_x1" }; weapons[] = { GVAR(L_Launcher_Plane), - GVAR(L_Launcher) + GVAR(L_Launcher), + "ace_kh25ml_launcher" }; units[] = {}; }; diff --git a/addons/maverick/stringtable.xml b/addons/maverick/stringtable.xml index 65cf3eb5f6..32d00eabb7 100644 --- a/addons/maverick/stringtable.xml +++ b/addons/maverick/stringtable.xml @@ -12,31 +12,31 @@ AGM-65 Maverick L, 레이저 유도 대지 미사일 - AGM-65 Maverick L x1 - AGM-65 Maverick L x1 - AGM-65 Maverick L x1 - AGM-65 マーベリック L x1 - AGM-65"小牛"飛彈L型 x1 - AGM-65"小牛"飞弹L型 x1 - AGM-65 Maverick L x1 + AGM-65 Maverick L [ACE] + AGM-65 Maverick L [ACE] + AGM-65 Maverick L [ACE] + AGM-65 マーベリック L [ACE] + AGM-65"小牛"飛彈L型 [ACE] + AGM-65"小牛"飞弹L型 [ACE] + AGM-65 Maverick L [ACE] - AGM-65 Maverick L x2 - AGM-65 Maverick L x2 - AGM-65 Maverick L x2 - AGM-65 マーベリック L x2 - AGM-65"小牛"飛彈L型 x2 - AGM-65"小牛"飞弹L型 x2 - AGM-65 Maverick L x2 + 2x AGM-65 Maverick L [ACE] + 2x AGM-65 Maverick L [ACE] + 2x AGM-65 Maverick L [ACE] + 2x AGM-65 マーベリック L [ACE] + 2x AGM-65"小牛"飛彈L型 [ACE] + 2x AGM-65"小牛"飞弹L型 [ACE] + 2x AGM-65 Maverick L [ACE] - AGM-65 Maverick L x3 - AGM-65 Maverick L x3 - AGM-65 Maverick L x3 - AGM-65 マーベリック L x3 - AGM-65"小牛"飛彈L型 x3 - AGM-65"小牛"飞弹L型 x3 - AGM-65 Maverick L x3 + 3x AGM-65 Maverick L [ACE] + 3x AGM-65 Maverick L [ACE] + 3x AGM-65 Maverick L [ACE] + 3x AGM-65 マーベリック L [ACE] + 3x AGM-65"小牛"飛彈L型 [ACE] + 3x AGM-65"小牛"飞弹L型 [ACE] + 3x AGM-65 Maverick L [ACE] Laser Guided @@ -47,6 +47,15 @@ 雷射导引 레이저 유도 + + Kh-25ML, Laser Guided Air-to-Ground-Missile + Ch-25ML, Lasergelenkte Luft-Boden-Rakete + + + 1x Kh-25ML [ACE] + 1x Ch-25ML [ACE] + 1x Х-25МЛ [ACE] + @@ -58,6 +67,11 @@ AGM-65"小牛"飞弹L型 AGM-65 Maverick L + + Kh-25ML + Ch-25ML + Х-25МЛ + diff --git a/addons/parachute/functions/fnc_handleReserve.sqf b/addons/parachute/functions/fnc_handleReserve.sqf index 7a42d25ed9..7b92d8e9f4 100644 --- a/addons/parachute/functions/fnc_handleReserve.sqf +++ b/addons/parachute/functions/fnc_handleReserve.sqf @@ -25,7 +25,7 @@ if ( {GETVAR(_unit,GVAR(hasReserve),false)} ) then { // Case where unit has just opened parachute and reserve should be added - _unit addBackpackGlobal (GETVAR(_unit,GVAR(backpackClass),"ACE_NonSteerableReserveParachute")); + _unit addBackpackGlobal GETVAR(_unit,GVAR(backpackClass),"ACE_NonSteerableReserveParachute"); SETVAR(vehicle _unit,GVAR(canCut),true); // Mark the parachute cuttable since reserve is present } else { // Case where inventory has changed otherwise (including when reserve is added) diff --git a/addons/realisticnames/CfgMagazines.hpp b/addons/realisticnames/CfgMagazines.hpp index 6e7daa4738..ad6746df06 100644 --- a/addons/realisticnames/CfgMagazines.hpp +++ b/addons/realisticnames/CfgMagazines.hpp @@ -472,7 +472,7 @@ class CfgMagazines { }; class 12Rnd_missiles; class PylonRack_12Rnd_missiles: 12Rnd_missiles { - displayName = "Hydra 70"; // [vanilla: DAR - missiles_DAR] + displayName = "Hydra 70 12x HE"; // [vanilla: DAR - missiles_DAR] }; class PylonRack_20Rnd_Rocket_03_HE_F: 20Rnd_Rocket_03_HE_F { displayName = "S-8 20x HE"; // [vanilla: Tratnyr 20x HE - Rocket_03_HE_Plane_CAS_02_F] diff --git a/addons/realisticnames/CfgVehicles.hpp b/addons/realisticnames/CfgVehicles.hpp index 3d217164e5..708bf1c53f 100644 --- a/addons/realisticnames/CfgVehicles.hpp +++ b/addons/realisticnames/CfgVehicles.hpp @@ -66,16 +66,25 @@ class CfgVehicles { class O_MRAP_02_F: MRAP_02_base_F { displayName = CSTRING(MRAP_02_Name); }; + class O_T_MRAP_02_ghex_F: MRAP_02_base_F { + displayName = CSTRING(MRAP_02_Name); + }; class MRAP_02_hmg_base_F: MRAP_02_base_F {}; class O_MRAP_02_hmg_F: MRAP_02_hmg_base_F { displayName = CSTRING(MRAP_02_hmg_Name); }; + class O_T_MRAP_02_hmg_ghex_F: MRAP_02_hmg_base_F { + displayName = CSTRING(MRAP_02_hmg_Name); + }; class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F {}; class O_MRAP_02_gmg_F: MRAP_02_gmg_base_F { displayName = CSTRING(MRAP_02_gmg_Name); }; + class O_T_MRAP_02_gmg_ghex_F: MRAP_02_gmg_base_F { + displayName = CSTRING(MRAP_02_gmg_Name); + }; // strider class MRAP_03_base_F; @@ -173,8 +182,8 @@ class CfgVehicles { displayName = CSTRING(APC_Wheeled_01_cannon_Name); }; - class O_APC_Wheeled_02_base_F; - class O_APC_Wheeled_02_rcws_F: O_APC_Wheeled_02_base_F { + class APC_Wheeled_02_base_F; + class O_APC_Wheeled_02_base_F : APC_Wheeled_02_base_F { displayName = CSTRING(APC_Wheeled_02_rcws_Name); }; @@ -305,6 +314,9 @@ class CfgVehicles { class Heli_Light_01_civil_base_F: Heli_Light_01_unarmed_base_F { displayName = CSTRING(Heli_Light_01_civil_Name); }; + class I_C_Heli_Light_01_civil_F: Heli_Light_01_civil_base_F { + displayName = CSTRING(Heli_Light_01_civil_Name); + }; class Heli_Light_01_armed_base_F; class B_Heli_Light_01_armed_F: Heli_Light_01_armed_base_F { @@ -397,6 +409,11 @@ class CfgVehicles { displayName = CSTRING(Plane_Fighter_03_Name); }; + class Plane_Fighter_04_Base_F; + class I_Plane_Fighter_04_F : Plane_Fighter_04_Base_F { + displayName = CSTRING(Plane_Fighter_04_Name); + }; + // uavs class UAV_02_base_F; class B_UAV_02_F: UAV_02_base_F { @@ -713,6 +730,9 @@ class CfgVehicles { class C_Offroad_02_unarmed_F: Offroad_02_unarmed_base_F { displayName = CSTRING(C_Offroad_02_unarmed); }; + class I_C_Offroad_02_unarmed_F: Offroad_02_unarmed_base_F { + displayName = CSTRING(C_Offroad_02_unarmed); + }; class C_Offroad_02_unarmed_F_black: C_Offroad_02_unarmed_F { displayName = CSTRING(C_Offroad_02_unarmed_black); }; @@ -734,10 +754,35 @@ class CfgVehicles { class C_Plane_Civil_01_racing_F: Plane_Civil_01_base_F { displayName = CSTRING(C_Plane_Civil_01_racing); }; + class I_C_Plane_Civil_01_F: Plane_Civil_01_base_F { + displayName = CSTRING(C_Plane_Civil_01); + }; // Burraq class UAV_04_base_F; class O_T_UAV_04_CAS_F: UAV_04_base_F { displayName = CSTRING(O_T_UAV_04_CAS); }; + + // Polaris DAGOR (Prowler) + class LSV_01_base_F; + class LSV_01_armed_base_F : LSV_01_base_F { + displayName = CSTRING(lsv_01_armed); + }; + class LSV_01_unarmed_base_F : LSV_01_base_F { + displayName = CSTRING(lsv_01_unarmed); + }; + class LSV_01_light_base_F : LSV_01_base_F { + displayName = CSTRING(lsv_01_light); + }; + + // Light Strike Vehicle Mk. II (Qilin) + class LSV_02_base_F; + class LSV_02_armed_base_F : LSV_02_base_F { + displayName = CSTRING(lsv_02_armed); + }; + class LSV_02_unarmed_base_F : LSV_02_base_F { + displayName = CSTRING(lsv_02_unarmed); + }; + }; diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 1a76b9fa8e..d7dcb94f5d 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -179,7 +179,7 @@ M-ATV (HMG) - M-ATV (SMG) + M-ATV (sMG) M-ATV (HMG) M-ATV (CKM) M-ATV (HMG) @@ -483,7 +483,7 @@ Fennek (HMG) - Fennek (SMG) + Fennek (sMG) Fennek (HMG) Fennek (CKM) Fennek (HMG) @@ -563,7 +563,7 @@ KamAZ Transport - KamAZ Transport + KamAS Transport KamAZ de transporte KamAZ transportowy KamAZ (valník) @@ -579,7 +579,7 @@ KamAZ Transport (covered) - KamAZ Transport (bedeckt) + KamAS Transport (bedeckt) KamAZ de transporte (cubierto) KamAZ Transportowy (zakryty) KamAZ (valník-krytý) @@ -595,7 +595,7 @@ KamAZ Ammo - KamAZ Munition + KamAS Munition KamAZ de munición KamAZ Amunicyjny KamAZ (muniční) @@ -611,7 +611,7 @@ KamAZ Fuel - KamAZ Treibstoff + KamAS Treibstoff KamAZ de combustible KamAZ cysterna KamAZ (cisterna) @@ -627,7 +627,7 @@ KamAZ Repair - KamAZ Instandsetzung + KamAS Instandsetzung KamAZ de reparación KamAZ Naprawczy KamAZ (opravárenský) @@ -643,7 +643,7 @@ KamAZ Medical - KamAZ Sanitäter + KamAS Sanitäter KamAZ médico KamAZ Medyczny KamAZ (zdravotnický) @@ -658,50 +658,50 @@ "卡玛斯"卡车 (医疗) - Punisher - Punisher - Punisher - Punisher - Punisher - Punisher + Karatel + Karatel + Karatel + Karatel + Karatel + Karatel Kаратель - Punisher - Punisher - Punisher + Karatel + Karatel + Karatel パニッシャー - Punisher + Karatel "懲罰者"防地雷反伏擊車 "惩罚者"防地雷反伏击车 - Punisher (HMG) - Punisher (SMG) - Punisher (HMG) - Punisher (CKM) - Punisher (HMG) - Punisher (HMG) + Karatel (HMG) + Karatel (sMG) + Karatel (HMG) + Karatel (CKM) + Karatel (HMG) + Karatel (HMG) Kаратель (Пулемёт) - Punisher (HMG) - Punisher (nehézgéppuska) - Punisher (HMG) + Karatel (HMG) + Karatel (nehézgéppuska) + Karatel (HMG) パニッシャー (HMG) - Punisher (HMG) + Karatel (HMG) "懲罰者"防地雷反伏擊車 (重機槍) "惩罚者"防地雷反伏击车 (重机枪) - Punisher (GMG) - Punisher (GMW) - Punisher (GMG) - Punisher (GMG) - Punisher (GMG) - Punisher (GMG) + Karatel (GMG) + Karatel (GMW) + Karatel (GMG) + Karatel (GMG) + Karatel (GMG) + Karatel (GMG) Kаратель (Гранатомёт) - Punisher (GMG) - Punisher (gránátgéppuska) - Punisher (GMG) + Karatel (GMG) + Karatel (gránátgéppuska) + Karatel (GMG) パニッシャー (GMG) - Punisher (GMG) + Karatel (GMG) "懲罰者"防地雷反伏擊車 (榴彈機槍) "惩罚者"防地雷反伏击车 (榴弹机枪) @@ -1089,6 +1089,20 @@ L-159先進輕型戰鬥機 (空對空) L-159先进轻型战斗机 (空对空) + + JAS 39 Gripen + JAS 39 Gripen + JAS 39 Gripen + JAS 39 Gripen + JAS 39 Gripen + JAS 39 Gripen + JAS 39 Грипен + JAS 39 Gripen + JAS 39 Gripen + サーブ 39 グリペン + JAS 39 그리펜 + JAS 39 獅鷲戰鬥機 + Ka-60 Kasatka Ka-60 Kasatka @@ -1250,7 +1264,7 @@ M83 Smoke Grenade (White) - M83 Rauchgranate (Weiss) + M83 Rauchgranate (Weiß) Granada de humo M83 (Blanco) Granat dymny M83 (Biały) M83 Kouřový Granát (Bílý) @@ -1921,20 +1935,20 @@ CTAR-21卡宾步枪 - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21 EGLM - TAR-21突擊步槍 (榴彈) - TAR-21突击步枪 (榴弹) + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21 EGLM + GTAR-21突擊步槍 (榴彈) + GTAR-21突击步枪 (榴弹) Vector SMG @@ -2166,7 +2180,7 @@ Noreen "Bad News" ULR (Camo) Noreen "Bad News" ULR (Camuflaje) Noreen "Bad News" ULR (Камо) - Noreen "Bad News" ULR (Camo) + Noreen "Bad News" ULR (Tarnmuster) Noreen "Bad News" ULR (kamuflaż) Noreen "Bad News" ULR (Camo) Noreen "Bad News"ULR (Terepmintás) @@ -2182,7 +2196,7 @@ Noreen "Bad News" ULR (Beige) Noreen "Bad News" ULR (Arena) Noreen "Bad News" ULR (Песочный) - Noreen "Bad News" ULR (Sand) + Noreen "Bad News" ULR (sandfarben) Noreen "Bad News" ULR (piaskowy) Noreen "Bad News" ULR (Sabbia) Noreen "Bad News"ULR (Homok) @@ -2247,7 +2261,7 @@ SIG 556 (Arena) SIG 556 (Песочный) SIG 556 (piaskowy) - SIG 556 (Sand) + SIG 556 (sandfarben) SIG 556 (Sabbia) SIG 556 (Homok) SIG 556 (Deserto) @@ -2263,7 +2277,7 @@ SIG 556 (Camuflaje) SIG 556 (Камо) SIG 556 (kamuflaż) - SIG 556 (Camo) + SIG 556 (Tarnmuster) SIG 556 (Camo) SIG 556 (Terepmintás) SIG 556 (Camuflagem) @@ -2279,7 +2293,7 @@ SIG 556 (Bosque) SIG 556 (Лесной) SIG 556 (leśny) - SIG 556 (Woodland) + SIG 556 (Grünes Tarnmuster) SIG 556 (Woodland) SIG 556 (Erdőmintás) SIG 556 (Floresta) @@ -2423,7 +2437,7 @@ M14 (Camuflaje) M14 (Камо) M14 (kamuflaż) - M14 (Camo) + M14 (Tarnmuster) M14 (Camo) M14 (Terepmintás) M14 (Camuflagem) @@ -2439,7 +2453,7 @@ M14 (Oliva) M14 (Олива) M14 (oliwkowy) - M14 (Olive) + M14 (Olivgrün) M14 (Olive) M14 (Olíva) M14 (Oliva) @@ -2551,7 +2565,7 @@ LWMMG (Arena) LWMMG (Песочный) LWMMG (piaskowy) - LWMMG (Sand) + LWMMG (sandfarben) LWMMG (Sabbia) LWMMG (Homok) LWMMG (Deserto) @@ -2929,20 +2943,20 @@ GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249 SPW - M249班用自動機槍 - M249班用自动机枪 + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi SPW + FN Minimi班用自動機槍 + FN Minimi班用自动机枪 M200 Intervention (Tropic) @@ -3014,7 +3028,7 @@ HK416A5 11" (Beige) HK416A5 11" (Arena) HK416A5 11" (Песочный) - HK416A5 11" (Sand) + HK416A5 11" (sandfarben) HK416A5 11" (piaskowy) HK416A5 11" (Sabbia) HK416A5 11" (Homok) @@ -3062,7 +3076,7 @@ HK416A5 11" GL (Beige) HK416A5 11" GL (Arena) HK416A5 11" GL (Песочный) - HK416A5 11" GL (Sand) + HK416A5 11" GL (sandfarben) HK416A5 11" GL (piaskowy) HK416A5 11" GL (Sabbia) HK416A5 11" GL (Homok) @@ -3110,7 +3124,7 @@ HK416A5 14.5" (Beige) HK416A5 14.5" (Arena) HK416A5 14.5" (Песочный) - HK416A5 14.5" (Sand) + HK416A5 14.5" (sandfarben) HK416A5 14.5" (piaskowy) HK416A5 14.5" (Sabbia) HK416A5 14.5" (Homok) @@ -3158,7 +3172,7 @@ HK417A2 20" (Beige) HK417A2 20" (Arena) HK417A2 20" (Песочный) - HK417A2 20" (Sand) + HK417A2 20" (sandfarben) HK417A2 20" (piaskowy) HK417A2 20" (Sabbia) HK417A2 20" (Homok) @@ -3216,5 +3230,25 @@ "馬卡洛夫"手槍 "马卡洛夫"手枪 + + Polaris DAGOR (XM312) + Polaris DAGOR (XM312) + + + Polaris DAGOR + Polaris DAGOR + + + Polaris DAGOR (light) + Polaris DAGOR (leicht) + + + LSV Mk. II (M134) + LSV Mk. II (M134) + + + LSV Mk. II + LSV Mk. II + diff --git a/addons/rearm/functions/fnc_rearmEntireVehicle.sqf b/addons/rearm/functions/fnc_rearmEntireVehicle.sqf index 47dde150e6..a388b80c32 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicle.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicle.sqf @@ -18,15 +18,16 @@ #include "script_component.hpp" params ["_truck", "_player", "_vehicle"]; +TRACE_3("rearmEntireVehicle",_truck,_player,_vehicle); [ TIME_PROGRESSBAR(10), - [_truck, _player, _vehicle], + [_truck, _vehicle, _player], FUNC(rearmEntireVehicleSuccess), "", format [localize LSTRING(BasicRearmAction), getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")], { - param [0] params ["", "_player", "_vehicle"]; + param [0] params ["", "_vehicle", "_player"]; (_player distanceSqr _vehicle) <= REARM_ACTION_DISTANCE_SQR }, ["isnotinside"] diff --git a/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf b/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf index 4c46ea46c2..1e023b22b0 100644 --- a/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf +++ b/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf @@ -17,6 +17,6 @@ params ["_unit"]; -if (!isNull (GETMVAR(GVAR(ladder),objNull)) && {GVAR(ladder) in attachedObjects _unit}) then { +if (!isNull GETMVAR(GVAR(ladder),objNull) && {GVAR(ladder) in attachedObjects _unit}) then { [_unit, GVAR(ladder)] call FUNC(cancelTLdeploy); }; diff --git a/addons/tacticalladder/functions/fnc_handleKilled.sqf b/addons/tacticalladder/functions/fnc_handleKilled.sqf index 742231900c..0983901010 100644 --- a/addons/tacticalladder/functions/fnc_handleKilled.sqf +++ b/addons/tacticalladder/functions/fnc_handleKilled.sqf @@ -17,6 +17,6 @@ params ["_unit"]; -if (!isNull (GETMVAR(ladder,objNull)) && {GVAR(ladder) in attachedObjects _unit}) then { +if (!isNull GETMVAR(ladder,objNull) && {GVAR(ladder) in attachedObjects _unit}) then { [_unit, GVAR(ladder)] call FUNC(cancelTLdeploy); }; diff --git a/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf b/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf index 713c75df7f..f2bac289d1 100644 --- a/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf +++ b/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf @@ -16,7 +16,7 @@ */ #include "script_component.hpp" -if (isNull (GETGVAR(ladder,objNull))) exitWith {}; +if (isNull GETGVAR(ladder,objNull)) exitWith {}; params ["_newPlayer", "_oldPlayer"]; diff --git a/addons/tacticalladder/functions/fnc_handleUnconscious.sqf b/addons/tacticalladder/functions/fnc_handleUnconscious.sqf index 287e465e30..9d6f8ad23e 100644 --- a/addons/tacticalladder/functions/fnc_handleUnconscious.sqf +++ b/addons/tacticalladder/functions/fnc_handleUnconscious.sqf @@ -19,6 +19,6 @@ params ["_unit"]; if (!local _unit) exitWith {}; -if (!isNull (GETMVAR(ladder,objNull)) && {GVAR(ladder) in attachedObjects _unit}) then { +if (!isNull GETMVAR(ladder,objNull) && {GVAR(ladder) in attachedObjects _unit}) then { [_unit, GVAR(ladder)] call FUNC(cancelTLdeploy); }; diff --git a/docs/_includes/dependencies_list.md b/docs/_includes/dependencies_list.md index 6faf417657..86c1ae1bb1 100644 --- a/docs/_includes/dependencies_list.md +++ b/docs/_includes/dependencies_list.md @@ -211,7 +211,7 @@ {% endif %} {% if include.component == "maverick" %} -`ace_hellfire` +`ace_missileguidance` {% endif %} {% if include.component == "medical" %} diff --git a/docs/img/scope_module.jpg b/docs/img/scope_module.jpg deleted file mode 100644 index 19629bddd7..0000000000 Binary files a/docs/img/scope_module.jpg and /dev/null differ diff --git a/docs/img/wiki/feature/ab_module.jpg b/docs/img/wiki/feature/ab_module.jpg deleted file mode 100644 index 70d2ec52b5..0000000000 Binary files a/docs/img/wiki/feature/ab_module.jpg and /dev/null differ diff --git a/docs/img/wiki/feature/ab_module1.jpg b/docs/img/wiki/feature/ab_module1.jpg new file mode 100644 index 0000000000..2eb900ee3c Binary files /dev/null and b/docs/img/wiki/feature/ab_module1.jpg differ diff --git a/docs/img/wiki/feature/atragmx3.png b/docs/img/wiki/feature/atragmx31.png similarity index 50% rename from docs/img/wiki/feature/atragmx3.png rename to docs/img/wiki/feature/atragmx31.png index dd4a1800e1..58afd1863e 100644 Binary files a/docs/img/wiki/feature/atragmx3.png and b/docs/img/wiki/feature/atragmx31.png differ diff --git a/docs/img/wiki/feature/atragmx3a.png b/docs/img/wiki/feature/atragmx31a.png similarity index 50% rename from docs/img/wiki/feature/atragmx3a.png rename to docs/img/wiki/feature/atragmx31a.png index 9e18243d56..39ee84200c 100644 Binary files a/docs/img/wiki/feature/atragmx3a.png and b/docs/img/wiki/feature/atragmx31a.png differ diff --git a/docs/img/wiki/feature/atragmx4.png b/docs/img/wiki/feature/atragmx4.png deleted file mode 100644 index 7db5b69077..0000000000 Binary files a/docs/img/wiki/feature/atragmx4.png and /dev/null differ diff --git a/docs/img/wiki/feature/atragmx41.png b/docs/img/wiki/feature/atragmx41.png new file mode 100644 index 0000000000..d89f6c1757 Binary files /dev/null and b/docs/img/wiki/feature/atragmx41.png differ diff --git a/docs/img/wiki/feature/scope_module.jpg b/docs/img/wiki/feature/scope_module.jpg deleted file mode 100644 index 19629bddd7..0000000000 Binary files a/docs/img/wiki/feature/scope_module.jpg and /dev/null differ diff --git a/docs/img/wiki/feature/scope_module1.jpg b/docs/img/wiki/feature/scope_module1.jpg new file mode 100644 index 0000000000..4f5f8829f2 Binary files /dev/null and b/docs/img/wiki/feature/scope_module1.jpg differ diff --git a/docs/img/wiki/feature/simplified_zeroing.jpg b/docs/img/wiki/feature/simplified_zeroing.jpg new file mode 100644 index 0000000000..55a6ba6b20 Binary files /dev/null and b/docs/img/wiki/feature/simplified_zeroing.jpg differ diff --git a/docs/wiki/feature/advanced-ballistics.md b/docs/wiki/feature/advanced-ballistics.md index 43fa7d454e..ce5a6c3a2a 100644 --- a/docs/wiki/feature/advanced-ballistics.md +++ b/docs/wiki/feature/advanced-ballistics.md @@ -33,14 +33,16 @@ The Advanced Ballistics module improves internal and external ballistics. ### 2.1 Enabling Advanced Ballistics -#### 2.1.1 Editor -Advanced Ballistics module +#### 2.1.1 OPTIONS → GAME → CONFIGURE ADDONS -#### 2.1.2 Settings Framework -- [Settings Framework]({{ site.baseurl }}/wiki/framework/settings-framework.html) +Advanced Ballistics module + +#### 2.1.2 CBA Settings System +- [CBA Settings System](https://github.com/CBATeam/CBA_A3/wiki/CBA-Settings-System) #### 2.1.3 Enabled in-game ? - Pick up a [Range Card]({{ site.baseurl }}/wiki/feature/rangecard.html) and open it. + Advanced Ballistics vs Default Ballistic ### 2.2 Protractor diff --git a/docs/wiki/feature/atragmx.md b/docs/wiki/feature/atragmx.md index 0f63ec4360..d3126e0ba5 100644 --- a/docs/wiki/feature/atragmx.md +++ b/docs/wiki/feature/atragmx.md @@ -70,13 +70,6 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r - Control the breath and press. ### 3.3 Example with Truing tool - -**Start of the mission:** - -- Select `Drag Coef Table` in the `Options` menu. [[Manual]](https://horusvision.com/download/manual_Horus_ATrag-v385.pdf#page=14) -- Add the `ZR` and the `C1` (`Gun` column) in the table and `Done`. - -**In position:** - Open the `Truing Drop` in the `Options` menu. [[Manual]](https://horusvision.com/download/manual_Horus_ATrag-v385.pdf#page=23) - Add the actual `Target Range` in the `SUPER` column and `Calc`. @@ -88,25 +81,24 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r Calculation -- If a new `Target Range` is applied in the `Target` column, select `Drag Coef Table` in the `Options` menu and `Done`. -- The ballistic coefficient `C1` and the elevation `Elev` will be recalculated. +- If a new `Target Range` is applied in the `Target` column, the ballistic coefficient `C1` and the elevation `Elev` will be automatically recalculated. -Interpolation +Interpolation -Extrapolation +Extrapolation ### 3.4 Example with overwritten zero distance -- The `Default zero distance` can be overwritten with the [Scopes module]({{ site.baseurl }}/wiki/feature/scopes.html) or the [Settings Framework]({{ site.baseurl }}/wiki/framework/settings-framework.html). +- The `Default zero distance` can be overwritten with the [Scopes module]({{ site.baseurl }}/wiki/feature/scopes.html), the [Scopes Framework]({{ site.baseurl }}/wiki/framework/scopes-framework.html) or the [CBA Settings System](https://github.com/CBATeam/CBA_A3/wiki/CBA-Settings-System). - In this case, the [Range Card]({{ site.baseurl }}/wiki/feature/rangecard.html) will be automatically updated, NOT the AtragMx. - Open the AtragMx and the `Atmsphr` column, select `Default` and `Done`. [[Manual]](https://horusvision.com/download/manual_Horus_ATrag-v385.pdf#page=15) - Open the `Gun` column, check and update the `Zero Range` and `Done`. -Zero distance 300m +Zero distance 300m ### 3.5 Example with `Add New Gun` in `GunList` -- Open the [Range Card]({{ site.baseurl }}/wiki/feature/rangecard.html) and check the cartridge, the bullet diameter, the bullet weight and the muzzle velocities. +- Open the [Range Card]({{ site.baseurl }}/wiki/feature/rangecard.html) and check the bullet diameter, the bullet weight, the **(bullet Class Name)** and the muzzle velocities. - Open the AtragMx and the `Atmsphr` column, select `Default` and `Done`. [[Manual]](https://horusvision.com/download/manual_Horus_ATrag-v385.pdf#page=15) - Select `Add New Gun` in the `GunList`. [[Manual]](https://horusvision.com/download/manual_Horus_ATrag-v385.pdf#page=25) - Add a `New Gun Name` and `Open Gun`. @@ -117,9 +109,9 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r - Edit manually the `Muzzle Velocity Table` according with the [Range Card]({{ site.baseurl }}/wiki/feature/rangecard.html) and `Done`. [[Manual]](https://horusvision.com/download/manual_Horus_ATrag-v385.pdf#page=22) - The `C1 coefficient` of the bullet can be found with the Eden Editor `Config Viewer`: -> configfile >> "CfgAmmo" >> "Range card cartridge" >> "ACE_ballisticCoefficients" +> configfile >> "CfgAmmo" >> "**bullet Class Name**" >> "ACE_ballisticCoefficients" -> configfile >> "CfgAmmo" >> "Range card cartridge" >> "ACE_dragModel" +> configfile >> "CfgAmmo" >> "**bullet Class Name**" >> "ACE_dragModel" - *The AtragMx accepts only **G1 ballistic coefficient**.* - *G7 ballistic coefficient can be converted, for example, with the online [JBM Ballistics Calculators](http://www.jbmballistics.com/cgi-bin/jbmgf-5.1.cgi)*. @@ -128,10 +120,14 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r > Note: The ballistic coefficient can be calculated by using the [360 Degree Training Course mission](https://forums.bistudio.com/forums/topic/171228-sp-360-degree-training-course/) as a chronograph at different distances and [JBM Ballistics Calculators](http://www.jbmballistics.com/cgi-bin/jbmbcv-5.1.cgi) for example, an another ballistic software at your own convenience, or the [AtragMx Truing Tool](#33-example-with-truing-tool). -> Example direct conversion with 0.408 Cheytac 305 grains G7 BC 0.279 at 2000 meters 15°C: +> Example direct conversion with .408 Cheytac 305 grains G7 BC 0.279 at 2000 meters 15°C: Conversion G7/G1 BC +### 3.6 Adding ATragMX Presets + +- [ATragMX Framework]({{ site.baseurl }}/wiki/framework/atragmx.html) + ## 4. Official Manual and Horus Videos diff --git a/docs/wiki/feature/scopes.md b/docs/wiki/feature/scopes.md index 8f496a90d9..3eab4a1de0 100644 --- a/docs/wiki/feature/scopes.md +++ b/docs/wiki/feature/scopes.md @@ -35,7 +35,11 @@ Please not that the following key combinations are ACE3 default key binds. ### 2.3 Scopes Module -Editor's scopes module +CBA Settings scopes module + +### 2.4 Simplified Zeroing + +Simplified zeroing ## 3. Dependencies diff --git a/docs/wiki/framework/missile-guidance-framework.md b/docs/wiki/framework/missile-guidance-framework.md index 5e414458fa..3b31975da3 100644 --- a/docs/wiki/framework/missile-guidance-framework.md +++ b/docs/wiki/framework/missile-guidance-framework.md @@ -88,8 +88,8 @@ class CfgAmmo { ### 4.2 Custom Seeker Types ```cpp -class ace_missileguidance_attackProfiles { - class MyAttackProfile { +class ace_missileguidance_seekerTypes { + class MySeekerType { name = ""; // Name visualName = ""; // Visual name description = ""; // Description @@ -102,8 +102,8 @@ class ace_missileguidance_attackProfiles { ### 4.3 Custom Attack Profiles ```cpp -class ace_missileguidance_seekerTypes { - class MySeekerType { +class ace_missileguidance_attackProfiles { + class MyAttackProfile { name = ""; // Name visualName = ""; // Visual name description = ""; // Description diff --git a/tools/make.py b/tools/make.py index f0e36d8d6a..3ca0523cd0 100644 --- a/tools/make.py +++ b/tools/make.py @@ -422,12 +422,14 @@ def cleanup_optionals(mod): try: file_name = "{}{}.pbo".format(pbo_name_prefix,dir_name) + folder= "@{}{}".format(pbo_name_prefix,dir_name) src_file_path = os.path.join(release_dir, project, "addons", file_name) - dst_file_path = os.path.join(release_dir, project, "optionals", file_name) + dst_file_path = os.path.join(release_dir, project, "optionals",folder,"addons",file_name) sigFile_name = "{}.{}.bisign".format(file_name,key_name) src_sig_path = os.path.join(release_dir, project, "addons", sigFile_name) - dst_sig_path = os.path.join(release_dir, project, "optionals", sigFile_name) + dst_sig_path = os.path.join(release_dir, project, "optionals",folder,"addons", sigFile_name) + if (os.path.isfile(src_file_path)): #print("Preserving {}".format(file_name)) diff --git a/tools/publish.py b/tools/publish.py index 02ed225d82..bd4f4f8389 100644 --- a/tools/publish.py +++ b/tools/publish.py @@ -45,20 +45,6 @@ def find_bi_tools(): else: raise Exception("BadTools","Arma 3 Tools are not installed correctly or the P: drive needs to be created.") -def buildCompatFolder(folderName, copyFileNames): - compatRelease_dir = os.path.join(release_dir, folderName) - if os.path.exists(compatRelease_dir): - shutil.rmtree(compatRelease_dir) - os.makedirs(compatRelease_dir) - os.makedirs(os.path.join(compatRelease_dir, "addons")) - print("Adding files for folder {}".format(folderName)) - for copyFileName in copyFileNames: - for file in os.listdir(ace_optionals_dir): - if fnmatch.fnmatch(file, copyFileName): - print(" Copying: {}".format(file)) - shutil.copyfile(os.path.join(ace_optionals_dir, file), os.path.join(compatRelease_dir, "addons", file)) - - return compatRelease_dir def publishFolder(folder,modID,changeNotes): cmd = [publisherTool_path, "update", "/id:{}".format(modID), "/changeNoteFile:{}".format(changeNotes), "/path:{}".format(folder)] @@ -105,30 +91,26 @@ def main(argv): return 0 - + #ACE Main - http://steamcommunity.com/sharedfiles/filedetails/?id=463939057 # Note: command line publisher doesn't like our file structure, just upload this one manually - - + + #RHS Compat USA - http://steamcommunity.com/sharedfiles/filedetails/?id=773125288 - folder = buildCompatFolder("@ace_compat_rhs_usf3", ["ace_compat_rhs_usf3.*"]) - publishFolder(folder, "773125288", changelog_path) - + + publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rhs_usf3"), "773125288", changelog_path) + #RHS Compat Russians - http://steamcommunity.com/sharedfiles/filedetails/?id=773131200 - folder = buildCompatFolder("@ace_compat_rhs_afrf3", ["ace_compat_rhs_afrf3.*"]) - publishFolder(folder, "773131200", changelog_path) + publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rhs_afrf3"), "773131200", changelog_path) #RHS Compat GREF - http://steamcommunity.com/sharedfiles/filedetails/?id=884966711 - folder = buildCompatFolder("@ace_compat_rhs_gref3", ["ace_compat_rhs_gref3.*"]) - publishFolder(folder, "884966711", changelog_path) + publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rhs_gref3"), "884966711", changelog_path) #ADR97 (p90)- http://steamcommunity.com/sharedfiles/filedetails/?id=773136286 - folder = buildCompatFolder("@ace_adr97_compat", ["ace_compat_adr_97.*"]) - publishFolder(folder, "773136286", changelog_path) + publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_adr_97"), "773136286", changelog_path) if __name__ == "__main__": main(sys.argv) -