mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' of https://github.com/KoffeinFlummi/ACE3 into repair
This commit is contained in:
commit
1a9f8d86e0
Binary file not shown.
Binary file not shown.
BIN
ace_fcs.dll
BIN
ace_fcs.dll
Binary file not shown.
@ -33,6 +33,7 @@ GVAR(AtmosphericDensitySimulationEnabled) = true;
|
||||
GVAR(currentGrid) = 0;
|
||||
GVAR(INIT_MESSAGE_ENABLED) = false;
|
||||
|
||||
/* @TODO: Remove this until verisoning is in sync with cmake/build versioning
|
||||
GVAR(extensionVersion) = ("ace_advanced_ballistics" callExtension "version");
|
||||
GVAR(extensionAvailable) = (GVAR(extensionVersion) == EXTENSION_REQUIRED_VERSION);
|
||||
if (!GVAR(extensionAvailable)) exitWith {
|
||||
@ -42,5 +43,5 @@ if (!GVAR(extensionAvailable)) exitWith {
|
||||
diag_log text "[ACE] ERROR: ace_advanced_ballistics.dll is incompatible";
|
||||
};
|
||||
};
|
||||
|
||||
*/
|
||||
[] call FUNC(initializeTerrainExtension);
|
||||
|
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
* Calculates the air density
|
||||
*
|
||||
* Arguments:
|
||||
* 0: temperature - degrees celcius <NUMBER>
|
||||
* 1: pressure - hPa <NUMBER>
|
||||
* 2: relativeHumidity - value between 0.0 and 1.0 <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* 0: density of air - kg * m^(-3) <NUMBER>
|
||||
*
|
||||
* Return value:
|
||||
* None
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_temperature", "_pressure", "_relativeHumidity"];
|
||||
_temperature = _this select 0; // in C
|
||||
_pressure = _this select 1; // in hPa
|
||||
_relativeHumidity = _this select 2; // as ratio 0-1
|
||||
|
||||
_pressure = _pressure * 100;
|
||||
|
||||
if (_relativeHumidity > 0) then {
|
||||
private ["_pSat", "_vaporPressure", "_partialPressure"];
|
||||
// Saturation vapor pressure calculated according to: http://wahiduddin.net/calc/density_algorithms.htm
|
||||
_pSat = 6.1078 * 10 ^ ((7.5 * _temperature) / (_temperature + 237.3));
|
||||
_vaporPressure = _relativeHumidity * _pSat;
|
||||
_partialPressure = _pressure - _vaporPressure;
|
||||
|
||||
(_partialPressure * DRY_AIR_MOLAR_MASS + _vaporPressure * WATER_VAPOR_MOLAR_MASS) / (UNIVERSAL_GAS_CONSTANT * KELVIN(_temperature))
|
||||
} else {
|
||||
_pressure / (SPECIFIC_GAS_CONSTANT_DRY_AIR * KELVIN(_temperature))
|
||||
};
|
@ -19,7 +19,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleAccessory", "_initSpeedCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef"];
|
||||
private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleAccessory", "_initSpeedCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef"];
|
||||
_unit = _this select 0;
|
||||
_weapon = _this select 1;
|
||||
_mode = _this select 3;
|
||||
|
@ -9,7 +9,7 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
||||
GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657, -0.0006400, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
|
||||
|
||||
["12.7x99mm AMAX" , 860, 100, 0.0612, -0.0003740, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
|
||||
["12.7x99mm" , 853, 100, 0.0623, -0.0006000, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
|
||||
["12.7x99mm" , 900, 100, 0.0623, -0.0006000, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
|
||||
|
||||
["12.7x54mm" , 300, 100, 0.3395, -0.0001400, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
|
||||
|
||||
@ -34,6 +34,7 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
||||
|
||||
["6.5x39mm" , 800, 100, 0.0683, -0.0007850, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
|
||||
["6.5x47mm Lapua" , 800, 100, 0.0682, -0.0007710, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
|
||||
["6.5mm Creedmor" , 840, 100, 0.0637, -0.0006510, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
|
||||
|
||||
["5.56x45mm M855" , 870, 100, 0.0626, -0.0012650, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
|
||||
["5.56x45mm Mk262" , 820, 100, 0.0671, -0.0011250, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
|
||||
|
@ -11,4 +11,4 @@
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.2
|
||||
#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.3
|
||||
|
@ -23,6 +23,8 @@ class CfgAmmo {
|
||||
airFriction=-0.001265;
|
||||
hit=8;
|
||||
typicalSpeed=750;
|
||||
tracerStartTime = 0.073; //M856 tracer burns out to 800m
|
||||
tracerEndTime = 1.579; //Time in seconds calculated with ballistics calculator
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=62;
|
||||
@ -36,7 +38,7 @@ class CfgAmmo {
|
||||
};
|
||||
class ACE_556x45_Ball_Mk262 : B_556x45_Ball {
|
||||
airFriction=-0.001125;
|
||||
caliber=0.6;
|
||||
caliber=0.8;
|
||||
deflecting=18;
|
||||
hit=11;
|
||||
typicalSpeed=836;
|
||||
@ -53,7 +55,7 @@ class CfgAmmo {
|
||||
};
|
||||
class ACE_556x45_Ball_Mk318 : B_556x45_Ball {
|
||||
airFriction=-0.001120;
|
||||
caliber=0.6;
|
||||
caliber=0.8;
|
||||
deflecting=18;
|
||||
hit=9;
|
||||
typicalSpeed=886;
|
||||
@ -68,13 +70,30 @@ class CfgAmmo {
|
||||
ACE_muzzleVelocities[]={780, 886, 950};
|
||||
ACE_barrelLengths[]={10, 15.5, 20};
|
||||
};
|
||||
class ACE_556x45_Ball_M995_AP : B_556x45_Ball {
|
||||
airFriction=-0.001120;
|
||||
caliber=1.6;
|
||||
deflecting=18;
|
||||
hit=6;
|
||||
typicalSpeed=886;
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=46;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.151};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={950, 1030, 1040};
|
||||
ACE_barrelLengths[]={10, 15.5, 20};
|
||||
};
|
||||
class B_556x45_Ball_Tracer_Red;
|
||||
class ACE_B_556x45_Ball_Tracer_Dim: B_556x45_Ball_Tracer_Red {
|
||||
nvgOnly = 1;
|
||||
};
|
||||
class ACE_545x39_Ball_7N6M : B_556x45_Ball {
|
||||
airFriction=-0.001162;
|
||||
caliber=0.5;
|
||||
caliber=0.6;
|
||||
deflecting=18;
|
||||
hit=7;
|
||||
typicalSpeed=880;
|
||||
@ -89,13 +108,15 @@ class CfgAmmo {
|
||||
ACE_muzzleVelocities[]={780, 880, 920};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
};
|
||||
class B_556x45_Ball_Tracer_Yellow;
|
||||
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Yellow {
|
||||
class B_556x45_Ball_Tracer_Green;
|
||||
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Green {
|
||||
airFriction=-0.001162;
|
||||
caliber=0.5;
|
||||
caliber=0.6;
|
||||
deflecting=18;
|
||||
hit=7;
|
||||
typicalSpeed=883;
|
||||
tracerStartTime = 0.073; //7T3M tracer burns out to 850m
|
||||
tracerEndTime = 1.736; //Time in seconds calculated with ballistics calculator
|
||||
ACE_caliber=0.220;
|
||||
ACE_bulletLength=0.85;
|
||||
ACE_bulletMass=49.8;
|
||||
@ -129,10 +150,10 @@ class CfgAmmo {
|
||||
class ACE_65x39_Caseless_green_Tracer_Dim : B_65x39_Caseless_green {
|
||||
nvgOnly = 1;
|
||||
};
|
||||
class ACE_65x47_Ball_Scenar: B_65x39_Caseless
|
||||
{
|
||||
class ACE_65x47_Ball_Scenar: B_65x39_Caseless {
|
||||
airFriction=-0.00078;
|
||||
typicalSpeed=820 ;
|
||||
caliber=0.9;
|
||||
ACE_caliber=0.264;
|
||||
ACE_bulletLength=1.364;
|
||||
ACE_bulletMass=139;
|
||||
@ -144,10 +165,27 @@ class CfgAmmo {
|
||||
ACE_muzzleVelocities[]={730, 760, 790, 820, 830};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26};
|
||||
};
|
||||
class ACE_65_Creedmor_Ball: B_65x39_Caseless {
|
||||
airFriction=-0.000651;
|
||||
typicalSpeed=860 ;
|
||||
caliber=1.1;
|
||||
ACE_caliber=0.264;
|
||||
ACE_bulletLength=1.426;
|
||||
ACE_bulletMass=140;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.317};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={750, 820, 840, 852, 860};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26};
|
||||
};
|
||||
class B_762x51_Ball : BulletBase {
|
||||
airFriction=-0.001035;
|
||||
typicalSpeed=833;
|
||||
hit=9;
|
||||
tracerStartTime = 0.073; //Based on the British L5A1 which burns out to 1000m
|
||||
tracerEndTime = 2.058; //Time in seconds calculated with ballistics calculator
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=146;
|
||||
@ -165,7 +203,7 @@ class CfgAmmo {
|
||||
};
|
||||
class ACE_762x51_Ball_M118LR : B_762x51_Ball {
|
||||
airFriction=-0.0008525;
|
||||
caliber=1.05;
|
||||
caliber=1.8;
|
||||
hit=16;
|
||||
typicalSpeed=790;
|
||||
ACE_caliber=0.308;
|
||||
@ -179,11 +217,27 @@ class CfgAmmo {
|
||||
ACE_muzzleVelocities[]={750, 780, 790, 794};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class ACE_762x51_Ball_Mk316_Mod_0 : B_762x51_Ball {
|
||||
airFriction=-0.0008525;
|
||||
caliber=1.8;
|
||||
hit=16;
|
||||
typicalSpeed=790;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=175;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-5.3, -5.1, -4.6, -4.2, -3.4, -2.6, -1.4, -0.3, 1.4, 3.0, 5.2};
|
||||
ACE_ballisticCoefficients[]={0.243};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={775, 790, 805, 810};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball {
|
||||
airFriction=-0.00103;
|
||||
caliber=0.85;
|
||||
caliber=1.5;
|
||||
hit=14;
|
||||
typicalSpeed=890;
|
||||
typicalSpeed=900;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=130;
|
||||
@ -195,11 +249,27 @@ class CfgAmmo {
|
||||
ACE_muzzleVelocities[]={838, 892, 910};
|
||||
ACE_barrelLengths[]={13, 16, 20};
|
||||
};
|
||||
class ACE_762x51_Ball_M993_AP : B_762x51_Ball {
|
||||
airFriction=-0.00103;
|
||||
caliber=2.2;
|
||||
hit=11;
|
||||
typicalSpeed=930;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=127;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.377};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={875, 910, 930};
|
||||
ACE_barrelLengths[]={13, 16, 20};
|
||||
};
|
||||
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
|
||||
airFriction=-0.000535;
|
||||
caliber=0.5;
|
||||
caliber=1;
|
||||
hit=6;
|
||||
typicalSpeed=790;
|
||||
typicalSpeed=320;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.340;
|
||||
ACE_bulletMass=200;
|
||||
@ -211,9 +281,57 @@ class CfgAmmo {
|
||||
ACE_muzzleVelocities[]={305, 325, 335, 340};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class ACE_30_06_M1_Ball : B_762x51_Ball {
|
||||
airFriction=-0.0009;
|
||||
typicalSpeed=800;
|
||||
caliber=2.0;
|
||||
hit=10;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.21;
|
||||
ACE_bulletMass=174;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.494};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={700, 785, 800, 830, 840};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26};
|
||||
};
|
||||
class ACE_7_Remington_Magnum_Ball : B_762x51_Ball {
|
||||
airFriction=-0.0008;
|
||||
typicalSpeed=820;
|
||||
caliber=2.1;
|
||||
hit=8;
|
||||
ACE_caliber=0.284;
|
||||
ACE_bulletLength=1.529;
|
||||
ACE_bulletMass=180;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.345};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={720, 780, 812, 822, 830};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26};
|
||||
};
|
||||
class ACE_243_Winchester_Ball : B_762x51_Ball {
|
||||
airFriction=-0.00095;
|
||||
typicalSpeed=915;
|
||||
caliber=2.3;
|
||||
hit=6;
|
||||
ACE_caliber=0.243;
|
||||
ACE_bulletLength=1.282;
|
||||
ACE_bulletMass=180;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.278};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={830, 875, 900, 915, 920};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26};
|
||||
};
|
||||
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball {
|
||||
airFriction=-0.000830;
|
||||
caliber=1.08;
|
||||
caliber=1.8;
|
||||
hit=17;
|
||||
typicalSpeed=900;
|
||||
ACE_caliber=0.308;
|
||||
@ -229,7 +347,7 @@ class CfgAmmo {
|
||||
};
|
||||
class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball {
|
||||
airFriction=-0.000815;
|
||||
caliber=1.12;
|
||||
caliber=1.9;
|
||||
hit=18;
|
||||
typicalSpeed=867;
|
||||
ACE_caliber=0.308;
|
||||
@ -245,7 +363,7 @@ class CfgAmmo {
|
||||
};
|
||||
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball {
|
||||
airFriction=-0.00076;
|
||||
caliber=1.15;
|
||||
caliber=2.0;
|
||||
hit=19;
|
||||
typicalSpeed=853;
|
||||
ACE_caliber=0.308;
|
||||
@ -275,7 +393,7 @@ class CfgAmmo {
|
||||
};
|
||||
class ACE_762x54_Ball_7N14 : B_762x51_Ball {
|
||||
airFriction=-0.001023;
|
||||
caliber=0.95;
|
||||
caliber=1.5;
|
||||
hit=15;
|
||||
typicalSpeed=820;
|
||||
ACE_caliber=0.312;
|
||||
@ -292,9 +410,11 @@ class CfgAmmo {
|
||||
class B_762x54_Tracer_Green;
|
||||
class ACE_762x54_Ball_7T2 : B_762x54_Tracer_Green {
|
||||
airFriction=-0.001023;
|
||||
caliber=0.9;
|
||||
caliber=1.5;
|
||||
hit=15;
|
||||
typicalSpeed=800;
|
||||
tracerStartTime = 0.073; //Based on the 7T2 which burns three seconds
|
||||
tracerEndTime = 3;
|
||||
ACE_caliber=0.312;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=149;
|
||||
@ -308,7 +428,7 @@ class CfgAmmo {
|
||||
};
|
||||
class ACE_762x35_Ball : B_762x51_Ball {
|
||||
airFriction=-0.000821;
|
||||
caliber=0.9;
|
||||
caliber=1.5;
|
||||
hit=11;
|
||||
typicalSpeed=790;
|
||||
ACE_caliber=0.308;
|
||||
@ -325,6 +445,7 @@ class CfgAmmo {
|
||||
class ACE_762x39_Ball : B_762x51_Ball {
|
||||
airFriction=-0.0015168;
|
||||
hit=12;
|
||||
caliber=1.5;
|
||||
typicalSpeed=716;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.14;
|
||||
@ -337,10 +458,13 @@ class CfgAmmo {
|
||||
ACE_muzzleVelocities[]={650, 716, 750};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
};
|
||||
class ACE_762x39_Ball_57N231P : B_762x51_Tracer_Yellow {
|
||||
class ACE_762x39_Ball_57N231P : B_762x54_Tracer_Green {
|
||||
airFriction=-0.0015168;
|
||||
hit=12;
|
||||
caliber=1.5;
|
||||
typicalSpeed=716;
|
||||
tracerStartTime = 0.073; //57N231P tracer burns out to 800m
|
||||
tracerEndTime = 2.082; //Time in seconds calculated with ballistics calculator
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=117;
|
||||
@ -430,6 +554,7 @@ class CfgAmmo {
|
||||
class ACE_303_Ball : ACE_762x51_Ball_M118LR {
|
||||
airFriction=-0.00083;
|
||||
typicalSpeed=761;
|
||||
caliber=2.0;
|
||||
ACE_caliber=0.311;
|
||||
ACE_bulletLength=1.227;
|
||||
ACE_bulletMass=174;
|
||||
@ -517,7 +642,6 @@ class CfgAmmo {
|
||||
class ACE_338_Ball : B_338_Ball {
|
||||
timeToLive=10;
|
||||
airFriction=-0.000535;
|
||||
caliber=1.55;
|
||||
typicalSpeed=826;
|
||||
ACE_caliber=0.338;
|
||||
ACE_bulletLength=1.70;
|
||||
@ -533,7 +657,7 @@ class CfgAmmo {
|
||||
class ACE_338_Ball_API526 : B_338_Ball {
|
||||
timeToLive=10;
|
||||
airFriction=-0.000673;
|
||||
caliber=2.4;
|
||||
caliber=2.8;
|
||||
typicalSpeed=826;
|
||||
ACE_caliber=0.338;
|
||||
ACE_bulletLength=1.535;
|
||||
@ -563,7 +687,7 @@ class CfgAmmo {
|
||||
class B_127x99_Ball : BulletBase {
|
||||
timeToLive=10;
|
||||
airFriction=-0.0006;
|
||||
typicalSpeed=853;
|
||||
typicalSpeed=900;
|
||||
ACE_caliber=0.510;
|
||||
ACE_bulletLength=2.310;
|
||||
ACE_bulletMass=647;
|
||||
@ -572,13 +696,31 @@ class CfgAmmo {
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={853};
|
||||
ACE_muzzleVelocities[]={900};
|
||||
ACE_barrelLengths[]={29};
|
||||
};
|
||||
class ACE_127x99_API : BulletBase {
|
||||
timeToLive=10;
|
||||
airFriction=-0.0006;
|
||||
typicalSpeed=900;
|
||||
hit=25;
|
||||
caliber=4.0;
|
||||
ACE_caliber=0.510;
|
||||
ACE_bulletLength=2.310;
|
||||
ACE_bulletMass=648;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.670};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={900};
|
||||
ACE_barrelLengths[]={29};
|
||||
};
|
||||
class ACE_127x99_Ball_AMAX : B_127x99_Ball {
|
||||
timeToLive=10;
|
||||
airFriction=-0.000374;
|
||||
typicalSpeed=860;
|
||||
caliber=3.0;
|
||||
ACE_caliber=0.510;
|
||||
ACE_bulletLength=2.540;
|
||||
ACE_bulletMass=750;
|
||||
|
@ -42,13 +42,21 @@ class CfgMagazines {
|
||||
class ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim: 30Rnd_65x39_caseless_green_mag_Tracer {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_65x39_Caseless_green_Tracer_Dim";
|
||||
displayName = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimName";
|
||||
displayNameShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimNameShort";
|
||||
descriptionShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimDescription";
|
||||
displayName = "$STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimName";
|
||||
displayNameShort = "$STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimNameShort";
|
||||
descriptionShort = "$STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimDescription";
|
||||
};
|
||||
|
||||
class 30Rnd_556x45_Stanag: CA_Magazine {
|
||||
};
|
||||
class ACE_30Rnd_556x45_Stanag_M995_AP_mag: 30Rnd_556x45_Stanag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_556x45_Ball_M995_AP";
|
||||
displayName = "$STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Name";
|
||||
displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Description";
|
||||
initSpeed = 1046;
|
||||
};
|
||||
class ACE_30Rnd_556x45_Stanag_Mk262_mag: 30Rnd_556x45_Stanag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_556x45_Ball_Mk262";
|
||||
@ -123,6 +131,15 @@ class CfgMagazines {
|
||||
descriptionShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Description";
|
||||
initSpeed = 780;
|
||||
};
|
||||
class ACE_10Rnd_762x51_Mk316_Mod_0_Mag: 10Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x51_Ball_Mk316_Mod_0";
|
||||
count = 10;
|
||||
displayName = "$STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Name";
|
||||
displayNameShort = "$STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Description";
|
||||
initSpeed = 790;
|
||||
};
|
||||
class ACE_10Rnd_762x51_Mk319_Mod_0_Mag: 10Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x51_Ball_Mk319_Mod_0";
|
||||
@ -132,6 +149,15 @@ class CfgMagazines {
|
||||
descriptionShort = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description";
|
||||
initSpeed = 900;
|
||||
};
|
||||
class ACE_10Rnd_762x51_M993_AP_Mag: 10Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x51_Ball_M993_AP";
|
||||
count = 10;
|
||||
displayName = "$STR_ACE_10Rnd_762x51_M993_AP_Mag_Name";
|
||||
displayNameShort = "$STR_ACE_10Rnd_762x51_M993_AP_Mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_10Rnd_762x51_M993_AP_Mag_Description";
|
||||
initSpeed = 920;
|
||||
};
|
||||
class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x51_Ball_M118LR";
|
||||
@ -140,6 +166,15 @@ class CfgMagazines {
|
||||
descriptionShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Description";
|
||||
initSpeed = 780;
|
||||
};
|
||||
class ACE_20Rnd_762x51_Mk316_Mod_0_Mag: 20Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x51_Ball_Mk316_Mod_0";
|
||||
count = 20;
|
||||
displayName = "$STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Name";
|
||||
displayNameShort = "$STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Description";
|
||||
initSpeed = 790;
|
||||
};
|
||||
class ACE_20Rnd_762x51_Mk319_Mod_0_Mag: 20Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x51_Ball_Mk319_Mod_0";
|
||||
@ -148,6 +183,15 @@ class CfgMagazines {
|
||||
descriptionShort = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description";
|
||||
initSpeed = 900;
|
||||
};
|
||||
class ACE_20Rnd_762x51_M993_AP_Mag: 20Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x51_Ball_M993_AP";
|
||||
count = 20;
|
||||
displayName = "$STR_ACE_20Rnd_762x51_M993_AP_Mag_Name";
|
||||
displayNameShort = "$STR_ACE_20Rnd_762x51_M993_AP_Mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_20Rnd_762x51_M993_AP_Mag_Description";
|
||||
initSpeed = 920;
|
||||
};
|
||||
class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_762x67_Ball_Mk248_Mod_0";
|
||||
@ -179,6 +223,13 @@ class CfgMagazines {
|
||||
displayNameShort = "$STR_ACE_30Rnd_65x47_Scenar_mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_30Rnd_65x47_Scenar_mag_Description";
|
||||
};
|
||||
class ACE_30Rnd_65_Creedmor_mag: 30Rnd_65x39_caseless_mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_65_Creedmor_Ball";
|
||||
displayName = "$STR_ACE_30Rnd_65_Creedmor_mag_Name";
|
||||
displayNameShort = "$STR_ACE_30Rnd_65_Creedmor_mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_30Rnd_65_Creedmor_mag_Description";
|
||||
};
|
||||
class 10Rnd_338_Mag;
|
||||
class ACE_10Rnd_338_300gr_HPBT_Mag: 10Rnd_338_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
@ -204,7 +255,15 @@ class CfgMagazines {
|
||||
displayName = "$STR_ACE_5Rnd_127x99_Mag_Name";
|
||||
displayNameShort = "$STR_ACE_5Rnd_127x99_Mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_5Rnd_127x99_Mag_Description";
|
||||
initSpeed = 853;
|
||||
initSpeed = 900;
|
||||
};
|
||||
class ACE_5Rnd_127x99_API_Mag: 5Rnd_127x108_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
ammo = "ACE_127x99_API";
|
||||
displayName = "$STR_ACE_5Rnd_127x99_API_Mag_Name";
|
||||
displayNameShort = "$STR_ACE_5Rnd_127x99_API_Mag_NameShort";
|
||||
descriptionShort = "$STR_ACE_5Rnd_127x99_API_Mag_Description";
|
||||
initSpeed = 900;
|
||||
};
|
||||
class ACE_5Rnd_127x99_AMAX_Mag: 5Rnd_127x108_Mag {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
|
@ -14,6 +14,7 @@ class CfgVehicles {
|
||||
class Box_NATO_Wps_F: NATO_Box_Base {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
};
|
||||
};
|
||||
|
||||
@ -26,6 +27,7 @@ class CfgVehicles {
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
|
||||
};
|
||||
};
|
||||
@ -33,14 +35,18 @@ class CfgVehicles {
|
||||
class Box_NATO_Ammo_F: NATO_Box_Base {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
|
||||
};
|
||||
};
|
||||
@ -49,13 +55,18 @@ class CfgVehicles {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M993_AP_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M993_AP_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
|
||||
};
|
||||
};
|
||||
@ -64,8 +75,11 @@ class CfgVehicles {
|
||||
class B_supplyCrate_F: ReammoBox_F {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
|
||||
@ -76,6 +90,7 @@ class CfgVehicles {
|
||||
class Box_East_Wps_F: EAST_Box_Base {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
|
||||
};
|
||||
};
|
||||
@ -85,6 +100,7 @@ class CfgVehicles {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
|
||||
};
|
||||
};
|
||||
@ -92,6 +108,7 @@ class CfgVehicles {
|
||||
class Box_East_Ammo_F: EAST_Box_Base {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
|
||||
};
|
||||
};
|
||||
@ -99,7 +116,7 @@ class CfgVehicles {
|
||||
class Box_East_Support_F: EAST_Box_Base {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,6);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
|
||||
};
|
||||
};
|
||||
@ -107,6 +124,7 @@ class CfgVehicles {
|
||||
class IND_Box_Base;
|
||||
class Box_IND_Wps_F: IND_Box_Base {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_M995_AP_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
|
||||
};
|
||||
@ -120,6 +138,7 @@ class CfgVehicles {
|
||||
|
||||
class Box_IND_Ammo_F: IND_Box_Base {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_M995_AP_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
|
||||
};
|
||||
@ -128,6 +147,7 @@ class CfgVehicles {
|
||||
class FIA_Box_Base_F;
|
||||
class Box_FIA_Wps_F: FIA_Box_Base_F {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_M995_AP_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
|
||||
};
|
||||
@ -135,6 +155,7 @@ class CfgVehicles {
|
||||
|
||||
class Box_FIA_Ammo_F: FIA_Box_Base_F {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_M995_AP_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
|
||||
};
|
||||
@ -142,6 +163,7 @@ class CfgVehicles {
|
||||
|
||||
class I_supplyCrate_F: B_supplyCrate_F {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_M995_AP_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
|
||||
};
|
||||
@ -149,6 +171,7 @@ class CfgVehicles {
|
||||
|
||||
class IG_supplyCrate_F: ReammoBox_F {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_M995_AP_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
|
||||
};
|
||||
@ -157,6 +180,7 @@ class CfgVehicles {
|
||||
class C_supplyCrate_F: ReammoBox_F {
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
};
|
||||
};
|
||||
|
||||
@ -168,8 +192,12 @@ class CfgVehicles {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
class TransportMagazines {
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M993_AP_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M993_AP_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
|
||||
@ -177,6 +205,7 @@ class CfgVehicles {
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_M995_AP_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,4);
|
||||
@ -185,9 +214,11 @@ class CfgVehicles {
|
||||
MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
|
||||
MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_30Rnd_65_Creedmor_mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
|
||||
};
|
||||
};
|
||||
|
@ -88,7 +88,8 @@ class CfgWeapons {
|
||||
"30Rnd_65x39_caseless_mag",
|
||||
"30Rnd_65x39_caseless_mag_Tracer",
|
||||
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
|
||||
"ACE_30Rnd_65x47_Scenar_mag"
|
||||
"ACE_30Rnd_65x47_Scenar_mag",
|
||||
"ACE_30Rnd_65_Creedmor_mag"
|
||||
};
|
||||
initSpeed = -1.018;
|
||||
ACE_barrelTwist=9;
|
||||
@ -381,6 +382,7 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
@ -400,6 +402,7 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
@ -414,6 +417,7 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
@ -428,6 +432,7 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
@ -448,6 +453,7 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
@ -462,6 +468,7 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
@ -476,6 +483,7 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
@ -502,8 +510,10 @@ class CfgWeapons {
|
||||
magazines[] = {
|
||||
"20Rnd_762x51_Mag",
|
||||
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
|
||||
"ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
|
||||
"ACE_20Rnd_762x51_M118LR_Mag",
|
||||
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
|
||||
"ACE_20Rnd_762x51_M993_AP_Mag",
|
||||
"ACE_20Rnd_762x51_Mag_SD"
|
||||
};
|
||||
initSpeed = -0.9724;
|
||||
@ -527,6 +537,7 @@ class CfgWeapons {
|
||||
"5Rnd_127x108_Mag",
|
||||
"5Rnd_127x108_APDS_Mag",
|
||||
"ACE_5Rnd_127x99_Mag",
|
||||
"ACE_5Rnd_127x99_API_Mag",
|
||||
"ACE_5Rnd_127x99_AMAX_Mag"
|
||||
};
|
||||
initSpeed = -1.0;
|
||||
@ -550,8 +561,10 @@ class CfgWeapons {
|
||||
magazines[] = {
|
||||
"20Rnd_762x51_Mag",
|
||||
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
|
||||
"ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
|
||||
"ACE_20Rnd_762x51_M118LR_Mag",
|
||||
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
|
||||
"ACE_20Rnd_762x51_M993_AP_Mag",
|
||||
"ACE_20Rnd_762x51_Mag_SD"
|
||||
};
|
||||
initSpeed = -0.9843;
|
||||
@ -572,8 +585,10 @@ class CfgWeapons {
|
||||
magazines[] = {
|
||||
"20Rnd_762x51_Mag",
|
||||
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
|
||||
"ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
|
||||
"ACE_20Rnd_762x51_M118LR_Mag",
|
||||
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
|
||||
"ACE_20Rnd_762x51_M993_AP_Mag",
|
||||
"ACE_20Rnd_762x51_Mag_SD"
|
||||
};
|
||||
initSpeed = -0.9916;
|
||||
|
@ -256,42 +256,6 @@
|
||||
<Italian>Calibro: 5.56x45 mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
|
||||
<Russian>Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_mag_APName">
|
||||
<English>5.56mm 30Rnd AP Mag</English>
|
||||
<Hungarian>5,56 mm Páncéltörő 30-as Tár</Hungarian>
|
||||
<German>5,56 mm 30-Schuss-Magazin AP</German>
|
||||
<Spanish>Cargador de 30 balas AP de 5,56mm</Spanish>
|
||||
<French>Ch. 5,56mm 30Cps AP</French>
|
||||
<Polish>Magazynek 5,56mm 30rd AP</Polish>
|
||||
<Czech>5.56mm 30ks AP Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis AP de 5,56mm</Portuguese>
|
||||
<Italian>Caricatore 5.56mm 30Rnd AP</Italian>
|
||||
<Russian>Магазин из 30-ти 5,56 мм бронебойных</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_mag_APNameShort">
|
||||
<English>5.56mm AP</English>
|
||||
<Hungarian>5,56 mm Páncéltörő</Hungarian>
|
||||
<German>5,56mm AP</German>
|
||||
<Spanish>5,56mm AP</Spanish>
|
||||
<French>5,56mm AP</French>
|
||||
<Polish>5,56mm AP</Polish>
|
||||
<Czech>5.56mm AP</Czech>
|
||||
<Portuguese>5,56mm AP</Portuguese>
|
||||
<Italian>5.56mm AP</Italian>
|
||||
<Russian>5,56 мм бронебойные</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_mag_APDescription">
|
||||
<English>Caliber: 5.56x45 mm AP<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
|
||||
<Hungarian>Kaliber: 5,56x45 mm Páncéltörő<br />Lövedékek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
|
||||
<German>Kaliber: 5,56x45 mm AP<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
|
||||
<Spanish>Calibre: 5,56x45 mm AP<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
|
||||
<French>Calibre: 5,56x45 mm AP<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
|
||||
<Polish>Kaliber: 5,56x45 mm AP<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
|
||||
<Czech>Ráže: 5.56x45 mm AP<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
|
||||
<Portuguese>Calibre: 5,56x45 mm AP<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
|
||||
<Italian>Calibro: 5.56x45 mm AP<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
|
||||
<Russian>Калибр: 5,56x45 мм бронебойные<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Russian>
|
||||
</Key>
|
||||
<!-- 7.62x51mm -->
|
||||
<Key ID="STR_ACE_20Rnd_762x51_mag_TracerName">
|
||||
<English>7.62mm 20rnd Tracer Mag</English>
|
||||
@ -401,42 +365,6 @@
|
||||
<Italian>Calibro: 7.62x51 mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_mag_APName">
|
||||
<English>7.62mm 20Rnd AP Mag</English>
|
||||
<Hungarian>7,62 mm Páncéltörő 20-as Tár</Hungarian>
|
||||
<German>7,62 mm 20-Schuss-Magazin AP</German>
|
||||
<Spanish>Cargador de 20 balas AP de 7,62mm</Spanish>
|
||||
<French>Ch. 7,62mm 20Cps AP</French>
|
||||
<Polish>Magazynek 7,62mm 20rd AP</Polish>
|
||||
<Czech>7.62mm 20ks AP Zásobník</Czech>
|
||||
<Portuguese>Carregador de 20 projéteis AP de 7,62mm</Portuguese>
|
||||
<Italian>Caricatore 7.62mm 20Rnd AP</Italian>
|
||||
<Russian>Магазин из 20-ти 7,62 мм бронебойных</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_mag_APNameShort">
|
||||
<English>7.62mm AP</English>
|
||||
<Hungarian>7,62 mm Páncéltörő</Hungarian>
|
||||
<German>7,62mm AP</German>
|
||||
<Spanish>7,62mm AP</Spanish>
|
||||
<French>7,62mm AP</French>
|
||||
<Polish>7,62mm AP</Polish>
|
||||
<Czech>7.62mm AP</Czech>
|
||||
<Portuguese>7,62mm AP</Portuguese>
|
||||
<Italian>7.62mm AP</Italian>
|
||||
<Russian>7,62 мм бронебойные</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_mag_APDescription">
|
||||
<English>Caliber: 7.62x51 mm AP<br />Rounds: 20<br />Used in: Mk18 ABR</English>
|
||||
<Hungarian>Kaliber: 7,62x51 mm Páncéltörő<br />Lövedékek: 20<br />Használható: Mk18 ABR</Hungarian>
|
||||
<German>Kaliber: 7,62x51 mm AP<br />Patronen: 20<br />Eingesetzt von: EBR</German>
|
||||
<Spanish>Calibre: 7,62x51 mm AP<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51 mm AP<br />Cartouches: 20<br />Utilisé dans: EBR</French>
|
||||
<Polish>Kaliber: 7,62x51 mm AP<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51 mm AP<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51 mm AP<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51 mm AP<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR</Russian>
|
||||
</Key>
|
||||
<!-- .338 Norma Magnum -->
|
||||
<Key ID="STR_ACE_130Rnd_338_Mag_TracerName">
|
||||
<English>.338 NM 130Rnd Tracer Belt</English>
|
||||
@ -564,31 +492,6 @@
|
||||
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APName">
|
||||
<English>9.3mm 10Rnd AP Mag</English>
|
||||
<German>9,3mm 10-Schuss-Magazin Hartkern</German>
|
||||
<Polish>Magazynek 9,3mm 10rd AP</Polish>
|
||||
<French>Chargeur 9.3mm 10Cps AP</French>
|
||||
<Spanish>Cargador de 10 balas AP de 9.3mm</Spanish>
|
||||
<Russian>Магазин из 10-ти 9,3 мм бронебойных</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APNameShort">
|
||||
<English>9.3mm AP</English>
|
||||
<German>9,3mm AP</German>
|
||||
<Polish>9,3mm AP</Polish>
|
||||
<Czech>9.3mm AP</Czech>
|
||||
<French>9.3mm AP</French>
|
||||
<Spanish>9.3mm AP</Spanish>
|
||||
<Russian>9,3 мм бронебойные</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APDescription">
|
||||
<English>Caliber: 9.3x64mm AP<br />Rounds: 10<br />Used in: Cyrus</English>
|
||||
<German>Kaliber: 9,3x64mm Hartkern<br />Schuss: 10<br />Verwendet für: Cyrus</German>
|
||||
<Polish>Kaliber: 9,3x64 mm AP<br />Pociski: 10<br />Używany w: Cyrus</Polish>
|
||||
<French>Calibre: 9.3x64mm AP<br />Cartouches: 10<br />Utilisé dans: Cyrus</French>
|
||||
<Spanish>Calibre: 9.3x64mm AP<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм бронебойные<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||
</Key>
|
||||
<!-- 9.3x64mm 150Rnd Belt-->
|
||||
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerName">
|
||||
<English>9.3mm 150Rnd Tracer Belt</English>
|
||||
@ -743,7 +646,7 @@
|
||||
<Russian>6,5 мм ИК-трассирующие</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription">
|
||||
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
|
||||
<English>6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW</English>
|
||||
<Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish>
|
||||
<French>Chargeur 6.5mm 100Rnd Traçante IR-DIM</French>
|
||||
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
|
||||
@ -764,7 +667,7 @@
|
||||
<Russian>6,5 мм ИК-трассирующие</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription">
|
||||
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
|
||||
<English>6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG</English>
|
||||
<Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish>
|
||||
<French>Bande 6.5mm 200Cps Traçante IR-DIM</French>
|
||||
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
|
||||
@ -781,7 +684,7 @@
|
||||
<English>5.56mm Mk262</English>
|
||||
<Polish>5,56mm Mk262</Polish>
|
||||
<French>5.56mm Mk262</French>
|
||||
<Spanish>5.56mm (Mk262)</Spanish>
|
||||
<Spanish>5.56mm Mk262</Spanish>
|
||||
<Russian>5,56 мм Mk262</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description">
|
||||
@ -793,16 +696,16 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name">
|
||||
<English>5.56mm 30Rnd Mag (Mk318)</English>
|
||||
<Polish>Magazynek 5,56mm 30rd Mk318</Polish>
|
||||
<Polish>Magazynek 5,56mm 30rd (Mk318)</Polish>
|
||||
<French>5.56mm 30Cps (Mk318)</French>
|
||||
<Spanish>Cargador de 30 balas de 5.56mm (Mk318)</Spanish>
|
||||
<Russian>Магазин из 30-ти 5.56 мм Mk318</Russian>
|
||||
<Russian>Магазин из 30-ти 5.56 мм (Mk318)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort">
|
||||
<English>5.56mm Mk318</English>
|
||||
<Polish>5,56mm Mk318</Polish>
|
||||
<French>5.56mm Mk318</French>
|
||||
<Spanish>5.56mm (Mk318)</Spanish>
|
||||
<Spanish>5.56mm Mk318</Spanish>
|
||||
<Russian>5.56 мм Mk318</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description">
|
||||
@ -812,6 +715,27 @@
|
||||
<Spanish>Calibre: 5.56x45 mm NATO (Mk318)<br />Balas: 30</Spanish>
|
||||
<Russian>Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Name">
|
||||
<English>5.56mm 30Rnd Mag (M995 AP)</English>
|
||||
<Polish>Magazynek 5,56mm 30rd (M995 AP)</Polish>
|
||||
<French>5.56mm 30Cps (M995 AP)</French>
|
||||
<Spanish>Cargador de 30 balas de 5.56mm (M995 AP)</Spanish>
|
||||
<Russian>Магазин из 30-ти 5.56 мм (M995 AP)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_NameShort">
|
||||
<English>5.56mm AP</English>
|
||||
<Polish>5,56mm AP</Polish>
|
||||
<French>5.56mm AP</French>
|
||||
<Spanish>5.56mm AP</Spanish>
|
||||
<Russian>5.56 мм AP</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Description">
|
||||
<English>Caliber: 5.56x45 mm NATO (M995 AP)<br />Rounds: 30</English>
|
||||
<Polish>Kaliber: 5,56x45 mm NATO (M995 AP)<br />Pociski: 30</Polish>
|
||||
<French>Calibre: 5.56x45 mm NATO (M995 AP)<br />Cartouches: 30</French>
|
||||
<Spanish>Calibre: 5.56x45 mm NATO (M995 AP)<br />Balas: 30</Spanish>
|
||||
<Russian>Калибр: 5,56x45 мм NATO (M995 AP)<br />Патронов: 30</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (M118LR)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (M118LR)</Polish>
|
||||
@ -854,6 +778,48 @@
|
||||
<Spanish>Calibre: 7.62x51 mm NATO (M118LR)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 20</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (Mk316 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (Mk316 Mod 0)</Polish>
|
||||
<French>7.62mm 10Cps (Mk316 Mod 0)</French>
|
||||
<Spanish>Cargador de 10 balas de 7.62mm (Mk316 Mod 0)</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм (Mk316 Mod 0)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
|
||||
<English>7.62mm Mk316</English>
|
||||
<Polish>7,62mm Mk316</Polish>
|
||||
<French>7.62mm Mk316</French>
|
||||
<Spanish>7.62mm Mk316</Spanish>
|
||||
<Russian>7,62 мм Mk316</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Description">
|
||||
<English>Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 10</English>
|
||||
<Polish>Kaliber: 7,62x51 mm NATO (Mk316 Mod 0)<br />Pociski: 10</Polish>
|
||||
<French>Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 10</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (Mk316 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (Mk316 Mod 0)</Polish>
|
||||
<French>7.62mm 20Cps (Mk316 Mod 0)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (Mk316 Mod 0)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (Mk316 Mod 0)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
|
||||
<English>7.62mm Mk316</English>
|
||||
<Polish>7,62mm Mk316</Polish>
|
||||
<French>7.62mm Mk316</French>
|
||||
<Spanish>7.62mm Mk316</Spanish>
|
||||
<Russian>7,62 мм Mk316</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Description">
|
||||
<English>Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x51 mm NATO (Mk316 Mod 0)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (Mk319 Mod 0)</Polish>
|
||||
@ -896,6 +862,48 @@
|
||||
<Spanish>Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (M993 AP)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (M993 AP)</Polish>
|
||||
<French>7.62mm 10Cps (M993 AP)</French>
|
||||
<Spanish>Cargador de 10 balas de 7.62mm (M993 AP)</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм (M993 AP)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_NameShort">
|
||||
<English>7.62mm AP</English>
|
||||
<Polish>7,62mm AP</Polish>
|
||||
<French>7.62mm AP</French>
|
||||
<Spanish>7.62mm AP</Spanish>
|
||||
<Russian>7,62mm AP</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Description">
|
||||
<English>Caliber: 7.62x51 mm NATO (M993 AP)<br />Rounds: 10</English>
|
||||
<Polish>Kaliber: 7,62x51 mm NATO (M993 AP)<br />Pociski: 10</Polish>
|
||||
<French>Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 10</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 10</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (M993 AP)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (M993 AP)</Polish>
|
||||
<French>7.62mm 20Cps (M993 AP)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (M993 AP)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (M993 AP)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_NameShort">
|
||||
<English>7.62mm AP</English>
|
||||
<Polish>7,62mm AP</Polish>
|
||||
<French>7.62mm AP</French>
|
||||
<Spanish>7.62mm AP</Spanish>
|
||||
<Russian>7,62 мм AP</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Description">
|
||||
<English>Caliber: 7.62x51 mm NATO (M993 AP)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x51 mm NATO (M993 AP)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 20</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (Mk248 Mod 0)</Polish>
|
||||
@ -967,19 +975,32 @@
|
||||
<Russian>Магазин из 30-ти 6,5x47 мм (HPBT Scenar)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort">
|
||||
<English>6.5mm Scenar</English>
|
||||
<French>6.5mm Scenar</French>
|
||||
<Spanish>6.5mm Scenar</Spanish>
|
||||
<Polish>6,5mm Scenar</Polish>
|
||||
<Russian>6,5 мм Scenar</Russian>
|
||||
<English>6.5mm Lapua</English>
|
||||
<French>6.5mm Lapua</French>
|
||||
<Spanish>6.5mm Lapua</Spanish>
|
||||
<Polish>6,5mm Lapua</Polish>
|
||||
<Russian>6,5 мм Lapua</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description">
|
||||
<English>Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30</English>
|
||||
<English>Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM</English>
|
||||
<French>Calibre: 6.5x47mm (HPBT Scenar)<br />Cartouches: 30</French>
|
||||
<Spanish>Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 30</Spanish>
|
||||
<Polish>Kaliber: 6,5x47 mm (HPBT Scenar)<br />Pociski: 30</Polish>
|
||||
<Russian>Калибр: 6,5x47 мм (HPBT Scenar)<br />Патронов: 30</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Name">
|
||||
<English>6.5mm Creedmor 30Rnd Mag</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_NameShort">
|
||||
<English>6.5mm CM</English>
|
||||
<French>6.5mm CM</French>
|
||||
<Spanish>6.5mm CM</Spanish>
|
||||
<Polish>6,5mm CM</Polish>
|
||||
<Russian>6,5 мм CM</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Description">
|
||||
<English>Caliber: 6.5mm Creedmor<br />Rounds: 30<br />Used in: MXM</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name">
|
||||
<English>.338 10Rnd Mag (300gr Sierra MatchKing HPBT)</English>
|
||||
<French>.338 10 Cps (300gr Sierra MatchKing HPBT)</French>
|
||||
@ -1043,6 +1064,24 @@
|
||||
<Polish>Kaliber: 12,7x99 mm<br />Pociski: 5</Polish>
|
||||
<Russian>Калибр: 12,7x99 мм<br />Патронов: 5</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_5Rnd_127x99_API_Mag_Name">
|
||||
<English>12.7x99mm API 5Rnd Mag</English>
|
||||
<French>12.7x99mm API 5Cps</French>
|
||||
<Spanish>Cargador de 5 balas de 12.7x99mm API</Spanish>
|
||||
<Polish>Magazynek 12,7x99mm API 5rd</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_5Rnd_127x99_API_Mag_NameShort">
|
||||
<English>12.7mm API</English>
|
||||
<French>12.7mm API</French>
|
||||
<Spanish>12.7mm API</Spanish>
|
||||
<Polish>12,7mm API</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_5Rnd_127x99_API_Mag_Description">
|
||||
<English>Caliber: 12.7x99mm API<br />Rounds: 5</English>
|
||||
<French>Calibre: 12.7x99mm API<br />Cartouches: 5</French>
|
||||
<Spanish>Calibre: 12.7x99mm API<br />Balas: 5</Spanish>
|
||||
<Polish>Kaliber: 12,7x99 mm API<br />Pociski: 5</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name">
|
||||
<English>12.7x99mm 5Rnd Mag (AMAX)</English>
|
||||
<French>12.7x99mm 5Rnd Mag (AMAX)</French>
|
||||
|
@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// a static weapon has to be empty for dragging
|
||||
if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false};
|
||||
|
||||
alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4})}
|
||||
alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})}
|
||||
|
@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// a static weapon has to be empty for dragging
|
||||
if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false};
|
||||
|
||||
alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4})};
|
||||
alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})};
|
@ -76,8 +76,18 @@ class CfgAmmo {
|
||||
};
|
||||
|
||||
class ACE_G_40mm_HEDP: G_40mm_HE {
|
||||
ACE_FRAG_CLASSES[] = {"ACE_frag_tiny_HD"};
|
||||
ACE_FRAG_METAL = 200;
|
||||
ACE_FRAG_CHARGE = 45;
|
||||
ACE_FRAG_GURNEY_C = 2830;
|
||||
ACE_FRAG_GURNEY_K = 3/5;
|
||||
};
|
||||
class ACE_G_40mm_HE: ACE_G_40mm_HEDP {
|
||||
ACE_FRAG_CLASSES[] = {"ACE_frag_tiny_HD"};
|
||||
ACE_FRAG_METAL = 200;
|
||||
ACE_FRAG_CHARGE = 32;
|
||||
ACE_FRAG_GURNEY_C = 2700;
|
||||
ACE_FRAG_GURNEY_K = 3/5;
|
||||
};
|
||||
class ACE_G_40mm_Practice: ACE_G_40mm_HE {
|
||||
ACE_FRAG_SKIP = 1;
|
||||
|
@ -50,13 +50,13 @@ class ACE_Settings {
|
||||
displayName = "$STR_ACE_Interact_Menu_ColorTextMin";
|
||||
};
|
||||
class GVAR(colorShadowMax) {
|
||||
value[] = {1, 1, 1, 1};
|
||||
value[] = {0, 0, 0, 1};
|
||||
typeName = "COLOR";
|
||||
isClientSettable = 1;
|
||||
displayName = "$STR_ACE_Interact_Menu_ColorShadowMax";
|
||||
};
|
||||
class GVAR(colorShadowMin) {
|
||||
value[] = {1, 1, 1, 0.25};
|
||||
value[] = {0, 0, 0, 0.25};
|
||||
typeName = "COLOR";
|
||||
isClientSettable = 1;
|
||||
displayName = "$STR_ACE_Interact_Menu_ColorShadowMin";
|
||||
|
@ -41,9 +41,21 @@ if((count _this) > 2) then {
|
||||
};
|
||||
};
|
||||
|
||||
// For non-self actions, exit if the action is too far away
|
||||
// For non-self actions, exit if the action is too far away or ocluded
|
||||
if (GVAR(openedMenuType) == 0 && vehicle ACE_player == ACE_player &&
|
||||
{(ACE_player modelToWorldVisual (ACE_player selectionPosition "pilot")) distance _pos >= _distance}) exitWith {false};
|
||||
{
|
||||
private ["_headPos","_actualDistance"];
|
||||
_headPos = ACE_player modelToWorldVisual (ACE_player selectionPosition "pilot");
|
||||
_actualDistance = _headPos distance _pos;
|
||||
|
||||
if (_actualDistance > _distance) exitWith {true};
|
||||
|
||||
if (_distance > 1.0) exitWith {
|
||||
// If distance to action is greater than 1.0 m, check LOS
|
||||
_line = [_headPos call EFUNC(common,positionToASL), _pos call EFUNC(common,positionToASL), _object, ACE_player];
|
||||
lineIntersects _line
|
||||
};
|
||||
}) exitWith {false};
|
||||
|
||||
// Exit if the action is behind you
|
||||
_sPos = if (count _pos != 2) then {
|
||||
|
@ -27,7 +27,7 @@ class CfgVehicles {
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
displayName = "$STR_ACE_Interaction_MainAction";
|
||||
distance = 5;
|
||||
distance = 4;
|
||||
condition = QUOTE(true);
|
||||
statement = "";
|
||||
icon = "\a3\ui_f\data\IGUI\Cfg\Actions\eject_ca.paa";
|
||||
@ -35,7 +35,6 @@ class CfgVehicles {
|
||||
|
||||
class ACE_TeamManagement {
|
||||
displayName = "$STR_ACE_Interaction_TeamManagement";
|
||||
distance = 5;
|
||||
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player} && {GVAR(EnableTeamManagement)});
|
||||
statement = "";
|
||||
showDisabled = 0;
|
||||
@ -45,7 +44,6 @@ class CfgVehicles {
|
||||
|
||||
class ACE_JoinTeamRed {
|
||||
displayName = "$STR_ACE_Interaction_JoinTeamRed";
|
||||
distance = 5;
|
||||
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player});
|
||||
statement = QUOTE([ARR_2(_target,'RED')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
@ -55,7 +53,6 @@ class CfgVehicles {
|
||||
};
|
||||
class ACE_JoinTeamGreen {
|
||||
displayName = "$STR_ACE_Interaction_JoinTeamGreen";
|
||||
distance = 5;
|
||||
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player});
|
||||
statement = QUOTE([ARR_2(_target,'GREEN')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
@ -65,7 +62,6 @@ class CfgVehicles {
|
||||
};
|
||||
class ACE_JoinTeamBlue {
|
||||
displayName = "$STR_ACE_Interaction_JoinTeamBlue";
|
||||
distance = 5;
|
||||
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player});
|
||||
statement = QUOTE([ARR_2(_target,'BLUE')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
@ -75,7 +71,6 @@ class CfgVehicles {
|
||||
};
|
||||
class ACE_JoinTeamYellow {
|
||||
displayName = "$STR_ACE_Interaction_JoinTeamYellow";
|
||||
distance = 5;
|
||||
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player});
|
||||
statement = QUOTE([ARR_2(_target,'YELLOW')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
@ -86,7 +81,6 @@ class CfgVehicles {
|
||||
|
||||
class ACE_LeaveTeam {
|
||||
displayName = "$STR_ACE_Interaction_LeaveTeam";
|
||||
distance = 5;
|
||||
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player} && {assignedTeam _player != 'MAIN'});
|
||||
statement = QUOTE([ARR_2(_target,'MAIN')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
@ -98,7 +92,6 @@ class CfgVehicles {
|
||||
|
||||
class ACE_JoinGroup {
|
||||
displayName = "$STR_ACE_Interaction_JoinGroup";
|
||||
distance = 5;
|
||||
condition = QUOTE(side group _player == side group _target && {group _player != group _target});
|
||||
statement = QUOTE([_player] joinSilent group _target;);
|
||||
showDisabled = 0;
|
||||
@ -109,7 +102,6 @@ class CfgVehicles {
|
||||
|
||||
class ACE_GetDown {
|
||||
displayName = "$STR_ACE_Interaction_GetDown";
|
||||
distance = 5;
|
||||
condition = QUOTE([_target] call DFUNC(canInteractWithCivilian));
|
||||
statement = QUOTE([_target] call DFUNC(getDown));
|
||||
showDisabled = 0;
|
||||
@ -117,7 +109,6 @@ class CfgVehicles {
|
||||
};
|
||||
class ACE_SendAway {
|
||||
displayName = "$STR_ACE_Interaction_SendAway";
|
||||
distance = 5;
|
||||
condition = QUOTE([_target] call DFUNC(canInteractWithCivilian));
|
||||
statement = QUOTE([_target] call DFUNC(sendAway));
|
||||
showDisabled = 0;
|
||||
@ -125,7 +116,6 @@ class CfgVehicles {
|
||||
};
|
||||
class ACE_Pardon {
|
||||
displayName = "$STR_ACE_Interaction_Pardon";
|
||||
distance = 5;
|
||||
condition = QUOTE(rating _target < -2000 && {alive _target} && {side group _player == side group _target});
|
||||
statement = QUOTE([ARR_3(_target,'{_this addRating -rating _this}',_target)] call DEFUNC(common,execRemoteFnc));
|
||||
showDisabled = 0;
|
||||
|
@ -9,7 +9,9 @@ private["_apos", "_aposX", "_aposY", "_args", "_boundsInput", "_bpos", "_canFire
|
||||
private["_constraintLeft", "_constraintRight", "_constraintTop", "_currentTarget", "_fireDisabledEH"];
|
||||
private["_firedEH", "_fov", "_lastTick", "_lockTime", "_maxX", "_maxY", "_minX", "_minY", "_newTarget"];
|
||||
private["_offsetX", "_offsetY", "_pos", "_randomLockInterval", "_randomPosWithinBounds", "_range"];
|
||||
private["_runTime", "_soundTime", "_targetArray", "_zamerny"];
|
||||
private["_runTime", "_soundTime", "_targetArray", "_zamerny", "_currentShooter"];
|
||||
|
||||
_currentShooter = (vehicle ACE_player);
|
||||
|
||||
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
|
||||
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
|
||||
@ -128,7 +130,7 @@ FUNC(disableFire) = {
|
||||
|
||||
if(_firedEH < 0 && difficulty > 0) then {
|
||||
_firedEH = [ACE_player, "DefaultAction", {true}, {
|
||||
_canFire = ACE_player getVariable["ace_missileguidance_target", nil];
|
||||
_canFire = _currentShooter getVariable["ace_missileguidance_target", nil];
|
||||
if(!isNil "_canFire") exitWith { false };
|
||||
true
|
||||
}] call EFUNC(common,addActionEventHandler);
|
||||
@ -155,7 +157,7 @@ if (isNull _newTarget) then {
|
||||
__JavelinIGUITargetingLines ctrlShow false;
|
||||
__JavelinIGUITargetingConstraints ctrlShow false;
|
||||
|
||||
ACE_player setVariable ["ace_missileguidance_target",nil, false];
|
||||
_currentShooter setVariable ["ace_missileguidance_target",nil, false];
|
||||
|
||||
// Disallow fire
|
||||
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
|
||||
@ -212,7 +214,7 @@ if (isNull _newTarget) then {
|
||||
|
||||
{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingGateTL,__JavelinIGUITargetingGateTR,__JavelinIGUITargetingGateBL,__JavelinIGUITargetingGateBR];
|
||||
|
||||
ACE_player setVariable["ace_missileguidance_target", _currentTarget, false];
|
||||
_currentShooter setVariable["ace_missileguidance_target", _currentTarget, false];
|
||||
|
||||
// Allow fire
|
||||
_fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
|
||||
@ -227,7 +229,7 @@ if (isNull _newTarget) then {
|
||||
__JavelinIGUITargetingConstrains ctrlShow true;
|
||||
__JavelinIGUITargetingLines ctrlShow false;
|
||||
|
||||
ACE_player setVariable["ace_missileguidance_target", nil, false];
|
||||
_currentShooter setVariable["ace_missileguidance_target", nil, false];
|
||||
|
||||
_boundsInput = if (_currentTarget isKindOf "CAManBase") then {
|
||||
[_newTarget,[-1,-1,-2],_currentTarget selectionPosition "body"];
|
||||
@ -270,7 +272,7 @@ if (isNull _newTarget) then {
|
||||
__JavelinIGUITargetingLines ctrlShow false;
|
||||
__JavelinIGUITargetingConstraints ctrlShow false;
|
||||
|
||||
ACE_player setVariable ["ace_missileguidance_target",nil, false];
|
||||
_currentShooter setVariable ["ace_missileguidance_target",nil, false];
|
||||
|
||||
// Disallow fire
|
||||
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
|
||||
|
@ -33,7 +33,8 @@ uiNameSpace setVariable [QGVAR(arguments),
|
||||
|
||||
|
||||
_pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil];
|
||||
if(isNil "_pfh_handle") then {
|
||||
_pfh_handle = [FUNC(onOpticDraw), 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
uiNamespace setVariable["ACE_RscOptics_javelin_PFH", _pfh_handle];
|
||||
};
|
||||
if(!isNil "_pfh_handle") then {
|
||||
[] call FUNC(onOpticUnload); // Unload optic if it was already loaded
|
||||
};
|
||||
_pfh_handle = [FUNC(onOpticDraw), 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
uiNamespace setVariable["ACE_RscOptics_javelin_PFH", _pfh_handle];
|
||||
|
@ -14,7 +14,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_playerDir", "_windSpeed", "_windDir", "_crosswind", "_headwind", "_humidity", "_temperature", "_humidity", "_barometricPressure", "_altitude"];
|
||||
private ["_playerDir", "_windSpeed", "_crosswind", "_headwind", "_humidity", "_temperature", "_humidity", "_barometricPressure", "_altitude"];
|
||||
|
||||
if (isNil QGVAR(MIN) || isNil QGVAR(MAX)) then {
|
||||
_temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL ACE_player) select 2);
|
||||
|
@ -42,9 +42,7 @@ if (GVAR(Kestrel4500) && dialog) then {
|
||||
|
||||
GVAR(Overlay) = true;
|
||||
|
||||
[{
|
||||
private ["_outputData", "_updateTimer"];
|
||||
|
||||
[{
|
||||
// abort condition
|
||||
if (!GVAR(Overlay) || {!(("ACE_Kestrel4500" in (uniformItems ACE_player)) || ("ACE_Kestrel4500" in (vestItems ACE_player)))}) exitWith {
|
||||
GVAR(Overlay) = false;
|
||||
@ -55,6 +53,7 @@ GVAR(Overlay) = true;
|
||||
if (diag_tickTime > GVAR(updateTimer)) then {
|
||||
GVAR(updateTimer) = diag_tickTime + 1;
|
||||
|
||||
private ["_outputData"];
|
||||
_outputData = [] call FUNC(generateOutputData);
|
||||
|
||||
3 cutRsc ["RscKestrel4500", "PLAIN", 1, false];
|
||||
|
@ -14,7 +14,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_playerDir", "_textTop", "_textCenterBig", "_textCenterLine1Left", "_textCenterLine2Left", "_textCenterLine3Left", "_textCenterLine1Right", "_textCenterLine2Right", "_textCenterLine3Right", "_textInfoLine1", "_textInfoLine2", "_temperature", "_humidity", "_windSpeed", "_windDir", "_newWindSpeed", "_windSource", "_height"];
|
||||
private ["_playerDir", "_textTop", "_textCenterBig", "_textCenterLine1Left", "_textCenterLine2Left", "_textCenterLine3Left", "_textCenterLine1Right", "_textCenterLine2Right", "_textCenterLine3Right", "_textInfoLine1", "_textInfoLine2", "_temperature", "_humidity", "_windSpeed", "_windDir"];
|
||||
|
||||
[] call FUNC(collectData);
|
||||
|
||||
|
@ -53,4 +53,4 @@ _structuredOutputText = _structuredOutputText + format ["<img align='center' siz
|
||||
// } forEach (magazinesAmmoFull ACE_player);
|
||||
// _structuredOutputText = _structuredOutputText + format [("<t align='center'>" + (localize "STR_ACE_MagazineRepack_RepackedMagazinesCount") + "</t>"), _fullMags, _partialMags];
|
||||
|
||||
[parseText _structuredOutputText] call EFUNC(common,displayTextStructured);
|
||||
[parseText _structuredOutputText, 2] call EFUNC(common,displayTextStructured);
|
||||
|
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Medical">
|
||||
<Key ID="TR_ACE_Medical_litterSimulationDetail">
|
||||
<Key ID="STR_ACE_Medical_litterSimulationDetail">
|
||||
<English>Litter Simulation Detail</English>
|
||||
<Polish>Detale zużytych medykamentów</Polish>
|
||||
<Spanish>Detalle de simulación de basura</Spanish>
|
||||
</Key>
|
||||
<Key ID="TR_ACE_Medical_litterSimulationDetail_Desc">
|
||||
<Key ID="STR_ACE_Medical_litterSimulationDetail_Desc">
|
||||
<English>Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting.</English>
|
||||
<Polish>Opcja ta ustawia liczbę zużytych medykamentów, jakie pojawiają się lokalnie wokół gracza. Ich zbyt duża ilość może spowodować spadki FPS, dlatego jest to ustawienie tylko po stronie klienta.</Polish>
|
||||
<Spanish>Detalle simulación de basura establece el número de artículos de basura que se generan a nivel local en el cliente. Las cantidades excesivas en áreas locales podrían causar caída de rendimiento, así que esto es un ajuste de cliente únicamente.</Spanish>
|
||||
|
@ -208,7 +208,7 @@ class CfgWeapons {
|
||||
class srifle_DMR_02_sniper_F: srifle_DMR_02_F {
|
||||
displayName = "$STR_ACE_RealisticNames_srifle_DMR_02_sniper"; //MAR-10 .338 (Sand)";
|
||||
};
|
||||
|
||||
*/
|
||||
class DMR_03_base_F: Rifle_Long_Base_F {
|
||||
displayName = "$STR_ACE_RealisticNames_DMR_03"; //Mk-I EMR 7.62 mm";
|
||||
};
|
||||
@ -236,7 +236,7 @@ class CfgWeapons {
|
||||
class srifle_DMR_03_spotter_F: srifle_DMR_03_F {
|
||||
displayName = "$STR_ACE_RealisticNames_srifle_DMR_03_spotter"; //NATO DMR (provisional) spotter";
|
||||
};
|
||||
|
||||
/*
|
||||
class DMR_04_base_F: Rifle_Long_Base_F {
|
||||
displayName = "$STR_ACE_RealisticNames_DMR_04"; //ASP-1 Kir 12.7 mm";
|
||||
};
|
||||
@ -264,7 +264,7 @@ class CfgWeapons {
|
||||
class srifle_DMR_05_tan_f: srifle_DMR_05_blk_F {
|
||||
displayName = "$STR_ACE_RealisticNames_srifle_DMR_05_tan"; //Cyrus 9.3 mm (Tan)";
|
||||
};
|
||||
|
||||
*/
|
||||
class DMR_06_base_F: Rifle_Long_Base_F {
|
||||
displayName = "$STR_ACE_RealisticNames_DMR_06"; //Mk14 7.62 mm";
|
||||
};
|
||||
@ -278,6 +278,7 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
// marksmen mgs
|
||||
/*
|
||||
class MMG_01_base_F: Rifle_Long_Base_F {
|
||||
displayName = "$STR_ACE_RealisticNames_MMG_01"; //Navid 9.3 mm";
|
||||
};
|
||||
@ -289,7 +290,7 @@ class CfgWeapons {
|
||||
class MMG_01_tan_F: MMG_01_hex_F {
|
||||
displayName = "$STR_ACE_RealisticNames_MMG_01_tan"; //Navid 9.3 mm (Tan)";
|
||||
};
|
||||
|
||||
*/
|
||||
class MMG_02_base_F: Rifle_Long_Base_F {
|
||||
displayName = "$STR_ACE_RealisticNames_MMG_02"; //SPMG .338";
|
||||
};
|
||||
@ -304,7 +305,7 @@ class CfgWeapons {
|
||||
|
||||
class MMG_02_sand_F: MMG_02_camo_F {
|
||||
displayName = "$STR_ACE_RealisticNames_MMG_02_sand"; //SPMG .338 (Sand)";
|
||||
};*/
|
||||
};
|
||||
|
||||
// vehicle weapons
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler. -->
|
||||
<Project name="ACE">
|
||||
<Package name="RealisticNames">
|
||||
<Key ID="STR_ACE_RealisticNames_HMG_01_Name">
|
||||
@ -520,7 +519,7 @@
|
||||
<English>Punisher (GMG)</English>
|
||||
<German>Punisher (GMW)</German>
|
||||
<Spanish>Punisher (GMG)</Spanish>
|
||||
<Polish>Punisher (GMG)</Polish>
|
||||
<Polish>Punisher (CKM)</Polish>
|
||||
<Czech>Punisher (granátomet)</Czech>
|
||||
<French>Punisher (GMG)</French>
|
||||
<Russian>Kаратель (Гранатомет)</Russian>
|
||||
@ -1511,53 +1510,53 @@
|
||||
<Russian>TODO: MAR-10 .338 (песочный)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_DMR_03">
|
||||
<English>TODO: Mk-I EMR 7.62 mm</English>
|
||||
<Czech>TODO: Mk-I EMR 7.62 mm</Czech>
|
||||
<French>Mk-l EMR 7.62 mm</French>
|
||||
<Spanish>TODO: Mk-I EMR 7.62 mm</Spanish>
|
||||
<Russian>TODO: Mk-I EMR 7.62 мм</Russian>
|
||||
<English>SG 556 7.62 mm</English>
|
||||
<Czech>SG 556 7.62 mm</Czech>
|
||||
<French>SG 556 7.62 mm</French>
|
||||
<Spanish>SG 556 7.62 mm</Spanish>
|
||||
<Russian>SG 556 7.62 мм</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_03">
|
||||
<English>TODO: Mk-I EMR 7.62 mm (Black)</English>
|
||||
<Czech>TODO: Mk-I EMR 7.62 mm (Black)</Czech>
|
||||
<French>Mk-l EMR 7.62 mm (Noir)</French>
|
||||
<Spanish>TODO: Mk-I EMR 7.62 mm (Negro)</Spanish>
|
||||
<Russian>TODO: Mk-I EMR 7.62 мм (черный)</Russian>
|
||||
<English>SG 556 7.62 mm (Black)</English>
|
||||
<Czech>SG 556 7.62 mm (Black)</Czech>
|
||||
<French>SG 556 7.62 mm (Noir)</French>
|
||||
<Spanish>SG 556 7.62 mm (Negro)</Spanish>
|
||||
<Russian>SG 556 7.62 мм (черный)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_03_khaki">
|
||||
<English>TODO: Mk-I EMR 7.62 mm (Khaki)</English>
|
||||
<Czech>TODO: Mk-I EMR 7.62 mm (Khaki)</Czech>
|
||||
<French>Mk-l EMR 7.62 mm (Kaki)</French>
|
||||
<Spanish>TODO: Mk-I EMR 7.62 mm (Caqui)</Spanish>
|
||||
<Russian>TODO: Mk-I EMR 7.62 мм (хаки)</Russian>
|
||||
<English>SG 556 7.62 mm (Khaki)</English>
|
||||
<Czech>SG 556 7.62 mm (Khaki)</Czech>
|
||||
<French>SG 556 7.62 mm (Kaki)</French>
|
||||
<Spanish>SG 556 7.62 mm (Caqui)</Spanish>
|
||||
<Russian>SG 556 7.62 мм (хаки)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_03_tan">
|
||||
<English>TODO: Mk-I EMR 7.62 mm (Sand)</English>
|
||||
<Czech>TODO: Mk-I EMR 7.62 mm (Sand)</Czech>
|
||||
<French>Mk-l EMR 7.62 mm (Beige)</French>
|
||||
<Spanish>TODO: Mk-I EMR 7.62 mm (Arena)</Spanish>
|
||||
<Russian>TODO: Mk-I EMR 7.62 мм (песочный)</Russian>
|
||||
<English>SG 556 7.62 mm (Sand)</English>
|
||||
<Czech>SG 556 7.62 mm (Sand)</Czech>
|
||||
<French>SG 556 7.62 mm (Beige)</French>
|
||||
<Spanish>SG 556 7.62 mm (Arena)</Spanish>
|
||||
<Russian>SG 556 7.62 мм (песочный)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_03_multicam">
|
||||
<English>TODO: Mk-I EMR 7.62 mm (Camo)</English>
|
||||
<Czech>TODO: Mk-I EMR 7.62 mm (Camo)</Czech>
|
||||
<French>Mk-l EMR 7.62 mm (Camo)</French>
|
||||
<Spanish>TODO: Mk-I EMR 7.62 mm (Camuflaje)</Spanish>
|
||||
<Russian>TODO: Mk-I EMR 7.62 мм (камо)</Russian>
|
||||
<English>SG 556 7.62 mm (Camo)</English>
|
||||
<Czech>SG 556 7.62 mm (Camo)</Czech>
|
||||
<French>SG 556 7.62 mm (Camo)</French>
|
||||
<Spanish>SG 556 7.62 mm (Camuflaje)</Spanish>
|
||||
<Russian>SG 556 7.62 мм (камо)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_03_woodland">
|
||||
<English>TODO: Mk-I EMR 7.62 mm (Woodland)</English>
|
||||
<Czech>TODO: Mk-I EMR 7.62 mm (Woodland)</Czech>
|
||||
<French>Mk-l EMR 7.62 mm (Woodland)</French>
|
||||
<Spanish>TODO: Mk-I EMR 7.62 mm (Bosque)</Spanish>
|
||||
<Russian>TODO: Mk-I EMR 7.62 мм (лесной)</Russian>
|
||||
<English>SG 556 7.62 mm (Woodland)</English>
|
||||
<Czech>SG 556 7.62 mm (Woodland)</Czech>
|
||||
<French>SG 556 7.62 mm (Woodland)</French>
|
||||
<Spanish>SG 556 7.62 mm (Bosque)</Spanish>
|
||||
<Russian>SG 556 7.62 мм (лесной)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_03_spotter">
|
||||
<English>TODO: NATO DMR (provisional) spotter</English>
|
||||
<Czech>TODO: NATO DMR (provisional) spotter</Czech>
|
||||
<French>NATO DMR (provisoire) observateur</French>
|
||||
<Spanish>TODO: NATO DMR (provisional) observador</Spanish>
|
||||
<Russian>TODO: NATO DMR (provisional) корректировщик</Russian>
|
||||
<English>SG 556 7.62 mm (provisional) spotter</English>
|
||||
<Czech>SG 556 7.62 mm (provisional) spotter</Czech>
|
||||
<French>SG 556 7.62 mm (provisoire) Observateur</French>
|
||||
<Spanish>SG 556 7.62 mm (provisional) observador</Spanish>
|
||||
<Russian>SG 556 7.62 мм (provisional) корректировщик</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_DMR_04">
|
||||
<English>TODO: ASP-1 Kir 12.7 mm</English>
|
||||
@ -1609,25 +1608,25 @@
|
||||
<Russian>TODO: Cyrus 9.3 мм (бронза)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_DMR_06">
|
||||
<English>TODO: Mk14 7.62 mm</English>
|
||||
<Czech>TODO: Mk14 7.62 mm</Czech>
|
||||
<French>Mk 14 7.62 mm</French>
|
||||
<Spanish>TODO: Mk14 7.62 mm</Spanish>
|
||||
<Russian>TODO: Mk14 7.62 мм</Russian>
|
||||
<English>M14 7.62 mm</English>
|
||||
<Czech>M14 7.62 mm</Czech>
|
||||
<French>M14 7.62 mm</French>
|
||||
<Spanish>M14 7.62 mm</Spanish>
|
||||
<Russian>M14 7.62 мм</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_06_camo">
|
||||
<English>TODO: Mk14 7.62 mm (Camo)</English>
|
||||
<Czech>TODO: Mk14 7.62 mm (Camo)</Czech>
|
||||
<French>Mk 14 7.62 mm (Camo)</French>
|
||||
<Spanish>TODO: Mk14 7.62 mm (Camuflaje)</Spanish>
|
||||
<Russian>TODO: Mk14 7.62 мм (камо)</Russian>
|
||||
<English>M14 7.62 mm (Camo)</English>
|
||||
<Czech>M14 7.62 mm (Camo)</Czech>
|
||||
<French>M14 7.62 mm (Camo)</French>
|
||||
<Spanish>M14 7.62 mm (Camuflaje)</Spanish>
|
||||
<Russian>M14 7.62 мм (Камо)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_srifle_DMR_06_olive">
|
||||
<English>TODO: Mk14 7.62 mm (Olive)</English>
|
||||
<Czech>TODO: Mk14 7.62 mm (Olive)</Czech>
|
||||
<French>Mk 14 7.62 mm (Olive)</French>
|
||||
<Spanish>TODO: Mk14 7.62 mm (Oliva)</Spanish>
|
||||
<Russian>TODO: Mk14 7.62 мм (олива)</Russian>
|
||||
<English>M14 7.62 mm (Olive)</English>
|
||||
<Czech>M14 7.62 mm (Olive)</Czech>
|
||||
<French>M14 7.62 mm (Olive)</French>
|
||||
<Spanish>M14 7.62 mm (Oliva)</Spanish>
|
||||
<Russian>M14 7.62 мм (Олива)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_MMG_01">
|
||||
<English>TODO: Navid 9.3 mm</English>
|
||||
@ -1651,32 +1650,32 @@
|
||||
<Russian>TODO: Navid 9.3 мм (бронза)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_MMG_02">
|
||||
<English>TODO: SPMG .338</English>
|
||||
<Czech>TODO: SPMG .338</Czech>
|
||||
<French>SPMG .338</French>
|
||||
<Spanish>TODO: SPMG .338</Spanish>
|
||||
<Russian>TODO: SPMG .338</Russian>
|
||||
<English>LWMMG .338</English>
|
||||
<Czech>LWMMG .338</Czech>
|
||||
<French>LWMMG .338</French>
|
||||
<Spanish>LWMMG .338</Spanish>
|
||||
<Russian>LWMMG .338</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_MMG_02_camo">
|
||||
<English>TODO: SPMG .338 (MTP)</English>
|
||||
<Czech>TODO: SPMG .338 (MTP)</Czech>
|
||||
<French>SPMG .338 (MTP)</French>
|
||||
<Spanish>TODO: SPMG .338 (MTP)</Spanish>
|
||||
<Russian>TODO: SPMG .338 (MTP)</Russian>
|
||||
<English>LWMMG .338 (MTP)</English>
|
||||
<Czech>LWMMG .338 (MTP)</Czech>
|
||||
<French>LWMMG .338 (MTP)</French>
|
||||
<Spanish>LWMMG .338 (MTP)</Spanish>
|
||||
<Russian>LWMMG .338 (MTP)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_MMG_02_black">
|
||||
<English>TODO: SPMG .338 (Black)</English>
|
||||
<Czech>TODO: SPMG .338 (Black)</Czech>
|
||||
<French>SPMG .338 (Noir)</French>
|
||||
<Spanish>TODO: SPMG .338 (Negro)</Spanish>
|
||||
<Russian>TODO: SPMG .338 (черный)</Russian>
|
||||
<English>LWMMG .338 (Black)</English>
|
||||
<Czech>LWMMG .338 (Black)</Czech>
|
||||
<French>LWMMG .338 (Noir)</French>
|
||||
<Spanish>LWMMG .338 (Negro)</Spanish>
|
||||
<Russian>LWMMG .338 (Черный)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_RealisticNames_MMG_02_sand">
|
||||
<English>TODO: SPMG .338 (Sand)</English>
|
||||
<Czech>TODO: SPMG .338 (Sand)</Czech>
|
||||
<English>LWMMG .338 (Sand)</English>
|
||||
<Czech>LWMMG .338 (Sand)</Czech>
|
||||
<French>SPMG .338 (Beige)</French>
|
||||
<Spanish>TODO: SPMG .338 (Arena)</Spanish>
|
||||
<Russian>TODO: SPMG .338 (песочный)</Russian>
|
||||
<Spanish>LWMMG .338 (Arena)</Spanish>
|
||||
<Russian>LWMMG .338 (Песочный)</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class CfgActions {
|
||||
class LoadMagazine;
|
||||
class LoadEmptyMagazine : LoadMagazine {
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
|
@ -3,13 +3,13 @@ class CfgVehicles {
|
||||
class CAManBase: Man {
|
||||
class ACE_Actions {
|
||||
class ACE_Weapon {
|
||||
class ACE_LinkBelt {
|
||||
class GVAR(LinkBelt) {
|
||||
displayName = "$STR_ACE_Reload_LinkBelt";
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canLinkBelt));
|
||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(startLinkingBelt));
|
||||
};
|
||||
class ACE_CheckAmmo {
|
||||
class GVAR(CheckAmmo) {
|
||||
displayName = "$STR_ACE_Reload_checkAmmo";
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canCheckAmmo));
|
||||
@ -23,7 +23,7 @@ class CfgVehicles {
|
||||
class StaticWeapon: LandVehicle {
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
class ACE_CheckAmmo {
|
||||
class GVAR(CheckAmmo) {
|
||||
displayName = "$STR_ACE_Reload_checkAmmo";
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canCheckAmmo));
|
||||
|
@ -7,10 +7,9 @@ if !(hasInterface) exitWith {};
|
||||
["ACE3", QGVAR(checkAmmo), localize "STR_ACE_Reload_checkAmmo",
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, (vehicle ACE_player), ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if !([ACE_player] call EFUNC(common,canUseWeapon) ||
|
||||
{(vehicle ACE_player) isKindOf 'StaticWeapon'}) exitWith {false};
|
||||
if !([ACE_player] call EFUNC(common,canUseWeapon) || {(vehicle ACE_player) isKindOf "StaticWeapon"}) exitWith {false};
|
||||
|
||||
// Statement
|
||||
[ACE_player] call FUNC(checkAmmo);
|
||||
|
@ -7,7 +7,12 @@
|
||||
* 1: Target <OBJECT>
|
||||
*
|
||||
* Return value:
|
||||
* Can link belt<BOOL>
|
||||
* Can link belt<BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [player, bob] call ace_reload_fnc_canCheckAmmo
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
|
@ -33,8 +33,6 @@ if (count _this > 1) then {
|
||||
|
||||
if (_unit == _target) then {
|
||||
_unit playActionNow "Gear";
|
||||
} else {
|
||||
_unit playActionNow "PutDown";
|
||||
};
|
||||
|
||||
[FUNC(displayAmmo), [_target], 1, 0.1] call EFUNC(common,waitAndExecute);
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
EXPLODE_1_PVT(_this,_target);
|
||||
|
||||
private ["_weapon","_muzzle","_magazine","_showNumber","_ammo","_maxRounds","_count","_text","_color","_picture", "_a", "_string"];
|
||||
private ["_weapon","_muzzle","_magazine","_showNumber","_ammo","_maxRounds","_count","_text","_color","_picture","_ammoBarsStructuredText", "_a", "_loadedName", "_string"];
|
||||
|
||||
_weapon = currentWeapon _target;
|
||||
_muzzle = currentMuzzle _target;
|
||||
@ -22,23 +22,23 @@ _magazine = currentMagazine _target;
|
||||
|
||||
// currentWeapon returns "" for static weapons before they are shot once
|
||||
if (_target isKindOf "StaticWeapon") then {
|
||||
if (_weapon == "") then {
|
||||
if (count (weapons _target) == 1) then {
|
||||
_weapon = (weapons _target) select 0;
|
||||
_muzzle = _weapon;
|
||||
};
|
||||
};
|
||||
|
||||
if (_magazine == "") then {
|
||||
// Try to get magazine using magazinesAmmoFull
|
||||
private ["_magazines"];
|
||||
_magazines = magazinesAmmoFull _target;
|
||||
{
|
||||
if (_x select 2) exitWith {
|
||||
_magazine = _x select 0;
|
||||
if (_weapon == "") then {
|
||||
if (count (weapons _target) == 1) then {
|
||||
_weapon = (weapons _target) select 0;
|
||||
_muzzle = _weapon;
|
||||
};
|
||||
} forEach _magazines;
|
||||
};
|
||||
};
|
||||
|
||||
if (_magazine == "") then {
|
||||
// Try to get magazine using magazinesAmmoFull
|
||||
private ["_magazines"];
|
||||
_magazines = magazinesAmmoFull _target;
|
||||
{
|
||||
if (_x select 2) exitWith {
|
||||
_magazine = _x select 0;
|
||||
};
|
||||
} forEach _magazines;
|
||||
};
|
||||
};
|
||||
|
||||
if (_magazine == "") exitWith {};
|
||||
@ -52,55 +52,56 @@ _count = 0;
|
||||
|
||||
// not grenade launcher
|
||||
if (_muzzle == _weapon) then {
|
||||
_maxRounds = getNumber (configFile >> "CfgMagazines" >> _magazine >> "count") max 1;
|
||||
_maxRounds = getNumber (configFile >> "CfgMagazines" >> _magazine >> "count") max 1;
|
||||
|
||||
_ammo = _target ammo _weapon;
|
||||
if (_maxRounds >= COUNT_BARS) then {
|
||||
_count = round (COUNT_BARS * _ammo / _maxRounds);
|
||||
_ammo = _target ammo _weapon;
|
||||
if (_maxRounds >= COUNT_BARS) then {
|
||||
_count = round (COUNT_BARS * _ammo / _maxRounds);
|
||||
|
||||
if (_ammo > 0) then {_count = _count max 1};
|
||||
if (_ammo < _maxRounds) then {_count = _count min (COUNT_BARS - 1)};
|
||||
} else {
|
||||
_count = _ammo;
|
||||
};
|
||||
if (_ammo > 0) then {_count = _count max 1};
|
||||
if (_ammo < _maxRounds) then {_count = _count min (COUNT_BARS - 1)};
|
||||
} else {
|
||||
_count = _ammo;
|
||||
};
|
||||
|
||||
// grenade launcher
|
||||
// grenade launcher
|
||||
} else {
|
||||
_showNumber = true;
|
||||
_showNumber = true;
|
||||
|
||||
_count = if (_magazine != "") then {
|
||||
{_x == _magazine} count (magazines _target + [_magazine])
|
||||
} else {
|
||||
{_x in getArray (configFile >> "CfgWeapons" >> _weapon >> _muzzle >> "Magazines")} count magazines _target
|
||||
};
|
||||
_count = if (_magazine != "") then {
|
||||
{_x == _magazine} count (magazines _target + [_magazine])
|
||||
} else {
|
||||
{_x in getArray (configFile >> "CfgWeapons" >> _weapon >> _muzzle >> "Magazines")} count magazines _target
|
||||
};
|
||||
};
|
||||
|
||||
_text = if (_showNumber) then {
|
||||
parseText format ["<t align='center' >%1x</t>", _count]
|
||||
_ammoBarsStructuredText = if (_showNumber) then {
|
||||
parseText format ["<t align='center' >%1x</t>", _count]
|
||||
} else {
|
||||
_color = [
|
||||
2 * (1 - _ammo / _maxRounds) min 1,
|
||||
2 * _ammo / _maxRounds min 1,
|
||||
00
|
||||
];
|
||||
_color = [((2 * (1 - _ammo / _maxRounds)) min 1), ((2 * _ammo / _maxRounds) min 1), 0];
|
||||
|
||||
_string = "";
|
||||
for "_a" from 1 to _count do {
|
||||
_string = _string + "|";
|
||||
};
|
||||
_text = [_string, _color] call EFUNC(common,stringToColoredText);
|
||||
_string = "";
|
||||
for "_a" from 1 to _count do {
|
||||
_string = _string + "|";
|
||||
};
|
||||
_text = [_string, _color] call EFUNC(common,stringToColoredText);
|
||||
|
||||
_string = "";
|
||||
for "_a" from (_count + 1) to (_maxRounds min COUNT_BARS) do {
|
||||
_string = _string + "|";
|
||||
};
|
||||
_string = "";
|
||||
for "_a" from (_count + 1) to (_maxRounds min COUNT_BARS) do {
|
||||
_string = _string + "|";
|
||||
};
|
||||
|
||||
composeText [
|
||||
_text,
|
||||
[_string, [0.5, 0.5, 0.5]] call EFUNC(common,stringToColoredText)
|
||||
]
|
||||
composeText [_text, [_string, [0.5, 0.5, 0.5]] call EFUNC(common,stringToColoredText)];
|
||||
};
|
||||
|
||||
_picture = getText (configFile >> "CfgMagazines" >> _magazine >> "picture");
|
||||
|
||||
[_text, _picture] call EFUNC(common,displayTextPicture);
|
||||
if (_target isKindOf "StaticWeapon") then {
|
||||
//Vehicle mags (usualy) don't have pictures, so just show the text above ammo count
|
||||
_loadedName = getText (configFile >> "CfgMagazines" >> _magazine >> "displaynameshort");
|
||||
_loadedName = parseText format ["<t align='center' >%1</t>", _loadedName];
|
||||
_text = composeText [_loadedName, linebreak, _ammoBarsStructuredText];
|
||||
[_text] call EFUNC(common,displayTextStructured);
|
||||
} else {
|
||||
_picture = getText (configFile >> "CfgMagazines" >> _magazine >> "picture");
|
||||
[_ammoBarsStructuredText, _picture] call EFUNC(common,displayTextPicture);
|
||||
};
|
||||
|
@ -1,6 +1,5 @@
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
clientInit = QUOTE(call COMPILE_FILE(XEH_preClientInit));
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
||||
|
@ -7,6 +7,22 @@ class CfgWorlds {
|
||||
ACE_TempNight[] = {4, 4, 6, 8, 13, 17, 20, 20, 16, 12, 8, 6};
|
||||
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Limnos,Greece
|
||||
ACE_Humidity[] = {78, 77, 78, 74, 71, 60, 59, 61, 65, 72, 79, 80};
|
||||
// Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece
|
||||
ACE_WindSpeedMax[] = {{8.8, 5.5}, {8.8, 5}, {8.6, 4.8}, {7.6, 3.4}, {7.0, 3.0}, {7.1, 3.0}, {7.5, 3.1}, {8.0, 3.2}, {7.6, 3.5}, {7.8, 4.6}, {7.9, 5.0}, {8.2, 5.5}};
|
||||
ACE_WindSpeedMean[] = {4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0};
|
||||
ACE_WindSpeedMin[] = {{0.2, 5.0}, {0.1, 5.0}, {0.2, 4.3}, {0.0, 3.0}, {0.0, 2.1}, {0.0, 2.0}, {0.1, 3.1}, {0.3, 3.1}, {0.0, 3.6}, {0.0, 4.2}, {0.1, 5.0}, {0.2, 5.5}};
|
||||
ACE_WindDirectionProbabilities[] = {{0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02}, // January
|
||||
{0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02}, // February
|
||||
{0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03}, // March
|
||||
{0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04}, // April
|
||||
{0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05}, // May
|
||||
{0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08}, // June
|
||||
{0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09}, // July
|
||||
{0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08}, // August
|
||||
{0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05}, // September
|
||||
{0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03}, // October
|
||||
{0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02}, // November
|
||||
{0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02}};// December
|
||||
};
|
||||
|
||||
class Altis: CAWorld {
|
||||
@ -15,5 +31,21 @@ class CfgWorlds {
|
||||
ACE_TempNight[] = {4, 4, 6, 8, 13, 17, 20, 20, 16, 12, 8, 6};
|
||||
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Limnos,Greece
|
||||
ACE_Humidity[] = {78, 77, 78, 74, 71, 60, 59, 61, 65, 72, 79, 80};
|
||||
// Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece
|
||||
ACE_WindSpeedMax[] = {{8.8, 5.5}, {8.8, 5}, {8.6, 4.8}, {7.6, 3.4}, {7.0, 3.0}, {7.1, 3.0}, {7.5, 3.1}, {8.0, 3.2}, {7.6, 3.5}, {7.8, 4.6}, {7.9, 5.0}, {8.2, 5.5}};
|
||||
ACE_WindSpeedMean[] = {4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0};
|
||||
ACE_WindSpeedMin[] = {{0.2, 5.0}, {0.1, 5.0}, {0.2, 4.3}, {0.0, 3.0}, {0.0, 2.1}, {0.0, 2.0}, {0.1, 3.1}, {0.3, 3.1}, {0.0, 3.6}, {0.0, 4.2}, {0.1, 5.0}, {0.2, 5.5}};
|
||||
ACE_WindDirectionProbabilities[] = {{0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02}, // January
|
||||
{0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02}, // February
|
||||
{0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03}, // March
|
||||
{0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04}, // April
|
||||
{0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05}, // May
|
||||
{0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08}, // June
|
||||
{0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09}, // July
|
||||
{0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08}, // August
|
||||
{0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05}, // September
|
||||
{0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03}, // October
|
||||
{0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02}, // November
|
||||
{0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02}};// December
|
||||
};
|
||||
};
|
||||
};
|
@ -1,43 +1,22 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Rain variables
|
||||
GVAR(enableRain) = true;
|
||||
GVAR(rain_next_period) = -1;
|
||||
GVAR(rain_period_count) = 0;
|
||||
GVAR(rain_initial_rain) = 0;
|
||||
if(overcast >= 0.7) then {
|
||||
GVAR(rain_initial_rain) = (random ((overcast-0.7)/0.3));
|
||||
};
|
||||
GVAR(current_rain) = GVAR(rain_initial_rain);
|
||||
GVAR(rain_current_range) = -1+(random 2);
|
||||
GVAR(overcast_multiplier) = 1;
|
||||
|
||||
// Wind Variables
|
||||
ACE_wind = [0, 0, 0];
|
||||
GVAR(wind_initial_dir) = (random 360);
|
||||
GVAR(wind_initial_speed) = (overcast*5)+(random (overcast*5)) max 1;
|
||||
GVAR(wind_mean_speed) = GVAR(wind_initial_speed);
|
||||
GVAR(wind_mean_dir) = GVAR(wind_initial_dir);
|
||||
GVAR(wind_current_speed) = GVAR(wind_initial_speed);
|
||||
GVAR(wind_current_dir) = GVAR(wind_initial_dir);
|
||||
GVAR(wind_current_range_speed) = -1+(random 2);
|
||||
GVAR(wind_current_range_dir) = -1+(random 2);
|
||||
GVAR(wind_next_period) = -1; //ceil((2+random(5))/(GVAR(overcast_multiplier)/10));
|
||||
GVAR(wind_next_major_period) = -1;
|
||||
GVAR(wind_period_count) = 0;
|
||||
GVAR(wind_major_period_count) = 0;
|
||||
GVAR(wind_total_time) = 0;
|
||||
GVAR(wind_period_start_time) = time;
|
||||
|
||||
call FUNC(getMapData);
|
||||
GVAR(rain_period_start_time) = time;
|
||||
|
||||
"ACE_WIND_PARAMS" addPublicVariableEventHandler { GVAR(wind_period_start_time) = time; };
|
||||
"ACE_RAIN_PARAMS" addPublicVariableEventHandler { GVAR(rain_period_start_time) = time; };
|
||||
"ACE_MISC_PARAMS" addPublicVariableEventHandler {
|
||||
if !(isServer) then {
|
||||
30 setLightnings (ACE_MISC_PARAMS select 0);
|
||||
30 setRainbow (ACE_MISC_PARAMS select 1);
|
||||
30 setFog (ACE_MISC_PARAMS select 2);
|
||||
if (!isServer) then {
|
||||
if (GVAR(syncMisc)) then {
|
||||
30 setLightnings (ACE_MISC_PARAMS select 0);
|
||||
30 setRainbow (ACE_MISC_PARAMS select 1);
|
||||
30 setFog (ACE_MISC_PARAMS select 2);
|
||||
};
|
||||
GVAR(temperatureShift) = (ACE_MISC_PARAMS select 3);
|
||||
GVAR(badWeatherShift) = (ACE_MISC_PARAMS select 4);
|
||||
GVAR(humidityShift) = (ACE_MISC_PARAMS select 5);
|
||||
call FUNC(updateTemperature);
|
||||
call FUNC(updateHumidity);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1,3 +1,20 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
[FUNC(serverController), 60] call cba_fnc_addPerFrameHandler;
|
||||
// Randomization
|
||||
GVAR(temperatureShift) = 3 - random 6;
|
||||
GVAR(badWeatherShift) = (random 1) ^ 2 * 10;
|
||||
GVAR(humidityShift) = (5 - random 10) / 100;
|
||||
|
||||
// Rain
|
||||
GVAR(rain_next_period) = -1;
|
||||
GVAR(rain_period_count) = 0;
|
||||
GVAR(current_rain) = 0;
|
||||
GVAR(rain_current_range) = -1+(random 2);
|
||||
|
||||
// Wind
|
||||
call FUNC(initWind);
|
||||
|
||||
GVAR(overcast_multiplier) = 1;
|
||||
GVAR(serverUpdateInterval) = 60;
|
||||
|
||||
[FUNC(serverController), GVAR(serverUpdateInterval)] call cba_fnc_addPerFrameHandler;
|
||||
|
@ -1,17 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
|
||||
FUNC(KEEPTIME) = {
|
||||
if((count GVAR(WINDSPEED)) > 0) then {
|
||||
private ["_wind", "_p", "_str"];
|
||||
_wind = ACE_wind;
|
||||
|
||||
_p = _wind call CBA_fnc_vect2polar;
|
||||
_str = format["Wind: %1 at %2m/s (%3MPH)\n%4", floor(_p select 1), floor(_p select 0), floor((_p select 0)*2.23693629), GVAR(WINDSPEED)];
|
||||
TRACE_2("Wind",_wind,_str);
|
||||
};
|
||||
};
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
[FUNC(KEEPTIME), 0.0, []] call CBA_fnc_addPerFrameHandler;
|
||||
#endif
|
@ -8,10 +8,22 @@ PREP(calculateBarometricPressure);
|
||||
PREP(displayWindInfo);
|
||||
PREP(getMapData);
|
||||
PREP(getWind);
|
||||
PREP(initWind);
|
||||
PREP(serverController);
|
||||
PREP(updateHumidity);
|
||||
PREP(updateRain);
|
||||
PREP(updateTemperature);
|
||||
PREP(updateWind);
|
||||
|
||||
// Control server side weather propagation
|
||||
GVAR(enableServerController) = true;
|
||||
|
||||
// Control client side weather effects
|
||||
GVAR(syncRain) = true;
|
||||
GVAR(syncWind) = true; // Wind, Gusts, Waves
|
||||
GVAR(syncMisc) = true; // Lightnings, Rainbow, Fog
|
||||
|
||||
// Make sure this data is read before client/server postInit
|
||||
call FUNC(getMapData);
|
||||
|
||||
ADDON = true;
|
||||
|
@ -28,7 +28,7 @@ EGVAR(advanced_ballistics,Protractor) = false;
|
||||
GVAR(WindInfo) = true;
|
||||
|
||||
[{
|
||||
private ["_windSpeed", "_windDir", "_playerDir", "_windIndex", "_windColor", "_newWindSpeed", "_windSource", "_height"];
|
||||
private ["_windSpeed", "_windDir", "_playerDir", "_windIndex", "_windColor"];
|
||||
|
||||
if !(GVAR(WindInfo) && !(underwater ACE_player) && vehicle ACE_player == ACE_player) exitWith {
|
||||
GVAR(WindInfo) = false;
|
||||
|
@ -35,6 +35,32 @@ if (worldName in ["Thirsk"]) then { GVAR(Latitude) = 65; GVAR(Altitude) = 0; };
|
||||
if (worldName in ["lingor"]) then { GVAR(Latitude) = -4; GVAR(Altitude) = 0; };
|
||||
if (worldName in ["Panthera3"]) then { GVAR(Latitude) = 46; GVAR(Altitude) = 0; };
|
||||
|
||||
// Assume default wind values
|
||||
// Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece
|
||||
GVAR(WindSpeedMax) = [[8.8, 5.5], [8.8, 5], [8.6, 4.8], [7.6, 3.4], [7.0, 3.0], [7.1, 3.0], [7.5, 3.1], [8.0, 3.2], [7.6, 3.5], [7.8, 4.6], [7.9, 5.0], [8.2, 5.5]];
|
||||
GVAR(WindSpeedMean) = [4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0];
|
||||
GVAR(WindSpeedMin) = [[0.2, 5.0], [0.1, 5.0], [0.2, 4.3], [0.0, 3.0], [0.0, 2.1], [0.0, 2.0], [0.1, 3.1], [0.3, 3.1], [0.0, 3.6], [0.0, 4.2], [0.1, 5.0], [0.2, 5.5]];
|
||||
GVAR(WindDirectionProbabilities) = [[0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02], // January
|
||||
[0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02], // February
|
||||
[0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03], // March
|
||||
[0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04], // April
|
||||
[0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05], // May
|
||||
[0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08], // June
|
||||
[0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09], // July
|
||||
[0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08], // August
|
||||
[0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05], // September
|
||||
[0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03], // October
|
||||
[0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02], // November
|
||||
[0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02]];// December
|
||||
|
||||
// Check if the wind data is defined in the map config
|
||||
if (isArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMean")) then {
|
||||
GVAR(WindSpeedMin) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMin");
|
||||
GVAR(WindSpeedMean) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMean");
|
||||
GVAR(WindSpeedMax) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMax");
|
||||
GVAR(WindDirectionProbabilities) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindDirectionProbabilities");
|
||||
};
|
||||
|
||||
// Check if the weather data is defined in the map config
|
||||
if (isArray (configFile >> "CfgWorlds" >> worldName >> "ACE_TempDay")) exitWith {
|
||||
GVAR(TempDay) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_TempDay");
|
||||
@ -112,4 +138,4 @@ GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2];
|
||||
GVAR(Humidity) = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82];
|
||||
|
||||
GVAR(currentTemperature) = 20;
|
||||
GVAR(currentHumidity) = 0.5;
|
||||
GVAR(currentHumidity) = 0.5;
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Author: ACE2 Team
|
||||
* Author: ACE2 Team, Ruthberg
|
||||
*
|
||||
* Calculate current wind locally from the data broadcasted by the server
|
||||
*
|
||||
@ -10,25 +10,25 @@
|
||||
* Wind <ARRAY>
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_dir","_dirInc","_dirRange","_period","_periodPercent","_periodPosition","_return","_spd","_spdInc","_spdRange"];
|
||||
|
||||
_return = [0,0,0];
|
||||
if(!isNil "ACE_WIND_PARAMS") then {
|
||||
_dir = ACE_WIND_PARAMS select 0;
|
||||
_dirRange = (ACE_WIND_PARAMS select 1) - (ACE_WIND_PARAMS select 0);
|
||||
_spd = ACE_WIND_PARAMS select 2;
|
||||
_spdRange = (ACE_WIND_PARAMS select 3) - (ACE_WIND_PARAMS select 2);
|
||||
_period = ACE_WIND_PARAMS select 4;
|
||||
if (isNil "ACE_WIND_PARAMS") exitWith { [0, 0, 0] };
|
||||
|
||||
_periodPosition = (time - GVAR(wind_period_start_time)) min _period;
|
||||
_periodPercent = _periodPosition/_period;
|
||||
_spdInc = _spdRange * _periodPercent;
|
||||
_dirInc = _dirRange * _periodPercent;
|
||||
_spd = (_spd + _spdInc);
|
||||
_dir = _dir + _dirInc;
|
||||
if (_dir > 360) then {_dir = _dir - 360};
|
||||
if (_dir < 0) then {_dir = _dir + 360};
|
||||
EXPLODE_5_PVT(ACE_WIND_PARAMS,_dir,_dirChange,_spd,_spdChange,_period);
|
||||
|
||||
_return = [_spd * sin _dir, _spd * cos _dir, 0];
|
||||
};
|
||||
_return;
|
||||
private ["_periodPercent", "_periodPosition"];
|
||||
_periodPosition = (time - GVAR(wind_period_start_time)) min _period;
|
||||
_periodPercent = _periodPosition / _period;
|
||||
|
||||
_spd = _spd + _spdChange * _periodPercent;
|
||||
_dir = _dir + _dirChange * _periodPercent;
|
||||
|
||||
_dir = (360 + _dir) % 360;
|
||||
|
||||
TRACE_1("PeriodStartTime",Round(GVAR(wind_period_start_time)));
|
||||
TRACE_2("Dir: Current/Change",Round(_dir),Round(_dirChange));
|
||||
TRACE_2("Spd: Current/Change",Round(_spd * 10) / 10,Round(_spdChange * 10) / 10);
|
||||
TRACE_3("Period/Position/Percent",Round(_period),Round(_periodPosition),Round(_periodPercent * 100) / 100);
|
||||
|
||||
// TODO: Add some deterministic noise
|
||||
|
||||
[-_spd * sin(_dir), -_spd * cos(_dir), 0]
|
||||
|
58
addons/weather/functions/fnc_initWind.sqf
Normal file
58
addons/weather/functions/fnc_initWind.sqf
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
* Inits the wind variables on mission start
|
||||
*
|
||||
* Argument:
|
||||
* None
|
||||
*
|
||||
* Return value:
|
||||
* None
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_sum", "_rand", "_csum", "_index", "_month", "_windDirectionProbabilities"];
|
||||
_month = date select 1;
|
||||
_windDirectionProbabilities = GVAR(WindDirectionProbabilities) select (_month - 1);
|
||||
|
||||
ACE_wind = [0, 0, 0];
|
||||
|
||||
GVAR(wind_direction_reference) = random 360;
|
||||
_sum = 0;
|
||||
for "_i" from 0 to 7 do {
|
||||
_sum = _sum + (_windDirectionProbabilities select _i);
|
||||
};
|
||||
_rand = random _sum;
|
||||
_csum = [0, 0, 0, 0, 0, 0, 0, 0];
|
||||
for "_i" from 0 to 7 do {
|
||||
for "_j" from 0 to _i do {
|
||||
_csum set [_i, (_csum select _i) + (_windDirectionProbabilities select _j)];
|
||||
};
|
||||
};
|
||||
_index = 0;
|
||||
for "_i" from 0 to 7 do {
|
||||
if (_rand > (_csum select _i)) then {
|
||||
_index = _index + 1;
|
||||
};
|
||||
};
|
||||
GVAR(wind_direction_reference) = 45 * _index;
|
||||
|
||||
GVAR(wind_mean_dir) = GVAR(wind_direction_reference);
|
||||
GVAR(wind_direction_reference) = GVAR(wind_direction_reference) + (random 22.5) - (random 22.5);
|
||||
GVAR(wind_direction_reference) = (360 + GVAR(wind_direction_reference)) % 360;
|
||||
|
||||
GVAR(min_wind_speed) = GVAR(WindSpeedMin) select (_month - 1);
|
||||
GVAR(min_wind_speed) = (GVAR(min_wind_speed) select 0) + (random (GVAR(min_wind_speed) select 1)) - (random (GVAR(min_wind_speed) select 1));
|
||||
GVAR(min_wind_speed) = 0 max GVAR(min_wind_speed);
|
||||
GVAR(mean_wind_speed) = GVAR(WindSpeedMean) select (_month - 1);
|
||||
GVAR(max_wind_speed) = GVAR(WindSpeedMax) select (_month - 1);
|
||||
GVAR(max_wind_speed) = (GVAR(max_wind_speed) select 0) + (random (GVAR(max_wind_speed) select 1)) - (random (GVAR(max_wind_speed) select 1));
|
||||
GVAR(max_wind_speed) = 0 max GVAR(max_wind_speed);
|
||||
|
||||
GVAR(current_wind_direction) = GVAR(wind_direction_reference);
|
||||
GVAR(current_wind_speed) = GVAR(min_wind_speed) + (GVAR(max_wind_speed) - GVAR(min_wind_speed)) * (random 1);
|
||||
|
||||
GVAR(wind_period_count) = 0;
|
||||
GVAR(wind_next_period) = -1;
|
||||
|
||||
GVAR(wind_speed_debug_output) = [];
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Author: ACE2 Team, esteldunedain
|
||||
* Author: ACE2 Team, esteldunedain, ruthberg
|
||||
*
|
||||
* Calculate the wind and rain evolution on the server. Broadcast the current and next values to the clients
|
||||
* Calculate the wind and rain evolution on the server. Broadcasts the current and next values to the clients
|
||||
*
|
||||
* Argument:
|
||||
* None
|
||||
@ -10,90 +10,98 @@
|
||||
* None
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_gustCount","_gustDir","_gustSpeed","_gustTime","_gusts","_i","_lastRain","_maxInterval","_rainOverCast","_startDir","_startSpeed","_time","_timeTillGust","_transitionTime"];
|
||||
|
||||
if (!GVAR(enableServerController)) exitWith {};
|
||||
|
||||
private ["_lastRain", "_rainOverCast", "_transitionTime", "_windDirectionVariance", "_windSpeed", "_windSpeedChange", "_windMaxDiff", "_windMinDiff", "_windDirection", "_windDirectionChange", "_ratioMin", "_ratioMax"];
|
||||
|
||||
// Rain simulation
|
||||
if(GVAR(rain_period_count) > GVAR(rain_next_period)) then {
|
||||
if (GVAR(syncRain) && GVAR(rain_period_count) > GVAR(rain_next_period)) then {
|
||||
|
||||
if(overcast >= 0.7) then {
|
||||
_lastRain = GVAR(current_rain);
|
||||
_rainOverCast = ((overcast-0.7)/0.3);
|
||||
GVAR(rain_next_period) = ceil((1+random(10))/GVAR(overcast_multiplier));
|
||||
|
||||
GVAR(current_rain) = (GVAR(current_rain)+(((GVAR(current_rain)))*((_rainOverCast*(GVAR(overcast_multiplier)))/8)*GVAR(rain_current_range)));
|
||||
GVAR(current_rain) = (GVAR(current_rain) max 0.01) min 1;
|
||||
|
||||
_transitionTime = (_rainOverCast*5)+(random (_rainOverCast*20))+1;
|
||||
GVAR(rain_current_range) = -1+(random 2);
|
||||
|
||||
ACE_RAIN_PARAMS = [_lastRain, GVAR(current_rain), _transitionTime];
|
||||
TRACE_4("",_lastRain,_rainOverCast,_transitionTime, overcast);
|
||||
GVAR(rain_next_period) = ceil((1 + (random 10)) / GVAR(overcast_multiplier));
|
||||
GVAR(rain_period_count) = 0;
|
||||
|
||||
_lastRain = GVAR(current_rain);
|
||||
|
||||
if (overcast >= 0.7) then {
|
||||
_rainOverCast = (overcast - 0.7) / 0.3;
|
||||
if (GVAR(current_rain) == 0) then {
|
||||
// Initialize rain with a random strength depending on the current overcast value
|
||||
GVAR(current_rain) = 0.25 + (random 0.25) + (random 0.5) * _rainOverCast;
|
||||
};
|
||||
|
||||
GVAR(current_rain) = GVAR(current_rain) + GVAR(current_rain) * ((_rainOverCast * GVAR(overcast_multiplier)) / 8) * GVAR(rain_current_range);
|
||||
GVAR(current_rain) = 0.01 max GVAR(current_rain) min 1;
|
||||
|
||||
GVAR(rain_current_range) = -1 + (random 2);
|
||||
} else {
|
||||
GVAR(current_rain) = 0;
|
||||
_lastRain = GVAR(current_rain);
|
||||
_rainOverCast = 1;
|
||||
_transitionTime = (_rainOverCast*5)+(random (_rainOverCast*20))+1;
|
||||
|
||||
ACE_RAIN_PARAMS = [_lastRain, GVAR(current_rain), _transitionTime];
|
||||
TRACE_4("",_lastRain,_rainOverCast,_transitionTime, overcast);
|
||||
|
||||
GVAR(current_rain) = 0;
|
||||
};
|
||||
|
||||
_transitionTime = 1 + (_rainOverCast * 5) + (random (_rainOverCast * 20));
|
||||
|
||||
ACE_RAIN_PARAMS = [_lastRain, GVAR(current_rain), _transitionTime];
|
||||
TRACE_4("",_lastRain,_rainOverCast,_transitionTime,overcast);
|
||||
|
||||
GVAR(rain_period_start_time) = time;
|
||||
publicVariable "ACE_RAIN_PARAMS";
|
||||
};
|
||||
|
||||
// Wind simulation
|
||||
if(GVAR(wind_period_count) > GVAR(wind_next_period)) then {
|
||||
_startDir = GVAR(wind_current_dir);
|
||||
_startSpeed = GVAR(wind_current_speed);
|
||||
GVAR(wind_current_dir) = (GVAR(wind_current_dir)+(((GVAR(wind_current_dir)))*((overcast*(GVAR(overcast_multiplier)))/8)*GVAR(wind_current_range_dir)));
|
||||
|
||||
GVAR(wind_current_speed) = (GVAR(wind_current_speed)+(((GVAR(wind_current_speed)))*(overcast*(GVAR(overcast_multiplier))/12)*GVAR(wind_current_range_speed)));
|
||||
GVAR(wind_current_speed) = GVAR(wind_current_speed) max 0.01;
|
||||
|
||||
if(GVAR(wind_current_dir) < 0) then {
|
||||
GVAR(wind_current_dir) = GVAR(wind_current_dir)+360;
|
||||
};
|
||||
GVAR(wind_current_dir) = GVAR(wind_current_dir) % 360;
|
||||
|
||||
GVAR(wind_current_range_speed) = (-1)+(random 2);
|
||||
|
||||
GVAR(wind_current_range_dir) = (-1)+(random 2);
|
||||
|
||||
GVAR(wind_next_period) = ceil((2+random(5))/(GVAR(overcast_multiplier)));
|
||||
if (GVAR(syncWind) && GVAR(wind_period_count) > GVAR(wind_next_period)) then {
|
||||
|
||||
GVAR(wind_next_period) = ceil((2 + (random 5)) / GVAR(overcast_multiplier));
|
||||
GVAR(wind_period_count) = 0;
|
||||
|
||||
_gustCount = floor(random(GVAR(wind_next_period)*(overcast*((GVAR(overcast_multiplier)^3)))));
|
||||
|
||||
_time = GVAR(wind_next_period)*60;
|
||||
_gusts = [];
|
||||
if(_gustCount > 0) then {
|
||||
_maxInterval = _time/_gustCount;
|
||||
for "_i" from 0 to _gustCount-1 do {
|
||||
_gustTime = (random (3 min _maxInterval));
|
||||
_timeTillGust = (_maxInterval*_i)+(random (_maxInterval - _gustTime));
|
||||
_gustSpeed = (random 1);
|
||||
_gustDir = (GVAR(wind_current_dir)+(GVAR(wind_current_dir)*(-1+(random 2))))*(overcast*(GVAR(overcast_multiplier)));
|
||||
_gusts set[(count _gusts), [_timeTillGust, _gustTime, _gustSpeed, _gustDir]];
|
||||
};
|
||||
|
||||
_windDirectionVariance = (90 - (random 180)) * (overcast ^ 2);
|
||||
_windDirection = (360 + GVAR(wind_direction_reference) + _windDirectionVariance) % 360;
|
||||
_windDirectionChange = _windDirection - GVAR(current_wind_direction);
|
||||
if (_windDirectionChange > 180) then {
|
||||
_windDirectionChange = _windDirectionChange - 360;
|
||||
};
|
||||
|
||||
GVAR(wind_total_time) = GVAR(wind_total_time) + GVAR(wind_next_period);
|
||||
|
||||
ACE_WIND_PARAMS = [_startDir,
|
||||
GVAR(wind_current_dir),
|
||||
_startSpeed,
|
||||
GVAR(wind_current_speed),
|
||||
_time,
|
||||
_gusts];
|
||||
|
||||
if (_windDirectionChange < -180) then {
|
||||
_windDirectionChange = 360 + _windDirectionChange;
|
||||
};
|
||||
|
||||
_windMaxDiff = GVAR(mean_wind_speed) - GVAR(max_wind_speed);
|
||||
_windMinDiff = GVAR(min_wind_speed) - GVAR(mean_wind_speed);
|
||||
|
||||
_ratioMax = (random 1) ^ 2;
|
||||
_ratioMin = (random 1) ^ 2;
|
||||
|
||||
_windSpeed = GVAR(current_wind_speed);
|
||||
_windSpeedChange = 0;
|
||||
if ((random 1) < (0.3 max overcast)) then {
|
||||
_windSpeed = GVAR(mean_wind_speed) + _windMaxDiff * _ratioMax + _windMinDiff * _ratioMin;
|
||||
_windSpeedChange = _windSpeed - GVAR(current_wind_speed);
|
||||
};
|
||||
|
||||
_transitionTime = GVAR(wind_next_period) * GVAR(serverUpdateInterval);
|
||||
|
||||
TRACE_5("dirCur/dirNew/spdCur/spdNew/period",GVAR(current_wind_direction),_windDirection,GVAR(current_wind_speed),_windSpeed,_transitionTime);
|
||||
|
||||
ACE_WIND_PARAMS = [GVAR(current_wind_direction),
|
||||
_windDirectionChange,
|
||||
GVAR(current_wind_speed),
|
||||
_windSpeedChange,
|
||||
_transitionTime];
|
||||
|
||||
GVAR(current_wind_direction) = _windDirection;
|
||||
GVAR(current_wind_speed) = _windSpeed;
|
||||
|
||||
GVAR(wind_period_start_time) = time;
|
||||
publicVariable "ACE_WIND_PARAMS";
|
||||
};
|
||||
|
||||
// Sync misc. parameters
|
||||
ACE_MISC_PARAMS = [lightnings, rainbow, fogParams];
|
||||
publicVariable "ACE_MISC_PARAMS";
|
||||
|
||||
if (GVAR(syncMisc)) then {
|
||||
ACE_MISC_PARAMS = [lightnings, rainbow, fogParams, GVAR(temperatureShift), GVAR(badWeatherShift), GVAR(humidityShift)];
|
||||
publicVariable "ACE_MISC_PARAMS";
|
||||
};
|
||||
|
||||
GVAR(rain_period_count) = GVAR(rain_period_count) + 1;
|
||||
GVAR(wind_period_count) = GVAR(wind_period_count) + 1;
|
||||
GVAR(wind_period_count) = GVAR(wind_period_count) + 1;
|
||||
|
||||
GVAR(overcast_multiplier) = 1 max (2* overcast) min 2; // 0 (@ overcast 0), 2 (@ overcast 1)
|
@ -23,6 +23,9 @@ if (rain > 0 && overcast > 0.7) then {
|
||||
_pS1 = 6.112 * exp((17.62 * _avgTemperature) / (243.12 + _avgTemperature));
|
||||
_PS2 = 6.112 * exp((17.62 * GVAR(currentTemperature)) / (243.12 + GVAR(currentTemperature)));
|
||||
GVAR(currentHumidity) = GVAR(currentHumidity) * _PS1 / _PS2;
|
||||
GVAR(currentHumidity) = GVAR(currentHumidity) + GVAR(humidityShift);
|
||||
|
||||
TRACE_1("humidityShift",GVAR(humidityShift));
|
||||
};
|
||||
|
||||
GVAR(currentHumidity) = 0 max GVAR(currentHumidity) min 1;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Author: ACE2 Team
|
||||
* Author: ACE2 Team, Ruthberg
|
||||
*
|
||||
* Updates rain based on ACE_RAIN_PARAMS
|
||||
*
|
||||
@ -11,16 +11,15 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_oldStrength", "_rainStrength", "_transitionTime", "_periodPosition", "_periodPercent"];
|
||||
if (!GVAR(syncRain)) exitWith {};
|
||||
|
||||
if (!GVAR(enableRain)) exitWith {};
|
||||
if (!isNil "ACE_RAIN_PARAMS") then {
|
||||
|
||||
EXPLODE_3_PVT(ACE_RAIN_PARAMS,_oldRain,_newRain,_period);
|
||||
|
||||
private ["_periodPosition", "_periodPercent"];
|
||||
_periodPosition = (time - GVAR(rain_period_start_time)) min _period;
|
||||
_periodPercent = (_periodPosition / _period) min 1;
|
||||
|
||||
if (!isNil "ACE_RAIN_PARAMS" && {!isNil QGVAR(rain_period_start_time)}) then {
|
||||
_oldStrength = ACE_RAIN_PARAMS select 0;
|
||||
_rainStrength = ACE_RAIN_PARAMS select 1;
|
||||
_transitionTime = ACE_RAIN_PARAMS select 2;
|
||||
_periodPosition = (time - GVAR(rain_period_start_time)) min _transitionTime;
|
||||
_periodPercent = (_periodPosition/_transitionTime) min 1;
|
||||
|
||||
0 setRain ((_periodPercent*(_rainStrength-_oldStrength))+_oldStrength);
|
||||
0 setRain (_oldRain + (_newRain - _oldRain) * _periodPercent);
|
||||
};
|
||||
|
@ -18,5 +18,7 @@ _month = date select 1;
|
||||
_hourlyCoef = -0.5 * sin(360 * ((3 + (date select 3))/24 + (date select 4)/1440));
|
||||
|
||||
GVAR(currentTemperature) = (GVAR(TempDay) select (_month - 1)) * (1 - _hourlyCoef) + (GVAR(TempNight) select (_month - 1)) * _hourlyCoef;
|
||||
GVAR(currentTemperature) = GVAR(currentTemperature) - 2 * humidity - 4 * overcast;
|
||||
GVAR(currentTemperature) = GVAR(currentTemperature) + GVAR(temperatureShift) - GVAR(badWeatherShift) * overcast;
|
||||
GVAR(currentTemperature) = round(GVAR(currentTemperature) * 10) / 10;
|
||||
|
||||
TRACE_2("temperatureShift/badWeatherShift",GVAR(temperatureShift),GVAR(badWeatherShift));
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Author: ACE2 Team
|
||||
* Author: ACE2 Team, Ruthberg
|
||||
*
|
||||
* Updates wind, gusts and waves based on ACE_wind
|
||||
*
|
||||
@ -11,6 +11,8 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (!GVAR(syncWind)) exitWith { ACE_wind = wind };
|
||||
|
||||
ACE_wind = [] call FUNC(getWind);
|
||||
setWind [ACE_wind select 0, ACE_wind select 1, true];
|
||||
2 setGusts 0;
|
||||
@ -18,4 +20,4 @@ setWind [ACE_wind select 0, ACE_wind select 1, true];
|
||||
// Set waves: 0 when no wind, 1 when wind >= 16 m/s
|
||||
1 setWaves (((vectorMagnitude ACE_wind) / 16.0) min 1.0);
|
||||
|
||||
//hintSilent format["Wind: %1\nACE_wind: %2\nDeviation: %3 (m/s)", wind, ACE_wind, Round((vectorMagnitude (ACE_wind vectorDiff wind)) * 1000) / 1000];
|
||||
TRACE_3("Wind/ACE_wind/Deviation(m/s)",wind,ACE_wind,Round((vectorMagnitude (ACE_wind vectorDiff wind)) * 1000) / 1000);
|
||||
|
@ -25,6 +25,34 @@ file(GLOB ACE_COMMON_SOURCES common/*.h common/*.hpp common/*.c common/*.cpp)
|
||||
add_library(ace_common STATIC ${ACE_COMMON_SOURCES})
|
||||
include_directories(AFTER "common")
|
||||
|
||||
string(TIMESTAMP ACE_BUILDSTAMP "%Y-%m-%dT%H:%M:%SZ")
|
||||
set(ACE_VERSION_MAJOR 3)
|
||||
set(ACE_VERSION_MINOR 0)
|
||||
set(ACE_VERSION_REVISION 1)
|
||||
EXECUTE_PROCESS(COMMAND git rev-parse --verify HEAD
|
||||
OUTPUT_VARIABLE T_ACE_VERSION_BUILD
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
string(SUBSTRING ${T_ACE_VERSION_BUILD} 0 7 ACE_VERSION_BUILD )
|
||||
|
||||
message("Building for: " ${ACE_VERSION_MAJOR}.${ACE_VERSION_MINOR}.${ACE_VERSION_REVISION}-${ACE_VERSION_BUILD})
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/common/ace_version.hpp.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/common/ace_version.hpp"
|
||||
@ONLY)
|
||||
|
||||
if(MSVC)
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/common/ace_version_win32.rc.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/common/ace_version_win32.rc"
|
||||
@ONLY)
|
||||
set(GLOBAL_RC ${CMAKE_CURRENT_BINARY_DIR}/common/ace_version_win32.rc)
|
||||
endif()
|
||||
|
||||
include_directories(AFTER ${CMAKE_CURRENT_BINARY_DIR}/common)
|
||||
set(GLOBAL_SOURCES ${GLOBAL_RC})
|
||||
|
||||
# Add extensions to build here
|
||||
add_subdirectory(fcs)
|
||||
add_subdirectory(breakLine)
|
||||
|
@ -19,8 +19,6 @@
|
||||
#define STD_AIR_DENSITY_ICAO 1.22498
|
||||
#define STD_AIR_DENSITY_ASM 1.20885
|
||||
|
||||
static char version[] = "1.0";
|
||||
|
||||
struct Bullet {
|
||||
double airFriction;
|
||||
double caliber;
|
||||
@ -242,7 +240,7 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
{
|
||||
if (!strcmp(function, "version"))
|
||||
{
|
||||
int n = sprintf_s(output, outputSize, "%s", version);
|
||||
int n = sprintf_s(output, outputSize, "%s", ACE_FULL_VERSION_STR);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
set(ACE_EXTENSION_NAME "ace_advanced_ballistics")
|
||||
|
||||
file(GLOB SOURCES *.h *.hpp *.c *.cpp)
|
||||
add_library( ${ACE_EXTENSION_NAME} SHARED ${SOURCES})
|
||||
add_library( ${ACE_EXTENSION_NAME} SHARED ${GLOBAL_SOURCES} ${SOURCES})
|
||||
add_dependencies(${ACE_EXTENSION_NAME} ace_common)
|
||||
SET_TARGET_PROPERTIES(${ACE_EXTENSION_NAME} PROPERTIES PREFIX "")
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
set(ACE_EXTENSION_NAME "ace_breakLine")
|
||||
|
||||
file(GLOB SOURCES *.h *.hpp *.c *.cpp)
|
||||
add_library( ${ACE_EXTENSION_NAME} SHARED ${SOURCES})
|
||||
add_library( ${ACE_EXTENSION_NAME} SHARED ${GLOBAL_SOURCES} ${SOURCES})
|
||||
add_dependencies(${ACE_EXTENSION_NAME} ace_common)
|
||||
SET_TARGET_PROPERTIES(${ACE_EXTENSION_NAME} PROPERTIES PREFIX "")
|
||||
|
||||
|
@ -19,8 +19,6 @@
|
||||
|
||||
#define MAXCHARACTERS 14
|
||||
|
||||
static char VERSION[] = "1.0";
|
||||
|
||||
extern "C" {
|
||||
__declspec (dllexport) void __stdcall RVExtension(char *output, int outputSize, const char *function);
|
||||
};
|
||||
@ -39,8 +37,8 @@ std::vector<std::string> splitString(const std::string & input) {
|
||||
|
||||
std::string addLineBreaks(const std::vector<std::string> &words) {
|
||||
std::stringstream sstream;
|
||||
int numChar = 0;
|
||||
int i = 0;
|
||||
size_t numChar = 0;
|
||||
size_t i = 0;
|
||||
|
||||
while (i < words.size()) {
|
||||
if (numChar == 0) {
|
||||
@ -68,7 +66,7 @@ std::string addLineBreaks(const std::vector<std::string> &words) {
|
||||
|
||||
void __stdcall RVExtension(char *output, int outputSize, const char *function) {
|
||||
if (!strcmp(function, "version")) {
|
||||
strncpy(output, VERSION, outputSize);
|
||||
strncpy(output, ACE_FULL_VERSION_STR, outputSize);
|
||||
} else {
|
||||
strncpy(output, addLineBreaks(splitString(function)).c_str(), outputSize);
|
||||
output[outputSize - 1] = '\0';
|
||||
|
@ -1,4 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#include "ace_version.hpp"
|
||||
|
4
extensions/common/ace_version.hpp.in
Normal file
4
extensions/common/ace_version.hpp.in
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define ACE_VERSION_STR "@ACE_VERSION_MAJOR@.@ACE_VERSION_MINOR@.@ACE_VERSION_REVISION@"
|
||||
#define ACE_FULL_VERSION_STR "@ACE_VERSION_MAJOR@.@ACE_VERSION_MINOR@.@ACE_VERSION_REVISION@-@ACE_VERSION_BUILD@"
|
47
extensions/common/ace_version_win32.rc.in
Normal file
47
extensions/common/ace_version_win32.rc.in
Normal file
@ -0,0 +1,47 @@
|
||||
#ifdef _WIN32
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#ifndef DEBUG
|
||||
#define VER_DEBUG 0
|
||||
#else
|
||||
#define VER_DEBUG VS_FF_DEBUG
|
||||
#endif
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION @ACE_VERSION_MAJOR@, @ACE_VERSION_MINOR@, @ACE_VERSION_REVISION@
|
||||
PRODUCTVERSION @ACE_VERSION_MAJOR@, @ACE_VERSION_MINOR@, @ACE_VERSION_REVISION@
|
||||
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||||
FILEFLAGS (VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE|VER_DEBUG)
|
||||
FILEOS VOS__WINDOWS32
|
||||
FILETYPE VFT_DLL
|
||||
FILESUBTYPE VFT2_UNKNOWN
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904E4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "ACE3 Team"
|
||||
VALUE "FileDescription", "@ACE_VERSION_MAJOR@.@ACE_VERSION_MINOR@.@ACE_VERSION_REVISION@-@ACE_VERSION_BUILD@"
|
||||
VALUE "FileVersion", "@ACE_VERSION_MAJOR@.@ACE_VERSION_MINOR@.@ACE_VERSION_REVISION@-@ACE_VERSION_BUILD@"
|
||||
VALUE "ProductName", "ACE3"
|
||||
VALUE "ProductVersion", "@ACE_VERSION_MAJOR@.@ACE_VERSION_MINOR@.@ACE_VERSION_REVISION@-@ACE_VERSION_BUILD@"
|
||||
VALUE "Build Date", "@ACE_BUILDSTAMP@"
|
||||
END
|
||||
END
|
||||
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
/* The following line should only be modified for localized versions. */
|
||||
/* It consists of any number of WORD,WORD pairs, with each pair */
|
||||
/* describing a language,codepage combination supported by the file. */
|
||||
/* */
|
||||
/* For example, a file might have values "0x409,1252" indicating that it */
|
||||
/* supports English language (0x409) in the Windows ANSI codepage (1252). */
|
||||
|
||||
VALUE "Translation", 0x409, 1252
|
||||
|
||||
END
|
||||
END
|
||||
|
||||
#endif
|
@ -1,7 +1,7 @@
|
||||
set(ACE_EXTENSION_NAME "ace_fcs")
|
||||
|
||||
file(GLOB SOURCES *.h *.hpp *.c *.cpp)
|
||||
add_library( ${ACE_EXTENSION_NAME} SHARED ${SOURCES})
|
||||
add_library( ${ACE_EXTENSION_NAME} SHARED ${GLOBAL_SOURCES} ${SOURCES})
|
||||
add_dependencies(${ACE_EXTENSION_NAME} ace_common)
|
||||
SET_TARGET_PROPERTIES(${ACE_EXTENSION_NAME} PROPERTIES PREFIX "")
|
||||
|
||||
|
@ -25,8 +25,6 @@
|
||||
#define PRECISION 0.1
|
||||
#define RADIANS(X) (X / (180 / M_PI))
|
||||
|
||||
static char version[] = "1.0";
|
||||
|
||||
extern "C" {
|
||||
__declspec (dllexport) void __stdcall RVExtension(char *output, int outputSize, const char *function);
|
||||
};
|
||||
@ -104,7 +102,7 @@ double getSolution(double initSpeed, double airFriction, double angleTarget, dou
|
||||
|
||||
void __stdcall RVExtension(char *output, int outputSize, const char *function) {
|
||||
if (!strcmp(function, "version")) {
|
||||
strncpy(output, version, outputSize);
|
||||
strncpy(output, ACE_FULL_VERSION_STR, outputSize);
|
||||
} else {
|
||||
std::vector<std::string> argStrings = splitString(function);
|
||||
double initSpeed = std::stod(argStrings[0]);
|
||||
|
65
optionals/hlc_ar15_comp/CfgWeapons.hpp
Normal file
65
optionals/hlc_ar15_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,65 @@
|
||||
class CfgWeapons
|
||||
{
|
||||
class Rifle;
|
||||
class Rifle_Base_F;
|
||||
class hlc_ar15_base: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=11.5;
|
||||
};
|
||||
class hlc_rifle_RU556: hlc_ar15_base
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=10.3;
|
||||
};
|
||||
class hlc_rifle_RU5562: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=10.3;
|
||||
};
|
||||
class hlc_rifle_CQBR: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=10;
|
||||
};
|
||||
class hlc_rifle_M4: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class hlc_rifle_bcmjack: hlc_ar15_base
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class hlc_rifle_Colt727: hlc_ar15_base
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class hlc_rifle_Colt727_GL: hlc_rifle_Colt727
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class hlc_rifle_Bushmaster300: hlc_rifle_Colt727
|
||||
{
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class hlc_rifle_vendimus: hlc_rifle_Bushmaster300
|
||||
{
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=16;
|
||||
};
|
||||
class hlc_rifle_SAMR: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=16;
|
||||
};
|
||||
class hlc_rifle_honeybase: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=6;
|
||||
};
|
||||
};
|
14
optionals/hlc_ar15_comp/config.cpp
Normal file
14
optionals/hlc_ar15_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_ar15"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/hlc_ar15_comp/script_component.hpp
Normal file
5
optionals/hlc_ar15_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlcweapons_ar15_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
60
optionals/hlc_wp_mp5_comp/CfgWeapons.hpp
Normal file
60
optionals/hlc_wp_mp5_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class Rifle_Base_F;
|
||||
class hlc_MP5_base: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_mp5k_PDW: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=4.5;
|
||||
};
|
||||
class hlc_smg_mp5k: hlc_smg_mp5k_PDW
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=4.5;
|
||||
};
|
||||
class hlc_smg_mp5a2: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_MP5N: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_9mmar: hlc_smg_MP5N
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_mp5a4: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_mp510: hlc_smg_MP5N
|
||||
{
|
||||
ACE_barrelTwist=15;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_mp5sd5: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_mp5a3: hlc_smg_mp5a2
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class hlc_smg_mp5sd6: hlc_smg_mp5sd5
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
};
|
14
optionals/hlc_wp_mp5_comp/config.cpp
Normal file
14
optionals/hlc_wp_mp5_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_mp5"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/hlc_wp_mp5_comp/script_component.hpp
Normal file
5
optionals/hlc_wp_mp5_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlcweapons_mp5_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
55
optionals/hlcmods_ak_comp/CfgWeapons.hpp
Normal file
55
optionals/hlcmods_ak_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,55 @@
|
||||
class CfgWeapons
|
||||
{
|
||||
class hlc_ak_base;
|
||||
class hlc_rifle_ak12;
|
||||
class hlc_rifle_ak74: hlc_ak_base
|
||||
{
|
||||
ACE_barrelTwist=7.8699999;
|
||||
ACE_barrelLength=16.299999;
|
||||
};
|
||||
class hlc_rifle_aku12: hlc_rifle_ak12
|
||||
{
|
||||
ACE_barrelTwist=6.3000002;
|
||||
ACE_barrelLength=8.3000002;
|
||||
};
|
||||
class hlc_rifle_RPK12: hlc_rifle_ak12
|
||||
{
|
||||
ACE_barrelLength=23.200001;
|
||||
};
|
||||
class hlc_rifle_aks74u: hlc_rifle_ak74
|
||||
{
|
||||
ACE_barrelTwist=6.3000002;
|
||||
ACE_barrelLength=8.3000002;
|
||||
};
|
||||
class hlc_rifle_ak47: hlc_rifle_ak74
|
||||
{
|
||||
ACE_barrelTwist=9.4499998;
|
||||
ACE_barrelLength=16.299999;
|
||||
};
|
||||
class hlc_rifle_akm: hlc_rifle_ak47
|
||||
{
|
||||
ACE_barrelTwist=7.8699999;
|
||||
ACE_barrelLength=16.299999;
|
||||
};
|
||||
class hlc_rifle_rpk: hlc_rifle_ak47
|
||||
{
|
||||
ACE_barrelTwist=9.4499998;
|
||||
ACE_barrelLength=23.200001;
|
||||
};
|
||||
class hlc_rifle_rpk74n: hlc_rifle_rpk
|
||||
{
|
||||
ACE_barrelTwist=9.4499998;
|
||||
ACE_barrelLength=23.200001;
|
||||
};
|
||||
class hlc_rifle_aek971: hlc_rifle_ak74
|
||||
{
|
||||
ACE_barrelTwist=9.5;
|
||||
ACE_barrelLength=17;
|
||||
};
|
||||
class hlc_rifle_saiga12k: hlc_rifle_ak47
|
||||
{
|
||||
ACE_barrelTwist=0;
|
||||
ACE_twistDirection=0;
|
||||
ACE_barrelLength=16.9;
|
||||
};
|
||||
};
|
14
optionals/hlcmods_ak_comp/config.cpp
Normal file
14
optionals/hlcmods_ak_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_aks"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/hlcmods_ak_comp/script_component.hpp
Normal file
5
optionals/hlcmods_ak_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlcweapons_aks_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
315
optionals/hlcmods_core_comp/CfgAmmo.hpp
Normal file
315
optionals/hlcmods_core_comp/CfgAmmo.hpp
Normal file
@ -0,0 +1,315 @@
|
||||
class CfgAmmo
|
||||
{
|
||||
class B_762x51_Ball;
|
||||
class B_556x45_Ball;
|
||||
class B_127x99_Ball;
|
||||
class B_127x99_Ball_Tracer_Red;
|
||||
class HLC_762x51_ball;
|
||||
class HLC_556NATO_EPR: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=62;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-27.20, -26.44, -23.76, -21.00, -17.54, -13.10, -7.95, -1.62, 6.24, 15.48, 27.75};
|
||||
ACE_ballisticCoefficients[]={0.151};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={723, 764, 796, 825, 843, 866, 878, 892, 906, 915, 922, 900};
|
||||
ACE_barrelLengths[]={8.3, 9.4, 10.6, 11.8, 13.0, 14.2, 15.4, 16.5, 17.7, 18.9, 20.0, 24.0};
|
||||
};
|
||||
class HLC_556NATO_SOST: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=62;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.307};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={780, 886, 950};
|
||||
ACE_barrelLengths[]={10, 15.5, 20};
|
||||
};
|
||||
class HLC_556NATO_SPR: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=77;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.361};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={624, 816, 832, 838};
|
||||
ACE_barrelLengths[]={7.5, 14.5, 18, 20};
|
||||
};
|
||||
class HLC_300Blackout_Ball: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.118;
|
||||
ACE_bulletMass=147;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.398};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={559, 609, 625};
|
||||
ACE_barrelLengths[]={6, 16, 20};
|
||||
};
|
||||
class HLC_300Blackout_SMK: HLC_300Blackout_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.489;
|
||||
ACE_bulletMass=220;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.608};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={300, 320, 340};
|
||||
ACE_barrelLengths[]={9, 16, 20};
|
||||
};
|
||||
class HLC_762x39_Ball: HLC_300Blackout_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=123;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.275};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={650, 716, 750};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
};
|
||||
class HLC_762x39_Tracer: HLC_762x39_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=117;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.275};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={650, 716, 750};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
};
|
||||
class HLC_762x51_MK316_20in: B_762x51_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=175;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.243};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={750, 780, 790, 794};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class HLC_762x51_BTSub: B_762x51_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.340;
|
||||
ACE_bulletMass=200;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.235};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={305, 325, 335, 340};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class HLC_762x54_ball: HLC_762x51_ball
|
||||
{
|
||||
ACE_caliber=0.312;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=152;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.4};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={700, 800, 820, 833};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class HLC_762x54_tracer: HLC_762x51_tracer
|
||||
{
|
||||
ACE_caliber=0.312;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=149;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.395};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={680, 750, 798, 800};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class HLC_303Brit_B: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.311;
|
||||
ACE_bulletLength=1.227;
|
||||
ACE_bulletMass=174;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.499, 0.493, 0.48};
|
||||
ACE_velocityBoundaries[]={671, 549};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={748, 761, 765};
|
||||
ACE_barrelLengths[]={20, 24, 26};
|
||||
};
|
||||
class HLC_792x57_Ball: HLC_303Brit_B
|
||||
{
|
||||
ACE_caliber=0.318;
|
||||
ACE_bulletLength=1.128;
|
||||
ACE_bulletMass=196;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.315};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={785, 800, 815};
|
||||
ACE_barrelLengths[]={20, 23.62, 26};
|
||||
};
|
||||
class HLC_542x42_ball: HLC_303Brit_B
|
||||
{
|
||||
};
|
||||
class HLC_542x42_Tracer: HLC_303Brit_B
|
||||
{
|
||||
};
|
||||
class FH_545x39_Ball: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.220;
|
||||
ACE_bulletLength=0.85;
|
||||
ACE_bulletMass=52.9;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.168};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={780, 880, 920};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
};
|
||||
class FH_545x39_7u1: FH_545x39_Ball
|
||||
{
|
||||
ACE_bulletMass=80;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_muzzleVelocities[]={260, 303, 320};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
};
|
||||
class HLC_57x28mm_JHP: FH_545x39_Ball
|
||||
{
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.495;
|
||||
ACE_bulletMass=28;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.144};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={550, 625, 720};
|
||||
ACE_barrelLengths[]={4, 6, 10.35};
|
||||
};
|
||||
class HLC_9x19_Ball: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.355;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=124;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.165};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={340, 370, 400};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
};
|
||||
class HLC_9x19_M882_SMG: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.355;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=124;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.165};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={340, 370, 400};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
};
|
||||
class HLC_9x19_GoldDot: HLC_9x19_Ball
|
||||
{
|
||||
ACE_muzzleVelocities[]={350, 380, 420};
|
||||
};
|
||||
class HLC_9x19_Subsonic: HLC_9x19_Ball
|
||||
{
|
||||
ACE_muzzleVelocities[]={300, 320, 340};
|
||||
};
|
||||
class HLC_10mm_FMJ: HLC_9x19_Ball
|
||||
{
|
||||
ACE_caliber=0.5;
|
||||
ACE_bulletLength=0.764;
|
||||
ACE_bulletMass=165;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.189};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={360, 400, 430};
|
||||
ACE_barrelLengths[]={4, 4.61, 9};
|
||||
};
|
||||
class HLC_45ACP_Ball: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.452;
|
||||
ACE_bulletLength=0.68;
|
||||
ACE_bulletMass=230;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.195};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={230, 250, 285};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
};
|
||||
class FH_44Mag: HLC_45ACP_Ball
|
||||
{
|
||||
ACE_caliber=0.429;
|
||||
ACE_bulletLength=0.804;
|
||||
ACE_bulletMass=200;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.172};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={360, 390, 420};
|
||||
ACE_barrelLengths[]={4, 7.5, 9};
|
||||
};
|
||||
class FH_50BMG_SLAP: B_127x99_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.25;
|
||||
ACE_bulletMass=350;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={1.056};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={1204};
|
||||
ACE_barrelLengths[]={29};
|
||||
};
|
||||
class FH_50BMG_Raufoss: B_127x99_Ball
|
||||
{
|
||||
ACE_caliber=0.510;
|
||||
ACE_bulletLength=2.380;
|
||||
ACE_bulletMass=660;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.670};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={817};
|
||||
ACE_barrelLengths[]={29};
|
||||
};
|
||||
};
|
14
optionals/hlcmods_core_comp/config.cpp
Normal file
14
optionals/hlcmods_core_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_core"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgAmmo.hpp"
|
5
optionals/hlcmods_core_comp/script_component.hpp
Normal file
5
optionals/hlcmods_core_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlcweapons_core_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
50
optionals/hlcmods_fal_comp/CfgWeapons.hpp
Normal file
50
optionals/hlcmods_fal_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,50 @@
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class hlc_fal_base;
|
||||
class hlc_rifle_falosw: hlc_fal_base
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=13;
|
||||
};
|
||||
class hlc_rifle_osw_GL: hlc_rifle_falosw
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=13;
|
||||
};
|
||||
class hlc_rifle_SLR: hlc_fal_base
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=21.700001;
|
||||
};
|
||||
class hlc_rifle_STG58F: hlc_fal_base
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=21;
|
||||
};
|
||||
class hlc_rifle_FAL5061: hlc_fal_base
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=18;
|
||||
};
|
||||
class hlc_rifle_L1A1SLR: hlc_rifle_SLR
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=21.700001;
|
||||
};
|
||||
class hlc_rifle_c1A1: hlc_rifle_SLR
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=21.700001;
|
||||
};
|
||||
class hlc_rifle_LAR: hlc_rifle_FAL5061
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=21;
|
||||
};
|
||||
class hlc_rifle_SLRchopmod: hlc_rifle_FAL5061
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=18;
|
||||
};
|
||||
};
|
14
optionals/hlcmods_fal_comp/config.cpp
Normal file
14
optionals/hlcmods_fal_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_falpocalypse"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/hlcmods_fal_comp/script_component.hpp
Normal file
5
optionals/hlcmods_fal_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlcweapons_falpocalypse_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
45
optionals/hlcmods_g3_comp/CfgWeapons.hpp
Normal file
45
optionals/hlcmods_g3_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class hlc_g3_base;
|
||||
class hlc_rifle_g3sg1: hlc_g3_base
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=17.700001;
|
||||
};
|
||||
class hlc_rifle_psg1: hlc_rifle_g3sg1
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=25.6;
|
||||
};
|
||||
class hlc_rifle_g3a3: hlc_rifle_g3sg1
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=17.700001;
|
||||
};
|
||||
class hlc_rifle_g3a3ris: hlc_rifle_g3a3
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=17.700001;
|
||||
};
|
||||
class hlc_rifle_g3ka4: hlc_rifle_g3a3
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=12.4;
|
||||
};
|
||||
class HLC_Rifle_g3ka4_GL: hlc_rifle_g3ka4
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=12.4;
|
||||
};
|
||||
class hlc_rifle_hk51: hlc_rifle_g3sg1
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=8.3100004;
|
||||
};
|
||||
class hlc_rifle_hk53: hlc_rifle_g3sg1
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=8.3100004;
|
||||
};
|
||||
};
|
14
optionals/hlcmods_g3_comp/config.cpp
Normal file
14
optionals/hlcmods_g3_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_g3"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/hlcmods_g3_comp/script_component.hpp
Normal file
5
optionals/hlcmods_g3_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlcweapons_g3_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
16
optionals/hlcmods_m14_comp/CfgWeapons.hpp
Normal file
16
optionals/hlcmods_m14_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class Rifle_Base_F;
|
||||
class hlc_rifle_M14;
|
||||
class hlc_M14_base: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=22;
|
||||
};
|
||||
class hlc_rifle_m14sopmod: hlc_rifle_M14
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=18;
|
||||
};
|
||||
};
|
14
optionals/hlcmods_m14_comp/config.cpp
Normal file
14
optionals/hlcmods_m14_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_m14"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/hlcmods_m14_comp/script_component.hpp
Normal file
5
optionals/hlcmods_m14_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlcweapons_m14_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
15
optionals/hlcmods_m60e4_comp/CfgWeapons.hpp
Normal file
15
optionals/hlcmods_m60e4_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class hlc_M60e4_base;
|
||||
class hlc_lmg_M60E4: hlc_M60e4_base
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=17;
|
||||
};
|
||||
class hlc_lmg_m60: hlc_M60e4_base
|
||||
{
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=22;
|
||||
};
|
||||
};
|
14
optionals/hlcmods_m60e4_comp/config.cpp
Normal file
14
optionals/hlcmods_m60e4_comp/config.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_m60e4"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/hlcmods_m60e4_comp/script_component.hpp
Normal file
5
optionals/hlcmods_m60e4_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT hlc_m60e4_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
206
optionals/rh_m4_comp/CfgAmmo.hpp
Normal file
206
optionals/rh_m4_comp/CfgAmmo.hpp
Normal file
@ -0,0 +1,206 @@
|
||||
class CfgAmmo {
|
||||
|
||||
class Default;
|
||||
class BulletCore;
|
||||
class BulletBase;
|
||||
class B_9x21_Ball;
|
||||
class B_556x45_Ball;
|
||||
class B_65x39_Caseless;
|
||||
class B_762x51_Ball;
|
||||
|
||||
class RH_9x19_B_M822: BulletBase
|
||||
{
|
||||
ACE_caliber=0.355;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=124;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.165};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={340, 370, 400};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
};
|
||||
class RH_9x19_B_HP: BulletBase
|
||||
{
|
||||
ACE_caliber=0.355;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=124;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.165};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={340, 370, 400};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
};
|
||||
class RH_9x19_B_HPSB: BulletBase
|
||||
{
|
||||
ACE_caliber=0.355;
|
||||
ACE_bulletLength=0.603;
|
||||
ACE_bulletMass=147;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.212};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={295, 310, 330};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
};
|
||||
class RH_556x45_B_M855A1: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=62;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-27.20, -26.44, -23.76, -21.00, -17.54, -13.10, -7.95, -1.62, 6.24, 15.48, 27.75};
|
||||
ACE_ballisticCoefficients[]={0.151};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={723, 764, 796, 825, 843, 866, 878, 892, 906, 915, 922, 900};
|
||||
ACE_barrelLengths[]={8.3, 9.4, 10.6, 11.8, 13.0, 14.2, 15.4, 16.5, 17.7, 18.9, 20.0, 24.0};
|
||||
};
|
||||
class RH_556x45_B_Mk318: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=62;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.307};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={780, 886, 950};
|
||||
ACE_barrelLengths[]={10, 15.5, 20};
|
||||
};
|
||||
class RH_556x45_B_Mk262: B_556x45_Ball
|
||||
{
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=77;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.361};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={624, 816, 832, 838};
|
||||
ACE_barrelLengths[]={7.5, 14.5, 18, 20};
|
||||
};
|
||||
class RH_68x43_B_FMJ: B_65x39_Caseless
|
||||
{
|
||||
ACE_caliber=0.277;
|
||||
ACE_bulletLength=0.959;
|
||||
ACE_bulletMass=115;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.162};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={713, 785, 810, 850};
|
||||
ACE_barrelLengths[]={12, 16, 20, 24};
|
||||
};
|
||||
class RH_68x43_B_Match: B_65x39_Caseless
|
||||
{
|
||||
ACE_caliber=0.277;
|
||||
ACE_bulletLength=1.250;
|
||||
ACE_bulletMass=135;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.253};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={700, 732, 750, 780};
|
||||
ACE_barrelLengths[]={12, 16, 20, 24};
|
||||
};
|
||||
class RH_762x35_B_FMJ: B_65x39_Caseless
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.118;
|
||||
ACE_bulletMass=147;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.398};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={559, 609, 625};
|
||||
ACE_barrelLengths[]={6, 16, 20};
|
||||
};
|
||||
class RH_762x35_B_Match: B_65x39_Caseless
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.153;
|
||||
ACE_bulletMass=125;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.349, 0.338, 0.330, 0.310};
|
||||
ACE_velocityBoundaries[]={792, 610, 488};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={572, 676, 700};
|
||||
ACE_barrelLengths[]={6, 16, 20};
|
||||
};
|
||||
class RH_762x35_B_MSB: B_65x39_Caseless
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.489;
|
||||
ACE_bulletMass=220;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.608};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={300, 320, 340};
|
||||
ACE_barrelLengths[]={9, 16, 20};
|
||||
};
|
||||
class RH_762x51_B_M80A1: B_762x51_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=146;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
|
||||
ACE_ballisticCoefficients[]={0.2};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={700, 800, 820, 833, 845};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26};
|
||||
};
|
||||
class RH_762x51_B_Mk316LR: B_762x51_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=175;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-5.3, -5.1, -4.6, -4.2, -3.4, -2.6, -1.4, -0.3, 1.4, 3.0, 5.2};
|
||||
ACE_ballisticCoefficients[]={0.243};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={775, 790, 805, 810};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
class RH_762x51_B_Mk319: B_762x51_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=130;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.377};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={838, 892, 910};
|
||||
ACE_barrelLengths[]={13, 16, 20};
|
||||
};
|
||||
class RH_762x51_B_LFMJSB: B_762x51_Ball
|
||||
{
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.340;
|
||||
ACE_bulletMass=200;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
|
||||
ACE_ballisticCoefficients[]={0.235};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={305, 325, 335, 340};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
};
|
||||
};
|
158
optionals/rh_m4_comp/CfgWeapons.hpp
Normal file
158
optionals/rh_m4_comp/CfgWeapons.hpp
Normal file
@ -0,0 +1,158 @@
|
||||
class Mode_SemiAuto;
|
||||
class Mode_Burst;
|
||||
class Mode_FullAuto;
|
||||
class SlotInfo;
|
||||
class MuzzleSlot;
|
||||
class CowsSlot;
|
||||
class PointerSlot;
|
||||
class UnderBarrelSlot;
|
||||
class asdg_SlotInfo;
|
||||
class asdg_FrontSideRail;
|
||||
class asdg_OpticRail;
|
||||
class asdg_OpticRail1913;
|
||||
class asdg_OpticRail1913_short;
|
||||
class asdg_MuzzleSlot_556;
|
||||
class asdg_MuzzleSlot_762;
|
||||
class asdg_MuzzleSlot_9MM;
|
||||
class asdg_UnderSlot;
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class Rifle;
|
||||
class UGL_F;
|
||||
class Rifle_Base_F: Rifle
|
||||
{
|
||||
};
|
||||
class ItemCore;
|
||||
class ItemInfo;
|
||||
class InventoryItem_Base_F;
|
||||
class InventoryMuzzleItem_Base_F;
|
||||
class InventoryOpticsItem_Base_F;
|
||||
class InventoryFlashLightItem_Base_F;
|
||||
class Zasleh2;
|
||||
class RH_ar10: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=11.25;
|
||||
ACE_barrelLength=20.8;
|
||||
};
|
||||
class RH_m110: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_Mk11: RH_m110
|
||||
{
|
||||
ACE_barrelTwist=11.25;
|
||||
ACE_barrelLength=24;
|
||||
};
|
||||
class RH_SR25EC: RH_m110
|
||||
{
|
||||
ACE_barrelTwist=11.25;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_m4: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class RH_M4_ris: RH_m4
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class RH_M4A1_ris: RH_M4_ris
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class RH_M4m: RH_M4A1_ris
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=10.5;
|
||||
};
|
||||
class RH_M4sbr: RH_M4A1_ris
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=10.5;
|
||||
};
|
||||
class RH_hb: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=6;
|
||||
};
|
||||
class RH_hb_b: RH_hb
|
||||
{
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=6;
|
||||
};
|
||||
class RH_sbr9: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=9.7;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class RH_M4A6: RH_M4A1_ris
|
||||
{
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class RH_M16a1: RH_m4
|
||||
{
|
||||
ACE_barrelTwist=14;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_M16A2: RH_m4
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_M16A4 : Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_M16A3: RH_M16A4
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_M16A4_m: RH_M16A4
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_M16A6: RH_M16A4
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_Mk12mod1: RH_M16A4
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=18;
|
||||
};
|
||||
class RH_SAMR: RH_Mk12mod1
|
||||
{
|
||||
ACE_barrelTwist=7.7;
|
||||
ACE_barrelLength=20;
|
||||
};
|
||||
class RH_Hk416: RH_M4A1_ris
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=14.5;
|
||||
};
|
||||
class RH_Hk416s: RH_M4sbr
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=10.4;
|
||||
};
|
||||
class RH_Hk416c: RH_M4sbr
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=9;
|
||||
};
|
||||
class RH_M27IAR: RH_Mk12mod1
|
||||
{
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=16.5;
|
||||
};
|
||||
};
|
15
optionals/rh_m4_comp/config.cpp
Normal file
15
optionals/rh_m4_comp/config.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"asdg_jointrails","RH_m4_cfg"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgAmmo.hpp"
|
||||
#include "CfgWeapons.hpp"
|
5
optionals/rh_m4_comp/script_component.hpp
Normal file
5
optionals/rh_m4_comp/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
||||
#define COMPONENT rh_m4_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -53,7 +53,7 @@ def check_privates(filepath):
|
||||
|
||||
|
||||
# Regex search privates
|
||||
srch = re.compile('(?<![_a-zA-Z0-9])(_[a-zA-Z]*?)[ ,\}\]\)";]')
|
||||
srch = re.compile('(?<![_a-zA-Z0-9])(_[a-zA-Z]*?)[ ,\^\-\+\/\*\%\}\]\)";]')
|
||||
priv_use = srch.findall(content)
|
||||
priv_use = sorted(set(priv_use))
|
||||
|
||||
|
128
tools/search_unused_privates.py
Normal file
128
tools/search_unused_privates.py
Normal file
@ -0,0 +1,128 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import fnmatch
|
||||
import os
|
||||
import re
|
||||
import ntpath
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
def get_private_declare(content):
|
||||
priv_declared = []
|
||||
|
||||
srch = re.compile('private.*')
|
||||
priv_srch_declared = srch.findall(content)
|
||||
priv_srch_declared = sorted(set(priv_srch_declared))
|
||||
|
||||
priv_dec_str = ''.join(priv_srch_declared)
|
||||
|
||||
srch = re.compile('(?<![_a-zA-Z0-9])(_[a-zA-Z]*?)[ ,\}\]\)";]')
|
||||
priv_split = srch.findall(priv_dec_str)
|
||||
priv_split = sorted(set(priv_split))
|
||||
priv_declared += priv_split;
|
||||
|
||||
srch = re.compile('PARAMS_[0-9].*|EXPLODE_[0-9]_PVT.*|DEFAULT_PARAM.*|KEY_PARAM.*|IGNORE_PRIVATE_WARNING.*')
|
||||
priv_srch_declared = srch.findall(content)
|
||||
priv_srch_declared = sorted(set(priv_srch_declared))
|
||||
|
||||
priv_dec_str = ''.join(priv_srch_declared)
|
||||
|
||||
srch = re.compile('(?<![_a-zA-Z0-9])(_[a-zA-Z]*?)[ ,\}\]\)";]')
|
||||
priv_split = srch.findall(priv_dec_str)
|
||||
priv_split = sorted(set(priv_split))
|
||||
|
||||
priv_declared += priv_split;
|
||||
|
||||
|
||||
return priv_declared
|
||||
|
||||
def check_privates(filepath):
|
||||
bad_count_file = 0
|
||||
def pushClosing(t):
|
||||
closingStack.append(closing.expr)
|
||||
closing << Literal( closingFor[t[0]] )
|
||||
|
||||
def popClosing():
|
||||
closing << closingStack.pop()
|
||||
|
||||
with open(filepath, 'r') as file:
|
||||
content = file.read()
|
||||
|
||||
priv_use = []
|
||||
priv_use = []
|
||||
|
||||
|
||||
# Regex search privates
|
||||
srch = re.compile('(?<![_a-zA-Z0-9])(_[a-zA-Z]*?)[ ,\}\]\)";]')
|
||||
priv_use = srch.findall(content)
|
||||
|
||||
# Private declaration search
|
||||
priv_declared = get_private_declare(content)
|
||||
|
||||
if '_this' in priv_declared: priv_declared.remove('_this')
|
||||
if '_this' in priv_use: priv_use.remove('_this')
|
||||
|
||||
if '_x' in priv_declared: priv_declared.remove('_x')
|
||||
if '_x' in priv_use: priv_use.remove('_x')
|
||||
|
||||
if '_forEachIndex' in priv_declared: priv_declared.remove('_forEachIndex')
|
||||
if '_forEachIndex' in priv_use: priv_use.remove('_forEachIndex')
|
||||
if '_foreachIndex' in priv_declared: priv_declared.remove('_foreachIndex')
|
||||
if '_foreachIndex' in priv_use: priv_use.remove('_foreachIndex')
|
||||
if '_foreachindex' in priv_declared: priv_declared.remove('_foreachindex')
|
||||
if '_foreachindex' in priv_use: priv_use.remove('_foreachindex')
|
||||
|
||||
unused = []
|
||||
for s in priv_declared:
|
||||
if priv_use.count(s) == 1:
|
||||
if s.lower() not in map(str.lower,unused):
|
||||
unused.append(s)
|
||||
|
||||
if len(unused) > 0:
|
||||
print (filepath)
|
||||
|
||||
private_output = 'private[';
|
||||
first = True
|
||||
for bad_priv in unused:
|
||||
if first:
|
||||
first = False
|
||||
private_output = private_output + '"' + bad_priv
|
||||
else:
|
||||
private_output = private_output + '", "' + bad_priv
|
||||
|
||||
private_output = private_output + '"];';
|
||||
print (private_output)
|
||||
|
||||
for bad_priv in unused:
|
||||
print ('\t' + bad_priv)
|
||||
bad_count_file = bad_count_file + 1
|
||||
|
||||
|
||||
|
||||
return bad_count_file
|
||||
|
||||
def main():
|
||||
|
||||
print("#########################")
|
||||
print("# Search your Privates #")
|
||||
print("#########################")
|
||||
|
||||
sqf_list = []
|
||||
bad_count = 0
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-m','--module', help='only search specified module addon folder', required=False, default=".")
|
||||
args = parser.parse_args()
|
||||
|
||||
for root, dirnames, filenames in os.walk('../addons' + '/' + args.module):
|
||||
for filename in fnmatch.filter(filenames, '*.sqf'):
|
||||
sqf_list.append(os.path.join(root, filename))
|
||||
|
||||
for filename in sqf_list:
|
||||
bad_count = bad_count + check_privates(filename)
|
||||
|
||||
|
||||
print ("Bad Count {0}".format(bad_count))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user