Merge branch 'master' of https://github.com/acemod/ACE3 into medical-rewrite

This commit is contained in:
commy2 2018-01-02 15:11:14 +01:00
commit f8ff279c6b
41 changed files with 374 additions and 195 deletions

View File

@ -90,6 +90,7 @@ havena <silveredenis@gmail.com>
Hawkins
Head <brobergsebastian@gmail.com>
Hybrid V
john681611 <john681611@hotmail.com>
Karneck <dschultz26@hotmail.com>
Kavinsky <nmunozfernandez@gmail.com>
Keithen <Keithen.Neu@gmail.com>

View File

@ -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);

View File

@ -32,7 +32,7 @@ if (_state) then {
//Add Actionmenu to release captive
private _actionID = _unit addAction [format ["<t color='#FF0000'>%1</t>", 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"];

View File

@ -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;

View File

@ -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

View File

@ -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
};

View File

@ -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}})

View File

@ -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";

View File

@ -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 { \

View File

@ -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"};
};
};
};

View File

@ -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";
};
};

View File

@ -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;
};
};

View File

@ -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)

View File

@ -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[] = {};
};

View File

@ -12,31 +12,31 @@
<Korean>AGM-65 Maverick L, 레이저 유도 대지 미사일</Korean>
</Key>
<Key ID="str_ace_maverick_l_mag_x1">
<English>AGM-65 Maverick L x1</English>
<German>AGM-65 Maverick L x1</German>
<Italian>AGM-65 Maverick L x1</Italian>
<Japanese>AGM-65 マーベリック L x1</Japanese>
<Chinese>AGM-65"小牛"飛彈L型 x1</Chinese>
<Chinesesimp>AGM-65"小牛"飞弹L型 x1</Chinesesimp>
<Korean>AGM-65 Maverick L x1</Korean>
<English>AGM-65 Maverick L [ACE]</English>
<German>AGM-65 Maverick L [ACE]</German>
<Italian>AGM-65 Maverick L [ACE]</Italian>
<Japanese>AGM-65 マーベリック L [ACE]</Japanese>
<Chinese>AGM-65"小牛"飛彈L型 [ACE]</Chinese>
<Chinesesimp>AGM-65"小牛"飞弹L型 [ACE]</Chinesesimp>
<Korean>AGM-65 Maverick L [ACE]</Korean>
</Key>
<Key ID="str_ace_maverick_l_mag_x2">
<English>AGM-65 Maverick L x2</English>
<German>AGM-65 Maverick L x2</German>
<Italian>AGM-65 Maverick L x2</Italian>
<Japanese>AGM-65 マーベリック L x2</Japanese>
<Chinese>AGM-65"小牛"飛彈L型 x2</Chinese>
<Chinesesimp>AGM-65"小牛"飞弹L型 x2</Chinesesimp>
<Korean>AGM-65 Maverick L x2</Korean>
<English>2x AGM-65 Maverick L [ACE]</English>
<German>2x AGM-65 Maverick L [ACE]</German>
<Italian>2x AGM-65 Maverick L [ACE]</Italian>
<Japanese>2x AGM-65 マーベリック L [ACE]</Japanese>
<Chinese>2x AGM-65"小牛"飛彈L型 [ACE]</Chinese>
<Chinesesimp>2x AGM-65"小牛"飞弹L型 [ACE]</Chinesesimp>
<Korean>2x AGM-65 Maverick L [ACE]</Korean>
</Key>
<Key ID="str_ace_maverick_l_mag_x3">
<English>AGM-65 Maverick L x3</English>
<German>AGM-65 Maverick L x3</German>
<Italian>AGM-65 Maverick L x3</Italian>
<Japanese>AGM-65 マーベリック L x3</Japanese>
<Chinese>AGM-65"小牛"飛彈L型 x3</Chinese>
<Chinesesimp>AGM-65"小牛"飞弹L型 x3</Chinesesimp>
<Korean>AGM-65 Maverick L x3</Korean>
<English>3x AGM-65 Maverick L [ACE]</English>
<German>3x AGM-65 Maverick L [ACE]</German>
<Italian>3x AGM-65 Maverick L [ACE]</Italian>
<Japanese>3x AGM-65 マーベリック L [ACE]</Japanese>
<Chinese>3x AGM-65"小牛"飛彈L型 [ACE]</Chinese>
<Chinesesimp>3x AGM-65"小牛"飞弹L型 [ACE]</Chinesesimp>
<Korean>3x AGM-65 Maverick L [ACE]</Korean>
</Key>
<Key ID="str_ace_maverick_l_mag_short">
<English>Laser Guided</English>
@ -47,6 +47,15 @@
<Chinesesimp>雷射导引</Chinesesimp>
<Korean>레이저 유도</Korean>
</Key>
<Key ID="str_ace_maverick_kh25ml_mag_descr">
<English>Kh-25ML, Laser Guided Air-to-Ground-Missile</English>
<German>Ch-25ML, Lasergelenkte Luft-Boden-Rakete</German>
</Key>
<Key ID="str_ace_maverick_kh25ml_mag_x1">
<English>1x Kh-25ML [ACE]</English>
<German>1x Ch-25ML [ACE]</German>
<Russian>1x Х-25МЛ [ACE]</Russian>
</Key>
</Container>
<Container name="weapons">
<Key ID="str_ace_maverick_l">
@ -58,6 +67,11 @@
<Chinesesimp>AGM-65"小牛"飞弹L型</Chinesesimp>
<Korean>AGM-65 Maverick L</Korean>
</Key>
<Key ID="str_ace_maverick_kh25ml">
<English>Kh-25ML</English>
<German>Ch-25ML</English>
<Russian>Х-25МЛ</English>
</Key>
</Container>
</Package>
</Project>

