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,11 +307,11 @@
|
|||||||
<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>
|
||||||
<Italian>Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata</Italian>
|
<Italian>Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -11,7 +11,7 @@ class CfgAmmo {
|
|||||||
explosive = 1.8;
|
explosive = 1.8;
|
||||||
tracersEvery = 3;
|
tracersEvery = 3;
|
||||||
tracerEndTime = 3.5;
|
tracerEndTime = 3.5;
|
||||||
|
|
||||||
CraterEffects = "ExploAmmoCrater";
|
CraterEffects = "ExploAmmoCrater";
|
||||||
explosionEffects = "ExploAmmoExplosion";
|
explosionEffects = "ExploAmmoExplosion";
|
||||||
model = "\A3\Weapons_f\Data\bullettracer\tracer_red";
|
model = "\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||||
|
@ -860,12 +860,12 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
helmetDown[] = {0,-0.07,0};
|
helmetDown[] = {0,-0.07,0};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class Turrets: Turrets {
|
class Turrets: Turrets {
|
||||||
class MainTurret: MainTurret {
|
class MainTurret: MainTurret {
|
||||||
weapons[] = {"ACE_gatling_20mm_Comanche","missiles_DAGR","missiles_ASRAAM", "ACE_AIR_SAFETY"};
|
weapons[] = {"ACE_gatling_20mm_Comanche","missiles_DAGR","missiles_ASRAAM", "ACE_AIR_SAFETY"};
|
||||||
magazines[] = {"ACE_500Rnd_20mm_shells_Comanche","4Rnd_AAA_missiles","24Rnd_PG_missiles"};
|
magazines[] = {"ACE_500Rnd_20mm_shells_Comanche","4Rnd_AAA_missiles","24Rnd_PG_missiles"};
|
||||||
|
|
||||||
outGunnerMayFire = 1;
|
outGunnerMayFire = 1;
|
||||||
commanding = -1;
|
commanding = -1;
|
||||||
primaryGunner = 1;
|
primaryGunner = 1;
|
||||||
@ -888,13 +888,13 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
minTurn = -120;
|
minTurn = -120;
|
||||||
maxTurn = 120;
|
maxTurn = 120;
|
||||||
initTurn = 0;
|
initTurn = 0;
|
||||||
|
|
||||||
class OpticsIn
|
class OpticsIn
|
||||||
{
|
{
|
||||||
delete Narrow;
|
delete Narrow;
|
||||||
delete Medium;
|
delete Medium;
|
||||||
delete Wide;
|
delete Wide;
|
||||||
|
|
||||||
class ACE_WideUnstabilized {
|
class ACE_WideUnstabilized {
|
||||||
opticsDisplayName = "W NS";
|
opticsDisplayName = "W NS";
|
||||||
initAngleX = 0;
|
initAngleX = 0;
|
||||||
@ -994,4 +994,4 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|||||||
weapon = "ACE_gatling_20mm_Comanche";
|
weapon = "ACE_gatling_20mm_Comanche";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -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>
|
||||||
@ -50,4 +50,4 @@
|
|||||||
<Portuguese>Fechar porta de carga</Portuguese>
|
<Portuguese>Fechar porta de carga</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ class ATragMX_Display {
|
|||||||
idc=-1;
|
idc=-1;
|
||||||
x=0.55*safezoneW+safezoneX+0.315;
|
x=0.55*safezoneW+safezoneX+0.315;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TEXT_GUN_FRAME: ATragMX_RscText {
|
class TEXT_GUN_FRAME: ATragMX_RscText {
|
||||||
idc=1001;
|
idc=1001;
|
||||||
style=64;
|
style=64;
|
||||||
@ -610,7 +610,7 @@ class ATragMX_Display {
|
|||||||
x=0.550*safezoneW+safezoneX+0.27;
|
x=0.550*safezoneW+safezoneX+0.27;
|
||||||
text="4";
|
text="4";
|
||||||
action=QUOTE(call FUNC(toggle_solution_setup));
|
action=QUOTE(call FUNC(toggle_solution_setup));
|
||||||
};
|
};
|
||||||
class TEXT_CALCULATE: TEXT_SCOPE_UNIT {
|
class TEXT_CALCULATE: TEXT_SCOPE_UNIT {
|
||||||
idc=3000;
|
idc=3000;
|
||||||
style=ST_RIGHT;
|
style=ST_RIGHT;
|
||||||
@ -1059,7 +1059,7 @@ class ATragMX_Display {
|
|||||||
text="Cancel";
|
text="Cancel";
|
||||||
action=QUOTE(false call FUNC(show_add_new_gun); true call FUNC(show_gun_list));
|
action=QUOTE(false call FUNC(show_add_new_gun); true call FUNC(show_gun_list));
|
||||||
};
|
};
|
||||||
|
|
||||||
class TEXT_GUN_AMMO_DATA_BORE_HEIGHT: TEXT_BORE_HEIGHT {
|
class TEXT_GUN_AMMO_DATA_BORE_HEIGHT: TEXT_BORE_HEIGHT {
|
||||||
idc=12000;
|
idc=12000;
|
||||||
w=0.22;
|
w=0.22;
|
||||||
@ -1147,7 +1147,7 @@ class ATragMX_Display {
|
|||||||
class TEXT_GUN_AMMO_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
|
class TEXT_GUN_AMMO_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
|
||||||
idc=12011;
|
idc=12011;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TEXT_ATMO_ENV_DATA_DEFAULT: TEXT_LEAD {
|
class TEXT_ATMO_ENV_DATA_DEFAULT: TEXT_LEAD {
|
||||||
idc=13000;
|
idc=13000;
|
||||||
w=0.08;
|
w=0.08;
|
||||||
@ -1231,7 +1231,7 @@ class ATragMX_Display {
|
|||||||
y=0.265*safezoneH+safezoneY+0.29;
|
y=0.265*safezoneH+safezoneY+0.29;
|
||||||
text="Calc Method";
|
text="Calc Method";
|
||||||
};
|
};
|
||||||
|
|
||||||
class TEXT_TARGET_DATA_LATITUDE: TEXT_BORE_HEIGHT {
|
class TEXT_TARGET_DATA_LATITUDE: TEXT_BORE_HEIGHT {
|
||||||
idc=14000;
|
idc=14000;
|
||||||
w=0.22;
|
w=0.22;
|
||||||
@ -1379,7 +1379,7 @@ class ATragMX_Display {
|
|||||||
class TEXT_TARGET_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
|
class TEXT_TARGET_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
|
||||||
idc=14011;
|
idc=14011;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TEXT_SOLUTION_SETUP_SHOW_RESULT_IN: TEXT_GUN_AMMO_DATA_BORE_HEIGHT {
|
class TEXT_SOLUTION_SETUP_SHOW_RESULT_IN: TEXT_GUN_AMMO_DATA_BORE_HEIGHT {
|
||||||
idc=15000;
|
idc=15000;
|
||||||
style=64;
|
style=64;
|
||||||
@ -1469,4 +1469,4 @@ class ATragMX_Display {
|
|||||||
action=QUOTE(0 call FUNC(toggle_solution_setup));
|
action=QUOTE(0 call FUNC(toggle_solution_setup));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -7,41 +7,41 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
|||||||
} else {
|
} else {
|
||||||
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model
|
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model
|
||||||
GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
|
GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
|
||||||
|
|
||||||
["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
|
["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
|
||||||
["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
|
["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
|
||||||
|
|
||||||
["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
|
["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
|
||||||
|
|
||||||
[".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
|
[".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
|
||||||
|
|
||||||
["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
|
["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
|
||||||
|
|
||||||
[".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
|
[".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
|
||||||
[".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
|
[".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
|
||||||
[".338LM API526" , 895, 100, 0.0588865, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
|
[".338LM API526" , 895, 100, 0.0588865, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
|
||||||
|
|
||||||
[".300WM Mk248 Mod 0", 900, 100, 0.0584442, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
|
[".300WM Mk248 Mod 0", 900, 100, 0.0584442, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
|
||||||
[".300WM Mk248 Mod 1", 867, 100, 0.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
|
[".300WM Mk248 Mod 1", 867, 100, 0.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
|
||||||
[".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
|
[".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
|
||||||
|
|
||||||
["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
|
["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
|
||||||
|
|
||||||
["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
|
["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
|
||||||
["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
|
["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
|
||||||
["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
|
["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
|
||||||
["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
|
["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
|
||||||
["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
|
["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
|
||||||
|
|
||||||
["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
|
["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
|
||||||
["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
|
["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
|
||||||
["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
|
["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
|
||||||
|
|
||||||
["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
|
["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
|
||||||
["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
|
["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
|
||||||
["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
|
["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
|
||||||
["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
|
["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
|
||||||
|
|
||||||
[] call FUNC(clear_user_data);
|
[] call FUNC(clear_user_data);
|
||||||
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
|
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
|
||||||
};
|
};
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -14,4 +16,4 @@ class CfgPatches {
|
|||||||
#include "CfgEventHandlers.hpp"
|
#include "CfgEventHandlers.hpp"
|
||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
#include "CfgWeapons.hpp"
|
#include "CfgWeapons.hpp"
|
||||||
#include "RscTitles.hpp"
|
#include "RscTitles.hpp"
|
||||||
|
@ -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];
|
||||||
@ -133,7 +116,7 @@ _bulletVelocity set [2, Sin(_scopeBaseAngle) * _muzzleVelocity];
|
|||||||
|
|
||||||
while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
||||||
_bulletSpeed = vectorMagnitude _bulletVelocity;
|
_bulletSpeed = vectorMagnitude _bulletVelocity;
|
||||||
|
|
||||||
_speedTotal = _speedTotal + _bulletSpeed;
|
_speedTotal = _speedTotal + _bulletSpeed;
|
||||||
_stepsTotal = _stepsTotal + 1;
|
_stepsTotal = _stepsTotal + 1;
|
||||||
_speedAverage = (_speedTotal / _stepsTotal);
|
_speedAverage = (_speedTotal / _stepsTotal);
|
||||||
@ -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))
|
||||||
@ -173,7 +156,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
|||||||
};
|
};
|
||||||
_kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2));
|
_kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2));
|
||||||
_kineticEnergy = _kineticEnergy * 0.737562149;
|
_kineticEnergy = _kineticEnergy * 0.737562149;
|
||||||
|
|
||||||
if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then {
|
if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then {
|
||||||
// Coriolis
|
// Coriolis
|
||||||
_horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage;
|
_horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage;
|
||||||
@ -190,7 +173,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
|
|||||||
_windage1 = _windage1 + _spinDrift;
|
_windage1 = _windage1 + _spinDrift;
|
||||||
_windage2 = _windage2 + _spinDrift;
|
_windage2 = _windage2 + _spinDrift;
|
||||||
};
|
};
|
||||||
|
|
||||||
GVAR(rangeCardData) set [_n, [_range, _elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy]];
|
GVAR(rangeCardData) set [_n, [_range, _elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy]];
|
||||||
_n = _n + 1;
|
_n = _n + 1;
|
||||||
};
|
};
|
||||||
|
@ -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 {};
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ if (GVAR(showRangeCard)) then {
|
|||||||
};
|
};
|
||||||
GVAR(showRangeCardSetup) call FUNC(show_range_card_setup);
|
GVAR(showRangeCardSetup) call FUNC(show_range_card_setup);
|
||||||
GVAR(showSolutionSetup) call FUNC(show_solution_setup);
|
GVAR(showSolutionSetup) call FUNC(show_solution_setup);
|
||||||
GVAR(showTargetData) call FUNC(show_target_data);
|
GVAR(showTargetData) call FUNC(show_target_data);
|
||||||
GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist);
|
GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist);
|
||||||
GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist);
|
GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist);
|
||||||
GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);
|
GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);
|
||||||
@ -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,7 @@ GVAR(showRangeCardSetup) = _this;
|
|||||||
|
|
||||||
if (_this) then {
|
if (_this) then {
|
||||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 10006);
|
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 10006);
|
||||||
|
|
||||||
ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))];
|
ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))];
|
||||||
ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))];
|
ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))];
|
||||||
ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))];
|
ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))];
|
||||||
|
@ -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))];
|
||||||
|
|
||||||
@ -30,4 +29,4 @@ if (_this) then {
|
|||||||
} else {
|
} else {
|
||||||
ctrlSetText [7016, "Meters"];
|
ctrlSetText [7016, "Meters"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -21,7 +21,7 @@ GVAR(showTargetSpeedAssist) = _this;
|
|||||||
|
|
||||||
if (_this) then {
|
if (_this) then {
|
||||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 8012);
|
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 8012);
|
||||||
|
|
||||||
ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))];
|
ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))];
|
||||||
|
|
||||||
if (GVAR(currentUnit) == 1) then {
|
if (GVAR(currentUnit) == 1) then {
|
||||||
@ -29,7 +29,7 @@ if (_this) then {
|
|||||||
} else {
|
} else {
|
||||||
ctrlSetText [8008, "Meters"];
|
ctrlSetText [8008, "Meters"];
|
||||||
};
|
};
|
||||||
|
|
||||||
if (GVAR(currentUnit) == 2) then {
|
if (GVAR(currentUnit) == 2) then {
|
||||||
ctrlSetText [8011, "m/s"];
|
ctrlSetText [8011, "m/s"];
|
||||||
} else {
|
} else {
|
||||||
|
@ -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)];
|
||||||
|
@ -21,26 +21,26 @@ if !(ctrlVisible 9000) then {
|
|||||||
true call FUNC(show_target_speed_assist_timer);
|
true call FUNC(show_target_speed_assist_timer);
|
||||||
|
|
||||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 9002);
|
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 9002);
|
||||||
|
|
||||||
[{
|
[{
|
||||||
private ["_args", "_startTime"];
|
private ["_args", "_startTime"];
|
||||||
_args = _this select 0;
|
_args = _this select 0;
|
||||||
_startTime = _args select 0;
|
_startTime = _args select 0;
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
false call FUNC(show_target_speed_assist_timer);
|
false call FUNC(show_target_speed_assist_timer);
|
||||||
true call FUNC(show_target_speed_assist);
|
true call FUNC(show_target_speed_assist);
|
||||||
|
|
||||||
[_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;
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
if (ctrlVisible 13000) then {
|
if (ctrlVisible 13000) then {
|
||||||
false call FUNC(show_atmo_env_data);
|
false call FUNC(show_atmo_env_data);
|
||||||
true call FUNC(show_main_page);
|
true call FUNC(show_main_page);
|
||||||
|
|
||||||
if (_this == 1) then {
|
if (_this == 1) then {
|
||||||
call FUNC(calculate_target_solution);
|
call FUNC(calculate_target_solution);
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
if (ctrlVisible 12000) then {
|
if (ctrlVisible 12000) then {
|
||||||
false call FUNC(show_gun_ammo_data);
|
false call FUNC(show_gun_ammo_data);
|
||||||
true call FUNC(show_main_page);
|
true call FUNC(show_main_page);
|
||||||
|
|
||||||
if (_this == 1) then {
|
if (_this == 1) then {
|
||||||
call FUNC(update_zero_range);
|
call FUNC(update_zero_range);
|
||||||
call FUNC(calculate_target_solution);
|
call FUNC(calculate_target_solution);
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
if (ctrlVisible 6000) then {
|
if (ctrlVisible 6000) then {
|
||||||
false call FUNC(show_gun_list);
|
false call FUNC(show_gun_list);
|
||||||
true call FUNC(show_main_page);
|
true call FUNC(show_main_page);
|
||||||
|
|
||||||
if (_this) then {
|
if (_this) then {
|
||||||
[lbCurSel 6000, true, true] call FUNC(change_gun);
|
[lbCurSel 6000, true, true] call FUNC(change_gun);
|
||||||
};
|
};
|
||||||
|
@ -21,9 +21,9 @@ if (ctrlVisible 5006) then {
|
|||||||
} else {
|
} else {
|
||||||
false call FUNC(show_main_page);
|
false call FUNC(show_main_page);
|
||||||
true call FUNC(show_range_card);
|
true call FUNC(show_range_card);
|
||||||
|
|
||||||
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 5001);
|
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 5001);
|
||||||
|
|
||||||
[] call FUNC(calculate_range_card);
|
[] call FUNC(calculate_range_card);
|
||||||
[] call FUNC(update_range_card);
|
[] call FUNC(update_range_card);
|
||||||
};
|
};
|
||||||
|
@ -18,12 +18,12 @@
|
|||||||
if (ctrlVisible 10000) then {
|
if (ctrlVisible 10000) then {
|
||||||
false call FUNC(show_range_card_setup);
|
false call FUNC(show_range_card_setup);
|
||||||
true call FUNC(show_range_card);
|
true call FUNC(show_range_card);
|
||||||
|
|
||||||
if (_this == 1) then {
|
if (_this == 1) then {
|
||||||
GVAR(rangeCardStartRange) = 0 max Round(parseNumber(ctrlText 10003)) min 3000;
|
GVAR(rangeCardStartRange) = 0 max Round(parseNumber(ctrlText 10003)) min 3000;
|
||||||
GVAR(rangeCardEndRange) = 0 max Round(parseNumber(ctrlText 10004)) min 3000;
|
GVAR(rangeCardEndRange) = 0 max Round(parseNumber(ctrlText 10004)) min 3000;
|
||||||
GVAR(rangeCardIncrement) = 1 max Round(parseNumber(ctrlText 10005)) min 3000;
|
GVAR(rangeCardIncrement) = 1 max Round(parseNumber(ctrlText 10005)) min 3000;
|
||||||
|
|
||||||
[] call FUNC(calculate_range_card);
|
[] call FUNC(calculate_range_card);
|
||||||
[] call FUNC(update_range_card);
|
[] call FUNC(update_range_card);
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
if (ctrlVisible 15000) then {
|
if (ctrlVisible 15000) then {
|
||||||
false call FUNC(show_solution_setup);
|
false call FUNC(show_solution_setup);
|
||||||
true call FUNC(show_main_page);
|
true call FUNC(show_main_page);
|
||||||
|
|
||||||
if (_this == 1) then {
|
if (_this == 1) then {
|
||||||
GVAR(currentScopeClickUnit) = GVAR(currentScopeClickUnitTemp);
|
GVAR(currentScopeClickUnit) = GVAR(currentScopeClickUnitTemp);
|
||||||
GVAR(currentScopeClickNumber) = GVAR(currentScopeClickNumberTemp);
|
GVAR(currentScopeClickNumber) = GVAR(currentScopeClickNumberTemp);
|
||||||
@ -30,9 +30,9 @@ if (ctrlVisible 15000) then {
|
|||||||
} else {
|
} else {
|
||||||
true call FUNC(show_solution_setup);
|
true call FUNC(show_solution_setup);
|
||||||
false call FUNC(show_main_page);
|
false call FUNC(show_main_page);
|
||||||
|
|
||||||
GVAR(currentScopeClickUnitTemp) = GVAR(currentScopeClickUnit);
|
GVAR(currentScopeClickUnitTemp) = GVAR(currentScopeClickUnit);
|
||||||
GVAR(currentScopeClickNumberTemp) = GVAR(currentScopeClickNumber);
|
GVAR(currentScopeClickNumberTemp) = GVAR(currentScopeClickNumber);
|
||||||
|
|
||||||
[] call FUNC(update_solution_setup);
|
[] call FUNC(update_solution_setup);
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
if (ctrlVisible 14000) then {
|
if (ctrlVisible 14000) then {
|
||||||
false call FUNC(show_target_data);
|
false call FUNC(show_target_data);
|
||||||
true call FUNC(show_main_page);
|
true call FUNC(show_main_page);
|
||||||
|
|
||||||
if (_this == 1) then {
|
if (_this == 1) then {
|
||||||
call FUNC(calculate_target_solution);
|
call FUNC(calculate_target_solution);
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
if (ctrlVisible 7000) then {
|
if (ctrlVisible 7000) then {
|
||||||
false call FUNC(show_target_range_assist);
|
false call FUNC(show_target_range_assist);
|
||||||
true call FUNC(show_main_page);
|
true call FUNC(show_main_page);
|
||||||
|
|
||||||
if (_this == 1) then {
|
if (_this == 1) then {
|
||||||
ctrlSetText [320, Str(parseNumber(ctrlText 7012))];
|
ctrlSetText [320, Str(parseNumber(ctrlText 7012))];
|
||||||
ctrlSetText [140040, Str(parseNumber(ctrlText 7012))];
|
ctrlSetText [140040, Str(parseNumber(ctrlText 7012))];
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
if (ctrlVisible 8000) then {
|
if (ctrlVisible 8000) then {
|
||||||
false call FUNC(show_target_speed_assist);
|
false call FUNC(show_target_speed_assist);
|
||||||
true call FUNC(show_main_page);
|
true call FUNC(show_main_page);
|
||||||
|
|
||||||
if (_this == 1) then {
|
if (_this == 1) then {
|
||||||
[] call FUNC(calculate_target_speed_assist);
|
[] call FUNC(calculate_target_speed_assist);
|
||||||
private ["_targetSpeed"];
|
private ["_targetSpeed"];
|
||||||
|
@ -43,7 +43,7 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
|
|||||||
_TOF = _x select 4;
|
_TOF = _x select 4;
|
||||||
_velocity = _x select 5;
|
_velocity = _x select 5;
|
||||||
_kineticEnergy = _x select 6;
|
_kineticEnergy = _x select 6;
|
||||||
|
|
||||||
switch (GVAR(currentScopeUnit)) do {
|
switch (GVAR(currentScopeUnit)) do {
|
||||||
case 0: {
|
case 0: {
|
||||||
_elevation = _elevation / 3.38;
|
_elevation = _elevation / 3.38;
|
||||||
@ -63,25 +63,25 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
|
|||||||
};
|
};
|
||||||
_clickNumber = GVAR(workingMemory) select 8;
|
_clickNumber = GVAR(workingMemory) select 8;
|
||||||
_clickInterval = _clickSize / _clickNumber;
|
_clickInterval = _clickSize / _clickNumber;
|
||||||
|
|
||||||
_elevation = Round(_elevation / _clickInterval);
|
_elevation = Round(_elevation / _clickInterval);
|
||||||
_windage1 = Round(_windage1 / _clickInterval);
|
_windage1 = Round(_windage1 / _clickInterval);
|
||||||
_windage2 = Round(_windage2 / _clickInterval);
|
_windage2 = Round(_windage2 / _clickInterval);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_elevationOutput = Str(Round(_elevation * 100) / 100);
|
_elevationOutput = Str(Round(_elevation * 100) / 100);
|
||||||
_windageOutput = Str(Round(_windage1 * 100) / 100);
|
_windageOutput = Str(Round(_windage1 * 100) / 100);
|
||||||
|
|
||||||
_rangeOutput = Str(_range);
|
_rangeOutput = Str(_range);
|
||||||
if (_velocity < _speedOfSound) then {
|
if (_velocity < _speedOfSound) then {
|
||||||
_rangeOutput = _rangeOutput + "*";
|
_rangeOutput = _rangeOutput + "*";
|
||||||
};
|
};
|
||||||
|
|
||||||
if (GVAR(currentUnit) == 1) then {
|
if (GVAR(currentUnit) == 1) then {
|
||||||
_velocity = _velocity * 3.2808399;
|
_velocity = _velocity * 3.2808399;
|
||||||
};
|
};
|
||||||
|
|
||||||
switch (GVAR(rangeCardCurrentColumn)) do {
|
switch (GVAR(rangeCardCurrentColumn)) do {
|
||||||
case 0: {
|
case 0: {
|
||||||
if (GVAR(showWind2)) then {
|
if (GVAR(showWind2)) then {
|
||||||
@ -100,6 +100,6 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
|
|||||||
_lastColumnOutput = Str(Round(_TOF * 100) / 100);
|
_lastColumnOutput = Str(Round(_TOF * 100) / 100);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
lnbAddRow [5007, [_rangeOutput, _elevationOutput, _windageOutput, _lastColumnOutput]];
|
lnbAddRow [5007, [_rangeOutput, _elevationOutput, _windageOutput, _lastColumnOutput]];
|
||||||
} forEach GVAR(rangeCardData);
|
} forEach GVAR(rangeCardData);
|
||||||
|
@ -33,24 +33,24 @@ switch (GVAR(currentScopeUnit)) do {
|
|||||||
case 0: {
|
case 0: {
|
||||||
_elevationAbs = _elevationAbs / 3.38;
|
_elevationAbs = _elevationAbs / 3.38;
|
||||||
_windageAbs = _windageAbs / 3.38;
|
_windageAbs = _windageAbs / 3.38;
|
||||||
|
|
||||||
_wind2 = _wind2 / 3.38;
|
_wind2 = _wind2 / 3.38;
|
||||||
|
|
||||||
_elevationRel = _elevationRel / 3.38;
|
_elevationRel = _elevationRel / 3.38;
|
||||||
_windageRel = _windageRel / 3.38;
|
_windageRel = _windageRel / 3.38;
|
||||||
|
|
||||||
_elevationCur = _elevationCur / 3.38;
|
_elevationCur = _elevationCur / 3.38;
|
||||||
_windageCur = _windageCur / 3.38;
|
_windageCur = _windageCur / 3.38;
|
||||||
};
|
};
|
||||||
case 2: {
|
case 2: {
|
||||||
_elevationAbs = _elevationAbs * 1.047;
|
_elevationAbs = _elevationAbs * 1.047;
|
||||||
_windageAbs = _windageAbs * 1.047;
|
_windageAbs = _windageAbs * 1.047;
|
||||||
|
|
||||||
_wind2 = _wind2 / 1.047;
|
_wind2 = _wind2 / 1.047;
|
||||||
|
|
||||||
_elevationRel = _elevationRel * 1.047;
|
_elevationRel = _elevationRel * 1.047;
|
||||||
_windageRel = _windageRel * 1.047;
|
_windageRel = _windageRel * 1.047;
|
||||||
|
|
||||||
_elevationCur = _elevationCur * 1.047;
|
_elevationCur = _elevationCur * 1.047;
|
||||||
_windageCur = _windageCur * 1.047;
|
_windageCur = _windageCur * 1.047;
|
||||||
};
|
};
|
||||||
@ -62,15 +62,15 @@ switch (GVAR(currentScopeUnit)) do {
|
|||||||
};
|
};
|
||||||
_clickNumber = GVAR(workingMemory) select 8;
|
_clickNumber = GVAR(workingMemory) select 8;
|
||||||
_clickInterval = _clickSize / _clickNumber;
|
_clickInterval = _clickSize / _clickNumber;
|
||||||
|
|
||||||
_elevationAbs = Round(_elevationAbs / _clickInterval);
|
_elevationAbs = Round(_elevationAbs / _clickInterval);
|
||||||
_windageAbs = Round(_windageAbs / _clickInterval);
|
_windageAbs = Round(_windageAbs / _clickInterval);
|
||||||
|
|
||||||
_wind2 = Round(_wind2 / _clickInterval);
|
_wind2 = Round(_wind2 / _clickInterval);
|
||||||
|
|
||||||
_elevationRel = Round(_elevationRel / _clickInterval);
|
_elevationRel = Round(_elevationRel / _clickInterval);
|
||||||
_windageRel = Round(_windageRel / _clickInterval);
|
_windageRel = Round(_windageRel / _clickInterval);
|
||||||
|
|
||||||
_elevationCur = Round(_elevationCur / _clickInterval);
|
_elevationCur = Round(_elevationCur / _clickInterval);
|
||||||
_windageCur = Round(_windageCur / _clickInterval);
|
_windageCur = Round(_windageCur / _clickInterval);
|
||||||
};
|
};
|
||||||
@ -166,4 +166,4 @@ if (GVAR(showWind2)) then {
|
|||||||
} else {
|
} else {
|
||||||
ctrlSetText [420, "0.0"];
|
ctrlSetText [420, "0.0"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -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>
|
||||||
@ -206,4 +206,4 @@
|
|||||||
<Russian>%1<br/>отсоединен(-а)</Russian>
|
<Russian>%1<br/>отсоединен(-а)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -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;
|
||||||
|
@ -83,7 +83,7 @@ class CfgMagazines {
|
|||||||
descriptionShort = CSTRING(30Rnd_556x45_mag_Tracer_DimDescription);
|
descriptionShort = CSTRING(30Rnd_556x45_mag_Tracer_DimDescription);
|
||||||
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
|
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
|
||||||
};
|
};
|
||||||
|
|
||||||
class 20Rnd_762x51_Mag: CA_Magazine {
|
class 20Rnd_762x51_Mag: CA_Magazine {
|
||||||
initSpeed = 833;
|
initSpeed = 833;
|
||||||
};
|
};
|
||||||
@ -121,7 +121,7 @@ class CfgMagazines {
|
|||||||
descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription);
|
descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription);
|
||||||
initSpeed = 325;
|
initSpeed = 325;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag {
|
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
ammo = "ACE_762x51_Ball_M118LR";
|
ammo = "ACE_762x51_Ball_M118LR";
|
||||||
@ -247,7 +247,7 @@ class CfgMagazines {
|
|||||||
descriptionShort = CSTRING(10Rnd_338_API526_Mag_Description);
|
descriptionShort = CSTRING(10Rnd_338_API526_Mag_Description);
|
||||||
initSpeed = 880;
|
initSpeed = 880;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 5Rnd_127x108_Mag;
|
class 5Rnd_127x108_Mag;
|
||||||
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
|
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
@ -273,8 +273,8 @@ class CfgMagazines {
|
|||||||
descriptionShort = CSTRING(5Rnd_127x99_AMAX_Mag_Description);
|
descriptionShort = CSTRING(5Rnd_127x99_AMAX_Mag_Description);
|
||||||
initSpeed = 860;
|
initSpeed = 860;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class 30Rnd_9x21_Mag: CA_Magazine {
|
class 30Rnd_9x21_Mag: CA_Magazine {
|
||||||
initSpeed = 450;
|
initSpeed = 450;
|
||||||
};
|
};
|
||||||
@ -286,27 +286,27 @@ class CfgMagazines {
|
|||||||
descriptionShort = CSTRING(30Rnd_9x19_mag_Description);
|
descriptionShort = CSTRING(30Rnd_9x19_mag_Description);
|
||||||
initSpeed = 370;
|
initSpeed = 370;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 11Rnd_45ACP_Mag: CA_Magazine {
|
class 11Rnd_45ACP_Mag: CA_Magazine {
|
||||||
initSpeed = 250;
|
initSpeed = 250;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 6Rnd_45ACP_Cylinder : 11Rnd_45ACP_Mag {
|
class 6Rnd_45ACP_Cylinder : 11Rnd_45ACP_Mag {
|
||||||
initSpeed = 250;
|
initSpeed = 250;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 30Rnd_45ACP_Mag_SMG_01: 30Rnd_9x21_Mag {
|
class 30Rnd_45ACP_Mag_SMG_01: 30Rnd_9x21_Mag {
|
||||||
initSpeed = 250;
|
initSpeed = 250;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 9Rnd_45ACP_Mag: 30Rnd_45ACP_Mag_SMG_01 {
|
class 9Rnd_45ACP_Mag: 30Rnd_45ACP_Mag_SMG_01 {
|
||||||
initSpeed = 250;
|
initSpeed = 250;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 {
|
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 {
|
||||||
initSpeed = 250;
|
initSpeed = 250;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag {
|
class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag {
|
||||||
initSpeed = 450;
|
initSpeed = 450;
|
||||||
};
|
};
|
||||||
@ -318,7 +318,7 @@ class CfgMagazines {
|
|||||||
descriptionShort = CSTRING(16Rnd_9x19_mag_Description);
|
descriptionShort = CSTRING(16Rnd_9x19_mag_Description);
|
||||||
initSpeed = 370;
|
initSpeed = 370;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
|
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
|
||||||
initSpeed = 800;
|
initSpeed = 800;
|
||||||
};
|
};
|
||||||
@ -331,15 +331,15 @@ class CfgMagazines {
|
|||||||
initSpeed = 800;
|
initSpeed = 800;
|
||||||
tracersEvery = 1;
|
tracersEvery = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
|
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
|
||||||
initSpeed = 750;
|
initSpeed = 750;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 150Rnd_93x64_Mag: CA_Magazine {
|
class 150Rnd_93x64_Mag: CA_Magazine {
|
||||||
initSpeed = 860;
|
initSpeed = 860;
|
||||||
};
|
};
|
||||||
|
|
||||||
class 10Rnd_127x54_Mag: CA_Magazine {
|
class 10Rnd_127x54_Mag: CA_Magazine {
|
||||||
initSpeed = 300;
|
initSpeed = 300;
|
||||||
};
|
};
|
||||||
|
@ -15,81 +15,81 @@ class CfgWeapons {
|
|||||||
class Rifle_Base_F;
|
class Rifle_Base_F;
|
||||||
class Rifle_Long_Base_F;
|
class Rifle_Long_Base_F;
|
||||||
class MuzzleSlot;
|
class MuzzleSlot;
|
||||||
|
|
||||||
/* Long Rifles */
|
/* Long Rifles */
|
||||||
|
|
||||||
class GM6_base_F: Rifle_Long_Base_F {
|
class GM6_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class LRR_base_F: Rifle_Long_Base_F {
|
class LRR_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00020; // radians. Equal to 0.70 MOA.
|
dispersion = 0.00020; // radians. Equal to 0.70 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class DMR_06_base_F: Rifle_Long_Base_F {
|
class DMR_06_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
class FullAuto: Mode_FullAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class DMR_05_base_F: Rifle_Long_Base_F {
|
class DMR_05_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
class FullAuto: Mode_FullAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class DMR_04_base_F: Rifle_Long_Base_F {
|
class DMR_04_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class DMR_03_base_F: Rifle_Long_Base_F {
|
class DMR_03_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
|
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
|
||||||
};
|
};
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
class FullAuto: Mode_FullAuto {
|
||||||
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
|
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class DMR_02_base_F: Rifle_Long_Base_F {
|
class DMR_02_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.000262; // radians. Equal to 0.90 MOA.
|
dispersion = 0.000262; // radians. Equal to 0.90 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class DMR_01_base_F: Rifle_Long_Base_F {
|
class DMR_01_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class EBR_base_F: Rifle_Long_Base_F {
|
class EBR_base_F: Rifle_Long_Base_F {
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
class FullAuto: Mode_FullAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/* MX */
|
/* MX */
|
||||||
|
|
||||||
class arifle_MX_Base_F: Rifle_Base_F {};
|
class arifle_MX_Base_F: Rifle_Base_F {};
|
||||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||||
magazines[] = {
|
magazines[] = {
|
||||||
@ -158,7 +158,7 @@ class CfgWeapons {
|
|||||||
class Burst: Mode_Burst {
|
class Burst: Mode_Burst {
|
||||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||||
};
|
};
|
||||||
|
|
||||||
class FullAuto: Mode_FullAuto {
|
class FullAuto: Mode_FullAuto {
|
||||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||||
};
|
};
|
||||||
@ -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",
|
||||||
@ -511,7 +525,7 @@ class CfgWeapons {
|
|||||||
ACE_barrelTwist=234.95;
|
ACE_barrelTwist=234.95;
|
||||||
ACE_barrelLength=609.6;
|
ACE_barrelLength=609.6;
|
||||||
};
|
};
|
||||||
|
|
||||||
class HMG_127 : LMG_RCWS {
|
class HMG_127 : LMG_RCWS {
|
||||||
};
|
};
|
||||||
class HMG_01: HMG_127 {
|
class HMG_01: HMG_127 {
|
||||||
@ -521,7 +535,7 @@ class CfgWeapons {
|
|||||||
ACE_barrelTwist=304.8;
|
ACE_barrelTwist=304.8;
|
||||||
ACE_barrelLength=1143.0;
|
ACE_barrelLength=1143.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Silencers */
|
/* Silencers */
|
||||||
|
|
||||||
class ItemCore;
|
class ItemCore;
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -37,7 +37,7 @@ if (_state) then {
|
|||||||
[{
|
[{
|
||||||
params ["_args", "_pfID"];
|
params ["_args", "_pfID"];
|
||||||
_args params ["_unit", "_target", "_actionID"];
|
_args params ["_unit", "_target", "_actionID"];
|
||||||
|
|
||||||
if (_unit getVariable [QGVAR(isEscorting), false]) then {
|
if (_unit getVariable [QGVAR(isEscorting), false]) then {
|
||||||
if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then {
|
if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then {
|
||||||
_unit setVariable [QGVAR(isEscorting), false, true];
|
_unit setVariable [QGVAR(isEscorting), false, true];
|
||||||
|
@ -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 {
|
||||||
|
@ -15,7 +15,7 @@ class RscInGameUI {
|
|||||||
class RscUnitInfoTank: RscUnitInfo {
|
class RscUnitInfoTank: RscUnitInfo {
|
||||||
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent););
|
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent););
|
||||||
};
|
};
|
||||||
|
|
||||||
class RscUnitInfoAirNoWeapon: RscUnitInfo {
|
class RscUnitInfoAirNoWeapon: RscUnitInfo {
|
||||||
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
|
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
|
||||||
};
|
};
|
||||||
@ -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", {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user