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]
|
[*.md]
|
||||||
trim_trailing_whitespace = false
|
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.
|
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">
|
**Please note:**
|
||||||
<h5>Please note:</h5>
|
- It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.
|
||||||
<p>It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.</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>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>
|
|
||||||
|
|
||||||
## Reporting the issue
|
## 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.
|
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
|
## 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.
|
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`
|
**Arma 3 Version:** `x.xx` (stable / rc / dev)
|
||||||
*(indicate if stable, rc or dev*)
|
**CBA Version:** `2.x.x` (stable / dev + commit hash)
|
||||||
|
**ACE3 Version:** `3.x.x` (stable / dev + commit hash)
|
||||||
**ACE3 Version:** `3.x.x`
|
|
||||||
*(indicate if stable or dev, if dev indicate the commit the version is based on)*
|
|
||||||
|
|
||||||
**Mods:**
|
**Mods:**
|
||||||
* `@CBA_A3`
|
- `@CBA_A3`
|
||||||
* `@ace`
|
- `@ace`
|
||||||
* ...
|
|
||||||
|
|
||||||
**Placed Modules:**
|
|
||||||
* *Add the list of modules you have placed on the map. Use 'None' if the error occurs without using any modules.*
|
|
||||||
|
|
||||||
**Description:**
|
**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:**
|
**Steps to reproduce:**
|
||||||
* *Add the steps needed to reproduce the issue.*
|
- Add the steps needed to reproduce the issue.
|
||||||
|
|
||||||
**Where did the issue occur?**
|
**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:**
|
**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:
|
**When merged this pull request will:**
|
||||||
|
- Describe what this pull request will do
|
||||||
1. *Describe what this pull request will do*
|
- Each change in a separate line
|
||||||
2. *Each change in a seperate line*
|
- Respect the [Development Guidelines](http://ace3mod.com/wiki/development/)
|
||||||
|
|
||||||
---
|
|
||||||
*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)
|
|
||||||
|
@ -12,6 +12,7 @@ before_script:
|
|||||||
fi
|
fi
|
||||||
script:
|
script:
|
||||||
- python3 tools/sqf_validator.py
|
- python3 tools/sqf_validator.py
|
||||||
|
- python3 tools/config_style_checker.py
|
||||||
- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
||||||
python3 tools/deploy.py;
|
python3 tools/deploy.py;
|
||||||
fi
|
fi
|
||||||
|
@ -65,6 +65,7 @@ F3 Project <alanr@ferstaberinde.com>
|
|||||||
Falke75
|
Falke75
|
||||||
Ferenczi
|
Ferenczi
|
||||||
Ferenzi
|
Ferenzi
|
||||||
|
FFAAMOD <modffaa@gmail.com>
|
||||||
Filip Basara <filip.basara93@googlemail.com>
|
Filip Basara <filip.basara93@googlemail.com>
|
||||||
fr89k <kaschitoku@web.de>
|
fr89k <kaschitoku@web.de>
|
||||||
FreeZbe <freeseb@gmail.com>
|
FreeZbe <freeseb@gmail.com>
|
||||||
@ -74,6 +75,7 @@ Gianmarco Varriale (TeamNuke) <admin@forhost.org>
|
|||||||
GieNkoV <gienkov.grzegorz@gmail.com>
|
GieNkoV <gienkov.grzegorz@gmail.com>
|
||||||
GitHawk <githawk@gmx.net>
|
GitHawk <githawk@gmx.net>
|
||||||
gpgpgpgp
|
gpgpgpgp
|
||||||
|
Grey-Soldierman <gungamer101@hotmail.com>
|
||||||
Grzegorz
|
Grzegorz
|
||||||
Hamburger SV
|
Hamburger SV
|
||||||
Harakhti <shadowdragonphd@gmail.com>
|
Harakhti <shadowdragonphd@gmail.com>
|
||||||
@ -110,6 +112,7 @@ Sniperwolf572 <tenga6@gmail.com>
|
|||||||
System98
|
System98
|
||||||
SzwedzikPL <szwedzikpl@gmail.com>
|
SzwedzikPL <szwedzikpl@gmail.com>
|
||||||
Tachi <zaveruha007@gmail.com>
|
Tachi <zaveruha007@gmail.com>
|
||||||
|
Tessa Elieff <Fastroping Sound - CreativeCommons Attributions 3.0>
|
||||||
Toaster <jonathan.pereira@gmail.com>
|
Toaster <jonathan.pereira@gmail.com>
|
||||||
Tonic
|
Tonic
|
||||||
Tourorist <tourorist@gmail.com>
|
Tourorist <tourorist@gmail.com>
|
||||||
@ -118,4 +121,3 @@ voiper
|
|||||||
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
||||||
Winter <simon@agius-muscat.net>
|
Winter <simon@agius-muscat.net>
|
||||||
zGuba
|
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
|
that be the case, everything in that folder and all subfolders is subject
|
||||||
to that license instead.
|
to that license instead.
|
||||||
|
|
||||||
|
- ARMA PUBLIC LICENSE (\addons\apl)
|
||||||
|
- CreativeCommons Attributions 3.0 (\addons\fastroping\data\sounds)
|
||||||
|
|
||||||
============================================================================
|
============================================================================
|
||||||
Full GNU General Public License Text
|
Full GNU General Public License Text
|
||||||
|
10
README.md
10
README.md
@ -3,15 +3,15 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/acemod/ACE3/releases">
|
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||||
<img src="https://img.shields.io/badge/Version-3.4.2-blue.svg?style=flat-square" alt="ACE3 Version">
|
<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/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>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/issues">
|
<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">
|
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||||
</a>
|
</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">
|
<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">
|
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square" alt="BIF Thread">
|
||||||
</a>
|
</a>
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
ace_fcs.dll
BIN
ace_fcs.dll
Binary file not shown.
BIN
ace_medical.dll
BIN
ace_medical.dll
Binary file not shown.
Binary file not shown.
@ -1,29 +1,34 @@
|
|||||||
class ACE_Settings {
|
class ACE_Settings {
|
||||||
class GVAR(enabled) {
|
class GVAR(enabled) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(enabled_DisplayName);
|
displayName = CSTRING(enabled_DisplayName);
|
||||||
description = CSTRING(enabled_Description);
|
description = CSTRING(enabled_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 0;
|
value = 0;
|
||||||
};
|
};
|
||||||
class GVAR(simulateForSnipers) {
|
class GVAR(simulateForSnipers) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(simulateForSnipers_DisplayName);
|
displayName = CSTRING(simulateForSnipers_DisplayName);
|
||||||
description = CSTRING(simulateForSnipers_Description);
|
description = CSTRING(simulateForSnipers_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 1;
|
value = 1;
|
||||||
};
|
};
|
||||||
class GVAR(simulateForGroupMembers) {
|
class GVAR(simulateForGroupMembers) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(simulateForGroupMembers_DisplayName);
|
displayName = CSTRING(simulateForGroupMembers_DisplayName);
|
||||||
description = CSTRING(simulateForGroupMembers_Description);
|
description = CSTRING(simulateForGroupMembers_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 0;
|
value = 0;
|
||||||
};
|
};
|
||||||
class GVAR(simulateForEveryone) {
|
class GVAR(simulateForEveryone) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(simulateForEveryone_DisplayName);
|
displayName = CSTRING(simulateForEveryone_DisplayName);
|
||||||
description = CSTRING(simulateForEveryone_Description);
|
description = CSTRING(simulateForEveryone_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 0;
|
value = 0;
|
||||||
};
|
};
|
||||||
class GVAR(disabledInFullAutoMode) {
|
class GVAR(disabledInFullAutoMode) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(disabledInFullAutoMod_DisplayName);
|
displayName = CSTRING(disabledInFullAutoMod_DisplayName);
|
||||||
description = CSTRING(disabledInFullAutoMod_Description);
|
description = CSTRING(disabledInFullAutoMod_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
@ -31,6 +36,7 @@ class ACE_Settings {
|
|||||||
};
|
};
|
||||||
/* // TODO: We currently do not have firedEHs on vehicles
|
/* // TODO: We currently do not have firedEHs on vehicles
|
||||||
class GVAR(vehicleGunnerEnabled) {
|
class GVAR(vehicleGunnerEnabled) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = "Enabled For Vehicle Gunners";
|
displayName = "Enabled For Vehicle Gunners";
|
||||||
description = "Enables advanced ballistics for vehicle gunners";
|
description = "Enables advanced ballistics for vehicle gunners";
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
@ -38,30 +44,35 @@ class ACE_Settings {
|
|||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
class GVAR(ammoTemperatureEnabled) {
|
class GVAR(ammoTemperatureEnabled) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(ammoTemperatureEnabled_DisplayName);
|
displayName = CSTRING(ammoTemperatureEnabled_DisplayName);
|
||||||
description = CSTRING(ammoTemperatureEnabled_Description);
|
description = CSTRING(ammoTemperatureEnabled_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 1;
|
value = 1;
|
||||||
};
|
};
|
||||||
class GVAR(barrelLengthInfluenceEnabled) {
|
class GVAR(barrelLengthInfluenceEnabled) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(barrelLengthInfluenceEnabled_DisplayName);
|
displayName = CSTRING(barrelLengthInfluenceEnabled_DisplayName);
|
||||||
description = CSTRING(barrelLengthInfluenceEnabled_Description);
|
description = CSTRING(barrelLengthInfluenceEnabled_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 1;
|
value = 1;
|
||||||
};
|
};
|
||||||
class GVAR(bulletTraceEnabled) {
|
class GVAR(bulletTraceEnabled) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(bulletTraceEnabled_DisplayName);
|
displayName = CSTRING(bulletTraceEnabled_DisplayName);
|
||||||
description = CSTRING(bulletTraceEnabled_Description);
|
description = CSTRING(bulletTraceEnabled_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 1;
|
value = 1;
|
||||||
};
|
};
|
||||||
class GVAR(simulationInterval) {
|
class GVAR(simulationInterval) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(simulationInterval_DisplayName);
|
displayName = CSTRING(simulationInterval_DisplayName);
|
||||||
description = CSTRING(simulationInterval_Description);
|
description = CSTRING(simulationInterval_Description);
|
||||||
typeName = "SCALAR";
|
typeName = "SCALAR";
|
||||||
value = 0.0;
|
value = 0.0;
|
||||||
};
|
};
|
||||||
class GVAR(simulationRadius) {
|
class GVAR(simulationRadius) {
|
||||||
|
category = CSTRING(DisplayName);
|
||||||
displayName = CSTRING(simulationRadius_DisplayName);
|
displayName = CSTRING(simulationRadius_DisplayName);
|
||||||
description = CSTRING(simulationRadius_Description);
|
description = CSTRING(simulationRadius_Description);
|
||||||
typeName = "SCALAR";
|
typeName = "SCALAR";
|
||||||
|
@ -3,7 +3,7 @@ class CfgVehicles {
|
|||||||
class GVAR(ModuleSettings): ACE_Module {
|
class GVAR(ModuleSettings): ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(DisplayName);
|
displayName = CSTRING(DisplayName);
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_Wind_ca.paa);
|
||||||
category = "ACE";
|
category = "ACE";
|
||||||
function = QUOTE(DFUNC(initModuleSettings));
|
function = QUOTE(DFUNC(initModuleSettings));
|
||||||
functionPriority = 1;
|
functionPriority = 1;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
GVAR(currentbulletID) = -1;
|
GVAR(currentbulletID) = -1;
|
||||||
|
|
||||||
GVAR(Protractor) = false;
|
GVAR(Protractor) = false;
|
||||||
GVAR(ProtractorStart) = ACE_time;
|
GVAR(ProtractorStart) = CBA_missionTime;
|
||||||
GVAR(allBullets) = [];
|
GVAR(allBullets) = [];
|
||||||
GVAR(currentGrid) = 0;
|
GVAR(currentGrid) = 0;
|
||||||
|
|
||||||
@ -21,7 +21,6 @@ if (!GVAR(extensionAvailable)) exitWith {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
[] call FUNC(initializeTerrainExtension);
|
|
||||||
|
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
@ -29,10 +28,28 @@ if (!hasInterface) exitWith {};
|
|||||||
//If not enabled, dont't add PFEH
|
//If not enabled, dont't add PFEH
|
||||||
if (!GVAR(enabled)) exitWith {};
|
if (!GVAR(enabled)) exitWith {};
|
||||||
|
|
||||||
|
//Run the terrain processor
|
||||||
|
[] call FUNC(initializeTerrainExtension);
|
||||||
|
|
||||||
// Register fire event handler
|
// Register fire event handler
|
||||||
["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
||||||
["firedPlayerNonLocal", 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);
|
}] call EFUNC(common,addEventHandler);
|
||||||
|
|
||||||
#ifdef DEBUG_MODE_FULL
|
#ifdef DEBUG_MODE_FULL
|
||||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
|||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_ballistics", "ace_weather"};
|
requiredAddons[] = {"ace_ballistics", "ace_weather"};
|
||||||
author[] = {"Ruthberg"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/ulteq";
|
authors[] = {"Ruthberg"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -43,13 +43,13 @@ GVAR(Protractor) = true;
|
|||||||
|
|
||||||
__ctrl1 ctrlSetScale 1;
|
__ctrl1 ctrlSetScale 1;
|
||||||
__ctrl1 ctrlCommit 0;
|
__ctrl1 ctrlCommit 0;
|
||||||
__ctrl1 ctrlSetText QUOTE(PATHTOF(UI\protractor.paa));
|
__ctrl1 ctrlSetText QPATHTOF(UI\protractor.paa);
|
||||||
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
|
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
|
||||||
|
|
||||||
__ctrl2 ctrlSetScale 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 ctrlCommit 0;
|
||||||
__ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
|
__ctrl2 ctrlSetText QPATHTOF(UI\protractor_marker.paa);
|
||||||
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
|
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
|
||||||
|
|
||||||
}, 0.1, []] call CBA_fnc_addPerFrameHandler;
|
}, 0.1, []] call CBA_fnc_addPerFrameHandler;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private _aceTimeSecond = floor ACE_time;
|
private _aceTimeSecond = floor CBA_missionTime;
|
||||||
|
|
||||||
{
|
{
|
||||||
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
|
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,"","",""];
|
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
|
nil
|
||||||
} count +GVAR(allBullets);
|
} count +GVAR(allBullets);
|
||||||
|
@ -88,7 +88,7 @@ if (GVAR(ammoTemperatureEnabled) || GVAR(barrelLengthInfluenceEnabled)) then {
|
|||||||
|
|
||||||
_bulletTraceVisible = false;
|
_bulletTraceVisible = false;
|
||||||
if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then {
|
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;
|
_bulletTraceVisible = true;
|
||||||
} else {
|
} else {
|
||||||
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
|
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
|
||||||
@ -110,8 +110,8 @@ if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) th
|
|||||||
|
|
||||||
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
||||||
|
|
||||||
_aceTimeSecond = floor ACE_time;
|
_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, ACE_time - _aceTimeSecond];
|
"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)];
|
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"];
|
private ["_initStartTime", "_mapSize", "_mapGrids", "_gridCells", "_x", "_y", "_gridCenter", "_gridHeight", "_gridNumObjects", "_gridSurfaceIsWater"];
|
||||||
|
|
||||||
_initStartTime = ACE_time;
|
_initStartTime = CBA_missionTime;
|
||||||
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
||||||
|
|
||||||
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
||||||
#ifdef DEBUG_MODE_FULL
|
#ifdef DEBUG_MODE_FULL
|
||||||
systemChat "AdvancedBallistics: Terrain already initialized";
|
systemChat "AdvancedBallistics: Terrain already initialized";
|
||||||
#endIf
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
_mapGrids = ceil(_mapSize / 50) + 1;
|
_mapGrids = ceil(_mapSize / 50) + 1;
|
||||||
@ -38,7 +38,7 @@ GVAR(currentGrid) = 0;
|
|||||||
|
|
||||||
if (GVAR(currentGrid) >= _gridCells) exitWith {
|
if (GVAR(currentGrid) >= _gridCells) exitWith {
|
||||||
#ifdef DEBUG_MODE_FULL
|
#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
|
#endif
|
||||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
@ -92,7 +92,7 @@
|
|||||||
<German>Für Gruppenmitglieder aktiviert</German>
|
<German>Für Gruppenmitglieder aktiviert</German>
|
||||||
<Czech>Povoleno pro členy skupiny</Czech>
|
<Czech>Povoleno pro členy skupiny</Czech>
|
||||||
<Portuguese>Ativada para membros do grupo</Portuguese>
|
<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>
|
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
||||||
<Russian>Включена для группы</Russian>
|
<Russian>Включена для группы</Russian>
|
||||||
<Italian>Abilita per Membri del Gruppo</Italian>
|
<Italian>Abilita per Membri del Gruppo</Italian>
|
||||||
@ -104,7 +104,7 @@
|
|||||||
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
|
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
|
||||||
<Czech>Aktivuje pokročilou balistiku pro nelokální členy skupiny</Czech>
|
<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>
|
<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>
|
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
|
||||||
<Russian>Включает продвинутую баллистику для нелокальных членов группы</Russian>
|
<Russian>Включает продвинутую баллистику для нелокальных членов группы</Russian>
|
||||||
<Italian>Abilita Balistica Avanzata per Membri non locali del Gruppo</Italian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<German>Für Gruppenmitglieder immer aktiviert</German>
|
||||||
<Czech>Vždy povoleno pro členy skupiny</Czech>
|
<Czech>Vždy povoleno pro členy skupiny</Czech>
|
||||||
<Portuguese>Sempre ativada para membros do grupo</Portuguese>
|
<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>
|
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
|
||||||
<Russian>Всегда включена для членов группы</Russian>
|
<Russian>Всегда включена для членов группы</Russian>
|
||||||
<Italian>Sempre abilitato per Membri del Gruppo</Italian>
|
<Italian>Sempre abilitato per Membri del Gruppo</Italian>
|
||||||
@ -272,7 +272,7 @@
|
|||||||
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
|
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
|
||||||
<Czech>Určuje interval mezi každým výpočtem</Czech>
|
<Czech>Určuje interval mezi každým výpočtem</Czech>
|
||||||
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
|
<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>
|
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
|
||||||
<Russian>Определяет временной интервал между вычислениями</Russian>
|
<Russian>Определяет временной интервал между вычислениями</Russian>
|
||||||
<Italian>Definisce l'intervallo tra ogni step di calcolo</Italian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<Russian>Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам</Russian>
|
||||||
<Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"KoffeinFlummi","commy2"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
authors[] = {"KoffeinFlummi","commy2"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -145,7 +145,7 @@ class RscInGameUI
|
|||||||
sizeEx = "0.038*SafezoneH";
|
sizeEx = "0.038*SafezoneH";
|
||||||
shadow = 0;
|
shadow = 0;
|
||||||
font = "EtelkaMonospacePro";
|
font = "EtelkaMonospacePro";
|
||||||
text = PATHTOF(data\Helo_LaserON.paa);
|
text = QPATHTOF(data\Helo_LaserON.paa);
|
||||||
x = "20.45 * (0.01875 * SafezoneH)";
|
x = "20.45 * (0.01875 * SafezoneH)";
|
||||||
y = "14.1 * (0.025 * SafezoneH)";
|
y = "14.1 * (0.025 * SafezoneH)";
|
||||||
w = "12.5 * (0.01875 * SafezoneH)";
|
w = "12.5 * (0.01875 * SafezoneH)";
|
||||||
@ -335,7 +335,7 @@ class RscInGameUI
|
|||||||
shadow = 0;
|
shadow = 0;
|
||||||
align = "right";
|
align = "right";
|
||||||
font = "EtelkaMonospacePro";
|
font = "EtelkaMonospacePro";
|
||||||
text = PATHTOF(data\Helo_LaserON.paa);
|
text = QPATHTOF(data\Helo_LaserON.paa);
|
||||||
x = "20.45 * (0.01875 * SafezoneH)";
|
x = "20.45 * (0.01875 * SafezoneH)";
|
||||||
y = "14.1 * (0.025 * SafezoneH)";
|
y = "14.1 * (0.025 * SafezoneH)";
|
||||||
w = "12.5 * (0.01875 * SafezoneH)";
|
w = "12.5 * (0.01875 * SafezoneH)";
|
||||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
|||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
authors[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
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};
|
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;
|
acceleration = 265;
|
||||||
landingSpeed = 220;
|
landingSpeed = 220;
|
||||||
gunAimDown = 0.087266463;
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<Spanish>Ráfaga</Spanish>
|
<Spanish>Ráfaga</Spanish>
|
||||||
<Polish>Seria</Polish>
|
<Polish>Seria</Polish>
|
||||||
<Czech>Dávka</Czech>
|
<Czech>Dávka</Czech>
|
||||||
<French>Contremesure</French>
|
<French>Contre mesures</French>
|
||||||
<Russian>Очередь</Russian>
|
<Russian>Очередь</Russian>
|
||||||
<Hungarian>Sorozat</Hungarian>
|
<Hungarian>Sorozat</Hungarian>
|
||||||
<Portuguese>Rajada</Portuguese>
|
<Portuguese>Rajada</Portuguese>
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<English>Open Cargo Door</English>
|
<English>Open Cargo Door</English>
|
||||||
<German>Laderampe öffnen</German>
|
<German>Laderampe öffnen</German>
|
||||||
<Spanish>Abrir compuerta de carga</Spanish>
|
<Spanish>Abrir compuerta de carga</Spanish>
|
||||||
<French>Ourvir la rampe</French>
|
<French>Ouvrir la rampe</French>
|
||||||
<Polish>Otwórz drzwi ładowni</Polish>
|
<Polish>Otwórz drzwi ładowni</Polish>
|
||||||
<Czech>Otevřít nákladní prostor</Czech>
|
<Czech>Otevřít nákladní prostor</Czech>
|
||||||
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
||||||
|
@ -6,8 +6,8 @@ class CfgPatches {
|
|||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_main"};
|
requiredAddons[] = {"ace_main"};
|
||||||
author[] = {"Bohemia Interactive"};
|
author = "Bohemia Interactive";
|
||||||
authorUrl = "http://ace3mod.com";
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -9,7 +9,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE(call FUNC(create_dialog));
|
statement = QUOTE(call FUNC(create_dialog));
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 2;
|
priority = 2;
|
||||||
icon = PATHTOF(UI\ATRAG_Icon.paa);
|
icon = QPATHTOF(UI\ATRAG_Icon.paa);
|
||||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -8,8 +8,8 @@ class CfgWeapons {
|
|||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(Name);
|
displayName = CSTRING(Name);
|
||||||
descriptionShort = CSTRING(Description);
|
descriptionShort = CSTRING(Description);
|
||||||
model = PATHTOF(data\tdsrecon.p3d);
|
model = QPATHTOF(data\tdsrecon.p3d);
|
||||||
picture = PATHTOF(UI\ATRAG_Icon.paa);
|
picture = QPATHTOF(UI\ATRAG_Icon.paa);
|
||||||
icon = "iconObject_circle";
|
icon = "iconObject_circle";
|
||||||
mapSize = 0.034;
|
mapSize = 0.034;
|
||||||
|
|
||||||
|
@ -6,7 +6,9 @@ class CfgPatches {
|
|||||||
weapons[] = {"ACE_ATragMX"};
|
weapons[] = {"ACE_ATragMX"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ACE_common", "ACE_weather"};
|
requiredAddons[] = {"ACE_common", "ACE_weather"};
|
||||||
author = "Ruthberg";
|
author = ECSTRING(common,ACETeam);
|
||||||
|
authors[] = {"Ruthberg"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -42,31 +42,14 @@
|
|||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
params [
|
||||||
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", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity",
|
||||||
_scopeBaseAngle = _this select 0;
|
"_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed",
|
||||||
_bulletMass = _this select 1;
|
"_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_bc", "_dragModel",
|
||||||
_boreHeight = _this select 2;
|
"_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude",
|
||||||
_airFriction = _this select 3;
|
"_directionOfFire"
|
||||||
_muzzleVelocity = _this select 4;
|
];
|
||||||
_temperature = _this select 5;
|
_windSpeed params ["_windSpeed1", "_windSpeed2"];
|
||||||
_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;
|
|
||||||
|
|
||||||
private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_bulletSpeed", "_gravity", "_deltaT"];
|
private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_bulletSpeed", "_gravity", "_deltaT"];
|
||||||
_bulletPos = [0, 0, 0];
|
_bulletPos = [0, 0, 0];
|
||||||
@ -142,7 +125,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
|||||||
_trueSpeed = vectorMagnitude _trueVelocity;
|
_trueSpeed = vectorMagnitude _trueVelocity;
|
||||||
|
|
||||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
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]))
|
parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed]))
|
||||||
} else {
|
} else {
|
||||||
([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation))
|
([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation))
|
||||||
|
@ -17,10 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_gunID", "_restoreMemory", "_updateDisplay"];
|
params ["_gunID", "_restoreMemory", "_updateDisplay"];
|
||||||
_gunID = _this select 0;
|
|
||||||
_restoreMemory = _this select 1;
|
|
||||||
_updateDisplay = _this select 2;
|
|
||||||
|
|
||||||
if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {};
|
if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {};
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ GVAR(DialogPFH) = [{
|
|||||||
if (!GVAR(active)) exitWith {
|
if (!GVAR(active)) exitWith {
|
||||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
[_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;
|
}, 60, []] call CBA_fnc_addPerFrameHandler;
|
||||||
|
|
||||||
true
|
true
|
||||||
|
@ -21,6 +21,5 @@ GVAR(showGunList) = _this;
|
|||||||
|
|
||||||
if (_this) then {
|
if (_this) then {
|
||||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 6002);
|
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 6002);
|
||||||
|
|
||||||
lbSetCurSel [6000, GVAR(currentGun)];
|
lbSetCurSel [6000, GVAR(currentGun)];
|
||||||
};
|
};
|
||||||
|
@ -21,7 +21,6 @@ GVAR(showTargetRangeAssist) = _this;
|
|||||||
|
|
||||||
if (_this) then {
|
if (_this) then {
|
||||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 7018);
|
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 7018);
|
||||||
|
|
||||||
ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
|
ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
|
||||||
ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
|
ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
|
||||||
|
|
||||||
|
@ -17,10 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_slopeDistance", "_azimuth", "_inclination"];
|
params ["_slopeDistance", "_azimuth", "_inclination"];
|
||||||
_slopeDistance = _this select 0;
|
|
||||||
_azimuth = _this select 1;
|
|
||||||
_inclination = _this select 2;
|
|
||||||
|
|
||||||
GVAR(inclinationAngle) set [GVAR(currentTarget), round(_inclination)];
|
GVAR(inclinationAngle) set [GVAR(currentTarget), round(_inclination)];
|
||||||
GVAR(directionOfFire) set [GVAR(currentTarget), round(_azimuth)];
|
GVAR(directionOfFire) set [GVAR(currentTarget), round(_azimuth)];
|
||||||
|
@ -30,7 +30,7 @@ if !(ctrlVisible 9000) then {
|
|||||||
if (!(GVAR(speedAssistTimer))) exitWith {
|
if (!(GVAR(speedAssistTimer))) exitWith {
|
||||||
GVAR(speedAssistTimer) = true;
|
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);
|
[] call FUNC(calculate_target_speed_assist);
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ if !(ctrlVisible 9000) then {
|
|||||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
[_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;
|
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">
|
<Project name="ACE">
|
||||||
<Package name="ATragMX">
|
<Package name="ATragMX">
|
||||||
<Key ID="STR_ACE_ATragMX_Name">
|
<Key ID="STR_ACE_ATragMX_Name">
|
||||||
|
@ -3,17 +3,17 @@ class CfgMagazines {
|
|||||||
class CA_Magazine;
|
class CA_Magazine;
|
||||||
class B_IR_Grenade: CA_Magazine {
|
class B_IR_Grenade: CA_Magazine {
|
||||||
ACE_Attachable = "B_IRStrobe";
|
ACE_Attachable = "B_IRStrobe";
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
};
|
};
|
||||||
|
|
||||||
class O_IR_Grenade: B_IR_Grenade {
|
class O_IR_Grenade: B_IR_Grenade {
|
||||||
ACE_Attachable = "O_IRStrobe";
|
ACE_Attachable = "O_IRStrobe";
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
};
|
};
|
||||||
|
|
||||||
class I_IR_Grenade: B_IR_Grenade {
|
class I_IR_Grenade: B_IR_Grenade {
|
||||||
ACE_Attachable = "I_IRStrobe";
|
ACE_Attachable = "I_IRStrobe";
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
};
|
};
|
||||||
|
|
||||||
class SmokeShell;
|
class SmokeShell;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
exceptions[] = {}; \
|
exceptions[] = {}; \
|
||||||
showDisabled = 0; \
|
showDisabled = 0; \
|
||||||
priority = 0; \
|
priority = 0; \
|
||||||
icon = PATHTOF(UI\attach_ca.paa); \
|
icon = QPATHTOF(UI\attach_ca.paa); \
|
||||||
distance = 4.5; \
|
distance = 4.5; \
|
||||||
}; \
|
}; \
|
||||||
class GVAR(DetachVehicle) { \
|
class GVAR(DetachVehicle) { \
|
||||||
@ -19,7 +19,7 @@
|
|||||||
exceptions[] = {}; \
|
exceptions[] = {}; \
|
||||||
showDisabled = 0; \
|
showDisabled = 0; \
|
||||||
priority = 0.1; \
|
priority = 0.1; \
|
||||||
icon = PATHTOF(UI\detach_ca.paa); \
|
icon = QPATHTOF(UI\detach_ca.paa); \
|
||||||
distance = 4.5; \
|
distance = 4.5; \
|
||||||
}; \
|
}; \
|
||||||
}; \
|
}; \
|
||||||
@ -60,7 +60,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {"isNotDragging"};
|
exceptions[] = {"isNotDragging"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 5;
|
priority = 5;
|
||||||
icon = PATHTOF(UI\attach_ca.paa);
|
icon = QPATHTOF(UI\attach_ca.paa);
|
||||||
};
|
};
|
||||||
class GVAR(Detach) {
|
class GVAR(Detach) {
|
||||||
displayName = CSTRING(Detach);
|
displayName = CSTRING(Detach);
|
||||||
@ -69,7 +69,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {"isNotDragging"};
|
exceptions[] = {"isNotDragging"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 5;
|
priority = 5;
|
||||||
icon = PATHTOF(UI\detach_ca.paa);
|
icon = QPATHTOF(UI\detach_ca.paa);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -8,8 +8,8 @@ class CfgWeapons {
|
|||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(IrStrobe_Name);
|
displayName = CSTRING(IrStrobe_Name);
|
||||||
descriptionShort = CSTRING(IrStrobe_Description);
|
descriptionShort = CSTRING(IrStrobe_Description);
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
picture = PATHTOF(UI\irstrobe_item.paa);
|
picture = QPATHTOF(UI\irstrobe_item.paa);
|
||||||
|
|
||||||
class ItemInfo: InventoryItem_Base_F {
|
class ItemInfo: InventoryItem_Base_F {
|
||||||
mass = 1;
|
mass = 1;
|
||||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
|||||||
weapons[] = {"ACE_IR_Strobe_Item"};
|
weapons[] = {"ACE_IR_Strobe_Item"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_interaction"};
|
requiredAddons[] = {"ace_interaction"};
|
||||||
author[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
authors[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -51,7 +51,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
|||||||
|
|
||||||
[_unit, "forceWalk", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
|
[_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)];
|
_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}];
|
_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;
|
detach _attachedObject;
|
||||||
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
|
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
|
||||||
// Delete attached item after 0.5 seconds
|
// 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 {
|
} else {
|
||||||
// Delete attached item
|
// Delete attached item
|
||||||
deleteVehicle _attachedObject;
|
deleteVehicle _attachedObject;
|
||||||
|
@ -31,7 +31,7 @@ _actions = [];
|
|||||||
if (getText (_item >> "ACE_Attachable") != "") then {
|
if (getText (_item >> "ACE_Attachable") != "") then {
|
||||||
_displayName = getText(_item >> "displayName");
|
_displayName = getText(_item >> "displayName");
|
||||||
_picture = getText(_item >> "picture");
|
_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];
|
_actions pushBack [_action, [], _target];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -44,7 +44,7 @@ _actions = [];
|
|||||||
if (getText (_item >> "ACE_Attachable") != "") then {
|
if (getText (_item >> "ACE_Attachable") != "") then {
|
||||||
_displayName = getText(_item >> "displayName");
|
_displayName = getText(_item >> "displayName");
|
||||||
_picture = getText(_item >> "picture");
|
_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];
|
_actions pushBack [_action, [], _target];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,7 @@ if (!isNull _xObject) then {
|
|||||||
params ["_detachedLight"];
|
params ["_detachedLight"];
|
||||||
TRACE_1("delayed delete",_detachedLight);
|
TRACE_1("delayed delete",_detachedLight);
|
||||||
deleteVehicle _detachedLight;
|
deleteVehicle _detachedLight;
|
||||||
}, [_xObject], 2] call EFUNC(common,waitAndExecute);
|
}, [_xObject], 2] call CBA_fnc_waitAndExecute;
|
||||||
(_attachedList select 0) set [0, objNull];
|
(_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 it's a vehicle, also delete the attached
|
||||||
if (!(_deadUnit isKindOf "CAManBase")) then {
|
if (!(_deadUnit isKindOf "CAManBase")) then {
|
||||||
_xObject setPos ((getPos _deadUnit) vectorAdd [0, 0, -1000]);
|
_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;
|
} forEach _attachedList;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Attach">
|
<Package name="Attach">
|
||||||
<Key ID="STR_ACE_Attach_AttachDetach">
|
<Key ID="STR_ACE_Attach_AttachDetach">
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<German>Leuchtstab befestigt</German>
|
<German>Leuchtstab befestigt</German>
|
||||||
<Spanish>Barra de luz acoplada</Spanish>
|
<Spanish>Barra de luz acoplada</Spanish>
|
||||||
<Polish>Przyczepiono światło chemiczne</Polish>
|
<Polish>Przyczepiono światło chemiczne</Polish>
|
||||||
<French>Chemlight attachée</French>
|
<French>Cyalume attachée</French>
|
||||||
<Czech>Chemické světlo připnuto</Czech>
|
<Czech>Chemické světlo připnuto</Czech>
|
||||||
<Portuguese>Chemlight Fixada</Portuguese>
|
<Portuguese>Chemlight Fixada</Portuguese>
|
||||||
<Italian>Chemlight attaccata</Italian>
|
<Italian>Chemlight attaccata</Italian>
|
||||||
@ -102,7 +102,7 @@
|
|||||||
<German>Leuchtstab entfernt</German>
|
<German>Leuchtstab entfernt</German>
|
||||||
<Spanish>Barra de luz quitada</Spanish>
|
<Spanish>Barra de luz quitada</Spanish>
|
||||||
<Polish>Odczepiono światło chemiczne</Polish>
|
<Polish>Odczepiono światło chemiczne</Polish>
|
||||||
<French>Chemlight détachée</French>
|
<French>Cyalume détachée</French>
|
||||||
<Czech>Chemické světlo odepnuto</Czech>
|
<Czech>Chemické světlo odepnuto</Czech>
|
||||||
<Portuguese>Chemlight Separada</Portuguese>
|
<Portuguese>Chemlight Separada</Portuguese>
|
||||||
<Italian>Chemlight staccata</Italian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"bux","commy2"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/commy2/";
|
authors[] = {"bux","commy2"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
params [["_backpack", objNull, [objNull]]];
|
params [["_backpack", objNull, [objNull, ""]]];
|
||||||
|
|
||||||
if (_backpack isEqualType objNull) then {
|
if (_backpack isEqualType objNull) then {
|
||||||
_backpack = typeOf _backpack;
|
_backpack = typeOf _backpack;
|
||||||
|
@ -285,6 +285,8 @@ class CfgWeapons {
|
|||||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||||
|
"30Rnd_556x45_Stanag_red",
|
||||||
|
"30Rnd_556x45_Stanag_green",
|
||||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||||
@ -305,6 +307,8 @@ class CfgWeapons {
|
|||||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||||
|
"30Rnd_556x45_Stanag_red",
|
||||||
|
"30Rnd_556x45_Stanag_green",
|
||||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||||
@ -320,6 +324,8 @@ class CfgWeapons {
|
|||||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||||
|
"30Rnd_556x45_Stanag_red",
|
||||||
|
"30Rnd_556x45_Stanag_green",
|
||||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||||
@ -335,6 +341,8 @@ class CfgWeapons {
|
|||||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||||
|
"30Rnd_556x45_Stanag_red",
|
||||||
|
"30Rnd_556x45_Stanag_green",
|
||||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||||
@ -356,6 +364,8 @@ class CfgWeapons {
|
|||||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||||
|
"30Rnd_556x45_Stanag_red",
|
||||||
|
"30Rnd_556x45_Stanag_green",
|
||||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||||
@ -371,6 +381,8 @@ class CfgWeapons {
|
|||||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||||
|
"30Rnd_556x45_Stanag_red",
|
||||||
|
"30Rnd_556x45_Stanag_green",
|
||||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||||
@ -386,6 +398,8 @@ class CfgWeapons {
|
|||||||
"30Rnd_556x45_Stanag_Tracer_Red",
|
"30Rnd_556x45_Stanag_Tracer_Red",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Green",
|
"30Rnd_556x45_Stanag_Tracer_Green",
|
||||||
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
"30Rnd_556x45_Stanag_Tracer_Yellow",
|
||||||
|
"30Rnd_556x45_Stanag_red",
|
||||||
|
"30Rnd_556x45_Stanag_green",
|
||||||
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
|
||||||
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
|
||||||
|
@ -6,7 +6,9 @@ class CfgPatches {
|
|||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"commy2","Ruthberg"};
|
author = ECSTRING(common,ACETeam);
|
||||||
|
authors[] = {"commy2","Ruthberg"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -11,5 +11,5 @@ if (local _wall) then {
|
|||||||
_paper attachTo [_wall, [0,-0.02,0.6]];
|
_paper attachTo [_wall, [0,-0.02,0.6]];
|
||||||
_paper setDir getDir _wall;
|
_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">
|
<Project name="ACE">
|
||||||
<Package name="Ballistics">
|
<Package name="Ballistics">
|
||||||
<!-- MX -->
|
<!-- MX -->
|
||||||
|
@ -10,7 +10,7 @@ class CfgVehicles {
|
|||||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
|
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
|
||||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
|
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
|
||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
|
icon = QPATHTOF(UI\handcuff_ca.paa);
|
||||||
};
|
};
|
||||||
|
|
||||||
class ACE_MainActions {
|
class ACE_MainActions {
|
||||||
@ -21,7 +21,7 @@ class CfgVehicles {
|
|||||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
|
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
|
||||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
|
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
|
||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
|
icon = QPATHTOF(UI\handcuff_ca.paa);
|
||||||
};
|
};
|
||||||
class ACE_EscortCaptive {
|
class ACE_EscortCaptive {
|
||||||
displayName = CSTRING(EscortCaptive);
|
displayName = CSTRING(EscortCaptive);
|
||||||
@ -30,7 +30,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE([ARR_3(_player, _target, true)] call FUNC(doEscortCaptive));
|
statement = QUOTE([ARR_3(_player, _target, true)] call FUNC(doEscortCaptive));
|
||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QPATHTOF(UI\captive_ca.paa);
|
||||||
priority = 2.3;
|
priority = 2.3;
|
||||||
};
|
};
|
||||||
class ACE_StopEscorting {
|
class ACE_StopEscorting {
|
||||||
@ -40,7 +40,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
|
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
|
||||||
exceptions[] = {"isNotEscorting"};
|
exceptions[] = {"isNotEscorting"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QPATHTOF(UI\captive_ca.paa);
|
||||||
priority = 2.3;
|
priority = 2.3;
|
||||||
};
|
};
|
||||||
class ACE_LoadCaptive {
|
class ACE_LoadCaptive {
|
||||||
@ -50,7 +50,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
|
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
|
||||||
exceptions[] = {"isNotEscorting"};
|
exceptions[] = {"isNotEscorting"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QPATHTOF(UI\captive_ca.paa);
|
||||||
priority = 2.2;
|
priority = 2.2;
|
||||||
};
|
};
|
||||||
class GVAR(UnloadCaptive) {
|
class GVAR(UnloadCaptive) {
|
||||||
@ -79,7 +79,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 0;
|
priority = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
|
icon = QPATHTOF(UI\Surrender_ca.paa);
|
||||||
};
|
};
|
||||||
class ACE_StopSurrenderingSelf {
|
class ACE_StopSurrenderingSelf {
|
||||||
displayName = CSTRING(StopSurrendering);
|
displayName = CSTRING(StopSurrendering);
|
||||||
@ -88,7 +88,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {"isNotSurrendering"};
|
exceptions[] = {"isNotSurrendering"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 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
|
scope = 2; //show in editor
|
||||||
isGlobal = 0; //run on server
|
isGlobal = 0; //run on server
|
||||||
isTriggerActivated = 1; //Wait for triggers
|
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;
|
functionPriority = 0;
|
||||||
class Arguments {};
|
class Arguments {};
|
||||||
class ModuleDescription: ModuleDescription {
|
class ModuleDescription: ModuleDescription {
|
||||||
@ -170,7 +170,7 @@ class CfgVehicles {
|
|||||||
scope = 2; //show in editor
|
scope = 2; //show in editor
|
||||||
isGlobal = 0; //run on server
|
isGlobal = 0; //run on server
|
||||||
isTriggerActivated = 1; //Wait for triggers
|
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;
|
functionPriority = 0;
|
||||||
class Arguments {};
|
class Arguments {};
|
||||||
class ModuleDescription: ModuleDescription {
|
class ModuleDescription: ModuleDescription {
|
||||||
@ -186,7 +186,7 @@ class CfgVehicles {
|
|||||||
displayName = CSTRING(ModuleSettings_DisplayName);
|
displayName = CSTRING(ModuleSettings_DisplayName);
|
||||||
function = QFUNC(moduleSettings);
|
function = QFUNC(moduleSettings);
|
||||||
scope = 2;
|
scope = 2;
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_settings_ca.paa);
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
isSingular = 1;
|
isSingular = 1;
|
||||||
class Arguments {
|
class Arguments {
|
||||||
|
@ -5,8 +5,8 @@ class CfgWeapons {
|
|||||||
class ACE_CableTie: ACE_ItemCore {
|
class ACE_CableTie: ACE_ItemCore {
|
||||||
displayName = CSTRING(CableTie);
|
displayName = CSTRING(CableTie);
|
||||||
descriptionShort = CSTRING(CableTieDescription);
|
descriptionShort = CSTRING(CableTieDescription);
|
||||||
model = QUOTE(PATHTOF(models\ace_cabletie.p3d));
|
model = QPATHTOF(models\ace_cabletie.p3d);
|
||||||
picture = QUOTE(PATHTOF(UI\ace_cabletie_ca.paa));
|
picture = QPATHTOF(UI\ace_cabletie_ca.paa);
|
||||||
scope = 2;
|
scope = 2;
|
||||||
class ItemInfo: InventoryItem_Base_F {
|
class ItemInfo: InventoryItem_Base_F {
|
||||||
mass = 1;
|
mass = 1;
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
#include "script_component.hpp"
|
#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
|
//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
|
//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);
|
["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition);
|
||||||
["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),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);
|
["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"};
|
weapons[] = {"ACE_CableTie"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ACE_Interaction"};
|
requiredAddons[] = {"ACE_Interaction"};
|
||||||
author[] = {"commy2", "KoffeinFlummi"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/commy2/";
|
authors[] = {"commy2", "KoffeinFlummi"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -32,7 +32,7 @@ if (!isServer) exitWith {};
|
|||||||
TRACE_2("event",_x,local _x);
|
TRACE_2("event",_x,local _x);
|
||||||
["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||||
} forEach _units;
|
} forEach _units;
|
||||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
}, [_units], 0.05] call CBA_fnc_waitAndExecute;
|
||||||
|
|
||||||
if (!isNull _logic) then {
|
if (!isNull _logic) then {
|
||||||
deleteVehicle _logic;
|
deleteVehicle _logic;
|
||||||
|
@ -32,7 +32,7 @@ if (!isServer) exitWith {};
|
|||||||
TRACE_2("event",_x,local _x);
|
TRACE_2("event",_x,local _x);
|
||||||
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||||
} forEach _units;
|
} forEach _units;
|
||||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
}, [_units], 0.05] call CBA_fnc_waitAndExecute;
|
||||||
|
|
||||||
if (!isNull _logic) then {
|
if (!isNull _logic) then {
|
||||||
deleteVehicle _logic;
|
deleteVehicle _logic;
|
||||||
|
@ -27,7 +27,7 @@ if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
|||||||
// It's to soon to call this function, delay it
|
// It's to soon to call this function, delay it
|
||||||
if (EGVAR(common,settingsInitFinished)) then {
|
if (EGVAR(common,settingsInitFinished)) then {
|
||||||
// Settings are already initialized, but the small wait isn't over
|
// 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 {
|
} else {
|
||||||
// Settings are not initialized yet
|
// Settings are not initialized yet
|
||||||
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
|
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
|
||||||
@ -98,7 +98,7 @@ if (_state) then {
|
|||||||
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
|
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
|
||||||
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
|
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
|
||||||
|
|
||||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||||
} else {
|
} else {
|
||||||
_unit setVariable [QGVAR(isHandcuffed), false, true];
|
_unit setVariable [QGVAR(isHandcuffed), false, true];
|
||||||
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
[_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
|
// It's to soon to call this function, delay it
|
||||||
if (EGVAR(common,settingsInitFinished)) then {
|
if (EGVAR(common,settingsInitFinished)) then {
|
||||||
// Settings are already initialized, but the small wait isn't over
|
// 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 {
|
} else {
|
||||||
// Settings are not initialized yet
|
// Settings are not initialized yet
|
||||||
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
|
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
|
||||||
@ -73,7 +73,7 @@ if (_state) then {
|
|||||||
}];
|
}];
|
||||||
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
|
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
|
||||||
};
|
};
|
||||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||||
} else {
|
} else {
|
||||||
_unit setVariable [QGVAR(isSurrendering), false, true];
|
_unit setVariable [QGVAR(isSurrendering), false, true];
|
||||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||||
@ -103,7 +103,7 @@ if (_state) then {
|
|||||||
params ["_args", "_pfID"];
|
params ["_args", "_pfID"];
|
||||||
_args params ["_unit", "_maxTime"];
|
_args params ["_unit", "_maxTime"];
|
||||||
//If waited long enough or they re-surrendered or they are unconscious, exit loop
|
//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;
|
[_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)
|
//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
|
//Break out of hands up animation loop
|
||||||
[_unit, "ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation);
|
[_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>
|
<Czech>Synchronizovat s jednotkou, která má být v poutech.</Czech>
|
||||||
<Italian>Sincronizza un'unità per metterle le manette.</Italian>
|
<Italian>Sincronizza un'unità per metterle le manette.</Italian>
|
||||||
<Spanish>Sincroniza una unidad para hacer que esté esposada.</Spanish>
|
<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>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
|
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
|
||||||
<English>Captives Settings</English>
|
<English>Captives Settings</English>
|
||||||
@ -234,7 +234,7 @@
|
|||||||
<Czech>Může spoutat spolubojovníky</Czech>
|
<Czech>Může spoutat spolubojovníky</Czech>
|
||||||
<German>Kann Kameraden fesseln</German>
|
<German>Kann Kameraden fesseln</German>
|
||||||
<Portuguese>Pode algemar o próprio lado</Portuguese>
|
<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>
|
<Hungarian>Saját oldal megbilincselhető</Hungarian>
|
||||||
<Russian>Связать союзника</Russian>
|
<Russian>Связать союзника</Russian>
|
||||||
<Italian>Puoi ammanettare unità alleate</Italian>
|
<Italian>Puoi ammanettare unità alleate</Italian>
|
||||||
@ -295,7 +295,7 @@
|
|||||||
<Spanish>Requiere que los Jugadores se rindan antes de arrestarlos</Spanish>
|
<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>
|
<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>
|
<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>
|
||||||
<Key ID="STR_ACE_Captives_SurrenderOnly">
|
<Key ID="STR_ACE_Captives_SurrenderOnly">
|
||||||
<English>Surrendering only</English>
|
<English>Surrendering only</English>
|
||||||
@ -317,7 +317,7 @@
|
|||||||
<Spanish>Rendición o desarme</Spanish>
|
<Spanish>Rendición o desarme</Spanish>
|
||||||
<Czech>Vzdávání nebo beze zbraně</Czech>
|
<Czech>Vzdávání nebo beze zbraně</Czech>
|
||||||
<Italian>Resa o senza armi</Italian>
|
<Italian>Resa o senza armi</Italian>
|
||||||
<French>Reddition ou désarmement</French>
|
<French>Capitulation ou desarmé</French>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -27,27 +27,7 @@ class Extended_Killed_EventHandlers {
|
|||||||
|
|
||||||
//Need initPost or we have problems with setVariable with 'ACE_Cargo'
|
//Need initPost or we have problems with setVariable with 'ACE_Cargo'
|
||||||
class Extended_InitPost_EventHandlers {
|
class Extended_InitPost_EventHandlers {
|
||||||
class StaticWeapon {
|
class ThingX {
|
||||||
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 ADDON {
|
class ADDON {
|
||||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
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));
|
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class RoadCone_F {
|
class PlasticCase_01_base_F {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Car {
|
class LandVehicle {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(_this call DFUNC(initVehicle));
|
init = QUOTE(_this call DFUNC(initVehicle));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Tank {
|
class Air {
|
||||||
class ADDON {
|
|
||||||
init = QUOTE(_this call DFUNC(initVehicle));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class Helicopter {
|
|
||||||
class ADDON {
|
|
||||||
init = QUOTE(_this call DFUNC(initVehicle));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class Plane {
|
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(_this call DFUNC(initVehicle));
|
init = QUOTE(_this call DFUNC(initVehicle));
|
||||||
};
|
};
|
||||||
@ -87,16 +57,6 @@ class Extended_InitPost_EventHandlers {
|
|||||||
init = QUOTE(_this call DFUNC(initVehicle));
|
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 ACE_ConcertinaWireCoil {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(_this call DFUNC(initObject));
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
|
||||||
|
class CBA_Extended_EventHandlers;
|
||||||
|
|
||||||
class CfgVehicles {
|
class CfgVehicles {
|
||||||
class Logic;
|
class Logic;
|
||||||
class Module_F: Logic {
|
class Module_F: Logic {
|
||||||
@ -7,7 +10,7 @@ class CfgVehicles {
|
|||||||
class ACE_moduleCargoSettings: ACE_Module {
|
class ACE_moduleCargoSettings: ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(SettingsModule_DisplayName);
|
displayName = CSTRING(SettingsModule_DisplayName);
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Cargo_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_Cargo_ca.paa);
|
||||||
category = "ACE_Logistics";
|
category = "ACE_Logistics";
|
||||||
function = QFUNC(moduleSettings);
|
function = QFUNC(moduleSettings);
|
||||||
functionPriority = 1;
|
functionPriority = 1;
|
||||||
@ -33,7 +36,7 @@ class CfgVehicles {
|
|||||||
class GVAR(makeLoadable): ACE_Module {
|
class GVAR(makeLoadable): ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(makeLoadable_displayName);
|
displayName = CSTRING(makeLoadable_displayName);
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_makeLoadable_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_makeLoadable_ca.paa);
|
||||||
category = "ACE_Logistics";
|
category = "ACE_Logistics";
|
||||||
function = QFUNC(moduleMakeLoadable);
|
function = QFUNC(moduleMakeLoadable);
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
@ -191,12 +194,69 @@ class CfgVehicles {
|
|||||||
GVAR(hasCargo) = 1;
|
GVAR(hasCargo) = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Heli_Transport_02_base_F;
|
class Helicopter_Base_H;
|
||||||
class I_Heli_Transport_02_F : Heli_Transport_02_base_F {
|
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(space) = 20;
|
||||||
GVAR(hasCargo) = 1;
|
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
|
// jets
|
||||||
class Plane: Air {
|
class Plane: Air {
|
||||||
GVAR(space) = 0;
|
GVAR(space) = 0;
|
||||||
@ -204,7 +264,6 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// autonomus
|
// autonomus
|
||||||
class Helicopter_Base_F;
|
|
||||||
class UAV_01_base_F: Helicopter_Base_F {
|
class UAV_01_base_F: Helicopter_Base_F {
|
||||||
GVAR(space) = 0;
|
GVAR(space) = 0;
|
||||||
GVAR(hasCargo) = 0;
|
GVAR(hasCargo) = 0;
|
||||||
@ -245,6 +304,26 @@ class CfgVehicles {
|
|||||||
GVAR(canLoad) = 1;
|
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 StaticMortar;
|
||||||
class Mortar_01_base_F: StaticMortar {
|
class Mortar_01_base_F: StaticMortar {
|
||||||
GVAR(size) = 2; // 1 = small, 2 = large
|
GVAR(size) = 2; // 1 = small, 2 = large
|
||||||
@ -253,6 +332,7 @@ class CfgVehicles {
|
|||||||
|
|
||||||
// Ammo boxes
|
// Ammo boxes
|
||||||
class ThingX;
|
class ThingX;
|
||||||
|
class Items_base_F;
|
||||||
class ReammoBox_F: ThingX {
|
class ReammoBox_F: ThingX {
|
||||||
GVAR(size) = 2; // 1 = small, 2 = large
|
GVAR(size) = 2; // 1 = small, 2 = large
|
||||||
GVAR(canLoad) = 1;
|
GVAR(canLoad) = 1;
|
||||||
@ -275,6 +355,23 @@ class CfgVehicles {
|
|||||||
class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers
|
class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers
|
||||||
GVAR(canLoad) = 0;
|
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
|
// objects
|
||||||
class RoadCone_F: ThingX {
|
class RoadCone_F: ThingX {
|
||||||
GVAR(size) = 1;
|
GVAR(size) = 1;
|
||||||
@ -284,14 +381,16 @@ class CfgVehicles {
|
|||||||
GVAR(size) = 2;
|
GVAR(size) = 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class Scrapyard_base_F;
|
class Scrapyard_base_F;
|
||||||
class Land_PaperBox_closed_F: Scrapyard_base_F {
|
class Land_PaperBox_closed_F: Scrapyard_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 10;
|
GVAR(space) = 10;
|
||||||
GVAR(hasCargo) = 1;
|
GVAR(hasCargo) = 1;
|
||||||
GVAR(size) = 11;
|
GVAR(size) = 11;
|
||||||
GVAR(canLoad) = 1;
|
GVAR(canLoad) = 1;
|
||||||
XEH_ENABLED;
|
|
||||||
|
|
||||||
class ACE_Actions {
|
class ACE_Actions {
|
||||||
class ACE_MainActions {
|
class ACE_MainActions {
|
||||||
@ -323,163 +422,253 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Cargo10_base_F: Cargo_base_F {
|
class Cargo10_base_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 14;
|
GVAR(space) = 14;
|
||||||
GVAR(size) = 15;
|
GVAR(size) = 15;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_blue_F: Cargo_base_F {
|
class Land_Cargo20_blue_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_brick_red_F: Cargo_base_F {
|
class Land_Cargo20_brick_red_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_cyan_F: Cargo_base_F {
|
class Land_Cargo20_cyan_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_grey_F: Cargo_base_F {
|
class Land_Cargo20_grey_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_light_blue_F: Cargo_base_F {
|
class Land_Cargo20_light_blue_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_light_green_F: Cargo_base_F {
|
class Land_Cargo20_light_green_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_military_green_F: Cargo_base_F {
|
class Land_Cargo20_military_green_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Ruins_F;
|
class Ruins_F;
|
||||||
class Land_Cargo20_military_ruins_F: Ruins_F {
|
class Land_Cargo20_military_ruins_F: Ruins_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Land_Cargo20_orange_F: Cargo_base_F {
|
class Land_Cargo20_orange_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_red_F: Cargo_base_F {
|
class Land_Cargo20_red_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_sand_F: Cargo_base_F {
|
class Land_Cargo20_sand_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_vr_F: Cargo_base_F {
|
class Land_Cargo20_vr_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_white_F: Cargo_base_F {
|
class Land_Cargo20_white_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo20_yellow_F: Cargo_base_F {
|
class Land_Cargo20_yellow_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 49;
|
GVAR(space) = 49;
|
||||||
GVAR(size) = 50;
|
GVAR(size) = 50;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Land_Cargo40_blue_F: Cargo_base_F {
|
class Land_Cargo40_blue_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_brick_red_F: Cargo_base_F {
|
class Land_Cargo40_brick_red_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_cyan_F: Cargo_base_F {
|
class Land_Cargo40_cyan_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_grey_F: Cargo_base_F {
|
class Land_Cargo40_grey_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_light_blue_F: Cargo_base_F {
|
class Land_Cargo40_light_blue_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_light_green_F: Cargo_base_F {
|
class Land_Cargo40_light_green_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_military_green_F: Cargo_base_F {
|
class Land_Cargo40_military_green_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Land_Cargo40_military_ruins_F: Ruins_F {
|
class Land_Cargo40_military_ruins_F: Ruins_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Land_Cargo40_orange_F: Cargo_base_F {
|
class Land_Cargo40_orange_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_red_F: Cargo_base_F {
|
class Land_Cargo40_red_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_sand_F: Cargo_base_F {
|
class Land_Cargo40_sand_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_vr_F: Cargo_base_F {
|
class Land_Cargo40_vr_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_white_F: Cargo_base_F {
|
class Land_Cargo40_white_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
class Land_Cargo40_yellow_F: Cargo_base_F {
|
class Land_Cargo40_yellow_F: Cargo_base_F {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 99;
|
GVAR(space) = 99;
|
||||||
GVAR(size) = 100;
|
GVAR(size) = 100;
|
||||||
XEH_ENABLED;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// small
|
// small
|
||||||
class Land_CargoBox_V1_F: ThingX {
|
class Land_CargoBox_V1_F: ThingX {
|
||||||
|
class EventHandlers {
|
||||||
|
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||||
|
};
|
||||||
|
|
||||||
GVAR(space) = 7;
|
GVAR(space) = 7;
|
||||||
GVAR(hasCargo) = 1;
|
GVAR(hasCargo) = 1;
|
||||||
GVAR(size) = 7;
|
GVAR(size) = 7;
|
||||||
XEH_ENABLED;
|
|
||||||
|
|
||||||
class ACE_Actions {
|
class ACE_Actions {
|
||||||
class ACE_MainActions {
|
class ACE_MainActions {
|
||||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
|||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_interaction"};
|
requiredAddons[] = {"ace_interaction"};
|
||||||
author[] = {"commy2", "Glowbal"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://ace3mod.com/";
|
authors[] = {"commy2", "Glowbal"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -39,7 +39,7 @@ private _statement = {
|
|||||||
[_player, _target] call FUNC(startLoadIn);
|
[_player, _target] call FUNC(startLoadIn);
|
||||||
};
|
};
|
||||||
private _text = localize LSTRING(loadObject);
|
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);
|
private _action = [QGVAR(load), _text, _icon, _statement, _condition] call EFUNC(interact_menu,createAction);
|
||||||
[_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
|
[_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
|
||||||
|
@ -20,6 +20,8 @@ TRACE_1("params", _vehicle);
|
|||||||
|
|
||||||
private _type = typeOf _vehicle;
|
private _type = typeOf _vehicle;
|
||||||
|
|
||||||
|
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
|
||||||
|
|
||||||
if (isServer) then {
|
if (isServer) then {
|
||||||
{
|
{
|
||||||
if (isClass _x) then {
|
if (isClass _x) then {
|
||||||
@ -38,7 +40,6 @@ if (_type in GVAR(initializedVehicleClasses)) exitWith {};
|
|||||||
GVAR(initializedVehicleClasses) pushBack _type;
|
GVAR(initializedVehicleClasses) pushBack _type;
|
||||||
|
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
|
|
||||||
|
|
||||||
TRACE_1("Adding unload cargo action to class", _type);
|
TRACE_1("Adding unload cargo action to class", _type);
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
<Czech>Povolit náklad</Czech>
|
<Czech>Povolit náklad</Czech>
|
||||||
<Spanish>Habilitar carga</Spanish>
|
<Spanish>Habilitar carga</Spanish>
|
||||||
<Italian>Abilita Cargo</Italian>
|
<Italian>Abilita Cargo</Italian>
|
||||||
<French>Activer mise en cargaison</French>
|
<French>Activer la cargaison</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
|
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
|
||||||
<English>Enable the load in cargo module</English>
|
<English>Enable the load in cargo module</English>
|
||||||
@ -76,7 +76,7 @@
|
|||||||
<Spanish>Habilitar la carga en el módulo de carga</Spanish>
|
<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>
|
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
||||||
<Italian>Abilita il modulo di caricamento in cargo</Italian>
|
<Italian>Abilita il modulo di caricamento in cargo</Italian>
|
||||||
<French>Active</French>
|
<French>Activer le chargement dans le module de cargaison.</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
|
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
|
||||||
<English>Cargo Settings</English>
|
<English>Cargo Settings</English>
|
||||||
@ -87,7 +87,7 @@
|
|||||||
<Czech>Nastavení nákladu</Czech>
|
<Czech>Nastavení nákladu</Czech>
|
||||||
<Spanish>Ajustes de carga</Spanish>
|
<Spanish>Ajustes de carga</Spanish>
|
||||||
<Italian>Impostazioni Cargo</Italian>
|
<Italian>Impostazioni Cargo</Italian>
|
||||||
<French>Options de cargaison</French>
|
<French>Réglages de cargaison</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
|
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
|
||||||
<English>Configure the cargo module settings</English>
|
<English>Configure the cargo module settings</English>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<Spanish>Configure los ajustes del módulo de carga</Spanish>
|
<Spanish>Configure los ajustes del módulo de carga</Spanish>
|
||||||
<Czech>Konfigurace nákladního modulu</Czech>
|
<Czech>Konfigurace nákladního modulu</Czech>
|
||||||
<Italian>Configura le impostazioni del modulo cargo</Italian>
|
<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>
|
||||||
<Key ID="STR_ACE_Cargo_LoadedItem">
|
<Key ID="STR_ACE_Cargo_LoadedItem">
|
||||||
<English>%1<br/>loaded into<br/>%2</English>
|
<English>%1<br/>loaded into<br/>%2</English>
|
||||||
@ -133,7 +133,7 @@
|
|||||||
<Russian>Погрузка</Russian>
|
<Russian>Погрузка</Russian>
|
||||||
<Italian>Caricando</Italian>
|
<Italian>Caricando</Italian>
|
||||||
<Spanish>Cargando</Spanish>
|
<Spanish>Cargando</Spanish>
|
||||||
<French>Chargement cargaison</French>
|
<French>Chargement de la cargaison</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_UnloadingItem">
|
<Key ID="STR_ACE_Cargo_UnloadingItem">
|
||||||
<English>Unloading Cargo</English>
|
<English>Unloading Cargo</English>
|
||||||
@ -144,7 +144,7 @@
|
|||||||
<Russian>Выгрузка</Russian>
|
<Russian>Выгрузка</Russian>
|
||||||
<Italian>Scaricando</Italian>
|
<Italian>Scaricando</Italian>
|
||||||
<Spanish>Descargando</Spanish>
|
<Spanish>Descargando</Spanish>
|
||||||
<French>Déchargement cargaison</French>
|
<French>Déchargement de la cargaison</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_LoadingFailed">
|
<Key ID="STR_ACE_Cargo_LoadingFailed">
|
||||||
<English>%1<br/>could not be loaded</English>
|
<English>%1<br/>could not be loaded</English>
|
||||||
@ -155,7 +155,7 @@
|
|||||||
<Russian>%1<br/>не может быть погружен</Russian>
|
<Russian>%1<br/>не может быть погружен</Russian>
|
||||||
<Italian>%1<br/>non può essere caricato</Italian>
|
<Italian>%1<br/>non può essere caricato</Italian>
|
||||||
<Spanish>%1<br/>no pudo ser cargado</Spanish>
|
<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>
|
||||||
<Key ID="STR_ACE_Cargo_UnloadingFailed">
|
<Key ID="STR_ACE_Cargo_UnloadingFailed">
|
||||||
<English>%1<br/>could not be unloaded</English>
|
<English>%1<br/>could not be unloaded</English>
|
||||||
@ -166,7 +166,7 @@
|
|||||||
<Russian>%1<br/>не может быть выгружен</Russian>
|
<Russian>%1<br/>не может быть выгружен</Russian>
|
||||||
<Italian>%1<br/>non può essere scaricato</Italian>
|
<Italian>%1<br/>non può essere scaricato</Italian>
|
||||||
<Spanish>%1<br/>no pudo ser descargado</Spanish>
|
<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>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_displayName">
|
<Key ID="STR_ACE_Cargo_makeLoadable_displayName">
|
||||||
<English>Make Object Loadable</English>
|
<English>Make Object Loadable</English>
|
||||||
@ -175,6 +175,7 @@
|
|||||||
<Italian>Rendi oggetto caricabile</Italian>
|
<Italian>Rendi oggetto caricabile</Italian>
|
||||||
<Spanish>Hacer objeto cargable</Spanish>
|
<Spanish>Hacer objeto cargable</Spanish>
|
||||||
<French>Rendre l'objet chargeable</French>
|
<French>Rendre l'objet chargeable</French>
|
||||||
|
<Czech>Vytvořit objekt nakladatelným</Czech>
|
||||||
<Portuguese>Fazer objeto carregável</Portuguese>
|
<Portuguese>Fazer objeto carregável</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_description">
|
<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>
|
<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>
|
<Italian>Imposta l'oggetto sincronizzato come caricabile dal sistema cargo</Italian>
|
||||||
<Spanish>Sincronizar un objecto para hacerlo cargable.</Spanish>
|
<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>
|
<Portuguese>Seta o objeto sincronizado como carregável</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
|
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
|
||||||
@ -193,6 +195,7 @@
|
|||||||
<Italian>Dimensioni dell'oggetto</Italian>
|
<Italian>Dimensioni dell'oggetto</Italian>
|
||||||
<Spanish>Tamaño del objeto</Spanish>
|
<Spanish>Tamaño del objeto</Spanish>
|
||||||
<French>Taille de l'objet</French>
|
<French>Taille de l'objet</French>
|
||||||
|
<Czech>Velikost objektu</Czech>
|
||||||
<Portuguese>Tamanho do objeto</Portuguese>
|
<Portuguese>Tamanho do objeto</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
|
@ -49,7 +49,7 @@ class ACE_Settings {
|
|||||||
description = CSTRING(SettingFeedbackIconsDesc);
|
description = CSTRING(SettingFeedbackIconsDesc);
|
||||||
values[] = {ECSTRING(optionsmenu,Hide), ECSTRING(optionsmenu,TopRightDown), ECSTRING(optionsmenu,TopRightLeft), ECSTRING(optionsmenu,TopLeftDown), ECSTRING(optionsmenu,TopLeftRight)};
|
values[] = {ECSTRING(optionsmenu,Hide), ECSTRING(optionsmenu,TopRightDown), ECSTRING(optionsmenu,TopRightLeft), ECSTRING(optionsmenu,TopLeftDown), ECSTRING(optionsmenu,TopLeftRight)};
|
||||||
};
|
};
|
||||||
class GVAR(SettingProgressBarLocation) {
|
class GVAR(settingProgressBarLocation) {
|
||||||
value = 0;
|
value = 0;
|
||||||
typeName = "SCALAR";
|
typeName = "SCALAR";
|
||||||
force = 0;
|
force = 0;
|
||||||
|
@ -21,7 +21,7 @@ class Extended_PostInit_EventHandlers {
|
|||||||
|
|
||||||
class Extended_DisplayLoad_EventHandlers {
|
class Extended_DisplayLoad_EventHandlers {
|
||||||
class RscDisplayMission {
|
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 CAManBase {
|
||||||
class GVAR(setName) {
|
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) {
|
class GVAR(muteUnit) {
|
||||||
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
|
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
|
||||||
@ -76,3 +76,9 @@ class Extended_FiredBIS_EventHandlers {
|
|||||||
ADDON = QUOTE(_this call FUNC(firedEH));
|
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 {
|
class ACE_insignia_logo {
|
||||||
displayName = "ACE3";
|
displayName = "ACE3";
|
||||||
author = CSTRING(ACETeam);
|
author = CSTRING(ACETeam);
|
||||||
texture = PATHTOF(data\Insignia_ace3logo_ca.paa);
|
texture = QPATHTOF(data\Insignia_ace3logo_ca.paa);
|
||||||
textureVehicle = "";
|
textureVehicle = "";
|
||||||
};
|
};
|
||||||
class ACE_insignia_banana {
|
class ACE_insignia_banana {
|
||||||
displayName = "ABE3";
|
displayName = "ABE3";
|
||||||
author = CSTRING(ACETeam);
|
author = CSTRING(ACETeam);
|
||||||
texture = PATHTOF(data\insignia_banana_ca.paa);
|
texture = QPATHTOF(data\insignia_banana_ca.paa);
|
||||||
textureVehicle = "";
|
textureVehicle = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,7 @@ class CfgVehicles {
|
|||||||
scope = 2;
|
scope = 2;
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
isSingular = 1;
|
isSingular = 1;
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_CheckPBO_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_CheckPBO_ca.paa);
|
||||||
class Arguments {
|
class Arguments {
|
||||||
class Action {
|
class Action {
|
||||||
displayName = CSTRING(CheckPBO_Action_DisplayName);
|
displayName = CSTRING(CheckPBO_Action_DisplayName);
|
||||||
@ -82,7 +82,7 @@ class CfgVehicles {
|
|||||||
displayName = CSTRING(LSDVehicles_DisplayName);
|
displayName = CSTRING(LSDVehicles_DisplayName);
|
||||||
function = "ACE_Common_fnc_moduleLSDVehicles";
|
function = "ACE_Common_fnc_moduleLSDVehicles";
|
||||||
scope = 2;
|
scope = 2;
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_LSD_ca.paa);
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
class Arguments {};
|
class Arguments {};
|
||||||
class ModuleDescription: ModuleDescription {
|
class ModuleDescription: ModuleDescription {
|
||||||
@ -132,7 +132,7 @@ class CfgVehicles {
|
|||||||
class ACE_Headbug_Fix: Bicycle {
|
class ACE_Headbug_Fix: Bicycle {
|
||||||
scope = 1;
|
scope = 1;
|
||||||
side = 3;
|
side = 3;
|
||||||
model = PATHTOF(data\ACE_HeadBanger.p3d);
|
model = QPATHTOF(data\ACE_HeadBanger.p3d);
|
||||||
//model = QPATHTO_M(ACE_HeadBanger.p3d);
|
//model = QPATHTO_M(ACE_HeadBanger.p3d);
|
||||||
author = CSTRING(ACETeam);
|
author = CSTRING(ACETeam);
|
||||||
displayName = " ";
|
displayName = " ";
|
||||||
|
@ -34,8 +34,8 @@ class CfgWeapons {
|
|||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(bananaDisplayName);
|
displayName = CSTRING(bananaDisplayName);
|
||||||
descriptionShort = CSTRING(bananaDescr);
|
descriptionShort = CSTRING(bananaDescr);
|
||||||
model = PATHTOF(data\banana.p3d);
|
model = QPATHTOF(data\banana.p3d);
|
||||||
picture = PATHTOF(data\icon_banana_ca.paa);
|
picture = QPATHTOF(data\icon_banana_ca.paa);
|
||||||
icon = "iconObject_circle";
|
icon = "iconObject_circle";
|
||||||
mapSize = 0.034;
|
mapSize = 0.034;
|
||||||
class ItemInfo: InventoryItem_Base_F {
|
class ItemInfo: InventoryItem_Base_F {
|
||||||
|
@ -111,4 +111,8 @@ class RscInGameUI {
|
|||||||
class RscStaminaBar {
|
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)]);
|
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(defineVariable);
|
||||||
PREP(deviceKeyFindValidIndex);
|
PREP(deviceKeyFindValidIndex);
|
||||||
PREP(deviceKeyRegisterNew);
|
PREP(deviceKeyRegisterNew);
|
||||||
|
PREP(deprecateComponent);
|
||||||
PREP(disableAI);
|
PREP(disableAI);
|
||||||
PREP(disableUserInput);
|
PREP(disableUserInput);
|
||||||
PREP(displayIcon);
|
PREP(displayIcon);
|
||||||
@ -87,6 +88,7 @@ PREP(getWindDirection);
|
|||||||
PREP(getZoom);
|
PREP(getZoom);
|
||||||
PREP(goKneeling);
|
PREP(goKneeling);
|
||||||
PREP(hadamardProduct);
|
PREP(hadamardProduct);
|
||||||
|
PREP(handleEngine);
|
||||||
PREP(handleModifierKey);
|
PREP(handleModifierKey);
|
||||||
PREP(handleModifierKeyUp);
|
PREP(handleModifierKeyUp);
|
||||||
PREP(handleScrollWheel);
|
PREP(handleScrollWheel);
|
||||||
@ -276,5 +278,3 @@ PREP(hashListCreateHash);
|
|||||||
PREP(hashListSelect);
|
PREP(hashListSelect);
|
||||||
PREP(hashListSet);
|
PREP(hashListSet);
|
||||||
PREP(hashListPush);
|
PREP(hashListPush);
|
||||||
|
|
||||||
PREP(timePFH);
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
GVAR(ScrollWheelFrame) = diag_frameno;
|
|
||||||
|
|
||||||
call COMPILE_FILE(init_handleScrollWheel);
|
call COMPILE_FILE(init_handleScrollWheel);
|
||||||
call COMPILE_FILE(init_handleModifierKey);
|
call COMPILE_FILE(init_handleModifierKey);
|
@ -3,47 +3,6 @@
|
|||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
#include "script_component.hpp"
|
#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
|
// Get Map Data
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
@ -64,6 +23,7 @@
|
|||||||
["blockSprint", false, []] call FUNC(statusEffect_addType);
|
["blockSprint", false, []] call FUNC(statusEffect_addType);
|
||||||
["setCaptive", true, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), QEGVAR(medical,unconscious)]] 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);
|
["blockDamage", false, ["fixCollision"]] call FUNC(statusEffect_addType);
|
||||||
|
["blockEngine", false, ["ACE_Refuel"]] call FUNC(statusEffect_addType);
|
||||||
|
|
||||||
["forceWalk", {
|
["forceWalk", {
|
||||||
params ["_object", "_set"];
|
params ["_object", "_set"];
|
||||||
@ -90,6 +50,11 @@
|
|||||||
_object allowDamage (_set == 0);
|
_object allowDamage (_set == 0);
|
||||||
};
|
};
|
||||||
}] call FUNC(addEventHandler);
|
}] 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
|
//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
|
//This variable is used for isPlayer checks
|
||||||
@ -133,6 +98,7 @@ if (isServer) then {
|
|||||||
["fixFloating", FUNC(fixFloating)] call FUNC(addEventhandler);
|
["fixFloating", FUNC(fixFloating)] call FUNC(addEventhandler);
|
||||||
["fixPosition", FUNC(fixPosition)] call FUNC(addEventhandler);
|
["fixPosition", FUNC(fixPosition)] call FUNC(addEventhandler);
|
||||||
|
|
||||||
|
["loadPersonEvent", FUNC(loadPersonLocal)] call FUNC(addEventhandler);
|
||||||
["unloadPersonEvent", FUNC(unloadPersonLocal)] call FUNC(addEventhandler);
|
["unloadPersonEvent", FUNC(unloadPersonLocal)] call FUNC(addEventhandler);
|
||||||
|
|
||||||
["lockVehicle", {
|
["lockVehicle", {
|
||||||
@ -146,16 +112,27 @@ if (isServer) then {
|
|||||||
|
|
||||||
["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler);
|
["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler);
|
||||||
["setFuel", {(_this select 0) setFuel (_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);
|
["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler);
|
||||||
["selectLeader", {(_this select 0) selectLeader (_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);
|
["setVelocity", {(_this select 0) setVelocity (_this select 1)}] call FUNC(addEventHandler);
|
||||||
["playMove", {(_this select 0) playMove (_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);
|
["playMoveNow", {(_this select 0) playMoveNow (_this select 1)}] call FUNC(addEventHandler);
|
||||||
["switchMove", {(_this select 0) switchMove (_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 {
|
if (isServer) then {
|
||||||
["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler);
|
["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler);
|
||||||
["enableSimulationGlobal", {(_this select 0) enableSimulationGlobal (_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(OldPlayerVehicle) = vehicle objNull;
|
||||||
GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex);
|
GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex);
|
||||||
GVAR(OldPlayerWeapon) = currentWeapon objNull;
|
GVAR(OldPlayerWeapon) = currentWeapon objNull;
|
||||||
GVAR(OldPlayerInventory) = [objNull] call FUNC(getAllGear);
|
GVAR(OldPlayerInventory) = [];
|
||||||
|
GVAR(OldPlayerInventoryNoAmmo) = [];
|
||||||
GVAR(OldPlayerVisionMode) = currentVisionMode objNull;
|
GVAR(OldPlayerVisionMode) = currentVisionMode objNull;
|
||||||
GVAR(OldCameraView) = "";
|
GVAR(OldCameraView) = "";
|
||||||
GVAR(OldVisibleMap) = false;
|
GVAR(OldVisibleMap) = false;
|
||||||
GVAR(OldInventoryDisplayIsOpen) = nil; //@todo check this
|
GVAR(OldInventoryDisplayIsOpen) = nil; //@todo check this
|
||||||
GVAR(OldIsCamera) = false;
|
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
|
// PFH to raise varios events
|
||||||
[{
|
[{
|
||||||
BEGIN_COUNTER(stateChecker);
|
BEGIN_COUNTER(stateChecker);
|
||||||
@ -377,11 +349,36 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// "playerInventoryChanged" event
|
// "playerInventoryChanged" event
|
||||||
_data = [ACE_player] call FUNC(getAllGear);
|
_data = getUnitLoadout ACE_player;
|
||||||
if !(_data isEqualTo GVAR(OldPlayerInventory)) then {
|
if !(_data isEqualTo GVAR(OldPlayerInventory)) then {
|
||||||
// Raise ACE event locally
|
// Raise ACE event locally
|
||||||
GVAR(OldPlayerInventory) = _data;
|
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
|
// "playerVisionModeChanged" event
|
||||||
@ -442,6 +439,11 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
|
|||||||
// Add various canInteractWith conditions
|
// Add various canInteractWith conditions
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
["isNotDead", {
|
||||||
|
params ["_unit", "_target"];
|
||||||
|
alive _unit
|
||||||
|
}] call FUNC(addCanInteractWithCondition);
|
||||||
|
|
||||||
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
|
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
|
||||||
|
|
||||||
["isNotInside", {
|
["isNotInside", {
|
||||||
|
@ -23,13 +23,6 @@ DFUNC(selectWeaponMode) = {
|
|||||||
GVAR(syncedEvents) = HASH_CREATE;
|
GVAR(syncedEvents) = HASH_CREATE;
|
||||||
GVAR(showHudHash) = [] call FUNC(hashCreate);
|
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(settingsInitFinished) = false;
|
||||||
GVAR(runAtSettingsInitialized) = [];
|
GVAR(runAtSettingsInitialized) = [];
|
||||||
|
|
||||||
@ -46,44 +39,15 @@ if (isServer) then {
|
|||||||
GVAR(statusEffect_Names) = [];
|
GVAR(statusEffect_Names) = [];
|
||||||
GVAR(statusEffect_isGlobal) = [];
|
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;
|
ACE_player = objNull;
|
||||||
uiNamespace setVariable ["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
|
// Init toHex
|
||||||
[0] call FUNC(toHex);
|
[0] call FUNC(toHex);
|
||||||
|
|
||||||
|
@ -6,8 +6,9 @@ class CfgPatches {
|
|||||||
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"};
|
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_main","ace_modules"};
|
requiredAddons[] = {"ace_main","ace_modules"};
|
||||||
author[] = {"KoffeinFlummi"};
|
author = CSTRING(ACETeam);
|
||||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
authors[] = {"KoffeinFlummi"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG_COMMON;
|
VERSION_CONFIG_COMMON;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -23,7 +23,7 @@ if (isServer) then {
|
|||||||
params ["_eventName", "_client"];
|
params ["_eventName", "_client"];
|
||||||
|
|
||||||
if (!HASH_HASKEY(GVAR(syncedEvents),_eventName)) exitWith {
|
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
|
false
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
params ["_name", "_args", "_ttl"];
|
params ["_name", "_args", "_ttl"];
|
||||||
|
|
||||||
if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
|
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
|
false
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ if (isServer) then {
|
|||||||
_internalData = HASH_GET(GVAR(syncedEvents),_name);
|
_internalData = HASH_GET(GVAR(syncedEvents),_name);
|
||||||
|
|
||||||
_internalData params ["", "_eventLog"];
|
_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 [
|
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,
|
nil,
|
||||||
-1,
|
-1,
|
||||||
false,
|
false,
|
||||||
|
@ -52,7 +52,7 @@ _actionIDs pushBack _id;
|
|||||||
private _addAction = call compile format [
|
private _addAction = call compile format [
|
||||||
"[
|
"[
|
||||||
'%2',
|
'%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,
|
nil,
|
||||||
%4,
|
%4,
|
||||||
false,
|
false,
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
params ["_statement"];
|
params ["_statement"];
|
||||||
|
|
||||||
|
ACE_DEPRECATED("ace_common_fnc_addScrollWheelEventHandler", "3.8.0", "'MouseZChanged' Display EventHandler");
|
||||||
|
|
||||||
if (_statement isEqualType "") then {
|
if (_statement isEqualType "") then {
|
||||||
_statement = compile _statement;
|
_statement = compile _statement;
|
||||||
};
|
};
|
||||||
|
@ -10,6 +10,9 @@
|
|||||||
* Return Value:
|
* Return Value:
|
||||||
* Boolean of success <BOOL>
|
* Boolean of success <BOOL>
|
||||||
*
|
*
|
||||||
|
* Example:
|
||||||
|
* ["myEvent", {_this call x}, 0] call ace_common_fnc_addSyncedEventHandler
|
||||||
|
*
|
||||||
* Public: Yes
|
* Public: Yes
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
@ -17,7 +20,7 @@
|
|||||||
params ["_name", "_handler", ["_ttl", 0]];
|
params ["_name", "_handler", ["_ttl", 0]];
|
||||||
|
|
||||||
if (HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
|
if (HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
|
||||||
ACE_LOGERROR("Duplicate synced event creation.");
|
ACE_LOGERROR_1("Duplicate synced event [%1] creation.",_name);
|
||||||
false
|
false
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -29,39 +29,17 @@ GVAR(AssignedItemsShownItems) = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
["playerInventoryChanged", {
|
["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];
|
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"},
|
||||||
if !(_x in GVAR(AssignedItems)) then {
|
!((_assignedItems select 4) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 4 >> "ACE_hideItemType") != "watch"},
|
||||||
GVAR(AssignedItems) pushBack _x;
|
!((_assignedItems select 2) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 2 >> "ACE_hideItemType") != "radio"},
|
||||||
GVAR(AssignedItemsInfo) pushBack toLower getText (configFile >> "CfgWeapons" >> _x >> "ACE_hideItemType");
|
!((_assignedItems select 1) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 1 >> "ACE_hideItemType") != "gps"}
|
||||||
};
|
];
|
||||||
|
|
||||||
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) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"];
|
GVAR(AssignedItemsShownItems) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"];
|
||||||
|
|
||||||
|
@ -15,18 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
params [["_unit", objNull, [objNull]]];
|
ACE_DEPRECATED("ace_common_fnc_binocularMagazine","3.8.0","CBA_fnc_binocularMagazine");
|
||||||
|
|
||||||
private _binocular = binocular _unit;
|
_this call CBA_fnc_binocularMagazine
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
""
|
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
|
|
||||||
params ["_params", "_function", "_namespace", "_uid", "_duration", "_event"];
|
params ["_params", "_function", "_namespace", "_uid", "_duration", "_event"];
|
||||||
|
|
||||||
if ((_namespace getVariable [_uid, [-99999]]) select 0 < ACE_diagTime) then {
|
if ((_namespace getVariable [_uid, [-99999]]) select 0 < diag_tickTime) then {
|
||||||
_namespace setVariable [_uid, [ACE_diagTime + _duration, _params call _function]];
|
_namespace setVariable [_uid, [diag_tickTime + _duration, _params call _function]];
|
||||||
|
|
||||||
// Does the cache needs to be cleared on an event?
|
// Does the cache needs to be cleared on an event?
|
||||||
if (!isNil "_event") then {
|
if (!isNil "_event") then {
|
||||||
|
@ -19,6 +19,18 @@ private _version = getText (configFile >> "CfgPatches" >> "ace_main" >> "version
|
|||||||
|
|
||||||
ACE_LOGINFO_1("ACE is version %1.",_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 = activatedAddons; // broken with High-Command module, see #2134
|
||||||
private _addons = "true" configClasses (configFile >> "CfgPatches");//
|
private _addons = "true" configClasses (configFile >> "CfgPatches");//
|
||||||
_addons = _addons apply {toLower configName _x};//
|
_addons = _addons apply {toLower configName _x};//
|
||||||
|
@ -61,7 +61,8 @@ if (!isServer) then {
|
|||||||
_error = _error + "Newer version; ";
|
_error = _error + "Newer version; ";
|
||||||
};
|
};
|
||||||
|
|
||||||
//[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
//[QGVAR(systemChatGlobal), _error] call FUNC(globalEvent);
|
||||||
|
|
||||||
ACE_LOGERROR(_error);
|
ACE_LOGERROR(_error);
|
||||||
|
|
||||||
if (_mode < 2) then {
|
if (_mode < 2) then {
|
||||||
@ -79,7 +80,7 @@ if (!isServer) then {
|
|||||||
params ["_rscLayer"];
|
params ["_rscLayer"];
|
||||||
TRACE_2("Hiding Error message after 10 seconds",time,_rscLayer);
|
TRACE_2("Hiding Error message after 10 seconds",time,_rscLayer);
|
||||||
_rscLayer cutFadeOut 0.2;
|
_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);
|
TRACE_2("Player is alive, showing msg and exiting",time,_text);
|
||||||
_text = composeText [parseText format ["<t align='center'>%1</t>", _text]];
|
_text = composeText [parseText format ["<t align='center'>%1</t>", _text]];
|
||||||
["[ACE] ERROR", _text, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
["[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"
|
#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;
|
_code
|
||||||
_function deleteAt 0;
|
|
||||||
_function deleteAt (count _function - 1);
|
|
||||||
|
|
||||||
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
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* 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
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* 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
|
* Public: Yes
|
||||||
*/
|
*/
|
||||||
@ -89,11 +89,11 @@ private _refresh = {
|
|||||||
|
|
||||||
if (_show) then {
|
if (_show) then {
|
||||||
if ({_x select 0 == _iconId} count _list == 0) 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 {
|
} else {
|
||||||
{
|
{
|
||||||
if (_x select 0 == _iconId) exitWith {
|
if (_x select 0 == _iconId) exitWith {
|
||||||
_list set [_forEachIndex, [_iconId, _icon, _color, ACE_time]];
|
_list set [_forEachIndex, [_iconId, _icon, _color, CBA_missionTime]];
|
||||||
};
|
};
|
||||||
} forEach _list;
|
} forEach _list;
|
||||||
};
|
};
|
||||||
@ -104,7 +104,7 @@ if (_show) then {
|
|||||||
if (_timeAlive >= 0) then {
|
if (_timeAlive >= 0) then {
|
||||||
[{
|
[{
|
||||||
[_this select 0, false, "", [0,0,0], 0] call FUNC(displayIcon);
|
[_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 {
|
} else {
|
||||||
|
@ -25,7 +25,7 @@ if !(typeName _text in ["STRING", "TEXT"]) then {_text = str _text};
|
|||||||
|
|
||||||
GVAR(lastHint) params ["_lastHintTime", "_lastHintPriority"];
|
GVAR(lastHint) params ["_lastHintTime", "_lastHintPriority"];
|
||||||
|
|
||||||
private _time = ACE_time;
|
private _time = CBA_missionTime;
|
||||||
|
|
||||||
if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
|
if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
|
||||||
hintSilent _text;
|
hintSilent _text;
|
||||||
@ -33,5 +33,5 @@ if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
|
|||||||
GVAR(lastHint) set [0, _time];
|
GVAR(lastHint) set [0, _time];
|
||||||
GVAR(lastHint) set [1, _priority];
|
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"
|
#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 {
|
_this call CBA_fnc_execNextFrame;
|
||||||
GVAR(nextFrameBufferA) pushBack [_params, _func];
|
|
||||||
} else {
|
|
||||||
GVAR(nextFrameBufferB) pushBack [_params, _func];
|
|
||||||
};
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user