View File

@ -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)

View File

@ -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]

View File

@ -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);
};
};

View File

@ -179,7 +179,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_MRAP_01_hmg_Name">
<English>M-ATV (HMG)</English>
<German>M-ATV (SMG)</German>
<German>M-ATV (sMG)</German>
<Spanish>M-ATV (HMG)</Spanish>
<Polish>M-ATV (CKM)</Polish>
<Czech>M-ATV (HMG)</Czech>
@ -483,7 +483,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_MRAP_03_hmg_Name">
<English>Fennek (HMG)</English>
<German>Fennek (SMG)</German>
<German>Fennek (sMG)</German>
<Spanish>Fennek (HMG)</Spanish>
<Polish>Fennek (CKM)</Polish>
<Czech>Fennek (HMG)</Czech>
@ -563,7 +563,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_Truck_02_transport_Name">
<English>KamAZ Transport</English>
<German>KamAZ Transport</German>
<German>KamAS Transport</German>
<Spanish>KamAZ de transporte</Spanish>
<Polish>KamAZ transportowy</Polish>
<Czech>KamAZ (valník)</Czech>
@ -579,7 +579,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_Truck_02_covered_Name">
<English>KamAZ Transport (covered)</English>
<German>KamAZ Transport (bedeckt)</German>
<German>KamAS Transport (bedeckt)</German>
<Spanish>KamAZ de transporte (cubierto)</Spanish>
<Polish>KamAZ Transportowy (zakryty)</Polish>
<Czech>KamAZ (valník-krytý)</Czech>
@ -595,7 +595,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_Truck_02_ammo_Name">
<English>KamAZ Ammo</English>
<German>KamAZ Munition</German>
<German>KamAS Munition</German>
<Spanish>KamAZ de munición</Spanish>
<Polish>KamAZ Amunicyjny</Polish>
<Czech>KamAZ (muniční)</Czech>
@ -611,7 +611,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_Truck_02_fuel_Name">
<English>KamAZ Fuel</English>
<German>KamAZ Treibstoff</German>
<German>KamAS Treibstoff</German>
<Spanish>KamAZ de combustible</Spanish>
<Polish>KamAZ cysterna</Polish>
<Czech>KamAZ (cisterna)</Czech>
@ -627,7 +627,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_Truck_02_box_Name">
<English>KamAZ Repair</English>
<German>KamAZ Instandsetzung</German>
<German>KamAS Instandsetzung</German>
<Spanish>KamAZ de reparación</Spanish>
<Polish>KamAZ Naprawczy</Polish>
<Czech>KamAZ (opravárenský)</Czech>
@ -643,7 +643,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_Truck_02_medical_Name">
<English>KamAZ Medical</English>
<German>KamAZ Sanitäter</German>
<German>KamAS Sanitäter</German>
<Spanish>KamAZ médico</Spanish>
<Polish>KamAZ Medyczny</Polish>
<Czech>KamAZ (zdravotnický)</Czech>
@ -658,50 +658,50 @@
<Chinesesimp>"卡玛斯"卡车 (医疗)</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_MRAP_02_Name">
<English>Punisher</English>
<German>Punisher</German>
<Spanish>Punisher</Spanish>
<Polish>Punisher</Polish>
<Czech>Punisher</Czech>
<French>Punisher</French>
<English>Karatel</English>
<German>Karatel</German>
<Spanish>Karatel</Spanish>
<Polish>Karatel</Polish>
<Czech>Karatel</Czech>
<French>Karatel</French>
<Russian>Kаратель</Russian>
<Portuguese>Punisher</Portuguese>
<Hungarian>Punisher</Hungarian>
<Italian>Punisher</Italian>
<Portuguese>Karatel</Portuguese>
<Hungarian>Karatel</Hungarian>
<Italian>Karatel</Italian>
<Japanese>パニッシャー</Japanese>
<Korean>Punisher</Korean>
<Korean>Karatel</Korean>
<Chinese>"懲罰者"防地雷反伏擊車</Chinese>
<Chinesesimp>"惩罚者"防地雷反伏击车</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_MRAP_02_hmg_Name">
<English>Punisher (HMG)</English>
<German>Punisher (SMG)</German>
<Spanish>Punisher (HMG)</Spanish>
<Polish>Punisher (CKM)</Polish>
<Czech>Punisher (HMG)</Czech>
<French>Punisher (HMG)</French>
<English>Karatel (HMG)</English>
<German>Karatel (sMG)</German>
<Spanish>Karatel (HMG)</Spanish>
<Polish>Karatel (CKM)</Polish>
<Czech>Karatel (HMG)</Czech>
<French>Karatel (HMG)</French>
<Russian>Kаратель (Пулемёт)</Russian>
<Portuguese>Punisher (HMG)</Portuguese>
<Hungarian>Punisher (nehézgéppuska)</Hungarian>
<Italian>Punisher (HMG)</Italian>
<Portuguese>Karatel (HMG)</Portuguese>
<Hungarian>Karatel (nehézgéppuska)</Hungarian>
<Italian>Karatel (HMG)</Italian>
<Japanese>パニッシャー (HMG)</Japanese>
<Korean>Punisher (HMG)</Korean>
<Korean>Karatel (HMG)</Korean>
<Chinese>"懲罰者"防地雷反伏擊車 (重機槍)</Chinese>
<Chinesesimp>"惩罚者"防地雷反伏击车 (重机枪)</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_MRAP_02_gmg_Name">
<English>Punisher (GMG)</English>
<German>Punisher (GMW)</German>
<Spanish>Punisher (GMG)</Spanish>
<Polish>Punisher (GMG)</Polish>
<Czech>Punisher (GMG)</Czech>
<French>Punisher (GMG)</French>
<English>Karatel (GMG)</English>
<German>Karatel (GMW)</German>
<Spanish>Karatel (GMG)</Spanish>
<Polish>Karatel (GMG)</Polish>
<Czech>Karatel (GMG)</Czech>
<French>Karatel (GMG)</French>
<Russian>Kаратель (Гранатомёт)</Russian>
<Portuguese>Punisher (GMG)</Portuguese>
<Hungarian>Punisher (gránátgéppuska)</Hungarian>
<Italian>Punisher (GMG)</Italian>
<Portuguese>Karatel (GMG)</Portuguese>
<Hungarian>Karatel (gránátgéppuska)</Hungarian>
<Italian>Karatel (GMG)</Italian>
<Japanese>パニッシャー (GMG)</Japanese>
<Korean>Punisher (GMG)</Korean>
<Korean>Karatel (GMG)</Korean>
<Chinese>"懲罰者"防地雷反伏擊車 (榴彈機槍)</Chinese>
<Chinesesimp>"惩罚者"防地雷反伏击车 (榴弹机枪)</Chinesesimp>
</Key>
@ -1089,6 +1089,20 @@
<Chinese>L-159先進輕型戰鬥機 (空對空)</Chinese>
<Chinesesimp>L-159先进轻型战斗机 (空对空)</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_Plane_Fighter_04_Name">
<English>JAS 39 Gripen</English>
<German>JAS 39 Gripen</German>
<Spanish>JAS 39 Gripen</Spanish>
<Polish>JAS 39 Gripen</Polish>
<Czech>JAS 39 Gripen</Czech>
<French>JAS 39 Gripen</French>
<Russian>JAS 39 Грипен</Russian>
<Portuguese>JAS 39 Gripen</Portuguese>
<Italian>JAS 39 Gripen</Italian>
<Japanese>サーブ 39 グリペン</Japanese>
<Korean>JAS 39 그리펜</Korean>
<Chinese>JAS 39 獅鷲戰鬥機</Chinese>
</Key>
<Key ID="STR_ACE_RealisticNames_Heli_Light_02_Name">
<English>Ka-60 Kasatka</English>
<German>Ka-60 Kasatka</German>
@ -1250,7 +1264,7 @@
</Key>
<Key ID="STR_ACE_RealisticNames_SmokeShell_Name">
<English>M83 Smoke Grenade (White)</English>
<German>M83 Rauchgranate (Weiss)</German>
<German>M83 Rauchgranate (Weiß)</German>
<Spanish>Granada de humo M83 (Blanco)</Spanish>
<Polish>Granat dymny M83 (Biały)</Polish>
<Czech>M83 Kouřový Granát (Bílý)</Czech>
@ -1921,20 +1935,20 @@
<Chinesesimp>CTAR-21卡宾步枪</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_arifle_TRG21_GL_Name">
<English>TAR-21 EGLM</English>
<German>TAR-21 EGLM</German>
<Czech>TAR-21 EGLM</Czech>
<Polish>TAR-21 EGLM</Polish>
<French>TAR-21 EGLM</French>
<Hungarian>TAR-21 EGLM</Hungarian>
<Spanish>TAR-21 EGLM</Spanish>
<Russian>TAR-21 EGLM</Russian>
<Portuguese>TAR-21 EGLM</Portuguese>
<Italian>TAR-21 EGLM</Italian>
<Japanese>TAR-21 EGLM</Japanese>
<Korean>TAR-21 EGLM</Korean>
<Chinese>TAR-21突擊步槍 (榴彈)</Chinese>
<Chinesesimp>TAR-21突击步枪 (榴弹)</Chinesesimp>
<English>GTAR-21 EGLM</English>
<German>GTAR-21 EGLM</German>
<Czech>GTAR-21 EGLM</Czech>
<Polish>GTAR-21 EGLM</Polish>
<French>GTAR-21 EGLM</French>
<Hungarian>GTAR-21 EGLM</Hungarian>
<Spanish>GTAR-21 EGLM</Spanish>
<Russian>GTAR-21 EGLM</Russian>
<Portuguese>GTAR-21 EGLM</Portuguese>
<Italian>GTAR-21 EGLM</Italian>
<Japanese>GTAR-21 EGLM</Japanese>
<Korean>GTAR-21 EGLM</Korean>
<Chinese>GTAR-21突擊步槍 (榴彈)</Chinese>
<Chinesesimp>GTAR-21突击步枪 (榴弹)</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_SMG_01_Name">
<English>Vector SMG</English>
@ -2166,7 +2180,7 @@
<French>Noreen "Bad News" ULR (Camo)</French>
<Spanish>Noreen "Bad News" ULR (Camuflaje)</Spanish>
<Russian>Noreen "Bad News" ULR (Камо)</Russian>
<German>Noreen "Bad News" ULR (Camo)</German>
<German>Noreen "Bad News" ULR (Tarnmuster)</German>
<Polish>Noreen "Bad News" ULR (kamuflaż)</Polish>
<Italian>Noreen "Bad News" ULR (Camo)</Italian>
<Hungarian>Noreen "Bad News"ULR (Terepmintás)</Hungarian>
@ -2182,7 +2196,7 @@
<French>Noreen "Bad News" ULR (Beige)</French>
<Spanish>Noreen "Bad News" ULR (Arena)</Spanish>
<Russian>Noreen "Bad News" ULR (Песочный)</Russian>
<German>Noreen "Bad News" ULR (Sand)</German>
<German>Noreen "Bad News" ULR (sandfarben)</German>
<Polish>Noreen "Bad News" ULR (piaskowy)</Polish>
<Italian>Noreen "Bad News" ULR (Sabbia)</Italian>
<Hungarian>Noreen "Bad News"ULR (Homok)</Hungarian>
@ -2247,7 +2261,7 @@
<Spanish>SIG 556 (Arena)</Spanish>
<Russian>SIG 556 (Песочный)</Russian>
<Polish>SIG 556 (piaskowy)</Polish>
<German>SIG 556 (Sand)</German>
<German>SIG 556 (sandfarben)</German>
<Italian>SIG 556 (Sabbia)</Italian>
<Hungarian>SIG 556 (Homok)</Hungarian>
<Portuguese>SIG 556 (Deserto)</Portuguese>
@ -2263,7 +2277,7 @@
<Spanish>SIG 556 (Camuflaje)</Spanish>
<Russian>SIG 556 (Камо)</Russian>
<Polish>SIG 556 (kamuflaż)</Polish>
<German>SIG 556 (Camo)</German>
<German>SIG 556 (Tarnmuster)</German>
<Italian>SIG 556 (Camo)</Italian>
<Hungarian>SIG 556 (Terepmintás)</Hungarian>
<Portuguese>SIG 556 (Camuflagem)</Portuguese>
@ -2279,7 +2293,7 @@
<Spanish>SIG 556 (Bosque)</Spanish>
<Russian>SIG 556 (Лесной)</Russian>
<Polish>SIG 556 (leśny)</Polish>
<German>SIG 556 (Woodland)</German>
<German>SIG 556 (Grünes Tarnmuster)</German>
<Italian>SIG 556 (Woodland)</Italian>
<Hungarian>SIG 556 (Erdőmintás)</Hungarian>
<Portuguese>SIG 556 (Floresta)</Portuguese>
@ -2423,7 +2437,7 @@
<Spanish>M14 (Camuflaje)</Spanish>
<Russian>M14 (Камо)</Russian>
<Polish>M14 (kamuflaż)</Polish>
<German>M14 (Camo)</German>
<German>M14 (Tarnmuster)</German>
<Italian>M14 (Camo)</Italian>
<Hungarian>M14 (Terepmintás)</Hungarian>
<Portuguese>M14 (Camuflagem)</Portuguese>
@ -2439,7 +2453,7 @@
<Spanish>M14 (Oliva)</Spanish>
<Russian>M14 (Олива)</Russian>
<Polish>M14 (oliwkowy)</Polish>
<German>M14 (Olive)</German>
<German>M14 (Olivgrün)</German>
<Italian>M14 (Olive)</Italian>
<Hungarian>M14 (Olíva)</Hungarian>
<Portuguese>M14 (Oliva)</Portuguese>
@ -2551,7 +2565,7 @@
<Spanish>LWMMG (Arena)</Spanish>
<Russian>LWMMG (Песочный)</Russian>
<Polish>LWMMG (piaskowy)</Polish>
<German>LWMMG (Sand)</German>
<German>LWMMG (sandfarben)</German>
<Italian>LWMMG (Sabbia)</Italian>
<Hungarian>LWMMG (Homok)</Hungarian>
<Portuguese>LWMMG (Deserto)</Portuguese>
@ -2929,20 +2943,20 @@
<Chinesesimp>GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩)</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_LMG_03">
<English>M249 SPW</English>
<German>M249 SPW</German>
<Spanish>M249 SPW</Spanish>
<Polish>M249 SPW</Polish>
<Czech>M249 SPW</Czech>
<French>M249 SPW</French>
<Russian>M249 SPW</Russian>
<Portuguese>M249 SPW</Portuguese>
<Hungarian>M249 SPW</Hungarian>
<Italian>M249 SPW</Italian>
<Japanese>M249 SPW</Japanese>
<Korean>M249 SPW</Korean>
<Chinese>M249班用自動機槍</Chinese>
<Chinesesimp>M249班用自动机枪</Chinesesimp>
<English>FN Minimi SPW</English>
<German>FN Minimi SPW</German>
<Spanish>FN Minimi SPW</Spanish>
<Polish>FN Minimi SPW</Polish>
<Czech>FN Minimi SPW</Czech>
<French>FN Minimi SPW</French>
<Russian>FN Minimi SPW</Russian>
<Portuguese>FN Minimi SPW</Portuguese>
<Hungarian>FN Minimi SPW</Hungarian>
<Italian>FN Minimi SPW</Italian>
<Japanese>FN Minimi SPW</Japanese>
<Korean>FN Minimi SPW</Korean>
<Chinese>FN Minimi班用自動機槍</Chinese>
<Chinesesimp>FN Minimi班用自动机枪</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_srifle_LRR_tna">
<English>M200 Intervention (Tropic)</English>
@ -3014,7 +3028,7 @@
<French>HK416A5 11" (Beige)</French>
<Spanish>HK416A5 11" (Arena)</Spanish>
<Russian>HK416A5 11" (Песочный)</Russian>
<German>HK416A5 11" (Sand)</German>
<German>HK416A5 11" (sandfarben)</German>
<Polish>HK416A5 11" (piaskowy)</Polish>
<Italian>HK416A5 11" (Sabbia)</Italian>
<Hungarian>HK416A5 11" (Homok)</Hungarian>
@ -3062,7 +3076,7 @@
<French>HK416A5 11" GL (Beige)</French>
<Spanish>HK416A5 11" GL (Arena)</Spanish>
<Russian>HK416A5 11" GL (Песочный)</Russian>
<German>HK416A5 11" GL (Sand)</German>
<German>HK416A5 11" GL (sandfarben)</German>
<Polish>HK416A5 11" GL (piaskowy)</Polish>
<Italian>HK416A5 11" GL (Sabbia)</Italian>
<Hungarian>HK416A5 11" GL (Homok)</Hungarian>
@ -3110,7 +3124,7 @@
<French>HK416A5 14.5" (Beige)</French>
<Spanish>HK416A5 14.5" (Arena)</Spanish>
<Russian>HK416A5 14.5" (Песочный)</Russian>
<German>HK416A5 14.5" (Sand)</German>
<German>HK416A5 14.5" (sandfarben)</German>
<Polish>HK416A5 14.5" (piaskowy)</Polish>
<Italian>HK416A5 14.5" (Sabbia)</Italian>
<Hungarian>HK416A5 14.5" (Homok)</Hungarian>
@ -3158,7 +3172,7 @@
<French>HK417A2 20" (Beige)</French>
<Spanish>HK417A2 20" (Arena)</Spanish>
<Russian>HK417A2 20" (Песочный)</Russian>
<German>HK417A2 20" (Sand)</German>
<German>HK417A2 20" (sandfarben)</German>
<Polish>HK417A2 20" (piaskowy)</Polish>
<Italian>HK417A2 20" (Sabbia)</Italian>
<Hungarian>HK417A2 20" (Homok)</Hungarian>
@ -3216,5 +3230,25 @@
<Chinese>"馬卡洛夫"手槍</Chinese>
<Chinesesimp>"马卡洛夫"手枪</Chinesesimp>
</Key>
<Key ID="STR_ACE_RealisticNames_lsv_01_armed">
<English>Polaris DAGOR (XM312)</English>
<German>Polaris DAGOR (XM312)</German>
</Key>
<Key ID="STR_ACE_RealisticNames_lsv_01_unarmed">
<English>Polaris DAGOR</English>
<German>Polaris DAGOR</German>
</Key>
<Key ID="STR_ACE_RealisticNames_lsv_01_light">
<English>Polaris DAGOR (light)</English>
<German>Polaris DAGOR (leicht)</German>
</Key>
<Key ID="STR_ACE_RealisticNames_lsv_02_armed">
<English>LSV Mk. II (M134)</English>
<German>LSV Mk. II (M134)</German>
</Key>
<Key ID="STR_ACE_RealisticNames_lsv_02_unarmed">
<English>LSV Mk. II</English>
<German>LSV Mk. II</German>
</Key>
</Package>
</Project>

