mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into userActionPrototype
This commit is contained in:
commit
58ee797a94
14
.travis.yml
Normal file
14
.travis.yml
Normal file
@ -0,0 +1,14 @@
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
language: python
|
||||
python:
|
||||
- "3.4"
|
||||
before_script:
|
||||
- pip install pygithub
|
||||
- pip install pygithub3
|
||||
script:
|
||||
- python3 tools/deploy.py
|
||||
env:
|
||||
global:
|
||||
- secure: "KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg="
|
@ -29,6 +29,7 @@ Walter Pearce <jaynus@gmail.com>
|
||||
ACCtomeek <tomeek99@gmail.com>
|
||||
Adanteh
|
||||
aeroson
|
||||
alef <alefor@gmail.com>
|
||||
Aggr094 <bastards4glory@gmail.com>
|
||||
Alganthe <alganthe@live.fr>
|
||||
Anthariel <Contact@storm-simulation.com>
|
||||
@ -93,3 +94,4 @@ Bla1337
|
||||
nikolauska <nikolauska1@gmail.com>
|
||||
adam3adam <br.ada@seznam.cz>
|
||||
Professor <lukas.trneny@wo.cz>
|
||||
Dharma Bellamkonda <dharma.bellamkonda@gmail.com>
|
||||
|
Binary file not shown.
Binary file not shown.
BIN
ace_fcs.dll
BIN
ace_fcs.dll
Binary file not shown.
1
addons/advanced_ballistics/$PBOPREFIX$
Normal file
1
addons/advanced_ballistics/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\advanced_ballistics
|
@ -4,10 +4,10 @@
|
||||
* Calculates the stability factor of a bullet
|
||||
*
|
||||
* Arguments:
|
||||
* 0: caliber - inches <NUMBER>
|
||||
* 1: bullet length - inches <NUMBER>
|
||||
* 2: bullet mass - grains <NUMBER>
|
||||
* 3: barrel twist - inches <NUMBER>
|
||||
* 0: caliber - mm <NUMBER>
|
||||
* 1: bullet length - mm <NUMBER>
|
||||
* 2: bullet mass - grams <NUMBER>
|
||||
* 3: barrel twist - mm <NUMBER>
|
||||
* 4: muzzle velocity shift - m/s <NUMBER>
|
||||
* 5: temperature - degrees celcius <NUMBER>
|
||||
* 6: barometric Pressure - hPA <NUMBER>
|
||||
@ -17,7 +17,8 @@
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_caliber", "_bulletLength", "_bulletMass", "_barrelTwist", "_muzzleVelocity", "_temperature", "_barometricPressure", "_l", "_t", "_stabilityFactor"];
|
||||
_caliber = _this select 0;
|
||||
_bulletLength = _this select 1;
|
||||
@ -31,15 +32,14 @@ _barometricPressure = _this select 6;
|
||||
_t = _barrelTwist / _caliber;
|
||||
_l = _bulletLength / _caliber;
|
||||
|
||||
_stabilityFactor = 30 * _bulletMass / (_t^2 * _caliber^3 * _l * (1 + _l^2));
|
||||
_stabilityFactor = 7587000 * _bulletMass / (_t^2 * _caliber^3 * _l * (1 + _l^2));
|
||||
|
||||
_muzzleVelocity = _muzzleVelocity * 3.2808399;
|
||||
if (_muzzleVelocity > 1120) then {
|
||||
_stabilityFactor = _stabilityFactor * (_muzzleVelocity / 2800) ^ (1/3);
|
||||
if (_muzzleVelocity > 341.376) then {
|
||||
_stabilityFactor = _stabilityFactor * (_muzzleVelocity / 853.44) ^ (1/3);
|
||||
} else {
|
||||
_stabilityFactor = _stabilityFactor * (_muzzleVelocity / 1120) ^ (1/3);
|
||||
_stabilityFactor = _stabilityFactor * (_muzzleVelocity / 341.376) ^ (1/3);
|
||||
};
|
||||
|
||||
_stabilityFactor = _stabilityFactor * (_temperature + 273) / (15 + 273) * 1013.25 / _barometricPressure;
|
||||
_stabilityFactor = _stabilityFactor * KELVIN(_temperature) / KELVIN(15) * 1013.25 / _barometricPressure;
|
||||
|
||||
_stabilityFactor
|
||||
|
@ -158,7 +158,7 @@ GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
||||
};
|
||||
|
||||
if (_bulletTraceVisible && _bulletSpeed > 600) then {
|
||||
drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.4*_caliber,0.2*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""];
|
||||
drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.0157480315*_caliber,0.00787401574*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""];
|
||||
};
|
||||
|
||||
call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, floor(time), time - floor(time)]);
|
||||
|
@ -21,7 +21,8 @@ class CfgAISkill {
|
||||
courage[] = {0,0, 1,0.7}; // {0,0,1,1};
|
||||
endurance[] = {0,0, 1,0.7}; // {0,0,1,1};
|
||||
general[] = {0,0, 1,0.9}; // {0,0,1,1};
|
||||
reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1};
|
||||
// apparently breaks rapid firing in single fire mode for players
|
||||
//reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1};
|
||||
spotDistance[] = {0,0, 1,0.9}; // {0,0.2,1,0.4};
|
||||
spotTime[] = {0,0, 1,0.7}; // {0,0,1,0.7};
|
||||
};
|
||||
|
@ -891,9 +891,12 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
|
||||
class OpticsIn
|
||||
{
|
||||
class WideUnstabalized
|
||||
{
|
||||
opticsDisplayName = "WU";
|
||||
delete Narrow;
|
||||
delete Medium;
|
||||
delete Wide;
|
||||
|
||||
class ACE_WideUnstabilized {
|
||||
opticsDisplayName = "W NS";
|
||||
initAngleX = 0;
|
||||
minAngleX = -35;
|
||||
maxAngleX = 10;
|
||||
@ -910,8 +913,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
horizontallyStabilized = 1;
|
||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
|
||||
};
|
||||
class Wide
|
||||
{
|
||||
class ACE_Wide: ACE_WideUnstabilized {
|
||||
opticsDisplayName = "W";
|
||||
initAngleX = 0;
|
||||
minAngleX = -35;
|
||||
@ -929,8 +931,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
horizontallyStabilized = 1;
|
||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
|
||||
};
|
||||
class Medium: Wide
|
||||
{
|
||||
class ACE_Medium: ACE_Wide {
|
||||
opticsDisplayName = "M";
|
||||
initFov = 0.093;
|
||||
minFov = 0.093;
|
||||
@ -940,8 +941,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
horizontallyStabilized = 1;
|
||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_medium_F";
|
||||
};
|
||||
class Narrow: Wide
|
||||
{
|
||||
class ACE_Narrow: ACE_Wide {
|
||||
opticsDisplayName = "N";
|
||||
initFov = 0.029;
|
||||
minFov = 0.029;
|
||||
@ -952,8 +952,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
|
||||
|
||||
};
|
||||
class Narrower: Wide
|
||||
{
|
||||
class ACE_Narrower: ACE_Wide {
|
||||
opticsDisplayName = "Z";
|
||||
initFov = 0.01;
|
||||
minFov = 0.01;
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Aircraft">
|
||||
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
|
||||
@ -34,7 +34,7 @@
|
||||
<Czech>Otevřít nákladní prostor</Czech>
|
||||
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
||||
<Russian>Открыть грузовой отсек</Russian>
|
||||
<Italian>Apri la porta del cargo</Italian>
|
||||
<Italian>Apri la rampa di carico</Italian>
|
||||
<Portuguese>Abrir porta de carga</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_CloseCargoRamp">
|
||||
@ -46,7 +46,7 @@
|
||||
<Czech>Zavřít nákladní prostor</Czech>
|
||||
<Hungarian>Rakodórámpa zárása</Hungarian>
|
||||
<Russian>Закрыть грузовой отсек</Russian>
|
||||
<Italian>Chiudi la porta del cargo</Italian>
|
||||
<Italian>Chiudi la rampa di carico</Italian>
|
||||
<Portuguese>Fechar porta de carga</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
|
1
addons/atragmx/$PBOPREFIX$
Normal file
1
addons/atragmx/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\atragmx
|
@ -142,6 +142,7 @@ class ATragMX_Display {
|
||||
name="ATragMX_Display";
|
||||
idd=-1;
|
||||
onLoad="uiNamespace setVariable ['ATragMX_Display', (_this select 0)]";
|
||||
onUnload=QUOTE(_this call FUNC(on_close_dialog));
|
||||
movingEnable=1;
|
||||
controlsBackground[]={};
|
||||
objects[]={};
|
||||
|
@ -19,7 +19,7 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
||||
|
||||
[".338LM 250gr" , 880, 100, 0.0598, -0.0006060, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
|
||||
[".338LM 300gr" , 800, 100, 0.0677, -0.0005350, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
|
||||
[".338LM API526" , 880, 100, 0.0601, -0.0006730, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.290, 7, "ICAO"],
|
||||
[".338LM API526" , 895, 100, 0.0601, -0.0006730, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
|
||||
|
||||
[".300WM Mk248 Mod 0", 900, 100, 0.0584, -0.0008300, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
|
||||
[".300WM Mk248 Mod 1", 867, 100, 0.0611, -0.0008150, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
|
||||
@ -30,6 +30,7 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
||||
["7.62x51mm M80" , 810, 100, 0.0679, -0.0010350, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
|
||||
["7.62x51mm M118LR" , 780, 100, 0.0710, -0.0008525, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
|
||||
["7.62x51mm Mk319" , 910, 100, 0.0585, -0.0010300, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
|
||||
["7.62x51mm M993" , 930, 100, 0.0585, -0.0010300, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
|
||||
["7.62x51mm Subsonic", 320, 100, 0.3060, -0.0004910, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
|
||||
|
||||
["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"],
|
||||
@ -38,7 +39,8 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
||||
|
||||
["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" ],
|
||||
["5.56x45mm Mk318" , 880, 100, 0.0616, -0.0011200, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ]];
|
||||
["5.56x45mm Mk318" , 880, 100, 0.0616, -0.0011200, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
|
||||
["5.56x45mm M995" , 869, 100, 0.0616, -0.0011200, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
|
||||
|
||||
[] call FUNC(clear_user_data);
|
||||
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
|
||||
|
@ -68,5 +68,6 @@ PREP(update_target_data);
|
||||
PREP(update_target_selection);
|
||||
PREP(update_unit_selection);
|
||||
PREP(update_zero_range);
|
||||
PREP(on_close_dialog);
|
||||
|
||||
ADDON = true;
|
||||
|
@ -52,11 +52,11 @@ if (!GVAR(atmosphereModeTBH)) then {
|
||||
};
|
||||
|
||||
private ["_bulletLength", "_stabilityFactor"];
|
||||
_bulletLength = 1.8;
|
||||
_bulletLength = 45.72;
|
||||
_stabilityFactor = 1.5;
|
||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||
if (_bulletDiameter > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then {
|
||||
_stabilityFactor = [_bulletDiameter / 10 / 2.54, _bulletLength, _bulletMass * 15.4323584, _barrelTwist / 2.54, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
|
||||
_stabilityFactor = [_bulletDiameter, _bulletLength, _bulletMass, _barrelTwist * 10, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -52,11 +52,11 @@ if (!GVAR(atmosphereModeTBH)) then {
|
||||
};
|
||||
|
||||
private ["_bulletLength", "_stabilityFactor"];
|
||||
_bulletLength = 1.8;
|
||||
_bulletLength = 45.72;
|
||||
_stabilityFactor = 1.5;
|
||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||
if (_bulletDiameter > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then {
|
||||
_stabilityFactor = [_bulletDiameter / 10 / 2.54, _bulletLength, _bulletMass * 15.4323584, _barrelTwist / 2.54, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
|
||||
_stabilityFactor = [_bulletDiameter, _bulletLength, _bulletMass, _barrelTwist * 10, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
//if (dialog) exitWith { false };
|
||||
if (GVAR(active)) exitWith { false };
|
||||
if (underwater ACE_player) exitWith { false };
|
||||
if (!("ACE_ATragMX" in (uniformItems ACE_player)) && !("ACE_ATragMX" in (vestItems ACE_player))) exitWith { false };
|
||||
|
||||
@ -47,4 +47,6 @@ GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);
|
||||
lbAdd [6000, _x select 0];
|
||||
} forEach GVAR(gunList);
|
||||
|
||||
GVAR(active) = true;
|
||||
|
||||
true
|
||||
|
@ -15,6 +15,8 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
GVAR(active) = false;
|
||||
|
||||
GVAR(workingMemory) = +(GVAR(gunList) select 0);
|
||||
|
||||
GVAR(scopeUnits) = ["MILs", "TMOA", "SMOA", "Clicks"];
|
||||
|
4
addons/atragmx/functions/fnc_on_close_dialog.sqf
Normal file
4
addons/atragmx/functions/fnc_on_close_dialog.sqf
Normal file
@ -0,0 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
uiNamespace setVariable ['ATragMX_Display', nil];
|
||||
GVAR(active) = false;
|
@ -2,7 +2,7 @@
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
|
||||
if (GVAR(active)) exitWith {false};
|
||||
// Statement
|
||||
[] call FUNC(create_dialog);
|
||||
false
|
||||
|
@ -11,4 +11,4 @@
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.4
|
||||
#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.5
|
||||
|
@ -179,7 +179,7 @@
|
||||
<Portuguese>Erro ao fixar</Portuguese>
|
||||
<Polish>Przyczepianie nie powiodło się</Polish>
|
||||
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
|
||||
<Italian>Impossibile Attaccare</Italian>
|
||||
<Italian>Non si attacca</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_Item_Attached">
|
||||
<English>%1<br/>Attached</English>
|
||||
@ -206,4 +206,4 @@
|
||||
<Russian>%1<br/>отсоединен(-а)</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -25,16 +25,16 @@ class CfgAmmo {
|
||||
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;
|
||||
ACE_caliber=5.69;
|
||||
ACE_bulletLength=23.012;
|
||||
ACE_bulletMass=4.0176;
|
||||
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};
|
||||
ACE_barrelLengths[]={210.82, 238.76, 269.24, 299.72, 330.2, 360.68, 391.16, 419.1, 449.58, 480.06, 508.0, 609.6};
|
||||
};
|
||||
class ACE_556x45_Ball_Mk262 : B_556x45_Ball {
|
||||
airFriction=-0.001125;
|
||||
@ -42,16 +42,16 @@ class CfgAmmo {
|
||||
deflecting=18;
|
||||
hit=11;
|
||||
typicalSpeed=836;
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=77;
|
||||
ACE_caliber=5.69;
|
||||
ACE_bulletLength=23.012;
|
||||
ACE_bulletMass=4.9896;
|
||||
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};
|
||||
ACE_barrelLengths[]={190.5, 368.3, 457.2, 508.0};
|
||||
};
|
||||
class ACE_556x45_Ball_Mk318 : B_556x45_Ball {
|
||||
airFriction=-0.001120;
|
||||
@ -59,33 +59,33 @@ class CfgAmmo {
|
||||
deflecting=18;
|
||||
hit=9;
|
||||
typicalSpeed=886;
|
||||
ACE_caliber=0.224;
|
||||
ACE_bulletLength=0.906;
|
||||
ACE_bulletMass=62;
|
||||
ACE_caliber=5.69;
|
||||
ACE_bulletLength=23.012;
|
||||
ACE_bulletMass=4.0176;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 393.7, 508.0};
|
||||
};
|
||||
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;
|
||||
typicalSpeed=869;
|
||||
ACE_caliber=5.69;
|
||||
ACE_bulletLength=23.012;
|
||||
ACE_bulletMass=4.5359237;
|
||||
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_ballisticCoefficients[]={0.310};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={950, 1030, 1040};
|
||||
ACE_barrelLengths[]={10, 15.5, 20};
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={820, 865, 880};
|
||||
ACE_barrelLengths[]={254.0, 393.7, 508.0};
|
||||
};
|
||||
class B_556x45_Ball_Tracer_Red;
|
||||
class ACE_B_556x45_Ball_Tracer_Dim: B_556x45_Ball_Tracer_Red {
|
||||
@ -97,16 +97,16 @@ class CfgAmmo {
|
||||
deflecting=18;
|
||||
hit=7;
|
||||
typicalSpeed=880;
|
||||
ACE_caliber=0.220;
|
||||
ACE_bulletLength=0.85;
|
||||
ACE_bulletMass=52.9;
|
||||
ACE_caliber=5.588;
|
||||
ACE_bulletLength=21.59;
|
||||
ACE_bulletMass=3.42792;
|
||||
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="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={780, 880, 920};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
ACE_barrelLengths[]={254.0, 414.02, 508.0};
|
||||
};
|
||||
class B_556x45_Ball_Tracer_Green;
|
||||
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Green {
|
||||
@ -117,30 +117,30 @@ class CfgAmmo {
|
||||
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;
|
||||
ACE_caliber=5.588;
|
||||
ACE_bulletLength=21.59;
|
||||
ACE_bulletMass=3.22704;
|
||||
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="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={785, 883, 925};
|
||||
ACE_barrelLengths[]={10, 16.3, 20};
|
||||
ACE_barrelLengths[]={254.0, 414.02, 508.0};
|
||||
};
|
||||
class B_65x39_Caseless : BulletBase {
|
||||
airFriction=-0.000785;
|
||||
typicalSpeed=800;
|
||||
ACE_caliber=0.264;
|
||||
ACE_bulletLength=1.295;
|
||||
ACE_bulletMass=123;
|
||||
ACE_caliber=6.706;
|
||||
ACE_bulletLength=32.893;
|
||||
ACE_bulletMass=7.9704;
|
||||
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.263};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={730, 760, 788, 800, 810, 830};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26, 30};
|
||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4, 762.0};
|
||||
};
|
||||
class B_65x39_Case_yellow;
|
||||
class ACE_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
|
||||
@ -154,31 +154,31 @@ class CfgAmmo {
|
||||
airFriction=-0.00078;
|
||||
typicalSpeed=820 ;
|
||||
caliber=0.9;
|
||||
ACE_caliber=0.264;
|
||||
ACE_bulletLength=1.364;
|
||||
ACE_bulletMass=139;
|
||||
ACE_caliber=6.706;
|
||||
ACE_bulletLength=34.646;
|
||||
ACE_bulletMass=9.0072;
|
||||
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.290};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={730, 760, 790, 820, 830};
|
||||
ACE_barrelLengths[]={10, 16, 20, 24, 26};
|
||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
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_caliber=6.706;
|
||||
ACE_bulletLength=36.22;
|
||||
ACE_bulletMass=9.072;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
class B_762x51_Ball : BulletBase {
|
||||
airFriction=-0.001035;
|
||||
@ -186,16 +186,16 @@ class CfgAmmo {
|
||||
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;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=28.956;
|
||||
ACE_bulletMass=9.4608;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
class B_762x51_Tracer_Yellow;
|
||||
class ACE_B_762x51_Tracer_Dim: B_762x51_Tracer_Yellow {
|
||||
@ -206,206 +206,206 @@ class CfgAmmo {
|
||||
caliber=1.8;
|
||||
hit=16;
|
||||
typicalSpeed=790;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=175;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=31.496;
|
||||
ACE_bulletMass=11.34;
|
||||
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.243};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={750, 780, 790, 794};
|
||||
ACE_barrelLengths[]={16, 20, 24, 26};
|
||||
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
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_caliber=7.823;
|
||||
ACE_bulletLength=31.496;
|
||||
ACE_bulletMass=11.34;
|
||||
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};
|
||||
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball {
|
||||
airFriction=-0.00103;
|
||||
caliber=1.5;
|
||||
hit=14;
|
||||
typicalSpeed=900;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.24;
|
||||
ACE_bulletMass=130;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=31.496;
|
||||
ACE_bulletMass=8.424;
|
||||
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};
|
||||
ACE_barrelLengths[]={330.2, 406.4, 508.0};
|
||||
};
|
||||
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;
|
||||
typicalSpeed=910;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=31.496;
|
||||
ACE_bulletMass=8.22946157;
|
||||
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_ballisticCoefficients[]={0.359};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={875, 910, 930};
|
||||
ACE_barrelLengths[]={13, 16, 20};
|
||||
ACE_barrelLengths[]={330.2, 406.4, 508.0};
|
||||
};
|
||||
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
|
||||
airFriction=-0.000535;
|
||||
caliber=1;
|
||||
hit=6;
|
||||
typicalSpeed=320;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.340;
|
||||
ACE_bulletMass=200;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=34.036;
|
||||
ACE_bulletMass=12.96;
|
||||
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};
|
||||
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
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_caliber=7.823;
|
||||
ACE_bulletLength=30.734;
|
||||
ACE_bulletMass=11.2752;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
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_caliber=7.214;
|
||||
ACE_bulletLength=38.837;
|
||||
ACE_bulletMass=11.664;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
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_caliber=6.172;
|
||||
ACE_bulletLength=32.563;
|
||||
ACE_bulletMass=11.664;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball {
|
||||
airFriction=-0.000830;
|
||||
caliber=1.8;
|
||||
hit=17;
|
||||
typicalSpeed=900;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.353;
|
||||
ACE_bulletMass=190;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=34.366;
|
||||
ACE_bulletMass=12.312;
|
||||
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.268};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={865, 900, 924};
|
||||
ACE_barrelLengths[]={20, 24, 26};
|
||||
ACE_barrelLengths[]={508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball {
|
||||
airFriction=-0.000815;
|
||||
caliber=1.9;
|
||||
hit=18;
|
||||
typicalSpeed=867;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.489;
|
||||
ACE_bulletMass=220;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=37.821;
|
||||
ACE_bulletMass=14.256;
|
||||
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.310};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={847, 867, 877};
|
||||
ACE_barrelLengths[]={20, 24, 26};
|
||||
ACE_barrelLengths[]={508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball {
|
||||
airFriction=-0.00076;
|
||||
caliber=2.0;
|
||||
hit=19;
|
||||
typicalSpeed=853;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.602;
|
||||
ACE_bulletMass=230;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=40.691;
|
||||
ACE_bulletMass=14.904;
|
||||
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.368};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={800, 853, 884};
|
||||
ACE_barrelLengths[]={20, 24, 26};
|
||||
ACE_barrelLengths[]={508.0, 609.6, 660.4};
|
||||
};
|
||||
class B_762x54_Ball: B_762x51_Ball {
|
||||
airFriction=-0.001023;
|
||||
typicalSpeed=820;
|
||||
ACE_caliber=0.312;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=152;
|
||||
ACE_caliber=7.925;
|
||||
ACE_bulletLength=28.956;
|
||||
ACE_bulletMass=9.8496;
|
||||
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};
|
||||
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_762x54_Ball_7N14 : B_762x51_Ball {
|
||||
airFriction=-0.001023;
|
||||
caliber=1.5;
|
||||
hit=15;
|
||||
typicalSpeed=820;
|
||||
ACE_caliber=0.312;
|
||||
ACE_bulletLength=1.14;
|
||||
ACE_bulletMass=152;
|
||||
ACE_caliber=7.925;
|
||||
ACE_bulletLength=28.956;
|
||||
ACE_bulletMass=9.8496;
|
||||
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};
|
||||
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
class B_762x54_Tracer_Green;
|
||||
class ACE_762x54_Ball_7T2 : B_762x54_Tracer_Green {
|
||||
@ -415,48 +415,48 @@ class CfgAmmo {
|
||||
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;
|
||||
ACE_caliber=7.925;
|
||||
ACE_bulletLength=28.956;
|
||||
ACE_bulletMass=9.6552;
|
||||
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};
|
||||
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_762x35_Ball : B_762x51_Ball {
|
||||
airFriction=-0.000821;
|
||||
caliber=1.5;
|
||||
hit=11;
|
||||
typicalSpeed=790;
|
||||
ACE_caliber=0.308;
|
||||
ACE_bulletLength=1.153;
|
||||
ACE_bulletMass=125;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=29.286;
|
||||
ACE_bulletMass=8.1;
|
||||
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[]={620, 655, 675};
|
||||
ACE_barrelLengths[]={9, 16, 20};
|
||||
ACE_barrelLengths[]={228.6, 406.4, 508.0};
|
||||
};
|
||||
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;
|
||||
ACE_bulletMass=123;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=28.956;
|
||||
ACE_bulletMass=7.9704;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 414.02, 508.0};
|
||||
};
|
||||
class ACE_762x39_Ball_57N231P : B_762x54_Tracer_Green {
|
||||
airFriction=-0.0015168;
|
||||
@ -465,128 +465,128 @@ class CfgAmmo {
|
||||
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;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=28.956;
|
||||
ACE_bulletMass=7.5816;
|
||||
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};
|
||||
ACE_barrelLengths[]={254.0, 414.02, 508.0};
|
||||
};
|
||||
class B_9x21_Ball : BulletBase {
|
||||
airFriction=-0.00125;
|
||||
typicalSpeed=390;
|
||||
hit=6;
|
||||
ACE_caliber=0.356;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=115;
|
||||
ACE_caliber=9.042;
|
||||
ACE_bulletLength=15.494;
|
||||
ACE_bulletMass=7.452;
|
||||
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.17};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={440, 460, 480};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
||||
};
|
||||
class ACE_9x18_Ball_57N181S : B_9x21_Ball {
|
||||
hit=5;
|
||||
airFriction=-0.001234;
|
||||
typicalSpeed=298;
|
||||
ACE_caliber=0.365;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=92.6;
|
||||
ACE_caliber=9.271;
|
||||
ACE_bulletLength=15.494;
|
||||
ACE_bulletMass=6.00048;
|
||||
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.125};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={298, 330, 350};
|
||||
ACE_barrelLengths[]={3.8, 5, 9};
|
||||
ACE_barrelLengths[]={96.52, 127.0, 228.6};
|
||||
};
|
||||
class ACE_9x19_Ball : B_9x21_Ball {
|
||||
airFriction=-0.001234;
|
||||
typicalSpeed=370;
|
||||
hit=6;
|
||||
ACE_caliber=0.355;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=124;
|
||||
ACE_caliber=9.017;
|
||||
ACE_bulletLength=15.494;
|
||||
ACE_bulletMass=8.0352;
|
||||
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};
|
||||
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
||||
};
|
||||
class ACE_10x25_Ball : B_9x21_Ball {
|
||||
airFriction=-0.00168;
|
||||
typicalSpeed=425;
|
||||
hit=7;
|
||||
ACE_caliber=0.5;
|
||||
ACE_bulletLength=0.764;
|
||||
ACE_bulletMass=165;
|
||||
ACE_caliber=12.7;
|
||||
ACE_bulletLength=19.406;
|
||||
ACE_bulletMass=10.692;
|
||||
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="ICAO";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={360, 400, 430};
|
||||
ACE_barrelLengths[]={4, 4.61, 9};
|
||||
ACE_barrelLengths[]={101.6, 117.094, 228.6};
|
||||
};
|
||||
class ACE_765x17_Ball: B_9x21_Ball {
|
||||
airFriction=-0.001213;
|
||||
typicalSpeed=282;
|
||||
hit=7;
|
||||
ACE_caliber=0.3125;
|
||||
ACE_bulletLength=0.610;
|
||||
ACE_bulletMass=65;
|
||||
ACE_caliber=7.938;
|
||||
ACE_bulletLength=15.494;
|
||||
ACE_bulletMass=4.212;
|
||||
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.118};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={282, 300, 320};
|
||||
ACE_barrelLengths[]={4, 5, 9};
|
||||
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
||||
};
|
||||
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;
|
||||
ACE_caliber=7.899;
|
||||
ACE_bulletLength=31.166;
|
||||
ACE_bulletMass=11.2752;
|
||||
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};
|
||||
ACE_barrelLengths[]={508.0, 609.6, 660.4};
|
||||
};
|
||||
class B_93x64_Ball : BulletBase {
|
||||
airFriction=-0.00106;
|
||||
typicalSpeed=880;
|
||||
ACE_caliber=0.366;
|
||||
ACE_bulletLength=1.350;
|
||||
ACE_bulletMass=230;
|
||||
ACE_caliber=9.296;
|
||||
ACE_bulletLength=34.29;
|
||||
ACE_bulletMass=14.904;
|
||||
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.368};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={850, 870, 880};
|
||||
ACE_barrelLengths[]={20, 24.41, 26};
|
||||
ACE_barrelLengths[]={508.0, 620.014, 660.4};
|
||||
};
|
||||
class B_408_Ball : BulletBase {
|
||||
timeToLive=10;
|
||||
airFriction=-0.000395;
|
||||
typicalSpeed=910;
|
||||
ACE_caliber=0.408;
|
||||
ACE_bulletLength=2.126;
|
||||
ACE_bulletMass=410;
|
||||
ACE_caliber=10.363;
|
||||
ACE_bulletLength=54.0;
|
||||
ACE_bulletMass=26.568;
|
||||
ACE_transonicStabilityCoef=1;
|
||||
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.97};
|
||||
@ -594,109 +594,109 @@ class CfgAmmo {
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={910};
|
||||
ACE_barrelLengths[]={29};
|
||||
ACE_barrelLengths[]={736.6};
|
||||
};
|
||||
class ACE_106x83mm_Ball : B_408_Ball {
|
||||
timeToLive=10;
|
||||
ACE_caliber=0.416;
|
||||
ACE_bulletLength=2.089;
|
||||
ACE_bulletMass=398;
|
||||
ACE_caliber=10.566;
|
||||
ACE_bulletLength=53.061;
|
||||
ACE_bulletMass=25.7904;
|
||||
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.72};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={960};
|
||||
ACE_barrelLengths[]={29};
|
||||
ACE_barrelLengths[]={736.6};
|
||||
};
|
||||
class B_338_Ball : BulletBase {
|
||||
timeToLive=10;
|
||||
airFriction=-0.000606;
|
||||
typicalSpeed=915;
|
||||
ACE_caliber=0.338;
|
||||
ACE_bulletLength=1.558;
|
||||
ACE_bulletMass=250;
|
||||
ACE_caliber=8.585;
|
||||
ACE_bulletLength=39.573;
|
||||
ACE_bulletMass=16.2;
|
||||
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.322};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={880, 915, 925};
|
||||
ACE_barrelLengths[]={20, 26, 28};
|
||||
ACE_barrelLengths[]={508.0, 660.4, 711.2};
|
||||
};
|
||||
class B_338_NM_Ball : BulletBase {
|
||||
airFriction=-0.000537;
|
||||
typicalSpeed=820;
|
||||
ACE_caliber=0.338;
|
||||
ACE_bulletLength=1.70;
|
||||
ACE_bulletMass=300;
|
||||
ACE_caliber=8.585;
|
||||
ACE_bulletLength=43.18;
|
||||
ACE_bulletMass=19.44;
|
||||
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.381};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={790, 807, 820};
|
||||
ACE_barrelLengths[]={20, 24, 26};
|
||||
ACE_barrelLengths[]={508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_338_Ball : B_338_Ball {
|
||||
timeToLive=10;
|
||||
airFriction=-0.000535;
|
||||
typicalSpeed=826;
|
||||
ACE_caliber=0.338;
|
||||
ACE_bulletLength=1.70;
|
||||
ACE_bulletMass=300;
|
||||
ACE_caliber=8.585;
|
||||
ACE_bulletLength=43.18;
|
||||
ACE_bulletMass=19.44;
|
||||
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.381};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={800, 820, 826, 830};
|
||||
ACE_barrelLengths[]={20, 24, 26.5, 28};
|
||||
ACE_barrelLengths[]={508.0, 609.6, 673.1, 711.2};
|
||||
};
|
||||
class ACE_338_Ball_API526 : B_338_Ball {
|
||||
timeToLive=10;
|
||||
airFriction=-0.000673;
|
||||
caliber=2.8;
|
||||
typicalSpeed=826;
|
||||
ACE_caliber=0.338;
|
||||
ACE_bulletLength=1.535;
|
||||
ACE_bulletMass=253;
|
||||
typicalSpeed=895;
|
||||
ACE_caliber=8.585;
|
||||
ACE_bulletLength=38.989;
|
||||
ACE_bulletMass=16.3941242;
|
||||
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.290};
|
||||
ACE_ballisticCoefficients[]={0.560};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={880, 915, 925};
|
||||
ACE_barrelLengths[]={20, 26, 28};
|
||||
ACE_barrelLengths[]={508.0, 660.4, 711.2};
|
||||
};
|
||||
class B_127x54_Ball : BulletBase {
|
||||
airFriction=-0.00014;
|
||||
typicalSpeed=300;
|
||||
ACE_caliber=0.510;
|
||||
ACE_bulletLength=2.540;
|
||||
ACE_bulletMass=750;
|
||||
ACE_caliber=12.954;
|
||||
ACE_bulletLength=64.516;
|
||||
ACE_bulletMass=48.6;
|
||||
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[]={1.050};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={300};
|
||||
ACE_barrelLengths[]={17.2};
|
||||
ACE_barrelLengths[]={436.88};
|
||||
};
|
||||
class B_127x99_Ball : BulletBase {
|
||||
timeToLive=10;
|
||||
airFriction=-0.0006;
|
||||
typicalSpeed=900;
|
||||
ACE_caliber=0.510;
|
||||
ACE_bulletLength=2.310;
|
||||
ACE_bulletMass=647;
|
||||
ACE_caliber=12.954;
|
||||
ACE_bulletLength=58.674;
|
||||
ACE_bulletMass=41.9256;
|
||||
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};
|
||||
ACE_barrelLengths[]={736.6};
|
||||
};
|
||||
class ACE_127x99_API : BulletBase {
|
||||
timeToLive=10;
|
||||
@ -704,60 +704,60 @@ class CfgAmmo {
|
||||
typicalSpeed=900;
|
||||
hit=25;
|
||||
caliber=4.0;
|
||||
ACE_caliber=0.510;
|
||||
ACE_bulletLength=2.310;
|
||||
ACE_bulletMass=648;
|
||||
ACE_caliber=12.954;
|
||||
ACE_bulletLength=58.674;
|
||||
ACE_bulletMass=41.9904;
|
||||
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};
|
||||
ACE_barrelLengths[]={736.6};
|
||||
};
|
||||
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;
|
||||
ACE_caliber=12.954;
|
||||
ACE_bulletLength=64.516;
|
||||
ACE_bulletMass=48.6;
|
||||
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.050};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={860};
|
||||
ACE_barrelLengths[]={29};
|
||||
ACE_barrelLengths[]={736.6};
|
||||
};
|
||||
class B_127x108_Ball : BulletBase {
|
||||
timeToLive=10;
|
||||
airFriction=-0.00064;
|
||||
typicalSpeed=820;
|
||||
ACE_caliber=0.511;
|
||||
ACE_bulletLength=2.520;
|
||||
ACE_bulletMass=745;
|
||||
ACE_caliber=12.979;
|
||||
ACE_bulletLength=64.008;
|
||||
ACE_bulletMass=48.276;
|
||||
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.63};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ASM";
|
||||
ACE_dragModel=1;
|
||||
ACE_muzzleVelocities[]={820};
|
||||
ACE_barrelLengths[]={28.7};
|
||||
ACE_barrelLengths[]={728.98};
|
||||
};
|
||||
class B_45ACP_Ball : BulletBase {
|
||||
airFriction=-0.0007182;
|
||||
typicalSpeed=250;
|
||||
ACE_caliber=0.452;
|
||||
ACE_bulletLength=0.68;
|
||||
ACE_bulletMass=230;
|
||||
ACE_caliber=11.481;
|
||||
ACE_bulletLength=17.272;
|
||||
ACE_bulletMass=14.904;
|
||||
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};
|
||||
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
||||
};
|
||||
};
|
||||
|
@ -1,16 +1,13 @@
|
||||
|
||||
class Single;
|
||||
class Burst;
|
||||
class FullAuto;
|
||||
class Mode_SemiAuto;
|
||||
class Mode_Burst;
|
||||
class Mode_FullAuto;
|
||||
|
||||
class CfgWeapons {
|
||||
class DMR_02_base_F;
|
||||
class DMR_03_base_F;
|
||||
class DMR_04_base_F;
|
||||
class DMR_05_base_F;
|
||||
class DMR_06_base_F;
|
||||
class GM6_base_F;
|
||||
class LMG_RCWS;
|
||||
class LRR_base_F;
|
||||
class MGun;
|
||||
class MGunCore;
|
||||
class MMG_01_base_F;
|
||||
@ -22,19 +19,83 @@ class CfgWeapons {
|
||||
|
||||
/* Long Rifles */
|
||||
|
||||
class GM6_base_F: Rifle_Long_Base_F {
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class LRR_base_F: Rifle_Long_Base_F {
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00020; // radians. Equal to 0.70 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class DMR_06_base_F: Rifle_Long_Base_F {
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class DMR_05_base_F: Rifle_Long_Base_F {
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class DMR_04_base_F: Rifle_Long_Base_F {
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class DMR_03_base_F: Rifle_Long_Base_F {
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class DMR_02_base_F: Rifle_Long_Base_F {
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.000262; // radians. Equal to 0.90 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class DMR_01_base_F: Rifle_Long_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class EBR_base_F: Rifle_Long_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class DMR_01_base_F: Rifle_Long_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
@ -46,14 +107,6 @@ class CfgWeapons {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
||||
// Based on widely cited 2 MOA figure for new 5.56 ACR.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
||||
};
|
||||
};
|
||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
@ -65,8 +118,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=16.0;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=406.4;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
// Shit is broken again
|
||||
@ -74,14 +127,6 @@ class CfgWeapons {
|
||||
compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
||||
// Based on widely cited 2 MOA figure for new 5.56 ACR.
|
||||
};
|
||||
|
||||
class manual: FullAuto {
|
||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
||||
};
|
||||
};
|
||||
class arifle_MXM_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
@ -92,15 +137,14 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65_Creedmor_mag"
|
||||
};
|
||||
initSpeed = -1.018;
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=18;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=457.2;
|
||||
class Single: Single {
|
||||
dispersion = 0.00029; // radians. Equal to 1 MOA.
|
||||
// 6.5mm is easily capable of this in a half-tuned rifle.
|
||||
dispersion = 0.000436; // radians. Equal to 1.50 MOA.
|
||||
};
|
||||
|
||||
class FullAuto: FullAuto {
|
||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
||||
dispersion = 0.000436; // radians. Equal to 1.50 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
@ -112,15 +156,6 @@ class CfgWeapons {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
||||
// Based on widely cited 2 MOA figure for new 5.56 ACR?
|
||||
// Use your imagination for fictional weapons!
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -137,15 +172,8 @@ class CfgWeapons {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=12.5;
|
||||
class manual: Mode_FullAuto {
|
||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
||||
};
|
||||
|
||||
class Single: manual {
|
||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
||||
};
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=317.5;
|
||||
};
|
||||
class LMG_Zafir_F: Rifle_Long_Base_F {
|
||||
initSpeed = -1.0;
|
||||
@ -154,15 +182,8 @@ class CfgWeapons {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||
};
|
||||
};
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=18.1;
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
||||
};
|
||||
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
||||
};
|
||||
ACE_barrelTwist=304.8;
|
||||
ACE_barrelLength=459.74;
|
||||
};
|
||||
|
||||
|
||||
@ -173,13 +194,6 @@ class CfgWeapons {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.000727; // radians. Equal to 2.5 MOA, about the limit of mass-produced M855.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
||||
};
|
||||
};
|
||||
class mk20_base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -187,14 +201,6 @@ class CfgWeapons {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
|
||||
// some extra for these worn out Greek Army service rifles.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -202,12 +208,15 @@ class CfgWeapons {
|
||||
class SDAR_base_F: Rifle_Base_F {
|
||||
initSpeed = -0.989;
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
|
||||
// some extra because Kel-Tec.
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||
};
|
||||
|
||||
class Burst: Mode_Burst {
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||
};
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||
};
|
||||
};
|
||||
class pdw2000_base_F: Rifle_Base_F {
|
||||
@ -241,8 +250,8 @@ class CfgWeapons {
|
||||
|
||||
class hgun_P07_F: Pistol_Base_F {
|
||||
initSpeed = -0.9778;
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=4;
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=101.6;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
|
||||
@ -253,8 +262,8 @@ class CfgWeapons {
|
||||
|
||||
class hgun_Rook40_F: Pistol_Base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=4.4;
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=111.76;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
|
||||
@ -265,8 +274,8 @@ class CfgWeapons {
|
||||
|
||||
class hgun_ACPC2_F: Pistol_Base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=16;
|
||||
ACE_barrelLength=5;
|
||||
ACE_barrelTwist=406.4;
|
||||
ACE_barrelLength=127.0;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
|
||||
@ -276,8 +285,8 @@ class CfgWeapons {
|
||||
|
||||
class hgun_Pistol_heavy_01_F: Pistol_Base_F {
|
||||
initSpeed = -0.96;
|
||||
ACE_barrelTwist=16;
|
||||
ACE_barrelLength=4.5;
|
||||
ACE_barrelTwist=406.4;
|
||||
ACE_barrelLength=114.3;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
|
||||
@ -287,8 +296,8 @@ class CfgWeapons {
|
||||
|
||||
class hgun_Pistol_heavy_02_F: Pistol_Base_F {
|
||||
initSpeed = -0.92;
|
||||
ACE_barrelTwist=16;
|
||||
ACE_barrelLength=3;
|
||||
ACE_barrelTwist=406.4;
|
||||
ACE_barrelLength=76.2;
|
||||
/*
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot {
|
||||
@ -300,8 +309,8 @@ class CfgWeapons {
|
||||
};
|
||||
class hgun_PDW2000_F: pdw2000_base_F {
|
||||
initSpeed = -1.157;
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=7;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=177.8;
|
||||
};
|
||||
class arifle_Katiba_F: arifle_katiba_Base_F {
|
||||
magazines[] = {
|
||||
@ -310,8 +319,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -1.08;
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=28.7;
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=728.98;
|
||||
};
|
||||
class arifle_Katiba_C_F: arifle_katiba_Base_F {
|
||||
magazines[] = {
|
||||
@ -320,8 +329,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -1.07;
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=26.8;
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=680.72;
|
||||
};
|
||||
class arifle_Katiba_GL_F: arifle_katiba_Base_F {
|
||||
magazines[] = {
|
||||
@ -330,8 +339,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -1.08;
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=28.7;
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=728.98;
|
||||
};
|
||||
class arifle_MX_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
@ -340,8 +349,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.99;
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=14.5;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=368.3;
|
||||
};
|
||||
class arifle_MX_GL_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
@ -350,13 +359,13 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.99;
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=14.5;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=368.3;
|
||||
};
|
||||
/*
|
||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=16.0;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=406.4;
|
||||
};
|
||||
*/
|
||||
class arifle_MXC_F: arifle_MX_Base_F {
|
||||
@ -366,13 +375,13 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.965;
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=10.5;
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=266.7;
|
||||
};
|
||||
/*
|
||||
class arifle_MXM_F: arifle_MX_Base_F {
|
||||
ACE_barrelTwist=9;
|
||||
ACE_barrelLength=18;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=457.2;
|
||||
};
|
||||
*/
|
||||
class arifle_SDAR_F: SDAR_base_F {
|
||||
@ -388,13 +397,13 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.989;
|
||||
ACE_barrelTwist=11.25;
|
||||
ACE_barrelLength=18;
|
||||
ACE_barrelTwist=285.75;
|
||||
ACE_barrelLength=457.2;
|
||||
};
|
||||
class SMG_02_F: SMG_02_base_F {
|
||||
initSpeed = -1.054;
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=7.7;
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=195.58;
|
||||
};
|
||||
class arifle_TRG20_F: Tavor_base_F {
|
||||
magazines[] = {
|
||||
@ -408,8 +417,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.95;
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=15;
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=381.0;
|
||||
};
|
||||
class arifle_TRG21_F: Tavor_base_F {
|
||||
magazines[] = {
|
||||
@ -423,8 +432,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.989;
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=18.1;
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=459.74;
|
||||
};
|
||||
class arifle_TRG21_GL_F: arifle_TRG21_F {
|
||||
magazines[] = {
|
||||
@ -438,13 +447,13 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.989;
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=18.1;
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=459.74;
|
||||
};
|
||||
/*
|
||||
class LMG_Zafir_F: Rifle_Long_Base_F {
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=18.1;
|
||||
ACE_barrelTwist=304.8;
|
||||
ACE_barrelLength=459.74;
|
||||
};
|
||||
*/
|
||||
class arifle_Mk20_F: mk20_base_F {
|
||||
@ -459,8 +468,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.98;
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=17.4;
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=441.96;
|
||||
};
|
||||
class arifle_Mk20C_F: mk20_base_F {
|
||||
magazines[] = {
|
||||
@ -474,8 +483,8 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.956;
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=16;
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=406.4;
|
||||
};
|
||||
class arifle_Mk20_GL_F: mk20_base_F {
|
||||
magazines[] = {
|
||||
@ -489,13 +498,13 @@ class CfgWeapons {
|
||||
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.956;
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=16;
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=406.4;
|
||||
};
|
||||
class SMG_01_F: SMG_01_Base {
|
||||
initSpeed = -1.016;
|
||||
ACE_barrelTwist=16;
|
||||
ACE_barrelLength=5.5;
|
||||
ACE_barrelTwist=406.4;
|
||||
ACE_barrelLength=139.7;
|
||||
};
|
||||
class srifle_DMR_01_F: DMR_01_base_F {
|
||||
magazines[] = {
|
||||
@ -503,8 +512,8 @@ class CfgWeapons {
|
||||
"ACE_10Rnd_762x54_Tracer_mag"
|
||||
};
|
||||
initSpeed = -1.025;
|
||||
ACE_barrelTwist=9.5;
|
||||
ACE_barrelLength=24;
|
||||
ACE_barrelTwist=241.3;
|
||||
ACE_barrelLength=609.6;
|
||||
};
|
||||
class srifle_EBR_F: EBR_base_F {
|
||||
magazines[] = {
|
||||
@ -518,20 +527,20 @@ class CfgWeapons {
|
||||
"ACE_20Rnd_762x51_Mag_SD"
|
||||
};
|
||||
initSpeed = -0.9724;
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=18;
|
||||
ACE_barrelTwist=304.8;
|
||||
ACE_barrelLength=457.2;
|
||||
};
|
||||
/*
|
||||
class LMG_Mk200_F: Rifle_Long_Base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=7;
|
||||
ACE_barrelLength=12.5;
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=317.5;
|
||||
};
|
||||
*/
|
||||
class srifle_LRR_F: LRR_base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=13;
|
||||
ACE_barrelLength=29;
|
||||
ACE_barrelTwist=330.2;
|
||||
ACE_barrelLength=736.6;
|
||||
};
|
||||
class srifle_GM6_F: GM6_base_F {
|
||||
magazines[] = {
|
||||
@ -542,8 +551,8 @@ class CfgWeapons {
|
||||
"ACE_5Rnd_127x99_AMAX_Mag"
|
||||
};
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=15;
|
||||
ACE_barrelLength=36.6;
|
||||
ACE_barrelTwist=381.0;
|
||||
ACE_barrelLength=929.64;
|
||||
};
|
||||
class srifle_DMR_02_F: DMR_02_base_F {
|
||||
magazines[] = {
|
||||
@ -555,8 +564,8 @@ class CfgWeapons {
|
||||
"ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag"
|
||||
};
|
||||
initSpeed = -0.962;
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=20;
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=508.0;
|
||||
};
|
||||
class srifle_DMR_03_F: DMR_03_base_F {
|
||||
magazines[] = {
|
||||
@ -570,18 +579,18 @@ class CfgWeapons {
|
||||
"ACE_20Rnd_762x51_Mag_SD"
|
||||
};
|
||||
initSpeed = -0.9843;
|
||||
ACE_barrelTwist=10;
|
||||
ACE_barrelLength=20;
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=508.0;
|
||||
};
|
||||
class srifle_DMR_04_F: DMR_04_base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=8;
|
||||
ACE_barrelLength=17.72;
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=450.088;
|
||||
};
|
||||
class srifle_DMR_05_blk_F: DMR_05_base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=14.17;
|
||||
ACE_barrelLength=24.41;
|
||||
ACE_barrelTwist=359.918;
|
||||
ACE_barrelLength=620.014;
|
||||
};
|
||||
class srifle_DMR_06_camo_F: DMR_06_base_F {
|
||||
magazines[] = {
|
||||
@ -595,18 +604,18 @@ class CfgWeapons {
|
||||
"ACE_20Rnd_762x51_Mag_SD"
|
||||
};
|
||||
initSpeed = -0.9916;
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=22;
|
||||
ACE_barrelTwist=304.8;
|
||||
ACE_barrelLength=558.8;
|
||||
};
|
||||
class MMG_01_hex_F: MMG_01_base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=14.17;
|
||||
ACE_barrelLength=21.65;
|
||||
ACE_barrelTwist=359.918;
|
||||
ACE_barrelLength=549.91;
|
||||
};
|
||||
class MMG_02_camo_F: MMG_02_base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=9.25;
|
||||
ACE_barrelLength=24;
|
||||
ACE_barrelTwist=234.95;
|
||||
ACE_barrelLength=609.6;
|
||||
};
|
||||
|
||||
class HMG_127 : LMG_RCWS {
|
||||
@ -615,8 +624,8 @@ class CfgWeapons {
|
||||
};
|
||||
class HMG_M2: HMG_01 {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=12;
|
||||
ACE_barrelLength=45;
|
||||
ACE_barrelTwist=304.8;
|
||||
ACE_barrelLength=1143.0;
|
||||
};
|
||||
|
||||
/* Silencers */
|
||||
@ -642,11 +651,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -675,11 +684,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -708,11 +717,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -741,11 +750,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -774,11 +783,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -807,11 +816,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -840,11 +849,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -873,11 +882,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
@ -906,11 +915,11 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class MuzzleCoef {
|
||||
dispersionCoef = "0.8f";
|
||||
dispersionCoef = "0.95f";
|
||||
artilleryDispersionCoef = "1.0f";
|
||||
fireLightCoef = "0.5f";
|
||||
recoilCoef = "1.0f";
|
||||
recoilProneCoef = "1.0f";
|
||||
recoilCoef = "0.95f";
|
||||
recoilProneCoef = "0.95f";
|
||||
minRangeCoef = "1.0f";
|
||||
minRangeProbabCoef = "1.0f";
|
||||
midRangeCoef = "1.0f";
|
||||
|
@ -11,7 +11,7 @@ if (isServer) then {
|
||||
_escortedUnit = _disconnectedPlayer getVariable [QGVAR(escortedUnit), objNull];
|
||||
if ((!isNull _escortedUnit) && {(attachedTo _escortedUnit) == _disconnectedPlayer}) then {
|
||||
detach _escortedUnit;
|
||||
systemChat "debug: DC detach";
|
||||
//systemChat "debug: DC detach";
|
||||
};
|
||||
if (_disconnectedPlayer getVariable [QGVAR(isEscorting), false]) then {
|
||||
_disconnectedPlayer setVariable [QGVAR(isEscorting), false, true];
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Checks the conditions for being able to surrender
|
||||
* Checks the conditions for being able switch surrender states
|
||||
*
|
||||
* Arguments:
|
||||
* 0: caller (player) <OBJECT>
|
||||
@ -18,14 +18,14 @@
|
||||
|
||||
PARAMS_2(_unit,_newSurrenderState);
|
||||
|
||||
if (currentWeapon _unit != "") exitWith {false};
|
||||
|
||||
private "_returnValue";
|
||||
|
||||
_returnValue = if (_newSurrenderState) then {
|
||||
!(_unit getVariable [QGVAR(isSurrendering), false]); //Not currently surrendering
|
||||
//no weapon equiped AND not currently surrendering and
|
||||
(currentWeapon _unit == "") && {!(_unit getVariable [QGVAR(isSurrendering), false])}
|
||||
} else {
|
||||
(_unit getVariable [QGVAR(isSurrendering), false]); //is Surrendering
|
||||
//is Surrendering
|
||||
(_unit getVariable [QGVAR(isSurrendering), false])
|
||||
};
|
||||
|
||||
_returnValue
|
||||
|
@ -8,7 +8,7 @@
|
||||
<French>Capturer le prisonnier</French>
|
||||
<Polish>Aresztuj</Polish>
|
||||
<Czech>Zajmout Osobu</Czech>
|
||||
<Italian>Arresta il Prigioniero</Italian>
|
||||
<Italian>Arresta il prigioniero</Italian>
|
||||
<Portuguese>Tomar Prisioneiro</Portuguese>
|
||||
<Hungarian>Foglyul ejtés</Hungarian>
|
||||
<Russian>Взять в плен</Russian>
|
||||
@ -20,7 +20,7 @@
|
||||
<Polish>Wypuść więźnia</Polish>
|
||||
<French>Libérer le prisonnier</French>
|
||||
<Czech>Osvobodit Zajatce</Czech>
|
||||
<Italian>Libera il Prigioniero</Italian>
|
||||
<Italian>Libera il prigioniero</Italian>
|
||||
<Portuguese>Libertar Prisioneiro</Portuguese>
|
||||
<Hungarian>Fogoly szabadon engedése</Hungarian>
|
||||
<Russian>Освободить пленника</Russian>
|
||||
@ -71,7 +71,7 @@
|
||||
<Hungarian>Fogoly berakása</Hungarian>
|
||||
<Russian>Загрузить пленного</Russian>
|
||||
<Portuguese>Embarcar Prisioneiro</Portuguese>
|
||||
<Italian>Carica il prigioniero</Italian>
|
||||
<Italian>Fai salire il prigioniero</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_UnloadCaptive">
|
||||
<English>Unload Captive</English>
|
||||
@ -83,7 +83,7 @@
|
||||
<Hungarian>Fogoly kivevése</Hungarian>
|
||||
<Russian>Выгрузить пленного</Russian>
|
||||
<Portuguese>Desembarcar Prisioneiro</Portuguese>
|
||||
<Italian>Scarica il prigioniero</Italian>
|
||||
<Italian>Fai scendere il prigioniero</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_CableTie">
|
||||
<English>Cable Tie</English>
|
||||
@ -105,7 +105,7 @@
|
||||
<French>Les Serflex permettent de menotter les prisonniers.</French>
|
||||
<Czech>Stahovací pásky vám umožní zadržet vězně.</Czech>
|
||||
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
|
||||
<Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian>
|
||||
<Italian>Fascetta per arrestare i prigionieri</Italian>
|
||||
<Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian>
|
||||
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
|
||||
</Key>
|
||||
@ -119,7 +119,7 @@
|
||||
<Polish>Ekwipunek rewidowanej osoby</Polish>
|
||||
<Russian>Инвентарь обысканного человека</Russian>
|
||||
<Portuguese>Inventário da pessoa revistada</Portuguese>
|
||||
<Italian>Inventario delle persone perquisite</Italian>
|
||||
<Italian>Inventario della persona perquisita</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_FriskPerson">
|
||||
<English>Frisk person</English>
|
||||
@ -143,7 +143,7 @@
|
||||
<Polish>Poddaj się</Polish>
|
||||
<Russian>Сдаться</Russian>
|
||||
<Hungarian>Megadás</Hungarian>
|
||||
<Italian>Arreso</Italian>
|
||||
<Italian>Arrenditi</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_StopSurrendering">
|
||||
<English>Stop Surrendering</English>
|
||||
@ -155,7 +155,7 @@
|
||||
<Polish>Podejmij walkę ponownie</Polish>
|
||||
<Russian>Прекратить сдачу в плен</Russian>
|
||||
<Hungarian>Megadás abbahagyása</Hungarian>
|
||||
<Italian>Annulla la resa</Italian>
|
||||
<Italian>Smetti di arrenderti</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
|
||||
<English>Only use on alive units</English>
|
||||
@ -191,7 +191,7 @@
|
||||
<Polish>Nie ma nic pod kursorem</Polish>
|
||||
<Russian>Ничего не выделено</Russian>
|
||||
<Hungarian>Semmi sincs az egér alatt</Hungarian>
|
||||
<Italian>Niente selezionato</Italian>
|
||||
<Italian>Nessuna selezione</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -64,8 +64,6 @@ if (_currentVersion != _previousVersion) then {
|
||||
profileNamespace setVariable ["ACE_VersionNumberString", _currentVersion];
|
||||
};
|
||||
|
||||
0 spawn COMPILE_FILE(scripts\Version\checkVersionNumber);
|
||||
|
||||
// ACE events
|
||||
"ACEg" addPublicVariableEventHandler { _this call FUNC(_handleNetEvent); };
|
||||
"ACEc" addPublicVariableEventHandler { _this call FUNC(_handleNetEvent); };
|
||||
@ -84,6 +82,7 @@ if(!isServer) then {
|
||||
["SEH_s", FUNC(_handleRequestSyncedEvent)] call FUNC(addEventHandler);
|
||||
[FUNC(syncedEventPFH), 0.5, []] call cba_fnc_addPerFrameHandler;
|
||||
|
||||
call FUNC(checkFiles);
|
||||
|
||||
/***************************************************************/
|
||||
/***************************************************************/
|
||||
@ -250,14 +249,3 @@ if(isMultiplayer && { time > 0 || isNull player } ) then {
|
||||
};
|
||||
}, 0, []] call cba_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
// check dlls
|
||||
{
|
||||
if (_x callExtension "version" == "") then {
|
||||
private "_errorMsg";
|
||||
_errorMsg = format ["Extension %1.dll not installed.", _x];
|
||||
|
||||
diag_log text format ["[ACE] ERROR: %1", _errorMsg];
|
||||
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
};
|
||||
} forEach getArray (configFile >> "ACE_Extensions" >> "extensions");
|
||||
|
@ -21,6 +21,7 @@ PREP(canInteract);
|
||||
PREP(canInteractWith);
|
||||
PREP(canUseWeapon);
|
||||
PREP(changeProjectileDirection);
|
||||
PREP(checkFiles);
|
||||
PREP(checkPBOs);
|
||||
PREP(claim);
|
||||
PREP(closeDialogIfTargetMoves);
|
||||
@ -182,6 +183,7 @@ PREP(unmuteUnit);
|
||||
PREP(useItem);
|
||||
PREP(useMagazine);
|
||||
PREP(waitAndExecute);
|
||||
PREP(waveHeightAt);
|
||||
|
||||
PREP(translateToWeaponSpace);
|
||||
PREP(translateToModelSpace);
|
||||
@ -311,6 +313,16 @@ if (hasInterface) then {
|
||||
}, 0, []] call cba_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
// Time handling
|
||||
ACE_time = diag_tickTime;
|
||||
ACE_realTime = diag_tickTime;
|
||||
ACE_virtualTime = diag_tickTime;
|
||||
ACE_diagTime = diag_tickTime;
|
||||
ACE_gameTime = time;
|
||||
|
||||
PREP(timePFH);
|
||||
[FUNC(timePFH), 0, []] call cba_fnc_addPerFrameHandler;
|
||||
|
||||
// Init toHex
|
||||
[0] call FUNC(toHex);
|
||||
|
||||
|
85
addons/common/functions/fnc_checkFiles.sqf
Normal file
85
addons/common/functions/fnc_checkFiles.sqf
Normal file
@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Compares version numbers of PBOs and DLLs.
|
||||
*
|
||||
* Argument:
|
||||
* None.
|
||||
*
|
||||
* Return value:
|
||||
* None.
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
///////////////
|
||||
// check addons
|
||||
///////////////
|
||||
private "_version";
|
||||
_version = getText (configFile >> "CfgPatches" >> "ace_main" >> "versionStr");
|
||||
|
||||
diag_log text format ["[ACE]: ACE is version %1.", _version];
|
||||
|
||||
private "_addons";
|
||||
_addons = activatedAddons;
|
||||
_addons = [_addons, {_this find "ace_" == 0}] call FUNC(filter);
|
||||
|
||||
{
|
||||
if (getText (configFile >> "CfgPatches" >> _x >> "versionStr") != _version) then {
|
||||
private "_errorMsg";
|
||||
_errorMsg = format ["File %1.pbo is outdated.", _x];
|
||||
|
||||
diag_log text format ["[ACE] ERROR: %1", _errorMsg];
|
||||
|
||||
if (hasInterface) then {
|
||||
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
};
|
||||
};
|
||||
} forEach _addons;
|
||||
|
||||
///////////////
|
||||
// check dlls
|
||||
///////////////
|
||||
{
|
||||
if (_x callExtension "version" == "") then {
|
||||
private "_errorMsg";
|
||||
_errorMsg = format ["Extension %1.dll not installed.", _x];
|
||||
|
||||
diag_log text format ["[ACE] ERROR: %1", _errorMsg];
|
||||
|
||||
if (hasInterface) then {
|
||||
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
};
|
||||
};
|
||||
} forEach getArray (configFile >> "ACE_Extensions" >> "extensions");
|
||||
|
||||
///////////////
|
||||
// check server version
|
||||
///////////////
|
||||
if (isMultiplayer) then {
|
||||
if (isServer) then {
|
||||
// send servers version of ACE to all clients
|
||||
GVAR(ServerVersion) = _version;
|
||||
publicVariable QGVAR(ServerVersion);
|
||||
} else {
|
||||
// clients have to wait for the variable
|
||||
[{
|
||||
if (isNil QGVAR(ServerVersion)) exitWith {};
|
||||
|
||||
private "_version";
|
||||
_version = _this select 0;
|
||||
|
||||
if (_version != GVAR(ServerVersion)) then {
|
||||
private "_errorMsg";
|
||||
_errorMsg = format ["Client/Server Version Mismatch. Server: %1, Client: %2.", GVAR(ServerVersion), _version];
|
||||
|
||||
diag_log text format ["[ACE] ERROR: %1", _errorMsg];
|
||||
|
||||
if (hasInterface) then {diag_log str "1";
|
||||
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
};
|
||||
};
|
||||
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
}, 1, _version] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
};
|
@ -25,11 +25,11 @@ _checkAll = _this select 1;
|
||||
_whitelist = _this select 2;
|
||||
|
||||
if (isNil "_checkAll") then {
|
||||
_checkAll = false;
|
||||
_checkAll = false;
|
||||
};
|
||||
|
||||
if (isNil "_whitelist") then {
|
||||
_whitelist = "[]";
|
||||
_whitelist = "[]";
|
||||
};
|
||||
|
||||
_logic = "Logic" createVehicleLocal [0,0,0];
|
||||
|
@ -15,6 +15,21 @@
|
||||
disableSerialization;
|
||||
endLoadingScreen;
|
||||
|
||||
|
||||
// no message without player possible
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
// wait for display
|
||||
if (isNull (call BIS_fnc_displayMission)) exitWith {
|
||||
[{
|
||||
if (isNull (call BIS_fnc_displayMission)) exitWith {};
|
||||
|
||||
(_this select 0) call FUNC(errorMessage);
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
|
||||
}, 1, _this] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
private ["_textHeader", "_textMessage", "_onOK", "_onCancel"];
|
||||
|
||||
_textHeader = _this select 0;
|
||||
|
@ -13,6 +13,8 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_parseConfigForSettings"];
|
||||
|
||||
GVAR(settings) = [];
|
||||
|
||||
_parseConfigForSettings = {
|
||||
|
@ -22,7 +22,7 @@ _checkAll = _logic getVariable ["CheckAll", false];
|
||||
_whitelist = call compile (_logic getVariable ["Whitelist", "[]"]);
|
||||
|
||||
if (isNil "_whitelist") then {
|
||||
_whitelist = [];
|
||||
_whitelist = [];
|
||||
};
|
||||
|
||||
_whitelist = [_whitelist, {toLower _this}] call FUNC(map);
|
||||
@ -31,67 +31,71 @@ ACE_Version_CheckAll = _checkAll;
|
||||
ACE_Version_Whitelist = _whitelist;
|
||||
|
||||
if (!isServer) then {
|
||||
[_mode, _checkAll, _whitelist] spawn {
|
||||
_mode = _this select 0;
|
||||
_checkAll = _this select 1;
|
||||
_whitelist = _this select 2;
|
||||
[_mode, _checkAll, _whitelist] spawn {
|
||||
_mode = _this select 0;
|
||||
_checkAll = _this select 1;
|
||||
_whitelist = _this select 2;
|
||||
|
||||
waitUntil {
|
||||
sleep 1;
|
||||
!isNil "ACE_Version_ClientErrors"
|
||||
waitUntil {
|
||||
sleep 1;
|
||||
!isNil "ACE_Version_ClientErrors"
|
||||
};
|
||||
|
||||
_missingAddon = ACE_Version_ClientErrors select 0;
|
||||
_missingAddonServer = ACE_Version_ClientErrors select 1;
|
||||
_oldVersionClient = ACE_Version_ClientErrors select 2;
|
||||
_oldVersionServer = ACE_Version_ClientErrors select 3;
|
||||
|
||||
// Display error message.
|
||||
if (_missingAddon || {_missingAddonServer} || {_oldVersionClient} || {_oldVersionServer}) then {
|
||||
_text = "[ACE] Version mismatch:<br/><br/>";
|
||||
_error = format ["ACE version mismatch: %1: ", profileName];
|
||||
|
||||
if (_missingAddon) then {
|
||||
_text = _text + "Detected missing addon on client<br/>";
|
||||
_error = _error + "Missing file(s); ";
|
||||
};
|
||||
if (_missingAddonServer) then {
|
||||
_text = _text + "Detected missing addon on server<br/>";
|
||||
_error = _error + "Additional file(s); ";
|
||||
};
|
||||
if (_oldVersionClient) then {
|
||||
_text = _text + "Detected old client version<br/>";
|
||||
_error = _error + "Older version; ";
|
||||
};
|
||||
if (_oldVersionServer) then {
|
||||
_text = _text + "Detected old server version<br/>";
|
||||
_error = _error + "Newer version; ";
|
||||
};
|
||||
|
||||
//[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
diag_log text _error;
|
||||
|
||||
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
|
||||
|
||||
_rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
|
||||
_rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
|
||||
|
||||
disableSerialization;
|
||||
_ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
|
||||
_ctrlHint ctrlSetStructuredText _text;
|
||||
|
||||
if (_mode == 0) then {
|
||||
sleep 10;
|
||||
_rscLayer cutFadeOut 0.2;
|
||||
};
|
||||
|
||||
if (_mode == 2) then {
|
||||
sleep 10;
|
||||
waitUntil {alive player};
|
||||
[player] call FUNC(adminKick);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_missingAddon = ACE_Version_ClientErrors select 0;
|
||||
_missingAddonServer = ACE_Version_ClientErrors select 1;
|
||||
_oldVersionClient = ACE_Version_ClientErrors select 2;
|
||||
_oldVersionServer = ACE_Version_ClientErrors select 3;
|
||||
|
||||
// Display error message.
|
||||
if (_missingAddon || {_missingAddonServer} || {_oldVersionClient} || {_oldVersionServer}) then {
|
||||
_text = "[ACE] Version mismatch:<br/><br/>";
|
||||
_error = format ["ACE version mismatch: %1: ", profileName];
|
||||
|
||||
if (_missingAddon) then {
|
||||
_text = _text + "Detected missing addon on client<br/>";
|
||||
_error = _error + "Missing file(s); ";
|
||||
};
|
||||
if (_missingAddonServer) then {
|
||||
_text = _text + "Detected missing addon on server<br/>";
|
||||
_error = _error + "Additional file(s); ";
|
||||
};
|
||||
if (_oldVersionClient) then {
|
||||
_text = _text + "Detected old client version<br/>";
|
||||
_error = _error + "Older version; ";
|
||||
};
|
||||
if (_oldVersionServer) then {
|
||||
_text = _text + "Detected old server version<br/>";
|
||||
_error = _error + "Newer version; ";
|
||||
};
|
||||
|
||||
//[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
diag_log text _error;
|
||||
|
||||
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
|
||||
|
||||
_rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
|
||||
_rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
|
||||
|
||||
disableSerialization;
|
||||
_ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
|
||||
_ctrlHint ctrlSetStructuredText _text;
|
||||
|
||||
if (_mode == 0) then {
|
||||
sleep 10;
|
||||
_rscLayer cutFadeOut 0.2;
|
||||
};
|
||||
|
||||
if (_mode == 2) then {
|
||||
sleep 10;
|
||||
waitUntil {alive player};
|
||||
[player] call FUNC(adminKick);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
diag_log text format ["[ACE]: Check-PBOs Module Initialized. Mode: %1.", _mode];
|
||||
|
||||
if (_checkAll) then {
|
||||
0 spawn COMPILE_FILE(scripts\Version\checkVersionNumber);
|
||||
};
|
||||
|
@ -17,7 +17,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_name","_value"];
|
||||
private ["_name","_value", "_force", "_settingData","_failed"];
|
||||
_name = _this select 0;
|
||||
_value = _this select 1;
|
||||
|
||||
|
@ -14,6 +14,8 @@
|
||||
|
||||
EXPLODE_1_PVT(_this,_optionEntry);
|
||||
|
||||
private ["_fnc_getValueWithType", "_value","_name", "_typeName", "_settingData"];
|
||||
|
||||
_fnc_getValueWithType = {
|
||||
EXPLODE_2_PVT(_this,_optionEntry,_typeName);
|
||||
|
||||
|
25
addons/common/functions/fnc_timePFH.sqf
Normal file
25
addons/common/functions/fnc_timePFH.sqf
Normal file
@ -0,0 +1,25 @@
|
||||
//#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
private["_lastTime", "_lastRealTime", "_lastVirtualTime", "_lastGameTime", "_delta"];
|
||||
|
||||
_lastRealTime = ACE_realTime;
|
||||
_lastGameTime = ACE_gameTime;
|
||||
|
||||
ACE_gameTime = time;
|
||||
ACE_diagTime = diag_tickTime;
|
||||
|
||||
_delta = ACE_diagTime - _lastRealTime;
|
||||
if(ACE_gameTime <= _lastGameTime) then {
|
||||
ACE_paused = true;
|
||||
// Game is paused or not running
|
||||
ACE_pausedTime = ACE_pausedTime + _delta;
|
||||
ACE_virtualPausedTime = ACE_pausedTime + (_delta * accTime);
|
||||
} else {
|
||||
ACE_paused = false;
|
||||
// Time is updating
|
||||
ACE_realTime = ACE_realTime + _delta;
|
||||
ACE_virtualTime = ACE_virtualTime + (_delta * accTime);
|
||||
ACE_time = ACE_virtualTime;
|
||||
};
|
||||
|
20
addons/common/functions/fnc_waveHeightAt.sqf
Normal file
20
addons/common/functions/fnc_waveHeightAt.sqf
Normal file
@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Author: jaynus
|
||||
*
|
||||
* Gets the wave height at a specific location. Uses a logic, so may be performance iffy
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Position ASL to get height at
|
||||
*
|
||||
* Return Value:
|
||||
* Wave height in meters
|
||||
*
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
if(isNil QGVAR(waveHeightLogic)) then {
|
||||
GVAR(waveHeightLogic) = "Logic" createVehicleLocal [0,0,0];
|
||||
};
|
||||
GVAR(waveHeightLogic) setPosASL (_this select 0);
|
||||
|
||||
(((getPosASLW GVAR(waveHeightLogic)) select 2) - ((getPosASL GVAR(waveHeightLogic)) select 2))
|
@ -1,193 +1,156 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
sleep 1; //wait for module
|
||||
|
||||
_files = [];
|
||||
|
||||
if (missionNamespace getVariable ["ACE_Version_CheckAll", false]) then {
|
||||
{
|
||||
if (toLower _x find "a3_" != 0 && {!(toLower _x in (missionNamespace getVariable ["ACE_Version_Whitelist", []]))}) then {
|
||||
_files pushBack _x;
|
||||
{
|
||||
if (_x find "a3_" != 0 && {_x find "ace_" != 0} && {!(toLower _x in (missionNamespace getVariable ["ACE_Version_Whitelist", []]))}) then {
|
||||
_files pushBack _x;
|
||||
};
|
||||
} forEach activatedAddons;
|
||||
} else {
|
||||
{
|
||||
if (toLower _x find "ace_" == 0) then {
|
||||
_files pushBack _x;
|
||||
};
|
||||
} forEach activatedAddons;
|
||||
};
|
||||
|
||||
_versionMain = parseNumber getText (configFile >> "CfgPatches" >> QUOTE(ADDON) >> "version");
|
||||
} forEach activatedAddons;
|
||||
|
||||
_versions = [];
|
||||
{
|
||||
_version = parseNumber getText (configFile >> "CfgPatches" >> _x >> "version");
|
||||
_versions set [_forEachIndex, _version];
|
||||
_version = parseNumber getText (configFile >> "CfgPatches" >> _x >> "version");
|
||||
_versions set [_forEachIndex, _version];
|
||||
} forEach _files;
|
||||
|
||||
_versionFull = getText (configFile >> "CfgPatches" >> QUOTE(ADDON) >> "versionStr");
|
||||
diag_log text format ["[ACE] Full Version Number: %1", _versionFull];
|
||||
|
||||
if (isServer) then {
|
||||
diag_log text format ["[ACE] Server: ACE_Common is Version %1.", _versionMain];
|
||||
|
||||
{
|
||||
if (toLower _x find "ace_" == 0) then {//
|
||||
_version = _versions select _forEachIndex;
|
||||
if (_version != _versionMain) then {
|
||||
diag_log text format ["[ACE] Server: %1 is Version %2.", _x, _version];
|
||||
};
|
||||
};
|
||||
} forEach _files;
|
||||
|
||||
ACE_Version_ServerVersions = [_files, _versions];
|
||||
publicVariable "ACE_Version_ServerVersions";
|
||||
ACE_Version_ServerVersions = [_files, _versions];
|
||||
publicVariable "ACE_Version_ServerVersions";
|
||||
} else {
|
||||
diag_log text format ["[ACE] Client: ACE_Common is Version %1.", _versionMain];
|
||||
|
||||
{
|
||||
if (toLower _x find "ace_" == 0) then {//
|
||||
_version = _versions select _forEachIndex;
|
||||
if (_version != _versionMain) then {
|
||||
diag_log text format ["[ACE] Client: %1 is Version %2.", _x, _version];
|
||||
};
|
||||
};
|
||||
} forEach _files;
|
||||
|
||||
ACE_Version_ClientVersions = [_files, _versions];
|
||||
ACE_Version_ClientVersions = [_files, _versions];
|
||||
};
|
||||
|
||||
// Begin client version check
|
||||
if (!isServer) then {
|
||||
// Wait for server to send the servers files and version numbers
|
||||
waitUntil {
|
||||
sleep 1;
|
||||
!isNil "ACE_Version_ClientVersions" && {!isNil "ACE_Version_ServerVersions"}
|
||||
};
|
||||
|
||||
_client = profileName;
|
||||
|
||||
_files = ACE_Version_ClientVersions select 0;
|
||||
_versions = ACE_Version_ClientVersions select 1;
|
||||
|
||||
_serverFiles = ACE_Version_ServerVersions select 0;
|
||||
_serverVersions = ACE_Version_ServerVersions select 1;
|
||||
|
||||
// Compare client and server files and versions
|
||||
_missingAddons = [];
|
||||
_oldVersionsClient = [];
|
||||
_oldVersionsServer = [];
|
||||
{
|
||||
_serverVersion = _serverVersions select _forEachIndex;
|
||||
|
||||
_index = _files find _x;
|
||||
if (_index == -1) then {
|
||||
if (_x != "ace_serverconfig") then {_missingAddons pushBack _x;};
|
||||
} else {
|
||||
|
||||
_clientVersion = _versions select _index;
|
||||
|
||||
if (_clientVersion < _serverVersion) then {
|
||||
_oldVersionsClient pushBack [_x, _clientVersion, _serverVersion];
|
||||
};
|
||||
|
||||
if (_clientVersion > _serverVersion) then {
|
||||
_oldVersionsServer pushBack [_x, _clientVersion, _serverVersion];
|
||||
};
|
||||
// Wait for server to send the servers files and version numbers
|
||||
waitUntil {
|
||||
sleep 1;
|
||||
!isNil "ACE_Version_ClientVersions" && {!isNil "ACE_Version_ServerVersions"}
|
||||
};
|
||||
} forEach _serverFiles;
|
||||
|
||||
// find client files which the server doesn't have
|
||||
_missingAddonsServer = [];
|
||||
{
|
||||
_index = _serverFiles find _x;
|
||||
if (_index == -1) then {
|
||||
_missingAddonsServer pushBack _x;
|
||||
}
|
||||
} forEach _files;
|
||||
_client = profileName;
|
||||
|
||||
// display and log error messages
|
||||
_fnc_cutComma = {
|
||||
_string = _this;
|
||||
_string = toArray _string;
|
||||
_files = ACE_Version_ClientVersions select 0;
|
||||
_versions = ACE_Version_ClientVersions select 1;
|
||||
|
||||
_count = count _string;
|
||||
_string set [_count - 2, toArray "." select 0];
|
||||
_string set [_count - 1, -1];
|
||||
_string = _string - [-1];
|
||||
_serverFiles = ACE_Version_ServerVersions select 0;
|
||||
_serverVersions = ACE_Version_ServerVersions select 1;
|
||||
|
||||
toString _string;
|
||||
};
|
||||
|
||||
_missingAddon = false;
|
||||
if (count _missingAddons > 0) then {
|
||||
_missingAddon = true;
|
||||
|
||||
_error = format ["[ACE] %1: ERROR missing addon(s): ", _client];
|
||||
// Compare client and server files and versions
|
||||
_missingAddons = [];
|
||||
_oldVersionsClient = [];
|
||||
_oldVersionsServer = [];
|
||||
{
|
||||
_error = _error + format ["%1, ", _x];
|
||||
_serverVersion = _serverVersions select _forEachIndex;
|
||||
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _missingAddons;
|
||||
_index = _files find _x;
|
||||
if (_index == -1) then {
|
||||
if (_x != "ace_server") then {_missingAddons pushBack _x;};
|
||||
} else {
|
||||
|
||||
_error = _error call _fnc_cutComma;
|
||||
_clientVersion = _versions select _index;
|
||||
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
if (_clientVersion < _serverVersion) then {
|
||||
_oldVersionsClient pushBack [_x, _clientVersion, _serverVersion];
|
||||
};
|
||||
|
||||
_missingAddonServer = false;
|
||||
if (count _missingAddonsServer > 0) then {
|
||||
_missingAddonServer = true;
|
||||
if (_clientVersion > _serverVersion) then {
|
||||
_oldVersionsServer pushBack [_x, _clientVersion, _serverVersion];
|
||||
};
|
||||
};
|
||||
} forEach _serverFiles;
|
||||
|
||||
_error = format ["[ACE] %1: ERROR missing server addon(s): ", _client];
|
||||
// find client files which the server doesn't have
|
||||
_missingAddonsServer = [];
|
||||
{
|
||||
_error = _error + format ["%1, ", _x];
|
||||
_index = _serverFiles find _x;
|
||||
if (_index == -1) then {
|
||||
_missingAddonsServer pushBack _x;
|
||||
}
|
||||
} forEach _files;
|
||||
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _missingAddonsServer;
|
||||
// display and log error messages
|
||||
_fnc_cutComma = {
|
||||
_string = _this;
|
||||
_string = toArray _string;
|
||||
|
||||
_error = _error call _fnc_cutComma;
|
||||
_count = count _string;
|
||||
_string set [_count - 2, toArray "." select 0];
|
||||
_string set [_count - 1, -1];
|
||||
_string = _string - [-1];
|
||||
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
toString _string;
|
||||
};
|
||||
|
||||
_oldVersionClient = false;
|
||||
if (count _oldVersionsClient > 0) then {
|
||||
_oldVersionClient = true;
|
||||
_missingAddon = false;
|
||||
if (count _missingAddons > 0) then {
|
||||
_missingAddon = true;
|
||||
|
||||
_error = format ["[ACE] %1: ERROR outdated addon(s): ", _client];
|
||||
{
|
||||
_error = _error + format ["%1 (client: %2, server: %3), ", _x select 0, _x select 1, _x select 2];
|
||||
_error = format ["[ACE] %1: ERROR missing addon(s): ", _client];
|
||||
{
|
||||
_error = _error + format ["%1, ", _x];
|
||||
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _oldVersionsClient;
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _missingAddons;
|
||||
|
||||
_error = _error call _fnc_cutComma;
|
||||
_error = _error call _fnc_cutComma;
|
||||
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
|
||||
_oldVersionServer = false;
|
||||
if (count _oldVersionsServer > 0) then {
|
||||
_oldVersionServer = true;
|
||||
_missingAddonServer = false;
|
||||
if (count _missingAddonsServer > 0) then {
|
||||
_missingAddonServer = true;
|
||||
|
||||
_error = format ["[ACE] %1: ERROR outdated server addon(s): ", _client];
|
||||
{
|
||||
_error = _error + format ["%1 (client: %2, server: %3), ", _x select 0, _x select 1, _x select 2];
|
||||
_error = format ["[ACE] %1: ERROR missing server addon(s): ", _client];
|
||||
{
|
||||
_error = _error + format ["%1, ", _x];
|
||||
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _oldVersionsServer;
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _missingAddonsServer;
|
||||
|
||||
_error = _error call _fnc_cutComma;
|
||||
_error = _error call _fnc_cutComma;
|
||||
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
|
||||
ACE_Version_ClientErrors = [_missingAddon, _missingAddonServer, _oldVersionClient, _oldVersionServer];
|
||||
_oldVersionClient = false;
|
||||
if (count _oldVersionsClient > 0) then {
|
||||
_oldVersionClient = true;
|
||||
|
||||
_error = format ["[ACE] %1: ERROR outdated addon(s): ", _client];
|
||||
{
|
||||
_error = _error + format ["%1 (client: %2, server: %3), ", _x select 0, _x select 1, _x select 2];
|
||||
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _oldVersionsClient;
|
||||
|
||||
_error = _error call _fnc_cutComma;
|
||||
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
|
||||
_oldVersionServer = false;
|
||||
if (count _oldVersionsServer > 0) then {
|
||||
_oldVersionServer = true;
|
||||
|
||||
_error = format ["[ACE] %1: ERROR outdated server addon(s): ", _client];
|
||||
{
|
||||
_error = _error + format ["%1 (client: %2, server: %3), ", _x select 0, _x select 1, _x select 2];
|
||||
|
||||
if (_forEachIndex > 9) exitWith {};//
|
||||
} forEach _oldVersionsServer;
|
||||
|
||||
_error = _error call _fnc_cutComma;
|
||||
|
||||
diag_log text _error;
|
||||
[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
};
|
||||
|
||||
ACE_Version_ClientErrors = [_missingAddon, _missingAddonServer, _oldVersionClient, _oldVersionServer];
|
||||
};
|
||||
|
@ -275,7 +275,7 @@
|
||||
<French>Désactiver menu commande</French>
|
||||
<Russian>Выключить командное меню</Russian>
|
||||
<Hungarian>Parancsnoki menü kikapcsolása</Hungarian>
|
||||
<Italian>Disabilita Menù di comando</Italian>
|
||||
<Italian>Disabilita menù di comando</Italian>
|
||||
<Portuguese>Desabilitar menu de comando</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Unknown">
|
||||
@ -308,11 +308,11 @@
|
||||
<Spanish>Aceptar peticiones</Spanish>
|
||||
<Polish>Akceptuj prośby</Polish>
|
||||
<Czech>Přijmout žádost</Czech>
|
||||
<Italian>Accetta Richieste</Italian>
|
||||
<French>Accepter requête</French>
|
||||
<Russian>Принять запросы</Russian>
|
||||
<Hungarian>Kérések elfogadása</Hungarian>
|
||||
<Portuguese>Aceitar Pedido</Portuguese>
|
||||
<Italian>Accetta la richiesta</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TITLE">
|
||||
<English>Decline Requests</English>
|
||||
@ -320,11 +320,11 @@
|
||||
<Spanish>Rechazar peticiones</Spanish>
|
||||
<Polish>Ignoruj prośby</Polish>
|
||||
<Czech>Zamítnout žádost</Czech>
|
||||
<Italian>Rifiuta Richieste</Italian>
|
||||
<Russian>Отклонить запросы</Russian>
|
||||
<French>Rejeter requête</French>
|
||||
<Hungarian>Kérések elutasítása</Hungarian>
|
||||
<Portuguese>Rejeitar pedido</Portuguese>
|
||||
<Italian>Rifiuta la richiesta</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TOOLTIP">
|
||||
<English>Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions.</English>
|
||||
@ -402,7 +402,7 @@
|
||||
<English>Hint Background color</English>
|
||||
<German>Hintergrundfarbe der Hinweise</German>
|
||||
<Spanish>Color de fondo de las notificaciones</Spanish>
|
||||
<Italian>Colore di sfondo dei Suggerimenti</Italian>
|
||||
<Italian>Colore di sfondo dei suggerimenti</Italian>
|
||||
<Russian>Цвет фона всплывающих подсказок</Russian>
|
||||
<Polish>Kolor tła powiadomień</Polish>
|
||||
<French>Notification: couleur de l'arrière plan</French>
|
||||
@ -414,7 +414,7 @@
|
||||
<English>The color of the background from the ACE hints.</English>
|
||||
<German>Die Hintergrundfarbe der ACE-Hinweise.</German>
|
||||
<Spanish>El color de fondo de las notificaciones del ACE</Spanish>
|
||||
<Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian>
|
||||
<Italian>Il colore di sfondo dei suggerimenti di ACE.</Italian>
|
||||
<Russian>Цвет фона всплывающих подсказок АСЕ.</Russian>
|
||||
<Polish>Kolor tła dla powiadomień ACE</Polish>
|
||||
<French>Notification ACE: couleur de l'arrière plan</French>
|
||||
@ -426,7 +426,7 @@
|
||||
<English>Hint text font color</English>
|
||||
<German>Textfarbe der Hinweise</German>
|
||||
<Spanish>Color del texto de las notificaciones</Spanish>
|
||||
<Italian>Il colore del Testo dei Suggerimenti</Italian>
|
||||
<Italian>Il colore del testo dei suggerimenti</Italian>
|
||||
<Russian>Цвет шрифта всплывающих подсказок</Russian>
|
||||
<Polish>Kolor tekstu powiadomień</Polish>
|
||||
<French>Notification: couleur du texte</French>
|
||||
@ -438,7 +438,7 @@
|
||||
<English>The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified.</English>
|
||||
<German>Wähle die Textfarbe für ACE-Hinweise. Die gewählte Farbe wird als Standartfarbe der Hinweise angezeigt, wenn der Hinweis selbst keine spezifische Farbe hat. </German>
|
||||
<Spanish>El color del texto de las notificaciones del ACE. Este es el color predeterminado para todo el texto que se muestra a través del sistema de notificaciones del ACE, si el texto de notificación no tiene otro color especificado.</Spanish>
|
||||
<Italian>Il colore del testo dei suggerimenti dell'ACE. Questo è il colore standard per tutti i caratteri mostrati dal sistema di suggerimenti dell'ACE, se il colore del testo non è specificato.</Italian>
|
||||
<Italian>Il colore del testo dei suggerimenti di ACE. Questo è il colore predefinito per tutto il testo mostrato dal sistema di suggerimenti di ACE quando il colore del testo non ha altro colore specificato.</Italian>
|
||||
<Russian>Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок.</Russian>
|
||||
<Polish>Kolor tekstu dla powiadomień ACE. Ten kolor jest domyślnym dla wszystkich tekstów wyświetlanych poprzez System Powiadomień ACE, jeżeli dla powiadomienia nie określono innego koloru.</Polish>
|
||||
<French>Notification ACE: couleur du texte. C'est la couleur par défaut de tout texte affiché dans les notifications ACE, si aucune couleur n'est spécifiée pour les notifications</French>
|
||||
|
@ -79,7 +79,7 @@ _holderMagazinesStart = magazinesAmmoCargo _holder;
|
||||
|
||||
{
|
||||
EXPLODE_2_PVT(_x,_xClassname,_xAmmo);
|
||||
if ((_xClassname in _listOfItemsToRemove) && {!(_xClassname in UNIQUE_MAGAZINES)}) then {
|
||||
if ((_xClassname in _listOfItemsToRemove) && {(getNumber (configFile >> "CfgMagazines" >> _xClassname >> "ACE_isUnique")) == 0}) then {
|
||||
_holder addMagazineAmmoCargo [_xClassname, 1, _xAmmo];
|
||||
_target removeMagazine _xClassname;
|
||||
};
|
||||
@ -89,7 +89,7 @@ _targetMagazinesEnd = magazinesAmmo _target;
|
||||
_holderMagazinesEnd = magazinesAmmoCargo _holder;
|
||||
|
||||
//Verify Mags dropped from unit:
|
||||
if ( ({((_x select 0) in _listOfItemsToRemove) && {!((_x select 0) in UNIQUE_MAGAZINES)}} count _targetMagazinesEnd) != 0) exitWith {
|
||||
if (({((_x select 0) in _listOfItemsToRemove) && {(getNumber (configFile >> "CfgMagazines" >> (_x select 0) >> "ACE_isUnique")) == 0}} count _targetMagazinesEnd) != 0) exitWith {
|
||||
_holder setVariable [QGVAR(holderInUse), false];
|
||||
[_caller, _target, "Debug: Didn't Remove Magazines"] call FUNC(eventTargetFinish);
|
||||
};
|
||||
@ -102,7 +102,7 @@ if (!([_targetMagazinesStart, _targetMagazinesEnd, _holderMagazinesStart, _holde
|
||||
|
||||
//Remove Items, Assigned Items and NVG
|
||||
_holderItemsStart = getitemCargo _holder;
|
||||
_targetItemsStart = (assignedItems _target) + (items _target);
|
||||
_targetItemsStart = (assignedItems _target) + (items _target) - (weapons _target);
|
||||
if ((headgear _target) != "") then {_targetItemsStart pushBack (headgear _target);};
|
||||
if ((goggles _target) != "") then {_targetItemsStart pushBack (goggles _target);};
|
||||
|
||||
@ -132,7 +132,7 @@ _addToCrateCount = [];
|
||||
} forEach _addToCrateClassnames;
|
||||
|
||||
_holderItemsEnd = getitemCargo _holder;
|
||||
_targetItemsEnd = (assignedItems _target) + (items _target);
|
||||
_targetItemsEnd = (assignedItems _target) + (items _target) - (weapons _target);
|
||||
if ((headgear _target) != "") then {_targetItemsEnd pushBack (headgear _target);};
|
||||
if ((goggles _target) != "") then {_targetItemsEnd pushBack (goggles _target);};
|
||||
|
||||
@ -146,6 +146,16 @@ if ((([_holderItemsEnd select 1] call _fncSumArray) - ([_holderItemsStart select
|
||||
[_caller, _target, "Debug: Items Not Added to Holder"] call FUNC(eventTargetFinish);
|
||||
};
|
||||
|
||||
//Script drop uniforms/vest if empty
|
||||
if (((uniform _target) != "") && {(uniform _target) in _listOfItemsToRemove} && {(uniformItems _target) isEqualTo []}) then {
|
||||
_holder addItemCargoGlobal [(uniform _target), 1];
|
||||
removeUniform _target;
|
||||
};
|
||||
if (((vest _target) != "") && {(vest _target) in _listOfItemsToRemove} && {(vestItems _target) isEqualTo []}) then {
|
||||
_holder addItemCargoGlobal [(vest _target), 1];
|
||||
removeVest _target;
|
||||
};
|
||||
|
||||
|
||||
//If holder is still empty, it will be 'garbage collected' while we wait for the drop 'action' to take place
|
||||
//So add a dummy item and just remove at the end
|
||||
|
@ -19,7 +19,7 @@ PARAMS_1(_target);
|
||||
|
||||
private ["_allItems", "_classnamesCount", "_index", "_uniqueClassnames"];
|
||||
|
||||
_allItems = ((weapons _target) + (magazines _target) + (items _target) + (assignedItems _target));
|
||||
_allItems = (((items _target) + (assignedItems _target)) - (weapons _target)) + (weapons _target) + (magazines _target);
|
||||
|
||||
if ((backpack _target) != "") then {
|
||||
_allItems pushBack (backpack _target);
|
||||
|
@ -28,7 +28,7 @@ private ["_classname", "_count", "_displayName", "_picture"];
|
||||
_classname = _x;
|
||||
_count = (_itemsCountArray select 1) select _forEachIndex;
|
||||
|
||||
if (_classname != DUMMY_ITEM) then { //Don't show the dummy potato
|
||||
if ((_classname != DUMMY_ITEM) && {_classname != "ACE_FakePrimaryWeapon"}) then { //Don't show the dummy potato or fake weapon
|
||||
|
||||
switch (true) do {
|
||||
case (isClass (configFile >> "CfgWeapons" >> _classname)): {
|
||||
@ -53,8 +53,8 @@ private ["_classname", "_count", "_displayName", "_picture"];
|
||||
};
|
||||
|
||||
_listBoxCtrl lbAdd format ["%1", _displayName];
|
||||
_listBoxCtrl lbSetData [_forEachIndex, _classname];
|
||||
_listBoxCtrl lbSetPicture [_forEachIndex, _picture];
|
||||
_listBoxCtrl lbSetTextRight [_forEachIndex, str _count];
|
||||
_listBoxCtrl lbSetData [((lbSize _listBoxCtrl) - 1), _classname];
|
||||
_listBoxCtrl lbSetPicture [((lbSize _listBoxCtrl) - 1), _picture];
|
||||
_listBoxCtrl lbSetTextRight [((lbSize _listBoxCtrl) - 1), str _count];
|
||||
};
|
||||
} forEach (_itemsCountArray select 0);
|
||||
|
@ -13,4 +13,3 @@
|
||||
|
||||
#define DISARM_CONTAINER "GroundWeaponHolder"
|
||||
#define DUMMY_ITEM "ACE_DebugPotato"
|
||||
#define UNIQUE_MAGAZINES ["ACE_key_customKeyMagazine"]
|
@ -10,7 +10,7 @@
|
||||
<Spanish>Lanzador utilizado</Spanish>
|
||||
<Hungarian>Elhasznált kilövőcső</Hungarian>
|
||||
<Russian>Отстрелянная труба</Russian>
|
||||
<Italian>Tubo utilizzato</Italian>
|
||||
<Italian>Tubo usato</Italian>
|
||||
<Portuguese>Tubo utilizado</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Disposable_UsedTubeDescription">
|
||||
@ -22,7 +22,7 @@
|
||||
<Spanish>Lanzador desechable utilizado</Spanish>
|
||||
<Hungarian>Elhasznált eldobható rakétavető</Hungarian>
|
||||
<Russian>Отстрелянная одноразовая пусковая установка</Russian>
|
||||
<Italian>Lanciarazzi monouso utilizzato</Italian>
|
||||
<Italian>Lanciarazzi monouso già utilizzato</Italian>
|
||||
<Portuguese>Lança foguetes descartável utilizado</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Disposable_PreloadedMissileDummy">
|
||||
@ -34,8 +34,8 @@
|
||||
<Spanish>Precargado misil inerte</Spanish>
|
||||
<Hungarian>Előtöltött műrakéta</Hungarian>
|
||||
<Russian>Предзаряженная ракетная болванка</Russian>
|
||||
<Italian>Missile stupido precaricato</Italian>
|
||||
<Italian>Missile inerte precaricato</Italian>
|
||||
<Portuguese>Míssel inerte pré-carregado</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -32,7 +32,7 @@
|
||||
<Polish>Przedmiot jest zbyt ciężki</Polish>
|
||||
<French>Objet trop lourd</French>
|
||||
<Portuguese>Objeto muito pesado</Portuguese>
|
||||
<Italian>Non è possibile trascinare l'oggetto a causa del suo peso</Italian>
|
||||
<Italian>L'oggetto pesa troppo</Italian>
|
||||
<Russian>Предмет слишком тяжёлый</Russian>
|
||||
<Czech>Moc težké</Czech>
|
||||
<Hungarian>Az objektum túl nehéz</Hungarian>
|
||||
@ -45,9 +45,9 @@
|
||||
<French>Porter</French>
|
||||
<Czech>Nést</Czech>
|
||||
<Portuguese>Carregar</Portuguese>
|
||||
<Italian>Trascina</Italian>
|
||||
<Hungarian>Felvevés</Hungarian>
|
||||
<Italian>Trasporta</Italian>
|
||||
<Russian>Нести</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Explosives">
|
||||
<Key ID="STR_ACE_Explosives_Menu">
|
||||
@ -368,7 +368,7 @@
|
||||
<Polish>Wybierz zapalnik</Polish>
|
||||
<French>Sélectionner une mise à feu</French>
|
||||
<Czech>Zvolit Detonátor</Czech>
|
||||
<Italian>Seleziona un Attivatore</Italian>
|
||||
<Italian>Seleziona un attivatore</Italian>
|
||||
<Hungarian>Gyújtóeszköz kiválasztása</Hungarian>
|
||||
<Portuguese>Selecionar um Gatilho</Portuguese>
|
||||
<Russian>Выберите детонатор</Russian>
|
||||
@ -392,7 +392,7 @@
|
||||
<German>Druckplatte</German>
|
||||
<French>Plaque de pression</French>
|
||||
<Czech>Nášlapná nástraha</Czech>
|
||||
<Italian>Piastra a Pressione</Italian>
|
||||
<Italian>Piastra a pressione</Italian>
|
||||
<Hungarian>Nyomólap</Hungarian>
|
||||
<Portuguese>Placa de pressão</Portuguese>
|
||||
<Russian>Нажимная плита</Russian>
|
||||
@ -404,7 +404,7 @@
|
||||
<German>Stolperdraht</German>
|
||||
<French>Fil de détente</French>
|
||||
<Czech>Nástražný drát</Czech>
|
||||
<Italian>Filo a Inciampo</Italian>
|
||||
<Italian>Filo a inciampo</Italian>
|
||||
<Hungarian>Botlódrót</Hungarian>
|
||||
<Portuguese>Linha de tração</Portuguese>
|
||||
<Russian>Растяжка</Russian>
|
||||
@ -440,7 +440,7 @@
|
||||
<German>Infrarotsensor (Seitenangriff)</German>
|
||||
<French>Capteur IR (de flanc)</French>
|
||||
<Czech>IR Značkovač (Výbuch stranou)</Czech>
|
||||
<Italian>Sensore IR (Attacco laterale)</Italian>
|
||||
<Italian>Sensore IR (attacco laterale)</Italian>
|
||||
<Hungarian>Infravörös szenzor (Side Attack)</Hungarian>
|
||||
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
|
||||
<Russian>ИК сенсор (детонация вбок)</Russian>
|
||||
@ -452,7 +452,7 @@
|
||||
<German>Magnetfeldsensor (Bodenangriff)</German>
|
||||
<French>Capteur magnétique (par le bas)</French>
|
||||
<Czech>Magnetický Senzor (Výbuch ze spoda)</Czech>
|
||||
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
|
||||
<Italian>Sensore Magnetico di Prossimità (attacco inferiore)</Italian>
|
||||
<Hungarian>Mágneses mező érzékelő (Bottom Attack)</Hungarian>
|
||||
<Portuguese>Influência magnética (ataque inferior)</Portuguese>
|
||||
<Russian>Магнитный сенсор (детонация вверх)</Russian>
|
||||
@ -462,7 +462,7 @@
|
||||
<German>Keine Sprengladungen auf diesem Auslöser.</German>
|
||||
<Spanish>Ningún explosivo en el detonador.</Spanish>
|
||||
<French>Pas d'explosif à mettre à feu.</French>
|
||||
<Italian>Nessun esplosivo sul sensore.</Italian>
|
||||
<Italian>Nessun esplosivo</Italian>
|
||||
<Czech>Žádná výbušnina k odpálení.</Czech>
|
||||
<Hungarian>Nincs robbanóanyag a gyújtóeszközhöz kötve.</Hungarian>
|
||||
<Polish>Brak ładunków na zapalnik.</Polish>
|
||||
@ -491,7 +491,7 @@
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Portuguese>Usado para detonar remotamente o explosivo quando solto.</Portuguese>
|
||||
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
|
||||
<Italian>Usato per attivare esplosivi al momento del rilascio</Italian>
|
||||
<Italian>Usato per attivare a distanza esplosivi al momento del rilascio</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Pickup">
|
||||
<English>Pick up</English>
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_vehicle", "_weapon", "_ammo", "_magazine", "_projectile","_velocityCorrection"];
|
||||
private ["_vehicle", "_weapon", "_ammo", "_magazine", "_projectile", "_sumVelocity"];
|
||||
|
||||
_vehicle = _this select 0;
|
||||
_weapon = _this select 1;
|
||||
@ -43,12 +43,8 @@ _offset = 0;
|
||||
};
|
||||
} forEach _FCSMagazines;
|
||||
|
||||
// Correct velocity for weapons that have initVelocity
|
||||
// @todo: Take into account negative initVelocities
|
||||
_velocityCorrection = (vectorMagnitude velocity _projectile) -
|
||||
getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed");
|
||||
|
||||
[_projectile, (_vehicle getVariable format ["%1_%2", QGVAR(Azimuth), _turret]), _offset, -_velocityCorrection] call EFUNC(common,changeProjectileDirection);
|
||||
[_projectile, (_vehicle getVariable format ["%1_%2", QGVAR(Azimuth), _turret]), _offset, 0] call EFUNC(common,changeProjectileDirection);
|
||||
|
||||
// Remove the platform velocity
|
||||
if( (vectorMagnitude velocity _vehicle) > 2) then {
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_vehicle", "_turret", "_turretConfig", "_distance", "_magazines", "_showHint", "_playSound"];
|
||||
private ["_vehicle", "_turret", "_turretConfig", "_distance", "_weapons", "_magazines", "_showHint", "_playSound"];
|
||||
|
||||
_vehicle = _this select 0;
|
||||
_turret = _this select 1;
|
||||
@ -21,6 +21,7 @@ _turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _turret] call E
|
||||
|
||||
_distance = call FUNC(getRange);
|
||||
|
||||
_weapons = _vehicle weaponsTurret _turret;
|
||||
_magazines = _vehicle magazinesTurret _turret;
|
||||
|
||||
if (_distance == 0) then {
|
||||
@ -31,9 +32,9 @@ if (_distance == 0) then {
|
||||
] call EFUNC(common,getTargetDistance); // maximum distance: 5000m, 5m precision
|
||||
};
|
||||
|
||||
private ["_weaponDirection", "_angleTarget"];
|
||||
|
||||
_weaponDirection = _vehicle weaponDirection (_vehicle currentWeaponTurret _turret); // @todo doesn't work for sub turrets
|
||||
private ["_weapon", "_weaponDirection", "_angleTarget"];
|
||||
_weapon = _vehicle currentWeaponTurret _turret;
|
||||
_weaponDirection = _vehicle weaponDirection _weapon; // @todo doesn't work for sub turrets
|
||||
|
||||
if (_turret isEqualTo ([_vehicle] call EFUNC(common,getTurretCommander))) then {
|
||||
_weaponDirection = eyeDirection _vehicle;
|
||||
@ -55,7 +56,7 @@ if (!(isNil QGVAR(backgroundCalculation)) and {!(scriptDone GVAR(backgroundCalcu
|
||||
terminate GVAR(backgroundCalculation);
|
||||
};
|
||||
|
||||
private "_movingAzimuth";
|
||||
private ["_movingAzimuth", "_posTarget", "_velocityTarget"];
|
||||
|
||||
// MOVING TARGETS
|
||||
_movingAzimuth = 0;
|
||||
@ -72,7 +73,7 @@ if (time - GVAR(time) > 1 and GVAR(time) != -1 and count _this < 3) then {
|
||||
((_posTarget select 2) - (GVAR(position) select 2)) / (time - GVAR(time))
|
||||
];
|
||||
|
||||
private ["_magazineType", "_ammoType", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep"];
|
||||
private ["_magazineType", "_ammoType", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_initSpeedCoef", "_velocityMagnitude"];
|
||||
|
||||
// estimate time to target
|
||||
_magazineType = _vehicle currentMagazineTurret _turret;
|
||||
@ -82,6 +83,14 @@ if (time - GVAR(time) > 1 and GVAR(time) != -1 and count _this < 3) then {
|
||||
_timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive");
|
||||
_simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep");
|
||||
|
||||
_initSpeedCoef = getNumber(configFile >> "CfgWeapons" >> _weapon >> "initSpeed");
|
||||
if (_initSpeedCoef < 0) then {
|
||||
_initSpeed = _initSpeed * -_initSpeedCoef;
|
||||
};
|
||||
if (_initSpeedCoef > 0) then {
|
||||
_initSpeed = _initSpeedCoef;
|
||||
};
|
||||
|
||||
if (_simulationStep != 0) then {
|
||||
private ["_posX", "_velocityX", "_velocityY", "_timeToTarget"];
|
||||
|
||||
@ -138,21 +147,43 @@ _FCSMagazines = [];
|
||||
_FCSElevation = [];
|
||||
|
||||
{
|
||||
private "_ammoType";
|
||||
|
||||
_ammoType = getText (configFile >> "CfgMagazines" >> _x >> "ammo");
|
||||
private ["_magazine", "_ammoType"];
|
||||
_magazine = _x;
|
||||
_ammoType = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
|
||||
if !(getText (configFile >> "CfgAmmo" >> _ammoType >> "simulation") == "shotMissile") then {
|
||||
private ["_maxElev", "_initSpeed", "_airFriction", "_offset"];
|
||||
|
||||
_maxElev = getNumber (_turretConfig >> "maxElev");
|
||||
_initSpeed = getNumber (configFile >> "CfgMagazines" >> _x >> "initSpeed");
|
||||
_initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed");
|
||||
_airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction");
|
||||
|
||||
|
||||
{
|
||||
private ["_weapon", "_muzzles", "_weaponMagazines", "_muzzleMagazines"];
|
||||
_weapon = _x;
|
||||
_muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles");
|
||||
_weaponMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines");
|
||||
{
|
||||
if (_x != "this") then {
|
||||
_muzzleMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> _x >> "magazines");
|
||||
_weaponMagazines append _muzzleMagazines;
|
||||
};
|
||||
} forEach _muzzles;
|
||||
if (_magazine in _weaponMagazines) exitWith {
|
||||
_initSpeedCoef = getNumber(configFile >> "CfgWeapons" >> _weapon >> "initSpeed");
|
||||
if (_initSpeedCoef < 0) then {
|
||||
_initSpeed = _initSpeed * -_initSpeedCoef;
|
||||
};
|
||||
if (_initSpeedCoef > 0) then {
|
||||
_initSpeed = _initSpeedCoef;
|
||||
};
|
||||
};
|
||||
} forEach _weapons;
|
||||
|
||||
_offset = "ace_fcs" callExtension format ["%1,%2,%3,%4", _initSpeed, _airFriction, _angleTarget, _distance];
|
||||
_offset = parseNumber _offset;
|
||||
|
||||
_FCSMagazines = _FCSMagazines + [_x];
|
||||
_FCSMagazines = _FCSMagazines + [_magazine];
|
||||
_FCSElevation = _FCSElevation + [_offset];
|
||||
};
|
||||
} forEach _magazines;
|
||||
|
@ -10,6 +10,8 @@ class CfgAmmo {
|
||||
//};
|
||||
class Bo_GBU12_LGB;
|
||||
class ACE_GBU12 : Bo_GBU12_LGB {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
|
||||
GVAR(metal) = 140000;
|
||||
GVAR(charge) = 87000;
|
||||
@ -23,6 +25,8 @@ class CfgAmmo {
|
||||
class GrenadeBase;
|
||||
class Grenade;
|
||||
class GrenadeHand: Grenade {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(skip) = 0;
|
||||
GVAR(force) = 1;
|
||||
// This is a good high-drag frag type for grenades.
|
||||
@ -46,6 +50,8 @@ class CfgAmmo {
|
||||
class RocketBase;
|
||||
class R_Hydra_HE: RocketBase {
|
||||
// Source: http://fas.org/man/dod-101/sys/missile/hydra-70.htm
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 3850;
|
||||
GVAR(charge) = 1040;
|
||||
@ -66,6 +72,8 @@ class CfgAmmo {
|
||||
|
||||
class BombCore;
|
||||
class Bo_Mk82: BombCore {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
|
||||
GVAR(metal) = 140000;
|
||||
GVAR(charge) = 87000;
|
||||
@ -75,6 +83,8 @@ class CfgAmmo {
|
||||
|
||||
class G_40mm_HE: GrenadeBase {
|
||||
// Source: http://www.inetres.com/gp/military/infantry/grenade/40mm_ammo.html#M441
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_tiny_HD"};
|
||||
GVAR(metal) = 200;
|
||||
GVAR(charge) = 32;
|
||||
@ -83,6 +93,8 @@ class CfgAmmo {
|
||||
};
|
||||
class G_40mm_HEDP: G_40mm_HE {
|
||||
// Source: http://www.inetres.com/gp/military/infantry/grenade/40mm_ammo.html#M433
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_tiny_HD"};
|
||||
GVAR(metal) = 200;
|
||||
GVAR(charge) = 45;
|
||||
@ -107,6 +119,8 @@ class CfgAmmo {
|
||||
class Sh_125mm_HEAT;
|
||||
class Sh_155mm_AMOS: ShellBase {
|
||||
// Source: http://www.globalsecurity.org/military/systems/munitions/m795.htm
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
|
||||
GVAR(metal) = 36000;
|
||||
GVAR(charge) = 9979;
|
||||
@ -115,6 +129,8 @@ class CfgAmmo {
|
||||
};
|
||||
class Sh_82mm_AMOS : Sh_155mm_AMOS {
|
||||
// Source: http://www.arsenal-bg.com/defense_police/mortar_bombs_82mm.htm
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 3200;
|
||||
GVAR(charge) = 420;
|
||||
@ -122,6 +138,8 @@ class CfgAmmo {
|
||||
GVAR(gurney_k) = 1/2;
|
||||
};
|
||||
class ModuleOrdnanceMortar_F_Ammo: Sh_82mm_AMOS {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 800;
|
||||
GVAR(charge) = 4200;
|
||||
@ -129,6 +147,8 @@ class CfgAmmo {
|
||||
GVAR(gurney_k) = 1/2;
|
||||
};
|
||||
class Sh_105mm_HEAT_MP : Sh_125mm_HEAT {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 11400;
|
||||
GVAR(charge) = 7100;
|
||||
@ -136,6 +156,8 @@ class CfgAmmo {
|
||||
GVAR(gurney_k) = 1/2;
|
||||
};
|
||||
class Sh_120mm_HE : ShellBase {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 23000;
|
||||
GVAR(charge) = 3148;
|
||||
@ -143,6 +165,8 @@ class CfgAmmo {
|
||||
GVAR(gurney_k) = 1/2;
|
||||
};
|
||||
class Sh_125mm_HE: Sh_120mm_HE {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 16000;
|
||||
GVAR(charge) = 3200;
|
||||
@ -150,6 +174,8 @@ class CfgAmmo {
|
||||
GVAR(gurney_k) = 1/2;
|
||||
};
|
||||
class ModuleOrdnanceHowitzer_F_ammo: Sh_155mm_AMOS {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
|
||||
GVAR(metal) = 1950;
|
||||
GVAR(charge) = 15800;
|
||||
@ -175,6 +201,8 @@ class CfgAmmo {
|
||||
class MissileBase;
|
||||
class Missile_AGM_02_F : MissileBase {
|
||||
// Source: http://fas.org/man/dod-101/sys/smart/agm-65.htm
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 56250;
|
||||
GVAR(charge) = 39000;
|
||||
@ -183,6 +211,8 @@ class CfgAmmo {
|
||||
};
|
||||
class M_Hellfire_AT: MissileBase {
|
||||
// Source: http://www.designation-systems.net/dusrm/m-114.html
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 8000;
|
||||
GVAR(charge) = 2400;
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_gun", "_type", "_round", "_doFragTrack", "_doSpall", "_spallTrack", "_spallTrackID"];
|
||||
private ["_enabled", "_gun", "_type", "_round", "_doFragTrack", "_doSpall", "_spallTrack", "_spallTrackID"];
|
||||
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
|
||||
@ -8,10 +8,14 @@ _gun = _this select 0;
|
||||
_type = _this select 4;
|
||||
_round = _this select 6;
|
||||
|
||||
_enabled = getNumber (configFile >> "CfgAmmo" >> _type >> QGVAR(enabled));
|
||||
if(_enabled < 1) exitWith {};
|
||||
|
||||
if(_round in GVAR(blackList)) exitWith {
|
||||
GVAR(blackList) = GVAR(blackList) - [_round];
|
||||
};
|
||||
|
||||
|
||||
_doFragTrack = false;
|
||||
if(_gun == ACE_player) then {
|
||||
_doFragTrack = true;
|
||||
|
@ -14,4 +14,4 @@
|
||||
<Portuguese>Desabilitar Fragmentação</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -106,8 +106,8 @@
|
||||
<Czech>Vypnout pískání v uších</Czech>
|
||||
<Polish>Wyłącz dzwonienie w uszach</Polish>
|
||||
<Hungarian>Fülcsengés letiltása</Hungarian>
|
||||
<Italian>Disabilita il ronzio</Italian>
|
||||
<Italian>Disabilita i fischi nelle orecchie</Italian>
|
||||
<Portuguese>Desabilitar zumbido de ouvidos</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -63,7 +63,7 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
|
||||
if (_unit != ACE_player || !_isUnconscious) exitWith {};
|
||||
|
||||
GVAR(actionSelected) = false;
|
||||
[] call FUNC(keyUp);
|
||||
[GVAR(openedMenuType), false] call FUNC(keyUp);
|
||||
}] call EFUNC(common,addEventhandler);
|
||||
|
||||
// disable firing while the interact menu is is is opened
|
||||
|
@ -16,7 +16,7 @@ EXPLODE_2_PVT(_this,_newUnit,_oldUnit);
|
||||
// add to new unit
|
||||
private "_ehid";
|
||||
_ehid = [_newUnit, "DefaultAction", {GVAR(openedMenuType) >= 0}, {
|
||||
if !(GVAR(actionOnKeyRelease)) then {
|
||||
if (!GVAR(actionOnKeyRelease) && GVAR(actionSelected)) then {
|
||||
[GVAR(openedMenuType),true] call FUNC(keyUp);
|
||||
};
|
||||
}] call EFUNC(common,addActionEventHandler);
|
||||
|
@ -54,7 +54,7 @@ if (GVAR(useCursorMenu)) then {
|
||||
}];
|
||||
// handles LMB in cursor mode when action on keyrelease is disabled
|
||||
((finddisplay 91919) displayctrl 91921) ctrlAddEventHandler ["MouseButtonDown", {
|
||||
if !(GVAR(actionOnKeyRelease)) then {
|
||||
if (!GVAR(actionOnKeyRelease) && GVAR(actionSelected)) then {
|
||||
[GVAR(openedMenuType),true] call FUNC(keyUp);
|
||||
};
|
||||
}];
|
||||
@ -64,6 +64,13 @@ if (GVAR(useCursorMenu)) then {
|
||||
GVAR(selfMenuOffset) = ((positionCameraToWorld [0, 0, 2]) call EFUNC(common,positionToASL)) vectorDiff
|
||||
((positionCameraToWorld [0, 0, 0]) call EFUNC(common,positionToASL));
|
||||
|
||||
private ["_wavesAtOrigin", "_wavesAtVirtualPoint"];
|
||||
|
||||
_wavesAtOrigin = [(positionCameraToWorld [0, 0, 0])] call EFUNC(common,waveHeightAt);
|
||||
_wavesAtVirtualPoint = [(positionCameraToWorld [0, 0, 2])] call EFUNC(common,waveHeightAt);
|
||||
GVAR(selfMenuOffset) set [2, ((GVAR(selfMenuOffset) select 2) + _wavesAtOrigin - _wavesAtVirtualPoint)];
|
||||
|
||||
|
||||
["interactMenuOpened", [_menuType]] call EFUNC(common,localEvent);
|
||||
|
||||
true
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
GVAR(currentOptions) = [];
|
||||
|
||||
private ["_player","_numInteractObjects","_numInteractions","_actionsVarName","_classActions","_target","_player","_action","_cameraPos","_cameraDir", "_lambda", "_nearestObjects", "_pos"];
|
||||
private ["_player","_numInteractObjects","_numInteractions","_actionsVarName","_classActions","_target","_player","_action","_cameraPos","_cameraDir", "_lambda", "_nearestObjects", "_pos", "_virtualPoint", "_wavesAtOrigin", "_wavesAtVirtualPoint"];
|
||||
_player = ACE_player;
|
||||
|
||||
_fnc_renderNearbyActions = {
|
||||
@ -101,14 +101,19 @@ _fnc_renderSelfActions = {
|
||||
// Iterate through base level class actions and render them if appropiate
|
||||
_actionsVarName = format [QGVAR(SelfAct_%1), typeOf _target];
|
||||
_classActions = missionNamespace getVariable [_actionsVarName, []];
|
||||
|
||||
_pos = if !(GVAR(useCursorMenu)) then {
|
||||
_virtualPoint = (((positionCameraToWorld [0, 0, 0]) call EFUNC(common,positionToASL)) vectorAdd GVAR(selfMenuOffset)) call EFUNC(common,ASLToPosition);
|
||||
_wavesAtOrigin = [(positionCameraToWorld [0, 0, 0])] call EFUNC(common,waveHeightAt);
|
||||
_wavesAtVirtualPoint = [_virtualPoint] call EFUNC(common,waveHeightAt);
|
||||
_virtualPoint set [2, ((_virtualPoint select 2) - _wavesAtOrigin + _wavesAtVirtualPoint)];
|
||||
_virtualPoint
|
||||
} else {
|
||||
[0.5, 0.5]
|
||||
};
|
||||
|
||||
{
|
||||
_action = _x;
|
||||
|
||||
_pos = if !(GVAR(useCursorMenu)) then {
|
||||
(((positionCameraToWorld [0, 0, 0]) call EFUNC(common,positionToASL)) vectorAdd GVAR(selfMenuOffset)) call EFUNC(common,ASLToPosition)
|
||||
} else {
|
||||
[0.5, 0.5]
|
||||
};
|
||||
[_target, _action, _pos] call FUNC(renderBaseMenu);
|
||||
} forEach _classActions;
|
||||
};
|
||||
|
@ -10,7 +10,7 @@
|
||||
<Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish>
|
||||
<French>Toujours afficher le curseur pour les interactions sur soi-même</French>
|
||||
<Hungarian>Mindig legyen a saját cselekvés kurzorja látható</Hungarian>
|
||||
<Italian>Mostra sempre il cursore per le auto interazioni</Italian>
|
||||
<Italian>Mostra sempre il cursore per le interazioni su se stessi</Italian>
|
||||
<Portuguese>Sempre mostrar cursor para interação pessoal</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_Menu_AlwaysUseCursorInteraction">
|
||||
@ -58,7 +58,7 @@
|
||||
<Polish>Klawisz własnej interakcji</Polish>
|
||||
<French>Touche d'interaction personnelle</French>
|
||||
<Hungarian>Saját cselekvő gomb</Hungarian>
|
||||
<Italian>Tasto per auto interazioni</Italian>
|
||||
<Italian>Tasto interazione su se stessi</Italian>
|
||||
<Portuguese>Tecla de Interação Pessoal</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_Menu_SelfActionsRoot">
|
||||
@ -70,7 +70,7 @@
|
||||
<Polish>Własne akcje</Polish>
|
||||
<French>Interaction personnelle</French>
|
||||
<Hungarian>Saját cselekvések</Hungarian>
|
||||
<Italian>Auto interazioni</Italian>
|
||||
<Italian>Interazioni su se stessi</Italian>
|
||||
<Portuguese>Ações Pessoais</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot">
|
||||
@ -143,6 +143,7 @@
|
||||
<Spanish>Mantener el cursor centrado</Spanish>
|
||||
<Czech>Udržuj kurzor na středu</Czech>
|
||||
<Portuguese>Manter o cursor centralizado</Portuguese>
|
||||
<Italian>Mantieni il cursore centrato</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_cursorKeepCenteredDescription">
|
||||
<English>Keeps cursor centered and pans the option menu around. Useful if screen size is limited.</English>
|
||||
@ -154,6 +155,7 @@
|
||||
<Polish>Utrzymuje kursor na środku ekranu, zamiast tego ruch myszą powoduje przesuwanie menu interakcji. Użyteczne w przypadku kiedy rozmiar ekranu jest ograniczony.</Polish>
|
||||
<Spanish>Mantiene el cursor centrado y despliega los menús alrededor. Útil si el tamaño de la pantalla es limitado.</Spanish>
|
||||
<Portuguese>Manter o cursor centralizado e mover o menu de opções. Útil caso o tamanho da tela seja limitado.</Portuguese>
|
||||
<Italian>Mantieni il cursore centrato e sposta il menù intorno. Utile se lo schermo è piccolo.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_Menu_ActionOnKeyRelease">
|
||||
<English>Do action when releasing menu key</English>
|
||||
@ -165,6 +167,7 @@
|
||||
<Spanish>Realizar la acción al soltar la tecla menu</Spanish>
|
||||
<Portuguese>Execute a ação quando soltar a tecla de menu</Portuguese>
|
||||
<Hungarian>Cselekvés végrehajtása a menügomb elengedésekor</Hungarian>
|
||||
<Italian>Esegui l'azione quando rilasci il tasto menu</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_textSize">
|
||||
<English>Interaction Text Size</English>
|
||||
@ -176,6 +179,7 @@
|
||||
<Polish>Rozmiar tekstu interakcji</Polish>
|
||||
<Portuguese>Tamanho do texto de interação</Portuguese>
|
||||
<Hungarian>Cselekvő szöveg mérete</Hungarian>
|
||||
<Italian>Dimensione del testo d'interazione</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_shadowSetting">
|
||||
<English>Interaction Text Shadow</English>
|
||||
@ -187,6 +191,7 @@
|
||||
<Polish>Cień tekstu interakcji</Polish>
|
||||
<Portuguese>Sombra do texto de interação</Portuguese>
|
||||
<Hungarian>Cselekvő szöveg árnyéka</Hungarian>
|
||||
<Italian>Ombra del testo d'interazione</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_shadowSettingDescription">
|
||||
<English>Allows controlling the text's shadow. Outline ignores custom shadow colors.</English>
|
||||
@ -198,6 +203,7 @@
|
||||
<Polish>Pozwala kontrolować cień tekstu. Kontury ignorują niestandardowe kolory cienia.</Polish>
|
||||
<Portuguese>Permite controlar a sombra do texto. Contorno ignora sombras com cores customizadas.</Portuguese>
|
||||
<Hungarian>Hozzáférést biztosít a szöveg árnyékának kezeléséhez. A körvonal nem veszi figyelembe az egyedi árnyékszíneket.</Hungarian>
|
||||
<Italian>Permette di controllare l'ombra del testo. L'impostazione "Contorno" ignora il colore dell'ombra.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_shadowOutline">
|
||||
<English>Outline</English>
|
||||
@ -209,6 +215,7 @@
|
||||
<Polish>Kontur</Polish>
|
||||
<Portuguese>Contorno</Portuguese>
|
||||
<Hungarian>Körvonal</Hungarian>
|
||||
<Italian>Contorno</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Interaction">
|
||||
<Key ID="STR_ACE_Interaction_MainAction">
|
||||
@ -119,7 +119,7 @@
|
||||
<Russian>Меню взаимодействия (с собой)</Russian>
|
||||
<Hungarian>Cselekvő menü (saját) </Hungarian>
|
||||
<Portuguese>Menu de Interação (Individual)</Portuguese>
|
||||
<Italian>Menù interazione (Individuale)</Italian>
|
||||
<Italian>Menù interazione (individuale)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_OpenDoor">
|
||||
<English>Open / Close Door</English>
|
||||
@ -263,7 +263,7 @@
|
||||
<Russian>Жесты</Russian>
|
||||
<Hungarian>Kézjelek</Hungarian>
|
||||
<Portuguese>Gestos</Portuguese>
|
||||
<Italian>Segnali gestuali</Italian>
|
||||
<Italian>Gesti</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Gestures_Attack">
|
||||
<English>Attack</English>
|
||||
@ -443,7 +443,7 @@
|
||||
<Czech>Někdo tě poklepal na PRAVÉ rameno</Czech>
|
||||
<Russian>Вас похлопали по ПРАВОМУ плечу</Russian>
|
||||
<Portuguese>Você foi tocado no ombro</Portuguese>
|
||||
<Italian>Ti è stato dato un colpetto sulla spalla</Italian>
|
||||
<Italian>Ti è stato dato un colpetto sulla spalla destra</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_YouWereTappedLeft">
|
||||
<English>You were tapped on the LEFT shoulder.</English>
|
||||
@ -455,7 +455,7 @@
|
||||
<Czech>Někdo tě poklepal na LEVÉ rameno</Czech>
|
||||
<Russian>Вас похлопали по ЛЕВОМУ плечу</Russian>
|
||||
<Portuguese>Você foi tocado no ombro.</Portuguese>
|
||||
<Italian>Ti è stato dato un colpetto sulla spalla</Italian>
|
||||
<Italian>Ti è stato dato un colpetto sulla spalla sinistra</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_CancelSelection">
|
||||
<English>Cancel</English>
|
||||
@ -503,7 +503,7 @@
|
||||
<Hungarian>A földre!</Hungarian>
|
||||
<Russian>Ложись!</Russian>
|
||||
<Portuguese>Abaixe-se!</Portuguese>
|
||||
<Italian>A Terra!</Italian>
|
||||
<Italian>A terra!</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_TeamManagement">
|
||||
<English>Team Management</English>
|
||||
@ -575,6 +575,7 @@
|
||||
<Czech>Přiřadit k červeným</Czech>
|
||||
<Russian>Назначить в Красную группу</Russian>
|
||||
<French>Assigner à rouge</French>
|
||||
<Italian>Assegna al team rosso</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_AssignTeamGreen">
|
||||
<English>Assign Green</English>
|
||||
@ -586,6 +587,7 @@
|
||||
<Czech>Přiřadit k zeleným</Czech>
|
||||
<Russian>Назначить в Зеленую группу</Russian>
|
||||
<French>Assigner à vert</French>
|
||||
<Italian>Assegna al team verde</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_AssignTeamBlue">
|
||||
<English>Assign Blue</English>
|
||||
@ -597,6 +599,7 @@
|
||||
<Czech>Přiřadit k modrým</Czech>
|
||||
<Russian>Назначить в Синюю группу</Russian>
|
||||
<French>Assigner à bleu</French>
|
||||
<Italian>Assegna al team blu</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_AssignTeamYellow">
|
||||
<English>Assign Yellow</English>
|
||||
@ -608,6 +611,7 @@
|
||||
<Czech>Přiřadit ke žlutým</Czech>
|
||||
<Russian>Назначить в Желтую группу</Russian>
|
||||
<French>Assigner à jaune</French>
|
||||
<Italian>Assegna al team giallo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_JoinTeamRed">
|
||||
<English>Join Red</English>
|
||||
@ -619,6 +623,7 @@
|
||||
<Czech>Připojit k červeným</Czech>
|
||||
<Russian>Присоединиться к Красной группе</Russian>
|
||||
<French>Rejoindre rouge</French>
|
||||
<Italian>Unirsi al team rosso</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_JoinTeamGreen">
|
||||
<English>Join Green</English>
|
||||
@ -630,6 +635,7 @@
|
||||
<Czech> Připojit k zeleným</Czech>
|
||||
<Russian>Присоединиться к Зеленой группе</Russian>
|
||||
<French>Rejoindre vert</French>
|
||||
<Italian>Unirsi al team verde</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_JoinTeamBlue">
|
||||
<English>Join Blue</English>
|
||||
@ -641,6 +647,7 @@
|
||||
<Czech>Připojit k modrým</Czech>
|
||||
<Russian>Присоединиться к Синей группе</Russian>
|
||||
<French>Rejoindre bleu</French>
|
||||
<Italian>Unirsi al team blu</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_JoinTeamYellow">
|
||||
<English>Join Yellow</English>
|
||||
@ -652,6 +659,7 @@
|
||||
<Czech>Připojit ke žlutým</Czech>
|
||||
<Russian>Присоединиться к Жёлтой группе</Russian>
|
||||
<French>Rejoindre jaune</French>
|
||||
<Italian>Unirsi al team giallo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_JoinedTeam">
|
||||
<English>You joined Team %1</English>
|
||||
@ -721,7 +729,7 @@
|
||||
<Spanish>Tecla modificadora</Spanish>
|
||||
<Russian>Клавиша-модификатор</Russian>
|
||||
<Portuguese>Tecla Modificadora</Portuguese>
|
||||
<Italian>Modifica tasto</Italian>
|
||||
<Italian>Tasto modifica</Italian>
|
||||
<Hungarian>Módosító billentyű</Hungarian>
|
||||
<Czech>Modifikátor</Czech>
|
||||
</Key>
|
||||
@ -735,7 +743,7 @@
|
||||
<Hungarian>Hatótávolságon kívül</Hungarian>
|
||||
<Polish>Poza zasięgiem</Polish>
|
||||
<Czech>Mimo dosah</Czech>
|
||||
<Italian>Non in raggio</Italian>
|
||||
<Italian>Fuori limite</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Equipment">
|
||||
<English>Equipment</English>
|
||||
@ -758,8 +766,8 @@
|
||||
<Czech>Odstrčit</Czech>
|
||||
<Hungarian>Tolás</Hungarian>
|
||||
<Russian>Толкать</Russian>
|
||||
<Italian>Spingi</Italian>
|
||||
<Portuguese>Empurrar</Portuguese>
|
||||
<Italian>Spingere</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Interact">
|
||||
<English>Interact</English>
|
||||
@ -770,7 +778,7 @@
|
||||
<Polish>Interakcja</Polish>
|
||||
<Spanish>Interactuar</Spanish>
|
||||
<Hungarian>Cselekvés</Hungarian>
|
||||
<Italian>Interagisci</Italian>
|
||||
<Italian>Interagire</Italian>
|
||||
<Portuguese>Interagir</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Passengers">
|
||||
|
1
addons/kestrel4500/$PBOPREFIX$
Normal file
1
addons/kestrel4500/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\kestrel4500
|
@ -54,6 +54,7 @@ class Kestrel4500_Display
|
||||
name="Kestrel4500_Display";
|
||||
idd=-1;
|
||||
onLoad="uiNamespace setVariable ['Kestrel4500_Display', (_this select 0)]";
|
||||
onUnload=QUOTE(_this call FUNC(onCloseDialog));
|
||||
movingEnable=1;
|
||||
controlsBackground[]={};
|
||||
objects[]={};
|
||||
@ -217,6 +218,7 @@ class RscTitles
|
||||
{
|
||||
idd=-1;
|
||||
onLoad="with uiNameSpace do { RscKestrel4500 = _this select 0 };";
|
||||
onUnload=(_this call FUNC(onCloseDisplay));
|
||||
movingEnable=0;
|
||||
duration=60;
|
||||
fadeIn="false";
|
||||
|
@ -22,4 +22,4 @@ GVAR(MeasuredWindSpeed) = 0;
|
||||
GVAR(ImpellerState) = 0;
|
||||
|
||||
GVAR(Kestrel4500) = false;
|
||||
GVAR(Overlay) = false;
|
||||
GVAR(Overlay) = false;
|
@ -13,4 +13,7 @@ PREP(measureWindSpeed);
|
||||
PREP(updateDisplay);
|
||||
PREP(updateImpellerState);
|
||||
|
||||
PREP(onCloseDialog);
|
||||
PREP(onCloseDisplay);
|
||||
|
||||
ADDON = true;
|
||||
|
@ -14,7 +14,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
//if (dialog) exitWith { false };
|
||||
if (GVAR(Kestrel4500)) exitWith { false };
|
||||
if (underwater ACE_player) exitWith { false };
|
||||
if (!("ACE_Kestrel4500" in (uniformItems ACE_player)) && !("ACE_Kestrel4500" in (vestItems ACE_player))) exitWith { false };
|
||||
|
||||
|
4
addons/kestrel4500/functions/fnc_onCloseDialog.sqf
Normal file
4
addons/kestrel4500/functions/fnc_onCloseDialog.sqf
Normal file
@ -0,0 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
uiNamespace setVariable ['Kestrel4500_Display', nil];
|
||||
GVAR(Kestrel4500) = false;
|
4
addons/kestrel4500/functions/fnc_onCloseDisplay.sqf
Normal file
4
addons/kestrel4500/functions/fnc_onCloseDisplay.sqf
Normal file
@ -0,0 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
uiNamespace setVariable ['RscKestrel4500', nil];
|
||||
GVAR(Overlay) = false;
|
@ -2,7 +2,8 @@
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
|
||||
if(GVAR(Kestrel4500)) exitWith { false };
|
||||
|
||||
// Statement
|
||||
[] call FUNC(createKestrelDialog);
|
||||
false
|
||||
@ -14,7 +15,7 @@
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
|
||||
|
||||
// Statement
|
||||
[] call FUNC(displayKestrel);
|
||||
false
|
||||
|
@ -1,32 +1,32 @@
|
||||
/*
|
||||
* Author: Nou
|
||||
* Turn a laser designator on.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Position of seeker (ASL) <position>
|
||||
* 1: Direction vector (will be normalized) <vector>
|
||||
* 2: Seeker FOV in degrees <number>
|
||||
* 3: Seeker wavelength sensitivity range, [1550,1550] is common eye safe. <array>
|
||||
* 4: Seeker laser code. <number>
|
||||
*
|
||||
* Return value:
|
||||
* Array, [Strongest compatible laser spot ASL pos, owner object] Nil array values if nothing found.
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_pos", "_seekerWavelengths", "_seekerCode", "_spots", "_buckets", "_excludes", "_bucketIndex", "_finalPos", "_owner", "_obj", "_x", "_method"];
|
||||
private ["_emitterWavelength", "_laserCode", "_divergence", "_laser", "_laserPos", "_laserDir", "_res", "_bucketPos", "_bucketList", "_c", "_forEachIndex", "_index"];
|
||||
private ["_testPos", "_finalBuckets", "_largest", "_largestIndex", "_finalBucket", "_owners", "_avgX", "_avgY", "_avgZ", "_count", "_maxOwner", "_maxOwnerIndex", "_finalOwner"];
|
||||
private["_dir", "_seekerCos", "_seekerFov", "_testDotProduct", "_testPoint", "_testPointVector"];
|
||||
|
||||
_pos = _this select 0;
|
||||
_dir = vectorNormalized (_this select 1);
|
||||
/*
|
||||
* Author: Nou
|
||||
* Turn a laser designator on.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Position of seeker (ASL) <position>
|
||||
* 1: Direction vector (will be normalized) <vector>
|
||||
* 2: Seeker FOV in degrees <number>
|
||||
* 3: Seeker wavelength sensitivity range, [1550,1550] is common eye safe. <array>
|
||||
* 4: Seeker laser code. <number>
|
||||
*
|
||||
* Return value:
|
||||
* Array, [Strongest compatible laser spot ASL pos, owner object] Nil array values if nothing found.
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_pos", "_seekerWavelengths", "_seekerCode", "_spots", "_buckets", "_excludes", "_bucketIndex", "_finalPos", "_owner", "_obj", "_x", "_method"];
|
||||
private ["_emitterWavelength", "_laserCode", "_divergence", "_laser", "_laserPos", "_laserDir", "_res", "_bucketPos", "_bucketList", "_c", "_forEachIndex", "_index"];
|
||||
private ["_testPos", "_finalBuckets", "_largest", "_largestIndex", "_finalBucket", "_owners", "_avgX", "_avgY", "_avgZ", "_count", "_maxOwner", "_maxOwnerIndex", "_finalOwner"];
|
||||
private["_dir", "_seekerCos", "_seekerFov", "_testDotProduct", "_testPoint", "_testPointVector"];
|
||||
|
||||
_pos = _this select 0;
|
||||
_dir = vectorNormalized (_this select 1);
|
||||
_seekerFov = _this select 2;
|
||||
_seekerWavelengths = _this select 3;
|
||||
_seekerCode = _this select 4;
|
||||
|
||||
|
||||
_seekerCode = _this select 4;
|
||||
|
||||
|
||||
_seekerCos = cos _seekerFov;
|
||||
|
||||
_spots = [];
|
||||
@ -47,9 +47,9 @@ _finalOwner = nil;
|
||||
_laser = [];
|
||||
if(IS_CODE(_method)) then {
|
||||
_laser = _x call _method;
|
||||
} else {
|
||||
if(IS_STRING(_method)) then {
|
||||
_laser = _x call (missionNamespace getVariable [_method, {}]);
|
||||
} else {
|
||||
if(IS_STRING(_method)) then {
|
||||
_laser = _x call (missionNamespace getVariable [_method, {}]);
|
||||
} else {
|
||||
if(IS_ARRAY(_method)) then {
|
||||
if(count _method == 2) then {
|
||||
@ -59,18 +59,18 @@ _finalOwner = nil;
|
||||
_laser = [ATLtoASL (_obj modelToWorldVisual (_method select 0)), (ATLtoASL (_obj modelToWorldVisual (_method select 1))) vectorFromTo (ATLtoASL (_obj modelToWorldVisual (_method select 2)))];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
_laserPos = _laser select 0;
|
||||
_laserDir = _laser select 1;
|
||||
_res = [_laserPos, _laserDir, _divergence] call FUNC(shootCone);
|
||||
{
|
||||
_testPoint = _x select 0;
|
||||
_testPointVector = vectorNormalized (_testPoint vectorDiff _pos);
|
||||
_testDotProduct = _dir vectorDotProduct _testPointVector;
|
||||
{
|
||||
_testPoint = _x select 0;
|
||||
_testPointVector = vectorNormalized (_testPoint vectorDiff _pos);
|
||||
_testDotProduct = _dir vectorDotProduct _testPointVector;
|
||||
if(_testDotProduct > _seekerCos) then {
|
||||
_spots pushBack [_testPoint, _owner];
|
||||
_spots pushBack [_testPoint, _owner];
|
||||
};
|
||||
} forEach (_res select 2);
|
||||
};
|
||||
@ -128,7 +128,7 @@ if((count _spots) > 0) then {
|
||||
_avgY = 0;
|
||||
_avgZ = 0;
|
||||
{
|
||||
player sideChat format["x: %1", _x];
|
||||
//player sideChat format["x: %1", _x];
|
||||
_avgX = _avgX + ((_x select 0) select 0);
|
||||
_avgY = _avgY + ((_x select 0) select 1);
|
||||
_avgZ = _avgZ + ((_x select 0) select 2);
|
||||
|
@ -1,38 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="laser">
|
||||
<Key ID="STR_ACE_laser_laserCode">
|
||||
<English>Laser Code</English>
|
||||
<German>Lasercode</German>
|
||||
<Polish>Kod lasera</Polish>
|
||||
<French>Code laser</French>
|
||||
<Russian>Лазерный код</Russian>
|
||||
<Portuguese>Código do Laser</Portuguese>
|
||||
<Hungarian>Lézerkód</Hungarian>
|
||||
<Spanish>Código del láser</Spanish>
|
||||
<Czech>Laser kód</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_laser_laserCodeUp">
|
||||
<English>Laser - Cycle Code Up</English>
|
||||
<German>Lasercode +</German>
|
||||
<Polish>Laser - Następny kod</Polish>
|
||||
<French>Laser - Code +</French>
|
||||
<Russian>Лазер - увеличить частоту</Russian>
|
||||
<Portuguese>Laser - Alternar Código para Cima</Portuguese>
|
||||
<Hungarian>Lézer - kódciklus növelése</Hungarian>
|
||||
<Spanish>Láser - Aumentar código</Spanish>
|
||||
<Czech>Laser - Kód +</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_laser_laserCodeDown">
|
||||
<English>Laser - Cycle Code Down</English>
|
||||
<German>Lasercode -</German>
|
||||
<Polish>Laser - Poprzedni kod</Polish>
|
||||
<French>Laser - Code -</French>
|
||||
<Russian>Лазер - уменьшить частоту</Russian>
|
||||
<Portuguese>Laser - Alternar Código para Baixo</Portuguese>
|
||||
<Hungarian>Lézer - kódciklus csökkentése</Hungarian>
|
||||
<Spanish>Láser - Reducir código</Spanish>
|
||||
<Czech>Laser - Kód -</Czech>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="laser">
|
||||
<Key ID="STR_ACE_laser_laserCode">
|
||||
<English>Laser Code</English>
|
||||
<German>Lasercode</German>
|
||||
<Polish>Kod lasera</Polish>
|
||||
<French>Code laser</French>
|
||||
<Russian>Лазерный код</Russian>
|
||||
<Portuguese>Código do Laser</Portuguese>
|
||||
<Hungarian>Lézerkód</Hungarian>
|
||||
<Spanish>Código del láser</Spanish>
|
||||
<Czech>Laser kód</Czech>
|
||||
<Italian>Codice laser</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_laser_laserCodeUp">
|
||||
<English>Laser - Cycle Code Up</English>
|
||||
<German>Lasercode +</German>
|
||||
<Polish>Laser - Następny kod</Polish>
|
||||
<French>Laser - Code +</French>
|
||||
<Russian>Лазер - увеличить частоту</Russian>
|
||||
<Portuguese>Laser - Alternar Código para Cima</Portuguese>
|
||||
<Hungarian>Lézer - kódciklus növelése</Hungarian>
|
||||
<Spanish>Láser - Aumentar código</Spanish>
|
||||
<Czech>Laser - Kód +</Czech>
|
||||
<Italian>Codice laser +</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_laser_laserCodeDown">
|
||||
<English>Laser - Cycle Code Down</English>
|
||||
<German>Lasercode -</German>
|
||||
<Polish>Laser - Poprzedni kod</Polish>
|
||||
<French>Laser - Code -</French>
|
||||
<Russian>Лазер - уменьшить частоту</Russian>
|
||||
<Portuguese>Laser - Alternar Código para Baixo</Portuguese>
|
||||
<Hungarian>Lézer - kódciklus csökkentése</Hungarian>
|
||||
<Spanish>Láser - Reducir código</Spanish>
|
||||
<Czech>Laser - Kód -</Czech>
|
||||
<Italian>Codice laser -</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -6,7 +6,7 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_laser"};
|
||||
version = VERSION;
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -26,4 +26,4 @@
|
||||
<Portuguese>Designador Laser Desligado</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -29,11 +29,17 @@ _pointer = switch (_weapon) do {
|
||||
|
||||
if (_pointer == "") exitWith {};
|
||||
|
||||
private "_config";
|
||||
_config = configFile >> "CfgWeapons" >> _pointer;
|
||||
|
||||
private "_nextPointer";
|
||||
_nextPointer = getText (configFile >> "CfgWeapons" >> _pointer >> "ACE_nextModeClass");
|
||||
_nextPointer = getText (_config >> "ACE_nextModeClass");
|
||||
|
||||
if (_nextPointer == "") exitWith {};
|
||||
|
||||
// disable inheritance for this entry, because addons claim this as a base class for convenience
|
||||
if !((_config >> "ACE_nextModeClass") in configProperties [_config, "true", false]) exitWith {};
|
||||
|
||||
private ["_description", "_picture"];
|
||||
|
||||
_description = getText (configFile >> "CfgWeapons" >> _nextPointer >> "ACE_modeDescription");
|
||||
|
@ -34,7 +34,7 @@
|
||||
<Polish>Wydziela widzialne światło.</Polish>
|
||||
<Hungarian>Látható fényt bocsát ki.</Hungarian>
|
||||
<Spanish>Emite luz visible.</Spanish>
|
||||
<Italian>Emette luce visibile</Italian>
|
||||
<Italian>Emette luce visibile.</Italian>
|
||||
<Portuguese>Emite luz visível. </Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Laserpointer_useLaser">
|
||||
@ -86,4 +86,4 @@
|
||||
<Portuguese>Alternar entre Laser / Laser IV</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<Czech>Štípací kleště</Czech>
|
||||
<Polish>Nożyce do cięcia drutu</Polish>
|
||||
<Hungarian>Drótvágó</Hungarian>
|
||||
<Italian>Pinze da Taglio</Italian>
|
||||
<Italian>Trancia</Italian>
|
||||
<Portuguese>Cortador de Arame</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_logistics_wirecutter_wirecutterDescription">
|
||||
@ -22,7 +22,7 @@
|
||||
<Polish>Służą do cięcia drutu i płotów</Polish>
|
||||
<French>Pince coupante</French>
|
||||
<Hungarian>Drótok, huzalok, és kábelek vágására alkalmas olló.</Hungarian>
|
||||
<Italian>Pinze da Taglio</Italian>
|
||||
<Italian>Trancia da ferro</Italian>
|
||||
<Portuguese>Cortador de Arame</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_logistics_wirecutter_CutFence">
|
||||
@ -62,4 +62,4 @@
|
||||
<Russian>Забор разрезан</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -24,7 +24,8 @@ private ["_newMagFnc", "_time", "_events", "_swapAmmoFnc", "_ammoSwaped", "_lowI
|
||||
PARAMS_3(_fullMagazineCount,_arrayOfAmmoCounts,_isBelt);
|
||||
|
||||
// Sort Ascending - Don't modify original
|
||||
_arrayOfAmmoCounts = (+_arrayOfAmmoCounts) call BIS_fnc_sortNum;
|
||||
_arrayOfAmmoCounts = +_arrayOfAmmoCounts;
|
||||
_arrayOfAmmoCounts sort true;
|
||||
|
||||
_newMagFnc = {
|
||||
_time = _time + GVAR(TimePerMagazine);
|
||||
|
@ -8,7 +8,7 @@
|
||||
<French>Réorganiser les chargeurs</French>
|
||||
<Polish>Przepakuj magazynki</Polish>
|
||||
<Czech>Přepáskovat Zásobníky</Czech>
|
||||
<Italian>Ricarica Caricatori</Italian>
|
||||
<Italian>Ricarica caricatori</Italian>
|
||||
<Portuguese>Reorganizar Carregadores</Portuguese>
|
||||
<Hungarian>Újratárazás </Hungarian>
|
||||
<Russian>Перепаковать магазины</Russian>
|
||||
@ -20,7 +20,7 @@
|
||||
<French>Sélectionner menu des chargeurs</French>
|
||||
<Polish>Menu wyboru magazynków</Polish>
|
||||
<Czech>Zvolit Menu zásobníků</Czech>
|
||||
<Italian>Seleziona Menù di Ricarica</Italian>
|
||||
<Italian>Seleziona menù di ricarica</Italian>
|
||||
<Portuguese>Menu de Seleção de Carregador</Portuguese>
|
||||
<Hungarian>Fegyvertár menü kiválasztás</Hungarian>
|
||||
<Russian>Меню выбора магазинов</Russian>
|
||||
@ -32,7 +32,7 @@
|
||||
<French>Sélectionner chargeur</French>
|
||||
<Polish>Wybierz magazynek</Polish>
|
||||
<Czech>Zvolit zásobník</Czech>
|
||||
<Italian>Seleziona Caricatore</Italian>
|
||||
<Italian>Seleziona caricatore</Italian>
|
||||
<Portuguese>Selecionar Carregador</Portuguese>
|
||||
<Hungarian>Tár kiválasztása</Hungarian>
|
||||
<Russian>Выбрать магазин</Russian>
|
||||
@ -68,7 +68,7 @@
|
||||
<French>%1 chargeur(s) plein(s) et %2 cartouche(s) en rab</French>
|
||||
<Polish>Pełnych magazynków: %1.<br/>Dodatkowych naboi: %2.</Polish>
|
||||
<Czech>%1 plný zásobník(y) a %2 munice navíc</Czech>
|
||||
<Italian>%1 caricatore/i pieno e %2 munizioni extra</Italian>
|
||||
<Italian>%1 caricatore(i) pieno e %2 munizioni extra</Italian>
|
||||
<Portuguese>%1 carregador(es) cheio(s) e %2 disparo(s) a mais</Portuguese>
|
||||
<Hungarian>%1 teljes tár és %2 extra lőszer</Hungarian>
|
||||
<Russian>%1 полных магазина(ов) и %2 патрона(ов)</Russian>
|
||||
@ -106,7 +106,7 @@
|
||||
<Czech>%1 plný a %2 částečně</Czech>
|
||||
<Polish>Pełnych: %1.<br/>Częściowo pełnych: %2.</Polish>
|
||||
<Hungarian>%1 teljes és %2 részleges</Hungarian>
|
||||
<Italian>%1 pieno e %2 parziale</Italian>
|
||||
<Italian>%1 pieno(i) e %2 parziale(i)</Italian>
|
||||
<Portuguese>%1 Total e %2 Parcial </Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
|
@ -82,4 +82,8 @@
|
||||
#define HASHLIST_SET(hashList, index, value) ([hashList, index, value, __FILE__, __LINE__] call EFUNC(common,hashListSet))
|
||||
#define HASHLIST_PUSH(hashList, value) ([hashList, value, __FILE__, __LINE__] call EFUNC(common,hashListPush))
|
||||
|
||||
// Time functions for accuracy per frame
|
||||
#define ACE_tickTime (ACE_time + (diag_tickTime - ACE_diagTime))
|
||||
|
||||
|
||||
#include "script_debug.hpp"
|
@ -6,7 +6,7 @@
|
||||
#define MAJOR 3
|
||||
#define MINOR 0
|
||||
#define PATCHLVL 0
|
||||
#define BUILD 2
|
||||
#define BUILD 3
|
||||
|
||||
#define VERSION MAJOR.MINOR.PATCHLVL.BUILD
|
||||
#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD
|
||||
|
@ -87,6 +87,22 @@ class RscMapControl {
|
||||
sizeExGrid = 0.032;
|
||||
};
|
||||
|
||||
class RscMap;
|
||||
class RscDisplayArcadeMap_Layout_2: RscMap { //"Traditional" Editor:
|
||||
class controlsBackground {
|
||||
class CA_Map: RscMapControl {
|
||||
#include "MapTweaks.hpp"
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscDisplayArcadeMap_Layout_6: RscMap { //"Streamlined" Editor:
|
||||
class controlsBackground {
|
||||
class CA_Map: RscMapControl {
|
||||
#include "MapTweaks.hpp"
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// REGULAR MAP
|
||||
class RscDisplayMainMap {
|
||||
// Tweak map styling
|
||||
@ -154,7 +170,7 @@ class RscDisplayGetReady: RscDisplayMainMap {
|
||||
class controlsBackground {
|
||||
class CA_Map: RscMapControl {
|
||||
onDraw = QUOTE([ctrlParent (_this select 0)] call DFUNC(onDrawMap));
|
||||
//#include "MapTweaks.hpp" @todo Shouldn't this apply to briefing too?
|
||||
#include "MapTweaks.hpp"
|
||||
};
|
||||
};
|
||||
// get rid of the "center to player position" - button (as it works even on elite)
|
||||
|
@ -8,7 +8,7 @@
|
||||
<Polish>Narzędzia nawigacyjne</Polish>
|
||||
<German>Kartenwerkzeug</German>
|
||||
<Czech>Pomůcky k mapě</Czech>
|
||||
<Italian>Strumenti Cartografici</Italian>
|
||||
<Italian>Strumenti cartografici</Italian>
|
||||
<Portuguese>Ferramentas de Mapa</Portuguese>
|
||||
<Hungarian>Térképészeti eszközök</Hungarian>
|
||||
<Russian>Инструменты карты</Russian>
|
||||
@ -20,7 +20,7 @@
|
||||
<Polish>Narzędzia nawigacyjne pozwalają na mierzenie odległości i kątów na mapie.</Polish>
|
||||
<German>Das Kartenwerkzeug ermöglicht es dir, Distanzen und Winkel zu messen.</German>
|
||||
<Czech>Pomůcky k mapě slouží k měření vzdáleností a úhlů na mapě.</Czech>
|
||||
<Italian>Gli Strumenti Cartografici ti consentono di misurare distanze ed angoli sulla mappa.</Italian>
|
||||
<Italian>Gli strumenti cartografici ti consentono di misurare distanze ed angoli sulla mappa.</Italian>
|
||||
<Portuguese>As Ferramentas de Mapa permitem que você meça distâncias e ângulos no mapa.</Portuguese>
|
||||
<Hungarian>A térképészeti eszközökkel távolságokat és szögeket tudsz mérni a térképen.</Hungarian>
|
||||
<Russian>Картографические инструменты позволяют измерять расстояния и углы на карте.</Russian>
|
||||
@ -32,7 +32,7 @@
|
||||
<Polish>Narzędzia nawigacyjne</Polish>
|
||||
<German>Kartenwerkzeug</German>
|
||||
<Czech>Pomůcky k mapě</Czech>
|
||||
<Italian>Strumenti Cartografici</Italian>
|
||||
<Italian>Strumenti cartografici</Italian>
|
||||
<Portuguese>Ferramentas de Mapa</Portuguese>
|
||||
<Hungarian>Térképészeti eszközök</Hungarian>
|
||||
<Russian>Инструменты карты</Russian>
|
||||
@ -142,7 +142,7 @@
|
||||
<Spanish>Dirección: %1°</Spanish>
|
||||
<Hungarian>Irány: %1</Hungarian>
|
||||
<Russian>Направление: %1°</Russian>
|
||||
<Italian>Direzione : %1°</Italian>
|
||||
<Italian>Direzione: %1°</Italian>
|
||||
<Portuguese>Direção: %1</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
|
@ -20,8 +20,8 @@ class ACE_Medical_Actions {
|
||||
animationPatient = "";
|
||||
animationPatientUnconscious = "AinjPpneMstpSnonWrflDnon_rolltoback";
|
||||
animationPatientUnconsciousExcludeOn[] = {"ainjppnemstpsnonwrfldnon"};
|
||||
animationCaller = "AinvPknlMstpSlayWnonDnon_medic";
|
||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||
animationCaller = "AinvPknlMstpSlayWrflDnon_medicOther";
|
||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medicOther";
|
||||
animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic";
|
||||
animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||
litter[] = { {"All", "", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}} };
|
||||
@ -109,8 +109,8 @@ class ACE_Medical_Actions {
|
||||
animationPatient = "";
|
||||
animationPatientUnconscious = "AinjPpneMstpSnonWrflDnon_rolltoback";
|
||||
animationPatientUnconsciousExcludeOn[] = {"ainjppnemstpsnonwrfldnon"};
|
||||
animationCaller = "AinvPknlMstpSlayWnonDnon_medic";
|
||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||
animationCaller = "AinvPknlMstpSlayWrflDnon_medicOther";
|
||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medicOther";
|
||||
animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic";
|
||||
animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||
litter[] = { {"All", "", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}} };
|
||||
@ -217,8 +217,8 @@ class ACE_Medical_Actions {
|
||||
itemConsumed = QGVAR(consumeItem_PAK);
|
||||
animationPatient = "";
|
||||
animationPatientUnconscious = "AinjPpneMstpSnonWrflDnon_rolltoback";
|
||||
animationCaller = "AinvPknlMstpSlayWnonDnon_medic";
|
||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||
animationCaller = "AinvPknlMstpSlayWnonDnon_medicOther";
|
||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medicOther";
|
||||
animationCallerSelf = "";
|
||||
animationCallerSelfProne = "";
|
||||
litter[] = { {"All", "", {"ACE_MedicalLitter_gloves"}}, {"All", "", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}} }, {"All", "", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}} };
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
GVAR(enabledFor) = 1; // TODO remove this once we implement settings. Just here to get the vitals working.
|
||||
|
||||
GVAR(heartBeatSounds_Fast) = ["ACE_heartbeat_fast_1", "ACE_heartbeat_fast_2", "ACE_heartbeat_fast_3"];
|
||||
GVAR(heartBeatSounds_Normal) = ["ACE_heartbeat_norm_1", "ACE_heartbeat_norm_2"];
|
||||
GVAR(heartBeatSounds_Slow) = ["ACE_heartbeat_slow_1", "ACE_heartbeat_slow_2"];
|
||||
|
@ -15,7 +15,7 @@ _unit = _this select 0;
|
||||
|
||||
_medicalEnabled = _unit getvariable QGVAR(enableMedical);
|
||||
if (isnil "_medicalEnabled") exitwith {
|
||||
(((GVAR(enabledFor) == 0 && (isPlayer _unit || (_unit getvariable [QEGVAR(common,isDeadPlayer), false])))) || (GVAR(enabledFor) == 1));
|
||||
(((GVAR(enableFor) == 0 && (isPlayer _unit || (_unit getvariable [QEGVAR(common,isDeadPlayer), false])))) || (GVAR(enableFor) == 1));
|
||||
};
|
||||
|
||||
_medicalEnabled;
|
||||
|
@ -21,4 +21,4 @@ _vehicle = vehicle _unit;
|
||||
if (_unit == _vehicle) exitWith {false};
|
||||
if (_unit in [driver _vehicle, gunner _vehicle, commander _vehicle]) exitWith {false};
|
||||
|
||||
_vehicle getVariable [QGVAR(isMedic), getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "attendant") == 1]
|
||||
_vehicle getVariable [QGVAR(medicClass), getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "attendant") == 1]
|
||||
|
@ -15,4 +15,4 @@
|
||||
private ["_vehicle"];
|
||||
_vehicle = _this select 0;
|
||||
|
||||
_vehicle getVariable [QGVAR(isMedic), getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "attendant") == 1]
|
||||
_vehicle getVariable [QGVAR(medicClass), getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "attendant") == 1]
|
||||
|
@ -37,7 +37,7 @@ if (!isNull _logic) then {
|
||||
|
||||
_list = "[" + _nilCheckPassedList + "]";
|
||||
_parsedList = [] call compile _list;
|
||||
_setting = _logic getvariable ["enabled", false];
|
||||
_setting = _logic getvariable ["enabled", 0];
|
||||
_objects = synchronizedObjects _logic;
|
||||
if (!(_objects isEqualTo []) && _parsedList isEqualTo []) then {
|
||||
{
|
||||
|
@ -83,7 +83,7 @@
|
||||
<French>Injecter de la morphine</French>
|
||||
<Hungarian>Morfium beadása</Hungarian>
|
||||
<Portuguese>Injetar Morfina</Portuguese>
|
||||
<Italian>Inietta Morfina</Italian>
|
||||
<Italian>Inietta morfina</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Transfuse_Blood">
|
||||
<English>Transfuse Blood</English>
|
||||
@ -95,7 +95,7 @@
|
||||
<French>Transfusion</French>
|
||||
<Hungarian>Infúzió (vér)</Hungarian>
|
||||
<Portuguese>Transfundir Sangue</Portuguese>
|
||||
<Italian>Effettua trasfusione di sangue</Italian>
|
||||
<Italian>Trasfusione di sangue</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Transfuse_Plasma">
|
||||
<English>Transfuse Plasma</English>
|
||||
@ -106,7 +106,7 @@
|
||||
<French>Transfuser du Plasma</French>
|
||||
<Russian>Перелить плазму</Russian>
|
||||
<Hungarian>Infúzió (vérplazma)</Hungarian>
|
||||
<Italian>Effettua trasfusione di plasma</Italian>
|
||||
<Italian>Trasfusione di Plasma</Italian>
|
||||
<Portuguese>Transfundir Plasma</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Transfuse_Saline">
|
||||
@ -118,7 +118,7 @@
|
||||
<French>Transfuser de la solution saline</French>
|
||||
<Russian>Перелить физраствор</Russian>
|
||||
<Hungarian>Infúzió (sós víz)</Hungarian>
|
||||
<Italian>Effettua trasfusione di soluzione salina</Italian>
|
||||
<Italian>Trasfusione di soluzione salina</Italian>
|
||||
<Portuguese>Transfundir Soro</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Apply_Tourniquet">
|
||||
@ -274,7 +274,7 @@
|
||||
<French>Transfusion de saline ...</French>
|
||||
<Russian>Переливание физраствора ...</Russian>
|
||||
<Hungarian>Infúzió sós vizzel ...</Hungarian>
|
||||
<Italian>Effettuo la rasfusione di salina</Italian>
|
||||
<Italian>Effettuo la rasfusione di soluzione salina</Italian>
|
||||
<Portuguese>Transfundindo Soro...</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Transfusing_Plasma">
|
||||
@ -370,7 +370,7 @@
|
||||
<Czech>QuikClot</Czech>
|
||||
<French>Hémostatique</French>
|
||||
<Hungarian>QuikClot</Hungarian>
|
||||
<Italian>QuikClot(polvere emostatica)</Italian>
|
||||
<Italian>QuikClot (polvere emostatica)</Italian>
|
||||
<Portuguese>QuikClot</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Actions_CheckPulse">
|
||||
@ -632,7 +632,7 @@
|
||||
<Polish>Natychmiastowy</Polish>
|
||||
<French>Urgence Immédiate</French>
|
||||
<German>Sofort</German>
|
||||
<Czech>Okamžiý</Czech>
|
||||
<Czech>Okamžitý</Czech>
|
||||
<Hungarian>Azonnali</Hungarian>
|
||||
<Italian>Immediata</Italian>
|
||||
<Portuguese>Imediato</Portuguese>
|
||||
@ -801,7 +801,7 @@
|
||||
<French>Bandage fait d'un matériel spécial utilisé pour couvrir une blessure, qui peut etre appliqué dès que le saignement a été stoppé.</French>
|
||||
<Polish>Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia.</Polish>
|
||||
<Hungarian>Egy különleges anyagú kötszer sebek betakarására, amelyet a vérzés elállítása után helyeznek fel.</Hungarian>
|
||||
<Italian>Una benda apposita, utilizzata per coprire una ferita, la quale è applicata sopra di essa una volta fermata l'emorragia.</Italian>
|
||||
<Italian>Una benda apposita, utilizzata per coprire una ferita, la quale viene applicata su di essa una volta fermata l'emorragia.</Italian>
|
||||
<Portuguese>Uma curativo, material específico para cobrir um ferimento que é aplicado assim que o sangramento é estancando.</Portuguese>
|
||||
<Czech>Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění.</Czech>
|
||||
</Key>
|
||||
@ -825,7 +825,7 @@
|
||||
<French>Utilisé pour couvrir des blessures de taille moyenne à grande. Arrête l'hémorragies</French>
|
||||
<Polish>Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia.</Polish>
|
||||
<Hungarian>Közepestől nagyig terjedő sebek betakarására és vérzés elállítására használt kötszer</Hungarian>
|
||||
<Italian>Usato su medie o larghe ferite per fermare emorragie.</Italian>
|
||||
<Italian>Usato su ferite medie o larghe per fermare emorragie.</Italian>
|
||||
<Portuguese>Usado para o preenchimento de cavidades geradas por ferimentos médios e grandes e estancar o sangramento.</Portuguese>
|
||||
<Czech>Používá se k zastavení středních až silnějších krvácení</Czech>
|
||||
</Key>
|
||||
@ -850,7 +850,7 @@
|
||||
<Polish>Bandaż (elastyczny)</Polish>
|
||||
<Czech>Obvaz (elastický)</Czech>
|
||||
<Hungarian>Rögzító kötszer</Hungarian>
|
||||
<Italian>Benda (Elastica)</Italian>
|
||||
<Italian>Benda (elastica)</Italian>
|
||||
<Portuguese>Bandagem (Elástica)</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Bandage_Elastic_Desc_Short">
|
||||
@ -861,7 +861,7 @@
|
||||
<French>Bandage compressif élastique</French>
|
||||
<Polish>Zestaw bandaży elastycznych.</Polish>
|
||||
<Hungarian>Rugalmas kötszercsomag, "rögzítő"</Hungarian>
|
||||
<Italian>Kit bendaggio, elastico</Italian>
|
||||
<Italian>Kit di bendaggio, elastico</Italian>
|
||||
<Portuguese>Kit de Bandagem, Elástica</Portuguese>
|
||||
<Czech>Sada obvazů, Elastická</Czech>
|
||||
</Key>
|
||||
@ -873,7 +873,7 @@
|
||||
<Polish>Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów.</Polish>
|
||||
<Spanish>Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada</Spanish>
|
||||
<Hungarian>Egyenletes nyomást és támogatást biztosít a sebesült felületnek.</Hungarian>
|
||||
<Italian>Permette di comprimevere e aiutare la zone ferita.</Italian>
|
||||
<Italian>Permette di comprimere e aiutare la zone ferita.</Italian>
|
||||
<Portuguese>Esta bandagem pode ser utilizada para comprimir o ferimento e diminuir o sangramento e garantir que o ferimento não abra em movimento.</Portuguese>
|
||||
<Czech>Hodí se k fixačním účelům a to i v oblastech kloubů.</Czech>
|
||||
</Key>
|
||||
@ -958,7 +958,7 @@
|
||||
<German>Atropin Autoinjektor</German>
|
||||
<Czech>Autoinjektor atropin</Czech>
|
||||
<Hungarian>Atropin autoinjektor</Hungarian>
|
||||
<Italian>Autoiniettore di Atropina</Italian>
|
||||
<Italian>Autoiniettore di atropina</Italian>
|
||||
<Portuguese>Auto-injetor de Atropina</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Atropine_Desc_Short">
|
||||
@ -994,7 +994,7 @@
|
||||
<German>Epiniphrin Autoinjektor</German>
|
||||
<Czech>Autoinjektor adrenalin</Czech>
|
||||
<Hungarian>Epinefrin autoinjektor</Hungarian>
|
||||
<Italian>Autoiniettore di Epinefrina</Italian>
|
||||
<Italian>Autoiniettore di epinefrina</Italian>
|
||||
<Portuguese>Auto-injetor de epinefrina</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Epinephrine_Desc_Short">
|
||||
@ -1271,6 +1271,7 @@
|
||||
<Hungarian>Elsősegélycsomag, terepen való sebvarráshoz és haladó ellátáshoz</Hungarian>
|
||||
<Portuguese>Kit de primeiros socorros para sutura ou tratamentos avançados</Portuguese>
|
||||
<Czech>Osobní lékárnička obsahuje zdravotnický materiál umožňující šití a pokročilejší ošetřování raněných v poli </Czech>
|
||||
<Italian>Pronto soccorso personale da campo per mettersi i punti o per trattamenti avanzati.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Use_Aid_Kit">
|
||||
<English>Use Personal Aid Kit</English>
|
||||
@ -1282,6 +1283,7 @@
|
||||
<Hungarian>Elsősegélycsomag használata</Hungarian>
|
||||
<Portuguese>Usar o kit de primeiros socorros</Portuguese>
|
||||
<Czech>Použít osobní lékárničku</Czech>
|
||||
<Italian>Usa il pronto soccorso personale</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_SurgicalKit_Display">
|
||||
<English>Surgical Kit</English>
|
||||
@ -1777,7 +1779,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_lostBlood">
|
||||
<English>He's lost some blood</English>
|
||||
<Italian>Ha perso molto sangue</Italian>
|
||||
<Italian>Ha perso sangue</Italian>
|
||||
<Spanish>Ha perdido un poco de sangre</Spanish>
|
||||
<Russian>Есть кровопотеря</Russian>
|
||||
<German>Er hat etwas Blut verloren</German>
|
||||
@ -1797,6 +1799,7 @@
|
||||
<French>Il a perdu beaucoup de sang</French>
|
||||
<Czech>Ztratil hodně krve</Czech>
|
||||
<Portuguese>Ele perdeu muito sangue</Portuguese>
|
||||
<Italian>Ha perso molto sangue</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_noBloodloss">
|
||||
<English>He hasn't lost blood</English>
|
||||
@ -2240,6 +2243,7 @@
|
||||
<Czech>Styl menu (Zdravotní)</Czech>
|
||||
<Portuguese>Estilo do menu (Médico)</Portuguese>
|
||||
<Hungarian>Menü stílusa (Orvosi)</Hungarian>
|
||||
<Italian>Stile del menù (medico)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_menuTypeDescription">
|
||||
<English>Select the type of menu you prefer; default 3d selections or radial.</English>
|
||||
@ -2251,6 +2255,7 @@
|
||||
<Portuguese>Selecione o tipo de menu que você prefere; padrão seleções 3d ou radial.</Portuguese>
|
||||
<Hungarian>Válaszd ki a neked megfelelő menüt: Alapértelmezett 3D válogatás, vagy kerek.</Hungarian>
|
||||
<Czech>Zvolte typ menu: základní 3D výběr nebo kruhový</Czech>
|
||||
<Italian>Seleziona il tipo di menù che preferisci: selezione 3d predefinita o radiale.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_useSelection">
|
||||
<English>Selections (3d)</English>
|
||||
@ -2262,6 +2267,7 @@
|
||||
<Portuguese>Seleção (3d)</Portuguese>
|
||||
<Hungarian>Választékok (3D)</Hungarian>
|
||||
<Czech>3D výběr</Czech>
|
||||
<Italian>Selezione (3D)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_useRadial">
|
||||
<English>Radial</English>
|
||||
@ -2273,6 +2279,7 @@
|
||||
<Portuguese>Radial</Portuguese>
|
||||
<Hungarian>Kerek</Hungarian>
|
||||
<Czech>Kruhový</Czech>
|
||||
<Italian>Radiale</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Wounds_Abrasion">
|
||||
<English>Scrape</English>
|
||||
@ -2680,6 +2687,7 @@
|
||||
<Spanish>Tratando ...</Spanish>
|
||||
<Portuguese>Tratando...</Portuguese>
|
||||
<Czech>Ošetřuji ...</Czech>
|
||||
<Italian>Curando ...</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_RemovingTourniquet">
|
||||
<English>Removing Tourniquet ...</English>
|
||||
@ -2691,6 +2699,7 @@
|
||||
<Hungarian>Érszorító eltávolítása ...</Hungarian>
|
||||
<Czech>Sundavám škrtidlo ...</Czech>
|
||||
<Russian>Снятие жгута ...</Russian>
|
||||
<Italian>Togliendo il laccio emostatico ...</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<Polish>MicroDAGR GPS</Polish>
|
||||
<French>MicroDAGR GPS</French>
|
||||
<Hungarian>MicroDAGR GPS</Hungarian>
|
||||
<Italian>MicroDAGR GPS</Italian>
|
||||
<Italian>GPS MicroDAGR</Italian>
|
||||
<Portuguese>GPS MicroDAGR</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_microdagr_itemDescription">
|
||||
@ -22,7 +22,7 @@
|
||||
<French>Récepteur GPS MicroDAGR</French>
|
||||
<Czech>MicroDAGR pokročílá GPS příjímač</Czech>
|
||||
<Hungarian>MicroDAGR fejlett GPS vevőegység</Hungarian>
|
||||
<Italian>MicroDAGR ricevitore GPS avanzato</Italian>
|
||||
<Italian>Ricevitore GPS avanzato MicroDAGR</Italian>
|
||||
<Portuguese>Recepitor GPS avançado MicroDAGR</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_microdagr_settingUseMils">
|
||||
@ -46,7 +46,7 @@
|
||||
<French>Mils</French>
|
||||
<Czech>Mils</Czech>
|
||||
<Hungarian>Mil</Hungarian>
|
||||
<Italian>Miglia</Italian>
|
||||
<Italian>Mils</Italian>
|
||||
<Portuguese>Mils:</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_microdagr_settingShowWP">
|
||||
|
@ -15,8 +15,10 @@ PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
|
||||
// Bail on not missile
|
||||
if(! (_ammo isKindOf "MissileBase") ) exitWith { false };
|
||||
|
||||
_configs = configProperties [configFile >> "CfgAmmo" >> _ammo >> QUOTE(ADDON), "true", false];
|
||||
//Verify ammo has explicity added guidance config (ignore inheritances)
|
||||
_configs = configProperties [(configFile >> "CfgAmmo" >> _ammo), QUOTE(configName _x == QUOTE(QUOTE(ADDON))), false];
|
||||
if( (count _configs) < 1) exitWith {};
|
||||
|
||||
_config = (configFile >> "CfgAmmo" >> _ammo >> QUOTE(ADDON));
|
||||
_enabled = getNumber ( _config >> "enabled");
|
||||
|
||||
|
@ -19,31 +19,31 @@ class CfgVehicles {
|
||||
class Arguments {
|
||||
class soundFiles {
|
||||
displayName = "Sounds";
|
||||
description = "Classnames of the ambiance sounds played. Seperated by ','. ";
|
||||
description = "Class names of the ambiance sounds to be played. Seperated by ','";
|
||||
typeName = "STRING";
|
||||
defaultValue = "";
|
||||
};
|
||||
class minimalDistance {
|
||||
displayName = "Minimal Distance";
|
||||
description = "Minimal Distance";
|
||||
description = "Used for calculating a random position and sets the minimal distance between the players and the played sound file(s)";
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 400;
|
||||
};
|
||||
class maximalDistance {
|
||||
displayName = "Maximal Distance";
|
||||
description = "Maximal Distance";
|
||||
displayName = "Maximum Distance";
|
||||
description = "Used for calculating a random position and sets the maximum distance between the players and the played sound file(s)";
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 900;
|
||||
};
|
||||
class minimalDelay {
|
||||
displayName = "Minimal Delay";
|
||||
description = "Minimal Delay between sounds played";
|
||||
description = "Minimal delay between sounds played";
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 10;
|
||||
};
|
||||
class maximalDelay {
|
||||
displayName = "Maximal Delay";
|
||||
description = "Maximal Delay between sounds played";
|
||||
displayName = "Maximum Delay";
|
||||
description = "Maximum delay between sounds played";
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 170;
|
||||
};
|
||||
|
@ -26,39 +26,39 @@ _activated = [_this,2,true,[true]] call BIS_fnc_param;
|
||||
// We only play this on the locality of the logic, since the sounds are broadcasted across the network
|
||||
if (_activated && local _logic) then {
|
||||
_ambianceSounds = [];
|
||||
_unparsedSounds = _logic getvariable ["soundFiles", ""];
|
||||
_minimalDistance = (_logic getvariable ["minimalDistance", 400]) max 1;
|
||||
_maximalDistance = (_logic getvariable ["maximalDistance", 10]) max _minimalDistance;
|
||||
_minDelayBetweensounds = (_logic getvariable ["minimalDelay", 10]) max 1;
|
||||
_maxDelayBetweenSounds = (_logic getvariable ["maximalDelay", 170]) max _minDelayBetweensounds;
|
||||
_volume = (_logic getvariable ["soundVolume", 30]) max 1;
|
||||
_followPlayers = _logic getvariable ["followPlayers", false];
|
||||
_unparsedSounds = _logic getVariable ["soundFiles", ""];
|
||||
_minimalDistance = (_logic getVariable ["minimalDistance", 400]) max 1;
|
||||
_maximalDistance = (_logic getVariable ["maximalDistance", 10]) max _minimalDistance;
|
||||
_minDelayBetweensounds = (_logic getVariable ["minimalDelay", 10]) max 1;
|
||||
_maxDelayBetweenSounds = (_logic getVariable ["maximalDelay", 170]) max _minDelayBetweensounds;
|
||||
_volume = (_logic getVariable ["soundVolume", 30]) max 1;
|
||||
_followPlayers = _logic getVariable ["followPlayers", false];
|
||||
|
||||
_splittedList = [_unparsedSounds, ","] call BIS_fnc_splitString;
|
||||
|
||||
_nilCheckPassedList = "";
|
||||
{
|
||||
_x = [_x] call EFUNC(common,string_removeWhiteSpace);
|
||||
_splittedList set [_foreachIndex, _x];
|
||||
}foreach _splittedList;
|
||||
_x = [_x] call EFUNC(common,stringRemoveWhiteSpace);
|
||||
_splittedList set [_forEachIndex, _x];
|
||||
}forEach _splittedList;
|
||||
|
||||
_soundPath = [(str missionConfigFile), 0, -15] call BIS_fnc_trimString;
|
||||
{
|
||||
if (isclass (missionConfigFile >> "CfgSounds" >> _x)) then {
|
||||
_ambianceSounds pushback (_soundPath + (getArray(missionConfigFile >> "CfgSounds" >> _x >> "sound") select 0));
|
||||
if (isClass (missionConfigFile >> "CfgSounds" >> _x)) then {
|
||||
_ambianceSounds pushBack (_soundPath + (getArray(missionConfigFile >> "CfgSounds" >> _x >> "sound") select 0));
|
||||
} else {
|
||||
if (isclass (configFile >> "CfgSounds" >> _x)) then {
|
||||
_ambianceSounds pushback ((getArray(configFile >> "CfgSounds" >> _x >> "sound") select 0));
|
||||
if (isClass (configFile >> "CfgSounds" >> _x)) then {
|
||||
_ambianceSounds pushBack ((getArray(configFile >> "CfgSounds" >> _x >> "sound") select 0));
|
||||
};
|
||||
};
|
||||
}foreach _splittedList;
|
||||
}forEach _splittedList;
|
||||
|
||||
if (count _ambianceSounds == 0) exitwith {};
|
||||
if (count _ambianceSounds == 0) exitWith {};
|
||||
{
|
||||
if !([".", _x, true] call BIS_fnc_inString) then {
|
||||
_ambianceSounds set [_foreachIndex, _x + ".wss"];
|
||||
_ambianceSounds set [_forEachIndex, _x + ".wss"];
|
||||
};
|
||||
}foreach _ambianceSounds;
|
||||
}forEach _ambianceSounds;
|
||||
|
||||
[{
|
||||
private ["_args", "_logic", "_ambianceSounds", "_minimalDistance", "_maximalDistance", "_minDelayBetweensounds", "_maxDelayBetweenSounds", "_volume", "_followPlayers","_lastTimePlayed", "_newPos"];
|
||||
@ -68,7 +68,7 @@ if (_activated && local _logic) then {
|
||||
_maxDelayBetweenSounds = _args select 5;
|
||||
_lastTimePlayed = _args select 8;
|
||||
|
||||
if (!alive _logic) exitwith {
|
||||
if (!alive _logic) exitWith {
|
||||
[(_this select 1)] call cba_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
<Hungarian>82mm hatótáv-tábla</Hungarian>
|
||||
<Portuguese>Tabela de distâncias de para 82mm</Portuguese>
|
||||
<Czech>82mm Rangetable</Czech>
|
||||
<Italian>Tavola di tiro 82mm</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_MK6MORTAR_rangetable_description">
|
||||
<English>Range Table for the MK6 82mm Mortar</English>
|
||||
@ -22,6 +23,7 @@
|
||||
<Hungarian>Hatótáv-tábla a MK6 82mm-es mozsárhoz</Hungarian>
|
||||
<Portuguese>Tabela de distâncias para morteiro MK6 82mm</Portuguese>
|
||||
<Czech>Rangetable pro MK6 82mm minomet</Czech>
|
||||
<Italian>Tavola di tiro per il mortaio calibro 82mm MK6</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_MK6MORTAR_rangetable_action">
|
||||
<English>Open 82mm Rangetable</English>
|
||||
@ -33,6 +35,7 @@
|
||||
<Hungarian>82mm hatótáv-tábla megnyitása</Hungarian>
|
||||
<Portuguese>Abrir tabela de distâncias para 82mm</Portuguese>
|
||||
<Czech>Otevřít 82mm Rangetable</Czech>
|
||||
<Italian>Apri la tavola di tiro 82mm</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_MK6MORTAR_rangetable_charge">
|
||||
<English>Charge</English>
|
||||
@ -44,6 +47,7 @@
|
||||
<Hungarian>Töltés</Hungarian>
|
||||
<Portuguese>Carregar</Portuguese>
|
||||
<Czech>Nabít</Czech>
|
||||
<Italian>Carica</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -70,8 +70,8 @@
|
||||
<Czech>Zobrazit info o posádce vozidla</Czech>
|
||||
<Russian>Показывать информацию об экипаже</Russian>
|
||||
<Hungarian>Jármű-legénység adatainak mutatása</Hungarian>
|
||||
<Italian>Mostra le informazioni sull'equipaggio del veicolo</Italian>
|
||||
<Portuguese>Mostrar tripulantes</Portuguese>
|
||||
<Italian>Mostra l'elenco del personale a bordo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_ShowNamesForAI">
|
||||
<English>Show name tags for AI units</English>
|
||||
@ -82,7 +82,7 @@
|
||||
<Polish>Wyświetl imiona jednostek AI</Polish>
|
||||
<French>Afficher les noms des IA</French>
|
||||
<Hungarian>Névcímkék mutatása MI-egységeknél</Hungarian>
|
||||
<Italian>Mostra le tag nomi per le unità AI</Italian>
|
||||
<Italian>Mostra i nomi delle le unità AI</Italian>
|
||||
<Portuguese>Mostrar nomes para unidades de IA</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_ShowSoundWaves">
|
||||
@ -94,7 +94,7 @@
|
||||
<Polish>Pokaż fale dźwiękowe (wymagana opcja Pokaż imiona graczy)</Polish>
|
||||
<French>Afficher "qui parle" (si noms affichés)</French>
|
||||
<Hungarian>"Hanghullámok" mutatása (a nevek mutatása szükséges)</Hungarian>
|
||||
<Italian>Mostra barra movimento audio (richiede mostra nomi abilitato)</Italian>
|
||||
<Italian>Mostra movimento audio (richiede mostra nomi abilitato)</Italian>
|
||||
<Portuguese>Mostrar onda sonora (requer nome de jogadores)</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NameTags_DefaultNametagColor">
|
||||
@ -106,7 +106,7 @@
|
||||
<French>Couleur d'affichage par défaut (si dans aucun groupe)</French>
|
||||
<Czech>Standardní barva jmenovek (pro nečleny jednotky)</Czech>
|
||||
<Hungarian>Alap névcímke-szín (csoporton kívüli személyek)</Hungarian>
|
||||
<Italian>Colore nametag di default (membri non del gruppo)</Italian>
|
||||
<Italian>Colore dei nomi non appartenenti al gruppo</Italian>
|
||||
<Portuguese>Cor padrão do nome (unidades fora do grupo)</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
|
1
addons/nightvision/$PBOPREFIX$
Normal file
1
addons/nightvision/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\nightvision
|
@ -95,6 +95,7 @@
|
||||
<French>JVN (Large)</French>
|
||||
<Hungarian>Éjjellátó szemüveg (széles látószögű)</Hungarian>
|
||||
<Portuguese>Óculos de visão noturna (Panorâmico)</Portuguese>
|
||||
<Italian>Occhiali notturni (Larghi)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_NightVision_NVGBrightness">
|
||||
<English>Brightness: %1</English>
|
||||
|
@ -239,6 +239,7 @@
|
||||
<German>UI Skalierung</German>
|
||||
<Hungarian>Beállításmenü kezelőfelületének skálázása</Hungarian>
|
||||
<Portuguese>Escalar o menu de opções</Portuguese>
|
||||
<Italian>Proporzioni della interfaccia utente</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -35,8 +35,7 @@ _temperature = _overheat select 0;
|
||||
_time = _overheat select 1;
|
||||
|
||||
// Get physical parameters
|
||||
// Bullet mass is read from config in grains and converted to grams
|
||||
_bulletMass = (getNumber (configFile >> "CfgAmmo" >> _ammo >> "ACE_BulletMass")) * 0.06480;
|
||||
_bulletMass = getNumber (configFile >> "CfgAmmo" >> _ammo >> "ACE_BulletMass");
|
||||
if (_bulletMass == 0) then {
|
||||
// If the bullet mass is not configured, estimate it directly in grams
|
||||
_bulletMass = 3.4334 + 0.5171 * (getNumber (configFile >> "CfgAmmo" >> _ammo >> "hit") + getNumber (configFile >> "CfgAmmo" >> _ammo >> "caliber"));
|
||||
|
@ -234,7 +234,7 @@ class V_PlateCarrierIA2_dgtl: V_PlateCarrierIA1_dgtl { // heavy
|
||||
};
|
||||
};
|
||||
class V_PlateCarrierIAGL_dgtl: V_PlateCarrierIA2_dgtl { // heavy (gl)
|
||||
class ItemInfo: ItemInfo {
|
||||
class ItemInfo: VestItem {
|
||||
containerClass = "Supply140"; //"Supply120";
|
||||
mass = 100; //80;
|
||||
armor = 12; //100;
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Reload">
|
||||
<Key ID="STR_ACE_reload_SettingDisplayTextName">
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user