mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into huehuehue
This commit is contained in:
commit
77baeda976
@ -10,4 +10,3 @@ trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
|
10
.github/CONTRIBUTING.md
vendored
10
.github/CONTRIBUTING.md
vendored
@ -6,11 +6,9 @@ If you have found an issue with ACE3 please make sure that ACE3 really is the ca
|
||||
|
||||
Indicate if the issue appears on stable or development version. In case it is the development version, please also include the commit SHA-1 hash.
|
||||
|
||||
<div class="panel callout">
|
||||
<h5>Please note:</h5>
|
||||
<p>It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.</p>
|
||||
<p>If the error happens when using a <b>third-party mod</b> contact the author of the appropriate mod and report the issue there.</p>
|
||||
</div>
|
||||
**Please note:**
|
||||
- It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.
|
||||
- If the error happens when using a <b>third-party mod</b> contact the author of the appropriate mod and report the issue there.
|
||||
|
||||
## Reporting the issue
|
||||
|
||||
@ -26,6 +24,6 @@ ACE2, AGM and CSE had a lot of features implemented or planned. All of them are
|
||||
Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite.
|
||||
|
||||
## Requesting a feature
|
||||
In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
|
||||
In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/3594). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
|
||||
|
||||
Following their approval, feature requests may be moved by moderators to a separate issue for further discussion.
|
||||
|
28
.github/ISSUE_TEMPLATE.md
vendored
28
.github/ISSUE_TEMPLATE.md
vendored
@ -1,25 +1,23 @@
|
||||
**Arma 3 Version:** `x.xx`
|
||||
*(indicate if stable, rc or dev*)
|
||||
|
||||
**ACE3 Version:** `3.x.x`
|
||||
*(indicate if stable or dev, if dev indicate the commit the version is based on)*
|
||||
**Arma 3 Version:** `x.xx` (stable / rc / dev)
|
||||
**CBA Version:** `2.x.x` (stable / dev + commit hash)
|
||||
**ACE3 Version:** `3.x.x` (stable / dev + commit hash)
|
||||
|
||||
**Mods:**
|
||||
* `@CBA_A3`
|
||||
* `@ace`
|
||||
* ...
|
||||
|
||||
**Placed Modules:**
|
||||
* *Add the list of modules you have placed on the map. Use 'None' if the error occurs without using any modules.*
|
||||
- `@CBA_A3`
|
||||
- `@ace`
|
||||
|
||||
**Description:**
|
||||
* *Add a detailed description of the error. This makes it easier for us to fix the issue.*
|
||||
- Add a detailed description of the error. This makes it easier for us to fix the issue.
|
||||
|
||||
**Steps to reproduce:**
|
||||
* *Add the steps needed to reproduce the issue.*
|
||||
- Add the steps needed to reproduce the issue.
|
||||
|
||||
**Where did the issue occur?**
|
||||
* *A possible answer might be "Dedicated Server", "Local Multiplayer", "Editor", or "Singleplayer"*
|
||||
- Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal
|
||||
|
||||
**Placed Modules:**
|
||||
- Add the list of modules you have placed on the map. Use 'None' if the error occurs without any modules.
|
||||
|
||||
**RPT log file:**
|
||||
* *Add a link (pastebin.com) to the client and/or server RPT file. An instruction to find your RPT files can be [found here](https://community.bistudio.com/wiki/Crash_Files#Arma_3)*
|
||||
- Add a link ([gist](https://gist.github.com) or [pastebin](http://pastebin.com)) to the client and/or server RPT file. An instruction to find your RPT files can be found [here](https://community.bistudio.com/wiki/Crash_Files#Arma_3).
|
||||
- If possible at the time the bug is encountered, go to ACE Options and select "Debug To Clipboard", this will print extensive debug information to the RPT file.
|
||||
|
14
.github/PULL_REQUEST_TEMPLATE.md
vendored
14
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,10 +1,4 @@
|
||||
### When merged this pull request will:
|
||||
|
||||
1. *Describe what this pull request will do*
|
||||
2. *Each change in a seperate line*
|
||||
|
||||
---
|
||||
*Delete this line and everything below*
|
||||
|
||||
- [Make sure to respect the file structure](http://ace3mod.com/wiki/development/modularity-and-pbo-structure.html)
|
||||
- [Make sure to respect the coding guidelines](http://ace3mod.com/wiki/development/coding-guidelines.html)
|
||||
**When merged this pull request will:**
|
||||
- Describe what this pull request will do
|
||||
- Each change in a separate line
|
||||
- Respect the [Development Guidelines](http://ace3mod.com/wiki/development/)
|
||||
|
@ -12,6 +12,7 @@ before_script:
|
||||
fi
|
||||
script:
|
||||
- python3 tools/sqf_validator.py
|
||||
- python3 tools/config_style_checker.py
|
||||
- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
||||
python3 tools/deploy.py;
|
||||
fi
|
||||
|
@ -65,6 +65,7 @@ F3 Project <alanr@ferstaberinde.com>
|
||||
Falke75
|
||||
Ferenczi
|
||||
Ferenzi
|
||||
FFAAMOD <modffaa@gmail.com>
|
||||
Filip Basara <filip.basara93@googlemail.com>
|
||||
fr89k <kaschitoku@web.de>
|
||||
FreeZbe <freeseb@gmail.com>
|
||||
@ -74,6 +75,7 @@ Gianmarco Varriale (TeamNuke) <admin@forhost.org>
|
||||
GieNkoV <gienkov.grzegorz@gmail.com>
|
||||
GitHawk <githawk@gmx.net>
|
||||
gpgpgpgp
|
||||
Grey-Soldierman <gungamer101@hotmail.com>
|
||||
Grzegorz
|
||||
Hamburger SV
|
||||
Harakhti <shadowdragonphd@gmail.com>
|
||||
@ -110,6 +112,7 @@ Sniperwolf572 <tenga6@gmail.com>
|
||||
System98
|
||||
SzwedzikPL <szwedzikpl@gmail.com>
|
||||
Tachi <zaveruha007@gmail.com>
|
||||
Tessa Elieff <Fastroping Sound - CreativeCommons Attributions 3.0>
|
||||
Toaster <jonathan.pereira@gmail.com>
|
||||
Tonic
|
||||
Tourorist <tourorist@gmail.com>
|
||||
@ -118,4 +121,3 @@ voiper
|
||||
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
||||
Winter <simon@agius-muscat.net>
|
||||
zGuba
|
||||
Grey-Soldierman <gungamer101@hotmail.com>
|
||||
|
2
LICENSE
2
LICENSE
@ -26,6 +26,8 @@ Some folders of this project may contain a separate LICENSE file. Should
|
||||
that be the case, everything in that folder and all subfolders is subject
|
||||
to that license instead.
|
||||
|
||||
- ARMA PUBLIC LICENSE (\addons\apl)
|
||||
- CreativeCommons Attributions 3.0 (\addons\fastroping\data\sounds)
|
||||
|
||||
============================================================================
|
||||
Full GNU General Public License Text
|
||||
|
10
README.md
10
README.md
@ -3,15 +3,15 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/acemod/ACE3/releases">
|
||||
<img src="https://img.shields.io/badge/Version-3.4.2-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/releases/download/v3.4.2/ace3_3.4.2.zip">
|
||||
<img src="https://img.shields.io/badge/Download-72.6_MB-green.svg?style=flat-square" alt="ACE3 Download">
|
||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||
<img src="https://img.shields.io/badge/Version-3.5.1-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/issues">
|
||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/releases">
|
||||
<img src="https://img.shields.io/github/downloads/acemod/ACE3/total.svg?style=flat-square&label=Downloads" alt="ACE3 Downloads">
|
||||
</a>
|
||||
<a href="https://forums.bistudio.com/topic/181341-ace3-a-collaborative-merger-between-agm-cse-and-ace/?p=2859670">
|
||||
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square" alt="BIF Thread">
|
||||
</a>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
ace_fcs.dll
BIN
ace_fcs.dll
Binary file not shown.
BIN
ace_medical.dll
BIN
ace_medical.dll
Binary file not shown.
Binary file not shown.
@ -1,29 +1,34 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(enabled) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(enabled_DisplayName);
|
||||
description = CSTRING(enabled_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(simulateForSnipers) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(simulateForSnipers_DisplayName);
|
||||
description = CSTRING(simulateForSnipers_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(simulateForGroupMembers) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(simulateForGroupMembers_DisplayName);
|
||||
description = CSTRING(simulateForGroupMembers_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(simulateForEveryone) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(simulateForEveryone_DisplayName);
|
||||
description = CSTRING(simulateForEveryone_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(disabledInFullAutoMode) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(disabledInFullAutoMod_DisplayName);
|
||||
description = CSTRING(disabledInFullAutoMod_Description);
|
||||
typeName = "BOOL";
|
||||
@ -31,6 +36,7 @@ class ACE_Settings {
|
||||
};
|
||||
/* // TODO: We currently do not have firedEHs on vehicles
|
||||
class GVAR(vehicleGunnerEnabled) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = "Enabled For Vehicle Gunners";
|
||||
description = "Enables advanced ballistics for vehicle gunners";
|
||||
typeName = "BOOL";
|
||||
@ -38,30 +44,35 @@ class ACE_Settings {
|
||||
};
|
||||
*/
|
||||
class GVAR(ammoTemperatureEnabled) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(ammoTemperatureEnabled_DisplayName);
|
||||
description = CSTRING(ammoTemperatureEnabled_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(barrelLengthInfluenceEnabled) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(barrelLengthInfluenceEnabled_DisplayName);
|
||||
description = CSTRING(barrelLengthInfluenceEnabled_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(bulletTraceEnabled) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(bulletTraceEnabled_DisplayName);
|
||||
description = CSTRING(bulletTraceEnabled_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(simulationInterval) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(simulationInterval_DisplayName);
|
||||
description = CSTRING(simulationInterval_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0.0;
|
||||
};
|
||||
class GVAR(simulationRadius) {
|
||||
category = CSTRING(DisplayName);
|
||||
displayName = CSTRING(simulationRadius_DisplayName);
|
||||
description = CSTRING(simulationRadius_Description);
|
||||
typeName = "SCALAR";
|
||||
|
@ -3,7 +3,7 @@ class CfgVehicles {
|
||||
class GVAR(ModuleSettings): ACE_Module {
|
||||
scope = 2;
|
||||
displayName = CSTRING(DisplayName);
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_Wind_ca.paa);
|
||||
category = "ACE";
|
||||
function = QUOTE(DFUNC(initModuleSettings));
|
||||
functionPriority = 1;
|
||||
|
@ -5,7 +5,7 @@
|
||||
GVAR(currentbulletID) = -1;
|
||||
|
||||
GVAR(Protractor) = false;
|
||||
GVAR(ProtractorStart) = ACE_time;
|
||||
GVAR(ProtractorStart) = CBA_missionTime;
|
||||
GVAR(allBullets) = [];
|
||||
GVAR(currentGrid) = 0;
|
||||
|
||||
@ -21,7 +21,6 @@ if (!GVAR(extensionAvailable)) exitWith {
|
||||
};
|
||||
};
|
||||
*/
|
||||
[] call FUNC(initializeTerrainExtension);
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
@ -29,10 +28,28 @@ if (!hasInterface) exitWith {};
|
||||
//If not enabled, dont't add PFEH
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
|
||||
//Run the terrain processor
|
||||
[] call FUNC(initializeTerrainExtension);
|
||||
|
||||
// Register fire event handler
|
||||
["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
||||
["firedPlayerNonLocal", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
||||
|
||||
//Add warnings for missing compat PBOs (only if AB is on)
|
||||
{
|
||||
_x params ["_modPBO", "_compatPBO"];
|
||||
if ((isClass (configFile >> "CfgPatches" >> _modPBO)) && {!isClass (configFile >> "CfgPatches" >> _compatPBO)}) then {
|
||||
ACE_LOGWARNING_2("Weapon Mod [%1] missing ace compat pbo [%2] (from @ace\optionals)",_modPBO,_compatPBO);
|
||||
};
|
||||
} forEach [
|
||||
["RH_acc","ace_compat_rh_acc"],
|
||||
["RH_de_cfg","ace_compat_rh_de"],
|
||||
["RH_m4_cfg","ace_compat_rh_m4"],
|
||||
["RH_PDW","ace_compat_rh_pdw"],
|
||||
["RKSL_PMII","ace_compat_rksl_pm_ii"],
|
||||
["iansky_opt","ace_compat_sma3_iansky"],
|
||||
["R3F_Armes","ace_compat_r3f"]
|
||||
];
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_ballistics", "ace_weather"};
|
||||
author[] = {"Ruthberg"};
|
||||
authorUrl = "https://github.com/ulteq";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Ruthberg"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -43,13 +43,13 @@ GVAR(Protractor) = true;
|
||||
|
||||
__ctrl1 ctrlSetScale 1;
|
||||
__ctrl1 ctrlCommit 0;
|
||||
__ctrl1 ctrlSetText QUOTE(PATHTOF(UI\protractor.paa));
|
||||
__ctrl1 ctrlSetText QPATHTOF(UI\protractor.paa);
|
||||
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
|
||||
|
||||
__ctrl2 ctrlSetScale 1;
|
||||
__ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY + 0.001 - 0.0012 * (-58 max (asin((ACE_player weaponDirection currentWeapon ACE_player) select 2)) min 58), 0.2, 0.2 * 4/3];
|
||||
__ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY - 0.001 - 0.1074 * (-0.86 max ((ACE_player weaponDirection currentWeapon ACE_player) select 2) min 0.86), 0.2, 0.2 * 4/3];
|
||||
__ctrl2 ctrlCommit 0;
|
||||
__ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
|
||||
__ctrl2 ctrlSetText QPATHTOF(UI\protractor_marker.paa);
|
||||
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
|
||||
|
||||
}, 0.1, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private _aceTimeSecond = floor ACE_time;
|
||||
private _aceTimeSecond = floor CBA_missionTime;
|
||||
|
||||
{
|
||||
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
|
||||
@ -31,7 +31,7 @@ private _aceTimeSecond = floor ACE_time;
|
||||
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.65],[0,0,0,0.2]],[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, _aceTimeSecond, ACE_time - _aceTimeSecond]);
|
||||
call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, _aceTimeSecond, CBA_missionTime - _aceTimeSecond]);
|
||||
};
|
||||
nil
|
||||
} count +GVAR(allBullets);
|
||||
|
@ -88,7 +88,7 @@ if (GVAR(ammoTemperatureEnabled) || GVAR(barrelLengthInfluenceEnabled)) then {
|
||||
|
||||
_bulletTraceVisible = false;
|
||||
if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then {
|
||||
if (currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]) then {
|
||||
if (currentWeapon ACE_player == binocular ACE_player) then {
|
||||
_bulletTraceVisible = true;
|
||||
} else {
|
||||
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
|
||||
@ -110,8 +110,8 @@ if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) th
|
||||
|
||||
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
||||
|
||||
_aceTimeSecond = floor ACE_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), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _projectile, EGVAR(common,mapLatitude), EGVAR(weather,currentTemperature), EGVAR(common,mapAltitude), EGVAR(weather,currentHumidity), overcast, _aceTimeSecond, ACE_time - _aceTimeSecond];
|
||||
_aceTimeSecond = floor CBA_missionTime;
|
||||
"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 _projectile, EGVAR(common,mapLatitude), EGVAR(weather,currentTemperature), EGVAR(common,mapAltitude), EGVAR(weather,currentHumidity), overcast, _aceTimeSecond, CBA_missionTime - _aceTimeSecond];
|
||||
|
||||
GVAR(allBullets) pushBack [_projectile, _caliber, _bulletTraceVisible, GVAR(currentbulletID)];
|
||||
|
||||
|
@ -18,13 +18,13 @@ if (!GVAR(extensionAvailable)) exitWith {};
|
||||
|
||||
private ["_initStartTime", "_mapSize", "_mapGrids", "_gridCells", "_x", "_y", "_gridCenter", "_gridHeight", "_gridNumObjects", "_gridSurfaceIsWater"];
|
||||
|
||||
_initStartTime = ACE_time;
|
||||
_initStartTime = CBA_missionTime;
|
||||
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
||||
|
||||
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
systemChat "AdvancedBallistics: Terrain already initialized";
|
||||
#endIf
|
||||
#endif
|
||||
};
|
||||
|
||||
_mapGrids = ceil(_mapSize / 50) + 1;
|
||||
@ -38,7 +38,7 @@ GVAR(currentGrid) = 0;
|
||||
|
||||
if (GVAR(currentGrid) >= _gridCells) exitWith {
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(ACE_time - _initStartTime)];
|
||||
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(CBA_missionTime - _initStartTime)];
|
||||
#endif
|
||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
@ -92,7 +92,7 @@
|
||||
<German>Für Gruppenmitglieder aktiviert</German>
|
||||
<Czech>Povoleno pro členy skupiny</Czech>
|
||||
<Portuguese>Ativada para membros do grupo</Portuguese>
|
||||
<French>Activer pour les membres groupés</French>
|
||||
<French>Activer pour les membres du groupe</French>
|
||||
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
||||
<Russian>Включена для группы</Russian>
|
||||
<Italian>Abilita per Membri del Gruppo</Italian>
|
||||
@ -104,7 +104,7 @@
|
||||
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
|
||||
<Czech>Aktivuje pokročilou balistiku pro nelokální členy skupiny</Czech>
|
||||
<Portuguese>Ativa balística avançada para membros de grupo não locais</Portuguese>
|
||||
<French>Active la balistique avancée pour les membres groupés non locaux</French>
|
||||
<French>Active la balistique avancée pour les membres du groupe non locaux</French>
|
||||
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
|
||||
<Russian>Включает продвинутую баллистику для нелокальных членов группы</Russian>
|
||||
<Italian>Abilita Balistica Avanzata per Membri non locali del Gruppo</Italian>
|
||||
@ -128,7 +128,7 @@
|
||||
<German>Aktiviert die erweiterte Ballistik für alle nicht lokalen Spieler (das Aktivieren dieser Funktion kann zur Beeinträchtigung des Spielerlebnisses im Multiplayer führen)</German>
|
||||
<Czech>Aktivuje pokročilou balistiku pro všechny nelokální hráče (aktivace této možnosti způsobuje pokles FPS během velké přestřelky v multiplayeru)</Czech>
|
||||
<Portuguese>Ativa balística avançada para todos os jogadores não locais (ativando isso pode degradar a performance durante troca de tiros intensas no multiplayer)</Portuguese>
|
||||
<French>Active la balistique avancé pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
||||
<French>Active la balistique avancée pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
||||
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
|
||||
<Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian>
|
||||
<Italian>Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe degradare le prestazioni durante scontri intensi in multiplayer)</Italian>
|
||||
@ -140,7 +140,7 @@
|
||||
<German>Für Gruppenmitglieder immer aktiviert</German>
|
||||
<Czech>Vždy povoleno pro členy skupiny</Czech>
|
||||
<Portuguese>Sempre ativada para membros do grupo</Portuguese>
|
||||
<French>Toujours activer pour les membres groupés</French>
|
||||
<French>Toujours activer pour les membres du groupe</French>
|
||||
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
|
||||
<Russian>Всегда включена для членов группы</Russian>
|
||||
<Italian>Sempre abilitato per Membri del Gruppo</Italian>
|
||||
@ -272,7 +272,7 @@
|
||||
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
|
||||
<Czech>Určuje interval mezi každým výpočtem</Czech>
|
||||
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
|
||||
<French>Défini un intervalle de calcul entre deux simulations</French>
|
||||
<French>Définit un intervalle de calcul entre deux simulations</French>
|
||||
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
|
||||
<Russian>Определяет временной интервал между вычислениями</Russian>
|
||||
<Italian>Definisce l'intervallo tra ogni step di calcolo</Italian>
|
||||
@ -296,7 +296,7 @@
|
||||
<German>Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird</German>
|
||||
<Czech>Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil</Czech>
|
||||
<Portuguese>Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis</Portuguese>
|
||||
<French>Défini le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
|
||||
<French>Définit le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
|
||||
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
|
||||
<Russian>Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам</Russian>
|
||||
<Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian>
|
||||
@ -307,7 +307,7 @@
|
||||
<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>
|
||||
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
||||
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
||||
<French>Ce module active la simulation de balistique avancée - ie les projectiles sont influencé par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelles ils sont tirés.</French>
|
||||
<French>Ce module active la simulation de balistique avancée - ie les projectiles sont influencés par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelle ils sont tirés.</French>
|
||||
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
||||
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
|
||||
<Spanish>Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.</Spanish>
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"KoffeinFlummi","commy2"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"KoffeinFlummi","commy2"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -145,7 +145,7 @@ class RscInGameUI
|
||||
sizeEx = "0.038*SafezoneH";
|
||||
shadow = 0;
|
||||
font = "EtelkaMonospacePro";
|
||||
text = PATHTOF(data\Helo_LaserON.paa);
|
||||
text = QPATHTOF(data\Helo_LaserON.paa);
|
||||
x = "20.45 * (0.01875 * SafezoneH)";
|
||||
y = "14.1 * (0.025 * SafezoneH)";
|
||||
w = "12.5 * (0.01875 * SafezoneH)";
|
||||
@ -335,7 +335,7 @@ class RscInGameUI
|
||||
shadow = 0;
|
||||
align = "right";
|
||||
font = "EtelkaMonospacePro";
|
||||
text = PATHTOF(data\Helo_LaserON.paa);
|
||||
text = QPATHTOF(data\Helo_LaserON.paa);
|
||||
x = "20.45 * (0.01875 * SafezoneH)";
|
||||
y = "14.1 * (0.025 * SafezoneH)";
|
||||
w = "12.5 * (0.01875 * SafezoneH)";
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -20,4 +20,3 @@ envelope[] = {0,0,0.75,2.4,3.6,3.8,3.7,3.2,2.2,1.7,0.9};
|
||||
thrustCoef[] = {1,1.2,1.3,1.25,1.06,1.01,1,0.92,0.75,0.65,0.5,0.25,0};
|
||||
acceleration = 265;
|
||||
landingSpeed = 220;
|
||||
gunAimDown = 0.087266463;
|
||||
|
@ -7,7 +7,7 @@
|
||||
<Spanish>Ráfaga</Spanish>
|
||||
<Polish>Seria</Polish>
|
||||
<Czech>Dávka</Czech>
|
||||
<French>Contremesure</French>
|
||||
<French>Contre mesures</French>
|
||||
<Russian>Очередь</Russian>
|
||||
<Hungarian>Sorozat</Hungarian>
|
||||
<Portuguese>Rajada</Portuguese>
|
||||
@ -29,7 +29,7 @@
|
||||
<English>Open Cargo Door</English>
|
||||
<German>Laderampe öffnen</German>
|
||||
<Spanish>Abrir compuerta de carga</Spanish>
|
||||
<French>Ourvir la rampe</French>
|
||||
<French>Ouvrir la rampe</French>
|
||||
<Polish>Otwórz drzwi ładowni</Polish>
|
||||
<Czech>Otevřít nákladní prostor</Czech>
|
||||
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
||||
|
@ -6,8 +6,8 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_main"};
|
||||
author[] = {"Bohemia Interactive"};
|
||||
authorUrl = "http://ace3mod.com";
|
||||
author = "Bohemia Interactive";
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -9,7 +9,7 @@ class CfgVehicles {
|
||||
statement = QUOTE(call FUNC(create_dialog));
|
||||
showDisabled = 0;
|
||||
priority = 2;
|
||||
icon = PATHTOF(UI\ATRAG_Icon.paa);
|
||||
icon = QPATHTOF(UI\ATRAG_Icon.paa);
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
};
|
||||
|
@ -8,8 +8,8 @@ class CfgWeapons {
|
||||
scope = 2;
|
||||
displayName = CSTRING(Name);
|
||||
descriptionShort = CSTRING(Description);
|
||||
model = PATHTOF(data\tdsrecon.p3d);
|
||||
picture = PATHTOF(UI\ATRAG_Icon.paa);
|
||||
model = QPATHTOF(data\tdsrecon.p3d);
|
||||
picture = QPATHTOF(UI\ATRAG_Icon.paa);
|
||||
icon = "iconObject_circle";
|
||||
mapSize = 0.034;
|
||||
|
||||
|
@ -6,7 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {"ACE_ATragMX"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_common", "ACE_weather"};
|
||||
author = "Ruthberg";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Ruthberg"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -42,31 +42,14 @@
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed1", "_windSpeed2", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_drag", "_bc", "_dragModel", "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude", "_directionOfFire"];
|
||||
_scopeBaseAngle = _this select 0;
|
||||
_bulletMass = _this select 1;
|
||||
_boreHeight = _this select 2;
|
||||
_airFriction = _this select 3;
|
||||
_muzzleVelocity = _this select 4;
|
||||
_temperature = _this select 5;
|
||||
_barometricPressure = _this select 6;
|
||||
_relativeHumidity = _this select 7;
|
||||
_simSteps = _this select 8;
|
||||
_windSpeed1 = (_this select 9) select 0;
|
||||
_windSpeed2 = (_this select 9) select 1;
|
||||
_windDirection = _this select 10;
|
||||
_inclinationAngle = _this select 11;
|
||||
_targetSpeed = _this select 12;
|
||||
_targetRange = _this select 13;
|
||||
_bc = _this select 14;
|
||||
_dragModel = _this select 15;
|
||||
_atmosphereModel = _this select 16;
|
||||
_storeRangeCardData = _this select 17;
|
||||
_stabilityFactor = _this select 18;
|
||||
_twistDirection = _this select 19;
|
||||
_latitude = _this select 20;
|
||||
_directionOfFire = _this select 21;
|
||||
params [
|
||||
"_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity",
|
||||
"_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed",
|
||||
"_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_bc", "_dragModel",
|
||||
"_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude",
|
||||
"_directionOfFire"
|
||||
];
|
||||
_windSpeed params ["_windSpeed1", "_windSpeed2"];
|
||||
|
||||
private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_bulletSpeed", "_gravity", "_deltaT"];
|
||||
_bulletPos = [0, 0, 0];
|
||||
@ -142,7 +125,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
||||
_trueSpeed = vectorMagnitude _trueVelocity;
|
||||
|
||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||
_drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
|
||||
private _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
|
||||
parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed]))
|
||||
} else {
|
||||
([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation))
|
||||
|
@ -17,10 +17,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_gunID", "_restoreMemory", "_updateDisplay"];
|
||||
_gunID = _this select 0;
|
||||
_restoreMemory = _this select 1;
|
||||
_updateDisplay = _this select 2;
|
||||
params ["_gunID", "_restoreMemory", "_updateDisplay"];
|
||||
|
||||
if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {};
|
||||
|
||||
|
@ -56,7 +56,7 @@ GVAR(DialogPFH) = [{
|
||||
if (!GVAR(active)) exitWith {
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
__ctrlBackground ctrlSetText format [QUOTE(PATHTOF(UI\ATRAG_%1.paa)), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
|
||||
__ctrlBackground ctrlSetText format [QPATHTOF(UI\ATRAG_%1.paa), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
|
||||
}, 60, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
true
|
||||
|
@ -21,6 +21,5 @@ GVAR(showGunList) = _this;
|
||||
|
||||
if (_this) then {
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 6002);
|
||||
|
||||
lbSetCurSel [6000, GVAR(currentGun)];
|
||||
};
|
||||
|
@ -21,7 +21,6 @@ GVAR(showTargetRangeAssist) = _this;
|
||||
|
||||
if (_this) then {
|
||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 7018);
|
||||
|
||||
ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
|
||||
ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
|
||||
|
||||
|
@ -17,10 +17,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_slopeDistance", "_azimuth", "_inclination"];
|
||||
_slopeDistance = _this select 0;
|
||||
_azimuth = _this select 1;
|
||||
_inclination = _this select 2;
|
||||
params ["_slopeDistance", "_azimuth", "_inclination"];
|
||||
|
||||
GVAR(inclinationAngle) set [GVAR(currentTarget), round(_inclination)];
|
||||
GVAR(directionOfFire) set [GVAR(currentTarget), round(_azimuth)];
|
||||
|
@ -30,7 +30,7 @@ if !(ctrlVisible 9000) then {
|
||||
if (!(GVAR(speedAssistTimer))) exitWith {
|
||||
GVAR(speedAssistTimer) = true;
|
||||
|
||||
ctrlSetText [8006, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
||||
ctrlSetText [8006, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
|
||||
|
||||
[] call FUNC(calculate_target_speed_assist);
|
||||
|
||||
@ -40,7 +40,7 @@ if !(ctrlVisible 9000) then {
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
ctrlSetText [9001, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
||||
ctrlSetText [9001, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
|
||||
|
||||
}, 0.1, [ACE_time]] call CBA_fnc_addPerFrameHandler;
|
||||
}, 0.1, [CBA_missionTime]] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
@ -33,4 +33,4 @@ _closeCode = {
|
||||
closeDialog 0;
|
||||
};
|
||||
};
|
||||
[(localize LSTRING(Name)), QUOTE(PATHTOF(UI\ATRAG_Icon.paa)), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
|
||||
[(localize LSTRING(Name)), QPATHTOF(UI\ATRAG_Icon.paa), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="ATragMX">
|
||||
<Key ID="STR_ACE_ATragMX_Name">
|
||||
|
@ -3,17 +3,17 @@ class CfgMagazines {
|
||||
class CA_Magazine;
|
||||
class B_IR_Grenade: CA_Magazine {
|
||||
ACE_Attachable = "B_IRStrobe";
|
||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
||||
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||
};
|
||||
|
||||
class O_IR_Grenade: B_IR_Grenade {
|
||||
ACE_Attachable = "O_IRStrobe";
|
||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
||||
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||
};
|
||||
|
||||
class I_IR_Grenade: B_IR_Grenade {
|
||||
ACE_Attachable = "I_IRStrobe";
|
||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
||||
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||
};
|
||||
|
||||
class SmokeShell;
|
||||
|
@ -9,7 +9,7 @@
|
||||
exceptions[] = {}; \
|
||||
showDisabled = 0; \
|
||||
priority = 0; \
|
||||
icon = PATHTOF(UI\attach_ca.paa); \
|
||||
icon = QPATHTOF(UI\attach_ca.paa); \
|
||||
distance = 4.5; \
|
||||
}; \
|
||||
class GVAR(DetachVehicle) { \
|
||||
@ -19,7 +19,7 @@
|
||||
exceptions[] = {}; \
|
||||
showDisabled = 0; \
|
||||
priority = 0.1; \
|
||||
icon = PATHTOF(UI\detach_ca.paa); \
|
||||
icon = QPATHTOF(UI\detach_ca.paa); \
|
||||
distance = 4.5; \
|
||||
}; \
|
||||
}; \
|
||||
@ -60,7 +60,7 @@ class CfgVehicles {
|
||||
exceptions[] = {"isNotDragging"};
|
||||
showDisabled = 0;
|
||||
priority = 5;
|
||||
icon = PATHTOF(UI\attach_ca.paa);
|
||||
icon = QPATHTOF(UI\attach_ca.paa);
|
||||
};
|
||||
class GVAR(Detach) {
|
||||
displayName = CSTRING(Detach);
|
||||
@ -69,7 +69,7 @@ class CfgVehicles {
|
||||
exceptions[] = {"isNotDragging"};
|
||||
showDisabled = 0;
|
||||
priority = 5;
|
||||
icon = PATHTOF(UI\detach_ca.paa);
|
||||
icon = QPATHTOF(UI\detach_ca.paa);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -8,8 +8,8 @@ class CfgWeapons {
|
||||
scope = 2;
|
||||
displayName = CSTRING(IrStrobe_Name);
|
||||
descriptionShort = CSTRING(IrStrobe_Description);
|
||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
||||
picture = PATHTOF(UI\irstrobe_item.paa);
|
||||
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||
picture = QPATHTOF(UI\irstrobe_item.paa);
|
||||
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
mass = 1;
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {"ACE_IR_Strobe_Item"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -51,7 +51,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
||||
|
||||
[_unit, "forceWalk", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
[{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call EFUNC(common,execNextFrame);
|
||||
[{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call CBA_fnc_execNextFrame;
|
||||
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = PLACE_APPROVE;}] call EFUNC(common,AddActionEventHandler)];
|
||||
|
||||
_actionID = _unit addAction [format ["<t color='#FF0000'>%1</t>", localize LSTRING(CancelAction)], {GVAR(placeAction) = PLACE_CANCEL}];
|
||||
|
@ -57,7 +57,7 @@ if (toLower _itemName in ["b_ir_grenade", "o_ir_grenade", "i_ir_grenade"]) then
|
||||
detach _attachedObject;
|
||||
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
|
||||
// Delete attached item after 0.5 seconds
|
||||
[{deleteVehicle (_this select 0)}, [_attachedObject], 2] call EFUNC(common,waitAndExecute);
|
||||
[{deleteVehicle (_this select 0)}, [_attachedObject], 2] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
// Delete attached item
|
||||
deleteVehicle _attachedObject;
|
||||
|
@ -31,7 +31,7 @@ _actions = [];
|
||||
if (getText (_item >> "ACE_Attachable") != "") then {
|
||||
_displayName = getText(_item >> "displayName");
|
||||
_picture = getText(_item >> "picture");
|
||||
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call EFUNC(common,execNextFrame)}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
||||
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
||||
_actions pushBack [_action, [], _target];
|
||||
};
|
||||
};
|
||||
@ -44,7 +44,7 @@ _actions = [];
|
||||
if (getText (_item >> "ACE_Attachable") != "") then {
|
||||
_displayName = getText(_item >> "displayName");
|
||||
_picture = getText(_item >> "picture");
|
||||
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call EFUNC(common,execNextFrame)}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
||||
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
||||
_actions pushBack [_action, [], _target];
|
||||
};
|
||||
};
|
||||
|
@ -36,7 +36,7 @@ if (!isNull _xObject) then {
|
||||
params ["_detachedLight"];
|
||||
TRACE_1("delayed delete",_detachedLight);
|
||||
deleteVehicle _detachedLight;
|
||||
}, [_xObject], 2] call EFUNC(common,waitAndExecute);
|
||||
}, [_xObject], 2] call CBA_fnc_waitAndExecute;
|
||||
(_attachedList select 0) set [0, objNull];
|
||||
};
|
||||
|
||||
|
@ -32,7 +32,7 @@ if ((count _attachedList) == 0) exitWith {};
|
||||
//If it's a vehicle, also delete the attached
|
||||
if (!(_deadUnit isKindOf "CAManBase")) then {
|
||||
_xObject setPos ((getPos _deadUnit) vectorAdd [0, 0, -1000]);
|
||||
[{deleteVehicle (_this select 0)}, [_xObject], 2] call EFUNC(common,waitAndExecute);
|
||||
[{deleteVehicle (_this select 0)}, [_xObject], 2] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
} forEach _attachedList;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Attach">
|
||||
<Key ID="STR_ACE_Attach_AttachDetach">
|
||||
@ -90,7 +90,7 @@
|
||||
<German>Leuchtstab befestigt</German>
|
||||
<Spanish>Barra de luz acoplada</Spanish>
|
||||
<Polish>Przyczepiono światło chemiczne</Polish>
|
||||
<French>Chemlight attachée</French>
|
||||
<French>Cyalume attachée</French>
|
||||
<Czech>Chemické světlo připnuto</Czech>
|
||||
<Portuguese>Chemlight Fixada</Portuguese>
|
||||
<Italian>Chemlight attaccata</Italian>
|
||||
@ -102,7 +102,7 @@
|
||||
<German>Leuchtstab entfernt</German>
|
||||
<Spanish>Barra de luz quitada</Spanish>
|
||||
<Polish>Odczepiono światło chemiczne</Polish>
|
||||
<French>Chemlight détachée</French>
|
||||
<French>Cyalume détachée</French>
|
||||
<Czech>Chemické světlo odepnuto</Czech>
|
||||
<Portuguese>Chemlight Separada</Portuguese>
|
||||
<Italian>Chemlight staccata</Italian>
|
||||
@ -138,7 +138,7 @@
|
||||
<German>Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist.</German>
|
||||
<Polish>Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.</Polish>
|
||||
<Spanish>El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. </Spanish>
|
||||
<French>La balise IR permet de signaler votre position grace à un clignotement visible par des JVN.</French>
|
||||
<French>La balise IR permet de signaler votre position grâce à un clignotement visible par des JVN.</French>
|
||||
<Czech>IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru.</Czech>
|
||||
<Portuguese>O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna.</Portuguese>
|
||||
<Italian>La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni.</Italian>
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"bux","commy2"};
|
||||
authorUrl = "https://github.com/commy2/";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"bux","commy2"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params [["_backpack", objNull, [objNull]]];
|
||||
params [["_backpack", objNull, [objNull, ""]]];
|
||||
|
||||
if (_backpack isEqualType objNull) then {
|
||||
_backpack = typeOf _backpack;
|
||||
|
@ -285,6 +285,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -305,6 +307,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -320,6 +324,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -335,6 +341,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -356,6 +364,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -371,6 +381,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
@ -386,6 +398,8 @@ class CfgWeapons {
|
||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||
"30Rnd_556x45_Stanag_red",
|
||||
"30Rnd_556x45_Stanag_green",
|
||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||
|
@ -6,7 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"commy2","Ruthberg"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"commy2","Ruthberg"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -11,5 +11,5 @@ if (local _wall) then {
|
||||
_paper attachTo [_wall, [0,-0.02,0.6]];
|
||||
_paper setDir getDir _wall;
|
||||
|
||||
_paper setObjectTextureGlobal [0, QUOTE(PATHTOF(textures\target_ca.paa))];
|
||||
_paper setObjectTextureGlobal [0, QPATHTOF(textures\target_ca.paa)];
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Ballistics">
|
||||
<!-- MX -->
|
||||
|
@ -10,7 +10,7 @@ class CfgVehicles {
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
|
||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
|
||||
exceptions[] = {};
|
||||
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
|
||||
icon = QPATHTOF(UI\handcuff_ca.paa);
|
||||
};
|
||||
|
||||
class ACE_MainActions {
|
||||
@ -21,7 +21,7 @@ class CfgVehicles {
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
|
||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
|
||||
exceptions[] = {};
|
||||
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
|
||||
icon = QPATHTOF(UI\handcuff_ca.paa);
|
||||
};
|
||||
class ACE_EscortCaptive {
|
||||
displayName = CSTRING(EscortCaptive);
|
||||
@ -30,7 +30,7 @@ class CfgVehicles {
|
||||
statement = QUOTE([ARR_3(_player, _target, true)] call FUNC(doEscortCaptive));
|
||||
exceptions[] = {};
|
||||
showDisabled = 0;
|
||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||
icon = QPATHTOF(UI\captive_ca.paa);
|
||||
priority = 2.3;
|
||||
};
|
||||
class ACE_StopEscorting {
|
||||
@ -40,7 +40,7 @@ class CfgVehicles {
|
||||
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
|
||||
exceptions[] = {"isNotEscorting"};
|
||||
showDisabled = 0;
|
||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||
icon = QPATHTOF(UI\captive_ca.paa);
|
||||
priority = 2.3;
|
||||
};
|
||||
class ACE_LoadCaptive {
|
||||
@ -50,7 +50,7 @@ class CfgVehicles {
|
||||
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
|
||||
exceptions[] = {"isNotEscorting"};
|
||||
showDisabled = 0;
|
||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||
icon = QPATHTOF(UI\captive_ca.paa);
|
||||
priority = 2.2;
|
||||
};
|
||||
class GVAR(UnloadCaptive) {
|
||||
@ -79,7 +79,7 @@ class CfgVehicles {
|
||||
exceptions[] = {};
|
||||
showDisabled = 0;
|
||||
priority = 0;
|
||||
icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
|
||||
icon = QPATHTOF(UI\Surrender_ca.paa);
|
||||
};
|
||||
class ACE_StopSurrenderingSelf {
|
||||
displayName = CSTRING(StopSurrendering);
|
||||
@ -88,7 +88,7 @@ class CfgVehicles {
|
||||
exceptions[] = {"isNotSurrendering"};
|
||||
showDisabled = 0;
|
||||
priority = 0;
|
||||
icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
|
||||
icon = QPATHTOF(UI\Surrender_ca.paa);
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -154,7 +154,7 @@ class CfgVehicles {
|
||||
scope = 2; //show in editor
|
||||
isGlobal = 0; //run on server
|
||||
isTriggerActivated = 1; //Wait for triggers
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa);
|
||||
functionPriority = 0;
|
||||
class Arguments {};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
@ -170,7 +170,7 @@ class CfgVehicles {
|
||||
scope = 2; //show in editor
|
||||
isGlobal = 0; //run on server
|
||||
isTriggerActivated = 1; //Wait for triggers
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa);
|
||||
functionPriority = 0;
|
||||
class Arguments {};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
@ -186,7 +186,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(ModuleSettings_DisplayName);
|
||||
function = QFUNC(moduleSettings);
|
||||
scope = 2;
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_settings_ca.paa);
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
class Arguments {
|
||||
|
@ -5,8 +5,8 @@ class CfgWeapons {
|
||||
class ACE_CableTie: ACE_ItemCore {
|
||||
displayName = CSTRING(CableTie);
|
||||
descriptionShort = CSTRING(CableTieDescription);
|
||||
model = QUOTE(PATHTOF(models\ace_cabletie.p3d));
|
||||
picture = QUOTE(PATHTOF(UI\ace_cabletie_ca.paa));
|
||||
model = QPATHTOF(models\ace_cabletie.p3d);
|
||||
picture = QPATHTOF(UI\ace_cabletie_ca.paa);
|
||||
scope = 2;
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
mass = 1;
|
||||
|
@ -1,5 +1,11 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
["SettingsInitialized", {
|
||||
// Hold on a little bit longer to ensure anims will work
|
||||
[{
|
||||
GVAR(captivityEnabled) = true;
|
||||
}, [], 0.05] call CBA_fnc_waitAndExecute;
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
//Handles when someone starts escorting and then disconnects, leaving the captive attached
|
||||
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
|
||||
@ -33,10 +39,3 @@ if (!hasInterface) exitWith {};
|
||||
["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition);
|
||||
["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),false))}] call EFUNC(common,addCanInteractWithCondition);
|
||||
["isNotSurrendering", {!(GETVAR(_this select 0,GVAR(isSurrendering),false))}] call EFUNC(common,addCanInteractWithCondition);
|
||||
|
||||
["SettingsInitialized", {
|
||||
// Hold on a little bit longer to ensure anims will work
|
||||
[{
|
||||
GVAR(captivityEnabled) = true;
|
||||
}, [], 0.05] call EFUNC(common,waitAndExecute);
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {"ACE_CableTie"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_Interaction"};
|
||||
author[] = {"commy2", "KoffeinFlummi"};
|
||||
authorUrl = "https://github.com/commy2/";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"commy2", "KoffeinFlummi"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -32,7 +32,7 @@ if (!isServer) exitWith {};
|
||||
TRACE_2("event",_x,local _x);
|
||||
["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||
} forEach _units;
|
||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
||||
}, [_units], 0.05] call CBA_fnc_waitAndExecute;
|
||||
|
||||
if (!isNull _logic) then {
|
||||
deleteVehicle _logic;
|
||||
|
@ -32,7 +32,7 @@ if (!isServer) exitWith {};
|
||||
TRACE_2("event",_x,local _x);
|
||||
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||
} forEach _units;
|
||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
||||
}, [_units], 0.05] call CBA_fnc_waitAndExecute;
|
||||
|
||||
if (!isNull _logic) then {
|
||||
deleteVehicle _logic;
|
||||
|
@ -27,7 +27,7 @@ if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
||||
// It's to soon to call this function, delay it
|
||||
if (EGVAR(common,settingsInitFinished)) then {
|
||||
// Settings are already initialized, but the small wait isn't over
|
||||
[DFUNC(setHandCuffed), _this, 0.05] call EFUNC(common,waitAndExecute);
|
||||
[DFUNC(setHandCuffed), _this, 0.05] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
// Settings are not initialized yet
|
||||
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
|
||||
@ -98,7 +98,7 @@ if (_state) then {
|
||||
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
|
||||
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
|
||||
|
||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
||||
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
_unit setVariable [QGVAR(isHandcuffed), false, true];
|
||||
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
|
@ -27,7 +27,7 @@ if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
||||
// It's to soon to call this function, delay it
|
||||
if (EGVAR(common,settingsInitFinished)) then {
|
||||
// Settings are already initialized, but the small wait isn't over
|
||||
[DFUNC(setSurrendered), _this, 0.05] call EFUNC(common,waitAndExecute);
|
||||
[DFUNC(setSurrendered), _this, 0.05] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
// Settings are not initialized yet
|
||||
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
|
||||
@ -73,7 +73,7 @@ if (_state) then {
|
||||
}];
|
||||
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
|
||||
};
|
||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
||||
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
_unit setVariable [QGVAR(isSurrendering), false, true];
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
@ -103,7 +103,7 @@ if (_state) then {
|
||||
params ["_args", "_pfID"];
|
||||
_args params ["_unit", "_maxTime"];
|
||||
//If waited long enough or they re-surrendered or they are unconscious, exit loop
|
||||
if ((ACE_time > _maxTime) || {_unit getVariable [QGVAR(isSurrendering), false]} || {_unit getVariable ["ACE_isUnconscious", false]}) exitWith {
|
||||
if ((CBA_missionTime > _maxTime) || {_unit getVariable [QGVAR(isSurrendering), false]} || {_unit getVariable ["ACE_isUnconscious", false]}) exitWith {
|
||||
[_pfID] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
//Only break animation if they are actualy the "hands up" animation (because we are using switchmove there won't be an transition)
|
||||
@ -112,7 +112,7 @@ if (_state) then {
|
||||
//Break out of hands up animation loop
|
||||
[_unit, "ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation);
|
||||
};
|
||||
}, 0, [_unit, (ACE_time + 20)]] call CBA_fnc_addPerFrameHandler;
|
||||
}, 0, [_unit, (CBA_missionTime + 20)]] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -201,7 +201,7 @@
|
||||
<Czech>Synchronizovat s jednotkou, která má být v poutech.</Czech>
|
||||
<Italian>Sincronizza un'unità per metterle le manette.</Italian>
|
||||
<Spanish>Sincroniza una unidad para hacer que esté esposada.</Spanish>
|
||||
<French>Synchronise une unité pour la rendre captive.</French>
|
||||
<French>Synchronisez une unité pour la rendre captive.</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
|
||||
<English>Captives Settings</English>
|
||||
@ -234,7 +234,7 @@
|
||||
<Czech>Může spoutat spolubojovníky</Czech>
|
||||
<German>Kann Kameraden fesseln</German>
|
||||
<Portuguese>Pode algemar o próprio lado</Portuguese>
|
||||
<French>Peut menotter sa propre faction</French>
|
||||
<French>Peut capturer sa propre faction</French>
|
||||
<Hungarian>Saját oldal megbilincselhető</Hungarian>
|
||||
<Russian>Связать союзника</Russian>
|
||||
<Italian>Puoi ammanettare unità alleate</Italian>
|
||||
@ -295,7 +295,7 @@
|
||||
<Spanish>Requiere que los Jugadores se rindan antes de arrestarlos</Spanish>
|
||||
<Czech>Vyžaduje, aby se hráč nejdříve vzdal, poté může být spoután</Czech>
|
||||
<Italian>I giocatori devono arrendersi prima che possano essere arrestati</Italian>
|
||||
<French>Requiert la reddition des joueurs avant qu'ils ne puissent être arrêtés</French>
|
||||
<French>Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_SurrenderOnly">
|
||||
<English>Surrendering only</English>
|
||||
@ -317,7 +317,7 @@
|
||||
<Spanish>Rendición o desarme</Spanish>
|
||||
<Czech>Vzdávání nebo beze zbraně</Czech>
|
||||
<Italian>Resa o senza armi</Italian>
|
||||
<French>Reddition ou désarmement</French>
|
||||
<French>Capitulation ou desarmé</French>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -27,27 +27,7 @@ class Extended_Killed_EventHandlers {
|
||||
|
||||
//Need initPost or we have problems with setVariable with 'ACE_Cargo'
|
||||
class Extended_InitPost_EventHandlers {
|
||||
class StaticWeapon {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
class ReammoBox_F {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
class Cargo_base_F {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class CargoNet_01_box_F {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class Land_CargoBox_V1_F {
|
||||
class ThingX {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||
};
|
||||
@ -57,27 +37,17 @@ class Extended_InitPost_EventHandlers {
|
||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class RoadCone_F {
|
||||
class PlasticCase_01_base_F {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class Car {
|
||||
class LandVehicle {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class Tank {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class Helicopter {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class Plane {
|
||||
class Air {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initVehicle));
|
||||
};
|
||||
@ -87,16 +57,6 @@ class Extended_InitPost_EventHandlers {
|
||||
init = QUOTE(_this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class ACE_RepairItem_Base {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
class ACE_bodyBagObject {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
class ACE_ConcertinaWireCoil {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
|
@ -1,3 +1,6 @@
|
||||
|
||||
class CBA_Extended_EventHandlers;
|
||||
|
||||
class CfgVehicles {
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
@ -7,7 +10,7 @@ class CfgVehicles {
|
||||
class ACE_moduleCargoSettings: ACE_Module {
|
||||
scope = 2;
|
||||
displayName = CSTRING(SettingsModule_DisplayName);
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Cargo_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_Cargo_ca.paa);
|
||||
category = "ACE_Logistics";
|
||||
function = QFUNC(moduleSettings);
|
||||
functionPriority = 1;
|
||||
@ -33,7 +36,7 @@ class CfgVehicles {
|
||||
class GVAR(makeLoadable): ACE_Module {
|
||||
scope = 2;
|
||||
displayName = CSTRING(makeLoadable_displayName);
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_makeLoadable_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_makeLoadable_ca.paa);
|
||||
category = "ACE_Logistics";
|
||||
function = QFUNC(moduleMakeLoadable);
|
||||
isGlobal = 1;
|
||||
@ -191,12 +194,69 @@ class CfgVehicles {
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
|
||||
class Heli_Transport_02_base_F;
|
||||
class I_Heli_Transport_02_F : Heli_Transport_02_base_F {
|
||||
class Helicopter_Base_H;
|
||||
class Heli_Light_01_base_F: Helicopter_Base_H {
|
||||
GVAR(space) = 0;
|
||||
GVAR(hasCargo) = 0;
|
||||
};
|
||||
|
||||
class Heli_Light_02_base_F: Helicopter_Base_H {
|
||||
GVAR(space) = 4;
|
||||
};
|
||||
|
||||
class Helicopter_Base_F;
|
||||
class Heli_light_03_base_F: Helicopter_Base_F {
|
||||
GVAR(space) = 4;
|
||||
};
|
||||
|
||||
class Heli_Transport_01_base_F: Helicopter_Base_H {
|
||||
GVAR(space) = 8;
|
||||
};
|
||||
|
||||
class Heli_Transport_02_base_F: Helicopter_Base_H {
|
||||
GVAR(space) = 20;
|
||||
};
|
||||
|
||||
class Heli_Transport_03_base_F: Helicopter_Base_H {
|
||||
GVAR(space) = 40;
|
||||
};
|
||||
|
||||
class Heli_Transport_04_base_F: Helicopter_Base_H {
|
||||
GVAR(space) = 0;
|
||||
GVAR(hasCargo) = 0;
|
||||
};
|
||||
|
||||
class O_Heli_Transport_04_box_F: Heli_Transport_04_base_F {
|
||||
GVAR(space) = 20;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
|
||||
class O_Heli_Transport_04_repair_F: Heli_Transport_04_base_F {
|
||||
GVAR(space) = 12;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
|
||||
class O_Heli_Transport_04_ammo_F: Heli_Transport_04_base_F {
|
||||
GVAR(space) = 8;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
|
||||
class O_Heli_Transport_04_fuel_F: Heli_Transport_04_base_F {};
|
||||
|
||||
class O_Heli_Transport_04_medevac_F: Heli_Transport_04_base_F {
|
||||
GVAR(space) = 8;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
|
||||
class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
GVAR(space) = 0;
|
||||
GVAR(hasCargo) = 0;
|
||||
};
|
||||
|
||||
class Heli_Attack_02_base_F: Helicopter_Base_F {
|
||||
GVAR(space) = 4;
|
||||
};
|
||||
|
||||
// jets
|
||||
class Plane: Air {
|
||||
GVAR(space) = 0;
|
||||
@ -204,7 +264,6 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
// autonomus
|
||||
class Helicopter_Base_F;
|
||||
class UAV_01_base_F: Helicopter_Base_F {
|
||||
GVAR(space) = 0;
|
||||
GVAR(hasCargo) = 0;
|
||||
@ -245,6 +304,26 @@ class CfgVehicles {
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
|
||||
// Taru pods
|
||||
class Pod_Heli_Transport_04_base_F;
|
||||
class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F {
|
||||
GVAR(space) = 8;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
class Land_Pod_Heli_Transport_04_box_F: Pod_Heli_Transport_04_base_F {
|
||||
GVAR(space) = 20;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F {
|
||||
GVAR(space) = 12;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
class Pod_Heli_Transport_04_crewed_base_F;
|
||||
class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F {
|
||||
GVAR(space) = 8;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
|
||||
class StaticMortar;
|
||||
class Mortar_01_base_F: StaticMortar {
|
||||
GVAR(size) = 2; // 1 = small, 2 = large
|
||||
@ -253,6 +332,7 @@ class CfgVehicles {
|
||||
|
||||
// Ammo boxes
|
||||
class ThingX;
|
||||
class Items_base_F;
|
||||
class ReammoBox_F: ThingX {
|
||||
GVAR(size) = 2; // 1 = small, 2 = large
|
||||
GVAR(canLoad) = 1;
|
||||
@ -275,6 +355,23 @@ class CfgVehicles {
|
||||
class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers
|
||||
GVAR(canLoad) = 0;
|
||||
};
|
||||
|
||||
//Plastic and metal case
|
||||
class PlasticCase_01_base_F: Items_base_F {
|
||||
GVAR(size) = 1; // 1 = small, 2 = large
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
class Land_PlasticCase_01_large_F: PlasticCase_01_base_F {
|
||||
GVAR(size) = 2; // 1 = small, 2 = large
|
||||
};
|
||||
class MetalCase_01_base_F: Items_base_F {
|
||||
GVAR(size) = 1; // 1 = small, 2 = large
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
class Land_MetalCase_01_large_F: MetalCase_01_base_F {
|
||||
GVAR(size) = 2; // 1 = small, 2 = large
|
||||
};
|
||||
|
||||
// objects
|
||||
class RoadCone_F: ThingX {
|
||||
GVAR(size) = 1;
|
||||
@ -284,14 +381,16 @@ class CfgVehicles {
|
||||
GVAR(size) = 2;
|
||||
};
|
||||
|
||||
|
||||
class Scrapyard_base_F;
|
||||
class Land_PaperBox_closed_F: Scrapyard_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 10;
|
||||
GVAR(hasCargo) = 1;
|
||||
GVAR(size) = 11;
|
||||
GVAR(canLoad) = 1;
|
||||
XEH_ENABLED;
|
||||
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
@ -323,163 +422,253 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
class Cargo10_base_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 14;
|
||||
GVAR(size) = 15;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_brick_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_cyan_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_grey_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_light_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_light_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_military_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Ruins_F;
|
||||
class Land_Cargo20_military_ruins_F: Ruins_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo20_orange_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_sand_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_vr_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_white_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_yellow_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo40_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_brick_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_cyan_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_grey_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_light_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_light_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_military_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo40_military_ruins_F: Ruins_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo40_orange_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_sand_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_vr_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_white_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_yellow_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
// small
|
||||
class Land_CargoBox_V1_F: ThingX {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 7;
|
||||
GVAR(hasCargo) = 1;
|
||||
GVAR(size) = 7;
|
||||
XEH_ENABLED;
|
||||
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author[] = {"commy2", "Glowbal"};
|
||||
authorUrl = "https://ace3mod.com/";
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"commy2", "Glowbal"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -39,7 +39,7 @@ private _statement = {
|
||||
[_player, _target] call FUNC(startLoadIn);
|
||||
};
|
||||
private _text = localize LSTRING(loadObject);
|
||||
private _icon = QUOTE(PATHTOF(UI\Icon_load.paa));
|
||||
private _icon = QPATHTOF(UI\Icon_load.paa);
|
||||
|
||||
private _action = [QGVAR(load), _text, _icon, _statement, _condition] call EFUNC(interact_menu,createAction);
|
||||
[_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
|
||||
|
@ -20,6 +20,8 @@ TRACE_1("params", _vehicle);
|
||||
|
||||
private _type = typeOf _vehicle;
|
||||
|
||||
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
|
||||
|
||||
if (isServer) then {
|
||||
{
|
||||
if (isClass _x) then {
|
||||
@ -38,7 +40,6 @@ if (_type in GVAR(initializedVehicleClasses)) exitWith {};
|
||||
GVAR(initializedVehicleClasses) pushBack _type;
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
|
||||
|
||||
TRACE_1("Adding unload cargo action to class", _type);
|
||||
|
||||
|
@ -65,7 +65,7 @@
|
||||
<Czech>Povolit náklad</Czech>
|
||||
<Spanish>Habilitar carga</Spanish>
|
||||
<Italian>Abilita Cargo</Italian>
|
||||
<French>Activer mise en cargaison</French>
|
||||
<French>Activer la cargaison</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
|
||||
<English>Enable the load in cargo module</English>
|
||||
@ -76,7 +76,7 @@
|
||||
<Spanish>Habilitar la carga en el módulo de carga</Spanish>
|
||||
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
||||
<Italian>Abilita il modulo di caricamento in cargo</Italian>
|
||||
<French>Active</French>
|
||||
<French>Activer le chargement dans le module de cargaison.</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
|
||||
<English>Cargo Settings</English>
|
||||
@ -87,7 +87,7 @@
|
||||
<Czech>Nastavení nákladu</Czech>
|
||||
<Spanish>Ajustes de carga</Spanish>
|
||||
<Italian>Impostazioni Cargo</Italian>
|
||||
<French>Options de cargaison</French>
|
||||
<French>Réglages de cargaison</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
|
||||
<English>Configure the cargo module settings</English>
|
||||
@ -98,7 +98,7 @@
|
||||
<Spanish>Configure los ajustes del módulo de carga</Spanish>
|
||||
<Czech>Konfigurace nákladního modulu</Czech>
|
||||
<Italian>Configura le impostazioni del modulo cargo</Italian>
|
||||
<French>Configure les options du module de cargaison</French>
|
||||
<French>Configurer les réglages du module de cargaison</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_LoadedItem">
|
||||
<English>%1<br/>loaded into<br/>%2</English>
|
||||
@ -133,7 +133,7 @@
|
||||
<Russian>Погрузка</Russian>
|
||||
<Italian>Caricando</Italian>
|
||||
<Spanish>Cargando</Spanish>
|
||||
<French>Chargement cargaison</French>
|
||||
<French>Chargement de la cargaison</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_UnloadingItem">
|
||||
<English>Unloading Cargo</English>
|
||||
@ -144,7 +144,7 @@
|
||||
<Russian>Выгрузка</Russian>
|
||||
<Italian>Scaricando</Italian>
|
||||
<Spanish>Descargando</Spanish>
|
||||
<French>Déchargement cargaison</French>
|
||||
<French>Déchargement de la cargaison</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_LoadingFailed">
|
||||
<English>%1<br/>could not be loaded</English>
|
||||
@ -155,7 +155,7 @@
|
||||
<Russian>%1<br/>не может быть погружен</Russian>
|
||||
<Italian>%1<br/>non può essere caricato</Italian>
|
||||
<Spanish>%1<br/>no pudo ser cargado</Spanish>
|
||||
<French>%1<br/>ne peut être chargé</French>
|
||||
<French>%1<br /> n'a pas pu être chargé</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_UnloadingFailed">
|
||||
<English>%1<br/>could not be unloaded</English>
|
||||
@ -166,7 +166,7 @@
|
||||
<Russian>%1<br/>не может быть выгружен</Russian>
|
||||
<Italian>%1<br/>non può essere scaricato</Italian>
|
||||
<Spanish>%1<br/>no pudo ser descargado</Spanish>
|
||||
<French>%1<br/>ne peut être déchargé</French>
|
||||
<French>%1<br /> n'a pas pu être déchargé</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_makeLoadable_displayName">
|
||||
<English>Make Object Loadable</English>
|
||||
@ -175,6 +175,7 @@
|
||||
<Italian>Rendi oggetto caricabile</Italian>
|
||||
<Spanish>Hacer objeto cargable</Spanish>
|
||||
<French>Rendre l'objet chargeable</French>
|
||||
<Czech>Vytvořit objekt nakladatelným</Czech>
|
||||
<Portuguese>Fazer objeto carregável</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_makeLoadable_description">
|
||||
@ -183,7 +184,8 @@
|
||||
<Polish>Ustawia zsynchronizowany obiekt jako możliwy do załadowania poprzez system cargo</Polish>
|
||||
<Italian>Imposta l'oggetto sincronizzato come caricabile dal sistema cargo</Italian>
|
||||
<Spanish>Sincronizar un objecto para hacerlo cargable.</Spanish>
|
||||
<French>Rend l'objet synchronisé chargeable par le système de cargaison.</French>
|
||||
<French>Rend l'objet synchronisé comme chargeable par le système de cargaison.</French>
|
||||
<Czech>Nastaví synchronizované objekty nakladatelnými za pomocí Nákladního systému.</Czech>
|
||||
<Portuguese>Seta o objeto sincronizado como carregável</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
|
||||
@ -193,6 +195,7 @@
|
||||
<Italian>Dimensioni dell'oggetto</Italian>
|
||||
<Spanish>Tamaño del objeto</Spanish>
|
||||
<French>Taille de l'objet</French>
|
||||
<Czech>Velikost objektu</Czech>
|
||||
<Portuguese>Tamanho do objeto</Portuguese>
|
||||
</Key>
|
||||
</Package>
|
||||
|
@ -49,7 +49,7 @@ class ACE_Settings {
|
||||
description = CSTRING(SettingFeedbackIconsDesc);
|
||||
values[] = {ECSTRING(optionsmenu,Hide), ECSTRING(optionsmenu,TopRightDown), ECSTRING(optionsmenu,TopRightLeft), ECSTRING(optionsmenu,TopLeftDown), ECSTRING(optionsmenu,TopLeftRight)};
|
||||
};
|
||||
class GVAR(SettingProgressBarLocation) {
|
||||
class GVAR(settingProgressBarLocation) {
|
||||
value = 0;
|
||||
typeName = "SCALAR";
|
||||
force = 0;
|
||||
|
@ -21,7 +21,7 @@ class Extended_PostInit_EventHandlers {
|
||||
|
||||
class Extended_DisplayLoad_EventHandlers {
|
||||
class RscDisplayMission {
|
||||
ADDON = QUOTE(_this call COMPILE_FILE(XEH_mainDislayLoad));
|
||||
ADDON = QUOTE(_this call COMPILE_FILE(XEH_missionDisplayLoad));
|
||||
};
|
||||
};
|
||||
|
||||
@ -33,7 +33,7 @@ class Extended_InitPost_EventHandlers {
|
||||
};
|
||||
class CAManBase {
|
||||
class GVAR(setName) {
|
||||
init = QUOTE(if (local (_this select 0)) then {_this call FUNC(setName)};);
|
||||
init = QUOTE(if (local (_this select 0)) then {[ARR_2(FUNC(setName),_this)] call CBA_fnc_execNextFrame};);
|
||||
};
|
||||
class GVAR(muteUnit) {
|
||||
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
|
||||
@ -76,3 +76,9 @@ class Extended_FiredBIS_EventHandlers {
|
||||
ADDON = QUOTE(_this call FUNC(firedEH));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Engine_EventHandlers {
|
||||
class All {
|
||||
ADDON = QUOTE(_this call FUNC(handleEngine));
|
||||
};
|
||||
};
|
||||
|
@ -3,13 +3,13 @@ class CfgUnitInsignia {
|
||||
class ACE_insignia_logo {
|
||||
displayName = "ACE3";
|
||||
author = CSTRING(ACETeam);
|
||||
texture = PATHTOF(data\Insignia_ace3logo_ca.paa);
|
||||
texture = QPATHTOF(data\Insignia_ace3logo_ca.paa);
|
||||
textureVehicle = "";
|
||||
};
|
||||
class ACE_insignia_banana {
|
||||
displayName = "ABE3";
|
||||
author = CSTRING(ACETeam);
|
||||
texture = PATHTOF(data\insignia_banana_ca.paa);
|
||||
texture = QPATHTOF(data\insignia_banana_ca.paa);
|
||||
textureVehicle = "";
|
||||
};
|
||||
};
|
||||
|
@ -36,7 +36,7 @@ class CfgVehicles {
|
||||
scope = 2;
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_CheckPBO_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_CheckPBO_ca.paa);
|
||||
class Arguments {
|
||||
class Action {
|
||||
displayName = CSTRING(CheckPBO_Action_DisplayName);
|
||||
@ -82,7 +82,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(LSDVehicles_DisplayName);
|
||||
function = "ACE_Common_fnc_moduleLSDVehicles";
|
||||
scope = 2;
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
|
||||
icon = QPATHTOF(UI\Icon_Module_LSD_ca.paa);
|
||||
isGlobal = 1;
|
||||
class Arguments {};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
@ -132,7 +132,7 @@ class CfgVehicles {
|
||||
class ACE_Headbug_Fix: Bicycle {
|
||||
scope = 1;
|
||||
side = 3;
|
||||
model = PATHTOF(data\ACE_HeadBanger.p3d);
|
||||
model = QPATHTOF(data\ACE_HeadBanger.p3d);
|
||||
//model = QPATHTO_M(ACE_HeadBanger.p3d);
|
||||
author = CSTRING(ACETeam);
|
||||
displayName = " ";
|
||||
|
@ -34,8 +34,8 @@ class CfgWeapons {
|
||||
scope = 2;
|
||||
displayName = CSTRING(bananaDisplayName);
|
||||
descriptionShort = CSTRING(bananaDescr);
|
||||
model = PATHTOF(data\banana.p3d);
|
||||
picture = PATHTOF(data\icon_banana_ca.paa);
|
||||
model = QPATHTOF(data\banana.p3d);
|
||||
picture = QPATHTOF(data\icon_banana_ca.paa);
|
||||
icon = "iconObject_circle";
|
||||
mapSize = 0.034;
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
|
@ -111,4 +111,8 @@ class RscInGameUI {
|
||||
class RscStaminaBar {
|
||||
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStaminaBar"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgStaminaBar)),_this select 0)]);
|
||||
};
|
||||
|
||||
class RscStanceInfo {
|
||||
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStanceInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Stance')])] call FUNC(localEvent););
|
||||
};
|
||||
};
|
||||
|
@ -24,6 +24,7 @@ PREP(debugModule);
|
||||
PREP(defineVariable);
|
||||
PREP(deviceKeyFindValidIndex);
|
||||
PREP(deviceKeyRegisterNew);
|
||||
PREP(deprecateComponent);
|
||||
PREP(disableAI);
|
||||
PREP(disableUserInput);
|
||||
PREP(displayIcon);
|
||||
@ -87,6 +88,7 @@ PREP(getWindDirection);
|
||||
PREP(getZoom);
|
||||
PREP(goKneeling);
|
||||
PREP(hadamardProduct);
|
||||
PREP(handleEngine);
|
||||
PREP(handleModifierKey);
|
||||
PREP(handleModifierKeyUp);
|
||||
PREP(handleScrollWheel);
|
||||
@ -276,5 +278,3 @@ PREP(hashListCreateHash);
|
||||
PREP(hashListSelect);
|
||||
PREP(hashListSet);
|
||||
PREP(hashListPush);
|
||||
|
||||
PREP(timePFH);
|
||||
|
@ -1,6 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
GVAR(ScrollWheelFrame) = diag_frameno;
|
||||
|
||||
call COMPILE_FILE(init_handleScrollWheel);
|
||||
call COMPILE_FILE(init_handleModifierKey);
|
@ -3,47 +3,6 @@
|
||||
// #define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// PFHs
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
//Singe PFEH to handle execNextFrame, waitAndExec and waitUntilAndExec:
|
||||
[{
|
||||
BEGIN_COUNTER(waitAndExec);
|
||||
|
||||
//Handle the waitAndExec array:
|
||||
while {!(GVAR(waitAndExecArray) isEqualTo []) && {GVAR(waitAndExecArray) select 0 select 0 <= ACE_Time}} do {
|
||||
private _entry = GVAR(waitAndExecArray) deleteAt 0;
|
||||
(_entry select 2) call (_entry select 1);
|
||||
};
|
||||
|
||||
//Handle the execNextFrame array:
|
||||
{
|
||||
(_x select 0) call (_x select 1);
|
||||
false
|
||||
} count GVAR(nextFrameBufferA);
|
||||
|
||||
//Swap double-buffer:
|
||||
GVAR(nextFrameBufferA) = GVAR(nextFrameBufferB);
|
||||
GVAR(nextFrameBufferB) = [];
|
||||
GVAR(nextFrameNo) = diag_frameno + 1;
|
||||
|
||||
//Handle the waitUntilAndExec array:
|
||||
{
|
||||
// if condition is satisifed call statement
|
||||
if ((_x select 2) call (_x select 0)) then {
|
||||
// make sure to delete the correct handle when multiple conditions are met in one frame
|
||||
GVAR(waitUntilAndExecArray) deleteAt (GVAR(waitUntilAndExecArray) find _x);
|
||||
(_x select 2) call (_x select 1);
|
||||
};
|
||||
nil
|
||||
} count +GVAR(waitUntilAndExecArray);
|
||||
|
||||
END_COUNTER(waitAndExec);
|
||||
}, 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Get Map Data
|
||||
//////////////////////////////////////////////////
|
||||
@ -64,6 +23,7 @@
|
||||
["blockSprint", false, []] call FUNC(statusEffect_addType);
|
||||
["setCaptive", true, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), QEGVAR(medical,unconscious)]] call FUNC(statusEffect_addType);
|
||||
["blockDamage", false, ["fixCollision"]] call FUNC(statusEffect_addType);
|
||||
["blockEngine", false, ["ACE_Refuel"]] call FUNC(statusEffect_addType);
|
||||
|
||||
["forceWalk", {
|
||||
params ["_object", "_set"];
|
||||
@ -90,6 +50,11 @@
|
||||
_object allowDamage (_set == 0);
|
||||
};
|
||||
}] call FUNC(addEventHandler);
|
||||
["blockEngine", {
|
||||
params ["_vehicle", "_set"];
|
||||
_vehicle setVariable [QGVAR(blockEngine), _set > 0, true];
|
||||
_vehicle engineOn false;
|
||||
}] call FUNC(addEventHandler);
|
||||
|
||||
//Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit
|
||||
//This variable is used for isPlayer checks
|
||||
@ -133,6 +98,7 @@ if (isServer) then {
|
||||
["fixFloating", FUNC(fixFloating)] call FUNC(addEventhandler);
|
||||
["fixPosition", FUNC(fixPosition)] call FUNC(addEventhandler);
|
||||
|
||||
["loadPersonEvent", FUNC(loadPersonLocal)] call FUNC(addEventhandler);
|
||||
["unloadPersonEvent", FUNC(unloadPersonLocal)] call FUNC(addEventhandler);
|
||||
|
||||
["lockVehicle", {
|
||||
@ -146,16 +112,27 @@ if (isServer) then {
|
||||
|
||||
["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler);
|
||||
["setFuel", {(_this select 0) setFuel (_this select 1)}] call FUNC(addEventhandler);
|
||||
["engineOn", {(_this select 0) engineOn (_this select 1)}] call FUNC(addEventhandler);
|
||||
["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler);
|
||||
["selectLeader", {(_this select 0) selectLeader (_this select 1)}] call FUNC(addEventHandler);
|
||||
["setVelocity", {(_this select 0) setVelocity (_this select 1)}] call FUNC(addEventHandler);
|
||||
["playMove", {(_this select 0) playMove (_this select 1)}] call FUNC(addEventHandler);
|
||||
["playMoveNow", {(_this select 0) playMoveNow (_this select 1)}] call FUNC(addEventHandler);
|
||||
["switchMove", {(_this select 0) switchMove (_this select 1)}] call FUNC(addEventHandler);
|
||||
["setVectorDirAndUp", {(_this select 0) setVectorDirAndUp (_this select 1)}] call FUNC(addEventHandler);
|
||||
["setVanillaHitPointDamage", {(_this select 0) setHitPointDamage (_this select 1)}] call FUNC(addEventHandler);
|
||||
|
||||
// Request framework
|
||||
[QGVAR(requestCallback), FUNC(requestCallback)] call FUNC(addEventHandler);
|
||||
[QGVAR(receiveRequest), FUNC(receiveRequest)] call FUNC(addEventHandler);
|
||||
|
||||
[QGVAR(systemChatGlobal), {systemChat _this}] call FUNC(addEventHandler);
|
||||
|
||||
if (isServer) then {
|
||||
["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler);
|
||||
["enableSimulationGlobal", {(_this select 0) enableSimulationGlobal (_this select 1)}] call FUNC(addEventHandler);
|
||||
["setOwner", {(_this select 0) setOwner (_this select 1)}] call FUNC(addEventHandler);
|
||||
[QGVAR(serverLog), FUNC(serverLog)] call FUNC(addEventHandler);
|
||||
};
|
||||
|
||||
|
||||
@ -323,19 +300,14 @@ enableCamShake true;
|
||||
GVAR(OldPlayerVehicle) = vehicle objNull;
|
||||
GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex);
|
||||
GVAR(OldPlayerWeapon) = currentWeapon objNull;
|
||||
GVAR(OldPlayerInventory) = [objNull] call FUNC(getAllGear);
|
||||
GVAR(OldPlayerInventory) = [];
|
||||
GVAR(OldPlayerInventoryNoAmmo) = [];
|
||||
GVAR(OldPlayerVisionMode) = currentVisionMode objNull;
|
||||
GVAR(OldCameraView) = "";
|
||||
GVAR(OldVisibleMap) = false;
|
||||
GVAR(OldInventoryDisplayIsOpen) = nil; //@todo check this
|
||||
GVAR(OldIsCamera) = false;
|
||||
|
||||
// clean up playerChanged eventhandler from preinit and put it in the same PFH as the other events to reduce overhead and guarantee advantageous execution order
|
||||
if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
|
||||
[GVAR(PreInit_playerChanged_PFHID)] call CBA_fnc_removePerFrameHandler;
|
||||
GVAR(PreInit_playerChanged_PFHID) = nil;
|
||||
};
|
||||
|
||||
// PFH to raise varios events
|
||||
[{
|
||||
BEGIN_COUNTER(stateChecker);
|
||||
@ -377,11 +349,36 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
|
||||
};
|
||||
|
||||
// "playerInventoryChanged" event
|
||||
_data = [ACE_player] call FUNC(getAllGear);
|
||||
_data = getUnitLoadout ACE_player;
|
||||
if !(_data isEqualTo GVAR(OldPlayerInventory)) then {
|
||||
// Raise ACE event locally
|
||||
GVAR(OldPlayerInventory) = _data;
|
||||
["playerInventoryChanged", [ACE_player, _data]] call FUNC(localEvent);
|
||||
|
||||
// we don't want to trigger this just because your ammo counter decreased.
|
||||
_data = + GVAR(OldPlayerInventory);
|
||||
|
||||
private _weaponInfo = _data param [0, []];
|
||||
if !(_weaponInfo isEqualTo []) then {
|
||||
_weaponInfo set [4, primaryWeaponMagazine ACE_player];
|
||||
_weaponInfo deleteAt 5;
|
||||
};
|
||||
|
||||
_weaponInfo = _data param [1, []];
|
||||
if !(_weaponInfo isEqualTo []) then {
|
||||
_weaponInfo set [4, secondaryWeaponMagazine ACE_player];
|
||||
_weaponInfo deleteAt 5;
|
||||
};
|
||||
|
||||
_weaponInfo = _data param [2, []];
|
||||
if !(_weaponInfo isEqualTo []) then {
|
||||
_weaponInfo set [4, handgunMagazine ACE_player];
|
||||
_weaponInfo deleteAt 5;
|
||||
};
|
||||
|
||||
if !(_data isEqualTo GVAR(OldPlayerInventoryNoAmmo)) then {
|
||||
GVAR(OldPlayerInventoryNoAmmo) = _data;
|
||||
["playerInventoryChanged", [ACE_player, [ACE_player, false] call FUNC(getAllGear)]] call FUNC(localEvent);
|
||||
};
|
||||
};
|
||||
|
||||
// "playerVisionModeChanged" event
|
||||
@ -442,6 +439,11 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
|
||||
// Add various canInteractWith conditions
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
["isNotDead", {
|
||||
params ["_unit", "_target"];
|
||||
alive _unit
|
||||
}] call FUNC(addCanInteractWithCondition);
|
||||
|
||||
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
|
||||
|
||||
["isNotInside", {
|
||||
|
@ -23,13 +23,6 @@ DFUNC(selectWeaponMode) = {
|
||||
GVAR(syncedEvents) = HASH_CREATE;
|
||||
GVAR(showHudHash) = [] call FUNC(hashCreate);
|
||||
|
||||
//GVARS for execNextFrame and waitAndExec and waitUntilAndExecute
|
||||
GVAR(waitAndExecArray) = [];
|
||||
GVAR(nextFrameNo) = diag_frameno;
|
||||
GVAR(nextFrameBufferA) = [];
|
||||
GVAR(nextFrameBufferB) = [];
|
||||
GVAR(waitUntilAndExecArray) = [];
|
||||
|
||||
GVAR(settingsInitFinished) = false;
|
||||
GVAR(runAtSettingsInitialized) = [];
|
||||
|
||||
@ -46,44 +39,15 @@ if (isServer) then {
|
||||
GVAR(statusEffect_Names) = [];
|
||||
GVAR(statusEffect_isGlobal) = [];
|
||||
|
||||
GVAR(setHearingCapabilityMap) = [];
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Set up PlayerChanged eventhandler for pre init
|
||||
// Set up PlayerChanged eventhandler for pre init (EH is installed in postInit)
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
ACE_player = objNull;
|
||||
uiNamespace setVariable ["ACE_player", objNull];
|
||||
|
||||
// @todo check if this can be removed
|
||||
if (hasInterface) then {
|
||||
// PFH to update the ACE_player variable
|
||||
GVAR(PreInit_playerChanged_PFHID) = [{
|
||||
if !(ACE_player isEqualTo (call FUNC(player))) then {
|
||||
private _oldPlayer = ACE_player;
|
||||
|
||||
ACE_player = call FUNC(player);
|
||||
uiNamespace setVariable ["ACE_player", ACE_player];
|
||||
|
||||
// Raise ACE event
|
||||
["playerChanged", [ACE_player, _oldPlayer]] call FUNC(localEvent);
|
||||
};
|
||||
}, 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Time handling
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
ACE_time = diag_tickTime;
|
||||
ACE_realTime = diag_tickTime;
|
||||
ACE_virtualTime = diag_tickTime;
|
||||
ACE_diagTime = diag_tickTime;
|
||||
ACE_gameTime = time;
|
||||
ACE_pausedTime = 0;
|
||||
ACE_virtualPausedTime = 0;
|
||||
|
||||
[FUNC(timePFH), 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
// Init toHex
|
||||
[0] call FUNC(toHex);
|
||||
|
||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
||||
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_main","ace_modules"};
|
||||
author[] = {"KoffeinFlummi"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
author = CSTRING(ACETeam);
|
||||
authors[] = {"KoffeinFlummi"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG_COMMON;
|
||||
};
|
||||
};
|
||||
|
@ -23,7 +23,7 @@ if (isServer) then {
|
||||
params ["_eventName", "_client"];
|
||||
|
||||
if (!HASH_HASKEY(GVAR(syncedEvents),_eventName)) exitWith {
|
||||
ACE_LOGERROR("Request for synced event - key not found.");
|
||||
ACE_LOGERROR_1("Request for synced event - key [%1] not found.", _eventName);
|
||||
false
|
||||
};
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
params ["_name", "_args", "_ttl"];
|
||||
|
||||
if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
|
||||
ACE_LOGERROR("Synced event key not found.");
|
||||
ACE_LOGERROR_1("Synced event key [%1] not found (_handleSyncedEvent).", _name);
|
||||
false
|
||||
};
|
||||
|
||||
@ -29,7 +29,7 @@ if (isServer) then {
|
||||
_internalData = HASH_GET(GVAR(syncedEvents),_name);
|
||||
|
||||
_internalData params ["", "_eventLog"];
|
||||
_eventLog pushBack [ACE_diagTime, _args, _ttl];
|
||||
_eventLog pushBack [diag_tickTime, _args, _ttl];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -45,7 +45,7 @@ if (_actionID == -1) then {
|
||||
private _addAction = call compile format [
|
||||
"[
|
||||
'',
|
||||
{if (inputAction '%1' == 0) exitWith {}; {if (_this call (_x select 0)) then {_this call (_x select 1)}} forEach (((_this select 0) getVariable '%2') select 1 select 2)},
|
||||
{[{if (inputAction '%1' == 0) exitWith {}; {if (_this call (_x select 0)) then {_this call (_x select 1)}} forEach (((_this select 0) getVariable '%2') select 1 select 2)}, _this] call CBA_fnc_directCall},
|
||||
nil,
|
||||
-1,
|
||||
false,
|
||||
|
@ -52,7 +52,7 @@ _actionIDs pushBack _id;
|
||||
private _addAction = call compile format [
|
||||
"[
|
||||
'%2',
|
||||
{if (inputAction '%1' == 0) then {if (_this call (%3 select 2)) then {_this call (%3 select 3)}} else {_this call (%3 select 1)}},
|
||||
{[{if (inputAction '%1' == 0) then {if (_this call (%3 select 2)) then {_this call (%3 select 3)}} else {_this call (%3 select 1)}}, _this] call CBA_fnc_directCall},
|
||||
nil,
|
||||
%4,
|
||||
false,
|
||||
|
@ -15,6 +15,8 @@
|
||||
|
||||
params ["_statement"];
|
||||
|
||||
ACE_DEPRECATED("ace_common_fnc_addScrollWheelEventHandler", "3.8.0", "'MouseZChanged' Display EventHandler");
|
||||
|
||||
if (_statement isEqualType "") then {
|
||||
_statement = compile _statement;
|
||||
};
|
||||
|
@ -10,6 +10,9 @@
|
||||
* Return Value:
|
||||
* Boolean of success <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* ["myEvent", {_this call x}, 0] call ace_common_fnc_addSyncedEventHandler
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
@ -17,7 +20,7 @@
|
||||
params ["_name", "_handler", ["_ttl", 0]];
|
||||
|
||||
if (HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
|
||||
ACE_LOGERROR("Duplicate synced event creation.");
|
||||
ACE_LOGERROR_1("Duplicate synced event [%1] creation.",_name);
|
||||
false
|
||||
};
|
||||
|
||||
|
@ -29,39 +29,17 @@ GVAR(AssignedItemsShownItems) = [
|
||||
];
|
||||
|
||||
["playerInventoryChanged", {
|
||||
params ["_unit", "_assignedItems"];
|
||||
params ["_unit"];
|
||||
|
||||
_assignedItems = _assignedItems select 17;
|
||||
private _assignedItems = getUnitLoadout _unit param [9, ["","","","","",""]]; // ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"]
|
||||
|
||||
GVAR(AssignedItemsShownItems) = [true, true, true, true, true];
|
||||
|
||||
{
|
||||
if !(_x in GVAR(AssignedItems)) then {
|
||||
GVAR(AssignedItems) pushBack _x;
|
||||
GVAR(AssignedItemsInfo) pushBack toLower getText (configFile >> "CfgWeapons" >> _x >> "ACE_hideItemType");
|
||||
};
|
||||
|
||||
switch (GVAR(AssignedItemsInfo) select (GVAR(AssignedItems) find _x)) do {
|
||||
case ("map"): {
|
||||
GVAR(AssignedItemsShownItems) set [0, false];
|
||||
};
|
||||
case ("compass"): {
|
||||
GVAR(AssignedItemsShownItems) set [1, false];
|
||||
};
|
||||
case ("watch"): {
|
||||
GVAR(AssignedItemsShownItems) set [2, false];
|
||||
};
|
||||
case ("radio"): {
|
||||
GVAR(AssignedItemsShownItems) set [3, false];
|
||||
};
|
||||
case ("gps"): {
|
||||
GVAR(AssignedItemsShownItems) set [4, false];
|
||||
};
|
||||
};
|
||||
false
|
||||
} count _assignedItems;
|
||||
|
||||
//systemChat str GVAR(AssignedItemsShownItems);
|
||||
GVAR(AssignedItemsShownItems) = [
|
||||
!((_assignedItems select 0) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 0 >> "ACE_hideItemType") != "map"},
|
||||
!((_assignedItems select 3) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 3 >> "ACE_hideItemType") != "compass"},
|
||||
!((_assignedItems select 4) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 4 >> "ACE_hideItemType") != "watch"},
|
||||
!((_assignedItems select 2) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 2 >> "ACE_hideItemType") != "radio"},
|
||||
!((_assignedItems select 1) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 1 >> "ACE_hideItemType") != "gps"}
|
||||
];
|
||||
|
||||
GVAR(AssignedItemsShownItems) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"];
|
||||
|
||||
|
@ -15,18 +15,6 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params [["_unit", objNull, [objNull]]];
|
||||
ACE_DEPRECATED("ace_common_fnc_binocularMagazine","3.8.0","CBA_fnc_binocularMagazine");
|
||||
|
||||
private _binocular = binocular _unit;
|
||||
|
||||
scopeName "main";
|
||||
|
||||
{
|
||||
if ((_x select 0) isEqualTo _binocular) then {
|
||||
// note: if there is no magazine, _x(4,0) will be nil, which skips the breakOut.
|
||||
(_x select 4 select 0) breakOut "main";
|
||||
};
|
||||
false
|
||||
} count weaponsitems _unit;
|
||||
|
||||
""
|
||||
_this call CBA_fnc_binocularMagazine
|
||||
|
@ -19,8 +19,8 @@
|
||||
|
||||
params ["_params", "_function", "_namespace", "_uid", "_duration", "_event"];
|
||||
|
||||
if ((_namespace getVariable [_uid, [-99999]]) select 0 < ACE_diagTime) then {
|
||||
_namespace setVariable [_uid, [ACE_diagTime + _duration, _params call _function]];
|
||||
if ((_namespace getVariable [_uid, [-99999]]) select 0 < diag_tickTime) then {
|
||||
_namespace setVariable [_uid, [diag_tickTime + _duration, _params call _function]];
|
||||
|
||||
// Does the cache needs to be cleared on an event?
|
||||
if (!isNil "_event") then {
|
||||
|
@ -19,6 +19,18 @@ private _version = getText (configFile >> "CfgPatches" >> "ace_main" >> "version
|
||||
|
||||
ACE_LOGINFO_1("ACE is version %1.",_version);
|
||||
|
||||
//CBA Versioning check - close main display if using incompatible version
|
||||
private _cbaVersionAr = getArray (configFile >> "CfgPatches" >> "cba_main" >> "versionAr");
|
||||
private _cbaRequiredAr = (getArray (configFile >> "CfgSettings" >> "CBA" >> "Versioning" >> "ACE" >> "dependencies" >> "CBA")) select 1;
|
||||
ACE_LOGINFO_2("CBA is version %1 [min required %2]",_cbaVersionAr,_cbaRequiredAr);
|
||||
if ([_cbaRequiredAr, _cbaVersionAr] call cba_versioning_fnc_version_compare) then {
|
||||
private _errorMsg = format ["CBA Version [%1] is outdated [required %2]", _cbaVersionAr, _cbaRequiredAr];
|
||||
ACE_LOGERROR(_errorMsg);
|
||||
if (hasInterface) then {
|
||||
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
};
|
||||
};
|
||||
|
||||
//private _addons = activatedAddons; // broken with High-Command module, see #2134
|
||||
private _addons = "true" configClasses (configFile >> "CfgPatches");//
|
||||
_addons = _addons apply {toLower configName _x};//
|
||||
|
@ -61,7 +61,8 @@ if (!isServer) then {
|
||||
_error = _error + "Newer version; ";
|
||||
};
|
||||
|
||||
//[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
//[QGVAR(systemChatGlobal), _error] call FUNC(globalEvent);
|
||||
|
||||
ACE_LOGERROR(_error);
|
||||
|
||||
if (_mode < 2) then {
|
||||
@ -79,7 +80,7 @@ if (!isServer) then {
|
||||
params ["_rscLayer"];
|
||||
TRACE_2("Hiding Error message after 10 seconds",time,_rscLayer);
|
||||
_rscLayer cutFadeOut 0.2;
|
||||
}, [_rscLayer], 10] call FUNC(waitAndExecute);
|
||||
}, [_rscLayer], 10] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
};
|
||||
|
||||
@ -89,7 +90,7 @@ if (!isServer) then {
|
||||
TRACE_2("Player is alive, showing msg and exiting",time,_text);
|
||||
_text = composeText [parseText format ["<t align='center'>%1</t>", _text]];
|
||||
["[ACE] ERROR", _text, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
}, [_text]] call FUNC(waitUntilAndExecute);
|
||||
}, [_text]] call CBA_fnc_waitUntilAndExecute;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -12,12 +12,11 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_function"];
|
||||
params ["_code"];
|
||||
if (_code isEqualType "") exitWith {_code};
|
||||
|
||||
if (_function isEqualType "") exitWith {_function};
|
||||
_code = str(_code);
|
||||
_code = _code select [1, count _code - 2];
|
||||
|
||||
_function = toArray str _function;
|
||||
_function deleteAt 0;
|
||||
_function deleteAt (count _function - 1);
|
||||
_code
|
||||
|
||||
toString _function // return
|
||||
|
63
addons/common/functions/fnc_deprecateComponent.sqf
Normal file
63
addons/common/functions/fnc_deprecateComponent.sqf
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Mark a component as deprecated and switches it to a new component if that is available
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Component <Array>
|
||||
* 1: New component <Array>
|
||||
* 2: Version when the compent will be removed <String>
|
||||
*
|
||||
* Return Value:
|
||||
* Replaced by new component <Boolean>
|
||||
*
|
||||
* Public: No
|
||||
*
|
||||
* Example:
|
||||
* [["ace_sitting", "ace_sitting_enabled"], ["acex_sitting", "acex_sitting_enabled"], "3.7.0"] call ace_common_fnc_deprecateComponent;
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_oldComponent", "_newComponent", "_version"];
|
||||
|
||||
_oldComponent params ["_oldComponentName", "_oldSettingName"];
|
||||
_newComponent params ["_newComponentName", "_newSettingName"];
|
||||
|
||||
private _isReplacementAvailable = isClass (configFile >> "CfgPatches" >> _newComponentName);
|
||||
private _isDeprecatedLoaded = missionNamespace getvariable [_oldSettingName, false];
|
||||
private _isReplacementLoaded = missionNamespace getvariable [_newSettingName, false];
|
||||
|
||||
if (_isDeprecatedLoaded && {_isReplacementAvailable} && {!_isReplacementLoaded}) then {
|
||||
[_newSettingName, true, true, true] call FUNC(setSetting);
|
||||
};
|
||||
|
||||
if (_isDeprecatedLoaded && {!_isReplacementLoaded}) then {
|
||||
private _componentVersion = getText (configFile >> "CfgPatches" >> _oldComponentName >> "version");
|
||||
((_componentVersion splitString ".") apply {parseNumber _x}) params ["_componentMajor", "_componentMinor", "_componentPatch"];
|
||||
((_version splitString ".") apply {parseNumber _x}) params ["_major", "_minor", "_patch"];
|
||||
|
||||
switch (true) do {
|
||||
case (_componentMajor >= _major && {_componentMinor >= _minor} && {_componentPatch >= _patch}): { // Removed from this version
|
||||
private _message = format[
|
||||
"Component %1 is deprecated. It has been replaced by %2. The component %1 is no longer usable on this version. ", _oldComponentName, _newComponentName, _version];
|
||||
systemChat format["ACE [ERROR] - %1", _message];
|
||||
ACE_LOGERROR(_message);
|
||||
};
|
||||
case (_componentMajor >= _major && {_componentMinor >= _minor-1}): { // Removed the next this version
|
||||
private _message = format[
|
||||
"Component %1 is deprecated. It is replaced by %2. Please disable %1 and make use of %2. "
|
||||
+ "The component (%1) will no longer be available from version %3 and later.", _oldComponentName, _newComponentName, _version];
|
||||
systemChat format["ACE [WARNING] - %1", _message];
|
||||
ACE_LOGWARNING(_message);
|
||||
};
|
||||
case (_componentMajor == _major && {_componentMinor >= _minor - 2}): { // we are in a version leading up to removal
|
||||
private _message = format[
|
||||
"Component %1 is deprecated. It is replaced by %2. Please disable %1 and make use of %2. "
|
||||
+ "The component (%1) will no longer be available from version %3 and later.", _oldComponentName, _newComponentName, _version];
|
||||
ACE_LOGWARNING(_message);
|
||||
};
|
||||
default {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_isReplacementAvailable;
|
@ -13,7 +13,7 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [(localize "STR_ACE_microdagr_itemName"), QUOTE(PATHTOF(images\microDAGR_item.paa)), _conditionCode, _toggleCode, _closeCode] call ace_common_fnc_deviceKeyRegisterNew
|
||||
* [(localize "STR_ACE_microdagr_itemName"), QPATHTOF(images\microDAGR_item.paa), _conditionCode, _toggleCode, _closeCode] call ace_common_fnc_deviceKeyRegisterNew
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
@ -14,7 +14,7 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* ["myID", true, QUOTE(PATHTOF(data\icon_group.paa)), [1,1,1,1], 0] call ace_gui_fnc_displayIcon;
|
||||
* ["myID", true, QPATHTOF(data\icon_group.paa), [1,1,1,1], 0] call ace_gui_fnc_displayIcon;
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
@ -89,11 +89,11 @@ private _refresh = {
|
||||
|
||||
if (_show) then {
|
||||
if ({_x select 0 == _iconId} count _list == 0) then {
|
||||
_list pushBack [_iconId, _icon, _color, ACE_time];
|
||||
_list pushBack [_iconId, _icon, _color, CBA_missionTime];
|
||||
} else {
|
||||
{
|
||||
if (_x select 0 == _iconId) exitWith {
|
||||
_list set [_forEachIndex, [_iconId, _icon, _color, ACE_time]];
|
||||
_list set [_forEachIndex, [_iconId, _icon, _color, CBA_missionTime]];
|
||||
};
|
||||
} forEach _list;
|
||||
};
|
||||
@ -104,7 +104,7 @@ if (_show) then {
|
||||
if (_timeAlive >= 0) then {
|
||||
[{
|
||||
[_this select 0, false, "", [0,0,0], 0] call FUNC(displayIcon);
|
||||
}, [_iconId], _timeAlive, _timeAlive] call FUNC(waitAndExecute);
|
||||
}, [_iconId], _timeAlive, _timeAlive] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
|
||||
} else {
|
||||
|
@ -25,7 +25,7 @@ if !(typeName _text in ["STRING", "TEXT"]) then {_text = str _text};
|
||||
|
||||
GVAR(lastHint) params ["_lastHintTime", "_lastHintPriority"];
|
||||
|
||||
private _time = ACE_time;
|
||||
private _time = CBA_missionTime;
|
||||
|
||||
if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
|
||||
hintSilent _text;
|
||||
@ -33,5 +33,5 @@ if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
|
||||
GVAR(lastHint) set [0, _time];
|
||||
GVAR(lastHint) set [1, _priority];
|
||||
|
||||
[{if ((_this select 0) == GVAR(lastHint) select 0) then {hintSilent ""};}, [_time], _delay, 0] call FUNC(waitAndExecute);
|
||||
[{if ((_this select 0) == GVAR(lastHint) select 0) then {hintSilent ""};}, [_time], _delay, 0] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
|
@ -13,10 +13,6 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_func", "_params"];
|
||||
ACE_DEPRECATED("ace_common_fnc_execNextFrame","3.8.0","CBA_fnc_execNextFrame");
|
||||
|
||||
if (diag_frameno != GVAR(nextFrameNo)) then {
|
||||
GVAR(nextFrameBufferA) pushBack [_params, _func];
|
||||
} else {
|
||||
GVAR(nextFrameBufferB) pushBack [_params, _func];
|
||||
};
|
||||
_this call CBA_fnc_execNextFrame;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user