mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' of https://github.com/acemod/ACE3 into gunbag
This commit is contained in:
commit
6d988524d3
@ -112,6 +112,7 @@ Sniperwolf572 <tenga6@gmail.com>
|
||||
System98
|
||||
SzwedzikPL <szwedzikpl@gmail.com>
|
||||
Tachi <zaveruha007@gmail.com>
|
||||
Tessa Elieff <Fastroping Sound - CreativeCommons Attributions 3.0>
|
||||
Toaster <jonathan.pereira@gmail.com>
|
||||
Tonic
|
||||
Tourorist <tourorist@gmail.com>
|
||||
|
2
LICENSE
2
LICENSE
@ -26,6 +26,8 @@ Some folders of this project may contain a separate LICENSE file. Should
|
||||
that be the case, everything in that folder and all subfolders is subject
|
||||
to that license instead.
|
||||
|
||||
- ARMA PUBLIC LICENSE (\addons\apl)
|
||||
- CreativeCommons Attributions 3.0 (\addons\fastroping\data\sounds)
|
||||
|
||||
============================================================================
|
||||
Full GNU General Public License Text
|
||||
|
@ -3,12 +3,15 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/acemod/ACE3/releases">
|
||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||
<img src="https://img.shields.io/badge/Version-3.5.1-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/issues">
|
||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/releases">
|
||||
<img src="https://img.shields.io/github/downloads/acemod/ACE3/total.svg?style=flat-square&label=Downloads" alt="ACE3 Downloads">
|
||||
</a>
|
||||
<a href="https://forums.bistudio.com/topic/181341-ace3-a-collaborative-merger-between-agm-cse-and-ace/?p=2859670">
|
||||
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square" alt="BIF Thread">
|
||||
</a>
|
||||
|
@ -11,7 +11,7 @@ class CfgAmmo {
|
||||
explosive = 1.8;
|
||||
tracersEvery = 3;
|
||||
tracerEndTime = 3.5;
|
||||
|
||||
|
||||
CraterEffects = "ExploAmmoCrater";
|
||||
explosionEffects = "ExploAmmoExplosion";
|
||||
model = "\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
|
@ -860,12 +860,12 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
helmetDown[] = {0,-0.07,0};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
weapons[] = {"ACE_gatling_20mm_Comanche","missiles_DAGR","missiles_ASRAAM", "ACE_AIR_SAFETY"};
|
||||
magazines[] = {"ACE_500Rnd_20mm_shells_Comanche","4Rnd_AAA_missiles","24Rnd_PG_missiles"};
|
||||
|
||||
|
||||
outGunnerMayFire = 1;
|
||||
commanding = -1;
|
||||
primaryGunner = 1;
|
||||
@ -888,13 +888,13 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
minTurn = -120;
|
||||
maxTurn = 120;
|
||||
initTurn = 0;
|
||||
|
||||
|
||||
class OpticsIn
|
||||
{
|
||||
delete Narrow;
|
||||
delete Medium;
|
||||
delete Wide;
|
||||
|
||||
|
||||
class ACE_WideUnstabilized {
|
||||
opticsDisplayName = "W NS";
|
||||
initAngleX = 0;
|
||||
@ -994,4 +994,4 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
weapon = "ACE_gatling_20mm_Comanche";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -230,7 +230,7 @@ class ATragMX_Display {
|
||||
idc=-1;
|
||||
x=0.55*safezoneW+safezoneX+0.315;
|
||||
};
|
||||
|
||||
|
||||
class TEXT_GUN_FRAME: ATragMX_RscText {
|
||||
idc=1001;
|
||||
style=64;
|
||||
@ -610,7 +610,7 @@ class ATragMX_Display {
|
||||
x=0.550*safezoneW+safezoneX+0.27;
|
||||
text="4";
|
||||
action=QUOTE(call FUNC(toggle_solution_setup));
|
||||
};
|
||||
};
|
||||
class TEXT_CALCULATE: TEXT_SCOPE_UNIT {
|
||||
idc=3000;
|
||||
style=ST_RIGHT;
|
||||
@ -1059,7 +1059,7 @@ class ATragMX_Display {
|
||||
text="Cancel";
|
||||
action=QUOTE(false call FUNC(show_add_new_gun); true call FUNC(show_gun_list));
|
||||
};
|
||||
|
||||
|
||||
class TEXT_GUN_AMMO_DATA_BORE_HEIGHT: TEXT_BORE_HEIGHT {
|
||||
idc=12000;
|
||||
w=0.22;
|
||||
@ -1147,7 +1147,7 @@ class ATragMX_Display {
|
||||
class TEXT_GUN_AMMO_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
|
||||
idc=12011;
|
||||
};
|
||||
|
||||
|
||||
class TEXT_ATMO_ENV_DATA_DEFAULT: TEXT_LEAD {
|
||||
idc=13000;
|
||||
w=0.08;
|
||||
@ -1231,7 +1231,7 @@ class ATragMX_Display {
|
||||
y=0.265*safezoneH+safezoneY+0.29;
|
||||
text="Calc Method";
|
||||
};
|
||||
|
||||
|
||||
class TEXT_TARGET_DATA_LATITUDE: TEXT_BORE_HEIGHT {
|
||||
idc=14000;
|
||||
w=0.22;
|
||||
@ -1379,7 +1379,7 @@ class ATragMX_Display {
|
||||
class TEXT_TARGET_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
|
||||
idc=14011;
|
||||
};
|
||||
|
||||
|
||||
class TEXT_SOLUTION_SETUP_SHOW_RESULT_IN: TEXT_GUN_AMMO_DATA_BORE_HEIGHT {
|
||||
idc=15000;
|
||||
style=64;
|
||||
@ -1469,4 +1469,4 @@ class ATragMX_Display {
|
||||
action=QUOTE(0 call FUNC(toggle_solution_setup));
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -7,41 +7,41 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
||||
} else {
|
||||
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model
|
||||
GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
|
||||
|
||||
|
||||
["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
|
||||
["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
|
||||
|
||||
|
||||
["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
|
||||
|
||||
|
||||
[".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
|
||||
|
||||
|
||||
["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
|
||||
|
||||
|
||||
[".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
|
||||
[".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
|
||||
[".338LM API526" , 895, 100, 0.0588865, -0.00069611, 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.0584442, -0.00070530, 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.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
|
||||
[".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
|
||||
|
||||
|
||||
["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
|
||||
|
||||
|
||||
["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
|
||||
["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
|
||||
["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
|
||||
["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
|
||||
["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
|
||||
|
||||
|
||||
["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
|
||||
["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
|
||||
["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
|
||||
|
||||
|
||||
["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
|
||||
["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
|
||||
["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
|
||||
["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 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)];
|
||||
};
|
||||
|
@ -42,31 +42,14 @@
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed1", "_windSpeed2", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_drag", "_bc", "_dragModel", "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude", "_directionOfFire"];
|
||||
_scopeBaseAngle = _this select 0;
|
||||
_bulletMass = _this select 1;
|
||||
_boreHeight = _this select 2;
|
||||
_airFriction = _this select 3;
|
||||
_muzzleVelocity = _this select 4;
|
||||
_temperature = _this select 5;
|
||||
_barometricPressure = _this select 6;
|
||||
_relativeHumidity = _this select 7;
|
||||
_simSteps = _this select 8;
|
||||
_windSpeed1 = (_this select 9) select 0;
|
||||
_windSpeed2 = (_this select 9) select 1;
|
||||
_windDirection = _this select 10;
|
||||
_inclinationAngle = _this select 11;
|
||||
_targetSpeed = _this select 12;
|
||||
_targetRange = _this select 13;
|
||||
_bc = _this select 14;
|
||||
_dragModel = _this select 15;
|
||||
_atmosphereModel = _this select 16;
|
||||
_storeRangeCardData = _this select 17;
|
||||
_stabilityFactor = _this select 18;
|
||||
_twistDirection = _this select 19;
|
||||
_latitude = _this select 20;
|
||||
_directionOfFire = _this select 21;
|
||||
params [
|
||||
"_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity",
|
||||
"_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed",
|
||||
"_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_bc", "_dragModel",
|
||||
"_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude",
|
||||
"_directionOfFire"
|
||||
];
|
||||
_windSpeed params ["_windSpeed1", "_windSpeed2"];
|
||||
|
||||
private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_bulletSpeed", "_gravity", "_deltaT"];
|
||||
_bulletPos = [0, 0, 0];
|
||||
@ -133,7 +116,7 @@ _bulletVelocity set [2, Sin(_scopeBaseAngle) * _muzzleVelocity];
|
||||
|
||||
while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
||||
_bulletSpeed = vectorMagnitude _bulletVelocity;
|
||||
|
||||
|
||||
_speedTotal = _speedTotal + _bulletSpeed;
|
||||
_stepsTotal = _stepsTotal + 1;
|
||||
_speedAverage = (_speedTotal / _stepsTotal);
|
||||
@ -142,7 +125,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
||||
_trueSpeed = vectorMagnitude _trueVelocity;
|
||||
|
||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||
_drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
|
||||
private _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
|
||||
parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed]))
|
||||
} else {
|
||||
([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation))
|
||||
@ -173,7 +156,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
||||
};
|
||||
_kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2));
|
||||
_kineticEnergy = _kineticEnergy * 0.737562149;
|
||||
|
||||
|
||||
if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then {
|
||||
// Coriolis
|
||||
_horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage;
|
||||
@ -190,7 +173,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
||||
_windage1 = _windage1 + _spinDrift;
|
||||
_windage2 = _windage2 + _spinDrift;
|
||||
};
|
||||
|
||||
|
||||
GVAR(rangeCardData) set [_n, [_range, _elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy]];
|
||||
_n = _n + 1;
|
||||
};
|
||||
|
@ -17,10 +17,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_gunID", "_restoreMemory", "_updateDisplay"];
|
||||
_gunID = _this select 0;
|
||||
_restoreMemory = _this select 1;
|
||||
_updateDisplay = _this select 2;
|
||||
params ["_gunID", "_restoreMemory", "_updateDisplay"];
|
||||
|
||||
if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {};
|
||||
|
||||
|
@ -39,7 +39,7 @@ if (GVAR(showRangeCard)) then {
|
||||
};
|
||||
GVAR(showRangeCardSetup) call FUNC(show_range_card_setup);
|
||||
GVAR(showSolutionSetup) call FUNC(show_solution_setup);
|
||||
GVAR(showTargetData) call FUNC(show_target_data);
|
||||
GVAR(showTargetData) call FUNC(show_target_data);
|
||||
GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist);
|
||||
GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist);
|
||||
GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);
|
||||
|
@ -21,6 +21,5 @@ GVAR(showGunList) = _this;
|
||||
|
||||
if (_this) then {
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 6002);
|
||||
|
||||
lbSetCurSel [6000, GVAR(currentGun)];
|
||||
};
|
||||
|
@ -21,7 +21,7 @@ GVAR(showRangeCardSetup) = _this;
|
||||
|
||||
if (_this) then {
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 10006);
|
||||
|
||||
|
||||
ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))];
|
||||
ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))];
|
||||
ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))];
|
||||
|
@ -21,7 +21,6 @@ GVAR(showTargetRangeAssist) = _this;
|
||||
|
||||
if (_this) then {
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 7018);
|
||||
|
||||
ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
|
||||
ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
|
||||
|
||||
@ -30,4 +29,4 @@ if (_this) then {
|
||||
} else {
|
||||
ctrlSetText [7016, "Meters"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -21,7 +21,7 @@ GVAR(showTargetSpeedAssist) = _this;
|
||||
|
||||
if (_this) then {
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 8012);
|
||||
|
||||
|
||||
ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))];
|
||||
|
||||
if (GVAR(currentUnit) == 1) then {
|
||||
@ -29,7 +29,7 @@ if (_this) then {
|
||||
} else {
|
||||
ctrlSetText [8008, "Meters"];
|
||||
};
|
||||
|
||||
|
||||
if (GVAR(currentUnit) == 2) then {
|
||||
ctrlSetText [8011, "m/s"];
|
||||
} else {
|
||||
|
@ -17,10 +17,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_slopeDistance", "_azimuth", "_inclination"];
|
||||
_slopeDistance = _this select 0;
|
||||
_azimuth = _this select 1;
|
||||
_inclination = _this select 2;
|
||||
params ["_slopeDistance", "_azimuth", "_inclination"];
|
||||
|
||||
GVAR(inclinationAngle) set [GVAR(currentTarget), round(_inclination)];
|
||||
GVAR(directionOfFire) set [GVAR(currentTarget), round(_azimuth)];
|
||||
|
@ -21,26 +21,26 @@ if !(ctrlVisible 9000) then {
|
||||
true call FUNC(show_target_speed_assist_timer);
|
||||
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 9002);
|
||||
|
||||
|
||||
[{
|
||||
private ["_args", "_startTime"];
|
||||
_args = _this select 0;
|
||||
_startTime = _args select 0;
|
||||
|
||||
|
||||
if (!(GVAR(speedAssistTimer))) exitWith {
|
||||
GVAR(speedAssistTimer) = true;
|
||||
|
||||
|
||||
ctrlSetText [8006, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
||||
|
||||
[] call FUNC(calculate_target_speed_assist);
|
||||
|
||||
false call FUNC(show_target_speed_assist_timer);
|
||||
true call FUNC(show_target_speed_assist);
|
||||
|
||||
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
|
||||
ctrlSetText [9001, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
||||
|
||||
|
||||
}, 0.1, [ACE_time]] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
@ -18,7 +18,7 @@
|
||||
if (ctrlVisible 13000) then {
|
||||
false call FUNC(show_atmo_env_data);
|
||||
true call FUNC(show_main_page);
|
||||
|
||||
|
||||
if (_this == 1) then {
|
||||
call FUNC(calculate_target_solution);
|
||||
};
|
||||
|
@ -18,7 +18,7 @@
|
||||
if (ctrlVisible 12000) then {
|
||||
false call FUNC(show_gun_ammo_data);
|
||||
true call FUNC(show_main_page);
|
||||
|
||||
|
||||
if (_this == 1) then {
|
||||
call FUNC(update_zero_range);
|
||||
call FUNC(calculate_target_solution);
|
||||
|
@ -18,7 +18,7 @@
|
||||
if (ctrlVisible 6000) then {
|
||||
false call FUNC(show_gun_list);
|
||||
true call FUNC(show_main_page);
|
||||
|
||||
|
||||
if (_this) then {
|
||||
[lbCurSel 6000, true, true] call FUNC(change_gun);
|
||||
};
|
||||
|
@ -21,9 +21,9 @@ if (ctrlVisible 5006) then {
|
||||
} else {
|
||||
false call FUNC(show_main_page);
|
||||
true call FUNC(show_range_card);
|
||||
|
||||
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 5001);
|
||||
|
||||
|
||||
[] call FUNC(calculate_range_card);
|
||||
[] call FUNC(update_range_card);
|
||||
};
|
||||
|
@ -18,12 +18,12 @@
|
||||
if (ctrlVisible 10000) then {
|
||||
false call FUNC(show_range_card_setup);
|
||||
true call FUNC(show_range_card);
|
||||
|
||||
|
||||
if (_this == 1) then {
|
||||
GVAR(rangeCardStartRange) = 0 max Round(parseNumber(ctrlText 10003)) min 3000;
|
||||
GVAR(rangeCardEndRange) = 0 max Round(parseNumber(ctrlText 10004)) min 3000;
|
||||
GVAR(rangeCardIncrement) = 1 max Round(parseNumber(ctrlText 10005)) min 3000;
|
||||
|
||||
|
||||
[] call FUNC(calculate_range_card);
|
||||
[] call FUNC(update_range_card);
|
||||
};
|
||||
|
@ -18,7 +18,7 @@
|
||||
if (ctrlVisible 15000) then {
|
||||
false call FUNC(show_solution_setup);
|
||||
true call FUNC(show_main_page);
|
||||
|
||||
|
||||
if (_this == 1) then {
|
||||
GVAR(currentScopeClickUnit) = GVAR(currentScopeClickUnitTemp);
|
||||
GVAR(currentScopeClickNumber) = GVAR(currentScopeClickNumberTemp);
|
||||
@ -30,9 +30,9 @@ if (ctrlVisible 15000) then {
|
||||
} else {
|
||||
true call FUNC(show_solution_setup);
|
||||
false call FUNC(show_main_page);
|
||||
|
||||
|
||||
GVAR(currentScopeClickUnitTemp) = GVAR(currentScopeClickUnit);
|
||||
GVAR(currentScopeClickNumberTemp) = GVAR(currentScopeClickNumber);
|
||||
|
||||
|
||||
[] call FUNC(update_solution_setup);
|
||||
};
|
||||
|
@ -18,7 +18,7 @@
|
||||
if (ctrlVisible 14000) then {
|
||||
false call FUNC(show_target_data);
|
||||
true call FUNC(show_main_page);
|
||||
|
||||
|
||||
if (_this == 1) then {
|
||||
call FUNC(calculate_target_solution);
|
||||
};
|
||||
|
@ -18,7 +18,7 @@
|
||||
if (ctrlVisible 7000) then {
|
||||
false call FUNC(show_target_range_assist);
|
||||
true call FUNC(show_main_page);
|
||||
|
||||
|
||||
if (_this == 1) then {
|
||||
ctrlSetText [320, Str(parseNumber(ctrlText 7012))];
|
||||
ctrlSetText [140040, Str(parseNumber(ctrlText 7012))];
|
||||
|
@ -18,7 +18,7 @@
|
||||
if (ctrlVisible 8000) then {
|
||||
false call FUNC(show_target_speed_assist);
|
||||
true call FUNC(show_main_page);
|
||||
|
||||
|
||||
if (_this == 1) then {
|
||||
[] call FUNC(calculate_target_speed_assist);
|
||||
private ["_targetSpeed"];
|
||||
|
@ -43,7 +43,7 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
|
||||
_TOF = _x select 4;
|
||||
_velocity = _x select 5;
|
||||
_kineticEnergy = _x select 6;
|
||||
|
||||
|
||||
switch (GVAR(currentScopeUnit)) do {
|
||||
case 0: {
|
||||
_elevation = _elevation / 3.38;
|
||||
@ -63,25 +63,25 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
|
||||
};
|
||||
_clickNumber = GVAR(workingMemory) select 8;
|
||||
_clickInterval = _clickSize / _clickNumber;
|
||||
|
||||
|
||||
_elevation = Round(_elevation / _clickInterval);
|
||||
_windage1 = Round(_windage1 / _clickInterval);
|
||||
_windage2 = Round(_windage2 / _clickInterval);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
_elevationOutput = Str(Round(_elevation * 100) / 100);
|
||||
_windageOutput = Str(Round(_windage1 * 100) / 100);
|
||||
|
||||
|
||||
_rangeOutput = Str(_range);
|
||||
if (_velocity < _speedOfSound) then {
|
||||
_rangeOutput = _rangeOutput + "*";
|
||||
};
|
||||
|
||||
|
||||
if (GVAR(currentUnit) == 1) then {
|
||||
_velocity = _velocity * 3.2808399;
|
||||
};
|
||||
|
||||
|
||||
switch (GVAR(rangeCardCurrentColumn)) do {
|
||||
case 0: {
|
||||
if (GVAR(showWind2)) then {
|
||||
@ -100,6 +100,6 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
|
||||
_lastColumnOutput = Str(Round(_TOF * 100) / 100);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
lnbAddRow [5007, [_rangeOutput, _elevationOutput, _windageOutput, _lastColumnOutput]];
|
||||
} forEach GVAR(rangeCardData);
|
||||
|
@ -33,24 +33,24 @@ switch (GVAR(currentScopeUnit)) do {
|
||||
case 0: {
|
||||
_elevationAbs = _elevationAbs / 3.38;
|
||||
_windageAbs = _windageAbs / 3.38;
|
||||
|
||||
|
||||
_wind2 = _wind2 / 3.38;
|
||||
|
||||
|
||||
_elevationRel = _elevationRel / 3.38;
|
||||
_windageRel = _windageRel / 3.38;
|
||||
|
||||
|
||||
_elevationCur = _elevationCur / 3.38;
|
||||
_windageCur = _windageCur / 3.38;
|
||||
};
|
||||
case 2: {
|
||||
_elevationAbs = _elevationAbs * 1.047;
|
||||
_windageAbs = _windageAbs * 1.047;
|
||||
|
||||
|
||||
_wind2 = _wind2 / 1.047;
|
||||
|
||||
|
||||
_elevationRel = _elevationRel * 1.047;
|
||||
_windageRel = _windageRel * 1.047;
|
||||
|
||||
|
||||
_elevationCur = _elevationCur * 1.047;
|
||||
_windageCur = _windageCur * 1.047;
|
||||
};
|
||||
@ -62,15 +62,15 @@ switch (GVAR(currentScopeUnit)) do {
|
||||
};
|
||||
_clickNumber = GVAR(workingMemory) select 8;
|
||||
_clickInterval = _clickSize / _clickNumber;
|
||||
|
||||
|
||||
_elevationAbs = Round(_elevationAbs / _clickInterval);
|
||||
_windageAbs = Round(_windageAbs / _clickInterval);
|
||||
|
||||
|
||||
_wind2 = Round(_wind2 / _clickInterval);
|
||||
|
||||
|
||||
_elevationRel = Round(_elevationRel / _clickInterval);
|
||||
_windageRel = Round(_windageRel / _clickInterval);
|
||||
|
||||
|
||||
_elevationCur = Round(_elevationCur / _clickInterval);
|
||||
_windageCur = Round(_windageCur / _clickInterval);
|
||||
};
|
||||
@ -166,4 +166,4 @@ if (GVAR(showWind2)) then {
|
||||
} else {
|
||||
ctrlSetText [420, "0.0"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -83,7 +83,7 @@ class CfgMagazines {
|
||||
descriptionShort = CSTRING(30Rnd_556x45_mag_Tracer_DimDescription);
|
||||
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
|
||||
};
|
||||
|
||||
|
||||
class 20Rnd_762x51_Mag: CA_Magazine {
|
||||
initSpeed = 833;
|
||||
};
|
||||
@ -121,7 +121,7 @@ class CfgMagazines {
|
||||
descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription);
|
||||
initSpeed = 325;
|
||||
};
|
||||
|
||||
|
||||
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag {
|
||||
author = ECSTRING(common,ACETeam);
|
||||
ammo = "ACE_762x51_Ball_M118LR";
|
||||
@ -247,7 +247,7 @@ class CfgMagazines {
|
||||
descriptionShort = CSTRING(10Rnd_338_API526_Mag_Description);
|
||||
initSpeed = 880;
|
||||
};
|
||||
|
||||
|
||||
class 5Rnd_127x108_Mag;
|
||||
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
|
||||
author = ECSTRING(common,ACETeam);
|
||||
@ -273,8 +273,8 @@ class CfgMagazines {
|
||||
descriptionShort = CSTRING(5Rnd_127x99_AMAX_Mag_Description);
|
||||
initSpeed = 860;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
class 30Rnd_9x21_Mag: CA_Magazine {
|
||||
initSpeed = 450;
|
||||
};
|
||||
@ -286,27 +286,27 @@ class CfgMagazines {
|
||||
descriptionShort = CSTRING(30Rnd_9x19_mag_Description);
|
||||
initSpeed = 370;
|
||||
};
|
||||
|
||||
|
||||
class 11Rnd_45ACP_Mag: CA_Magazine {
|
||||
initSpeed = 250;
|
||||
};
|
||||
|
||||
|
||||
class 6Rnd_45ACP_Cylinder : 11Rnd_45ACP_Mag {
|
||||
initSpeed = 250;
|
||||
};
|
||||
|
||||
|
||||
class 30Rnd_45ACP_Mag_SMG_01: 30Rnd_9x21_Mag {
|
||||
initSpeed = 250;
|
||||
};
|
||||
|
||||
|
||||
class 9Rnd_45ACP_Mag: 30Rnd_45ACP_Mag_SMG_01 {
|
||||
initSpeed = 250;
|
||||
};
|
||||
|
||||
|
||||
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 {
|
||||
initSpeed = 250;
|
||||
};
|
||||
|
||||
|
||||
class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag {
|
||||
initSpeed = 450;
|
||||
};
|
||||
@ -318,7 +318,7 @@ class CfgMagazines {
|
||||
descriptionShort = CSTRING(16Rnd_9x19_mag_Description);
|
||||
initSpeed = 370;
|
||||
};
|
||||
|
||||
|
||||
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
|
||||
initSpeed = 800;
|
||||
};
|
||||
@ -331,15 +331,15 @@ class CfgMagazines {
|
||||
initSpeed = 800;
|
||||
tracersEvery = 1;
|
||||
};
|
||||
|
||||
|
||||
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
|
||||
initSpeed = 750;
|
||||
};
|
||||
|
||||
|
||||
class 150Rnd_93x64_Mag: CA_Magazine {
|
||||
initSpeed = 860;
|
||||
};
|
||||
|
||||
|
||||
class 10Rnd_127x54_Mag: CA_Magazine {
|
||||
initSpeed = 300;
|
||||
};
|
||||
|
@ -15,81 +15,81 @@ class CfgWeapons {
|
||||
class Rifle_Base_F;
|
||||
class Rifle_Long_Base_F;
|
||||
class MuzzleSlot;
|
||||
|
||||
|
||||
/* 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 Single: Mode_SemiAuto {
|
||||
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class EBR_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.
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/* MX */
|
||||
|
||||
|
||||
class arifle_MX_Base_F: Rifle_Base_F {};
|
||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
@ -158,7 +158,7 @@ class CfgWeapons {
|
||||
class Burst: Mode_Burst {
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||
};
|
||||
|
||||
|
||||
class FullAuto: Mode_FullAuto {
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||
};
|
||||
@ -285,6 +285,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -305,6 +307,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -320,6 +324,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -335,6 +341,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -356,6 +364,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -371,6 +381,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -386,6 +398,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -511,7 +525,7 @@ class CfgWeapons {
|
||||
ACE_barrelTwist=234.95;
|
||||
ACE_barrelLength=609.6;
|
||||
};
|
||||
|
||||
|
||||
class HMG_127 : LMG_RCWS {
|
||||
};
|
||||
class HMG_01: HMG_127 {
|
||||
@ -521,7 +535,7 @@ class CfgWeapons {
|
||||
ACE_barrelTwist=304.8;
|
||||
ACE_barrelLength=1143.0;
|
||||
};
|
||||
|
||||
|
||||
/* Silencers */
|
||||
|
||||
class ItemCore;
|
||||
|
@ -37,7 +37,7 @@ if (_state) then {
|
||||
[{
|
||||
params ["_args", "_pfID"];
|
||||
_args params ["_unit", "_target", "_actionID"];
|
||||
|
||||
|
||||
if (_unit getVariable [QGVAR(isEscorting), false]) then {
|
||||
if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then {
|
||||
_unit setVariable [QGVAR(isEscorting), false, true];
|
||||
|
@ -49,7 +49,7 @@ class ACE_Settings {
|
||||
description = CSTRING(SettingFeedbackIconsDesc);
|
||||
values[] = {ECSTRING(optionsmenu,Hide), ECSTRING(optionsmenu,TopRightDown), ECSTRING(optionsmenu,TopRightLeft), ECSTRING(optionsmenu,TopLeftDown), ECSTRING(optionsmenu,TopLeftRight)};
|
||||
};
|
||||
class GVAR(SettingProgressBarLocation) {
|
||||
class GVAR(settingProgressBarLocation) {
|
||||
value = 0;
|
||||
typeName = "SCALAR";
|
||||
force = 0;
|
||||
|
@ -76,3 +76,9 @@ class Extended_FiredBIS_EventHandlers {
|
||||
ADDON = QUOTE(_this call FUNC(firedEH));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Engine_EventHandlers {
|
||||
class All {
|
||||
ADDON = QUOTE(_this call FUNC(handleEngine));
|
||||
};
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ class RscInGameUI {
|
||||
class RscUnitInfoTank: RscUnitInfo {
|
||||
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent););
|
||||
};
|
||||
|
||||
|
||||
class RscUnitInfoAirNoWeapon: RscUnitInfo {
|
||||
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
|
||||
};
|
||||
|
@ -87,6 +87,7 @@ PREP(getWindDirection);
|
||||
PREP(getZoom);
|
||||
PREP(goKneeling);
|
||||
PREP(hadamardProduct);
|
||||
PREP(handleEngine);
|
||||
PREP(handleModifierKey);
|
||||
PREP(handleModifierKeyUp);
|
||||
PREP(handleScrollWheel);
|
||||
|
@ -64,6 +64,7 @@
|
||||
["blockSprint", false, []] call FUNC(statusEffect_addType);
|
||||
["setCaptive", true, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), QEGVAR(medical,unconscious)]] call FUNC(statusEffect_addType);
|
||||
["blockDamage", false, ["fixCollision"]] call FUNC(statusEffect_addType);
|
||||
["blockEngine", false, ["ACE_Refuel"]] call FUNC(statusEffect_addType);
|
||||
|
||||
["forceWalk", {
|
||||
params ["_object", "_set"];
|
||||
@ -90,6 +91,11 @@
|
||||
_object allowDamage (_set == 0);
|
||||
};
|
||||
}] call FUNC(addEventHandler);
|
||||
["blockEngine", {
|
||||
params ["_vehicle", "_set"];
|
||||
_vehicle setVariable [QGVAR(blockEngine), _set > 0, true];
|
||||
_vehicle engineOn false;
|
||||
}] call FUNC(addEventHandler);
|
||||
|
||||
//Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit
|
||||
//This variable is used for isPlayer checks
|
||||
@ -327,7 +333,7 @@ enableCamShake true;
|
||||
GVAR(OldPlayerVehicle) = vehicle objNull;
|
||||
GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex);
|
||||
GVAR(OldPlayerWeapon) = currentWeapon objNull;
|
||||
GVAR(OldPlayerInventory) = [objNull] call FUNC(getAllGear);
|
||||
GVAR(OldPlayerInventory) = [];
|
||||
GVAR(OldPlayerVisionMode) = currentVisionMode objNull;
|
||||
GVAR(OldCameraView) = "";
|
||||
GVAR(OldVisibleMap) = false;
|
||||
@ -375,11 +381,11 @@ GVAR(OldIsCamera) = false;
|
||||
};
|
||||
|
||||
// "playerInventoryChanged" event
|
||||
_data = [ACE_player] call FUNC(getAllGear);
|
||||
_data = getUnitLoadout ACE_player;
|
||||
if !(_data isEqualTo GVAR(OldPlayerInventory)) then {
|
||||
// Raise ACE event locally
|
||||
GVAR(OldPlayerInventory) = _data;
|
||||
["playerInventoryChanged", [ACE_player, _data]] call FUNC(localEvent);
|
||||
["playerInventoryChanged", [ACE_player, [ACE_player, false] call FUNC(getAllGear) ]] call FUNC(localEvent);
|
||||
};
|
||||
|
||||
// "playerVisionModeChanged" event
|
||||
|
@ -29,39 +29,17 @@ GVAR(AssignedItemsShownItems) = [
|
||||
];
|
||||
|
||||
["playerInventoryChanged", {
|
||||
params ["_unit", "_assignedItems"];
|
||||
params ["_unit"];
|
||||
|
||||
_assignedItems = _assignedItems select 17;
|
||||
private _assignedItems = getUnitLoadout _unit param [9, ["","","","","",""]]; // ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"]
|
||||
|
||||
GVAR(AssignedItemsShownItems) = [true, true, true, true, true];
|
||||
|
||||
{
|
||||
if !(_x in GVAR(AssignedItems)) then {
|
||||
GVAR(AssignedItems) pushBack _x;
|
||||
GVAR(AssignedItemsInfo) pushBack toLower getText (configFile >> "CfgWeapons" >> _x >> "ACE_hideItemType");
|
||||
};
|
||||
|
||||
switch (GVAR(AssignedItemsInfo) select (GVAR(AssignedItems) find _x)) do {
|
||||
case ("map"): {
|
||||
GVAR(AssignedItemsShownItems) set [0, false];
|
||||
};
|
||||
case ("compass"): {
|
||||
GVAR(AssignedItemsShownItems) set [1, false];
|
||||
};
|
||||
case ("watch"): {
|
||||
GVAR(AssignedItemsShownItems) set [2, false];
|
||||
};
|
||||
case ("radio"): {
|
||||
GVAR(AssignedItemsShownItems) set [3, false];
|
||||
};
|
||||
case ("gps"): {
|
||||
GVAR(AssignedItemsShownItems) set [4, false];
|
||||
};
|
||||
};
|
||||
false
|
||||
} count _assignedItems;
|
||||
|
||||
//systemChat str GVAR(AssignedItemsShownItems);
|
||||
GVAR(AssignedItemsShownItems) = [
|
||||
!((_assignedItems select 0) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 0 >> "ACE_hideItemType") != "map"},
|
||||
!((_assignedItems select 3) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 3 >> "ACE_hideItemType") != "compass"},
|
||||
!((_assignedItems select 4) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 4 >> "ACE_hideItemType") != "watch"},
|
||||
!((_assignedItems select 2) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 2 >> "ACE_hideItemType") != "radio"},
|
||||
!((_assignedItems select 1) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 1 >> "ACE_hideItemType") != "gps"}
|
||||
];
|
||||
|
||||
GVAR(AssignedItemsShownItems) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"];
|
||||
|
||||
|
@ -21,7 +21,7 @@ if (!isNil "ACE_PFH_COUNTER") then {
|
||||
|
||||
private _isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)};
|
||||
|
||||
diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2];
|
||||
diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2];
|
||||
false
|
||||
} count ACE_PFH_COUNTER;
|
||||
};
|
||||
@ -42,7 +42,7 @@ diag_log text format ["-------------------------------------------"];
|
||||
if (_iter > 2) then {
|
||||
_count = _count + 1;
|
||||
private _delta = (_x select 1) - (_x select 0);
|
||||
|
||||
|
||||
_total = _total + _delta;
|
||||
};
|
||||
|
||||
@ -54,7 +54,7 @@ diag_log text format ["-------------------------------------------"];
|
||||
_averageResult = (_total / _count) * 1000;
|
||||
|
||||
// dump results
|
||||
diag_log text format ["%1: Average: %2s / %3 = %4ms", _counterEntry select 0, _total, _count, _averageResult];
|
||||
diag_log text format ["%1: Average: %2s / %3 = %4ms", _counterEntry select 0, _total, _count, _averageResult];
|
||||
} else {
|
||||
diag_log text format ["%1: No results", _counterEntry select 0];
|
||||
};
|
||||
@ -68,7 +68,7 @@ diag_log text format["-------------------------------------------"];
|
||||
{
|
||||
private _delay = _x select 2;
|
||||
//if(_delay > 0) then { _delay = _delay / 1000; };
|
||||
|
||||
|
||||
diag_log text format["%1: %2s, delay=%3, handle=%4",(_x select 0), _delay, (_x select 3), (_x select 4)];
|
||||
} forEach ACE_PERFORMANCE_EXCESSIVE_STEP_TRACKER;
|
||||
|
||||
|
@ -33,7 +33,11 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit"];
|
||||
params ["_unit", ["_showDeprecated", true]];
|
||||
|
||||
if (_showDeprecated) then {
|
||||
ACE_DEPRECATED("ace_common_fnc_getAllGear","3.7.0","getUnitLoadout");
|
||||
};
|
||||
|
||||
if (isNull _unit) exitWith {[
|
||||
"",
|
||||
|
@ -23,38 +23,80 @@ private _lat = getNumber (configFile >> "CfgWorlds" >> _map >> "latitude");
|
||||
private _altitude = getNumber (configFile >> "CfgWorlds" >> _map >> "elevationOffset");
|
||||
|
||||
_map = toLower _map;
|
||||
if (_map in ["chernarus", "chernarus_summer", "chernarus_winter", "bootcamp_acr", "woodland_acr", "utes"]) then { _lat = 50; _altitude = 0; };
|
||||
if (_map in ["altis", "stratis"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["takistan", "zargabad", "mountains_acr"]) then { _lat = 35; _altitude = 2000; };
|
||||
if (_map in ["shapur_baf", "provingGrounds_pmc"]) then { _lat = 35; _altitude = 100; };
|
||||
if (_map in ["abbottabad"]) then { _lat = 34; _altitude = 1256; }; //Abbottabad elevation 1256m (Wikipedia)
|
||||
if (_map in ["abramia"]) then { _lat = 60; _altitude = 0; };
|
||||
if (_map in ["af_kandahar_province"]) then { _lat = 42; _altitude = 0; };
|
||||
if (_map in ["altis"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["angel"]) then { _lat = 38; _altitude = 0; };
|
||||
if (_map in ["anim_helvantis_v2"]) then { _lat = 50; _altitude = 0; };
|
||||
if (_map in ["australia"]) then { _lat = -25; _altitude = 0; };
|
||||
if (_map in ["bootcamp_acr"]) then { _lat = 50; _altitude = 0; };
|
||||
if (_map in ["bornholm"]) then { _lat = 55; _altitude = 0; };
|
||||
if (_map in ["bozcaada"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["caribou"]) then { _lat = 68; _altitude = 0; };
|
||||
if (_map in ["catalina"]) then { _lat = 33; _altitude = 0; };
|
||||
if (_map in ["chernarus", "chernarus_summer", "chernarus_winter"]) then { _lat = 50; _altitude = 0; };
|
||||
if (_map in ["chernobylzone", "chernobylzonea2"]) then { _lat = 51; _altitude = 0; };
|
||||
if (_map in ["clafghan"]) then { _lat = 34; _altitude = 640; };
|
||||
if (_map in ["dakrong"]) then { _lat = 17; _altitude = 0; }; //Unsung Mod
|
||||
if (_map in ["desert_e"]) then { _lat = 40; _altitude = 800; };
|
||||
if (_map in ["dya"]) then { _lat = 34; _altitude = 110; }; //Diyala Iraq - default elevationOffset
|
||||
if (_map in ["esseker"]) then { _lat = 43; _altitude = 2000; };
|
||||
if (_map in ["evergreen"]) then { _lat = 41; _altitude = 0; }; //Burgazada, Turkey - default elevationOffset
|
||||
if (_map in ["fallujah"]) then { _lat = 33; _altitude = 0; };
|
||||
if (_map in ["fata"]) then { _lat = 33; _altitude = 1347; };
|
||||
if (_map in ["abbottabad"]) then { _lat = 34; _altitude = 1256; };
|
||||
if (_map in ["sfp_wamako"]) then { _lat = 14; _altitude = 0; };
|
||||
if (_map in ["sfp_sturko"]) then { _lat = 56; _altitude = 0; };
|
||||
if (_map in ["bornholm"]) then { _lat = 55; _altitude = 0; };
|
||||
if (_map in ["bozcaada", "imrali", "imralispring"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["caribou"]) then { _lat = 68; _altitude = 0; };
|
||||
if (_map in ["namalsk"]) then { _lat = 65; _altitude = 0; };
|
||||
if (_map in ["mcn_aliabad"]) then { _lat = 36; _altitude = 0; };
|
||||
if (_map in ["clafghan"]) then { _lat = 34; _altitude = 640; };
|
||||
if (_map in ["sangin", "hellskitchen"]) then { _lat = 32; _altitude = 0; };
|
||||
if (_map in ["sara", "sara_dbe1", "saralite", "intro", "desert_e", "porto"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["reshmaan"]) then { _lat = 35; _altitude = 2000; };
|
||||
if (_map in ["thirsk"]) then { _lat = 65; _altitude = 0; };
|
||||
if (_map in ["lingor", "lingor3"]) then { _lat = -4; _altitude = 0; };
|
||||
if (_map in ["panthera3"]) then { _lat = 46; _altitude = 0; };
|
||||
if (_map in ["gorgona"]) then { _lat = 43; _altitude = 0; };
|
||||
if (_map in ["hellskitchen", "hellskitchens"]) then { _lat = 32; _altitude = 900; }; //Sangin summer, Sangin winter - Sangin elevation 888m (Wikipedia)
|
||||
if (_map in ["hindukush"]) then { _lat = 36; _altitude = 0; };
|
||||
if (_map in ["imrali", "imralispring"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["intro"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["isladuala3"]) then { _lat = -19; _altitude = 0; };
|
||||
if (_map in ["jacobi"]) then { _lat = 34; _altitude = 2000; }; //default elevationOffset
|
||||
if (_map in ["kapaulio"]) then { _lat = 0; _altitude = 0; };
|
||||
if (_map in ["kerama"]) then { _lat = 26; _altitude = 0; }; //Kerama Islands, Japan - default elevationOffset
|
||||
if (_map in ["kholm"]) then { _lat = 36; _altitude = 0; };
|
||||
if (_map in ["koplic"]) then { _lat = 42; _altitude = 0; };
|
||||
if (_map in ["kunduz"]) then { _lat = 37; _altitude = 0; };
|
||||
if (_map in ["angel"]) then { _lat = 38; _altitude = 0; };
|
||||
if (_map in ["porquerolles"]) then { _lat = 43; _altitude = 0; };
|
||||
if (_map in ["napf"]) then { _lat = 47; _altitude = 0; };
|
||||
if (_map in ["lingor", "lingor3"]) then { _lat = -4; _altitude = 0; };
|
||||
if (_map in ["lost", "lostw"]) then { _lat = 60; _altitude = 0; };
|
||||
if (_map in ["mcn_aliabad"]) then { _lat = 36; _altitude = 0; };
|
||||
if (_map in ["malvinas"]) then { _lat = -52; _altitude = 0; };
|
||||
if (_map in ["namalsk"]) then { _lat = 65; _altitude = 0; };
|
||||
if (_map in ["mef_alaska"]) then { _lat = 60; _altitude = 5; };
|
||||
if (_map in ["australia"]) then { _lat = -25; _altitude = 0; };
|
||||
if (_map in ["pja301"]) then { _lat = 42; _altitude = 0; };
|
||||
if (_map in ["pja305"]) then { _lat = 0; _altitude = 0; };
|
||||
if (_map in ["pja306"]) then { _lat = 35; _altitude = 300; };
|
||||
if (_map in ["pja307"]) then { _lat = 17; _altitude = 0; };
|
||||
if (_map in ["pja308", "pja310"]) then { _lat = 36; _altitude = 0; };
|
||||
if (_map in ["mountains_acr"]) then { _lat = 35; _altitude = 2000; };
|
||||
if (_map in ["napf", "napfwinter"]) then { _lat = 47; _altitude = 0; };
|
||||
if (_map in ["panthera3"]) then { _lat = 46; _altitude = 0; };
|
||||
if (_map in ["pianosa_aut"]) then { _lat = 43; _altitude = 0; }; //Pianosa, Italy - default elevationOffset
|
||||
if (_map in ["pja305"]) then { _lat = 0; _altitude = 0; }; //G.O.S N'Ziwasogo
|
||||
if (_map in ["pja306"]) then { _lat = 35; _altitude = 0; }; //G.O.S Kalu Khan
|
||||
if (_map in ["pja307"]) then { _lat = 17; _altitude = 0; }; //F.S.F Daryah
|
||||
if (_map in ["pja308"]) then { _lat = 36; _altitude = 0; }; //G.O.S Gunkizli
|
||||
if (_map in ["pja310"]) then { _lat = 36; _altitude = 0; }; //G.O.S Al Rayak
|
||||
if (_map in ["pja312"]) then { _lat = 16; _altitude = 0; }; //G.O.S Song Bin Tanh
|
||||
if (_map in ["porquerolles"]) then { _lat = 43; _altitude = 0; };
|
||||
if (_map in ["porto"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["provinggrounds_pmc"]) then { _lat = 35; _altitude = 100; };
|
||||
if (_map in ["reshmaan"]) then { _lat = 35; _altitude = 2000; };
|
||||
if (_map in ["sara", "sara_dbe1"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["saralite"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["sb3"]) then { _lat = 53; _altitude = 25; }; //TrpUebPl Einfelde Nord (Munster North Training Area, Germany) - default elevationOffset
|
||||
if (_map in ["shapur_baf"]) then { _lat = 35; _altitude = 100; };
|
||||
if (_map in ["sfp_sturko"]) then { _lat = 56; _altitude = 0; };
|
||||
if (_map in ["sfp_wamako"]) then { _lat = 14; _altitude = 0; };
|
||||
if (_map in ["stratis"]) then { _lat = 40; _altitude = 0; };
|
||||
if (_map in ["sugarlake"]) then { _lat = 29; _altitude = 0; };
|
||||
if (_map in ["takistan"]) then { _lat = 35; _altitude = 2000; };
|
||||
if (_map in ["thirsk"]) then { _lat = 65; _altitude = 0; };
|
||||
if (_map in ["tilos"]) then { _lat = 36; _altitude = 0; };
|
||||
if (_map in ["utes"]) then { _lat = 50; _altitude = 0; };
|
||||
if (_map in ["vt5"]) then { _lat = 61; _altitude = 100; }; //Vt5, Suomi Finland - default elevationOffset
|
||||
if (_map in ["wake"]) then { _lat = 19; _altitude = 0; };
|
||||
if (_map in ["waziristan"]) then { _lat = 33; _altitude = 0; };
|
||||
if (_map in ["wintermap"]) then { _lat = 61; _altitude = 0; }; //Nordkvingo - default elevationOffset
|
||||
if (_map in ["wintertown", "wintertowna3"]) then { _lat = 39; _altitude = 600; }; //U.S. state Kansas mean elevation 610m (Wikipedia)
|
||||
if (_map in ["woodland_acr"]) then { _lat = 50; _altitude = 0; };
|
||||
if (_map in ["xcam_prototype"]) then { _lat = 35; _altitude = 0; };
|
||||
if (_map in ["zargabad"]) then { _lat = 35; _altitude = 2000; };
|
||||
|
||||
private _UTM = [_long,_lat] call BIS_fnc_posDegToUTM;
|
||||
private _easting = _UTM select 0;
|
||||
|
@ -18,7 +18,7 @@ private _muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles")
|
||||
|
||||
{
|
||||
if (_x == "this") then {
|
||||
_muzzles set [_forEachIndex, _weapon];
|
||||
_muzzles set [_forEachIndex, configName (configFile >> "CfgWeapons" >> _weapon)];
|
||||
};
|
||||
} forEach _muzzles;
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Arguments:
|
||||
* 0: unit <OBJECT>
|
||||
* 1: weapon <STRING>
|
||||
* 1: weapon (optional, default: units current weapon) <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* 0: Attachements <ARRAY>
|
||||
@ -16,21 +16,19 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit", "_weapon"];
|
||||
params [["_unit", objNull, [objNull]], ["_weapon", nil, [""]]];
|
||||
|
||||
if (isNil "_weapon") then {
|
||||
_weapon = currentWeapon _unit;
|
||||
};
|
||||
|
||||
private _attachments = [_unit weaponAccessories _weapon] param [0, ["","","",""]];
|
||||
|
||||
private _muzzles = _weapon call FUNC(getWeaponMuzzles);
|
||||
|
||||
private _weaponInfo = [["","","",""], primaryWeaponItems _unit, secondaryWeaponItems _unit, handgunItems _unit] select ((["", primaryWeapon _unit, secondaryWeapon _unit, handgunWeapon _unit] find _weapon) max 0);
|
||||
|
||||
// get loaded magazines and ammo
|
||||
private _magazines = [];
|
||||
private _ammo = [];
|
||||
|
||||
{
|
||||
_magazines pushBack "";
|
||||
_ammo pushBack 0;
|
||||
false
|
||||
} count _muzzles;
|
||||
private _magazines = _muzzles apply {""};
|
||||
private _ammo = _muzzles apply {0};
|
||||
|
||||
{
|
||||
if (_x select 2) then {
|
||||
@ -44,6 +42,4 @@ private _ammo = [];
|
||||
false
|
||||
} count magazinesAmmoFull _unit;
|
||||
|
||||
_weaponInfo append [_muzzles, _magazines, _ammo];
|
||||
|
||||
_weaponInfo
|
||||
[_attachments, _muzzles, _magazines, _ammo];
|
||||
|
19
addons/common/functions/fnc_handleEngine.sqf
Normal file
19
addons/common/functions/fnc_handleEngine.sqf
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Blocks turning on the vehicles engine if set by the status effect handler.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: Engine state <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
params ["_vehicle", "_engineOn"];
|
||||
|
||||
if (local _vehicle && {_engineOn} && {_vehicle getVariable [QGVAR(blockEngine), false]}) then {
|
||||
_vehicle engineOn false;
|
||||
};
|
@ -34,7 +34,7 @@ createDialog QGVAR(ProgressBar_Dialog);
|
||||
|
||||
//Adjust position based on user setting:
|
||||
private _ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBarTitle));
|
||||
_ctrlPos set [1, ((0 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
|
||||
_ctrlPos set [1, ((0 + 29 * GVAR(settingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
|
||||
|
||||
(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlSetPosition _ctrlPos;
|
||||
(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlCommit 0;
|
||||
|
@ -18,6 +18,8 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
ACE_DEPRECATED("ace_common_fnc_setAllGear","3.7.0","setUnitLoadout");
|
||||
|
||||
params ["_unit", "_allGear", ["_clearAttachments", false], ["_clearBackpack", false]];
|
||||
|
||||
if (!local _unit) exitWith {
|
||||
|
@ -54,5 +54,5 @@ private _lowestVolume = 1;
|
||||
0 fadeMusic _lowestVolume;
|
||||
|
||||
// Set Radio mod variables.
|
||||
player setVariable ["tf_globalVolume", _lowestVolume];
|
||||
ACE_player setVariable ["tf_globalVolume", _lowestVolume];
|
||||
if (!isNil "acre_api_fnc_setGlobalVolume") then { [_lowestVolume^0.33] call acre_api_fnc_setGlobalVolume; };
|
||||
|
@ -37,7 +37,7 @@ _conditonCode = {
|
||||
_toggleCode = {
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {};
|
||||
|
||||
|
||||
// Statement
|
||||
[] call FUNC(toggleOverlay);
|
||||
if (!GVAR(run)) then {
|
||||
|
@ -1 +0,0 @@
|
||||
z\ace\addons\difficulties
|
@ -1,33 +0,0 @@
|
||||
|
||||
class CfgDifficulties {
|
||||
class Mercenary {
|
||||
class Flags {
|
||||
armor[] = {0,0};
|
||||
friendlyTag[] = {0,0};
|
||||
enemyTag[] = {0,0};
|
||||
mineTag[] = {0,0};
|
||||
hud[] = {0,1};//{1,1};
|
||||
hudPerm[] = {0,0};
|
||||
hudWp[] = {0,0};
|
||||
hudWpPerm[] = {0,0};
|
||||
autoSpot[] = {0,1};
|
||||
map[] = {0,0};
|
||||
weaponCursor[] = {0,1};//{1,1};
|
||||
autoGuideAT[] = {0,0};
|
||||
clockIndicator[] = {0,0};
|
||||
3rdPersonView[] = {0,0};
|
||||
autoAim[] = {0,0};
|
||||
unlimitedSaves[] = {0,0};
|
||||
deathMessages[] = {0,1};//{1,1};
|
||||
netStats[] = {0,1};//{1,1};
|
||||
vonID[] = {0,1};
|
||||
cameraShake[] = {1,0};
|
||||
hudGroupInfo[] = {0,0};
|
||||
extendetInfoType[] = {0,0};
|
||||
roughLanding[] = {0,0};
|
||||
windEnabled[] = {1,0};
|
||||
autoTrimEnabled[] = {0,0};
|
||||
stressDamageEnabled[] = {1,0};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,15 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"commy2"};
|
||||
authorUrl = "https://github.com/commy2/";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgDifficulties.hpp"
|
@ -1,17 +0,0 @@
|
||||
#define COMPONENT difficulties
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_DIFFICULTIES
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_ENABLED_DIFFICULTIES
|
||||
#define DEBUG_SETTINGS DEBUG_ENABLED_DIFFICULTIES
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -90,7 +90,7 @@ class CfgVehicles {
|
||||
GVAR(canCarry) = 0;
|
||||
GVAR(canDrag) = 0;
|
||||
};
|
||||
|
||||
|
||||
//Plastic and metal case
|
||||
class PlasticCase_01_base_F: Items_base_F {
|
||||
class EventHandlers {
|
||||
@ -116,7 +116,7 @@ class CfgVehicles {
|
||||
GVAR(dragPosition[]) = {0,1.2,0};
|
||||
GVAR(dragDirection) = 0;
|
||||
};
|
||||
|
||||
|
||||
// Barrier
|
||||
class RoadCone_F: ThingX {
|
||||
class EventHandlers {
|
||||
|
BIN
addons/dragging/UI/icons/box_carry.paa
Normal file
BIN
addons/dragging/UI/icons/box_carry.paa
Normal file
Binary file not shown.
BIN
addons/dragging/UI/icons/box_drag.paa
Normal file
BIN
addons/dragging/UI/icons/box_drag.paa
Normal file
Binary file not shown.
BIN
addons/dragging/UI/icons/person_carry.paa
Normal file
BIN
addons/dragging/UI/icons/person_carry.paa
Normal file
Binary file not shown.
BIN
addons/dragging/UI/icons/person_drag.paa
Normal file
BIN
addons/dragging/UI/icons/person_drag.paa
Normal file
Binary file not shown.
@ -43,7 +43,9 @@ if (_type in _initializedClasses) exitWith {};
|
||||
_initializedClasses pushBack _type;
|
||||
GVAR(initializedClasses_carry) = _initializedClasses;
|
||||
|
||||
private _carryAction = [QGVAR(carry), localize LSTRING(Carry), "", {[_player, _target] call FUNC(startCarry)}, {[_player, _target] call FUNC(canCarry)}] call EFUNC(interact_menu,createAction);
|
||||
private _icon = [QUOTE(PATHTOF(UI\icons\box_carry.paa)), QUOTE(PATHTOF(UI\icons\person_carry.paa))] select (_object isKindOf "Man");
|
||||
|
||||
private _carryAction = [QGVAR(carry), localize LSTRING(Carry), _icon, {[_player, _target] call FUNC(startCarry)}, {[_player, _target] call FUNC(canCarry)}] call EFUNC(interact_menu,createAction);
|
||||
private _dropAction = [QGVAR(drop_carry), localize LSTRING(Drop), "", {[_player, _target] call FUNC(dropObject_carry)}, {[_player, _target] call FUNC(canDrop_carry)}] call EFUNC(interact_menu,createAction);
|
||||
|
||||
[_type, 0, ["ACE_MainActions"], _carryAction] call EFUNC(interact_menu,addActionToClass);
|
||||
|
@ -44,7 +44,9 @@ if (_type in _initializedClasses) exitWith {};
|
||||
_initializedClasses pushBack _type;
|
||||
GVAR(initializedClasses) = _initializedClasses;
|
||||
|
||||
private _dragAction = [QGVAR(drag), localize LSTRING(Drag), "", {[_player, _target] call FUNC(startDrag)}, {[_player, _target] call FUNC(canDrag)}] call EFUNC(interact_menu,createAction);
|
||||
private _icon = [QUOTE(PATHTOF(UI\icons\box_drag.paa)), QUOTE(PATHTOF(UI\icons\person_drag.paa))] select (_object isKindOf "Man");
|
||||
|
||||
private _dragAction = [QGVAR(drag), localize LSTRING(Drag), _icon, {[_player, _target] call FUNC(startDrag)}, {[_player, _target] call FUNC(canDrag)}] call EFUNC(interact_menu,createAction);
|
||||
private _dropAction = [QGVAR(drop), localize LSTRING(Drop), "", {[_player, _target] call FUNC(dropObject)}, {[_player, _target] call FUNC(canDrop)}] call EFUNC(interact_menu,createAction);
|
||||
|
||||
[_type, 0, ["ACE_MainActions"], _dragAction] call EFUNC(interact_menu,addActionToClass);
|
||||
|
@ -1,17 +1,17 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(RequireSpecialist) {
|
||||
class GVAR(requireSpecialist) {
|
||||
displayName = CSTRING(RequireSpecialist_DisplayName);
|
||||
description = CSTRING(RequireSpecialist_Description);
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
};
|
||||
class GVAR(PunishNonSpecialists) {
|
||||
class GVAR(punishNonSpecialists) {
|
||||
displayName = CSTRING(PunishNonSpecialists_DisplayName);
|
||||
description = CSTRING(PunishNonSpecialists_Description);
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
};
|
||||
class GVAR(ExplodeOnDefuse) {
|
||||
class GVAR(explodeOnDefuse) {
|
||||
displayName = CSTRING(ExplodeOnDefuse_DisplayName);
|
||||
description = CSTRING(ExplodeOnDefuse_Description);
|
||||
value = 1;
|
||||
|
@ -27,18 +27,7 @@ if (isServer) then {
|
||||
TRACE_1("Knocked Out, Doing Deadman", _unit);
|
||||
[_unit] call FUNC(onIncapacitated);
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
};
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
GVAR(PlacedCount) = 0;
|
||||
GVAR(Setup) = objNull;
|
||||
GVAR(pfeh_running) = false;
|
||||
GVAR(CurrentSpeedDial) = 0;
|
||||
|
||||
// In case we are a JIP client, ask the server for orientation of any previously
|
||||
// placed mine.
|
||||
if (isServer) then {
|
||||
["clientRequestsOrientations", {
|
||||
params ["_logic"];
|
||||
TRACE_1("clientRequestsOrientations received:",_logic);
|
||||
@ -50,7 +39,18 @@ if (isServer) then {
|
||||
TRACE_1("serverSendsOrientations sent:",GVAR(explosivesOrientations));
|
||||
["serverSendsOrientations", _logic, [GVAR(explosivesOrientations)]] call EFUNC(common,targetEvent);
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
} else {
|
||||
};
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
GVAR(PlacedCount) = 0;
|
||||
GVAR(Setup) = objNull;
|
||||
GVAR(pfeh_running) = false;
|
||||
GVAR(CurrentSpeedDial) = 0;
|
||||
|
||||
// In case we are a JIP client, ask the server for orientation of any previously
|
||||
// placed mine.
|
||||
if (didJIP) then {
|
||||
["serverSendsOrientations", {
|
||||
params ["_explosivesOrientations"];
|
||||
TRACE_1("serverSendsOrientations received:",_explosivesOrientations);
|
||||
@ -59,14 +59,12 @@ if (isServer) then {
|
||||
TRACE_3("orientation set:",_explosive,_direction,_pitch);
|
||||
[_explosive, _direction, _pitch] call FUNC(setPosition);
|
||||
} forEach _explosivesOrientations;
|
||||
private _group = group GVAR(localLogic);
|
||||
deleteVehicle GVAR(localLogic);
|
||||
GVAR(localLogic) = nil;
|
||||
deleteGroup _group;
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
// Create a logic to get the client ID
|
||||
GVAR(localLogic) = (createGroup sideLogic) createUnit ["Logic", [0,0,0], [], 0, "NONE"];
|
||||
GVAR(localLogic) = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["Logic", [0,0,0], [], 0, "NONE"];
|
||||
TRACE_1("clientRequestsOrientations sent:",GVAR(localLogic));
|
||||
["clientRequestsOrientations", [GVAR(localLogic)]] call EFUNC(common,serverEvent);
|
||||
};
|
||||
|
@ -14,8 +14,7 @@
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "script_component.hpp"
|
||||
private ["_speedDial", "_amount"];
|
||||
|
||||
_speedDial = ace_player getVariable [QGVAR(SpeedDial), []];
|
||||
|
@ -1 +1 @@
|
||||
z\ace\addons\fastroping
|
||||
z\ace\addons\fastroping
|
||||
|
12
addons/fastroping/CfgSounds.hpp
Normal file
12
addons/fastroping/CfgSounds.hpp
Normal file
@ -0,0 +1,12 @@
|
||||
class CfgSounds {
|
||||
class GVAR(Rope) {
|
||||
name = "ACE_Fastroping_Rope";
|
||||
sound[] = {QUOTE(PATHTOF(data\sounds\fastroping_rope.ogg)), 10, 1.0};
|
||||
titles[] = {};
|
||||
};
|
||||
class GVAR(Thud) {
|
||||
name = "ACE_Fastroping_Thud";
|
||||
sound[] = {QUOTE(PATHTOF(data\sounds\fastroping_thud.ogg)), 10, 1.0};
|
||||
titles[] = {};
|
||||
};
|
||||
};
|
@ -1,12 +1,11 @@
|
||||
ace_difficulties
|
||||
================
|
||||
|
||||
Changes the elite difficulty setting to more closely resemble Arma 2.
|
||||
ace_fastroping
|
||||
==========
|
||||
|
||||
Introducing the ability to fastrope out of heliocopters.
|
||||
|
||||
## Maintainers
|
||||
|
||||
The people responsible for merging changes to this component or answering potential questions.
|
||||
|
||||
- [BaerMitUmlaut](https://github.com/BaerMitUmlaut)
|
||||
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
|
||||
- [commy2](https://github.com/commy2)
|
@ -14,5 +14,6 @@ class CfgPatches {
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgMoves.hpp"
|
||||
#include "CfgSounds.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "CfgWaypoints.hpp"
|
||||
|
6
addons/fastroping/data/sounds/LICENSE.md
Normal file
6
addons/fastroping/data/sounds/LICENSE.md
Normal file
@ -0,0 +1,6 @@
|
||||
Source sounds are adapted and changed.
|
||||
|
||||
**Fastroping_Rope (fastroping_rope.ogg):**
|
||||
"[Rub.aif](http://freesound.org/people/le_abbaye_Noirlac/sounds/129471/)" by [Tessa Elieff](http://freesound.org/people/le_abbaye_Noirlac/) is [CreativeCommons Attributions 3.0](http://creativecommons.org/licenses/by/3.0/)
|
||||
|
||||
All other sounds from helenacm and Adam_N, both under Creative Commons 0 (no attribution required).
|
BIN
addons/fastroping/data/sounds/fastroping_rope.ogg
Normal file
BIN
addons/fastroping/data/sounds/fastroping_rope.ogg
Normal file
Binary file not shown.
BIN
addons/fastroping/data/sounds/fastroping_thud.ogg
Normal file
BIN
addons/fastroping/data/sounds/fastroping_thud.ogg
Normal file
Binary file not shown.
@ -35,6 +35,6 @@ _deployedRopes set [_usableRopeIndex, _usableRope];
|
||||
_vehicle setVariable [QGVAR(deployedRopes), _deployedRopes, true];
|
||||
|
||||
//Start server PFH asap
|
||||
[QGVAR(startFastRope), [_unit, _vehicle, _usableRope, _usableRopeIndex]] call EFUNC(common,serverEvent);
|
||||
[QGVAR(startFastRope), [_unit, _vehicle, _usableRope, _usableRopeIndex, false]] call EFUNC(common,serverEvent);
|
||||
moveOut _unit;
|
||||
[FUNC(fastRopeLocalPFH), 0, [_unit, _vehicle, _usableRope, _usableRopeIndex]] call CBA_fnc_addPerFrameHandler;
|
||||
[FUNC(fastRopeLocalPFH), 0, [_unit, _vehicle, _usableRope, _usableRopeIndex, ACE_diagTime]] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
params ["_arguments", "_pfhHandle"];
|
||||
_arguments params ["_unit", "_vehicle", "_rope", "_ropeIndex"];
|
||||
_arguments params ["_unit", "_vehicle", "_rope", "_ropeIndex", "_timeToPlayRopeSound"];
|
||||
_rope params ["_attachmentPoint", "_ropeTop", "_ropeBottom", "_dummy", "_hook", "_occupied"];
|
||||
private ["_vectorUp", "_vectorDir", "_origin"];
|
||||
|
||||
@ -31,10 +31,19 @@ if (animationState _unit != "ACE_FastRoping") exitWith {
|
||||
[_unit, "ACE_FastRoping", 2] call EFUNC(common,doAnimation);
|
||||
};
|
||||
|
||||
|
||||
//End of fast rope
|
||||
if (isNull attachedTo _unit) exitWith {
|
||||
TRACE_1("exit pfeh",_unit);
|
||||
[_unit, "", 2] call EFUNC(common,doAnimation);
|
||||
_unit setVectorUp [0, 0, 1];
|
||||
|
||||
playSound QGVAR(Thud);
|
||||
|
||||
[_pfhHandle] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
if (ACE_diagTime > _timeToPlayRopeSound) then {
|
||||
_arguments set [4, (_timeToPlayRopeSound + 1)];
|
||||
playSound QGVAR(Rope);
|
||||
};
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
params ["_arguments", "_pfhHandle"];
|
||||
_arguments params ["_unit", "_vehicle", "_rope", "_ropeIndex"];
|
||||
_arguments params ["_unit", "_vehicle", "_rope", "_ropeIndex", "_hasBeenAttached"];
|
||||
_rope params ["_attachmentPoint", "_ropeTop", "_ropeBottom", "_dummy", "_hook", "_occupied"];
|
||||
private ["_vectorUp", "_vectorDir", "_origin"];
|
||||
|
||||
@ -37,10 +37,15 @@ if (getMass _dummy != 80) exitWith {
|
||||
ropeUnwind [_ropeBottom, 6, 0.5];
|
||||
};
|
||||
|
||||
//Check if rope broke and unit is falling
|
||||
//Check if the player has been attached to the rope yet
|
||||
if (!_hasBeenAttached && {!(isNull attachedTo _unit)}) then {
|
||||
_hasBeenAttached = true;
|
||||
_arguments set [4, true];
|
||||
};
|
||||
|
||||
//Exit when the unit has been detached and is falling (rope broke, heli flew too fast, etc.)
|
||||
//Make sure this isn't executed before the unit is actually fastroping
|
||||
//Note: Stretching ropes does not change ropeLength
|
||||
if ((isNull attachedTo _unit) && {ropeLength _ropeTop > 0.5}) exitWith {
|
||||
if (_hasBeenAttached && {isNull attachedTo _unit}) exitWith {
|
||||
[_pfhHandle] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
|
@ -11,7 +11,7 @@ GVAR(pfeh_id) = -1;
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
|
||||
[QGVAR(fingered), {_this call FUNC(incomingFinger)}] call EFUNC(common,addEventHandler);
|
||||
|
||||
|
||||
["ACE3 Common",
|
||||
QGVAR(finger),
|
||||
[(localize LSTRING(keyComb)), (localize LSTRING(keyComb_description))],
|
||||
|
@ -1,19 +1,19 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(Enabled) {
|
||||
class GVAR(enabled) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
displayName = CSTRING(EnableFrag);
|
||||
description = CSTRING(EnableFrag_Desc);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(SpallEnabled) {
|
||||
class GVAR(spallEnabled) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
displayName = CSTRING(EnableSpall);
|
||||
description = CSTRING(EnableSpall_Desc);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(ReflectionsEnabled) {
|
||||
class GVAR(reflectionsEnabled) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
displayName = CSTRING(EnableReflections);
|
||||
description = CSTRING(EnableReflections_Desc);
|
||||
@ -27,7 +27,7 @@ class ACE_Settings {
|
||||
typeName = "SCALAR";
|
||||
value = 500;
|
||||
};
|
||||
class GVAR(MaxTrackPerFrame) {
|
||||
class GVAR(maxTrackPerFrame) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
displayName = CSTRING(MaxTrackPerFrame);
|
||||
description = CSTRING(MaxTrackPerFrame_Desc);
|
||||
@ -35,7 +35,7 @@ class ACE_Settings {
|
||||
value = 50;
|
||||
};
|
||||
|
||||
class GVAR(EnableDebugTrace) {
|
||||
class GVAR(enableDebugTrace) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
displayName = CSTRING(EnableDebugTrace);
|
||||
description = CSTRING(EnableDebugTrace_Desc);
|
||||
|
@ -8,11 +8,11 @@ class CfgAmmo {
|
||||
//class ace_arty_105mm_m1_m782_delay: ace_arty_105mm_m1_m782_prox {
|
||||
// GVAR(skip) = 1;
|
||||
//};
|
||||
|
||||
|
||||
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;
|
||||
@ -27,7 +27,7 @@ class CfgAmmo {
|
||||
class Grenade;
|
||||
class GrenadeHand: Grenade {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
|
||||
GVAR(skip) = 0;
|
||||
GVAR(force) = 1;
|
||||
// This is a good high-drag frag type for grenades.
|
||||
@ -52,7 +52,7 @@ class CfgAmmo {
|
||||
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;
|
||||
@ -74,18 +74,19 @@ 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;
|
||||
GVAR(gurney_c) = 2320;
|
||||
GVAR(gurney_k) = 1/2;
|
||||
};
|
||||
|
||||
|
||||
class G_40mm_HE: GrenadeBase {
|
||||
// Source: http://www.inetres.com/gp/military/infantry/grenade/40mm_ammo.html#M441
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
GVAR(force) = 1;
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_tiny_HD"};
|
||||
GVAR(metal) = 200;
|
||||
GVAR(charge) = 32;
|
||||
@ -95,20 +96,21 @@ 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;
|
||||
GVAR(gurney_c) = 2830;
|
||||
GVAR(gurney_k) = 1/2;
|
||||
};
|
||||
|
||||
|
||||
class ACE_G_40mm_HEDP: G_40mm_HEDP {
|
||||
};
|
||||
class ACE_G_40mm_HE: G_40mm_HE {
|
||||
};
|
||||
class ACE_G_40mm_Practice: ACE_G_40mm_HE {
|
||||
GVAR(skip) = 1;
|
||||
GVAR(force) = 0;
|
||||
};
|
||||
class ACE_G40mm_HE_VOG25P: G_40mm_HE {
|
||||
GVAR(skip) = 0;
|
||||
@ -121,7 +123,7 @@ class CfgAmmo {
|
||||
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;
|
||||
@ -131,7 +133,7 @@ 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;
|
||||
@ -140,7 +142,7 @@ class CfgAmmo {
|
||||
};
|
||||
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;
|
||||
@ -149,7 +151,7 @@ class CfgAmmo {
|
||||
};
|
||||
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;
|
||||
@ -158,7 +160,7 @@ class CfgAmmo {
|
||||
};
|
||||
class Sh_120mm_HE : ShellBase {
|
||||
GVAR(enabled) = 1;
|
||||
|
||||
|
||||
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
|
||||
GVAR(metal) = 23000;
|
||||
GVAR(charge) = 3148;
|
||||
@ -167,7 +169,7 @@ class CfgAmmo {
|
||||
};
|
||||
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;
|
||||
@ -176,7 +178,7 @@ class CfgAmmo {
|
||||
};
|
||||
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;
|
||||
@ -203,7 +205,7 @@ class CfgAmmo {
|
||||
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;
|
||||
@ -213,7 +215,7 @@ 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;
|
||||
@ -471,6 +473,6 @@ class CfgAmmo {
|
||||
class ACE_frag_spall_huge: ACE_frag_huge {
|
||||
timeToLive = 0.3;
|
||||
};
|
||||
|
||||
|
||||
#include "CfgAmmoReflections.hpp"
|
||||
};
|
||||
|
@ -1,3 +1,4 @@
|
||||
PREP(dev_debugAmmo);
|
||||
|
||||
PREP(doSpall);
|
||||
PREP(fired);
|
||||
|
62
addons/frag/functions/fnc_dev_debugAmmo.sqf
Normal file
62
addons/frag/functions/fnc_dev_debugAmmo.sqf
Normal file
@ -0,0 +1,62 @@
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
params [["_debugMissing", true, [false]], ["_debugForce", false, [false]], ["_debugNonFrag", false, [false]]];
|
||||
|
||||
diag_log text format ["~~~~~~~~~~~~~Start [%1]~~~~~~~~~~~~~", _this];
|
||||
|
||||
private _allMagsConfigs = configProperties [configFile >> "CfgMagazines", "isClass _x", true];
|
||||
private _processedCfgAmmos = [];
|
||||
|
||||
{
|
||||
private _ammo = toLower getText (_x >> "ammo");
|
||||
if ((_ammo != "") && {!(_ammo in _processedCfgAmmos)}) then {
|
||||
_processedCfgAmmos pushBack _ammo;
|
||||
|
||||
//Ignore mines/bombs
|
||||
if (_ammo isKindOf "TimeBombCore") exitWith {};
|
||||
|
||||
_ammoConfig = configFile >> "CfgAmmo" >> _ammo;
|
||||
|
||||
//Read configs and test if it would actually cause a frag, using same logic as FUNC(pfhRound)
|
||||
private _skip = getNumber (_ammoConfig >> QGVAR(skip));
|
||||
private _explosive = getNumber (_ammoConfig >> "explosive");
|
||||
private _indirectRange = getNumber (_ammoConfig >> "indirectHitRange");
|
||||
private _force = getNumber (_ammoConfig >> QGVAR(force));
|
||||
private _fragPower = getNumber(_ammoConfig >> "indirecthit")*(sqrt((getNumber (_ammoConfig >> "indirectHitRange"))));
|
||||
|
||||
private _shouldAdd = (_skip == 0) && {(_force == 1) || {_explosive > 0.5 && {_indirectRange >= 4.5} && {_fragPower >= 35}}};
|
||||
|
||||
if (_shouldAdd) then {
|
||||
if (_debugForce && {((getNumber(_ammoConfig >> "hit")) < 5) || {_fragPower < 10}}) then {
|
||||
diag_log text format ["Ammo [%1] from Mag [%2] - Weak but will still frag!",_ammo,configName _x];
|
||||
diag_log text format [" - _force=%1,_fragPower=%2",_force,_fragPower];
|
||||
};
|
||||
|
||||
_warn = false;
|
||||
|
||||
_fragTypes = getArray (_ammoConfig >> "ACE_frag_CLASSES");
|
||||
if(_fragTypes isEqualTo []) then {_warn = true;};
|
||||
_c = getNumber(_ammoConfig >> "ACE_frag_CHARGE");
|
||||
if(_c == 0) then {_warn = true;};
|
||||
_m = getNumber(_ammoConfig >> "ACE_frag_METAL");
|
||||
if(_m == 0) then {_warn = true;};
|
||||
_k = getNumber(_ammoConfig >> "ACE_frag_GURNEY_K");
|
||||
if(_k == 0) then {_warn = true;};
|
||||
_gC = getNumber(_ammoConfig >> "ACE_frag_GURNEY_C");
|
||||
if(_gC == 0) then { _warn = true;};
|
||||
|
||||
if(_debugMissing && _warn) then {
|
||||
diag_log text format ["Ammo [%1] from Mag [%2] MISSING frag configs:",_ammo,configName _x];
|
||||
diag_log text format [" - _c=%1,_m=%2,_k=%3,_gC=%4,_fragTypes=%5",_c,_m,_k,_gC,_fragTypes];
|
||||
};
|
||||
} else {
|
||||
if (_debugNonFrag && {isArray (_ammoConfig >> "ACE_frag_CLASSES")}) then {
|
||||
diag_log text format ["Ammo [%1] from Mag [%2] has frag configs but will NOT frag:",_ammo,configName _x];
|
||||
diag_log text format ["- skip=%1,explosive=%2,indirectHitRange=%3,force=%4,fragPower=%5",_skip,_explosive,_indirectRange,_force,_fragPower];
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach _allMagsConfigs;
|
||||
|
||||
diag_log text format ["~~~~~~~~~~~~~End [%1-%2]~~~~~~~~~~~~~", count _allMagsConfigs, count _processedCfgAmmos];
|
@ -13,10 +13,6 @@ if(count _this > 2) then {
|
||||
if(_depth <= 2) then {
|
||||
_indirectHitRange = getNumber(configFile >> "CfgAmmo" >> _ammo >> "indirectHitRange");
|
||||
_indirectHit = getNumber(configFile >> "CfgAmmo" >> _ammo >> "indirectHit");
|
||||
|
||||
|
||||
|
||||
|
||||
_testParams = [_pos, [_indirectHitRange, _indirectHit], [], [], -4, _depth, 0];
|
||||
[DFUNC(findReflections), 0, _testParams] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
@ -18,12 +18,11 @@ private ["_color", "_index", "_lastPos", "_lastSpd", "_max", "_positions", "_sta
|
||||
} else {
|
||||
_data2 = _positions select (_index + ACE_TRACE_DRAW_INC);
|
||||
};
|
||||
|
||||
|
||||
_pos1 = _data1 select 0;
|
||||
_pos2 = _data2 select 0;
|
||||
_index = _index + ACE_TRACE_DRAW_INC;
|
||||
|
||||
|
||||
|
||||
drawLine3D [_pos1, _pos2, _color];
|
||||
_lastPos = _pos2;
|
||||
_lastSpd = _data1 select 1;
|
||||
|
@ -14,7 +14,7 @@
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
|
||||
TRACE_1("params",_this);
|
||||
|
||||
if (!GVAR(ReloadMutex)) exitWith {false};
|
||||
|
@ -1,6 +1,6 @@
|
||||
class RscTitles{
|
||||
#include "define.hpp"
|
||||
|
||||
|
||||
class RscACE_Goggles_BaseTitle{
|
||||
idd = -1;
|
||||
onLoad = "uiNamespace setVariable ['ACE_Goggles_Display', _this select 0]";
|
||||
@ -9,25 +9,25 @@ class RscTitles{
|
||||
fadeOut=0.5;
|
||||
movingEnable = false;
|
||||
duration = 10e10;
|
||||
name = "RscACE_Goggles_BaseTitle";
|
||||
name = "RscACE_Goggles_BaseTitle";
|
||||
class controls;
|
||||
};
|
||||
|
||||
|
||||
class RscACE_Goggles:RscACE_Goggles_BaseTitle{
|
||||
idd = 1044;
|
||||
name = "RscACE_Goggles";
|
||||
name = "RscACE_Goggles";
|
||||
class controls{
|
||||
class gogglesImage: RscPicture{
|
||||
idc = 10650;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class RscACE_GogglesEffects:RscACE_Goggles_BaseTitle{
|
||||
idd = 1045;
|
||||
onLoad = "uiNamespace setVariable ['ACE_Goggles_DisplayEffects', _this select 0]";
|
||||
onUnload = "uiNamespace setVariable ['ACE_Goggles_DisplayEffects', displayNull]";
|
||||
name = "RscACE_GogglesEffects";
|
||||
name = "RscACE_GogglesEffects";
|
||||
fadeIn=0;
|
||||
fadeOut=0.5;
|
||||
class controls{
|
||||
@ -39,4 +39,4 @@ class RscTitles{
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -42,13 +42,15 @@ GVAR(surfaceCache) = "";
|
||||
GVAR(surfaceCacheIsDust) = false;
|
||||
|
||||
// init GlassesChanged eventhandler
|
||||
GVAR(OldGlasses) = "#NULLSTRING";
|
||||
GVAR(OldGlasses) = "<null>";
|
||||
|
||||
["playerInventoryChanged", {
|
||||
(_this select 1) params ["", "_currentGlasses"];
|
||||
params ["_unit"];
|
||||
|
||||
private _currentGlasses = goggles _unit;
|
||||
|
||||
if (GVAR(OldGlasses) != _currentGlasses) then {
|
||||
["GlassesChanged", [ACE_player, _currentGlasses]] call EFUNC(common,localEvent);
|
||||
["GlassesChanged", [_unit, _currentGlasses]] call EFUNC(common,localEvent);
|
||||
GVAR(OldGlasses) = _currentGlasses;
|
||||
};
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
@ -1,22 +1,22 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(EnableCombatDeafness) {
|
||||
class GVAR(enableCombatDeafness) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
displayName = CSTRING(EnableCombatDeafness_DisplayName);
|
||||
description = CSTRING(EnableCombatDeafness_Description);
|
||||
};
|
||||
class GVAR(EarplugsVolume) {
|
||||
class GVAR(earplugsVolume) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
value = 0.5;
|
||||
typeName = "SCALAR";
|
||||
};
|
||||
class GVAR(UnconsciousnessVolume) {
|
||||
class GVAR(unconsciousnessVolume) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
value = 0.4;
|
||||
typeName = "SCALAR";
|
||||
};
|
||||
class GVAR(DisableEarRinging) {
|
||||
class GVAR(disableEarRinging) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
|
@ -6,7 +6,7 @@ class CfgAmmo {
|
||||
smokeColor[] = {0, 0, 0, 0};
|
||||
timeToLive = 6;
|
||||
};
|
||||
|
||||
|
||||
class ShellBase;
|
||||
class ACE_HuntIR_Propell: ShellBase {
|
||||
supersonicCrackNear[] = {"",0.316228,1,50};
|
||||
|
@ -2,7 +2,7 @@
|
||||
class CfgWeapons {
|
||||
class ACE_ItemCore;
|
||||
class InventoryItem_Base_F;
|
||||
|
||||
|
||||
class ACE_HuntIR_monitor: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = CSTRING(monitor_displayName);
|
||||
@ -14,7 +14,7 @@ class CfgWeapons {
|
||||
mass = 20;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class GrenadeLauncher;
|
||||
class UGL_F: GrenadeLauncher {
|
||||
magazines[] += {"ACE_HuntIR_M203"};
|
||||
@ -23,7 +23,7 @@ class CfgWeapons {
|
||||
//magazines[] += {"ACE_HuntIR_M203"};
|
||||
magazines[] = {"1Rnd_HE_Grenade_shell","UGL_FlareWhite_F","UGL_FlareGreen_F","UGL_FlareRed_F","UGL_FlareYellow_F","UGL_FlareCIR_F","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeRed_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeYellow_Grenade_shell","1Rnd_SmokePurple_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","3Rnd_HE_Grenade_shell","3Rnd_UGL_FlareWhite_F","3Rnd_UGL_FlareGreen_F","3Rnd_UGL_FlareRed_F","3Rnd_UGL_FlareYellow_F","3Rnd_UGL_FlareCIR_F","3Rnd_Smoke_Grenade_shell","3Rnd_SmokeRed_Grenade_shell","3Rnd_SmokeGreen_Grenade_shell","3Rnd_SmokeYellow_Grenade_shell","3Rnd_SmokePurple_Grenade_shell","3Rnd_SmokeBlue_Grenade_shell","3Rnd_SmokeOrange_Grenade_shell","ACE_HuntIR_M203"};
|
||||
};
|
||||
|
||||
|
||||
class Rifle_Base_F;
|
||||
class arifle_MX_Base_F: Rifle_Base_F {
|
||||
class GL_3GL_F: UGL_F {
|
||||
|
@ -1,5 +1,5 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(AlwaysUseCursorSelfInteraction) {
|
||||
class GVAR(alwaysUseCursorSelfInteraction) {
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
isClientSettable = 1;
|
||||
@ -14,14 +14,14 @@ class ACE_Settings {
|
||||
displayName = CSTRING(cursorKeepCentered);
|
||||
description = CSTRING(cursorKeepCenteredDescription);
|
||||
};
|
||||
class GVAR(AlwaysUseCursorInteraction) {
|
||||
class GVAR(alwaysUseCursorInteraction) {
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
isClientSettable = 1;
|
||||
category = CSTRING(Category_InteractionMenu);
|
||||
displayName = CSTRING(AlwaysUseCursorInteraction);
|
||||
};
|
||||
class GVAR(UseListMenu) {
|
||||
class GVAR(useListMenu) {
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
isClientSettable = 1;
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
class ACE_Settings {
|
||||
class GVAR(EnableTeamManagement) {
|
||||
class GVAR(enableTeamManagement) {
|
||||
displayName = CSTRING(EnableTeamManagement_DisplayName);
|
||||
description = CSTRING(EnableTeamManagement_Description);
|
||||
value = 1;
|
||||
|
@ -355,6 +355,32 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
|
||||
class Motorcycle: LandVehicle {
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
displayName = CSTRING(MainAction);
|
||||
selection = "";
|
||||
distance = 10;
|
||||
condition = "true";
|
||||
class ACE_Passengers {
|
||||
displayName = CSTRING(Passengers);
|
||||
condition = "true";
|
||||
statement = "";
|
||||
insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_SelfActions {
|
||||
class ACE_Passengers {
|
||||
displayName = CSTRING(Passengers);
|
||||
condition = "true";
|
||||
statement = "";
|
||||
insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Air;
|
||||
class Helicopter: Air {
|
||||
class ACE_Actions {
|
||||
@ -420,7 +446,7 @@ class CfgVehicles {
|
||||
class ACE_Push {
|
||||
displayName = CSTRING(Push);
|
||||
distance = 6;
|
||||
condition = QUOTE(getMass _target <= 2600 && {alive _target} && {vectorMagnitude velocity _target < 3});
|
||||
condition = QUOTE(_target call FUNC(canPush));
|
||||
statement = QUOTE(_this call FUNC(push));
|
||||
showDisabled = 0;
|
||||
priority = -1;
|
||||
@ -577,7 +603,7 @@ class CfgVehicles {
|
||||
class Land_PortableLight_double_off_F: Land_PortableLight_double_F {
|
||||
scope = 1;
|
||||
};
|
||||
|
||||
|
||||
class RoadCone_F: ThingX {
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
|
@ -32,6 +32,7 @@ PREP(handleScrollWheel);
|
||||
PREP(openDoor);
|
||||
|
||||
// interaction with boats
|
||||
PREP(canPush);
|
||||
PREP(push);
|
||||
|
||||
PREP(switchLamp);
|
||||
|
22
addons/interaction/functions/fnc_canPush.sqf
Normal file
22
addons/interaction/functions/fnc_canPush.sqf
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Checks if the boat can be pushed.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Target <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can Push <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [target] call ace_interaction_fnc_canPush
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_target"];
|
||||
|
||||
alive _target &&
|
||||
{getMass _target <= 2600 || getNumber (configFile >> "CfgVehicles" >> typeOf _target >> QGVAR(canPush)) == 1} &&
|
||||
{vectorMagnitude velocity _target < 3}
|
@ -18,8 +18,7 @@
|
||||
|
||||
params ["_boat", "_unit"];
|
||||
|
||||
private "_newVelocity";
|
||||
_newVelocity = vectorDir _unit;
|
||||
private _newVelocity = vectorDir _unit;
|
||||
_newVelocity set [2, 0.25];
|
||||
_newVelocity = _newVelocity vectorMultiply 2;
|
||||
|
||||
|
@ -28,7 +28,7 @@ _filter ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChanged)}];
|
||||
[{
|
||||
disableSerialization;
|
||||
params ["_filter"];
|
||||
|
||||
|
||||
// remove "All", so we can push it to the back later.
|
||||
// to keep localization we can keep the lbText (displayed name).
|
||||
private _index = lbSize _filter - 1;
|
||||
|
@ -10,7 +10,7 @@ class CfgMagazines {
|
||||
class Titan_AT: Titan_AA {
|
||||
ammo = "ACE_Javelin_FGM148"; //from misssileGuidance, was "M_Titan_AT"
|
||||
};
|
||||
|
||||
|
||||
//Handheld Titan "AP" Magazine (SACLOS? "Anti-personal")
|
||||
// class Titan_AP: Titan_AA {
|
||||
//???
|
||||
|
@ -3,20 +3,20 @@ class CfgVehicles {
|
||||
class StaticWeapon : LandVehicle {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
|
||||
class StaticMGWeapon : StaticWeapon {
|
||||
class Turrets : Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
class AT_01_base_F: StaticMGWeapon {};
|
||||
|
||||
|
||||
class B_static_AT_F: AT_01_base_F {
|
||||
class Turrets : Turrets {
|
||||
class MainTurret : MainTurret {
|
||||
weapons[] = { QGVAR(Titan_Static) };
|
||||
magazines[] = {"1Rnd_GAT_missiles","1Rnd_GAT_missiles","1Rnd_GAT_missiles","1Rnd_GAT_missiles"};
|
||||
|
||||
|
||||
turretInfoType = "ACE_RscOptics_javelin";
|
||||
gunnerOpticsModel = PATHTOF(data\reticle_titan.p3d);
|
||||
opticsZoomMin = 0.08333;
|
||||
@ -34,7 +34,7 @@ class CfgVehicles {
|
||||
class MainTurret : MainTurret {
|
||||
weapons[] = { QGVAR(Titan_Static) };
|
||||
magazines[] = {"1Rnd_GAT_missiles","1Rnd_GAT_missiles","1Rnd_GAT_missiles","1Rnd_GAT_missiles"};
|
||||
|
||||
|
||||
turretInfoType = "ACE_RscOptics_javelin";
|
||||
gunnerOpticsModel = PATHTOF(data\reticle_titan.p3d);
|
||||
opticsZoomMin = 0.08333;
|
||||
@ -52,7 +52,7 @@ class CfgVehicles {
|
||||
class MainTurret : MainTurret {
|
||||
weapons[] = { QGVAR(Titan_Static) };
|
||||
magazines[] = {"1Rnd_GAT_missiles","1Rnd_GAT_missiles","1Rnd_GAT_missiles","1Rnd_GAT_missiles"};
|
||||
|
||||
|
||||
turretInfoType = "ACE_RscOptics_javelin";
|
||||
gunnerOpticsModel = PATHTOF(data\reticle_titan.p3d);
|
||||
opticsZoomMin = 0.08333;
|
||||
@ -65,4 +65,4 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,38 +1,38 @@
|
||||
class CfgWeapons {
|
||||
class Launcher;
|
||||
class MissileLauncher;
|
||||
|
||||
|
||||
class Launcher_Base_F : Launcher {
|
||||
class WeaponSlotsInfo;
|
||||
class WeaponSlotsInfo;
|
||||
};
|
||||
|
||||
// @TODO: AA by default, motherfuckers
|
||||
class missiles_titan : MissileLauncher {
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
class missiles_titan_at : missiles_titan { };
|
||||
class GVAR(Titan_Static) : missiles_titan_at {
|
||||
class GVAR(Titan_Static) : missiles_titan_at {
|
||||
GVAR(enabled) = 1;
|
||||
weaponInfoType = "ACE_RscOptics_javelin";
|
||||
modelOptics = PATHTOF(data\reticle_titan.p3d);
|
||||
|
||||
|
||||
canLock = 0;
|
||||
magazines[] = {"1Rnd_GAT_missiles"};
|
||||
lockingTargetSound[] = {"",0,1};
|
||||
lockedTargetSound[] = {"",0,1};
|
||||
};
|
||||
|
||||
|
||||
// @TODO: AA by default, motherfuckers
|
||||
class launch_Titan_base : Launcher_Base_F {};
|
||||
|
||||
|
||||
class launch_Titan_short_base : launch_Titan_base { };
|
||||
|
||||
|
||||
class launch_B_Titan_short_F: launch_Titan_short_base {
|
||||
GVAR(enabled) = 1;
|
||||
weaponInfoType = "ACE_RscOptics_javelin";
|
||||
modelOptics = PATHTOF(data\reticle_titan.p3d);
|
||||
|
||||
|
||||
canLock = 0;
|
||||
|
||||
lockingTargetSound[] = {"",0,1};
|
||||
@ -42,7 +42,7 @@ class CfgWeapons {
|
||||
GVAR(enabled) = 1;
|
||||
weaponInfoType = "ACE_RscOptics_javelin";
|
||||
modelOptics = PATHTOF(data\reticle_titan.p3d);
|
||||
|
||||
|
||||
canLock = 0;
|
||||
|
||||
lockingTargetSound[] = {"",0,1};
|
||||
@ -52,10 +52,10 @@ class CfgWeapons {
|
||||
GVAR(enabled) = 1;
|
||||
weaponInfoType = "ACE_RscOptics_javelin";
|
||||
modelOptics = PATHTOF(data\reticle_titan.p3d);
|
||||
|
||||
|
||||
canLock = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
lockingTargetSound[] = {"",0,1};
|
||||
lockedTargetSound[] = {"",0,1};
|
||||
};
|
||||
@ -63,10 +63,10 @@ class CfgWeapons {
|
||||
GVAR(enabled) = 1;
|
||||
weaponInfoType = "ACE_RscOptics_javelin";
|
||||
modelOptics = PATHTOF(data\reticle_titan.p3d);
|
||||
|
||||
|
||||
canLock = 0;
|
||||
|
||||
lockingTargetSound[] = {"",0,1};
|
||||
lockedTargetSound[] = {"",0,1};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ class RscInGameUI {
|
||||
controls[] = { "ACE_javelin_elements_group", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
|
||||
onLoad = QUOTE(_this call FUNC(onOpticLoad));
|
||||
onUnload = QUOTE(_this call FUNC(onOpticUnload));
|
||||
|
||||
|
||||
class ACE_javelin_elements_group: RscControlsGroup
|
||||
{
|
||||
x = "SafezoneX";
|
||||
@ -44,7 +44,7 @@ class RscInGameUI {
|
||||
w = 0;
|
||||
h = 0;
|
||||
};
|
||||
|
||||
|
||||
class ACE_javelin_Day_mode_off: RscPicture {
|
||||
idc = 1001;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX";
|
||||
@ -123,7 +123,7 @@ class RscInGameUI {
|
||||
h = 0;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
};
|
||||
class CA_Javelin_NFOV_mode_off: ACE_javelin_Day_mode_off {
|
||||
@ -191,7 +191,7 @@ class RscInGameUI {
|
||||
h = "0.1895*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
@ -253,12 +253,12 @@ class RscInGameUI {
|
||||
};
|
||||
class ACE_Targeting : RscControlsGroup {
|
||||
idc = 6999;
|
||||
|
||||
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW";
|
||||
h = "SafezoneH";
|
||||
|
||||
|
||||
enabled = 0;
|
||||
class Controls {
|
||||
class ACE_TargetingConstrains: RscControlsGroup {
|
||||
@ -266,7 +266,7 @@ class RscInGameUI {
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW-SafezoneX";
|
||||
h = "SafezoneH-SafezoneY";
|
||||
|
||||
|
||||
enabled = 0;
|
||||
class VScrollbar {
|
||||
autoScrollSpeed = -1;
|
||||
@ -315,7 +315,7 @@ class RscInGameUI {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class ACE_TargetingGate : ACE_TargetingConstrains {
|
||||
idc = 699200;
|
||||
class Controls {
|
||||
@ -401,8 +401,8 @@ class RscInGameUI {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
class ACE_TargetingLines: ACE_TargetingConstrains {
|
||||
idc = 699300;
|
||||
class Controls {
|
||||
@ -451,4 +451,4 @@ ACE_Titan_TOP_off: 1006
|
||||
ACE_Titan_DIR: 1007
|
||||
ACE_Titan_FLTR_mode_off: 1002
|
||||
ACE_Titan_FLTR_mode: 161
|
||||
*/
|
||||
*/
|
||||
|
@ -5,7 +5,7 @@
|
||||
if (GVAR(Kestrel4500)) exitWith {
|
||||
closeDialog 0;
|
||||
false
|
||||
};
|
||||
};
|
||||
// Statement
|
||||
[] call FUNC(createKestrelDialog);
|
||||
false
|
||||
@ -17,7 +17,7 @@
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
|
||||
|
||||
// Statement
|
||||
[] call FUNC(displayKestrel);
|
||||
false
|
||||
@ -34,7 +34,7 @@ _conditonCode = {
|
||||
_toggleCode = {
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {};
|
||||
|
||||
|
||||
// Statement
|
||||
if (!GVAR(Overlay)) then {
|
||||
//If no overlay, show it:
|
||||
|
@ -6,20 +6,20 @@ class CfgVehicles {
|
||||
model = "\A3\Weapons_F\empty.p3d";
|
||||
destrType = "DestructNo";
|
||||
simulation = "LaserTarget";
|
||||
|
||||
|
||||
class EventHandlers {
|
||||
init = QUOTE(_this call FUNC(laser_init));
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// Visual laserTarget override
|
||||
class ACE_LaserTarget_Visual : LaserTarget {
|
||||
simulation = "LaserTarget";
|
||||
model = "\A3\Weapons_f\laserTgt.p3d";
|
||||
};
|
||||
|
||||
|
||||
// Vehicle lockable configurations
|
||||
|
||||
|
||||
class AllVehicles;
|
||||
class Air: AllVehicles {
|
||||
class Turrets;
|
||||
@ -42,4 +42,4 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,7 +1,6 @@
|
||||
|
||||
class CfgWeapons {
|
||||
class Binocular;
|
||||
|
||||
class Laserdesignator : Binocular {
|
||||
visionMode[] = {"Normal","NVG"};
|
||||
};
|
||||
|
@ -8,11 +8,10 @@ class RscInGameUI {
|
||||
class RscOptics_LaserDesignator {
|
||||
idd = 300;
|
||||
controls[] = {"CA_IGUI_elements_group"};
|
||||
|
||||
|
||||
onLoad = "uiNameSpace setVariable ['ACE_RscOptics_LaserDesignator',(_this select 0)];";
|
||||
onUnload = "uiNameSpace setVariable ['ACE_RscOptics_LaserDesignator',nil];";
|
||||
|
||||
|
||||
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
idc = 170;
|
||||
|
||||
@ -118,7 +117,7 @@ class RscInGameUI {
|
||||
w = "3.5 * (0.01875 * SafezoneH)";
|
||||
h = "1.6 * (0.025 * SafezoneH)";
|
||||
};
|
||||
|
||||
|
||||
class ACE_LaserCode_Helper : RscMapControl {
|
||||
idc = -1;
|
||||
onDraw = QUOTE(_this call FUNC(onLaserDesignatorDraw));
|
||||
@ -141,4 +140,4 @@ class RscInGameUI {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Return value:
|
||||
* None
|
||||
*/
|
||||
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_uuid"];
|
||||
|
@ -12,7 +12,7 @@ _uuid = _args select 2;
|
||||
if(isNull _laserTarget || !alive _shooter) exitWith {
|
||||
[(_this select 1)] call CBA_fnc_removePerFrameHandler;
|
||||
REM(GVAR(VanillaLasers), _laserTarget);
|
||||
|
||||
|
||||
// Remove laseron
|
||||
[_uuid] call FUNC(laserOff);
|
||||
};
|
||||
@ -28,4 +28,3 @@ drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa", [1,0,0,1], (A
|
||||
} forEach DRAW_LINES;
|
||||
DRAW_LINES = [];
|
||||
#endif
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user