View File

@ -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"]

View File

@ -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);
};

View File

@ -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);
};

View File

@ -16,7 +16,7 @@
*/
#include "script_component.hpp"
if (isNull (GETGVAR(ladder,objNull))) exitWith {};
if (isNull GETGVAR(ladder,objNull)) exitWith {};
params ["_newPlayer", "_oldPlayer"];

View File

@ -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);
};

View File

@ -211,7 +211,7 @@
{% endif %}
{% if include.component == "maverick" %}
`ace_hellfire`
`ace_missileguidance`
{% endif %}
{% if include.component == "medical" %}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 KiB

After

Width:  |  Height:  |  Size: 854 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 854 KiB

After

Width:  |  Height:  |  Size: 854 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 881 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

View File

@ -33,14 +33,16 @@ The Advanced Ballistics module improves internal and external ballistics.
### 2.1 Enabling Advanced Ballistics
#### 2.1.1 Editor
<img src="{{ site.baseurl }}/img/wiki/feature/ab_module.jpg" width="799" height="620" alt="Advanced Ballistics module" />
#### 2.1.1 OPTIONS → GAME → CONFIGURE ADDONS
#### 2.1.2 Settings Framework
- [Settings Framework]({{ site.baseurl }}/wiki/framework/settings-framework.html)
<img src="{{ site.baseurl }}/img/wiki/feature/ab_module1.jpg" width="800" height="484" alt="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.
<img src="{{ site.baseurl }}/img/wiki/feature/ab_ingame.png" width="1400" height="280" alt="Advanced Ballistics vs Default Ballistic" />
### 2.2 Protractor

