mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'origin/master' into superTime
This commit is contained in:
@ -29,12 +29,14 @@ Walter Pearce <jaynus@gmail.com>
|
|||||||
ACCtomeek <tomeek99@gmail.com>
|
ACCtomeek <tomeek99@gmail.com>
|
||||||
Adanteh
|
Adanteh
|
||||||
aeroson
|
aeroson
|
||||||
|
alef <alefor@gmail.com>
|
||||||
Aggr094 <bastards4glory@gmail.com>
|
Aggr094 <bastards4glory@gmail.com>
|
||||||
Alganthe <alganthe@live.fr>
|
Alganthe <alganthe@live.fr>
|
||||||
Anthariel <Contact@storm-simulation.com>
|
Anthariel <Contact@storm-simulation.com>
|
||||||
BlackQwar
|
BlackQwar
|
||||||
Brakoviejo
|
Brakoviejo
|
||||||
Brisse <brisse@outlook.com>
|
Brisse <brisse@outlook.com>
|
||||||
|
BullHorn <bullhorn7@gmail.com>
|
||||||
Clon1998 <ps.patti1998@gmail.com>
|
Clon1998 <ps.patti1998@gmail.com>
|
||||||
Codingboy
|
Codingboy
|
||||||
Crusty
|
Crusty
|
||||||
@ -72,6 +74,7 @@ Raspu86
|
|||||||
Riccardo Petricca <petriccarcc@gmail.com>
|
Riccardo Petricca <petriccarcc@gmail.com>
|
||||||
Robert Boklahánics <bokirobi@gmail.com>
|
Robert Boklahánics <bokirobi@gmail.com>
|
||||||
ramius86 <pasini86@hotmail.com>
|
ramius86 <pasini86@hotmail.com>
|
||||||
|
SilentSpike <SilentSpike100@gmail.com>
|
||||||
simon84 <badguy360th@gmail.com>
|
simon84 <badguy360th@gmail.com>
|
||||||
Sniperwolf572 <tenga6@gmail.com>
|
Sniperwolf572 <tenga6@gmail.com>
|
||||||
Tachi <zaveruha007@gmail.com>
|
Tachi <zaveruha007@gmail.com>
|
||||||
@ -93,3 +96,6 @@ Bla1337
|
|||||||
nikolauska <nikolauska1@gmail.com>
|
nikolauska <nikolauska1@gmail.com>
|
||||||
adam3adam <br.ada@seznam.cz>
|
adam3adam <br.ada@seznam.cz>
|
||||||
Professor <lukas.trneny@wo.cz>
|
Professor <lukas.trneny@wo.cz>
|
||||||
|
Winter <simon@agius-muscat.net>
|
||||||
|
Dharma Bellamkonda <dharma.bellamkonda@gmail.com>
|
||||||
|
legman <juicemelon@msn.com>
|
||||||
|
12
README.md
12
README.md
@ -3,19 +3,21 @@
|
|||||||
height="112">
|
height="112">
|
||||||
</p>
|
</p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/acemod/ACE3/releases">
|
<!--<a href="https://github.com/acemod/ACE3/releases">
|
||||||
<img src="http://img.shields.io/badge/Version-3.0.0-blue.svg?style=flat"
|
v3.0.1
|
||||||
|
<img src="http://img.shields.io/badge/Version-3.0.1-blue.svg?style=flat"
|
||||||
alt="ACE version">
|
alt="ACE version">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/archive/master.zip">
|
<a href="https://github.com/acemod/ACE3/archive/master.zip">
|
||||||
<img src="http://img.shields.io/badge/Download-48.3_MB-green.svg?style=flat"
|
40.9 Mb
|
||||||
|
<img src="http://img.shields.io/badge/Download-40.9_MB-green.svg?style=flat"
|
||||||
alt="ACE download">
|
alt="ACE download">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/issues">
|
<a href="https://github.com/acemod/ACE3/issues">
|
||||||
<img src="http://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat&label=Issues"
|
<img src="http://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat&label=Issues"
|
||||||
alt="ACE issues">
|
alt="ACE issues">
|
||||||
</a>
|
</a>-->
|
||||||
<a href="http://forums.bistudio.com/showthread.php?190433-ACE3-A-collaborative-merger-between-AGM-CSE-and-ACE&p=2910796&viewfull=1#post2910796">
|
<a href="http://forums.bistudio.com/showthread.php?191716-ACE3-A-collaborative-merger-between-AGM-CSE-and-ACE&p=2935435&viewfull=1#post2935435">
|
||||||
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat"
|
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat"
|
||||||
alt="BIF thread">
|
alt="BIF thread">
|
||||||
</a>
|
</a>
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
ace_fcs.dll
BIN
ace_fcs.dll
Binary file not shown.
1
addons/advanced_ballistics/$PBOPREFIX$
Normal file
1
addons/advanced_ballistics/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
|||||||
|
z\ace\addons\advanced_ballistics
|
@ -5,23 +5,29 @@ class ACE_Settings {
|
|||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 0;
|
value = 0;
|
||||||
};
|
};
|
||||||
class GVAR(alwaysSimulateForSnipers) {
|
class GVAR(simulateForSnipers) {
|
||||||
displayName = "Always Enabled For Snipers";
|
displayName = "Enabled For Snipers";
|
||||||
description = "Always enables advanced ballistics when high power optics are used";
|
description = "Enables advanced ballistics for non local snipers (when using high power optics)";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 1;
|
value = 1;
|
||||||
};
|
};
|
||||||
class GVAR(disabledInFullAutoMode) {
|
class GVAR(simulateForGroupMembers) {
|
||||||
displayName = "Disabled In FullAuto Mode";
|
displayName = "Enabled For Group Members";
|
||||||
description = "Disables the advanced ballistics during full auto fire";
|
description = "Enables advanced ballistics for non local group members";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 0;
|
value = 0;
|
||||||
};
|
};
|
||||||
class GVAR(onlyActiveForLocalPlayers) {
|
class GVAR(simulateForEveryone) {
|
||||||
displayName = "Disabled For Non Local Players";
|
displayName = "Enabled For Everyone";
|
||||||
description = "Disables the advanced ballistics for bullets coming from other players (enable this if you encounter frame drops during heavy firefights in multiplayer)";
|
description = "Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 1;
|
value = 0;
|
||||||
|
};
|
||||||
|
class GVAR(disabledInFullAutoMode) {
|
||||||
|
displayName = "Disabled In FullAuto Mode";
|
||||||
|
description = "Disables advanced ballistics during full auto fire";
|
||||||
|
typeName = "BOOL";
|
||||||
|
value = 0;
|
||||||
};
|
};
|
||||||
/* // TODO: We currently do not have firedEHs on vehicles
|
/* // TODO: We currently do not have firedEHs on vehicles
|
||||||
class GVAR(vehicleGunnerEnabled) {
|
class GVAR(vehicleGunnerEnabled) {
|
||||||
|
@ -2,7 +2,7 @@ class CfgVehicles {
|
|||||||
class ACE_Module;
|
class ACE_Module;
|
||||||
class GVAR(ModuleSettings): ACE_Module {
|
class GVAR(ModuleSettings): ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = "Advanced Ballistics";
|
displayName = "$STR_ACE_AdvancedBallistics_DisplayName";
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa));
|
icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa));
|
||||||
category = "ACE";
|
category = "ACE";
|
||||||
function = QUOTE(DFUNC(initModuleSettings));
|
function = QUOTE(DFUNC(initModuleSettings));
|
||||||
@ -12,29 +12,35 @@ class CfgVehicles {
|
|||||||
author = "Ruthberg";
|
author = "Ruthberg";
|
||||||
class Arguments {
|
class Arguments {
|
||||||
class enabled {
|
class enabled {
|
||||||
displayName = "Advanced Ballistics";
|
displayName = "$STR_ACE_AdvancedBallistics_enabled_DisplayName";
|
||||||
description = "Enables advanced ballistics";
|
description = "$STR_ACE_AdvancedBallistics_enabled_Description";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
defaultValue = 0;
|
defaultValue = 0;
|
||||||
};
|
};
|
||||||
class alwaysSimulateForSnipers {
|
class simulateForSnipers {
|
||||||
displayName = "Always Enabled For Snipers";
|
displayName = "$STR_ACE_AdvancedBallistics_simulateForSnipers_DisplayName";
|
||||||
description = "Always enables advanced ballistics when high power optics are used";
|
description = "$STR_ACE_AdvancedBallistics_simulateForSnipers_Description";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
defaultValue = 1;
|
defaultValue = 1;
|
||||||
};
|
};
|
||||||
|
class simulateForGroupMembers {
|
||||||
|
displayName = "$STR_ACE_AdvancedBallistics_simulateForGroupMembers_DisplayName";
|
||||||
|
description = "$STR_ACE_AdvancedBallistics_simulateForGroupMembers_Description";
|
||||||
|
typeName = "BOOL";
|
||||||
|
defaultValue = 0;
|
||||||
|
};
|
||||||
|
class simulateForEveryone {
|
||||||
|
displayName = "$STR_ACE_AdvancedBallistics_simulateForEveryone_DisplayName";
|
||||||
|
description = "$STR_ACE_AdvancedBallistics_simulateForEveryone_Description";
|
||||||
|
typeName = "BOOL";
|
||||||
|
defaultValue = 0;
|
||||||
|
};
|
||||||
class disabledInFullAutoMode {
|
class disabledInFullAutoMode {
|
||||||
displayName = "Disabled In FullAuto Mode";
|
displayName = "$STR_ACE_AdvancedBallistics_disabledInFullAutoMod_DisplayName";
|
||||||
description = "Disables the advanced ballistics during full auto fire";
|
description = "$STR_ACE_AdvancedBallistics_disabledInFullAutoMod_Description";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
defaultValue = 0;
|
defaultValue = 0;
|
||||||
};
|
};
|
||||||
class onlyActiveForLocalPlayers {
|
|
||||||
displayName = "Disabled For Non Local Players";
|
|
||||||
description = "Disables the advanced ballistics for bullets coming from other players (enable this if you encounter frame drops during heavy firefights in multiplayer)";
|
|
||||||
typeName = "BOOL";
|
|
||||||
defaultValue = 1;
|
|
||||||
};
|
|
||||||
/* // TODO: We currently do not have firedEHs on vehicles
|
/* // TODO: We currently do not have firedEHs on vehicles
|
||||||
class vehicleGunnerEnabled {
|
class vehicleGunnerEnabled {
|
||||||
displayName = "Enabled For Vehicle Gunners";
|
displayName = "Enabled For Vehicle Gunners";
|
||||||
@ -44,35 +50,38 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
class ammoTemperatureEnabled {
|
class ammoTemperatureEnabled {
|
||||||
displayName = "Enable Ammo Temperature Simulation";
|
displayName = "$STR_ACE_AdvancedBallistics_ammoTemperatureEnabled_DisplayName";
|
||||||
description = "Muzzle velocity varies with ammo temperature";
|
description = "$STR_ACE_AdvancedBallistics_ammoTemperatureEnabled_Description";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
defaultValue = 1;
|
defaultValue = 1;
|
||||||
};
|
};
|
||||||
class barrelLengthInfluenceEnabled {
|
class barrelLengthInfluenceEnabled {
|
||||||
displayName = "Enable Barrel Length Simulation";
|
displayName = "$STR_ACE_AdvancedBallistics_barrelLengthInfluenceEnabled_DisplayName";
|
||||||
description = "Muzzle velocity varies with barrel length";
|
description = "$STR_ACE_AdvancedBallistics_barrelLengthInfluenceEnabled_Description";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
defaultValue = 1;
|
defaultValue = 1;
|
||||||
};
|
};
|
||||||
class bulletTraceEnabled {
|
class bulletTraceEnabled {
|
||||||
displayName = "Enable Bullet Trace Effect";
|
displayName = "$STR_ACE_AdvancedBallistics_bulletTraceEnabled_DisplayName";
|
||||||
description = "Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)";
|
description = "$STR_ACE_AdvancedBallistics_bulletTraceEnabled_Description";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
defaultValue = 1;
|
defaultValue = 1;
|
||||||
};
|
};
|
||||||
class simulationInterval {
|
class simulationInterval {
|
||||||
displayName = "Simulation Interval";
|
displayName = "$STR_ACE_AdvancedBallistics_simulationInterval_DisplayName";
|
||||||
description = "Defines the interval between every calculation step";
|
description = "$STR_ACE_AdvancedBallistics_simulationInterval_Description";
|
||||||
typeName = "NUMBER";
|
typeName = "NUMBER";
|
||||||
defaultValue = 0.0;
|
defaultValue = 0.0;
|
||||||
};
|
};
|
||||||
class simulationRadius {
|
class simulationRadius {
|
||||||
displayName = "Simulation Radius";
|
displayName = "$STR_ACE_AdvancedBallistics_simulationRadius_DisplayName";
|
||||||
description = "Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles";
|
description = "$STR_ACE_AdvancedBallistics_simulationRadius_Description";
|
||||||
typeName = "NUMBER";
|
typeName = "NUMBER";
|
||||||
defaultValue = 3000;
|
defaultValue = 3000;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
class ModuleDescription {
|
||||||
|
description = "$STR_ACE_AdvancedBallistics_Description";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -4,24 +4,11 @@
|
|||||||
|
|
||||||
GVAR(currentbulletID) = -1;
|
GVAR(currentbulletID) = -1;
|
||||||
|
|
||||||
GVAR(bulletDatabase) = [];
|
|
||||||
GVAR(bulletDatabaseStartTime) = [];
|
|
||||||
GVAR(bulletDatabaseSpeed) = [];
|
|
||||||
GVAR(bulletDatabaseFrames) = [];
|
|
||||||
GVAR(bulletDatabaseLastFrame) = [];
|
|
||||||
GVAR(bulletDatabaseHDeflect) = [];
|
|
||||||
GVAR(bulletDatabaseSpinDrift) = [];
|
|
||||||
GVAR(bulletDatabaseOccupiedIndices) = [];
|
|
||||||
GVAR(bulletDatabaseFreeIndices) = [];
|
|
||||||
|
|
||||||
GVAR(WindInfo) = false;
|
|
||||||
GVAR(WindInfoStart) = time;
|
|
||||||
|
|
||||||
GVAR(Protractor) = false;
|
GVAR(Protractor) = false;
|
||||||
GVAR(ProtractorStart) = time;
|
GVAR(ProtractorStart) = time;
|
||||||
|
|
||||||
GVAR(currentGrid) = 0;
|
GVAR(currentGrid) = 0;
|
||||||
GVAR(INIT_MESSAGE_ENABLED) = false;
|
GVAR(initMessageEnabled) = false;
|
||||||
|
|
||||||
GVAR(extensionAvailable) = true;
|
GVAR(extensionAvailable) = true;
|
||||||
/* @TODO: Remove this until versioning is in sync with cmake/build versioning
|
/* @TODO: Remove this until versioning is in sync with cmake/build versioning
|
||||||
|
@ -6,12 +6,12 @@ PREP(calculateAmmoTemperatureVelocityShift);
|
|||||||
PREP(calculateAtmosphericCorrection);
|
PREP(calculateAtmosphericCorrection);
|
||||||
PREP(calculateBarrelLengthVelocityShift);
|
PREP(calculateBarrelLengthVelocityShift);
|
||||||
PREP(calculateRetardation);
|
PREP(calculateRetardation);
|
||||||
PREP(calculateRoughnessLength);
|
|
||||||
PREP(calculateStabilityFactor);
|
PREP(calculateStabilityFactor);
|
||||||
PREP(calculateWindSpeed);
|
|
||||||
PREP(displayProtractor);
|
PREP(displayProtractor);
|
||||||
PREP(handleFired);
|
PREP(handleFired);
|
||||||
PREP(initializeTerrainExtension);
|
PREP(initializeTerrainExtension);
|
||||||
PREP(initModuleSettings);
|
PREP(initModuleSettings);
|
||||||
|
PREP(readAmmoDataFromConfig);
|
||||||
|
PREP(readWeaponDataFromConfig);
|
||||||
|
|
||||||
ADDON = true;
|
ADDON = true;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* Calculates the ammo temperature induced muzzle velocity shift
|
* Calculates the ammo temperature induced muzzle velocity shift
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: ammo - classname <string>
|
* 0: muzzle velocity shift lookup table - m/s <ARRAY>
|
||||||
* 1: temperature - degrees celcius <NUMBER>
|
* 1: temperature - degrees celcius <NUMBER>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
@ -15,17 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_ammo", "_temperature", "_muzzleVelocityTable", "_muzzleVelocityShift", "_temperatureIndexA", "_temperatureIndexB", "_temperatureRatio"];
|
private ["_muzzleVelocityShiftTable", "_temperature", "_muzzleVelocityShift", "_temperatureIndexA", "_temperatureIndexB", "_temperatureRatio"];
|
||||||
_ammo = _this select 0;
|
_muzzleVelocityShiftTable = _this select 0;
|
||||||
_temperature = _this select 1;
|
_temperature = _this select 1;
|
||||||
|
|
||||||
_muzzleVelocityTable = [];
|
if (count _muzzleVelocityShiftTable != 11) exitWith { 0 };
|
||||||
|
|
||||||
if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts")) then {
|
|
||||||
_muzzleVelocityTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts");
|
|
||||||
};
|
|
||||||
|
|
||||||
if (count _muzzleVelocityTable != 11) exitWith { 0 };
|
|
||||||
|
|
||||||
_temperatureIndexA = floor((_temperature + 15) / 5);
|
_temperatureIndexA = floor((_temperature + 15) / 5);
|
||||||
_temperatureIndexA = 0 max _temperatureIndexA;
|
_temperatureIndexA = 0 max _temperatureIndexA;
|
||||||
@ -37,6 +31,6 @@ _temperatureIndexB = _temperatureIndexB min 10;
|
|||||||
|
|
||||||
_temperatureRatio = ((_temperature + 15) / 5) - floor((_temperature + 15) / 5);
|
_temperatureRatio = ((_temperature + 15) / 5) - floor((_temperature + 15) / 5);
|
||||||
|
|
||||||
_muzzleVelocityShift = (_muzzleVelocityTable select _temperatureIndexA) * (1 - _temperatureRatio) + (_muzzleVelocityTable select _temperatureIndexB) * _temperatureRatio;
|
_muzzleVelocityShift = (_muzzleVelocityShiftTable select _temperatureIndexA) * (1 - _temperatureRatio) + (_muzzleVelocityShiftTable select _temperatureIndexB) * _temperatureRatio;
|
||||||
|
|
||||||
_muzzleVelocityShift
|
_muzzleVelocityShift
|
||||||
|
@ -4,9 +4,10 @@
|
|||||||
* Calculates the muzzle velocity shift caused by different barrel lengths
|
* Calculates the muzzle velocity shift caused by different barrel lengths
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: ammo - classname <string>
|
* 0: barrel length - mm
|
||||||
* 0: weapon - classname <string>
|
* 1: muzzle velocity lookup table - m/s <ARRAY>
|
||||||
* 1: muzzle velocity - m/s <NUMBER>
|
* 2: barrel length lookup table - mm <ARRAY>
|
||||||
|
* 3: muzzle velocity - m/s <NUMBER>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* 0: muzzle velocity shift - m/s <NUMBER>
|
* 0: muzzle velocity shift - m/s <NUMBER>
|
||||||
@ -16,25 +17,13 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_ammo", "_weapon", "_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity", "_lowerIndex", "_upperIndex", "_barrelLengthRatio", "_muzzleVelocityNew"];
|
private ["_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity", "_lowerIndex", "_upperIndex", "_barrelLengthRatio", "_muzzleVelocityNew"];
|
||||||
_ammo = _this select 0;
|
_barrelLength = _this select 0;
|
||||||
_weapon = _this select 1;
|
_muzzleVelocityTable = _this select 1;
|
||||||
_muzzleVelocity = _this select 2;
|
_barrelLengthTable = _this select 2;
|
||||||
|
_muzzleVelocity = _this select 3;
|
||||||
_barrelLength = getNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_barrelLength");
|
|
||||||
|
|
||||||
if (_barrelLength == 0) exitWith { 0 };
|
if (_barrelLength == 0) exitWith { 0 };
|
||||||
|
|
||||||
_muzzleVelocityTable = [];
|
|
||||||
_barrelLengthTable = [];
|
|
||||||
|
|
||||||
if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_muzzleVelocities")) then {
|
|
||||||
_muzzleVelocityTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_muzzleVelocities");
|
|
||||||
};
|
|
||||||
if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_barrelLengths")) then {
|
|
||||||
_barrelLengthTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_barrelLengths");
|
|
||||||
};
|
|
||||||
|
|
||||||
if (count _muzzleVelocityTable != count _barrelLengthTable) exitWith { 0 };
|
if (count _muzzleVelocityTable != count _barrelLengthTable) exitWith { 0 };
|
||||||
if (count _muzzleVelocityTable == 0 || count _barrelLengthTable == 0) exitWith { 0 };
|
if (count _muzzleVelocityTable == 0 || count _barrelLengthTable == 0) exitWith { 0 };
|
||||||
if (count _muzzleVelocityTable == 1) exitWith { (_muzzleVelocityTable select 0) - _muzzleVelocity };
|
if (count _muzzleVelocityTable == 1) exitWith { (_muzzleVelocityTable select 0) - _muzzleVelocity };
|
||||||
|
@ -1,78 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: Ruthberg
|
|
||||||
*
|
|
||||||
* Calculates the true wind speed at a given world position
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: _this - world position <posASL>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* 0: wind speed - m/s <NUMBER>
|
|
||||||
*
|
|
||||||
* Public: No
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
private ["_windSpeed", "_windDir", "_height", "_newWindSpeed", "_windSource", "_roughnessLength"];
|
|
||||||
|
|
||||||
fnc_polar2vect = {
|
|
||||||
private ["_mag2D"];
|
|
||||||
_mag2D = (_this select 0) * cos((_this select 2));
|
|
||||||
[_mag2D * sin((_this select 1)), _mag2D * cos((_this select 1)), (_this select 0) * sin((_this select 2))];
|
|
||||||
};
|
|
||||||
|
|
||||||
_windSpeed = vectorMagnitude ACE_wind;
|
|
||||||
_windDir = (ACE_wind select 0) atan2 (ACE_wind select 1);
|
|
||||||
|
|
||||||
// Wind gradient
|
|
||||||
if (_windSpeed > 0.05) then {
|
|
||||||
_height = (ASLToATL _this) select 2;
|
|
||||||
_height = 0 max _height min 20;
|
|
||||||
if (_height < 20) then {
|
|
||||||
_roughnessLength = _this call FUNC(calculateRoughnessLength);
|
|
||||||
_windSpeed = _windSpeed * ln(_height / _roughnessLength) / ln(20 / _roughnessLength);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
// Terrain effect on wind
|
|
||||||
if (_windSpeed > 0.05) then {
|
|
||||||
_newWindSpeed = 0;
|
|
||||||
{
|
|
||||||
_windSource = [100, _windDir + 180, _x] call fnc_polar2vect;
|
|
||||||
if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith {
|
|
||||||
_newWindSpeed = cos(_x * 9) * _windSpeed;
|
|
||||||
};
|
|
||||||
_windSource = [100, _windDir + 180 + _x, 0] call fnc_polar2vect;
|
|
||||||
if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith {
|
|
||||||
_newWindSpeed = cos(_x * 9) * _windSpeed;
|
|
||||||
};
|
|
||||||
_windSource = [100, _windDir + 180 - _x, 0] call fnc_polar2vect;
|
|
||||||
if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith {
|
|
||||||
_newWindSpeed = cos(_x * 9) * _windSpeed;
|
|
||||||
};
|
|
||||||
} forEach [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
||||||
_windSpeed = _newWindSpeed;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Obstacle effect on wind
|
|
||||||
if (_windSpeed > 0.05) then {
|
|
||||||
_newWindSpeed = 0;
|
|
||||||
{
|
|
||||||
_windSource = [20, _windDir + 180, _x] call fnc_polar2vect;
|
|
||||||
if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith {
|
|
||||||
_newWindSpeed = cos(_x * 2) * _windSpeed;
|
|
||||||
};
|
|
||||||
_windSource = [20, _windDir + 180 + _x, 0] call fnc_polar2vect;
|
|
||||||
if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith {
|
|
||||||
_newWindSpeed = cos(_x * 2) * _windSpeed;
|
|
||||||
};
|
|
||||||
_windSource = [20, _windDir + 180 - _x, 0] call fnc_polar2vect;
|
|
||||||
if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith {
|
|
||||||
_newWindSpeed = cos(_x * 2) * _windSpeed;
|
|
||||||
};
|
|
||||||
} forEach [0, 5, 10, 15, 20, 25, 30, 35, 40, 45];
|
|
||||||
_windSpeed = _newWindSpeed;
|
|
||||||
};
|
|
||||||
_windSpeed = 0 max _windSpeed;
|
|
||||||
|
|
||||||
_windSpeed
|
|
@ -19,7 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_ballisticCoefficients", "_velocityBoundaries"];
|
private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_stabilityFactor"];
|
||||||
_unit = _this select 0;
|
_unit = _this select 0;
|
||||||
_weapon = _this select 1;
|
_weapon = _this select 1;
|
||||||
_mode = _this select 3;
|
_mode = _this select 3;
|
||||||
@ -35,32 +35,41 @@ if (!([_unit] call EFUNC(common,isPlayer))) exitWith {};
|
|||||||
if (underwater _unit) exitWith {};
|
if (underwater _unit) exitWith {};
|
||||||
if (!(_ammo isKindOf "BulletBase")) exitWith {};
|
if (!(_ammo isKindOf "BulletBase")) exitWith {};
|
||||||
if (_unit distance ACE_player > GVAR(simulationRadius)) exitWith {};
|
if (_unit distance ACE_player > GVAR(simulationRadius)) exitWith {};
|
||||||
if (GVAR(onlyActiveForLocalPlayers) && !(local _unit)) then {
|
if (!GVAR(simulateForEveryone) && !(local _unit)) then {
|
||||||
if (GVAR(alwaysSimulateForSnipers)) then {
|
|
||||||
// The shooter is non local
|
// The shooter is non local
|
||||||
|
_abort = true;
|
||||||
|
if (GVAR(simulateForSnipers)) then {
|
||||||
if (currentWeapon _unit == primaryWeapon _unit && count primaryWeaponItems _unit > 2) then {
|
if (currentWeapon _unit == primaryWeapon _unit && count primaryWeaponItems _unit > 2) then {
|
||||||
_opticsName = (primaryWeaponItems _unit) select 2;
|
_opticsName = (primaryWeaponItems _unit) select 2;
|
||||||
_opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
|
_opticType = getNumber(configFile >> "CfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
|
||||||
_abort = _opticType != 2; // We only abort if the non local shooter is not a sniper
|
_abort = _opticType != 2; // We only abort if the non local shooter is not a sniper
|
||||||
};
|
};
|
||||||
} else {
|
};
|
||||||
_abort = true;
|
if (GVAR(simulateForGroupMembers) && _abort) then {
|
||||||
|
_abort = (group ACE_player) != (group _unit);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
//if (!GVAR(vehicleGunnerEnabled) && !(_unit isKindOf "Man")) then { _abort = true; }; // We currently do not have firedEHs on vehicles
|
//if (!GVAR(vehicleGunnerEnabled) && !(_unit isKindOf "Man")) then { _abort = true; }; // We currently do not have firedEHs on vehicles
|
||||||
if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "cfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; };
|
if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "CfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; };
|
||||||
|
|
||||||
if (_abort || !(GVAR(extensionAvailable))) exitWith {
|
if (_abort || !(GVAR(extensionAvailable))) exitWith {
|
||||||
[_bullet, getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction")] call EFUNC(winddeflection,updateTrajectoryPFH);
|
[_bullet, getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction")] call EFUNC(winddeflection,updateTrajectoryPFH);
|
||||||
};
|
};
|
||||||
|
|
||||||
_airFriction = getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction");
|
_AmmoCacheEntry = uiNamespace getVariable format[QGVAR(%1), _ammo];
|
||||||
|
if (isNil {_AmmoCacheEntry}) then {
|
||||||
|
_AmmoCacheEntry = _ammo call FUNC(readAmmoDataFromConfig);
|
||||||
|
};
|
||||||
|
_WeaponCacheEntry = uiNamespace getVariable format[QGVAR(%1), _weapon];
|
||||||
|
if (isNil {_WeaponCacheEntry}) then {
|
||||||
|
_WeaponCacheEntry = _weapon call FUNC(readWeaponDataFromConfig);
|
||||||
|
};
|
||||||
|
|
||||||
_bulletVelocity = velocity _bullet;
|
_bulletVelocity = velocity _bullet;
|
||||||
_muzzleVelocity = vectorMagnitude _bulletVelocity;
|
_muzzleVelocity = vectorMagnitude _bulletVelocity;
|
||||||
|
|
||||||
if (GVAR(barrelLengthInfluenceEnabled)) then {
|
if (GVAR(barrelLengthInfluenceEnabled)) then {
|
||||||
_muzzleVelocityShift = [_ammo, _weapon, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
|
_muzzleVelocityShift = [_WeaponCacheEntry select 2, _AmmoCacheEntry select 10, _AmmoCacheEntry select 11, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
|
||||||
if (_muzzleVelocityShift != 0) then {
|
if (_muzzleVelocityShift != 0) then {
|
||||||
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
|
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
|
||||||
_bullet setVelocity _bulletVelocity;
|
_bullet setVelocity _bulletVelocity;
|
||||||
@ -69,8 +78,8 @@ if (GVAR(barrelLengthInfluenceEnabled)) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (GVAR(ammoTemperatureEnabled)) then {
|
if (GVAR(ammoTemperatureEnabled)) then {
|
||||||
_temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2);
|
_temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
|
||||||
_muzzleVelocityShift = [_ammo, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift);
|
_muzzleVelocityShift = [_AmmoCacheEntry select 9, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift);
|
||||||
if (_muzzleVelocityShift != 0) then {
|
if (_muzzleVelocityShift != 0) then {
|
||||||
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
|
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
|
||||||
_bullet setVelocity _bulletVelocity;
|
_bullet setVelocity _bulletVelocity;
|
||||||
@ -85,60 +94,27 @@ if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then {
|
|||||||
} else {
|
} else {
|
||||||
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
|
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
|
||||||
_opticsName = (primaryWeaponItems ACE_player) select 2;
|
_opticsName = (primaryWeaponItems ACE_player) select 2;
|
||||||
_opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
|
_opticType = getNumber(configFile >> "CfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
|
||||||
_bulletTraceVisible = _opticType == 2;
|
_bulletTraceVisible = _opticType == 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_caliber");
|
_caliber = _AmmoCacheEntry select 1;
|
||||||
_bulletLength = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_bulletLength");
|
_bulletLength = _AmmoCacheEntry select 2;
|
||||||
_bulletMass = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_bulletMass");
|
_bulletMass = _AmmoCacheEntry select 3;
|
||||||
_barrelTwist = getNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_barrelTwist");
|
_barrelTwist = _WeaponCacheEntry select 0;
|
||||||
_stabilityFactor = 1.5;
|
_stabilityFactor = 1.5;
|
||||||
|
|
||||||
if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then {
|
if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then {
|
||||||
_temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2);
|
_temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
|
||||||
_barometricPressure = ((getPosASL _bullet) select 2) call EFUNC(weather,calculateBarometricPressure);
|
_barometricPressure = ((getPosASL _bullet) select 2) call EFUNC(weather,calculateBarometricPressure);
|
||||||
_stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call FUNC(calculateStabilityFactor);
|
_stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call FUNC(calculateStabilityFactor);
|
||||||
};
|
};
|
||||||
|
|
||||||
_twistDirection = 1;
|
|
||||||
if (isNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_twistDirection")) then {
|
|
||||||
_twistDirection = getNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_twistDirection");
|
|
||||||
if (_twistDirection != -1 && _twistDirection != 0 && _twistDirection != 1) then {
|
|
||||||
_twistDirection = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
_transonicStabilityCoef = 0.5;
|
|
||||||
if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef")) then {
|
|
||||||
_transonicStabilityCoef = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef");
|
|
||||||
};
|
|
||||||
|
|
||||||
_dragModel = 1;
|
|
||||||
_ballisticCoefficients = [];
|
|
||||||
_velocityBoundaries = [];
|
|
||||||
_atmosphereModel = "ICAO";
|
|
||||||
if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel")) then {
|
|
||||||
_dragModel = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel");
|
|
||||||
if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then {
|
|
||||||
_dragModel = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients")) then {
|
|
||||||
_ballisticCoefficients = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients");
|
|
||||||
};
|
|
||||||
if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries")) then {
|
|
||||||
_velocityBoundaries = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries");
|
|
||||||
};
|
|
||||||
if (isText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere")) then {
|
|
||||||
_atmosphereModel = getText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere");
|
|
||||||
};
|
|
||||||
|
|
||||||
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
||||||
|
|
||||||
"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _bullet, EGVAR(weather,Latitude), EGVAR(weather,currentTemperature), EGVAR(weather,Altitude), EGVAR(weather,currentHumidity), overcast, floor(time), time - floor(time)];
|
"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _AmmoCacheEntry select 0, _AmmoCacheEntry select 6, _AmmoCacheEntry select 7, _AmmoCacheEntry select 8, _AmmoCacheEntry select 5, _stabilityFactor, _WeaponCacheEntry select 1, _muzzleVelocity, _AmmoCacheEntry select 4, getPosASL _bullet, EGVAR(weather,Latitude), EGVAR(weather,currentTemperature), EGVAR(weather,Altitude), EGVAR(weather,currentHumidity), overcast, floor(time), time - floor(time)];
|
||||||
|
|
||||||
[{
|
[{
|
||||||
private ["_args", "_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"];
|
private ["_args", "_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"];
|
||||||
@ -158,7 +134,7 @@ GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (_bulletTraceVisible && _bulletSpeed > 600) then {
|
if (_bulletTraceVisible && _bulletSpeed > 600) then {
|
||||||
drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.0157480315*_caliber,0.00787401574*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""];
|
drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.02*_caliber,0.01*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""];
|
||||||
};
|
};
|
||||||
|
|
||||||
call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, floor(time), time - floor(time)]);
|
call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, floor(time), time - floor(time)]);
|
||||||
|
@ -26,9 +26,10 @@ if !(_activated) exitWith {};
|
|||||||
[_logic, QGVAR(ammoTemperatureEnabled), "ammoTemperatureEnabled"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(ammoTemperatureEnabled), "ammoTemperatureEnabled"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(barrelLengthInfluenceEnabled), "barrelLengthInfluenceEnabled"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(barrelLengthInfluenceEnabled), "barrelLengthInfluenceEnabled"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(bulletTraceEnabled), "bulletTraceEnabled"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(bulletTraceEnabled), "bulletTraceEnabled"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(onlyActiveForLocalPlayers), "onlyActiveForLocalPlayers"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(simulateForEveryone), "simulateForEveryone"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(disabledInFullAutoMode), "disabledInFullAutoMode"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(disabledInFullAutoMode), "disabledInFullAutoMode"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(alwaysSimulateForSnipers), "alwaysSimulateForSnipers"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(simulateForSnipers), "simulateForSnipers"] call EFUNC(common,readSettingFromModule);
|
||||||
|
[_logic, QGVAR(simulateForGroupMembers), "simulateForGroupMembers"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(simulationInterval), "simulationInterval"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(simulationInterval), "simulationInterval"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(simulationRadius), "simulationRadius"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(simulationRadius), "simulationRadius"] call EFUNC(common,readSettingFromModule);
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ _initStartTime = time;
|
|||||||
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
||||||
|
|
||||||
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
||||||
if (GVAR(INIT_MESSAGE_ENABLED)) then {
|
if (GVAR(initMessageEnabled)) then {
|
||||||
systemChat "AdvancedBallistics: Terrain already initialized";
|
systemChat "AdvancedBallistics: Terrain already initialized";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -40,7 +40,7 @@ GVAR(currentGrid) = 0;
|
|||||||
_initStartTime = _args select 2;
|
_initStartTime = _args select 2;
|
||||||
|
|
||||||
if (GVAR(currentGrid) >= _gridCells) exitWith {
|
if (GVAR(currentGrid) >= _gridCells) exitWith {
|
||||||
if (GVAR(INIT_MESSAGE_ENABLED)) then {
|
if (GVAR(initMessageEnabled)) then {
|
||||||
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(time - _initStartTime)];
|
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(time - _initStartTime)];
|
||||||
};
|
};
|
||||||
[_this select 1] call cba_fnc_removePerFrameHandler;
|
[_this select 1] call cba_fnc_removePerFrameHandler;
|
||||||
|
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ruthberg
|
||||||
|
*
|
||||||
|
* Reads the ammo class config and updates the config cache
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: ammo - classname <string>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* 0: [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable] <ARRAY>
|
||||||
|
*
|
||||||
|
* Return value:
|
||||||
|
* None
|
||||||
|
*/
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
||||||
|
_ammo = _this;
|
||||||
|
|
||||||
|
_airFriction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction");
|
||||||
|
_caliber = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_caliber");
|
||||||
|
_bulletLength = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_bulletLength");
|
||||||
|
_bulletMass = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_bulletMass");
|
||||||
|
_transonicStabilityCoef = 0.5;
|
||||||
|
if (isNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef")) then {
|
||||||
|
_transonicStabilityCoef = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef");
|
||||||
|
};
|
||||||
|
_dragModel = 1;
|
||||||
|
_ballisticCoefficients = [];
|
||||||
|
_velocityBoundaries = [];
|
||||||
|
_atmosphereModel = "ICAO";
|
||||||
|
if (isNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_dragModel")) then {
|
||||||
|
_dragModel = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_dragModel");
|
||||||
|
if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then {
|
||||||
|
_dragModel = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ballisticCoefficients")) then {
|
||||||
|
_ballisticCoefficients = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ballisticCoefficients");
|
||||||
|
};
|
||||||
|
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_velocityBoundaries")) then {
|
||||||
|
_velocityBoundaries = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_velocityBoundaries");
|
||||||
|
};
|
||||||
|
if (isText(configFile >> "CfgAmmo" >> _ammo >> "ACE_standardAtmosphere")) then {
|
||||||
|
_atmosphereModel = getText(configFile >> "CfgAmmo" >> _ammo >> "ACE_standardAtmosphere");
|
||||||
|
};
|
||||||
|
_ammoTempMuzzleVelocityShifts = [];
|
||||||
|
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts")) then {
|
||||||
|
_ammoTempMuzzleVelocityShifts = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts");
|
||||||
|
};
|
||||||
|
_muzzleVelocityTable = [];
|
||||||
|
_barrelLengthTable = [];
|
||||||
|
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_muzzleVelocities")) then {
|
||||||
|
_muzzleVelocityTable = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_muzzleVelocities");
|
||||||
|
};
|
||||||
|
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_barrelLengths")) then {
|
||||||
|
_barrelLengthTable = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_barrelLengths");
|
||||||
|
};
|
||||||
|
|
||||||
|
_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
|
||||||
|
|
||||||
|
uiNamespace setVariable [format[QGVAR(%1), _ammo], _result];
|
||||||
|
|
||||||
|
_result
|
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ruthberg
|
||||||
|
*
|
||||||
|
* Reads the weapon class config and updates the config cache
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: ammo - classname <string>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* 0: [_barrelTwist, _twistDirection, _barrelLength] <ARRAY>
|
||||||
|
*
|
||||||
|
* Return value:
|
||||||
|
* None
|
||||||
|
*/
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_weapon", "_barrelTwist", "_twistDirection", "_barrelLength", "_result"];
|
||||||
|
_weapon = _this;
|
||||||
|
|
||||||
|
_barrelTwist = getNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_barrelTwist");
|
||||||
|
_twistDirection = 1;
|
||||||
|
if (isNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_twistDirection")) then {
|
||||||
|
_twistDirection = getNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_twistDirection");
|
||||||
|
if (_twistDirection != -1 && _twistDirection != 0 && _twistDirection != 1) then {
|
||||||
|
_twistDirection = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
_barrelLength = getNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_barrelLength");
|
||||||
|
|
||||||
|
_result = [_barrelTwist, _twistDirection, _barrelLength];
|
||||||
|
|
||||||
|
uiNamespace setVariable [format[QGVAR(%1), _weapon], _result];
|
||||||
|
|
||||||
|
_result
|
@ -21,6 +21,5 @@
|
|||||||
#define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058
|
#define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058
|
||||||
#define STD_AIR_DENSITY_ICAO 1.22498
|
#define STD_AIR_DENSITY_ICAO 1.22498
|
||||||
#define STD_AIR_DENSITY_ASM 1.20885
|
#define STD_AIR_DENSITY_ASM 1.20885
|
||||||
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))
|
|
||||||
|
|
||||||
#define EXTENSION_REQUIRED_VERSION "1.0"
|
#define EXTENSION_REQUIRED_VERSION "1.0"
|
||||||
|
@ -25,5 +25,94 @@
|
|||||||
<Czech>Zobrazit úhloměr</Czech>
|
<Czech>Zobrazit úhloměr</Czech>
|
||||||
<Portuguese>Mostrar Transferidor</Portuguese>
|
<Portuguese>Mostrar Transferidor</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_DisplayName">
|
||||||
|
<English>Advanced Ballistics</English>
|
||||||
|
<Polish>Zaawansowana balistyka</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_enabled_DisplayName">
|
||||||
|
<English>Advanced Ballistics</English>
|
||||||
|
<Polish>Zaawansowana balistyka</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_enabled_Description">
|
||||||
|
<English>Enables advanced ballistics</English>
|
||||||
|
<Polish>Aktywuje zaawansowaną balistykę</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulateForSnipers_DisplayName">
|
||||||
|
<English>Enabled For Snipers</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulateForSnipers_Description">
|
||||||
|
<English>Enables advanced ballistics for non local snipers (when using high power optics)</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulateForGroupMembers_DisplayName">
|
||||||
|
<English>Enabled For Group Members</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulateForGroupMembers_Description">
|
||||||
|
<English>Enables advanced ballistics for non local group members</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulateForEveryone_DisplayName">
|
||||||
|
<English>Enabled For Everyone</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulateForEveryone_Description">
|
||||||
|
<English>Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)</English>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_alwaysSimulateForGroupMembers_DisplayName">
|
||||||
|
<English>Always Enabled For Group Members</English>
|
||||||
|
<Polish>Zawsze akt. dla czł. grupy</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_alwaysSimulateForGroupMembers_Description">
|
||||||
|
<English>Always enables advanced ballistics when a group member fires</English>
|
||||||
|
<Polish>Aktywuje zaawansowaną balistykę dla wszystkich członków grupy</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_disabledInFullAutoMod_DisplayName">
|
||||||
|
<English>Disabled In FullAuto Mode</English>
|
||||||
|
<Polish>Wył. podczas ognia auto.</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_disabledInFullAutoMod_Description">
|
||||||
|
<English>Disables the advanced ballistics during full auto fire</English>
|
||||||
|
<Polish>Dezaktywuje zaawansowaną balistykę podczas ognia automatycznego</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_ammoTemperatureEnabled_DisplayName">
|
||||||
|
<English>Enable Ammo Temperature Simulation</English>
|
||||||
|
<Polish>Symulacja temp. amunicji</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_ammoTemperatureEnabled_Description">
|
||||||
|
<English>Muzzle velocity varies with ammo temperature</English>
|
||||||
|
<Polish>Prędkość wylotowa pocisku jest zależna od temperatury amunicji</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_barrelLengthInfluenceEnabled_DisplayName">
|
||||||
|
<English>Enable Barrel Length Simulation</English>
|
||||||
|
<Polish>Symulacja długości lufy</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_barrelLengthInfluenceEnabled_Description">
|
||||||
|
<English>Muzzle velocity varies with barrel length</English>
|
||||||
|
<Polish>Prędkość wylotowa pocisku jest zależna od długości lufy</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_bulletTraceEnabled_DisplayName">
|
||||||
|
<English>Enable Bullet Trace Effect</English>
|
||||||
|
<Polish>Efekt smugi pocisku</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_bulletTraceEnabled_Description">
|
||||||
|
<English>Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)</English>
|
||||||
|
<Polish>Aktywuje efekt smugi pocisku dla pocisków wysokokalibrowych (widoczne tylko podczas patrzenia przez optykę)</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulationInterval_DisplayName">
|
||||||
|
<English>Simulation Interval</English>
|
||||||
|
<Polish>Interwał symulacji</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulationInterval_Description">
|
||||||
|
<English>Defines the interval between every calculation step</English>
|
||||||
|
<Polish>Określa interwał pomiędzy każdym krokiem kalkulacji</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulationRadius_DisplayName">
|
||||||
|
<English>Simulation Radius</English>
|
||||||
|
<Polish>Zasięg symulacji</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_simulationRadius_Description">
|
||||||
|
<English>Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles</English>
|
||||||
|
<Polish>Określa obszar naokoło gracza (w metrach), na którym zaawansowana balistyka jest aplikowana dla pocisków</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AdvancedBallistics_Description">
|
||||||
|
<English></English>
|
||||||
|
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
|
||||||
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,5 +1,5 @@
|
|||||||
#define COMPONENT ai
|
#define COMPONENT ai
|
||||||
#include "\z\ace\Addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
#ifdef DEBUG_ENABLED_AI
|
#ifdef DEBUG_ENABLED_AI
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
@ -9,4 +9,4 @@
|
|||||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_AI
|
#define DEBUG_SETTINGS DEBUG_SETTINGS_AI
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "\z\ace\Addons\main\script_macros.hpp"
|
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -891,9 +891,12 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
|
|
||||||
class OpticsIn
|
class OpticsIn
|
||||||
{
|
{
|
||||||
class WideUnstabalized
|
delete Narrow;
|
||||||
{
|
delete Medium;
|
||||||
opticsDisplayName = "WU";
|
delete Wide;
|
||||||
|
|
||||||
|
class ACE_WideUnstabilized {
|
||||||
|
opticsDisplayName = "W NS";
|
||||||
initAngleX = 0;
|
initAngleX = 0;
|
||||||
minAngleX = -35;
|
minAngleX = -35;
|
||||||
maxAngleX = 10;
|
maxAngleX = 10;
|
||||||
@ -910,8 +913,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
horizontallyStabilized = 1;
|
horizontallyStabilized = 1;
|
||||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
|
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
|
||||||
};
|
};
|
||||||
class Wide
|
class ACE_Wide: ACE_WideUnstabilized {
|
||||||
{
|
|
||||||
opticsDisplayName = "W";
|
opticsDisplayName = "W";
|
||||||
initAngleX = 0;
|
initAngleX = 0;
|
||||||
minAngleX = -35;
|
minAngleX = -35;
|
||||||
@ -929,8 +931,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
horizontallyStabilized = 1;
|
horizontallyStabilized = 1;
|
||||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
|
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
|
||||||
};
|
};
|
||||||
class Medium: Wide
|
class ACE_Medium: ACE_Wide {
|
||||||
{
|
|
||||||
opticsDisplayName = "M";
|
opticsDisplayName = "M";
|
||||||
initFov = 0.093;
|
initFov = 0.093;
|
||||||
minFov = 0.093;
|
minFov = 0.093;
|
||||||
@ -940,8 +941,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
horizontallyStabilized = 1;
|
horizontallyStabilized = 1;
|
||||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_medium_F";
|
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_medium_F";
|
||||||
};
|
};
|
||||||
class Narrow: Wide
|
class ACE_Narrow: ACE_Wide {
|
||||||
{
|
|
||||||
opticsDisplayName = "N";
|
opticsDisplayName = "N";
|
||||||
initFov = 0.029;
|
initFov = 0.029;
|
||||||
minFov = 0.029;
|
minFov = 0.029;
|
||||||
@ -952,8 +952,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
|
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
|
||||||
|
|
||||||
};
|
};
|
||||||
class Narrower: Wide
|
class ACE_Narrower: ACE_Wide {
|
||||||
{
|
|
||||||
opticsDisplayName = "Z";
|
opticsDisplayName = "Z";
|
||||||
initFov = 0.01;
|
initFov = 0.01;
|
||||||
minFov = 0.01;
|
minFov = 0.01;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Aircraft">
|
<Package name="Aircraft">
|
||||||
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
|
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
|
||||||
@ -34,7 +34,7 @@
|
|||||||
<Czech>Otevřít nákladní prostor</Czech>
|
<Czech>Otevřít nákladní prostor</Czech>
|
||||||
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
||||||
<Russian>Открыть грузовой отсек</Russian>
|
<Russian>Открыть грузовой отсек</Russian>
|
||||||
<Italian>Apri la porta del cargo</Italian>
|
<Italian>Apri la rampa di carico</Italian>
|
||||||
<Portuguese>Abrir porta de carga</Portuguese>
|
<Portuguese>Abrir porta de carga</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Aircraft_CloseCargoRamp">
|
<Key ID="STR_ACE_Aircraft_CloseCargoRamp">
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<Czech>Zavřít nákladní prostor</Czech>
|
<Czech>Zavřít nákladní prostor</Czech>
|
||||||
<Hungarian>Rakodórámpa zárása</Hungarian>
|
<Hungarian>Rakodórámpa zárása</Hungarian>
|
||||||
<Russian>Закрыть грузовой отсек</Russian>
|
<Russian>Закрыть грузовой отсек</Russian>
|
||||||
<Italian>Chiudi la porta del cargo</Italian>
|
<Italian>Chiudi la rampa di carico</Italian>
|
||||||
<Portuguese>Fechar porta de carga</Portuguese>
|
<Portuguese>Fechar porta de carga</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
|
1
addons/atragmx/$PBOPREFIX$
Normal file
1
addons/atragmx/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
|||||||
|
z\ace\addons\atragmx
|
@ -59,7 +59,7 @@ if (GVAR(currentUnit) == 1) then {
|
|||||||
private ["_boreHeight", "_bulletMass", "_bulletDiameter", "_airFriction", "_rifleTwist", "_muzzleVelocity", "_zeroRange"];
|
private ["_boreHeight", "_bulletMass", "_bulletDiameter", "_airFriction", "_rifleTwist", "_muzzleVelocity", "_zeroRange"];
|
||||||
_boreHeight = parseNumber(ctrlText 120000);
|
_boreHeight = parseNumber(ctrlText 120000);
|
||||||
_bulletMass = parseNumber(ctrlText 120010);
|
_bulletMass = parseNumber(ctrlText 120010);
|
||||||
_bulletDiameter = parseNumber(ctrlText 120020);
|
_bulletDiameter = parseNumber(ctrlText 120020) * 10;
|
||||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||||
_airFriction = 0.1 max parseNumber(ctrlText 120030) min 2;
|
_airFriction = 0.1 max parseNumber(ctrlText 120030) min 2;
|
||||||
} else {
|
} else {
|
||||||
@ -71,7 +71,7 @@ _zeroRange = parseNumber (ctrlText 120060);
|
|||||||
if (GVAR(currentUnit) != 2) then {
|
if (GVAR(currentUnit) != 2) then {
|
||||||
_boreHeight = _boreHeight * 2.54;
|
_boreHeight = _boreHeight * 2.54;
|
||||||
_bulletMass = _bulletMass * 0.06479891;
|
_bulletMass = _bulletMass * 0.06479891;
|
||||||
_bulletDiameter = _bulletDiameter * 10 * 2.54;
|
_bulletDiameter = _bulletDiameter * 2.54;
|
||||||
_rifleTwist = _rifleTwist * 2.54;
|
_rifleTwist = _rifleTwist * 2.54;
|
||||||
_muzzleVelocity = _muzzleVelocity / 3.2808399;
|
_muzzleVelocity = _muzzleVelocity / 3.2808399;
|
||||||
};
|
};
|
||||||
@ -95,36 +95,6 @@ if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) t
|
|||||||
GVAR(workingMemory) set [1, _muzzleVelocity];
|
GVAR(workingMemory) set [1, _muzzleVelocity];
|
||||||
GVAR(workingMemory) set [2, _zeroRange];
|
GVAR(workingMemory) set [2, _zeroRange];
|
||||||
|
|
||||||
private ["_elevationCur", "_windageCur", "_clickSize", "_clickNumber", "_clickInterval"];
|
|
||||||
_elevationCur = GVAR(workingMemory) select 10;
|
|
||||||
_windageCur = GVAR(workingMemory) select 11;
|
|
||||||
|
|
||||||
switch (GVAR(currentScopeUnit)) do {
|
|
||||||
case 0: {
|
|
||||||
_elevationCur = _elevationCur * 3.38;
|
|
||||||
_windageCur = _windageCur * 3.38;
|
|
||||||
};
|
|
||||||
case 2: {
|
|
||||||
_elevationCur = _elevationCur / 1.047;
|
|
||||||
_windageCur = _windageCur / 1.047;
|
|
||||||
};
|
|
||||||
case 3: {
|
|
||||||
switch (GVAR(workingMemory) select 7) do {
|
|
||||||
case 0: { _clickSize = 1; };
|
|
||||||
case 1: { _clickSize = 1 / 1.047; };
|
|
||||||
case 2: { _clickSize = 3.38; };
|
|
||||||
};
|
|
||||||
_clickNumber = GVAR(workingMemory) select 8;
|
|
||||||
_clickInterval = _clickSize / _clickNumber;
|
|
||||||
|
|
||||||
_elevationCur = Round(_elevationCur / _clickInterval);
|
|
||||||
_windageCur = Round(_windageCur / _clickInterval);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
GVAR(workingMemory) set [10, _elevationCur];
|
|
||||||
GVAR(workingMemory) set [11, _windageCur];
|
|
||||||
|
|
||||||
[] call FUNC(update_gun);
|
[] call FUNC(update_gun);
|
||||||
[] call FUNC(update_gun_ammo_data);
|
[] call FUNC(update_gun_ammo_data);
|
||||||
[] call FUNC(update_atmosphere);
|
[] call FUNC(update_atmosphere);
|
||||||
|
@ -30,7 +30,7 @@ if (GVAR(currentUnit) != 2) then {
|
|||||||
if (GVAR(currentUnit) != 2) then {
|
if (GVAR(currentUnit) != 2) then {
|
||||||
ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) / 10 / 2.54 * 1000) / 1000)];
|
ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) / 10 / 2.54 * 1000) / 1000)];
|
||||||
} else {
|
} else {
|
||||||
ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) * 1000) / 1000)];
|
ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) / 10 * 1000) / 1000)];
|
||||||
};
|
};
|
||||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||||
ctrlSetText [120030, Str(Round((GVAR(workingMemory) select 15) * 1000) / 1000)];
|
ctrlSetText [120030, Str(Round((GVAR(workingMemory) select 15) * 1000) / 1000)];
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
{
|
{
|
||||||
// Conditions: canInteract
|
// Conditions: canInteract
|
||||||
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||||
if (GVAR(active)) exitWith {false};
|
if (GVAR(active)) exitWith {
|
||||||
|
closeDialog 0;
|
||||||
|
false
|
||||||
|
};
|
||||||
// Statement
|
// Statement
|
||||||
[] call FUNC(create_dialog);
|
[] call FUNC(create_dialog);
|
||||||
false
|
false
|
||||||
|
@ -1 +1 @@
|
|||||||
z\ace\Addons\attach
|
z\ace\addons\attach
|
@ -1,5 +1,5 @@
|
|||||||
#define COMPONENT attach
|
#define COMPONENT attach
|
||||||
#include "\z\ace\Addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
#ifdef DEBUG_ENABLED_ATTACH
|
#ifdef DEBUG_ENABLED_ATTACH
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
@ -9,4 +9,4 @@
|
|||||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_ATTACH
|
#define DEBUG_SETTINGS DEBUG_SETTINGS_ATTACH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "\z\ace\Addons\main\script_macros.hpp"
|
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -179,7 +179,7 @@
|
|||||||
<Portuguese>Erro ao fixar</Portuguese>
|
<Portuguese>Erro ao fixar</Portuguese>
|
||||||
<Polish>Przyczepianie nie powiodło się</Polish>
|
<Polish>Przyczepianie nie powiodło się</Polish>
|
||||||
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
|
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
|
||||||
<Italian>Impossibile Attaccare</Italian>
|
<Italian>Non si attacca</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Attach_Item_Attached">
|
<Key ID="STR_ACE_Attach_Item_Attached">
|
||||||
<English>%1<br/>Attached</English>
|
<English>%1<br/>Attached</English>
|
||||||
|
@ -190,7 +190,7 @@ class CfgVehicles {
|
|||||||
class ACE_Box_Ammo: NATO_Box_Base {
|
class ACE_Box_Ammo: NATO_Box_Base {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
accuracy = 1000;
|
accuracy = 1000;
|
||||||
displayName = "[ACE] Ammo Supply Crate";
|
displayName = "$STR_ACE_AmmoSupplyCrate_DisplayName";
|
||||||
model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F";
|
model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F";
|
||||||
author = "$STR_ACE_Common_ACETeam";
|
author = "$STR_ACE_Common_ACETeam";
|
||||||
class TransportMagazines {
|
class TransportMagazines {
|
||||||
|
@ -1,16 +1,13 @@
|
|||||||
|
|
||||||
|
class Single;
|
||||||
|
class Burst;
|
||||||
|
class FullAuto;
|
||||||
class Mode_SemiAuto;
|
class Mode_SemiAuto;
|
||||||
|
class Mode_Burst;
|
||||||
class Mode_FullAuto;
|
class Mode_FullAuto;
|
||||||
|
|
||||||
class CfgWeapons {
|
class CfgWeapons {
|
||||||
class DMR_02_base_F;
|
|
||||||
class DMR_03_base_F;
|
|
||||||
class DMR_04_base_F;
|
|
||||||
class DMR_05_base_F;
|
|
||||||
class DMR_06_base_F;
|
|
||||||
class GM6_base_F;
|
|
||||||
class LMG_RCWS;
|
class LMG_RCWS;
|
||||||
class LRR_base_F;
|
|
||||||
class MGun;
|
class MGun;
|
||||||
class MGunCore;
|
class MGunCore;
|
||||||
class MMG_01_base_F;
|
class MMG_01_base_F;
|
||||||
@ -22,12 +19,58 @@ class CfgWeapons {
|
|||||||
|
|
||||||
/* Long Rifles */
|
/* Long Rifles */
|
||||||
|
|
||||||
class EBR_base_F: Rifle_Long_Base_F {
|
class GM6_base_F: Rifle_Long_Base_F {
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
class Single: Mode_SemiAuto {
|
||||||
class MuzzleSlot: MuzzleSlot {
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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 DMR_01_base_F: Rifle_Long_Base_F {
|
||||||
@ -36,6 +79,24 @@ class CfgWeapons {
|
|||||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
class Single: Mode_SemiAuto {
|
||||||
|
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class EBR_base_F: Rifle_Long_Base_F {
|
||||||
|
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||||
|
class MuzzleSlot: MuzzleSlot {
|
||||||
|
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class 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 */
|
/* MX */
|
||||||
@ -46,14 +107,6 @@ class CfgWeapons {
|
|||||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Single: Mode_SemiAuto {
|
|
||||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
|
||||||
// Based on widely cited 2 MOA figure for new 5.56 ACR.
|
|
||||||
};
|
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
|
||||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||||
magazines[] = {
|
magazines[] = {
|
||||||
@ -74,14 +127,6 @@ class CfgWeapons {
|
|||||||
compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
|
compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Single: Mode_SemiAuto {
|
|
||||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
|
||||||
// Based on widely cited 2 MOA figure for new 5.56 ACR.
|
|
||||||
};
|
|
||||||
|
|
||||||
class manual: FullAuto {
|
|
||||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
class arifle_MXM_F: arifle_MX_Base_F {
|
class arifle_MXM_F: arifle_MX_Base_F {
|
||||||
magazines[] = {
|
magazines[] = {
|
||||||
@ -95,12 +140,11 @@ class CfgWeapons {
|
|||||||
ACE_barrelTwist=228.6;
|
ACE_barrelTwist=228.6;
|
||||||
ACE_barrelLength=457.2;
|
ACE_barrelLength=457.2;
|
||||||
class Single: Single {
|
class Single: Single {
|
||||||
dispersion = 0.00029; // radians. Equal to 1 MOA.
|
dispersion = 0.000436; // radians. Equal to 1.50 MOA.
|
||||||
// 6.5mm is easily capable of this in a half-tuned rifle.
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class FullAuto: FullAuto {
|
class FullAuto: FullAuto {
|
||||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
dispersion = 0.000436; // radians. Equal to 1.50 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -112,15 +156,6 @@ class CfgWeapons {
|
|||||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Single: Mode_SemiAuto {
|
|
||||||
dispersion = 0.000800; // radians. Equal to 2.75 MOA.
|
|
||||||
// Based on widely cited 2 MOA figure for new 5.56 ACR?
|
|
||||||
// Use your imagination for fictional weapons!
|
|
||||||
};
|
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
|
||||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -139,13 +174,6 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
ACE_barrelTwist=177.8;
|
ACE_barrelTwist=177.8;
|
||||||
ACE_barrelLength=317.5;
|
ACE_barrelLength=317.5;
|
||||||
class manual: Mode_FullAuto {
|
|
||||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
|
||||||
};
|
|
||||||
|
|
||||||
class Single: manual {
|
|
||||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
class LMG_Zafir_F: Rifle_Long_Base_F {
|
class LMG_Zafir_F: Rifle_Long_Base_F {
|
||||||
initSpeed = -1.0;
|
initSpeed = -1.0;
|
||||||
@ -156,13 +184,6 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
ACE_barrelTwist=304.8;
|
ACE_barrelTwist=304.8;
|
||||||
ACE_barrelLength=459.74;
|
ACE_barrelLength=459.74;
|
||||||
class FullAuto: Mode_FullAuto {
|
|
||||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
|
||||||
};
|
|
||||||
|
|
||||||
class Single: Mode_SemiAuto {
|
|
||||||
dispersion = 0.00175; // radians. Equal to 6 MOA.
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -173,13 +194,6 @@ class CfgWeapons {
|
|||||||
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Single: Mode_SemiAuto {
|
|
||||||
dispersion = 0.000727; // radians. Equal to 2.5 MOA, about the limit of mass-produced M855.
|
|
||||||
};
|
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
|
||||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
class mk20_base_F: Rifle_Base_F {
|
class mk20_base_F: Rifle_Base_F {
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||||
@ -187,14 +201,6 @@ class CfgWeapons {
|
|||||||
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Single: Mode_SemiAuto {
|
|
||||||
dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
|
|
||||||
// some extra for these worn out Greek Army service rifles.
|
|
||||||
};
|
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
|
||||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -202,12 +208,15 @@ class CfgWeapons {
|
|||||||
class SDAR_base_F: Rifle_Base_F {
|
class SDAR_base_F: Rifle_Base_F {
|
||||||
initSpeed = -0.989;
|
initSpeed = -0.989;
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
|
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||||
// some extra because Kel-Tec.
|
};
|
||||||
|
|
||||||
|
class Burst: Mode_Burst {
|
||||||
|
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||||
};
|
};
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
class FullAuto: Mode_FullAuto {
|
||||||
dispersion = 0.00147; // radians. Equal to 5.1 MOA.
|
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class pdw2000_base_F: Rifle_Base_F {
|
class pdw2000_base_F: Rifle_Base_F {
|
||||||
@ -642,11 +651,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -675,11 +684,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -708,11 +717,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -741,11 +750,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -774,11 +783,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -807,11 +816,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -840,11 +849,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -873,11 +882,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
@ -906,11 +915,11 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class MuzzleCoef {
|
class MuzzleCoef {
|
||||||
dispersionCoef = "0.8f";
|
dispersionCoef = "0.95f";
|
||||||
artilleryDispersionCoef = "1.0f";
|
artilleryDispersionCoef = "1.0f";
|
||||||
fireLightCoef = "0.5f";
|
fireLightCoef = "0.5f";
|
||||||
recoilCoef = "1.0f";
|
recoilCoef = "0.95f";
|
||||||
recoilProneCoef = "1.0f";
|
recoilProneCoef = "0.95f";
|
||||||
minRangeCoef = "1.0f";
|
minRangeCoef = "1.0f";
|
||||||
minRangeProbabCoef = "1.0f";
|
minRangeProbabCoef = "1.0f";
|
||||||
midRangeCoef = "1.0f";
|
midRangeCoef = "1.0f";
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
ace_ballistics
|
ace_ballistics
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Changes to weapon and ammunition values.
|
Changes to weapon, magazine and ammunition values.
|
||||||
|
|
||||||
|
|
||||||
## Maintainers
|
## Maintainers
|
||||||
|
|
||||||
The people responsible for merging changes to this component or answering potential questions.
|
The people responsible for merging changes to this component or answering potential questions.
|
||||||
|
|
||||||
|
- [Ruthberg] (http://github.com/Ulteq)
|
||||||
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
|
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
|
||||||
- [commy2](https://github.com/commy2)
|
- [commy2](https://github.com/commy2)
|
||||||
|
@ -1592,5 +1592,9 @@
|
|||||||
<Portuguese>Calibre: 12.7x99mm (AMAX)<br/>Cartuchos: 5</Portuguese>
|
<Portuguese>Calibre: 12.7x99mm (AMAX)<br/>Cartuchos: 5</Portuguese>
|
||||||
<Hungarian>Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5</Hungarian>
|
<Hungarian>Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_AmmoSupplyCrate_DisplayName">
|
||||||
|
<English>[ACE] Ammo Supply Crate</English>
|
||||||
|
<Polish>[ACE] Skrzynka z amunicją</Polish>
|
||||||
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -161,7 +161,7 @@ class CfgVehicles {
|
|||||||
class GVAR(ModuleSurrender): Module_F {
|
class GVAR(ModuleSurrender): Module_F {
|
||||||
author = "$STR_ACE_Common_ACETeam";
|
author = "$STR_ACE_Common_ACETeam";
|
||||||
category = "ACE";
|
category = "ACE";
|
||||||
displayName = "Make Unit Surrender";
|
displayName = "$STR_ACE_Captives_ModuleSurrender_DisplayName"; //Make Unit Surrender
|
||||||
function = QUOTE(DFUNC(moduleSurrender));
|
function = QUOTE(DFUNC(moduleSurrender));
|
||||||
scope = 2; //show in editor
|
scope = 2; //show in editor
|
||||||
scopeCurator = 2; //show in zeus
|
scopeCurator = 2; //show in zeus
|
||||||
@ -172,7 +172,7 @@ class CfgVehicles {
|
|||||||
functionPriority = 0;
|
functionPriority = 0;
|
||||||
class Arguments {};
|
class Arguments {};
|
||||||
class ModuleDescription: ModuleDescription {
|
class ModuleDescription: ModuleDescription {
|
||||||
description = "Sync a unit to make them surrender.<br/>Source: ace_captives";
|
description = "$STR_ACE_Captives_ModuleSurrender_Description"; //Sync a unit to make them surrender.<br/>Source: ace_captives
|
||||||
sync[] = {"AnyAI"};
|
sync[] = {"AnyAI"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -11,7 +11,7 @@ if (isServer) then {
|
|||||||
_escortedUnit = _disconnectedPlayer getVariable [QGVAR(escortedUnit), objNull];
|
_escortedUnit = _disconnectedPlayer getVariable [QGVAR(escortedUnit), objNull];
|
||||||
if ((!isNull _escortedUnit) && {(attachedTo _escortedUnit) == _disconnectedPlayer}) then {
|
if ((!isNull _escortedUnit) && {(attachedTo _escortedUnit) == _disconnectedPlayer}) then {
|
||||||
detach _escortedUnit;
|
detach _escortedUnit;
|
||||||
systemChat "debug: DC detach";
|
//systemChat "debug: DC detach";
|
||||||
};
|
};
|
||||||
if (_disconnectedPlayer getVariable [QGVAR(isEscorting), false]) then {
|
if (_disconnectedPlayer getVariable [QGVAR(isEscorting), false]) then {
|
||||||
_disconnectedPlayer setVariable [QGVAR(isEscorting), false, true];
|
_disconnectedPlayer setVariable [QGVAR(isEscorting), false, true];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Author: PabstMirror
|
* Author: PabstMirror
|
||||||
* Checks the conditions for being able to surrender
|
* Checks the conditions for being able switch surrender states
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: caller (player) <OBJECT>
|
* 0: caller (player) <OBJECT>
|
||||||
@ -18,14 +18,14 @@
|
|||||||
|
|
||||||
PARAMS_2(_unit,_newSurrenderState);
|
PARAMS_2(_unit,_newSurrenderState);
|
||||||
|
|
||||||
if (currentWeapon _unit != "") exitWith {false};
|
|
||||||
|
|
||||||
private "_returnValue";
|
private "_returnValue";
|
||||||
|
|
||||||
_returnValue = if (_newSurrenderState) then {
|
_returnValue = if (_newSurrenderState) then {
|
||||||
!(_unit getVariable [QGVAR(isSurrendering), false]); //Not currently surrendering
|
//no weapon equiped AND not currently surrendering and
|
||||||
|
(currentWeapon _unit == "") && {!(_unit getVariable [QGVAR(isSurrendering), false])}
|
||||||
} else {
|
} else {
|
||||||
(_unit getVariable [QGVAR(isSurrendering), false]); //is Surrendering
|
//is Surrendering
|
||||||
|
(_unit getVariable [QGVAR(isSurrendering), false])
|
||||||
};
|
};
|
||||||
|
|
||||||
_returnValue
|
_returnValue
|
||||||
|
@ -17,8 +17,10 @@
|
|||||||
|
|
||||||
PARAMS_1(_oldUnit);
|
PARAMS_1(_oldUnit);
|
||||||
|
|
||||||
|
if (!local _oldUnit) exitWith {};
|
||||||
|
|
||||||
if (_oldUnit getVariable [QGVAR(isHandcuffed), false]) then {
|
if (_oldUnit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||||
[_oldUnit, false] call FUNC(setSurrendered);
|
[_oldUnit, false] call FUNC(setHandcuffed);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<French>Capturer le prisonnier</French>
|
<French>Capturer le prisonnier</French>
|
||||||
<Polish>Aresztuj</Polish>
|
<Polish>Aresztuj</Polish>
|
||||||
<Czech>Zajmout Osobu</Czech>
|
<Czech>Zajmout Osobu</Czech>
|
||||||
<Italian>Arresta il Prigioniero</Italian>
|
<Italian>Arresta il prigioniero</Italian>
|
||||||
<Portuguese>Tomar Prisioneiro</Portuguese>
|
<Portuguese>Tomar Prisioneiro</Portuguese>
|
||||||
<Hungarian>Foglyul ejtés</Hungarian>
|
<Hungarian>Foglyul ejtés</Hungarian>
|
||||||
<Russian>Взять в плен</Russian>
|
<Russian>Взять в плен</Russian>
|
||||||
@ -20,7 +20,7 @@
|
|||||||
<Polish>Wypuść więźnia</Polish>
|
<Polish>Wypuść więźnia</Polish>
|
||||||
<French>Libérer le prisonnier</French>
|
<French>Libérer le prisonnier</French>
|
||||||
<Czech>Osvobodit Zajatce</Czech>
|
<Czech>Osvobodit Zajatce</Czech>
|
||||||
<Italian>Libera il Prigioniero</Italian>
|
<Italian>Libera il prigioniero</Italian>
|
||||||
<Portuguese>Libertar Prisioneiro</Portuguese>
|
<Portuguese>Libertar Prisioneiro</Portuguese>
|
||||||
<Hungarian>Fogoly szabadon engedése</Hungarian>
|
<Hungarian>Fogoly szabadon engedése</Hungarian>
|
||||||
<Russian>Освободить пленника</Russian>
|
<Russian>Освободить пленника</Russian>
|
||||||
@ -71,7 +71,7 @@
|
|||||||
<Hungarian>Fogoly berakása</Hungarian>
|
<Hungarian>Fogoly berakása</Hungarian>
|
||||||
<Russian>Загрузить пленного</Russian>
|
<Russian>Загрузить пленного</Russian>
|
||||||
<Portuguese>Embarcar Prisioneiro</Portuguese>
|
<Portuguese>Embarcar Prisioneiro</Portuguese>
|
||||||
<Italian>Carica il prigioniero</Italian>
|
<Italian>Fai salire il prigioniero</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_UnloadCaptive">
|
<Key ID="STR_ACE_Captives_UnloadCaptive">
|
||||||
<English>Unload Captive</English>
|
<English>Unload Captive</English>
|
||||||
@ -83,7 +83,7 @@
|
|||||||
<Hungarian>Fogoly kivevése</Hungarian>
|
<Hungarian>Fogoly kivevése</Hungarian>
|
||||||
<Russian>Выгрузить пленного</Russian>
|
<Russian>Выгрузить пленного</Russian>
|
||||||
<Portuguese>Desembarcar Prisioneiro</Portuguese>
|
<Portuguese>Desembarcar Prisioneiro</Portuguese>
|
||||||
<Italian>Scarica il prigioniero</Italian>
|
<Italian>Fai scendere il prigioniero</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_CableTie">
|
<Key ID="STR_ACE_Captives_CableTie">
|
||||||
<English>Cable Tie</English>
|
<English>Cable Tie</English>
|
||||||
@ -105,7 +105,7 @@
|
|||||||
<French>Les Serflex permettent de menotter les prisonniers.</French>
|
<French>Les Serflex permettent de menotter les prisonniers.</French>
|
||||||
<Czech>Stahovací pásky vám umožní zadržet vězně.</Czech>
|
<Czech>Stahovací pásky vám umožní zadržet vězně.</Czech>
|
||||||
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
|
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
|
||||||
<Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian>
|
<Italian>Fascetta per arrestare i prigionieri</Italian>
|
||||||
<Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian>
|
<Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian>
|
||||||
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
|
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -119,7 +119,7 @@
|
|||||||
<Polish>Ekwipunek rewidowanej osoby</Polish>
|
<Polish>Ekwipunek rewidowanej osoby</Polish>
|
||||||
<Russian>Инвентарь обысканного человека</Russian>
|
<Russian>Инвентарь обысканного человека</Russian>
|
||||||
<Portuguese>Inventário da pessoa revistada</Portuguese>
|
<Portuguese>Inventário da pessoa revistada</Portuguese>
|
||||||
<Italian>Inventario delle persone perquisite</Italian>
|
<Italian>Inventario della persona perquisita</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_FriskPerson">
|
<Key ID="STR_ACE_Captives_FriskPerson">
|
||||||
<English>Frisk person</English>
|
<English>Frisk person</English>
|
||||||
@ -143,7 +143,7 @@
|
|||||||
<Polish>Poddaj się</Polish>
|
<Polish>Poddaj się</Polish>
|
||||||
<Russian>Сдаться</Russian>
|
<Russian>Сдаться</Russian>
|
||||||
<Hungarian>Megadás</Hungarian>
|
<Hungarian>Megadás</Hungarian>
|
||||||
<Italian>Arreso</Italian>
|
<Italian>Arrenditi</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_StopSurrendering">
|
<Key ID="STR_ACE_Captives_StopSurrendering">
|
||||||
<English>Stop Surrendering</English>
|
<English>Stop Surrendering</English>
|
||||||
@ -155,7 +155,7 @@
|
|||||||
<Polish>Podejmij walkę ponownie</Polish>
|
<Polish>Podejmij walkę ponownie</Polish>
|
||||||
<Russian>Прекратить сдачу в плен</Russian>
|
<Russian>Прекратить сдачу в плен</Russian>
|
||||||
<Hungarian>Megadás abbahagyása</Hungarian>
|
<Hungarian>Megadás abbahagyása</Hungarian>
|
||||||
<Italian>Annulla la resa</Italian>
|
<Italian>Smetti di arrenderti</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
|
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
|
||||||
<English>Only use on alive units</English>
|
<English>Only use on alive units</English>
|
||||||
@ -191,7 +191,15 @@
|
|||||||
<Polish>Nie ma nic pod kursorem</Polish>
|
<Polish>Nie ma nic pod kursorem</Polish>
|
||||||
<Russian>Ничего не выделено</Russian>
|
<Russian>Ничего не выделено</Russian>
|
||||||
<Hungarian>Semmi sincs az egér alatt</Hungarian>
|
<Hungarian>Semmi sincs az egér alatt</Hungarian>
|
||||||
<Italian>Niente selezionato</Italian>
|
<Italian>Nessuna selezione</Italian>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Captives_ModuleSurrender_DisplayName">
|
||||||
|
<English>Make Unit Surrender</English>
|
||||||
|
<Polish>Poddaj się!</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Captives_ModuleSurrender_Description">
|
||||||
|
<English>Sync a unit to make them surrender.<br />Source: ace_captives</English>
|
||||||
|
<Polish>Zsynchronizuj z jednostką aby sprawić by się poddała<br />Źródło: ace_captives</Polish>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -25,72 +25,72 @@ class CfgVehicles {
|
|||||||
// += needs a non inherited entry in that class, otherwise it simply overwrites
|
// += needs a non inherited entry in that class, otherwise it simply overwrites
|
||||||
//#include <DefaultItems.hpp>
|
//#include <DefaultItems.hpp>
|
||||||
|
|
||||||
class Module_F;
|
class Logic;
|
||||||
|
class Module_F: Logic {
|
||||||
|
class ModuleDescription {};
|
||||||
|
};
|
||||||
class ACE_ModuleCheckPBOs: Module_F {
|
class ACE_ModuleCheckPBOs: Module_F {
|
||||||
author = "$STR_ACE_Common_ACETeam";
|
author = "$STR_ACE_Common_ACETeam";
|
||||||
category = "ACE";
|
category = "ACE";
|
||||||
displayName = "Check PBOs";
|
displayName = "$STR_ACE_Common_CheckPBO_DisplayName";
|
||||||
function = QFUNC(moduleCheckPBOs);
|
function = QFUNC(moduleCheckPBOs);
|
||||||
scope = 2;
|
scope = 2;
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_CheckPBO_ca.paa));
|
icon = QUOTE(PATHTOF(UI\Icon_Module_CheckPBO_ca.paa));
|
||||||
class Arguments {
|
class Arguments {
|
||||||
class Action {
|
class Action {
|
||||||
displayName = "Action";
|
displayName = "$STR_ACE_Common_CheckPBO_Action_DisplayName";
|
||||||
description = "What to do with people who do not have the right PBOs?";
|
description = "$STR_ACE_Common_CheckPBO_Action_Description";
|
||||||
class values {
|
class values {
|
||||||
class WarnOnce {
|
class WarnOnce {
|
||||||
default = 1;
|
default = 1;
|
||||||
name = "Warn once";
|
name = "$STR_ACE_Common_CheckPBO_Action_WarnOnce";
|
||||||
value = 0;
|
value = 0;
|
||||||
};
|
};
|
||||||
class Warn {
|
class Warn {
|
||||||
name = "Warn (permanent)";
|
name = "$STR_ACE_Common_CheckPBO_Action_WarnPerm";
|
||||||
value = 1;
|
value = 1;
|
||||||
};
|
};
|
||||||
class Kick {
|
class Kick {
|
||||||
name = "Kick";
|
name = "$STR_ACE_Common_CheckPBO_Action_Kick";
|
||||||
value = 2;
|
value = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class CheckAll {
|
class CheckAll {
|
||||||
displayName = "Check all addons";
|
displayName = "$STR_ACE_Common_CheckPBO_CheckAll_DisplayName";
|
||||||
description = "Check all addons instead of only those of ACE?";
|
description = "$STR_ACE_Common_CheckPBO_CheckAll_Description";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
class values {
|
defaultValue = 0;
|
||||||
class WarnOnce {
|
|
||||||
default = 1;
|
|
||||||
name = "No";
|
|
||||||
value = 0;
|
|
||||||
};
|
|
||||||
class Warn {
|
|
||||||
name = "Yes";
|
|
||||||
value = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
class Whitelist {
|
class Whitelist {
|
||||||
displayName = "Whitelist";
|
displayName = "$STR_ACE_Common_CheckPBO_Whitelist_DisplayName";
|
||||||
description = "What addons are allowed regardless?";
|
description = "$STR_ACE_Common_CheckPBO_Whitelist_Description";
|
||||||
typeName = "STRING";
|
typeName = "STRING";
|
||||||
class values {
|
class values {
|
||||||
default = "[]";
|
default = "[]";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
class ModuleDescription: ModuleDescription {
|
||||||
|
description = "$STR_ACE_Common_CheckPBO_Description";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class ACE_ModuleLSDVehicles: Module_F {
|
class ACE_ModuleLSDVehicles: Module_F {
|
||||||
author = "$STR_ACE_Common_ACETeam";
|
author = "$STR_ACE_Common_ACETeam";
|
||||||
category = "ACE";
|
category = "ACE";
|
||||||
displayName = "LSD Vehicles";
|
displayName = "$STR_ACE_Common_LSDVehicles_DisplayName";
|
||||||
function = "ACE_Common_fnc_moduleLSDVehicles";
|
function = "ACE_Common_fnc_moduleLSDVehicles";
|
||||||
scope = 2;
|
scope = 2;
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
|
icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
class Arguments {
|
class Arguments {
|
||||||
};
|
};
|
||||||
|
class ModuleDescription: ModuleDescription {
|
||||||
|
description = "$STR_ACE_Common_LSDVehicles_Description";
|
||||||
|
sync[] = {"AnyVehicle"};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class Box_NATO_Support_F;
|
class Box_NATO_Support_F;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// ACE - Common
|
// ACE - Common
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
//IGNORE_PRIVATE_WARNING("_handleNetEvent", "_handleRequestAllSyncedEvents", "_handleRequestSyncedEvent", "_handleSyncedEvent");
|
||||||
|
|
||||||
// Load settings from profile
|
// Load settings from profile
|
||||||
if (hasInterface) then {
|
if (hasInterface) then {
|
||||||
call FUNC(loadSettingsFromProfile);
|
call FUNC(loadSettingsFromProfile);
|
||||||
@ -9,10 +11,9 @@ if (hasInterface) then {
|
|||||||
|
|
||||||
// Listens for global "SettingChanged" events, to update the force status locally
|
// Listens for global "SettingChanged" events, to update the force status locally
|
||||||
["SettingChanged", {
|
["SettingChanged", {
|
||||||
|
|
||||||
PARAMS_2(_name,_value);
|
PARAMS_2(_name,_value);
|
||||||
if !(count _this > 2) exitWith {};
|
if !(count _this > 2) exitWith {};
|
||||||
|
private ["_force", "_settingData"];
|
||||||
_force = _this select 2;
|
_force = _this select 2;
|
||||||
if (_force) then {
|
if (_force) then {
|
||||||
_settingData = [_name] call FUNC(getSettingData);
|
_settingData = [_name] call FUNC(getSettingData);
|
||||||
@ -54,6 +55,7 @@ QGVAR(remoteFnc) addPublicVariableEventHandler {
|
|||||||
|
|
||||||
[missionNamespace] call FUNC(executePersistent);
|
[missionNamespace] call FUNC(executePersistent);
|
||||||
|
|
||||||
|
private ["_currentVersion", "_previousVersion"];
|
||||||
// check previous version number from profile
|
// check previous version number from profile
|
||||||
_currentVersion = getText (configFile >> "CfgPatches" >> QUOTE(ADDON) >> "version");
|
_currentVersion = getText (configFile >> "CfgPatches" >> QUOTE(ADDON) >> "version");
|
||||||
_previousVersion = profileNamespace getVariable ["ACE_VersionNumberString", ""];
|
_previousVersion = profileNamespace getVariable ["ACE_VersionNumberString", ""];
|
||||||
@ -131,6 +133,7 @@ GVAR(OldPlayerWeapon) = currentWeapon ACE_player;
|
|||||||
|
|
||||||
// PFH to raise varios events
|
// PFH to raise varios events
|
||||||
[{
|
[{
|
||||||
|
private ["_newCameraView", "_newInventoryDisplayIsOpen", "_newPlayerInventory", "_newPlayerTurret", "_newPlayerVehicle", "_newPlayerVisionMode", "_newPlayerWeapon", "_newZeusDisplayIsOpen"];
|
||||||
// "playerInventoryChanged" event
|
// "playerInventoryChanged" event
|
||||||
_newPlayerInventory = [ACE_player] call FUNC(getAllGear);
|
_newPlayerInventory = [ACE_player] call FUNC(getAllGear);
|
||||||
if !(_newPlayerInventory isEqualTo GVAR(OldPlayerInventory)) then {
|
if !(_newPlayerInventory isEqualTo GVAR(OldPlayerInventory)) then {
|
||||||
@ -212,6 +215,7 @@ GVAR(OldIsCamera) = false;
|
|||||||
[{
|
[{
|
||||||
|
|
||||||
// "activeCameraChanged" event
|
// "activeCameraChanged" event
|
||||||
|
private ["_isCamera"];
|
||||||
_isCamera = {!isNull _x} count ALL_CAMERAS > 0;
|
_isCamera = {!isNull _x} count ALL_CAMERAS > 0;
|
||||||
if !(_isCamera isEqualTo GVAR(OldIsCamera)) then {
|
if !(_isCamera isEqualTo GVAR(OldIsCamera)) then {
|
||||||
// Raise ACE event locally
|
// Raise ACE event locally
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
//IGNORE_PRIVATE_WARNING("_handleNetEvent", "_handleRequestAllSyncedEvents", "_handleRequestSyncedEvent", "_handleSyncedEvent");
|
||||||
|
|
||||||
ADDON = false;
|
ADDON = false;
|
||||||
|
|
||||||
// ACE Common Function
|
// ACE Common Function
|
||||||
@ -170,7 +172,6 @@ PREP(sortAlphabeticallyBy);
|
|||||||
PREP(stringCompare);
|
PREP(stringCompare);
|
||||||
PREP(stringToColoredText);
|
PREP(stringToColoredText);
|
||||||
PREP(stringRemoveWhiteSpace);
|
PREP(stringRemoveWhiteSpace);
|
||||||
PREP(subString);
|
|
||||||
PREP(switchToGroupSide);
|
PREP(switchToGroupSide);
|
||||||
PREP(throttledPublicVariable);
|
PREP(throttledPublicVariable);
|
||||||
PREP(toBin);
|
PREP(toBin);
|
||||||
@ -183,6 +184,7 @@ PREP(unmuteUnit);
|
|||||||
PREP(useItem);
|
PREP(useItem);
|
||||||
PREP(useMagazine);
|
PREP(useMagazine);
|
||||||
PREP(waitAndExecute);
|
PREP(waitAndExecute);
|
||||||
|
PREP(waveHeightAt);
|
||||||
|
|
||||||
PREP(translateToWeaponSpace);
|
PREP(translateToWeaponSpace);
|
||||||
PREP(translateToModelSpace);
|
PREP(translateToModelSpace);
|
||||||
@ -301,6 +303,7 @@ if (hasInterface) then {
|
|||||||
// PFH to update the ACE_player variable
|
// PFH to update the ACE_player variable
|
||||||
[{
|
[{
|
||||||
if !(ACE_player isEqualTo (call FUNC(player))) then {
|
if !(ACE_player isEqualTo (call FUNC(player))) then {
|
||||||
|
private ["_oldPlayer"];
|
||||||
_oldPlayer = ACE_player;
|
_oldPlayer = ACE_player;
|
||||||
|
|
||||||
ACE_player = call FUNC(player);
|
ACE_player = call FUNC(player);
|
||||||
|
@ -101,7 +101,7 @@ class ACE_Settings {
|
|||||||
isClientSettable = 1;
|
isClientSettable = 1;
|
||||||
displayName = "$STR_ACE_Common_SettingFeedbackIconsName";
|
displayName = "$STR_ACE_Common_SettingFeedbackIconsName";
|
||||||
description = "$STR_ACE_Common_SettingFeedbackIconsDesc";
|
description = "$STR_ACE_Common_SettingFeedbackIconsDesc";
|
||||||
values[] = {"Hide", "Top right, downwards", "Top right, to the left", "Top left, downwards", "Top left, to the right"};
|
values[] = {"$STR_ACE_Common_Hide", "$STR_ACE_Common_TopRightDown", "$STR_ACE_Common_TopRightLeft", "$STR_ACE_Common_TopLeftDown", "$STR_ACE_Common_TopLeftRight"};
|
||||||
};
|
};
|
||||||
class GVAR(SettingProgressBarLocation) {
|
class GVAR(SettingProgressBarLocation) {
|
||||||
value = 0;
|
value = 0;
|
||||||
@ -110,7 +110,7 @@ class ACE_Settings {
|
|||||||
isClientSettable = 1;
|
isClientSettable = 1;
|
||||||
displayName = "$STR_ACE_Common_SettingProgressbarLocationName";
|
displayName = "$STR_ACE_Common_SettingProgressbarLocationName";
|
||||||
description = "$STR_ACE_Common_SettingProgressbarLocationDesc";
|
description = "$STR_ACE_Common_SettingProgressbarLocationDesc";
|
||||||
values[] = {"Top", "Bottom"};
|
values[] = {"$STR_ACE_Common_Top", "$STR_ACE_Common_Bottom"};
|
||||||
};
|
};
|
||||||
class GVAR(displayTextColor) {
|
class GVAR(displayTextColor) {
|
||||||
value[] = {0,0,0,0.1};
|
value[] = {0,0,0,0.1};
|
||||||
|
@ -2,10 +2,11 @@
|
|||||||
// internal handler for net events
|
// internal handler for net events
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_eventType", "_event", "_eventName", "_eventArgs", "_eventNames", "_eventIndex", "_eventTargets", "_sentEvents", "_owner", "_serverFlagged"];
|
private ["_eventName", "_eventArgs", "_eventNames", "_eventIndex", "_eventTargets", "_sentEvents", "_owner", "_serverFlagged", "_events"];
|
||||||
|
//IGNORE_PRIVATE_WARNING("_handleNetEvent");
|
||||||
|
|
||||||
_eventType = _this select 0;
|
|
||||||
_event = _this select 1;
|
PARAMS_2(_eventType,_event);
|
||||||
|
|
||||||
if (_eventType == "ACEg") then {
|
if (_eventType == "ACEg") then {
|
||||||
_eventName = _event select 0;
|
_eventName = _event select 0;
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
//#define DEBUG_MODE_FULL
|
//#define DEBUG_MODE_FULL
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
//IGNORE_PRIVATE_WARNING("_handleSyncedEvent");
|
||||||
|
|
||||||
//SEH_s
|
//SEH_s
|
||||||
if(isServer) then {
|
if(isServer) then {
|
||||||
// Find the event name, and shovel out the events to the client
|
// Find the event name, and shovel out the events to the client
|
||||||
@ -33,6 +35,7 @@ if(isServer) then {
|
|||||||
["SEH_s", _client, [_eventName, _eventLog] ] call FUNC(targetEvent);
|
["SEH_s", _client, [_eventName, _eventLog] ] call FUNC(targetEvent);
|
||||||
} else {
|
} else {
|
||||||
PARAMS_2(_eventName,_eventLog);
|
PARAMS_2(_eventName,_eventLog);
|
||||||
|
private ["_eventArgs"];
|
||||||
// This is the client handling the response from the server
|
// This is the client handling the response from the server
|
||||||
// Start running the events
|
// Start running the events
|
||||||
{
|
{
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_action", "_condition", "_statement", "_name", "_actionsVar", "_actionID", "_actions", "_id", "_actionIDs"];
|
private ["_unit", "_action", "_condition", "_statement", "_name", "_actionsVar", "_actionID", "_actions", "_id", "_actionIDs"];
|
||||||
|
//IGNORE_PRIVATE_WARNING("_count", "_index", "_return", "_target");
|
||||||
|
|
||||||
_unit = _this select 0;
|
_unit = _this select 0;
|
||||||
_action = _this select 1;
|
_action = _this select 1;
|
||||||
|
@ -18,16 +18,10 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_displayName", "_action", "_condition", "_statement", "_condition2", "_statement2", "_priority", "_name", "_actionsVar", "_id", "_actionIDs", "_actions", "_nameVar", "_addAction", "_actionID"];
|
private ["_name", "_actionsVar", "_id", "_actionIDs", "_actions", "_nameVar", "_addAction", "_actionID"];
|
||||||
|
//IGNORE_PRIVATE_WARNING("_target");
|
||||||
|
|
||||||
_unit = _this select 0;
|
PARAMS_8(_unit,_displayName,_action,_condition,_statement,_condition2,_statement2,_priority);
|
||||||
_displayName = _this select 1;
|
|
||||||
_action = _this select 2;
|
|
||||||
_condition = _this select 3;
|
|
||||||
_statement = _this select 4;
|
|
||||||
_condition2 = _this select 5;
|
|
||||||
_statement2 = _this select 6;
|
|
||||||
_priority = _this select 7;
|
|
||||||
|
|
||||||
if (isNil "_priority") then {_priority = 0};
|
if (isNil "_priority") then {_priority = 0};
|
||||||
|
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_conditionName", "_conditionFunc"];
|
private ["_conditionName", "_conditionFunc"];
|
||||||
|
//IGNORE_PRIVATE_WARNING("_player", "_target");
|
||||||
|
|
||||||
|
|
||||||
_conditionName = toLower (_this select 0);
|
_conditionName = toLower (_this select 0);
|
||||||
_conditionFunc = _this select 1;
|
_conditionFunc = _this select 1;
|
||||||
|
@ -11,9 +11,10 @@
|
|||||||
* Event handler ID number (for use with fnc_removeEventHandler)
|
* Event handler ID number (for use with fnc_removeEventHandler)
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
private ["_eventName", "_eventCode", "_eventNames", "_eventFunctions", "_eventNameCount", "_eventIndex", "_eventFunctionCount"];
|
|
||||||
_eventName = _this select 0;
|
private ["_eventNames", "_eventFunctions", "_eventNameCount", "_eventIndex", "_eventFunctionCount"];
|
||||||
_eventCode = _this select 1;
|
|
||||||
|
PARAMS_2(_eventName,_eventCode);
|
||||||
|
|
||||||
_eventNames = GVAR(events) select 0;
|
_eventNames = GVAR(events) select 0;
|
||||||
_eventFunctions = [];
|
_eventFunctions = [];
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_statement", "_actionsVar", "_id", "_actionIDs", "_actions"];
|
private ["_actionsVar", "_id", "_actionIDs", "_actions"];
|
||||||
|
|
||||||
_statement = _this select 0;
|
PARAMS_1(_statement);
|
||||||
|
|
||||||
if (typeName _statement == "STRING") then {
|
if (typeName _statement == "STRING") then {
|
||||||
_statement = compile _statement;
|
_statement = compile _statement;
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_statement", "_actionsVar", "_id", "_actionIDs", "_actions"];
|
private ["_actionsVar", "_id", "_actionIDs", "_actions"];
|
||||||
|
|
||||||
_statement = _this select 0;
|
PARAMS_1(_statement);
|
||||||
|
|
||||||
if (typeName _statement == "STRING") then {
|
if (typeName _statement == "STRING") then {
|
||||||
_statement = compile _statement;
|
_statement = compile _statement;
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
* If has only local effects.
|
* If has only local effects.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: _name (String)
|
* 0: name <STRING>
|
||||||
* 1: _typeName (String)
|
* 1: typeName <STRING>
|
||||||
* 2: _isClientSetable (Bool)
|
* 2: isClientSetable <BOOL>
|
||||||
* 3: _localizedName (String)
|
* 3: localizedName <STRING>
|
||||||
* 4: _localizedDescription (String)
|
* 4: localizedDescription <STRING>
|
||||||
* 5: _possibleValues (Array)
|
* 5: possibleValues <ARRAY>
|
||||||
* 6: _isForced (Bool)
|
* 6: isForced <BOOL>
|
||||||
* 7: _defaultValue (Any)
|
* 7: defaultValue (Any)
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
@ -20,7 +20,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
EXPLODE_8_PVT(_this,_name,_typeName,_isClientSetable,_localizedName,_localizedDescription,_possibleValues,_isForced,_value);
|
PARAMS_8(_name,_typeName,_isClientSetable,_localizedName,_localizedDescription,_possibleValues,_isForced,_value);
|
||||||
|
|
||||||
|
private ["_settingData"];
|
||||||
|
|
||||||
_settingData = [_name] call FUNC(getSettingData);
|
_settingData = [_name] call FUNC(getSettingData);
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
*/
|
*/
|
||||||
//#define DEBUG_MODE_FULL
|
//#define DEBUG_MODE_FULL
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
//IGNORE_PRIVATE_WARNING("_handleSyncedEvent");
|
||||||
|
|
||||||
PARAMS_2(_name,_handler);
|
PARAMS_2(_name,_handler);
|
||||||
|
|
||||||
private["_ttl", "_eventId", "_data"];
|
private["_ttl", "_eventId", "_data"];
|
||||||
|
@ -19,13 +19,11 @@
|
|||||||
//#define DEBUG_MODE_FULL
|
//#define DEBUG_MODE_FULL
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
EXPLODE_2_PVT(_this,_unit,_classname);
|
PARAMS_2(_unit,_classname);
|
||||||
DEFAULT_PARAM(2,_container,"");
|
DEFAULT_PARAM(2,_container,"");
|
||||||
DEFAULT_PARAM(3,_ammoCount,-1);
|
DEFAULT_PARAM(3,_ammoCount,-1);
|
||||||
|
|
||||||
private "_addedToPlayer";
|
private ["_addedToPlayer", "_canAdd", "_type", "_pos"];
|
||||||
private "_canAdd";
|
|
||||||
private "_type";
|
|
||||||
|
|
||||||
_canAdd = false;
|
_canAdd = false;
|
||||||
_addedToPlayer = true;
|
_addedToPlayer = true;
|
||||||
|
@ -17,9 +17,9 @@ Example:
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_forceWalkNumber"];
|
private ["_forceWalkNumber"];
|
||||||
|
|
||||||
_unit = _this select 0;
|
PARAMS_1(_unit);
|
||||||
_forceWalkNumber = _unit getVariable ["ACE_forceWalkStatusNumber", 0];
|
_forceWalkNumber = _unit getVariable ["ACE_forceWalkStatusNumber", 0];
|
||||||
|
|
||||||
_unit forceWalk (_forceWalkNumber > 0);
|
_unit forceWalk (_forceWalkNumber > 0);
|
||||||
|
@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_id", "_show"];
|
private ["_show"];
|
||||||
_id = _this select 0;
|
PARAMS_1(_id);
|
||||||
_show = if (count _this > 1) then {_this select 1} else {false};
|
_show = if (count _this > 1) then {_this select 1} else {false};
|
||||||
|
|
||||||
if (isnil QGVAR(SHOW_BLUR_SCREEN_COLLECTION)) then {
|
if (isNil QGVAR(SHOW_BLUR_SCREEN_COLLECTION)) then {
|
||||||
GVAR(SHOW_BLUR_SCREEN_COLLECTION) = [];
|
GVAR(SHOW_BLUR_SCREEN_COLLECTION) = [];
|
||||||
};
|
};
|
||||||
if (typeName _show == typeName 0) then {
|
if (typeName _show == typeName 0) then {
|
||||||
|
@ -17,7 +17,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
EXPLODE_5_PVT(_this,_params,_function,_namespace,_uid,_duration);
|
PARAMS_5(_params,_function,_namespace,_uid,_duration);
|
||||||
|
|
||||||
|
//IGNORE_PRIVATE_WARNING("_eventName");
|
||||||
|
|
||||||
if (((_namespace getVariable [_uid, [-99999]]) select 0) < diag_tickTime) then {
|
if (((_namespace getVariable [_uid, [-99999]]) select 0) < diag_tickTime) then {
|
||||||
_namespace setVariable [_uid, [diag_tickTime + _duration, _params call _function]];
|
_namespace setVariable [_uid, [diag_tickTime + _duration, _params call _function]];
|
||||||
|
@ -19,12 +19,11 @@
|
|||||||
#define CANGETINDRIVER (isNull (driver _vehicle) || {!alive driver _vehicle}) && {!lockedDriver _vehicle} && {getNumber (_config >> "isUav") != 1}
|
#define CANGETINDRIVER (isNull (driver _vehicle) || {!alive driver _vehicle}) && {!lockedDriver _vehicle} && {getNumber (_config >> "isUav") != 1}
|
||||||
#define CANGETINTURRETINDEX (isNull (_vehicle turretUnit _turret) || {!alive (_vehicle turretUnit _turret)}) && {!(_vehicle lockedTurret _turret)} && {getNumber (_config >> "isUav") != 1}
|
#define CANGETINTURRETINDEX (isNull (_vehicle turretUnit _turret) || {!alive (_vehicle turretUnit _turret)}) && {!(_vehicle lockedTurret _turret)} && {getNumber (_config >> "isUav") != 1}
|
||||||
|
|
||||||
private ["_unit", "_vehicle", "_position", "_checkDistance", "_index"];
|
private ["_position", "_checkDistance", "_index"];
|
||||||
|
|
||||||
_this resize 5;
|
_this resize 5;
|
||||||
|
|
||||||
_unit = _this select 0;
|
PARAMS_2(_unit,_vehicle);
|
||||||
_vehicle = _this select 1;
|
|
||||||
_position = toLower (_this select 2);
|
_position = toLower (_this select 2);
|
||||||
_checkDistance = _this select 3;
|
_checkDistance = _this select 3;
|
||||||
_index = _this select 4; // optional, please don't use
|
_index = _this select 4; // optional, please don't use
|
||||||
@ -181,7 +180,6 @@ switch (_position) do {
|
|||||||
|
|
||||||
_return = true
|
_return = true
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
_index = _positions select 0;
|
_index = _positions select 0;
|
||||||
if (!isNil "_index") then {
|
if (!isNil "_index") then {
|
||||||
_radius = getNumber (_config >> "getInRadius");
|
_radius = getNumber (_config >> "getInRadius");
|
||||||
@ -255,7 +253,7 @@ _fnc_isInRange = {
|
|||||||
if (_position == "cargo") exitWith {
|
if (_position == "cargo") exitWith {
|
||||||
if (_return && {!_checkDistance || {_vehicle == vehicle _unit} || _fnc_isInRange}) then {true} else {
|
if (_return && {!_checkDistance || {_vehicle == vehicle _unit} || _fnc_isInRange}) then {true} else {
|
||||||
[_unit, _vehicle, "ffv", _checkDistance] call FUNC(canGetInPosition);
|
[_unit, _vehicle, "ffv", _checkDistance] call FUNC(canGetInPosition);
|
||||||
}
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_return && {!_checkDistance || {_vehicle == vehicle _unit} || _fnc_isInRange}
|
_return && {!_checkDistance || {_vehicle == vehicle _unit} || _fnc_isInRange}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
* @PublicAPI: true
|
* @PublicAPI: true
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
private ["_unit","_return"];
|
|
||||||
_unit = _this select 0;
|
PARAMS_1(_unit);
|
||||||
|
|
||||||
(((_unit getvariable [QGVAR(canInteract),0]) < 1) && ([_unit] call FUNC(isAwake)) && !([_unit] call FUNC(isArrested)))
|
(((_unit getvariable [QGVAR(canInteract),0]) < 1) && ([_unit] call FUNC(isAwake)) && !([_unit] call FUNC(isArrested)))
|
@ -14,10 +14,10 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_target", "_exceptions"];
|
private ["_exceptions"];
|
||||||
|
|
||||||
|
PARAMS_2(_unit,_target);
|
||||||
|
|
||||||
_unit = _this select 0;
|
|
||||||
_target = _this select 1;
|
|
||||||
_exceptions = if (count _this > 2) then {
|
_exceptions = if (count _this > 2) then {
|
||||||
_this select 2;
|
_this select 2;
|
||||||
} else {
|
} else {
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
// returns true if the unit is on foot or in a ffv position
|
// returns true if the unit is on foot or in a ffv position
|
||||||
|
|
||||||
private ["_unit", "_config"];
|
private ["_config"];
|
||||||
|
|
||||||
_unit = _this select 0;
|
PARAMS_1(_unit);
|
||||||
|
|
||||||
if (_unit == vehicle _unit) exitWith {true};
|
if (_unit == vehicle _unit) exitWith {true};
|
||||||
|
|
||||||
|
@ -14,11 +14,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_projectile", "_adjustDir", "_adjustUp", "_adjustSpeed", "_vdir", "_dir", "_up", "_l", "_r", "_vup", "_vel"];
|
private ["_adjustSpeed", "_vdir", "_dir", "_up", "_vup", "_vel", "_vlat"];
|
||||||
|
|
||||||
_projectile = _this select 0;
|
PARAMS_3(_projectile,_adjustDir,_adjustUp);
|
||||||
_adjustDir = _this select 1;
|
|
||||||
_adjustUp = _this select 2;
|
|
||||||
|
|
||||||
_adjustSpeed = if (count _this > 3) then {
|
_adjustSpeed = if (count _this > 3) then {
|
||||||
_this select 3
|
_this select 3
|
||||||
|
@ -49,6 +49,9 @@ _addons = [_addons, {_this find "ace_" == 0}] call FUNC(filter);
|
|||||||
if (hasInterface) then {
|
if (hasInterface) then {
|
||||||
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
// Print the current extension version
|
||||||
|
diag_log text format ["[ACE] Extension version: %1: %2", _x, (_x callExtension "version")];
|
||||||
};
|
};
|
||||||
} forEach getArray (configFile >> "ACE_Extensions" >> "extensions");
|
} forEach getArray (configFile >> "ACE_Extensions" >> "extensions");
|
||||||
|
|
||||||
|
@ -16,13 +16,11 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_mode", "_checkAll", "_whitelist", "_logic"];
|
private ["_logic"];
|
||||||
|
|
||||||
_this resize 3;
|
_this resize 3;
|
||||||
|
|
||||||
_mode = _this select 0;
|
PARAMS_3(_mode,_checkAll,_whitelist);
|
||||||
_checkAll = _this select 1;
|
|
||||||
_whitelist = _this select 2;
|
|
||||||
|
|
||||||
if (isNil "_checkAll") then {
|
if (isNil "_checkAll") then {
|
||||||
_checkAll = false;
|
_checkAll = false;
|
||||||
|
@ -14,11 +14,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_target", "_lockTarget"];
|
PARAMS_3(_unit,_target,_lockTarget);
|
||||||
|
|
||||||
_unit = _this select 0;
|
|
||||||
_target = _this select 1;
|
|
||||||
_lockTarget = _this select 2;
|
|
||||||
|
|
||||||
if (isNil "_lockTarget") then {_lockTarget = false};
|
if (isNil "_lockTarget") then {_lockTarget = false};
|
||||||
|
|
||||||
|
@ -13,8 +13,9 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
_this spawn {
|
_this spawn {
|
||||||
_target = _this select 0;
|
PARAMS_2(_target,_ignoreDead);
|
||||||
_ignoreDead = _this select 1;
|
private["_inVehicle", "_position", "_vehiclePlayer", "_vehicleTarget"];
|
||||||
|
|
||||||
if (isNil "_ignoreDead") then {_ignoreDead = false};
|
if (isNil "_ignoreDead") then {_ignoreDead = false};
|
||||||
|
|
||||||
_vehicleTarget = vehicle _target;
|
_vehicleTarget = vehicle _target;
|
||||||
|
@ -11,9 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private "_function";
|
PARAMS_1(_function);
|
||||||
|
|
||||||
_function = _this select 0;
|
|
||||||
|
|
||||||
if (typeName _function == "STRING") exitWith {_function};
|
if (typeName _function == "STRING") exitWith {_function};
|
||||||
|
|
||||||
|
@ -16,9 +16,7 @@
|
|||||||
|
|
||||||
#define KEY_MODIFIERS [42, 54, 29, 157, 56, 184]
|
#define KEY_MODIFIERS [42, 54, 29, 157, 56, 184]
|
||||||
|
|
||||||
private "_key";
|
PARAMS_1(_key);
|
||||||
|
|
||||||
_key = _this select 0;
|
|
||||||
|
|
||||||
if (_key in KEY_MODIFIERS) exitWith {_key};
|
if (_key in KEY_MODIFIERS) exitWith {_key};
|
||||||
|
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
#define DEFAULT_LOGGING_LEVEL -1
|
#define DEFAULT_LOGGING_LEVEL -1
|
||||||
#define DEFAULT_TEXT_DISPLAY -1
|
#define DEFAULT_TEXT_DISPLAY -1
|
||||||
|
|
||||||
private ["_msg", "_level", "_prefix", "_defaultLoglevel","_defaultLogDisplayLevel", "_message", "_from"];
|
private ["_level", "_prefix", "_defaultLoglevel","_defaultLogDisplayLevel", "_message"];
|
||||||
_msg = _this select 0;
|
PARAMS_1(_msg);
|
||||||
_level = if (count _this > 1) then {_this select 1} else { 2 };
|
_level = if (count _this > 1) then {_this select 1} else { 2 };
|
||||||
|
|
||||||
if (typeName _level != "NUMBER") then {
|
if (typeName _level != "NUMBER") then {
|
||||||
|
@ -7,9 +7,10 @@
|
|||||||
* @Return:
|
* @Return:
|
||||||
* @PublicAPI: false
|
* @PublicAPI: false
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
private ["_entity"];
|
|
||||||
_entity = _this select 0;
|
PARAMS_1(_entity);
|
||||||
|
|
||||||
GVAR(LOGDISPLAY_LEVEL) = call compile (_entity getvariable ["logDisplayLevel","4"]);
|
GVAR(LOGDISPLAY_LEVEL) = call compile (_entity getvariable ["logDisplayLevel","4"]);
|
||||||
GVAR(LOGLEVEL) = call compile (_entity getvariable ["logLevel","4"]);
|
GVAR(LOGLEVEL) = call compile (_entity getvariable ["logLevel","4"]);
|
||||||
|
@ -9,11 +9,10 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_name","_value","_defaultGlobal","_catagory","_code","_persistent"];
|
private ["_code","_persistent"];
|
||||||
_name = _this select 0;
|
|
||||||
_value = _this select 1;
|
PARAMS_4(_name,_value,_defaultGlobal,_catagory);
|
||||||
_defaultGlobal = _this select 2;
|
|
||||||
_catagory = _this select 3;
|
|
||||||
_code = 0;
|
_code = 0;
|
||||||
_persistent = false;
|
_persistent = false;
|
||||||
|
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_state", "_dlg"];
|
private ["_dlg"];
|
||||||
|
|
||||||
_state = _this select 0;
|
PARAMS_1(_state);
|
||||||
|
|
||||||
if (_state) then {
|
if (_state) then {
|
||||||
disableSerialization;
|
disableSerialization;
|
||||||
@ -37,6 +37,7 @@ if (_state) then {
|
|||||||
_dlg = uiNamespace getVariable QGVAR(dlgDisableMouse);
|
_dlg = uiNamespace getVariable QGVAR(dlgDisableMouse);
|
||||||
|
|
||||||
_dlg displayAddEventHandler ["KeyDown", {
|
_dlg displayAddEventHandler ["KeyDown", {
|
||||||
|
private ["_key", "_dlg", "_ctrl", "_config", "_acc", "_index"];
|
||||||
_key = _this select 1;
|
_key = _this select 1;
|
||||||
|
|
||||||
if (_key == 1 && {alive player}) then {
|
if (_key == 1 && {alive player}) then {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Author: Glowbal
|
* Author: Glowbal
|
||||||
*
|
*
|
||||||
* Draw progress bar and execute given function if succesful.
|
* Draw progress bar and execute given function if succesful.
|
||||||
* Finish/Failure/Conditional are all passed [_args, _elapsedTime, _totalTime, _errorCode]
|
* Finish/Failure/Conditional are all passed [args, elapsedTime, totalTime, errorCode]
|
||||||
*
|
*
|
||||||
* Argument:
|
* Argument:
|
||||||
* 0: icon ID <STRING>
|
* 0: icon ID <STRING>
|
||||||
@ -42,11 +42,10 @@
|
|||||||
// other constants
|
// other constants
|
||||||
#define DEFAULT_TIME 6
|
#define DEFAULT_TIME 6
|
||||||
|
|
||||||
private ["_iconId", "_show", "_icon", "_allControls", "_refresh", "_timeAlive", "_list", "_color"];
|
private ["_allControls", "_refresh", "_timeAlive", "_list"];
|
||||||
_iconId = _this select 0;
|
|
||||||
_show = _this select 1;
|
PARAMS_4(_iconId,_show,_icon,_color);
|
||||||
_icon = _this select 2;
|
|
||||||
_color = _this select 3;
|
|
||||||
_timeAlive = if (count _this > 4) then {_this select 4} else {DEFAULT_TIME};
|
_timeAlive = if (count _this > 4) then {_this select 4} else {DEFAULT_TIME};
|
||||||
|
|
||||||
disableSerialization;
|
disableSerialization;
|
||||||
@ -62,7 +61,7 @@ _refresh = {
|
|||||||
|
|
||||||
_allControls = [];
|
_allControls = [];
|
||||||
|
|
||||||
private ["_ctrl", "_setting"];
|
private ["_ctrl", "_setting", "_position"];
|
||||||
_setting = missionNamespace getvariable[QGVAR(settingFeedbackIcons), 0];
|
_setting = missionNamespace getvariable[QGVAR(settingFeedbackIcons), 0];
|
||||||
if (_setting > 0) then {
|
if (_setting > 0) then {
|
||||||
{
|
{
|
||||||
@ -93,7 +92,7 @@ if (_show) then {
|
|||||||
if (_x select 0 == _iconId) exitwith {
|
if (_x select 0 == _iconId) exitwith {
|
||||||
_list set [_foreachIndex, [_iconId, _icon, _color, time]];
|
_list set [_foreachIndex, [_iconId, _icon, _color, time]];
|
||||||
};
|
};
|
||||||
}foreach _list;
|
} forEach _list;
|
||||||
};
|
};
|
||||||
missionNamespace setvariable [QGVAR(displayIconList), _list];
|
missionNamespace setvariable [QGVAR(displayIconList), _list];
|
||||||
call _refresh;
|
call _refresh;
|
||||||
@ -112,7 +111,7 @@ if (_show) then {
|
|||||||
if (_x select 0 != _iconId) then {
|
if (_x select 0 != _iconId) then {
|
||||||
_newList pushback _x;
|
_newList pushback _x;
|
||||||
};
|
};
|
||||||
}foreach _list;
|
} forEach _list;
|
||||||
|
|
||||||
missionNamespace setvariable [QGVAR(displayIconList), _newList];
|
missionNamespace setvariable [QGVAR(displayIconList), _newList];
|
||||||
call _refresh;
|
call _refresh;
|
||||||
|
@ -20,11 +20,9 @@
|
|||||||
|
|
||||||
_this resize 4;
|
_this resize 4;
|
||||||
|
|
||||||
private ["_text", "_sound", "_delay", "_priority", "_lastHintTime", "_lastHintPriority", "_time"];
|
private ["_lastHintTime", "_lastHintPriority", "_time"];
|
||||||
_text = _this select 0;
|
|
||||||
_sound = _this select 1;
|
PARAMS_4(_text,_sound,_delay,_priority);
|
||||||
_delay = _this select 2;
|
|
||||||
_priority = _this select 3;
|
|
||||||
|
|
||||||
if (isNil QGVAR(lastHint)) then {
|
if (isNil QGVAR(lastHint)) then {
|
||||||
GVAR(lastHint) = [0, 0];
|
GVAR(lastHint) = [0, 0];
|
||||||
|
@ -15,9 +15,8 @@
|
|||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_text", "_image", "_imageColor", "_target"];
|
private ["_imageColor", "_target"];
|
||||||
_text = _this select 0;
|
PARAMS_2(_text,_image);
|
||||||
_image = _this select 1;
|
|
||||||
_imageColor = if (count _this > 2) then {_this select 2} else {[1,1,1]};
|
_imageColor = if (count _this > 2) then {_this select 2} else {[1,1,1]};
|
||||||
_imageColor resize 3;
|
_imageColor resize 3;
|
||||||
_target = if (count _this > 3) then {_this select 3} else {ACE_player};
|
_target = if (count _this > 3) then {_this select 3} else {ACE_player};
|
||||||
|
@ -16,11 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_animation", "_priority", "_force"];
|
private ["_force"];
|
||||||
|
|
||||||
_unit = _this select 0;
|
PARAMS_3(_unit,_animation,_priority);
|
||||||
_animation = _this select 1;
|
|
||||||
_priority = _this select 2;
|
|
||||||
_force = False;
|
_force = False;
|
||||||
|
|
||||||
// no animation given
|
// no animation given
|
||||||
|
@ -12,17 +12,13 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private "_unit";
|
PARAMS_1(_unit);
|
||||||
|
|
||||||
_unit = _this select 0;
|
private ["_backpackObject","_holder"];
|
||||||
|
|
||||||
private "_backpackObject";
|
|
||||||
_backpackObject = backpackContainer _unit;
|
_backpackObject = backpackContainer _unit;
|
||||||
|
|
||||||
_unit addBackpack "Bag_Base";
|
_unit addBackpack "Bag_Base";
|
||||||
removeBackpack _unit;
|
removeBackpack _unit;
|
||||||
|
|
||||||
private "_holder";
|
|
||||||
_holder = objNull;
|
_holder = objNull;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
//fnc_dumpArray.sqf
|
//fnc_dumpArray.sqf
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_var", "_depth", "_pad", "_i", "_x"];
|
private ["_pad", "_i", "_x"];
|
||||||
|
|
||||||
|
PARAMS_2(_var,_depth);
|
||||||
|
|
||||||
_var = _this select 0;
|
|
||||||
_depth = _this select 1;
|
|
||||||
_pad = "";
|
_pad = "";
|
||||||
|
|
||||||
for "_i" from 0 to _depth do {
|
for "_i" from 0 to _depth do {
|
||||||
_pad = _pad + toString [9];
|
_pad = _pad + toString [9];
|
||||||
};
|
};
|
||||||
|
|
||||||
_depth = _depth + 1;
|
_depth = _depth + 1;
|
||||||
|
|
||||||
if (IS_ARRAY(_var)) then {
|
if (IS_ARRAY(_var)) then {
|
||||||
if ((count _var) > 0) then {
|
if ((count _var) > 0) then {
|
||||||
diag_log text format["%1[", _pad];
|
diag_log text format["%1[", _pad];
|
||||||
|
@ -13,6 +13,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
EXPLODE_2_PVT(_this,_namespace,_uid);
|
PARAMS_2(_namespace,_uid);
|
||||||
|
|
||||||
_namespace setVariable [_uid, nil];
|
_namespace setVariable [_uid, nil];
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
disableSerialization;
|
disableSerialization;
|
||||||
endLoadingScreen;
|
endLoadingScreen;
|
||||||
|
|
||||||
|
|
||||||
// no message without player possible
|
// no message without player possible
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
@ -30,10 +29,9 @@ if (isNull (call BIS_fnc_displayMission)) exitWith {
|
|||||||
}, 1, _this] call CBA_fnc_addPerFrameHandler;
|
}, 1, _this] call CBA_fnc_addPerFrameHandler;
|
||||||
};
|
};
|
||||||
|
|
||||||
private ["_textHeader", "_textMessage", "_onOK", "_onCancel"];
|
private ["_onOK", "_onCancel"];
|
||||||
|
|
||||||
_textHeader = _this select 0;
|
PARAMS_2(_textHeader,_textMessage);
|
||||||
_textMessage = _this select 1;
|
|
||||||
_onOK = ARR_SELECT(_this,2,{});
|
_onOK = ARR_SELECT(_this,2,{});
|
||||||
_onCancel = ARR_SELECT(_this,3,{});
|
_onCancel = ARR_SELECT(_this,3,{});
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
EXPLODE_2_PVT(_this,_func,_params);
|
PARAMS_2(_func,_params);
|
||||||
|
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private "_target";
|
PARAMS_1(_target);
|
||||||
|
|
||||||
_target = _this select 0;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
if (isNil "_x") then {
|
if (isNil "_x") then {
|
||||||
|
@ -9,10 +9,9 @@
|
|||||||
private "_fnc_logEntries";
|
private "_fnc_logEntries";
|
||||||
|
|
||||||
_fnc_logEntries = {
|
_fnc_logEntries = {
|
||||||
private ["_c", "_d", "_p", "_t", "_e"];
|
private ["_p", "_t", "_e", "_a", "_i"];
|
||||||
|
|
||||||
_c = _this select 0;
|
PARAMS_2(_c,_d);
|
||||||
_d = _this select 1;
|
|
||||||
|
|
||||||
_p = inheritsFrom _c;
|
_p = inheritsFrom _c;
|
||||||
|
|
||||||
@ -63,7 +62,6 @@ _fnc_logEntries = {
|
|||||||
};
|
};
|
||||||
diag_log text _t;
|
diag_log text _t;
|
||||||
diag_log text "";
|
diag_log text "";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
[_this, 0] call _fnc_logEntries;
|
[_this, 0] call _fnc_logEntries;
|
||||||
|
@ -15,10 +15,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_array", "_code", "_newArray", "_index"];
|
private ["_newArray", "_index"];
|
||||||
|
|
||||||
_array = _this select 0;
|
PARAMS_2(_array,_code);
|
||||||
_code = _this select 1;
|
|
||||||
|
|
||||||
if (isNil "_array") exitWith {
|
if (isNil "_array") exitWith {
|
||||||
diag_log text format ["[ACE] ERROR: No array for function filter in %1", _fnc_scriptNameParent];
|
diag_log text format ["[ACE] ERROR: No array for function filter in %1", _fnc_scriptNameParent];
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_crate", "_weapons", "_items"];
|
private ["_weapons", "_items"];
|
||||||
|
|
||||||
_crate = _this select 0;
|
PARAMS_1(_crate);
|
||||||
|
|
||||||
// get all weapons inside the crate
|
// get all weapons inside the crate
|
||||||
_weapons = weaponCargo _crate;
|
_weapons = weaponCargo _crate;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* Nothing
|
* Nothing
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [_player] call ace_common_fnc_fixLoweredRifleAnimation
|
* [ACE_player] call ace_common_fnc_fixLoweredRifleAnimation
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_object", "_return", "_val", "_category"];
|
private ["_return", "_val", "_category"];
|
||||||
_object = _this select 0;
|
PARAMS_1(_object);
|
||||||
_category = if (count _this > 1) then { _this select 1 } else { "" };
|
_category = if (count _this > 1) then { _this select 1 } else { "" };
|
||||||
|
|
||||||
if (isnil QGVAR(OBJECT_VARIABLES_STORAGE)) exitwith {
|
if (isnil QGVAR(OBJECT_VARIABLES_STORAGE)) exitwith {
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
EXPLODE_1_PVT(_this,_unit);
|
PARAMS_1(_unit);
|
||||||
|
|
||||||
if (isNull _unit) exitWith {[
|
if (isNull _unit) exitWith {[
|
||||||
"",
|
"",
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_captivityReasons", "_unitCaptivityStatus", "_unitCaptivityReasons"];
|
private ["_captivityReasons", "_unitCaptivityStatus", "_unitCaptivityReasons"];
|
||||||
|
|
||||||
_unit = _this select 0;
|
PARAMS_1(_unit);
|
||||||
|
|
||||||
_captivityReasons = missionNamespace getVariable ["ACE_captivityReasons", []];
|
_captivityReasons = missionNamespace getVariable ["ACE_captivityReasons", []];
|
||||||
|
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_name", "_cfgClass", "_classes"];
|
private ["_classes"];
|
||||||
|
|
||||||
_name = _this select 0;
|
PARAMS_2(_name,_cfgClass);
|
||||||
_cfgClass = _this select 1;
|
|
||||||
|
|
||||||
_classes = format ["configName inheritsFrom _x == '%1'", _name] configClasses (configFile >> _cfgClass);
|
_classes = format ["configName inheritsFrom _x == '%1'", _name] configClasses (configFile >> _cfgClass);
|
||||||
_classes = [_classes, {configName _this}] call FUNC(map);
|
_classes = [_classes, {configName _this}] call FUNC(map);
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_vehicle", "_config", "_turret"];
|
private ["_config", "_turret"];
|
||||||
|
|
||||||
_vehicle = _this select 0;
|
PARAMS_1(_vehicle);
|
||||||
|
|
||||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||||
_turret = [_vehicle] call FUNC(getTurretCommander);
|
_turret = [_vehicle] call FUNC(getTurretCommander);
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_vehicle", "_config", "_turret"];
|
private ["_config", "_turret"];
|
||||||
|
|
||||||
_vehicle = _this select 0;
|
PARAMS_1(_vehicle);
|
||||||
|
|
||||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||||
_turret = [_vehicle] call FUNC(getTurretGunner);
|
_turret = [_vehicle] call FUNC(getTurretGunner);
|
||||||
|
@ -11,9 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private "_item";
|
PARAMS_1(_item);
|
||||||
|
|
||||||
_item = _this select 0;
|
|
||||||
|
|
||||||
if (isClass (configFile >> "CfgWeapons" >> _item)) exitWith {"CfgWeapons"};
|
if (isClass (configFile >> "CfgWeapons" >> _item)) exitWith {"CfgWeapons"};
|
||||||
|
|
||||||
|
@ -11,9 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private "_object";
|
PARAMS_1(_object);
|
||||||
|
|
||||||
_object = _this select 0;
|
|
||||||
|
|
||||||
if (isClass (configFile >> "CfgVehicles" >> _object)) exitWith {"CfgVehicles"};
|
if (isClass (configFile >> "CfgVehicles" >> _object)) exitWith {"CfgVehicles"};
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_unit", "_anim", "_stance"];
|
private ["_anim", "_stance"];
|
||||||
|
|
||||||
_unit = _this select 0;
|
PARAMS_1(_unit);
|
||||||
_anim = toLower (animationState _unit);
|
_anim = toLower (animationState _unit);
|
||||||
|
|
||||||
// stance is broken for some animations.
|
// stance is broken for some animations.
|
||||||
|
@ -7,5 +7,6 @@
|
|||||||
* @Return:
|
* @Return:
|
||||||
* @PublicAPI: false
|
* @PublicAPI: false
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
+(missionNamespace getvariable [QGVAR(OBJECT_VARIABLES_STORAGE_) + (_this select 0),[]])
|
+(missionNamespace getvariable [QGVAR(OBJECT_VARIABLES_STORAGE_) + (_this select 0),[]])
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_configName", "_index"];
|
private ["_configName", "_index", "_config"];
|
||||||
|
|
||||||
_configName = "";
|
_configName = "";
|
||||||
|
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_vehicle", "_turrets", "_doorTurrets", "_config"];
|
private ["_turrets", "_doorTurrets", "_config"];
|
||||||
|
|
||||||
_vehicle = _this select 0;
|
PARAMS_1(_vehicle);
|
||||||
|
|
||||||
_turrets = allTurrets [_vehicle, true];
|
_turrets = allTurrets [_vehicle, true];
|
||||||
|
|
||||||
|
@ -9,10 +9,9 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_source", "_destination", "_accuracy", "_distance", "_lower", "_upper", "_mid", "_intersections", "_result"];
|
private ["_distance", "_lower", "_upper", "_mid", "_intersections", "_result", "_dir"];
|
||||||
_source = _this select 0;
|
|
||||||
_destination = _this select 1;
|
PARAMS_3(_source,_destination,_accuracy);
|
||||||
_accuracy = _this select 2;
|
|
||||||
|
|
||||||
_result = [false, [0, 0, 0]];
|
_result = [false, [0, 0, 0]];
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user