View File

@ -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
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx2.png" width="1127" height="600" alt="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.
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx3.png" width="1123" height="600" alt="Interpolation" />
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx31.png" width="1123" height="600" alt="Interpolation" />
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx3a.png" width="1123" height="600" alt="Extrapolation" />
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx31a.png" width="1123" height="600" alt="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`.
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx4.png" width="1400" height="600" alt="Zero distance 300m" />
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx41.png" width="1400" height="600" alt="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:
<img src="{{ site.baseurl }}/img/wiki/feature/atragmx5.png" width="1400" height="600" alt="Conversion G7/G1 BC" />
### 3.6 Adding ATragMX Presets
- [ATragMX Framework]({{ site.baseurl }}/wiki/framework/atragmx.html)
## 4. Official Manual and Horus Videos

View File

@ -35,7 +35,11 @@ Please not that the following key combinations are ACE3 default key binds.
### 2.3 Scopes Module
<img src="{{ site.baseurl }}/img/wiki/feature/scope_module.jpg" width="799" height="620" alt="Editor's scopes module" />
<img src="{{ site.baseurl }}/img/wiki/feature/scope_module1.jpg" width="800" height="484" alt="CBA Settings scopes module" />
### 2.4 Simplified Zeroing
<img src="{{ site.baseurl }}/img/wiki/feature/simplified_zeroing.jpg" width="800" height="484" alt="Simplified zeroing" />
## 3. Dependencies

View File

@ -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

View File

@ -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))

View File

@ -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)