mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into uiSettings
This commit is contained in:
commit
0dc1e37874
29
.github/CONTRIBUTING.md
vendored
Normal file
29
.github/CONTRIBUTING.md
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
# Reporting an issue
|
||||
|
||||
## Before reporting
|
||||
|
||||
If you have found an issue with ACE3 please make sure that ACE3 really is the cause of the problem. To do this try to reproduce the issue with using only `@CBA_A3` and `@ace` on a newly created mission.
|
||||
|
||||
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.
|
||||
|
||||
**Please note:**
|
||||
- It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.
|
||||
- If the error happens when using a <b>third-party mod</b> contact the author of the appropriate mod and report the issue there.
|
||||
|
||||
## Reporting the issue
|
||||
|
||||
Head over to the [ACE3 GitHub issue tracker](https://github.com/acemod/ACE3/issues) and press the [New issue](https://github.com/acemod/ACE3/issues/new) button in the top right corner. Add a descriptive title and complete the issue template.
|
||||
|
||||
A video of the issue might be helpful in resolving it faster.
|
||||
|
||||
# Feature Requests
|
||||
|
||||
## Background
|
||||
ACE2, AGM and CSE had a lot of features implemented or planned. All of them are or have been evaluated for inclusion in ACE3 itself, and we'd like to port the majority of them eventually. However, due to time constraints, we have managed to finish only a fraction of the job so far.
|
||||
|
||||
Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite.
|
||||
|
||||
## Requesting a feature
|
||||
In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
|
||||
|
||||
Following their approval, feature requests may be moved by moderators to a separate issue for further discussion.
|
23
.github/ISSUE_TEMPLATE.md
vendored
Normal file
23
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
**Arma 3 Version:** `x.xx` (stable / rc / dev)
|
||||
**CBA Version:** `2.x.x` (stable / dev + commit hash)
|
||||
**ACE3 Version:** `3.x.x` (stable / dev + commit hash)
|
||||
|
||||
**Mods:**
|
||||
- `@CBA_A3`
|
||||
- `@ace`
|
||||
|
||||
**Description:**
|
||||
- Add a detailed description of the error. This makes it easier for us to fix the issue.
|
||||
|
||||
**Steps to reproduce:**
|
||||
- Add the steps needed to reproduce the issue.
|
||||
|
||||
**Where did the issue occur?**
|
||||
- Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal
|
||||
|
||||
**Placed Modules:**
|
||||
- Add the list of modules you have placed on the map. Use 'None' if the error occurs without any modules.
|
||||
|
||||
**RPT log file:**
|
||||
- Add a link ([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.
|
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
**When merged this pull request will:**
|
||||
- Describe what this pull request will do
|
||||
- Each change in a separate line
|
||||
- Respect the [Development Guidelines](http://ace3mod.com/wiki/development/)
|
11
.travis.yml
11
.travis.yml
@ -1,6 +1,7 @@
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- master
|
||||
- release
|
||||
language: python
|
||||
python:
|
||||
- '3.4'
|
||||
@ -19,12 +20,10 @@ env:
|
||||
- secure: KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg=
|
||||
notifications:
|
||||
slack:
|
||||
secure: aWYF/YX7vxEdXJ5w1jhYJQ2TtTP2NRdnXzJDMYXTv2dlXYhO9qp2qjxDGW3dezuPY7B1mPBgebfSKRx3Robkt1rAfEwPWivOiEztL30rwzOy+5Q1wpORv1JkvTC/q2wqQzxQCU/FPVjD2GkF1wtq1Rnx3ESWD8gbvzYoMNdIw1g=
|
||||
on_success: change
|
||||
on_failure: always
|
||||
on_start: never
|
||||
rooms:
|
||||
secure: MvxmqL1NGwiGTVv6uIVTM7jeNLQH95KYtTgSWlXaSw4jdjnf4cmrb/ofHQ3FHhhNVdhRN6W8n0cJfTC3DBZ90bionVh+528qw2mDnDbKljVdIwmoFSexBcH7H1uTLF3gsEz0tbrHtLcnAyTMxdjsdIXDLZ5hwxABNmW5/03jOgs=
|
||||
- secure: byZMNBl8PMlgjT9NA1WmhgCdGfX4b3g1kA0vEiwfm+IFNlx7BiM4J/5rp6zV/jV470xl/epAejx2tsa5SdTyFbO87NH63ILJSt5QnjUZjRuGKSutFs9WE671DtZkPRSJXHS4N6x802PRkyBz/84/lsc34FWvHvjwOuYAtOcJRFk=
|
||||
- secure: V22TNaLWV+yUNWqR7c6HVvIxkRDz7Dyz9xqa43FY8iFgvNL4Q/X69h5DYHU/ILNFM00tx8OBjtPRbcjWQ+F6eY8Sje/A2axJAU+qNurAvoyiTahXUprdUUpPdkgXWuSRTZ9kALxOq5e11RC8XUietghoMcl8zPcqdrZCOOKgoEM=
|
||||
on_success: change
|
||||
email:
|
||||
on_success: never
|
||||
on_failure: change
|
||||
|
18
AUTHORS.txt
18
AUTHORS.txt
@ -1,4 +1,4 @@
|
||||
# ACE3 CONTRIBUTOR LIST
|
||||
# ACE3 CONTRIBUTOR LIST
|
||||
# If you contributed, but are not listed here, contact me:
|
||||
# koffeinflummi@gmail.com
|
||||
#
|
||||
@ -14,7 +14,8 @@ Garth "L-H" de Wet <garthofhearts@gmail.com>
|
||||
Giallustio
|
||||
Glowbal
|
||||
Janus
|
||||
jokoho482 <jokoho482@gmail.com>`
|
||||
jokoho482 <jokoho482@gmail.com>
|
||||
Jonpas <jonpas33@gmail.com>
|
||||
Kieran
|
||||
NouberNou
|
||||
PabstMirror <pabstmirror@gmail.com>
|
||||
@ -37,13 +38,16 @@ alef <alefor@gmail.com>
|
||||
Aleksey EpMAK Yermakov <epmak777@gmail.com>
|
||||
Alganthe <alganthe@live.fr>
|
||||
Anthariel <Contact@storm-simulation.com>
|
||||
Arkhir <wonsz666@gmail.com >
|
||||
Asgar Serran <piechottaf@web.de>
|
||||
BaerMitUmlaut
|
||||
Bamse <bamsis@gmail.com>
|
||||
Bla1337
|
||||
BlackPixxel <blackpixxel96@gmail.com>
|
||||
BlackQwar
|
||||
Brakoviejo
|
||||
Brisse <brisse@outlook.com>
|
||||
Brostrom.A | Evul <andreas.brostrom.ce@gmail.com>
|
||||
BullHorn <bullhorn7@gmail.com>
|
||||
Clon1998 <ps.patti1998@gmail.com>
|
||||
Codingboy
|
||||
@ -51,8 +55,9 @@ Coren <coren4@gmail.com>
|
||||
Crusty
|
||||
Dharma Bellamkonda <dharma.bellamkonda@gmail.com>
|
||||
Dimaslg <dimaslg@telecable.es>
|
||||
dixon13 <dixonbegay@gmail.com>
|
||||
Drill <drill87@gmail.com>
|
||||
Dudakov <dudakov.s@gmail.com>
|
||||
Dudakov aka [OMCB]Kaban <dudakov.s@gmail.com>
|
||||
Dslyecxi <dslyecxi@gmail.com>
|
||||
eRazeri
|
||||
evromalarkey <evromalarkey@gmail.com>
|
||||
@ -60,12 +65,15 @@ F3 Project <alanr@ferstaberinde.com>
|
||||
Falke75
|
||||
Ferenczi
|
||||
Ferenzi
|
||||
FFAAMOD <modffaa@gmail.com>
|
||||
Filip Basara <filip.basara93@googlemail.com>
|
||||
fr89k <kaschitoku@web.de>
|
||||
FreeZbe <freeseb@gmail.com>
|
||||
geraldbolso1899
|
||||
Ghost
|
||||
Gianmarco Varriale (TeamNuke) <admin@forhost.org>
|
||||
GieNkoV <gienkov.grzegorz@gmail.com>
|
||||
GitHawk <githawk@gmx.net>
|
||||
gpgpgpgp
|
||||
Grzegorz
|
||||
Hamburger SV
|
||||
@ -73,7 +81,6 @@ Harakhti <shadowdragonphd@gmail.com>
|
||||
havena <silveredenis@gmail.com>
|
||||
Hawkins
|
||||
Head <brobergsebastian@gmail.com>
|
||||
Jonpas <jonpas33@gmail.com>
|
||||
Karneck <dschultz26@hotmail.com>
|
||||
Kavinsky <nmunozfernandez@gmail.com>
|
||||
Kllrt <kllrtik@gmail.com>
|
||||
@ -101,12 +108,15 @@ Robert Boklahánics <bokirobi@gmail.com>
|
||||
ruPaladin <happyworm24@rambler.ru>
|
||||
simon84 <badguy360th@gmail.com>
|
||||
Sniperwolf572 <tenga6@gmail.com>
|
||||
System98
|
||||
SzwedzikPL <szwedzikpl@gmail.com>
|
||||
Tachi <zaveruha007@gmail.com>
|
||||
Toaster <jonathan.pereira@gmail.com>
|
||||
Tonic
|
||||
Tourorist <tourorist@gmail.com>
|
||||
Valentin Torikian <valentin.torikian@gmail.com>
|
||||
voiper
|
||||
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
||||
Winter <simon@agius-muscat.net>
|
||||
zGuba
|
||||
Grey-Soldierman <gungamer101@hotmail.com>
|
||||
|
@ -1,64 +0,0 @@
|
||||
# Reporting an issue
|
||||
|
||||
## Before reporting
|
||||
|
||||
If you have found an issue with ACE3 please make sure that ACE3 is really the cause of the problem. To do this try to reproduce the issue with using only `@CBA_A3` and `@ace` on a newly created mission.
|
||||
|
||||
Indicate if the issue appears on stable or development version. In case it is the development version, please also include the commit SHA-1 hash.
|
||||
|
||||
<div class="panel callout">
|
||||
<h5>Please note:</h5>
|
||||
<p>It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.</p>
|
||||
<p>If the error happens when using a <b>third-party mod</b> contact the author of the appropriate mod and report the issue there.</p>
|
||||
</div>
|
||||
|
||||
## Reporting the issue
|
||||
|
||||
Head over to the <a href="{{ site.githubUrl }}/issues" target="_blank">ACE3 GitHub issue tracker</a> and press the <a href="{{ site.githubUrl }}/issues/new" target="_blank">"New issue"</a> button in the top right corner. Add a descriptive title and copy the following issue template in to the text area:
|
||||
|
||||
```
|
||||
ACE3 Version: 3.x.x
|
||||
(indicate if stable or dev, if dev indicate the commit the version is based on)
|
||||
|
||||
**Mods:**
|
||||
* `@CBA_A3`
|
||||
* `@ace`
|
||||
|
||||
**Placed ACE3 Modules:**
|
||||
* *Add the list of modules you have placed on the map. Use 'None' if the error occurs without using any modules.*
|
||||
* You can also press the `Debug to` button in the ACE3 option menu (escape -> ACE3 options -> Debug to) and add a link (pastebin.com) to the results.
|
||||
|
||||
**Description:**
|
||||
* Add a detailed description of the error. This makes it easier for us to fix the issue.*
|
||||
|
||||
**Steps to reproduce:**
|
||||
* *Add the steps needed to reproduce the issue.*
|
||||
|
||||
**Where did the issue occur?**
|
||||
* A possible answer might be "Multiplayer", "Editor" or "Singleplayer"*
|
||||
|
||||
**RPT log file:**
|
||||
* Add a link (pastebin.com) to the client or server RPT file.*
|
||||
```
|
||||
|
||||
A video of the issue might be helpful in resolving it faster.
|
||||
|
||||
|
||||
Github uses <a href="http://daringfireball.net/projects/markdown/syntax" target="_blank">"Markdown"</a> to style the output. If you want to know more about it (e.g. how to <a href="https://help.github.com/articles/markdown-basics/#styling-text" target="_blank">turn text bold</a>, how to denote <a href="https://help.github.com/articles/markdown-basics/#inline-formats" target="_blank">code blocks</a> or <a href="https://help.github.com/articles/markdown-basics/#multiple-lines" target="_blank">inline code</a>) have a look at the <a href="https://help.github.com/articles/github-flavored-markdown/" target="_blank">GitHub markdown documentation</a>.
|
||||
|
||||
# Feature Requests
|
||||
|
||||
## Background
|
||||
ACE2, AGM and CSE had a lot of features implemented or planned. All of them are or have been evaluated for inclusion in ACE3 itself, and we'd like to port the majority of them eventually. However, due to time constraints, we have managed to finish only a fraction of the job so far.
|
||||
|
||||
Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite.
|
||||
|
||||
## Requesting a feature
|
||||
In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for <a href="{{ site.githubUrl }}/issues/414/" target="_blank">ACE 3 Feature requests</a>. 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.
|
||||
|
||||
# Regarding Pull Requests (PRs)
|
||||
- You want to help but don't know where to start ? Check the wiki entry for [setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html)
|
||||
- [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)
|
@ -1,13 +1,10 @@
|
||||
<p align="center">
|
||||
<img src="https://github.com/acemod/ACE3/blob/master/extras/assets/logo/black/ACE3-Logo.jpg" width="480">
|
||||
<img src="https://github.com/acemod/ACE3/raw/master/extras/assets/logo/black/ACE3-Logo.jpg" width="480">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/acemod/ACE3/releases">
|
||||
<img src="https://img.shields.io/badge/Version-3.3.2-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/releases/download/v3.3.2/ace3_3.3.2.zip">
|
||||
<img src="https://img.shields.io/badge/Download-65.7_MB-green.svg?style=flat-square" alt="ACE3 Download">
|
||||
<img src="https://img.shields.io/badge/Version-3.5.0-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/issues">
|
||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||
@ -64,7 +61,6 @@ The mod is **built modularly**, so almost any included PBO can be easily removed
|
||||
- Magazine repacking
|
||||
- Realistic weapon overheating mechanic
|
||||
- Combat deafness (temporary loss of hearing) simulation
|
||||
- Improved ragdoll physics
|
||||
- Improved interactions for AARs and ammo bearers
|
||||
- Adjustable sniper scopes
|
||||
- No idle animation with lowered weapon
|
||||
|
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,3 +1,10 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
|
||||
@ -9,11 +16,3 @@ class Extended_PostInit_EventHandlers {
|
||||
init = QUOTE( call COMPILE_FILE(XEH_postInit) );
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_FiredBIS_EventHandlers {
|
||||
class CAManBase {
|
||||
class ADDON {
|
||||
firedBIS = QUOTE(_this call FUNC(handleFired));
|
||||
};
|
||||
};
|
||||
};
|
14
addons/advanced_ballistics/XEH_PREP.hpp
Normal file
14
addons/advanced_ballistics/XEH_PREP.hpp
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
PREP(calculateAmmoTemperatureVelocityShift);
|
||||
PREP(calculateAtmosphericCorrection);
|
||||
PREP(calculateBarrelLengthVelocityShift);
|
||||
PREP(calculateRetardation);
|
||||
PREP(calculateStabilityFactor);
|
||||
PREP(diagnoseWeapons);
|
||||
PREP(displayProtractor);
|
||||
PREP(handleFired);
|
||||
PREP(initializeTerrainExtension);
|
||||
PREP(initModuleSettings);
|
||||
PREP(readAmmoDataFromConfig);
|
||||
PREP(readWeaponDataFromConfig);
|
||||
PREP(handleFirePFH);
|
@ -22,3 +22,19 @@ if (!GVAR(extensionAvailable)) exitWith {
|
||||
};
|
||||
*/
|
||||
[] call FUNC(initializeTerrainExtension);
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
["SettingsInitialized", {
|
||||
//If not enabled, dont't add PFEH
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
|
||||
// Register fire event handler
|
||||
["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
||||
["firedPlayerNonLocal", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
||||
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
call FUNC(diagnoseWeapons);
|
||||
#endif
|
@ -2,16 +2,6 @@
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(calculateAmmoTemperatureVelocityShift);
|
||||
PREP(calculateAtmosphericCorrection);
|
||||
PREP(calculateBarrelLengthVelocityShift);
|
||||
PREP(calculateRetardation);
|
||||
PREP(calculateStabilityFactor);
|
||||
PREP(displayProtractor);
|
||||
PREP(handleFired);
|
||||
PREP(initializeTerrainExtension);
|
||||
PREP(initModuleSettings);
|
||||
PREP(readAmmoDataFromConfig);
|
||||
PREP(readWeaponDataFromConfig);
|
||||
PREP(handleFirePFH);
|
||||
#include "XEH_PREP.hpp"
|
||||
|
||||
ADDON = true;
|
||||
|
3
addons/advanced_ballistics/XEH_preStart.sqf
Normal file
3
addons/advanced_ballistics/XEH_preStart.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "XEH_PREP.hpp"
|
@ -18,7 +18,8 @@ private ["_muzzleVelocityShiftTableUpperLimit", "_temperatureIndexFunction",
|
||||
"_temperatureIndexA", "_temperatureIndexB", "_interpolationRatio"];
|
||||
params["_muzzleVelocityShiftTable", "_temperature"];
|
||||
|
||||
// Check if muzzleVelocityShiftTable is Larger Than 11 Entrys
|
||||
// Check if muzzleVelocityShiftTable is Less Than 11 Entrys
|
||||
if ((count _muzzleVelocityShiftTable) < 11) exitWith {0};
|
||||
_muzzleVelocityShiftTableUpperLimit = _muzzleVelocityShiftTable select 10;
|
||||
if (isNil "_muzzleVelocityShiftTableUpperLimit") exitWith { 0 };
|
||||
|
||||
|
@ -22,6 +22,7 @@ private ["_muzzleVelocityTableCount", "_barrelLengthTableCount", "_lowerDataInde
|
||||
"_upperDataIndex", "_lowerBarrelLength", "_upperBarrelLength", "_lowerMuzzleVelocity",
|
||||
"_upperMuzzleVelocity", "_interpolationRatio"];
|
||||
params ["_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity"];
|
||||
TRACE_4("params",_barrelLength,_muzzleVelocityTable,_barrelLengthTable,_muzzleVelocity);
|
||||
|
||||
// If barrel length is not defined, then there is no point in calculating muzzle velocity
|
||||
if (_barrelLength == 0) exitWith { 0 };
|
||||
|
59
addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf
Normal file
59
addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Author: esteldunedain
|
||||
*
|
||||
* This function diagnoses all primary weapons to find cases in which the initial
|
||||
* velocity of shots with and without AB significantly mismatch
|
||||
*
|
||||
* Arguments:
|
||||
* None. Parameters inherited from EFUNC(common,firedEH)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
private _cfgWeapons = configFile >> "CfgWeapons";
|
||||
for "_i" from 0 to (count _cfgWeapons)-1 do {
|
||||
private _weaponConfig = _cfgWeapons select _i;
|
||||
if (isClass _weaponConfig) then {
|
||||
private _weapon = configName _weaponConfig;
|
||||
private _weaponType = getNumber (_weaponConfig >> "Type");
|
||||
if (_weaponType == 1) then {
|
||||
// The weapon is a primary weapon
|
||||
|
||||
private _weaponInitSpeed = getNumber (_weaponConfig >> "initSpeed");
|
||||
private _magazines = getArray (_weaponConfig >> "magazines");
|
||||
{
|
||||
private _magazine = _x;
|
||||
private _magazineInitSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed");
|
||||
private _ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
|
||||
// Vanilla initial speed --------------------------
|
||||
private _vanillaInitialSpeed = _magazineInitSpeed;
|
||||
if (_weaponInitSpeed > 0) then {
|
||||
_vanillaInitialSpeed = _weaponInitSpeed;
|
||||
} else {
|
||||
if (_weaponInitSpeed < 0) then {
|
||||
_vanillaInitialSpeed = _vanillaInitialSpeed * (-_weaponInitSpeed);
|
||||
};
|
||||
};
|
||||
// --------------------------------------------------
|
||||
|
||||
// AB initial speed --------------------------------
|
||||
// Get Weapon and Ammo Configurations
|
||||
private _AmmoCacheEntry = _ammo call FUNC(readAmmoDataFromConfig);
|
||||
private _WeaponCacheEntry = _weapon call FUNC(readWeaponDataFromConfig);
|
||||
_AmmoCacheEntry params ["_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable"];
|
||||
_WeaponCacheEntry params ["_barrelTwist", "_twistDirection", "_barrelLength"];
|
||||
|
||||
private _barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _vanillaInitialSpeed] call FUNC(calculateBarrelLengthVelocityShift);
|
||||
private _abInitialSpeed = _vanillaInitialSpeed + _barrelVelocityShift;
|
||||
// --------------------------------------------------
|
||||
diag_log text format ["ABDiagnose,%1,%2,%3,%4,%5,%6,%7",_weapon,_magazine,_ammo,_magazineInitSpeed,_weaponInitSpeed,_vanillaInitialSpeed,_abInitialSpeed];
|
||||
} forEach _magazines;
|
||||
};
|
||||
};
|
||||
};
|
@ -28,7 +28,7 @@ if (currentWeapon ACE_player != primaryWeapon ACE_player) exitWith { false };
|
||||
|
||||
2 cutText ["", "PLAIN"];
|
||||
EGVAR(weather,WindInfo) = false;
|
||||
0 cutText ["", "PLAIN"];
|
||||
(["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN"];
|
||||
GVAR(Protractor) = true;
|
||||
|
||||
[{
|
||||
@ -36,7 +36,7 @@ GVAR(Protractor) = true;
|
||||
if !(GVAR(Protractor) && !(weaponLowered ACE_player) && currentWeapon ACE_player == primaryWeapon ACE_player) exitWith {
|
||||
GVAR(Protractor) = false;
|
||||
1 cutText ["", "PLAIN"];
|
||||
[_idPFH] call cba_fnc_removePerFrameHandler;
|
||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
1 cutRsc ["RscProtractor", "PLAIN", 1, false];
|
||||
|
@ -12,11 +12,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_deleted";
|
||||
|
||||
_deleted = 0;
|
||||
|
||||
_aceTimeSecond = floor ACE_time;
|
||||
private _aceTimeSecond = floor ACE_time;
|
||||
|
||||
{
|
||||
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
|
||||
@ -26,19 +22,19 @@ _aceTimeSecond = floor ACE_time;
|
||||
|
||||
_bulletSpeed = vectorMagnitude _bulletVelocity;
|
||||
|
||||
if (!alive _bullet || _bulletSpeed < 100) exitWith {
|
||||
GVAR(allBullets) deleteAt (_forEachIndex - _deleted);
|
||||
_deleted = _deleted + 1;
|
||||
if (!alive _bullet || _bulletSpeed < 100) then {
|
||||
GVAR(allBullets) deleteAt (GVAR(allBullets) find _x);
|
||||
} else {
|
||||
_bulletPosition = getPosASL _bullet;
|
||||
|
||||
if (_bulletTraceVisible && _bulletSpeed > 500) then {
|
||||
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]);
|
||||
};
|
||||
|
||||
_bulletPosition = getPosASL _bullet;
|
||||
|
||||
if (_bulletTraceVisible && _bulletSpeed > 500) then {
|
||||
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]);
|
||||
} forEach GVAR(allBullets);
|
||||
nil
|
||||
} count +GVAR(allBullets);
|
||||
|
||||
if (GVAR(allBullets) isEqualTo []) then {
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
|
@ -1,16 +1,10 @@
|
||||
/*
|
||||
* Author: Glowbal, Ruthberg
|
||||
*
|
||||
* Handles advanced ballistics for (BulletBase) projectiles
|
||||
* Handles advanced ballistics for (BulletBase) projectiles. Called from the unified fired EH only for players.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: unit - Object the event handler is assigned to <OBJECT>
|
||||
* 1: weapon - Fired weapon <STRING>
|
||||
* 2: muzzle - Muzzle that was used <STRING>
|
||||
* 3: mode - Current mode of the fired weapon <STRING>
|
||||
* 4: ammo - Ammo used <STRING>
|
||||
* 5: magazine - magazine name which was used <STRING>
|
||||
* 6: projectile - Object of the projectile that was shot <OBJECT>
|
||||
* None. Parameters inherited from EFUNC(common,firedEH)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -19,20 +13,16 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Early Quiting
|
||||
if (!hasInterface) exitWith {};
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
//IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"];
|
||||
TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret);
|
||||
|
||||
// Parameterization
|
||||
private ["_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_stabilityFactor"];
|
||||
params ["_unit", "_weapon", "", "_mode", "_ammo", "_magazine", "_bullet"];
|
||||
private ["_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletLength", "_barrelTwist", "_stabilityFactor", "_aceTimeSecond", "_barrelVelocityShift", "_ammoTemperatureVelocityShift"];
|
||||
|
||||
_abort = false;
|
||||
|
||||
|
||||
if (!(_ammo isKindOf "BulletBase")) exitWith {};
|
||||
if (!alive _bullet) exitWith {};
|
||||
if (!([_unit] call EFUNC(common,isPlayer))) exitWith {};
|
||||
if (!alive _projectile) exitWith {};
|
||||
if (_unit distance ACE_player > GVAR(simulationRadius)) exitWith {};
|
||||
if (underwater _unit) exitWith {};
|
||||
if (!GVAR(simulateForEveryone) && !(local _unit)) then {
|
||||
@ -54,7 +44,7 @@ if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "CfgWeapons" >> _wea
|
||||
|
||||
if (_abort || !(GVAR(extensionAvailable))) exitWith {
|
||||
if (missionNamespace getVariable [QEGVAR(windDeflection,enabled), false]) then {
|
||||
EGVAR(windDeflection,trackedBullets) pushBack [_bullet, getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction")];
|
||||
EGVAR(windDeflection,trackedBullets) pushBack [_projectile, getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction")];
|
||||
};
|
||||
};
|
||||
|
||||
@ -72,27 +62,27 @@ _AmmoCacheEntry params ["_airFriction", "_caliber", "_bulletLength", "_bulletMas
|
||||
_WeaponCacheEntry params ["_barrelTwist", "_twistDirection", "_barrelLength"];
|
||||
|
||||
|
||||
_bulletVelocity = velocity _bullet;
|
||||
_bulletVelocity = velocity _projectile;
|
||||
_muzzleVelocity = vectorMagnitude _bulletVelocity;
|
||||
|
||||
_barrelVelocityShift = 0;
|
||||
if (GVAR(barrelLengthInfluenceEnabled)) then {
|
||||
_barrelVelocityShift = uiNamespace getVariable [format [QGVAR(%1_muzzleVelocityShift),_weapon],nil];
|
||||
if (isNil "_barrelVelocityShift") then {
|
||||
_barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
|
||||
uiNamespace setVariable [format [QGVAR(%1_muzzleVelocityShift),_weapon],_muzzleVelocityShift];
|
||||
};
|
||||
_barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
|
||||
};
|
||||
|
||||
_ammoTemperatureVelocityShift = 0;
|
||||
if (GVAR(ammoTemperatureEnabled)) then {
|
||||
_temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
|
||||
_temperatureVelocityShift = ([_ammoTempMuzzleVelocityShifts, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift));
|
||||
_ammoTemperatureVelocityShift = ([_ammoTempMuzzleVelocityShifts, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift));
|
||||
};
|
||||
|
||||
if (GVAR(ammoTemperatureEnabled) || GVAR(barrelLengthInfluenceEnabled)) then {
|
||||
_muzzleVelocityShift = _barrelVelocityShift + _ammoTemperatureVelocityShift;
|
||||
TRACE_4("shift",_muzzleVelocity,_muzzleVelocityShift, _barrelVelocityShift, _ammoTemperatureVelocityShift);
|
||||
if (_muzzleVelocityShift != 0) then {
|
||||
_muzzleVelocity = _muzzleVelocity + (_barrelVelocityShift + _ammoTemperatureVelocityShift);
|
||||
_muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift;
|
||||
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
|
||||
_bullet setVelocity _bulletVelocity;
|
||||
_projectile setVelocity _bulletVelocity;
|
||||
};
|
||||
};
|
||||
|
||||
@ -114,16 +104,16 @@ if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) th
|
||||
if (isNil "_temperature") then {
|
||||
_temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
|
||||
};
|
||||
_barometricPressure = ((getPosASL _bullet) select 2) call EFUNC(weather,calculateBarometricPressure);
|
||||
_barometricPressure = ((getPosASL _projectile) select 2) call EFUNC(weather,calculateBarometricPressure);
|
||||
_stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call FUNC(calculateStabilityFactor);
|
||||
};
|
||||
|
||||
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
||||
|
||||
_aceTimeSecond = floor ACE_time;
|
||||
"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _bullet, 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, ACE_time - _aceTimeSecond];
|
||||
|
||||
GVAR(allBullets) pushBack [_bullet, _caliber, _bulletTraceVisible, GVAR(currentbulletID)];
|
||||
GVAR(allBullets) pushBack [_projectile, _caliber, _bulletTraceVisible, GVAR(currentbulletID)];
|
||||
|
||||
if (isNil QGVAR(BulletPFH)) then {
|
||||
GVAR(BulletPFH) = [FUNC(handleFirePFH), GVAR(simulationInterval), []] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -40,7 +40,7 @@ GVAR(currentGrid) = 0;
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(ACE_time - _initStartTime)];
|
||||
#endif
|
||||
[_idPFH] call cba_fnc_removePerFrameHandler;
|
||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
for "_i" from 1 to 50 do {
|
||||
|
@ -24,6 +24,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
TRACE_1("Reading Ammo Config",_this);
|
||||
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
||||
_ammoConfig = configFile >> "CfgAmmo" >> _this;
|
||||
|
||||
@ -49,6 +50,42 @@ _ammoTempMuzzleVelocityShifts = getArray(_ammoConfig >> "ACE_ammoTempMuzzleVeloc
|
||||
_muzzleVelocityTable = getArray(_ammoConfig >> "ACE_muzzleVelocities");
|
||||
_barrelLengthTable = getArray(_ammoConfig >> "ACE_barrelLengths");
|
||||
|
||||
//Handle subsonic ammo that would have a huge muzzle velocity shift (when ballistic configs not explicitly defined)
|
||||
private _typicalSpeed = getNumber (_ammoConfig >> "typicalSpeed");
|
||||
if ((_typicalSpeed > 0) && {_typicalSpeed < 360}) then {
|
||||
private _inheritedBarrelConfig = (!(_muzzleVelocityTable isEqualTo [])) && {(configProperties [_ammoConfig, "(configName _x) == 'ACE_muzzleVelocities'", false]) isEqualTo []};
|
||||
private _inheritedTempConfig = (!(_ammoTempMuzzleVelocityShifts isEqualTo [])) && {(configProperties [_ammoConfig, "(configName _x) == 'ACE_ammoTempMuzzleVelocityShifts'", false]) isEqualTo []};
|
||||
TRACE_3("subsonic",_typicalSpeed,_inheritedBarrelConfig,_inheritedTempConfig);
|
||||
if (_inheritedBarrelConfig || _inheritedTempConfig) then {
|
||||
private _parentConfig = inheritsFrom _ammoConfig;
|
||||
private _parentSpeed = getNumber (_parentConfig >> "typicalSpeed");
|
||||
ACE_LOGWARNING_4("Subsonic Ammo %1 (%2 m/s) missing `ACE_muzzleVelocities` or `ACE_ammoTempMuzzleVelocityShifts` configs, attempting to use parent %3 (%4m/s)",_this,_typicalSpeed,configName _parentConfig, _parentSpeed);
|
||||
if (_parentSpeed <= 0) exitWith {//Handle weird or null parent
|
||||
_muzzleVelocityTable = [];
|
||||
_ammoTempMuzzleVelocityShifts = [];
|
||||
};
|
||||
private _linearMuliplier = _typicalSpeed / _parentSpeed;
|
||||
if (_inheritedBarrelConfig) then {
|
||||
if (!((configProperties [_parentConfig, "(configName _x) == 'ACE_muzzleVelocities'", false]) isEqualTo [])) then {
|
||||
TRACE_2("Parent Has Defined Barrel MV",_linearMuliplier,_muzzleVelocityTable);
|
||||
{ _muzzleVelocityTable set [_forEachIndex, (_x * _linearMuliplier)]; } forEach _muzzleVelocityTable;
|
||||
} else {
|
||||
TRACE_2("Parent DOES NOT Have Defined Barrel MV",_linearMuliplier,_muzzleVelocityTable);
|
||||
_muzzleVelocityTable = [];
|
||||
};
|
||||
};
|
||||
if (_inheritedTempConfig) then {
|
||||
if (!((configProperties [_parentConfig, "(configName _x) == 'ACE_ammoTempMuzzleVelocityShifts'", false]) isEqualTo [])) then {
|
||||
TRACE_2("Parent Has Defined Ammo Temp Shifts",_linearMuliplier,_muzzleVelocityTable);
|
||||
{ _ammoTempMuzzleVelocityShifts set [_forEachIndex, (_x * _linearMuliplier)]; } forEach _ammoTempMuzzleVelocityShifts;
|
||||
} else {
|
||||
TRACE_2("Parent DOES NOT Have Defined Ammo Temp Shifts",_linearMuliplier,_muzzleVelocityTable);
|
||||
_ammoTempMuzzleVelocityShifts = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
|
||||
|
||||
uiNamespace setVariable [format[QGVAR(%1), _this], _result];
|
||||
|
@ -20,9 +20,11 @@ _weaponConfig = (configFile >> "CfgWeapons" >> _this);
|
||||
|
||||
_barrelTwist = getNumber(_weaponConfig >> "ACE_barrelTwist");
|
||||
_twistDirection = 1;
|
||||
_twistDirection = getNumber(_weaponConfig >> "ACE_twistDirection");
|
||||
if !(_twistDirection in [-1, 0, 1]) then {
|
||||
_twistDirection = 1;
|
||||
if (isNumber (_weaponConfig >> "ACE_twistDirection")) then {
|
||||
_twistDirection = getNumber (_weaponConfig >> "ACE_twistDirection");
|
||||
if !(_twistDirection in [-1, 0, 1]) then {
|
||||
_twistDirection = 1;
|
||||
};
|
||||
};
|
||||
|
||||
_barrelLength = getNumber(_weaponConfig >> "ACE_barrelLength");
|
||||
|
@ -1,6 +1,11 @@
|
||||
#define COMPONENT advanced_ballistics
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_ADVANCEDBALLISTICS
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -10,7 +10,7 @@
|
||||
<Spanish>Mostrar información del viento</Spanish>
|
||||
<German>Windinformationen anzeigen</German>
|
||||
<Hungarian>Széladatok mutatása</Hungarian>
|
||||
<Czech>Zobrazit informace o větru</Czech>
|
||||
<Czech>Zobrazit údaje o větru</Czech>
|
||||
<Portuguese>Mostrar Informação do Vento</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_ProtractorKey">
|
||||
@ -35,6 +35,7 @@
|
||||
<French>Balistique avancée</French>
|
||||
<Hungarian>Fejlett ballisztika</Hungarian>
|
||||
<Russian>Продвинутая баллистика</Russian>
|
||||
<Italian>Balistica Avanzata</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
|
||||
<English>Advanced Ballistics</English>
|
||||
@ -46,6 +47,7 @@
|
||||
<French>Balistique avancée</French>
|
||||
<Hungarian>Fejlett ballisztika</Hungarian>
|
||||
<Russian>Продвинутая баллистика</Russian>
|
||||
<Italian>Balistica Avanzata</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
|
||||
<English>Enables advanced ballistics</English>
|
||||
@ -57,6 +59,7 @@
|
||||
<French>Activer la balistique avancée</French>
|
||||
<Hungarian>Engedélyezi a fejlett ballisztikát</Hungarian>
|
||||
<Russian>Включает продвинутую баллистику</Russian>
|
||||
<Italian>Abilita Balistica Avanzata</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName">
|
||||
<English>Enabled For Snipers</English>
|
||||
@ -68,17 +71,19 @@
|
||||
<French>Activer pour les snipers</French>
|
||||
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
|
||||
<Russian>Включена для снайперов</Russian>
|
||||
<Italian>Abilita per Tiratori Scelti</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description">
|
||||
<English>Enables advanced ballistics for non local snipers (when using high power optics)</English>
|
||||
<Spanish>Activa la balística avanzada para francotiradores no locales (cuando se usa una mira telescópica)</Spanish>
|
||||
<Polish>Aktywuje zaawansowaną balistykę dla nielokalnych snajperów (kiedy używają optyki)</Polish>
|
||||
<German>Aktiviert die erweiterte Ballistik für nicht lokale Scharfschützen (bei Benutzung von Optiken mit starker Vergrößerung)</German>
|
||||
<Czech>Aktivuje pokročilou balistiku pro nelokální odstřelovače (když používá výkonnou optiku)</Czech>
|
||||
<Czech>Aktivuje pokročilou balistiku pro nelokální odstřelovače (při použití optiky)</Czech>
|
||||
<Portuguese>Ativa balística avançada para caçadores não locais (quando usando miras telescópicas)</Portuguese>
|
||||
<French>Active la balistique avancée pour les snipers non locaux (en utilisant les optiques avancées)</French>
|
||||
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi mesterlövészeknek (nagy-teljesítményű optika használatakor)</Hungarian>
|
||||
<Russian>Включает продвинутую баллистику для нелокальных снайперов (при использовании мощной оптики)</Russian>
|
||||
<Italian>Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName">
|
||||
<English>Enabled For Group Members</English>
|
||||
@ -87,9 +92,10 @@
|
||||
<German>Für Gruppenmitglieder aktiviert</German>
|
||||
<Czech>Povoleno pro členy skupiny</Czech>
|
||||
<Portuguese>Ativada para membros do grupo</Portuguese>
|
||||
<French>Activer pour les membres groupés</French>
|
||||
<French>Activer pour les membres du groupe</French>
|
||||
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
||||
<Russian>Включена для группы</Russian>
|
||||
<Italian>Abilita per Membri del Gruppo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description">
|
||||
<English>Enables advanced ballistics for non local group members</English>
|
||||
@ -98,9 +104,10 @@
|
||||
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
|
||||
<Czech>Aktivuje pokročilou balistiku pro nelokální členy skupiny</Czech>
|
||||
<Portuguese>Ativa balística avançada para membros de grupo não locais</Portuguese>
|
||||
<French>Active la balistique avancée pour les membres groupés non locaux</French>
|
||||
<French>Active la balistique avancée pour les membres du groupe non locaux</French>
|
||||
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
|
||||
<Russian>Включает продвинутую баллистику для нелокальных членов группы</Russian>
|
||||
<Italian>Abilita Balistica Avanzata per Membri non locali del Gruppo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName">
|
||||
<English>Enabled For Everyone</English>
|
||||
@ -112,17 +119,19 @@
|
||||
<French>Activer pour tout le monde</French>
|
||||
<Hungarian>Mindenkinek engedélyezve</Hungarian>
|
||||
<Russian>Включена для всех</Russian>
|
||||
<Italian>Abilita per tutti</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_Description">
|
||||
<English>Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)</English>
|
||||
<Spanish>Activada la balística avanzada para todos los jugadores no locales (activarlo puede degradar el rendimiento durante grandes tiroteos en multijugador).</Spanish>
|
||||
<Polish>Aktywuje zaawansowaną balistykę dla wszystkich nielokalnych graczy (aktywacja tej opcji może spodowować spory spadek wydajności podczas ciężkiej wymiany ognia)</Polish>
|
||||
<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>Aktivovat pokročilou balistiku pro všechny nelokální hráče (aktivace této možnosti způsobuje pokles snímu za sekundu během těžké 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>
|
||||
<French>Active la balistique avancé pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
||||
<French>Active la balistique avancée pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
||||
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
|
||||
<Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian>
|
||||
<Italian>Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe degradare le prestazioni durante scontri intensi in multiplayer)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName">
|
||||
<English>Always Enabled For Group Members</English>
|
||||
@ -131,9 +140,10 @@
|
||||
<German>Für Gruppenmitglieder immer aktiviert</German>
|
||||
<Czech>Vždy povoleno pro členy skupiny</Czech>
|
||||
<Portuguese>Sempre ativada para membros do grupo</Portuguese>
|
||||
<French>Toujours activer pour les membres groupés</French>
|
||||
<French>Toujours activer pour les membres du groupe</French>
|
||||
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
|
||||
<Russian>Всегда включена для членов группы</Russian>
|
||||
<Italian>Sempre abilitato per Membri del Gruppo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description">
|
||||
<English>Always enables advanced ballistics when a group member fires</English>
|
||||
@ -145,6 +155,7 @@
|
||||
<French>Active tout le temps la balistique avancée quand un membre du groupe ouvre le feu</French>
|
||||
<Hungarian>Mindig engedélyezi a fejlett ballisztikát, ha egy csoporttag tüzel</Hungarian>
|
||||
<Russian>Всегда включает продвинутую баллистику когда стреляет член группы</Russian>
|
||||
<Italian>Abilita sempre Balistica Avanzata quando un Membro del Gruppo spara</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName">
|
||||
<English>Disabled In FullAuto Mode</English>
|
||||
@ -156,6 +167,7 @@
|
||||
<French>Désactiver en mode rafale libre</French>
|
||||
<Hungarian>Automata módban letiltva</Hungarian>
|
||||
<Russian>Выкл. для автомат. режима</Russian>
|
||||
<Italian>Disabilita in modalità di fuoco automatico</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description">
|
||||
<English>Disables the advanced ballistics during full auto fire</English>
|
||||
@ -167,6 +179,7 @@
|
||||
<French>Désactive la balistique avancée pour les tirs en rafale libre</French>
|
||||
<Hungarian>Letiltja a fejlett ballisztikát automata tüzelés folyamán</Hungarian>
|
||||
<Russian>Выключает продвинутую баллистику при стрельбе в полностью автоматическом режиме</Russian>
|
||||
<Italian>Disabilita Balistica Avanzata durante fuoco automatico</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
|
||||
<English>Enable Ammo Temperature Simulation</English>
|
||||
@ -178,6 +191,7 @@
|
||||
<French>Activer la simulation de la température</French>
|
||||
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
|
||||
<Russian>Симуляция температуры для боеприпасов</Russian>
|
||||
<Italian>Abilita simulazione della temperatura delle munizioni</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description">
|
||||
<English>Muzzle velocity varies with ammo temperature</English>
|
||||
@ -189,6 +203,7 @@
|
||||
<French>La température de la munition influe sur la vélocité intiale</French>
|
||||
<Hungarian>A kezdősebesség a lőszer hőmérsékletétől függően változó</Hungarian>
|
||||
<Russian>Начальная скорость пули зависит от температуры</Russian>
|
||||
<Italian>Velocità alla volata varia con la temperatura delle munizioni</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName">
|
||||
<English>Enable Barrel Length Simulation</English>
|
||||
@ -200,6 +215,7 @@
|
||||
<French>Activer la simulation de la longueur de canon</French>
|
||||
<Hungarian>Csőhossz-szimuláció engedélyezése</Hungarian>
|
||||
<Russian>Симуляция длины ствола</Russian>
|
||||
<Italian>Abilita simulazione della lunghezza della canna</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description">
|
||||
<English>Muzzle velocity varies with barrel length</English>
|
||||
@ -211,6 +227,7 @@
|
||||
<French>La longueur du canon influe sur la vélocité initale</French>
|
||||
<Hungarian>A kezdősebesség a cső hosszától függően változó</Hungarian>
|
||||
<Russian>Начальная скорость пули зависит от длины ствола</Russian>
|
||||
<Italian>Velocità alla volata varia con la lunghezza della canna</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName">
|
||||
<English>Enable Bullet Trace Effect</English>
|
||||
@ -222,6 +239,7 @@
|
||||
<French>Activer l'effet traçante</French>
|
||||
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
||||
<Russian>Следы пуль</Russian>
|
||||
<Italian>Abilita effetto di tracciatura dei proiettili</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_Description">
|
||||
<English>Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)</English>
|
||||
@ -233,6 +251,7 @@
|
||||
<French>Active une tracante pour les munitions de gros calibre (seulement visible en utilisant des optiques avancées)</French>
|
||||
<Hungarian>Engedélyezi a nagy kaliberű lövedékek nyomának vizuális követését (csak nagy teljesítményű optikán keresztül látható)</Hungarian>
|
||||
<Russian>Включает эффект следов пуль для больших калибров (видны только через мощную оптику)</Russian>
|
||||
<Italian>Abilita effetto di tracciatura per proiettili di alto calibro (visibile solo attraverso ottiche ad alto potenziale)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
|
||||
<English>Simulation Interval</English>
|
||||
@ -244,6 +263,7 @@
|
||||
<French>Intervalle de simulation</French>
|
||||
<Hungarian>Szimuláció intervalluma</Hungarian>
|
||||
<Russian>Интервал симуляции</Russian>
|
||||
<Italian>Intervallo Simulazione</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description">
|
||||
<English>Defines the interval between every calculation step</English>
|
||||
@ -252,9 +272,10 @@
|
||||
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
|
||||
<Czech>Určuje interval mezi každým výpočtem</Czech>
|
||||
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
|
||||
<French>Défini un intervalle de calcul entre deux simulations</French>
|
||||
<French>Définit un intervalle de calcul entre deux simulations</French>
|
||||
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
|
||||
<Russian>Определяет временной интервал между вычислениями</Russian>
|
||||
<Italian>Definisce l'intervallo tra ogni step di calcolo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
|
||||
<English>Simulation Radius</English>
|
||||
@ -266,6 +287,7 @@
|
||||
<French>Rayon de simulation</French>
|
||||
<Hungarian>Szimuláció hatóköre</Hungarian>
|
||||
<Russian>Радиус симуляции</Russian>
|
||||
<Italian>Raggio Simulazione</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_Description">
|
||||
<English>Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles</English>
|
||||
@ -274,19 +296,22 @@
|
||||
<German>Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird</German>
|
||||
<Czech>Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil</Czech>
|
||||
<Portuguese>Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis</Portuguese>
|
||||
<French>Défini le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
|
||||
<French>Définit le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
|
||||
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
|
||||
<Russian>Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам</Russian>
|
||||
<Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_Description">
|
||||
<English>This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired.</English>
|
||||
<German>Dieses Modul aktiviert die Erweiterte Ballisitk. Die Flugbahn eines Geschosses wird nun von Einflüssen wie z.B Temperatur, Luftdruck, Luftfeuchtigkeit, Schwerkraft, Geschossart sowie der Waffe aus dem es gefeuert wird, beeinflusst.</German>
|
||||
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
|
||||
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
||||
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
||||
<French>Ce module active la simulation de balistique avancée - ie les projectiles sont influencé par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelles ils sont tirés</French>
|
||||
<French>Ce module active la simulation de balistique avancée - ie les projectiles sont influencés par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelle ils sont tirés.</French>
|
||||
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
||||
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
|
||||
<Spanish>Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.</Spanish>
|
||||
<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>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,6 +1,11 @@
|
||||
#define COMPONENT ai
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_AI
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -1,6 +1,11 @@
|
||||
#define COMPONENT aircraft
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_AIRCRAFT
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Aircraft">
|
||||
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
|
||||
@ -7,7 +7,7 @@
|
||||
<Spanish>Ráfaga</Spanish>
|
||||
<Polish>Seria</Polish>
|
||||
<Czech>Dávka</Czech>
|
||||
<French>Contre mesure</French>
|
||||
<French>Contre mesures</French>
|
||||
<Russian>Очередь</Russian>
|
||||
<Hungarian>Sorozat</Hungarian>
|
||||
<Portuguese>Rajada</Portuguese>
|
||||
@ -29,7 +29,7 @@
|
||||
<English>Open Cargo Door</English>
|
||||
<German>Laderampe öffnen</German>
|
||||
<Spanish>Abrir compuerta de carga</Spanish>
|
||||
<French>Ourvir la rampe</French>
|
||||
<French>Ouvrir la rampe</French>
|
||||
<Polish>Otwórz drzwi ładowni</Polish>
|
||||
<Czech>Otevřít nákladní prostor</Czech>
|
||||
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
||||
|
@ -1,7 +0,0 @@
|
||||
/*
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
||||
*/
|
BIN
addons/apl/ace_entrchtool.p3d
Normal file
BIN
addons/apl/ace_entrchtool.p3d
Normal file
Binary file not shown.
BIN
addons/apl/ace_envelope_big.p3d
Normal file
BIN
addons/apl/ace_envelope_big.p3d
Normal file
Binary file not shown.
BIN
addons/apl/ace_envelope_big4.p3d
Normal file
BIN
addons/apl/ace_envelope_big4.p3d
Normal file
Binary file not shown.
BIN
addons/apl/ace_envelope_big4_nogeo.p3d
Normal file
BIN
addons/apl/ace_envelope_big4_nogeo.p3d
Normal file
Binary file not shown.
BIN
addons/apl/ace_envelope_small.p3d
Normal file
BIN
addons/apl/ace_envelope_small.p3d
Normal file
Binary file not shown.
BIN
addons/apl/ace_envelope_small4.p3d
Normal file
BIN
addons/apl/ace_envelope_small4.p3d
Normal file
Binary file not shown.
BIN
addons/apl/ace_envelope_small4_nogeo.p3d
Normal file
BIN
addons/apl/ace_envelope_small4_nogeo.p3d
Normal file
Binary file not shown.
@ -11,5 +11,3 @@ class CfgPatches {
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
|
75
addons/apl/data/entrchtool.rvmat
Normal file
75
addons/apl/data/entrchtool.rvmat
Normal file
@ -0,0 +1,75 @@
|
||||
ambient[]={1,1,1,1};
|
||||
diffuse[]={2,2,2,0};
|
||||
forcedDiffuse[]={0,0,0,0};
|
||||
emmisive[]={0,0,0,1};
|
||||
specular[]={0.054000214,0.054000214,0.058000047,0};
|
||||
specularPower=50.700001;
|
||||
PixelShaderID="Super";
|
||||
VertexShaderID="Super";
|
||||
class Stage1
|
||||
{
|
||||
texture="z\ace\addons\apl\data\entrchtool_nohq.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage2
|
||||
{
|
||||
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={4,0,0};
|
||||
up[]={0,6,0};
|
||||
dir[]={0,0,2};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
Filter="Anizotropic";
|
||||
};
|
||||
class Stage3
|
||||
{
|
||||
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
Filter="Anizotropic";
|
||||
};
|
||||
class Stage4
|
||||
{
|
||||
texture="z\ace\addons\apl\data\entrchtool_as.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage5
|
||||
{
|
||||
texture="z\ace\addons\apl\data\entrchtool_smdi.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage6
|
||||
{
|
||||
texture="a3\data_f\env_co.paa";
|
||||
uvSource="none";
|
||||
};
|
BIN
addons/apl/data/entrchtool_as.paa
Normal file
BIN
addons/apl/data/entrchtool_as.paa
Normal file
Binary file not shown.
BIN
addons/apl/data/entrchtool_co.paa
Normal file
BIN
addons/apl/data/entrchtool_co.paa
Normal file
Binary file not shown.
BIN
addons/apl/data/entrchtool_nohq.paa
Normal file
BIN
addons/apl/data/entrchtool_nohq.paa
Normal file
Binary file not shown.
BIN
addons/apl/data/entrchtool_smdi.paa
Normal file
BIN
addons/apl/data/entrchtool_smdi.paa
Normal file
Binary file not shown.
BIN
addons/apl/data/zr_plevel_co.paa
Normal file
BIN
addons/apl/data/zr_plevel_co.paa
Normal file
Binary file not shown.
@ -1,6 +1,11 @@
|
||||
#define COMPONENT APL
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_APL
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -1,3 +1,10 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
|
||||
|
67
addons/atragmx/XEH_PREP.hpp
Normal file
67
addons/atragmx/XEH_PREP.hpp
Normal file
@ -0,0 +1,67 @@
|
||||
|
||||
PREP(add_new_gun);
|
||||
PREP(calculate_range_card);
|
||||
PREP(calculate_solution);
|
||||
PREP(calculate_target_range_assist);
|
||||
PREP(calculate_target_solution);
|
||||
PREP(calculate_target_speed_assist);
|
||||
PREP(can_show);
|
||||
PREP(change_gun);
|
||||
PREP(change_target_slot);
|
||||
PREP(clear_user_data);
|
||||
PREP(create_dialog);
|
||||
PREP(cycle_gun_list);
|
||||
PREP(cycle_image_size_units);
|
||||
PREP(cycle_num_ticks_units);
|
||||
PREP(cycle_range_card_columns);
|
||||
PREP(cycle_scope_unit);
|
||||
PREP(cycle_target_size_units);
|
||||
PREP(cycle_target_speed_direction);
|
||||
PREP(delete_gun);
|
||||
PREP(init);
|
||||
PREP(parse_input);
|
||||
PREP(reset_relative_click_memory);
|
||||
PREP(restore_atmo_default);
|
||||
PREP(restore_user_data);
|
||||
PREP(save_gun);
|
||||
PREP(show_add_new_gun);
|
||||
PREP(show_atmo_env_data);
|
||||
PREP(show_gun_ammo_data);
|
||||
PREP(show_gun_list);
|
||||
PREP(show_main_page);
|
||||
PREP(show_range_card);
|
||||
PREP(show_range_card_setup);
|
||||
PREP(show_solution_setup);
|
||||
PREP(show_target_data);
|
||||
PREP(show_target_range_assist);
|
||||
PREP(show_target_speed_assist);
|
||||
PREP(show_target_speed_assist_timer);
|
||||
PREP(sord);
|
||||
PREP(store_user_data);
|
||||
PREP(target_speed_assist_timer);
|
||||
PREP(toggle_atmo_env_data);
|
||||
PREP(toggle_gun_ammo_data);
|
||||
PREP(toggle_gun_list);
|
||||
PREP(toggle_range_card);
|
||||
PREP(toggle_range_card_setup);
|
||||
PREP(toggle_solution_setup);
|
||||
PREP(toggle_target_data);
|
||||
PREP(toggle_target_range_assist);
|
||||
PREP(toggle_target_speed_assist);
|
||||
PREP(update_atmosphere);
|
||||
PREP(update_atmo_env_data);
|
||||
PREP(update_atmo_selection);
|
||||
PREP(update_gun);
|
||||
PREP(update_gun_ammo_data);
|
||||
PREP(update_inclination_angle);
|
||||
PREP(update_range_card);
|
||||
PREP(update_relative_click_memory);
|
||||
PREP(update_result);
|
||||
PREP(update_scope_unit);
|
||||
PREP(update_solution_setup);
|
||||
PREP(update_target);
|
||||
PREP(update_target_data);
|
||||
PREP(update_target_selection);
|
||||
PREP(update_unit_selection);
|
||||
PREP(update_zero_range);
|
||||
PREP(on_close_dialog);
|
@ -2,71 +2,6 @@
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(add_new_gun);
|
||||
PREP(calculate_range_card);
|
||||
PREP(calculate_solution);
|
||||
PREP(calculate_target_range_assist);
|
||||
PREP(calculate_target_solution);
|
||||
PREP(calculate_target_speed_assist);
|
||||
PREP(can_show);
|
||||
PREP(change_gun);
|
||||
PREP(change_target_slot);
|
||||
PREP(clear_user_data);
|
||||
PREP(create_dialog);
|
||||
PREP(cycle_gun_list);
|
||||
PREP(cycle_image_size_units);
|
||||
PREP(cycle_num_ticks_units);
|
||||
PREP(cycle_range_card_columns);
|
||||
PREP(cycle_scope_unit);
|
||||
PREP(cycle_target_size_units);
|
||||
PREP(cycle_target_speed_direction);
|
||||
PREP(delete_gun);
|
||||
PREP(init);
|
||||
PREP(parse_input);
|
||||
PREP(reset_relative_click_memory);
|
||||
PREP(restore_atmo_default);
|
||||
PREP(restore_user_data);
|
||||
PREP(save_gun);
|
||||
PREP(show_add_new_gun);
|
||||
PREP(show_atmo_env_data);
|
||||
PREP(show_gun_ammo_data);
|
||||
PREP(show_gun_list);
|
||||
PREP(show_main_page);
|
||||
PREP(show_range_card);
|
||||
PREP(show_range_card_setup);
|
||||
PREP(show_solution_setup);
|
||||
PREP(show_target_data);
|
||||
PREP(show_target_range_assist);
|
||||
PREP(show_target_speed_assist);
|
||||
PREP(show_target_speed_assist_timer);
|
||||
PREP(sord);
|
||||
PREP(store_user_data);
|
||||
PREP(target_speed_assist_timer);
|
||||
PREP(toggle_atmo_env_data);
|
||||
PREP(toggle_gun_ammo_data);
|
||||
PREP(toggle_gun_list);
|
||||
PREP(toggle_range_card);
|
||||
PREP(toggle_range_card_setup);
|
||||
PREP(toggle_solution_setup);
|
||||
PREP(toggle_target_data);
|
||||
PREP(toggle_target_range_assist);
|
||||
PREP(toggle_target_speed_assist);
|
||||
PREP(update_atmosphere);
|
||||
PREP(update_atmo_env_data);
|
||||
PREP(update_atmo_selection);
|
||||
PREP(update_gun);
|
||||
PREP(update_gun_ammo_data);
|
||||
PREP(update_inclination_angle);
|
||||
PREP(update_range_card);
|
||||
PREP(update_relative_click_memory);
|
||||
PREP(update_result);
|
||||
PREP(update_scope_unit);
|
||||
PREP(update_solution_setup);
|
||||
PREP(update_target);
|
||||
PREP(update_target_data);
|
||||
PREP(update_target_selection);
|
||||
PREP(update_unit_selection);
|
||||
PREP(update_zero_range);
|
||||
PREP(on_close_dialog);
|
||||
#include "XEH_PREP.hpp"
|
||||
|
||||
ADDON = true;
|
||||
|
3
addons/atragmx/XEH_preStart.sqf
Normal file
3
addons/atragmx/XEH_preStart.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "XEH_PREP.hpp"
|
@ -54,7 +54,7 @@ GVAR(active) = true;
|
||||
|
||||
GVAR(DialogPFH) = [{
|
||||
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))];
|
||||
}, 60, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
uiNamespace setVariable ['ATragMX_Display', nil];
|
||||
GVAR(active) = false;
|
||||
[GVAR(DialogPFH)] call cba_fnc_removePerFrameHandler;
|
||||
[GVAR(DialogPFH)] call CBA_fnc_removePerFrameHandler;
|
@ -37,7 +37,7 @@ if !(ctrlVisible 9000) then {
|
||||
false call FUNC(show_target_speed_assist_timer);
|
||||
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)];
|
||||
|
@ -1,6 +1,11 @@
|
||||
#define COMPONENT atragmx
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_ATRAGMX
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -1,3 +1,10 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
|
@ -61,7 +61,6 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 5;
|
||||
icon = PATHTOF(UI\attach_ca.paa);
|
||||
// hotkey = "T";
|
||||
};
|
||||
class GVAR(Detach) {
|
||||
displayName = CSTRING(Detach);
|
||||
@ -71,7 +70,6 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 5;
|
||||
icon = PATHTOF(UI\detach_ca.paa);
|
||||
hotkey = "T";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
10
addons/attach/XEH_PREP.hpp
Normal file
10
addons/attach/XEH_PREP.hpp
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
PREP(attach);
|
||||
PREP(canAttach);
|
||||
PREP(canDetach);
|
||||
PREP(detach);
|
||||
PREP(getChildrenAttachActions);
|
||||
PREP(handleGetIn);
|
||||
PREP(handleGetOut);
|
||||
PREP(handleKilled);
|
||||
PREP(placeApprove);
|
@ -2,14 +2,6 @@
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(attach);
|
||||
PREP(canAttach);
|
||||
PREP(canDetach);
|
||||
PREP(detach);
|
||||
PREP(getChildrenAttachActions);
|
||||
PREP(handleGetIn);
|
||||
PREP(handleGetOut);
|
||||
PREP(handleKilled);
|
||||
PREP(placeApprove);
|
||||
#include "XEH_PREP.hpp"
|
||||
|
||||
ADDON = true;
|
||||
|
3
addons/attach/XEH_preStart.sqf
Normal file
3
addons/attach/XEH_preStart.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "XEH_PREP.hpp"
|
@ -49,7 +49,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
||||
} else {
|
||||
GVAR(placeAction) = PLACE_WAITING;
|
||||
|
||||
[_unit, QGVAR(vehAttach), true] call EFUNC(common,setForceWalkStatus);
|
||||
[_unit, "forceWalk", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
[{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call EFUNC(common,execNextFrame);
|
||||
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = PLACE_APPROVE;}] call EFUNC(common,AddActionEventHandler)];
|
||||
@ -88,7 +88,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
||||
{!([_attachToVehicle, _unit, _itemClassname] call FUNC(canAttach))}) then {
|
||||
|
||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||
[_unit, QGVAR(vehAttach), false] call EFUNC(common,setForceWalkStatus);
|
||||
[_unit, "forceWalk", "ACE_Attach", false] call EFUNC(common,statusEffect_set);
|
||||
[] call EFUNC(interaction,hideMouseHint);
|
||||
[_unit, "DefaultAction", (_unit getVariable [QGVAR(placeActionEH), -1])] call EFUNC(common,removeActionEventHandler);
|
||||
_unit removeAction _actionID;
|
||||
|
@ -10,7 +10,7 @@
|
||||
* Arguments:
|
||||
* 0: Unit (player) <OBJECT>
|
||||
* 1: attachToVehicle <OBJECT>
|
||||
* 2: Item Classname (cfgWeapon/cfgMagazine) <STRING>
|
||||
* 2: Item Classname (CfgWeapon/CfgMagazine) <STRING>
|
||||
* 3: Light Vehicle Classname <STRING>
|
||||
* 4: On Attach Text <STRING>
|
||||
* 5: Starting Pos of dummy item <ARRAY>
|
||||
|
@ -1,6 +1,11 @@
|
||||
#define COMPONENT attach
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_ATTACH
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Attach">
|
||||
<Key ID="STR_ACE_Attach_AttachDetach">
|
||||
@ -7,7 +7,7 @@
|
||||
<Spanish>Acoplar objeto >></Spanish>
|
||||
<Polish>Przyczep >></Polish>
|
||||
<French>Attacher l'objet >></French>
|
||||
<Czech>Připnout předmět >></Czech>
|
||||
<Czech>Připnout >></Czech>
|
||||
<Portuguese>Fixar item >></Portuguese>
|
||||
<Italian>Attacca l'oggetto >></Italian>
|
||||
<Hungarian>Tárgy hozzácsatolása >></Hungarian>
|
||||
@ -90,7 +90,7 @@
|
||||
<German>Leuchtstab befestigt</German>
|
||||
<Spanish>Barra de luz acoplada</Spanish>
|
||||
<Polish>Przyczepiono światło chemiczne</Polish>
|
||||
<French>Chemlight attachée</French>
|
||||
<French>Cyalume attachée</French>
|
||||
<Czech>Chemické světlo připnuto</Czech>
|
||||
<Portuguese>Chemlight Fixada</Portuguese>
|
||||
<Italian>Chemlight attaccata</Italian>
|
||||
@ -102,7 +102,7 @@
|
||||
<German>Leuchtstab entfernt</German>
|
||||
<Spanish>Barra de luz quitada</Spanish>
|
||||
<Polish>Odczepiono światło chemiczne</Polish>
|
||||
<French>Chemlight détachée</French>
|
||||
<French>Cyalume détachée</French>
|
||||
<Czech>Chemické světlo odepnuto</Czech>
|
||||
<Portuguese>Chemlight Separada</Portuguese>
|
||||
<Italian>Chemlight staccata</Italian>
|
||||
@ -115,7 +115,7 @@
|
||||
<Spanish>Sin espacio en inventario</Spanish>
|
||||
<Polish>Brak miejsca w ekwipunku</Polish>
|
||||
<French>Pas de place dans l'inventaire</French>
|
||||
<Czech>Není místo v inventáři</Czech>
|
||||
<Czech>Nedostatek místa v inventáři</Czech>
|
||||
<Portuguese>Sem espaço no inventário</Portuguese>
|
||||
<Italian>Non hai più spazio</Italian>
|
||||
<Hungarian>Nincs több hely</Hungarian>
|
||||
@ -138,7 +138,7 @@
|
||||
<German>Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist.</German>
|
||||
<Polish>Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.</Polish>
|
||||
<Spanish>El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. </Spanish>
|
||||
<French>La balise IR permet de signaler votre position grace à un clignotement visible par des JVN.</French>
|
||||
<French>La balise IR permet de signaler votre position grâce à un clignotement visible par des JVN.</French>
|
||||
<Czech>IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru.</Czech>
|
||||
<Portuguese>O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna.</Portuguese>
|
||||
<Italian>La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni.</Italian>
|
||||
@ -175,7 +175,7 @@
|
||||
<German>Befestigen fehlgeschlagen</German>
|
||||
<Russian>Не удалось присоединить</Russian>
|
||||
<Spanish>Error al acoplar</Spanish>
|
||||
<Czech>Připnutí selhalo</Czech>
|
||||
<Czech>Připnout přesmět se nezdařilo</Czech>
|
||||
<Portuguese>Erro ao fixar</Portuguese>
|
||||
<Polish>Przyczepianie nie powiodło się</Polish>
|
||||
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
|
||||
@ -187,7 +187,7 @@
|
||||
<Spanish>%1<br/>acoplada</Spanish>
|
||||
<Polish>Przyczepiono<br/>%1</Polish>
|
||||
<French>%1<br/>attachée</French>
|
||||
<Czech>%1<br/>Připnutý</Czech>
|
||||
<Czech>%1<br/>Připnuto</Czech>
|
||||
<Portuguese>%1<br/>Fixada</Portuguese>
|
||||
<Italian>%1<br/>attaccata</Italian>
|
||||
<Hungarian>%1<br/>hozzácsatolva</Hungarian>
|
||||
@ -199,11 +199,11 @@
|
||||
<Spanish>%1<br/>quitada</Spanish>
|
||||
<Polish>Odczepiono<br/>%1</Polish>
|
||||
<French>%1<br/>détachée</French>
|
||||
<Czech>%1<br/>Odepnutý</Czech>
|
||||
<Czech>%1<br/>Odepnuto</Czech>
|
||||
<Portuguese>%1<br/>Separada</Portuguese>
|
||||
<Italian>%1<br/>staccata</Italian>
|
||||
<Hungarian>%1<br/>lecsatolva</Hungarian>
|
||||
<Russian>%1<br/>отсоединен(-а)</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -1,4 +1,10 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
|
4
addons/backpacks/XEH_PREP.hpp
Normal file
4
addons/backpacks/XEH_PREP.hpp
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
PREP(backpackOpened);
|
||||
PREP(isBackpack);
|
||||
PREP(onOpenInventory);
|
@ -2,8 +2,6 @@
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(backpackOpened);
|
||||
PREP(isBackpack);
|
||||
PREP(onOpenInventory);
|
||||
#include "XEH_PREP.hpp"
|
||||
|
||||
ADDON = true;
|
||||
|
3
addons/backpacks/XEH_preStart.sqf
Normal file
3
addons/backpacks/XEH_preStart.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "XEH_PREP.hpp"
|
@ -17,27 +17,20 @@
|
||||
params ["_target", "_backpack"];
|
||||
|
||||
// do cam shake if the target is the player
|
||||
if ([_target] call EFUNC(common,isPlayer)) then {
|
||||
if (_target call EFUNC(common,isPlayer)) then {
|
||||
addCamShake [4, 0.5, 5];
|
||||
};
|
||||
|
||||
// play a zipper sound effect
|
||||
private ["_sounds", "_position"];
|
||||
|
||||
_sounds = [
|
||||
/*"a3\sounds_f\characters\ingame\AinvPknlMstpSlayWpstDnon_medic.wss",
|
||||
"a3\sounds_f\characters\ingame\AinvPknlMstpSlayWrflDnon_medic.wss",
|
||||
"a3\sounds_f\characters\ingame\AinvPpneMstpSlayWpstDnon_medic.wss",
|
||||
"a3\sounds_f\characters\ingame\AinvPpneMstpSlayWrflDnon_medic.wss"*/
|
||||
|
||||
private _sounds = [
|
||||
QUOTE(PATHTO_R(sounds\zip_in.wav)),
|
||||
QUOTE(PATHTO_R(sounds\zip_out.wav))
|
||||
];
|
||||
|
||||
_position = AGLToASL (_target modelToWorldVisual (_target selectionPosition "Spine3"));
|
||||
private _position = AGLToASL (_target modelToWorldVisual (_target selectionPosition "Spine3"));
|
||||
|
||||
playSound3D [
|
||||
_sounds select floor random count _sounds,
|
||||
selectRandom _sounds,
|
||||
objNull,
|
||||
false,
|
||||
_position,
|
||||
|
@ -12,13 +12,12 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_backpack"];
|
||||
params [["_backpack", objNull, [objNull, ""]]];
|
||||
|
||||
if (typeName _backpack == "OBJECT") then {
|
||||
if (_backpack isEqualType objNull) then {
|
||||
_backpack = typeOf _backpack;
|
||||
};
|
||||
|
||||
private "_config";
|
||||
_config = configFile >> "CfgVehicles" >> _backpack;
|
||||
private _config = configFile >> "CfgVehicles" >> _backpack;
|
||||
|
||||
getText (_config >> "vehicleClass") == "backpacks" && {getNumber (_config >> "maximumLoad") > 0} // return
|
||||
|
@ -16,11 +16,10 @@
|
||||
params ["_unit", "_backpack"];
|
||||
|
||||
// exit if the target is not a real backpack, i.e. parachute, static weapon bag etc.
|
||||
if !([_backpack] call FUNC(isBackpack)) exitWith {false};
|
||||
if !(_backpack call FUNC(isBackpack)) exitWith {false};
|
||||
|
||||
// get the unit that wears the backpack object
|
||||
private "_target";
|
||||
_target = objectParent _backpack;
|
||||
private _target = objectParent _backpack;
|
||||
|
||||
if (isNull _target) exitWith {false};
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
#define COMPONENT backpacks
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_BACKPACKS
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -14,7 +14,6 @@ class CfgWeapons {
|
||||
class MMG_02_base_F;
|
||||
class Rifle_Base_F;
|
||||
class Rifle_Long_Base_F;
|
||||
class WeaponSlotsInfo;
|
||||
class MuzzleSlot;
|
||||
|
||||
/* Long Rifles */
|
||||
@ -74,22 +73,12 @@ class CfgWeapons {
|
||||
};
|
||||
|
||||
class DMR_01_base_F: Rifle_Long_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
||||
};
|
||||
};
|
||||
|
||||
class EBR_base_F: Rifle_Long_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||
};
|
||||
};
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||
};
|
||||
@ -101,13 +90,7 @@ class CfgWeapons {
|
||||
|
||||
/* MX */
|
||||
|
||||
class arifle_MX_Base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
};
|
||||
class arifle_MX_Base_F: Rifle_Base_F {};
|
||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
"100Rnd_65x39_caseless_mag_Tracer",
|
||||
@ -120,13 +103,6 @@ class CfgWeapons {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=406.4;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
// Shit is broken again
|
||||
//compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||
compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
};
|
||||
class arifle_MXM_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
@ -150,13 +126,7 @@ class CfgWeapons {
|
||||
|
||||
|
||||
/* Katiba */
|
||||
class arifle_katiba_Base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
};
|
||||
class arifle_katiba_Base_F: Rifle_Base_F {};
|
||||
|
||||
|
||||
/* Other */
|
||||
@ -167,42 +137,16 @@ class CfgWeapons {
|
||||
"ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
|
||||
};
|
||||
initSpeed = -0.9763;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
||||
};
|
||||
};
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=317.5;
|
||||
};
|
||||
class LMG_Zafir_F: Rifle_Long_Base_F {
|
||||
initSpeed = -1.0;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
||||
};
|
||||
};
|
||||
ACE_barrelTwist=304.8;
|
||||
ACE_barrelLength=459.74;
|
||||
};
|
||||
|
||||
|
||||
/* Assault Rifles */
|
||||
class Tavor_base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
||||
};
|
||||
};
|
||||
};
|
||||
class mk20_base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_L"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Tavor_base_F: Rifle_Base_F {};
|
||||
class mk20_base_F: Rifle_Base_F {};
|
||||
|
||||
/* SMGs */
|
||||
class SDAR_base_F: Rifle_Base_F {
|
||||
@ -219,93 +163,43 @@ class CfgWeapons {
|
||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||
};
|
||||
};
|
||||
class pdw2000_base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
|
||||
};
|
||||
};
|
||||
};
|
||||
class SMG_01_Base: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
|
||||
};
|
||||
};
|
||||
};
|
||||
class SMG_02_base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class pdw2000_base_F: Rifle_Base_F {};
|
||||
class SMG_01_Base: Rifle_Base_F {};
|
||||
class SMG_02_base_F: Rifle_Base_F {};
|
||||
|
||||
/* Pistols */
|
||||
|
||||
class Pistol;
|
||||
class Pistol_Base_F: Pistol {
|
||||
class WeaponSlotsInfo;
|
||||
};
|
||||
class Pistol_Base_F: Pistol {};
|
||||
|
||||
class hgun_P07_F: Pistol_Base_F {
|
||||
initSpeed = -0.9778;
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=101.6;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class hgun_Rook40_F: Pistol_Base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=111.76;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class hgun_ACPC2_F: Pistol_Base_F {
|
||||
initSpeed = -1.0;
|
||||
ACE_barrelTwist=406.4;
|
||||
ACE_barrelLength=127.0;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class hgun_Pistol_heavy_01_F: Pistol_Base_F {
|
||||
initSpeed = -0.96;
|
||||
ACE_barrelTwist=406.4;
|
||||
ACE_barrelLength=114.3;
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class hgun_Pistol_heavy_02_F: Pistol_Base_F {
|
||||
initSpeed = -0.92;
|
||||
ACE_barrelTwist=406.4;
|
||||
ACE_barrelLength=76.2;
|
||||
/*
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot {
|
||||
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
|
||||
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
|
||||
};
|
||||
};
|
||||
*/
|
||||
};
|
||||
class hgun_PDW2000_F: pdw2000_base_F {
|
||||
initSpeed = -1.157;
|
||||
|
@ -1,6 +1,11 @@
|
||||
#define COMPONENT ballistics
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_BALLISTICS
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
@ -33,7 +33,7 @@
|
||||
<Spanish>Calibre: 6,5x39mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL</Spanish>
|
||||
<French>Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé avec: MX/C/M/SW/3GL</French>
|
||||
<Polish>Kaliber: 6,5x39mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL</Polish>
|
||||
<Czech>Ráže: 6.5x39mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL</Czech>
|
||||
<Czech>Ráže: 6.5x39mm Svítící IR-DIM<br />Nábojů: 30<br />Použití u: MX</Czech>
|
||||
<Portuguese>Calibre: 6,5x39mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL</Portuguese>
|
||||
<Italian>Calibro: 6.5x39mm Traccianti IR-DIM <br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL</Italian>
|
||||
<Russian>Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL</Russian>
|
||||
@ -69,7 +69,7 @@
|
||||
<Spanish>Calibre: 6,5x39mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL</Spanish>
|
||||
<French>Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé avec: MX/C/M/SW/3GL</French>
|
||||
<Polish>Kaliber: 6,5x39mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL</Polish>
|
||||
<Czech>Ráže: 6.5x39mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL</Czech>
|
||||
<Czech>Ráže: 6.5x39mm SD<br />Nábojů: 30<br />Použití u: MX</Czech>
|
||||
<Portuguese>Calibre: 6,5x39mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL</Portuguese>
|
||||
<Italian>Calibro: 6.5x39mm Sil.<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL </Italian>
|
||||
<Russian>Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL</Russian>
|
||||
@ -105,7 +105,7 @@
|
||||
<Spanish>Calibre: 6,5x39mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL</Spanish>
|
||||
<French>Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé avec: MX/C/M/SW/3GL</French>
|
||||
<Polish>Kaliber: 6,5x39mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL</Polish>
|
||||
<Czech>Ráže: 6.5x39mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL</Czech>
|
||||
<Czech>Ráže: 6.5x39mm AP<br />Nábojů: 30<br />Použití u: MX</Czech>
|
||||
<Portuguese>Calibre: 6,5x39mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL</Portuguese>
|
||||
<Italian>Calibro: 6.5x39mm AP<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL</Italian>
|
||||
<Russian>Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL</Russian>
|
||||
@ -142,7 +142,7 @@
|
||||
<Spanish>Calibre: 6,5x39mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba</Spanish>
|
||||
<French>Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé avec: Katiba</French>
|
||||
<Polish>Kaliber: 6,5x39mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: Katiba</Polish>
|
||||
<Czech>Ráže: 6.5x39mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba</Czech>
|
||||
<Czech>Ráže: 6.5x39mm Svítící IR-DIM<br />Nábojů: 30<br />Použití u: KH 2002 Sama</Czech>
|
||||
<Portuguese>Calibre: 6,5x39mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba</Portuguese>
|
||||
<Italian>Calibro: 6.5x39mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||
<Russian>Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba</Russian>
|
||||
@ -178,7 +178,7 @@
|
||||
<Spanish>Calibre: 6,5x39mm SD<br />Balas: 30<br />Se usa en: Katiba</Spanish>
|
||||
<French>Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé avec: Katiba</French>
|
||||
<Polish>Kaliber: 6,5x39mm SD<br />Naboje: 30<br />Używane w: Katiba</Polish>
|
||||
<Czech>Ráže: 6.5x39mm SD<br />Munice: 30<br />Použití: Katiba</Czech>
|
||||
<Czech>Ráže: 6.5x39mm SD<br />Nábojů: 30<br />Použití u: KH 2002 Sama</Czech>
|
||||
<Portuguese>Calibre: 6,5x39mm SD<br />Projéteis: 30<br />Usado em: Katiba</Portuguese>
|
||||
<Italian>Calibro: 6.5x39mm Sil.<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||
<Russian>Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba</Russian>
|
||||
@ -214,7 +214,7 @@
|
||||
<Spanish>Calibre: 6,5x39mm AP<br />Balas: 30<br />Se usa en: Katiba</Spanish>
|
||||
<French>Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé avec: Katiba</French>
|
||||
<Polish>Kaliber: 6,5x39mm AP<br />Pociski: 30<br />Używane w: Katiba</Polish>
|
||||
<Czech>Ráže: 6.5x39mm AP<br />Munice: 30<br />Použití: Katiba</Czech>
|
||||
<Czech>Ráže: 6.5x39mm AP<br />Nábojů: 30<br />Použití u: KH 2002 Sama</Czech>
|
||||
<Portuguese>Calibre: 6,5x39mm AP<br />Projéteis: 30<br />Usado em: Katiba</Portuguese>
|
||||
<Italian>Calibro: 6.5x39mm AP<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||
<Russian>Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba</Russian>
|
||||
@ -251,7 +251,7 @@
|
||||
<Spanish>Calibre: 5,56x45mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
|
||||
<French>Calibre: 5,56x45mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé avec: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
|
||||
<Polish>Kaliber: 5,56x45mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
|
||||
<Czech>Ráže: 5.56x45mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
|
||||
<Czech>Ráže: 5.56x45mm Svítící IR-DIM<br />Nábojů: 30<br />Použití u: CTAR-21, TAR-21, F2000, RFB SDAR</Czech>
|
||||
<Portuguese>Calibre: 5,56x45mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
|
||||
<Italian>Calibro: 5.56x45mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
|
||||
<Russian>Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Russian>
|
||||
@ -288,7 +288,7 @@
|
||||
<Spanish>Calibre: 7,62x51mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51mm Traçantes<br />Cartouches: 20<br />Utilisé avec: EBR</French>
|
||||
<Polish>Kaliber: 7,62x51mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Czech>Ráže: 7.62x51mm Svítící<br />Nábojů: 20<br />Použití u: Mk14 Mod 1 EBR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR</Russian>
|
||||
@ -324,7 +324,7 @@
|
||||
<Spanish>Calibre: 7,62x51mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé avec: EBR</French>
|
||||
<Polish>Kaliber: 7,62x51mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Czech>Ráže: 7.62x51mm Svítící IR-DIM<br />Nábojů: 20<br />Použití u: Mk14 Mod 1 EBR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7,62x51 мм ИК-трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR</Russian>
|
||||
@ -360,7 +360,7 @@
|
||||
<Spanish>Calibre: 7,62x51mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51mm SD<br />Cartouches: 20<br />Utilisé avec: EBR</French>
|
||||
<Polish>Kaliber: 7,62x51mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51mm SD<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Czech>Ráže: 7.62x51mm SD<br />Nábojů: 20<br />Použití u: Mk14 Mod 1 EBR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR</Russian>
|
||||
@ -398,7 +398,7 @@
|
||||
<Spanish>Calibre: .338 Norma Magnum trazadora<br />Balas: 130<br />Se usa en: SPMG</Spanish>
|
||||
<Russian>Калибр: .338 Norma Magnum трассирующие<br />Патронов: 130<br />Используются в: SPMG</Russian>
|
||||
<Italian>Calibro: .338 Norma Magnum Tracciante<br />Munizioni: 130<br />In uso su: SPMG</Italian>
|
||||
<Czech>Ráže: .338 Noma Magnum Svítící<br />Munice: 130<br />Použití: SPMG</Czech>
|
||||
<Czech>Ráže: .338 Noma Magnum Svítící<br />Nábojů: 130<br />Použití u: LWMMG</Czech>
|
||||
<Portuguese>Calibre: .338 Norma Magnum Traçante<br />Cartuchos: 130<br />Usado em: SPMG</Portuguese>
|
||||
<Hungarian>Kaliber: .338 Norma Magnum nyomkövető<br />Lövedékek: 130<br />Használható: SPMG</Hungarian>
|
||||
</Key>
|
||||
@ -434,7 +434,7 @@
|
||||
<Spanish>Calibre: .338 Norma Magnum trazadora IR-DIM<br />Balas: 130<br />Se usa en: SPMG</Spanish>
|
||||
<Russian>Калибр: .338 Norma Magnum ИК-трассирующие<br />Патронов: 130<br />Используются с: SPMG</Russian>
|
||||
<Italian>Calibro: .338 Norma Magnum Tracciante IR-DIM<br />Munizioni: 130<br />In uso su: SPMG</Italian>
|
||||
<Czech>Ráže: .338 Noma Magnum Svítící IR-DIM<br />Munice: 130<br />Použití: SPMG</Czech>
|
||||
<Czech>Ráže: .338 Noma Magnum Svítící IR-DIM<br />Nábojů: 130<br />Použití u: LWMMG</Czech>
|
||||
<Portuguese>Calibre: .338 Norma Magnum Traçante IR-DIM<br />Cartuchos: 130<br />Usado em: SPMG</Portuguese>
|
||||
<Hungarian>Kaliber: .338 Norma Magnum infravörös nyomkövető<br />Lövedékek: 130<br />Használható: SPMG</Hungarian>
|
||||
</Key>
|
||||
@ -470,7 +470,7 @@
|
||||
<Spanish>Calibre: .338 Norma Magnum AP<br />Balas: 130<br />Se usa en: SPMG</Spanish>
|
||||
<Russian>Калибр: .338 Norma Magnum бронебойные<br />Патронов: 130<br />Используются с: SPMG</Russian>
|
||||
<Italian>Calibro: .338 Norma Magnum AP<br />Munizioni: 130<br />In uso su: SPMG</Italian>
|
||||
<Czech>Ráže: .338 Noma Magnum AP<br />Munice: 130<br />Použití: SPMG</Czech>
|
||||
<Czech>Ráže: .338 Noma Magnum AP<br />Nábojů: 130<br />Použití u: LWMMG</Czech>
|
||||
<Portuguese>Calibre: .338 Norma Magnum AP<br />Cartuchos: 130<br />Usado em: SPMG</Portuguese>
|
||||
<Hungarian>Kaliber: .338 Norma Magnum páncéltörő<br />Lövedékek: 130<br />Használható: SPMG</Hungarian>
|
||||
</Key>
|
||||
@ -507,7 +507,7 @@
|
||||
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracer<br />Munizioni: 10<br />In uso su: Cyrus</Italian>
|
||||
<Czech>Ráže: 9.3x64mm Svítící<br />Munice: 10<br />Použití: Cyrus</Czech>
|
||||
<Czech>Ráže: 9.3x64mm Svítící<br />Nábojů: 10<br />Použití u: Cyrus</Czech>
|
||||
<Portuguese>Calibre: 9.3x64mm Traçante<br />Cartuchos: 10<br />Usado em: Cyrus</Portuguese>
|
||||
<Hungarian>Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 10<br />Használható: Cyrus</Hungarian>
|
||||
</Key>
|
||||
@ -543,7 +543,7 @@
|
||||
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM<br />Munizioni: 10<br />In uso su: Cyrus</Italian>
|
||||
<Czech>Ráže: 9.3x64mm Svítící IR-DIM<br />Munice: 10<br />Použití: Cyrus</Czech>
|
||||
<Czech>Ráže: 9.3x64mm Svítící IR-DIM<br />Nábojů: 10<br />Použití u: Cyrus</Czech>
|
||||
<Portuguese>Calibre: 9.3x64mm Traçante IR-DIM<br />Cartuchos: 10<br />Usado em: Cyrus</Portuguese>
|
||||
<Hungarian>Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 10<br /> Használható: Cyrus</Hungarian>
|
||||
</Key>
|
||||
@ -580,7 +580,7 @@
|
||||
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracciante<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
||||
<Czech>Ráže: 9.3x64mm Svítící<br />Munice: 150<br />Použití: Navid</Czech>
|
||||
<Czech>Ráže: 9.3x64mm Svítící<br />Nábojů: 150<br />Použití u: HK121</Czech>
|
||||
<Portuguese>Calibre: 9.3x64mm Traçante<br />Cartuchos: 150<br />Usado em: Navid</Portuguese>
|
||||
<Hungarian>Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 150<br />Használható: Navid</Hungarian>
|
||||
</Key>
|
||||
@ -616,7 +616,7 @@
|
||||
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
||||
<Czech>Ráže: 9.3x64mm Svítící IR-DIM<br />Munice: 150<br />Použití: Navid</Czech>
|
||||
<Czech>Ráže: 9.3x64mm Svítící IR-DIM<br />Nábojů: 150<br />Použití u: HK121</Czech>
|
||||
<Portuguese>Calibre: 9.3x64mm Traçante IR-DIM<br />Cartuchos: 150<br />Usado em: Navid</Portuguese>
|
||||
<Hungarian>Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 150<br />Használható: Navid</Hungarian>
|
||||
</Key>
|
||||
@ -652,7 +652,7 @@
|
||||
<Spanish>Calibre: 9.3x64mm AP<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм бронебойные<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||
<Italian>Calibro: 9.3x64mm AP<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
||||
<Czech>Ráže: 9.3x64mm AP<br />Munice: 150<br />Použití: Navid</Czech>
|
||||
<Czech>Ráže: 9.3x64mm AP<br />Nábojů: 150<br />Použití u: HK121</Czech>
|
||||
<Portuguese>Calibre: 9.3x64mm AP<br />Cartuchos: 150<br />Usado em: Navid</Portuguese>
|
||||
<Hungarian>Kaliber: 9,3x64mm páncéltörő<br />Lövedékek: 150<br />Használható: Navid</Hungarian>
|
||||
</Key>
|
||||
@ -796,7 +796,7 @@
|
||||
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
|
||||
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur<br />Patronen: 100<br />Eingesetzt von: MXLSW</German>
|
||||
<Italian>6.5mm 100Rnd Tracer IR-DIM Mag<br />Munizioni: 100<br />In uso su: MX LSW</Italian>
|
||||
<Czech>6.5mm 100náb. Svítící IR-DIM Zásobník<br />Munice: 100<br />Použití: MX LSW</Czech>
|
||||
<Czech>6.5mm 100náb. Svítící IR-DIM Zásobník<br />Nábojů: 100<br />Použití u: MX LSW</Czech>
|
||||
<Portuguese>Carregador 6.5mm 100 Cartuchos Traçantes IR-DIM<br />Cartuchos: 100<br />Usado em: MX LSW</Portuguese>
|
||||
<Hungarian>6.5mm 100-lövedékes infravörös nyomkövető tár<br />Lövedékek: 100<br />Használható: MX LSW</Hungarian>
|
||||
</Key>
|
||||
@ -832,7 +832,7 @@
|
||||
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
|
||||
<German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur<br />Patronen: 200<br />Eingesetzt von: Stoner 99 LMG</German>
|
||||
<Italian>6.5mm 200Rnd Tracer IR-DIM Belt<br />Munizioni: 200<br />In uso su: Stoner 99 LMG</Italian>
|
||||
<Czech>6.5mm 200náb. Svítící IR-DIM Pás<br />Munice: 200<br />Použití: Stoner 99 LMG</Czech>
|
||||
<Czech>6.5mm 200náb. Svítící IR-DIM Pás<br />Nábojů: 200<br />Použití u: Stoner 99 LMG</Czech>
|
||||
<Portuguese>Cinto de munição traçante 6.5mm IR-DIM com 200 cartuchos<br />Cartuchos: 200<br />Usado em: Stoner 99 LMG</Portuguese>
|
||||
<Hungarian>6.5mm 200-lövedékes infravörös nyomkövető heveder<br />Lövedékek: 200<br />Használható: Stoner 99 LMG</Hungarian>
|
||||
</Key>
|
||||
@ -868,7 +868,7 @@
|
||||
<Russian>Калибр: 5,56x45 мм NATO (Mk262)<br />Патронов: 30</Russian>
|
||||
<German>Kaliber: 5,56x45mm NATO (Mk262)<br />Patronen: 30</German>
|
||||
<Italian>Calibro: 5.56x45 mm NATO (Mk262)<br />Munizioni: 30</Italian>
|
||||
<Czech>Ráže: 5.56x45mm NATO (Mk262)<br />Munice: 30</Czech>
|
||||
<Czech>Ráže: 5.56x45mm NATO (Mk262)<br />Nábojů: 30</Czech>
|
||||
<Portuguese>Calibre: 5.56x45mm NATO (Mk262)<br/>Cartuchos: 30</Portuguese>
|
||||
<Hungarian>Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30</Hungarian>
|
||||
</Key>
|
||||
@ -904,7 +904,7 @@
|
||||
<Russian>Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30</Russian>
|
||||
<German>Kaliber: 5,56x45mm NATO (Mk318)<br />Patronen: 30</German>
|
||||
<Italian>Calibro: 5.56x45 mm NATO (Mk318)<br />Munizioni: 30</Italian>
|
||||
<Czech>Ráže: 5.56x45mm NATO (Mk318)<br />Munice: 30</Czech>
|
||||
<Czech>Ráže: 5.56x45mm NATO (Mk318)<br />Nábojů: 30</Czech>
|
||||
<Portuguese>Calibre: 5.56x45mm NATO (Mk318)<br/>Cartuchos: 30</Portuguese>
|
||||
<Hungarian>Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30</Hungarian>
|
||||
</Key>
|
||||
@ -940,7 +940,7 @@
|
||||
<Russian>Калибр: 5,56x45 мм NATO (M995 бронебойные)<br />Патронов: 30</Russian>
|
||||
<German>Kaliber: 5,56x45mm NATO (M995 AP)<br />Patronen: 30</German>
|
||||
<Italian>Calibro: 5.56x45 mm NATO (M995 AP)<br />Munizioni: 30</Italian>
|
||||
<Czech>Ráže: 5.56x45mm NATO (M995 AP)<br />Munice: 30</Czech>
|
||||
<Czech>Ráže: 5.56x45mm NATO (M995 AP)<br />Nábojů: 30</Czech>
|
||||
<Portuguese>Calibre: 5.56x45mm NATO (M995 AP)<br/>Cartuchos: 30</Portuguese>
|
||||
<Hungarian>Kaliber: 5,56x45mm NATO (M995 páncéltörő)<br />Lövedékek: 30</Hungarian>
|
||||
</Key>
|
||||
@ -976,7 +976,7 @@
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 10</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (M118LR)<br />Munizioni: 10</Italian>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M118LR)<br />Munice: 10</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M118LR)<br />Nábojů: 10</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (M118LR)<br/>Cartuchos: 10</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10</Hungarian>
|
||||
</Key>
|
||||
@ -1012,7 +1012,7 @@
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (M118LR)<br />Munizioni: 20</Italian>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M118LR)<br />Munice: 20</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M118LR)<br />Nábojů: 20</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (M118LR)<br/>Cartuchos: 20</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20</Hungarian>
|
||||
</Key>
|
||||
@ -1048,7 +1048,7 @@
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 10</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (Mk316 Mod 0)<br />Munizioni: 10</Italian>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk316 Mod 0)<br />Munice: 10</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk316 Mod 0)<br />Nábojů: 10</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (Mk316 Mod 0)<br/>Cartuchos: 10</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 10</Hungarian>
|
||||
</Key>
|
||||
@ -1084,7 +1084,7 @@
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (Mk316 Mod 0)<br />Munizioni: 20</Italian>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk316 Mod 0)<br />Munice: 20</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk316 Mod 0)<br />Nábojů: 20</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (Mk316 Mod 0)<br/>Cartuchos: 20</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 20</Hungarian>
|
||||
</Key>
|
||||
@ -1120,7 +1120,7 @@
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 10</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (Mk319 Mod 0)<br />Munizioni: 10</Italian>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk319 Mod 0)<br />Munice: 10</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk319 Mod 0)<br />Nábojů: 10</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (Mk319 Mod 0)<br/>Cartuchos: 10</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 10</Hungarian>
|
||||
</Key>
|
||||
@ -1156,7 +1156,7 @@
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (Mk319 Mod 0)<br />Munizioni: 20</Italian>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk319 Mod 0)<br />Munice: 20</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (Mk319 Mod 0)<br />Nábojů: 20</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (Mk319 Mod 0)<br/>Cartuchos: 20</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 20</Hungarian>
|
||||
</Key>
|
||||
@ -1192,7 +1192,7 @@
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 10</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)<br />Munizioni: 10</Italian>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M993 AP)<br />Munice: 10</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M993 AP)<br />Nábojů: 10</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (M993 AP)<br/>Cartuchos: 10</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 10</Hungarian>
|
||||
</Key>
|
||||
@ -1228,7 +1228,7 @@
|
||||
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)<br />Munizioni: 20</Italian>
|
||||
<Spanish>Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 20</Spanish>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M993 AP)<br />Munice: 20</Czech>
|
||||
<Czech>Ráže: 7.62x51mm NATO (M993 AP)<br />Nábojů: 20</Czech>
|
||||
<Portuguese>Calibre: 7.26x51mm NATO (M993 AP)<br/>Cartuchos: 20</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 20</Hungarian>
|
||||
</Key>
|
||||
@ -1264,7 +1264,7 @@
|
||||
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 0)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x67 mm NATO (Mk248 Mod 0)<br />Munizioni: 20</Italian>
|
||||
<Czech>Ráže: 7.62x67mm NATO (Mk248 Mod 0)<br />Munice: 20</Czech>
|
||||
<Czech>Ráže: 7.62x67mm NATO (Mk248 Mod 0)<br />Nábojů: 20</Czech>
|
||||
<Portuguese>Calibre: 7.26x67mm NATO (Mk248 Mod 0)<br/>Cartuchos: 20</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Lövedékek: 20</Hungarian>
|
||||
</Key>
|
||||
@ -1300,7 +1300,7 @@
|
||||
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x67 mm NATO (Mk248 Mod 1)<br />Munizioni: 20</Italian>
|
||||
<Czech>Ráže: 7.62x67mm NATO (Mk248 Mod 1)<br />Munice: 20</Czech>
|
||||
<Czech>Ráže: 7.62x67mm NATO (Mk248 Mod 1)<br />Nábojů: 20</Czech>
|
||||
<Portuguese>Calibre: 7.26x67mm NATO (Mk248 Mod 1)<br/>Cartuchos: 20</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Lövedékek: 20</Hungarian>
|
||||
</Key>
|
||||
@ -1336,7 +1336,7 @@
|
||||
<Russian>Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Munizioni: 20</Italian>
|
||||
<Czech>Ráže: 7.62x67mm NATO (Berger Hybrid OTM)<br />Munice: 20</Czech>
|
||||
<Czech>Ráže: 7.62x67mm NATO (Berger Hybrid OTM)<br />Nábojů: 20</Czech>
|
||||
<Portuguese>Calibre: 7.26x67mm NATO (Berger Hybrid OTM)<br/>Cartuchos: 20</Portuguese>
|
||||
<Hungarian>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Lövedékek: 20</Hungarian>
|
||||
</Key>
|
||||
@ -1372,7 +1372,7 @@
|
||||
<Russian>Калибр: 6,5x47 мм (экспансивные Scenar)<br />Патронов: 30<br />Используются с: MXM</Russian>
|
||||
<German>Kaliber: 6,5x47mm (HPBT Scenar)<br />Patronen: 30<br />Eingesetzt von: MXM</German>
|
||||
<Italian>Calibro: 6.5x47mm (HPBT Scenar)<br />Munizioni: 30<br />In uso su: MXM</Italian>
|
||||
<Czech>Ráže: 6.5x47mm (HPBT Scenar)<br />Munice: 30<br />Použití: MXM</Czech>
|
||||
<Czech>Ráže: 6.5x47mm (HPBT Scenar)<br />Nábojů: 30<br />Použití u: MXM</Czech>
|
||||
<Portuguese>Calibre: 6.5x47mm (HPBT Scenar)<br/>Cartuchos: 30<br/>Usado em: MXM</Portuguese>
|
||||
<Hungarian>Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 30<br />Használható: MXM</Hungarian>
|
||||
</Key>
|
||||
@ -1408,7 +1408,7 @@
|
||||
<Italian>Calibro: 6.5mm Creedmor<br />Munizioni: 30<br />In uso su: MXM</Italian>
|
||||
<Spanish>Calibre: 6.5mm Creedmor<br />Balas: 30<br />Se usa en: MXM</Spanish>
|
||||
<Russian>Калибр: 6,5x47мм Creedmor<br />Патронов: 30<br />Используются c: MXM</Russian>
|
||||
<Czech>Ráže: 6.5x47mm Creedmor<br />Munice: 30<br />Použití: MXM</Czech>
|
||||
<Czech>Ráže: 6.5x47mm Creedmor<br />Nábojů: 30<br />Použití u: MXM</Czech>
|
||||
<Portuguese>Calibre: 6.5x47mm Creedmor<br/>Cartuchos: 30<br/>Usado em: MXM</Portuguese>
|
||||
<Hungarian>Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 30<br />Használható: MXM</Hungarian>
|
||||
</Key>
|
||||
@ -1444,7 +1444,7 @@
|
||||
<Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Patronen: 10</German>
|
||||
<Italian>Calibro: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Munizioni: 10</Italian>
|
||||
<Czech>Ráže: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Munice: 10</Czech>
|
||||
<Czech>Ráže: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Nábojů: 10</Czech>
|
||||
<Portuguese>Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br/>Cartuchos: 10</Portuguese>
|
||||
<Hungarian>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Lövedékek: 10</Hungarian>
|
||||
</Key>
|
||||
@ -1480,7 +1480,7 @@
|
||||
<Russian>Калибр: 8,6x70 мм (API526)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 8,6x70mm (API526)<br />Patronen: 10</German>
|
||||
<Italian>Calibro: 8.6x70mm (API526)<br />Munizioni: 10</Italian>
|
||||
<Czech>Ráže: 8.6x70mm (API526)<br />Munice: 10</Czech>
|
||||
<Czech>Ráže: 8.6x70mm (API526)<br />Nábojů: 10</Czech>
|
||||
<Portuguese>Calibre: 8.6x70mm (API526)<br/>Cartuchos: 10</Portuguese>
|
||||
<Hungarian>Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10</Hungarian>
|
||||
</Key>
|
||||
@ -1516,7 +1516,7 @@
|
||||
<Russian>Калибр: 12,7x99 мм<br />Патронов: 5</Russian>
|
||||
<German>Kaliber: 12,7x99mm<br />Patronen: 5</German>
|
||||
<Italian>Calibro: 12.7x99mm<br />Munizioni: 5</Italian>
|
||||
<Czech>Ráže: 12.7x99mm<br />Munice: 5</Czech>
|
||||
<Czech>Ráže: 12.7x99mm<br />Nábojů: 5</Czech>
|
||||
<Portuguese>Calibre: 12.7x99mm<br/>Cartuchos: 5</Portuguese>
|
||||
<Hungarian>Kaliber: 12,7x99mm<br />Lövedékek: 5</Hungarian>
|
||||
</Key>
|
||||
@ -1552,7 +1552,7 @@
|
||||
<Russian>Калибр: 12,7x99 мм бронебойно-зажигательные<br />Патронов: 5</Russian>
|
||||
<German>Kaliber:12,7x99mm API<br />Patronen: 5</German>
|
||||
<Italian>Calibro: 12.7x99mm API<br />Munizioni: 5</Italian>
|
||||
<Czech>Ráže: 12.7x99mm API<br />Munice: 5</Czech>
|
||||
<Czech>Ráže: 12.7x99mm API<br />Nábojů: 5</Czech>
|
||||
<Portuguese>Calibre: 12.7x99mm API<br/>Cartuchos: 5</Portuguese>
|
||||
<Hungarian>Kaliber: 12,7x99mm API<br />Lövedékek: 5</Hungarian>
|
||||
</Key>
|
||||
@ -1588,7 +1588,7 @@
|
||||
<Russian>Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5</Russian>
|
||||
<Italian>Calibro: 12.7x99mm (AMAX)<br />Munizioni: 5</Italian>
|
||||
<German>Kaliber:12,7x99mm (AMAX)<br />Patronen: 5</German>
|
||||
<Czech>Ráže: 12.7x99mm (AMAX)<br />Munice: 5</Czech>
|
||||
<Czech>Ráže: 12.7x99mm (AMAX)<br />Nábojů: 5</Czech>
|
||||
<Portuguese>Calibre: 12.7x99mm (AMAX)<br/>Cartuchos: 5</Portuguese>
|
||||
<Hungarian>Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5</Hungarian>
|
||||
</Key>
|
||||
@ -1602,6 +1602,7 @@
|
||||
<French>[ACE] Caisse de munitions</French>
|
||||
<Hungarian>[ACE] Lőszeres láda</Hungarian>
|
||||
<Russian>[ACE] Ящик с боеприпасами</Russian>
|
||||
<Italian>[ACE] Cassa munizioni</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
30
addons/captives/CfgEden.hpp
Normal file
30
addons/captives/CfgEden.hpp
Normal file
@ -0,0 +1,30 @@
|
||||
class Cfg3DEN {
|
||||
class Object {
|
||||
class AttributeCategories {
|
||||
class ace_attributes {
|
||||
class Attributes {
|
||||
class ace_isHandcuffed {
|
||||
property = QUOTE(ace_isHandcuffed);
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(ModuleHandcuffed_DisplayName);
|
||||
tooltip = CSTRING(ModuleHandcuffed_Description);
|
||||
expression = QUOTE(if (_value) then {[ARR_3(objNull,[_this],true)] call FUNC(moduleHandcuffed)});
|
||||
typeName = "BOOL";
|
||||
condition = "objectBrain";
|
||||
defaultValue = false;
|
||||
};
|
||||
class ace_isSurrendered {
|
||||
property = QUOTE(ace_isSurrendered);
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(ModuleSurrender_DisplayName);
|
||||
tooltip = CSTRING(ModuleSurrender_Description);
|
||||
expression = QUOTE(if (_value) then {[ARR_3(objNull,[_this],true)] call FUNC(moduleSurrender)});
|
||||
typeName = "BOOL";
|
||||
condition = "objectBrain";
|
||||
defaultValue = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,3 +1,10 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
@ -9,6 +16,13 @@ class Extended_PostInit_EventHandlers {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_DisplayUnload_EventHandlers {
|
||||
class RscDisplayCurator {
|
||||
ADDON = QUOTE(call FUNC(handleZeusDisplayChanged));
|
||||
};
|
||||
};
|
||||
|
||||
//release escorted captive when entering a vehicle
|
||||
class Extended_GetIn_EventHandlers {
|
||||
class All {
|
||||
|
@ -32,7 +32,6 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||
priority = 2.3;
|
||||
hotkey = "E";
|
||||
};
|
||||
class ACE_StopEscorting {
|
||||
displayName = CSTRING(StopEscorting);
|
||||
@ -43,7 +42,6 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||
priority = 2.3;
|
||||
hotkey = "E";
|
||||
};
|
||||
class ACE_LoadCaptive {
|
||||
displayName = CSTRING(LoadCaptive);
|
||||
@ -54,7 +52,6 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||
priority = 2.2;
|
||||
hotkey = "L";
|
||||
};
|
||||
class GVAR(UnloadCaptive) {
|
||||
displayName = CSTRING(UnloadCaptive);
|
||||
@ -74,7 +71,6 @@ class CfgVehicles {
|
||||
exceptions[] = {"isNotEscorting"};
|
||||
showDisabled = 0;
|
||||
priority = 2.3;
|
||||
hotkey = "C";
|
||||
};
|
||||
class ACE_StartSurrenderingSelf {
|
||||
displayName = CSTRING(StartSurrendering);
|
||||
@ -153,16 +149,32 @@ class CfgVehicles {
|
||||
class GVAR(ModuleSurrender): Module_F {
|
||||
author = ECSTRING(common,ACETeam);
|
||||
category = "ACE";
|
||||
displayName = CSTRING(ModuleSurrender_DisplayName); //Make Unit Surrender
|
||||
displayName = CSTRING(ModuleSurrender_DisplayName);
|
||||
function = QFUNC(moduleSurrender);
|
||||
scope = 2; //show in editor
|
||||
isGlobal = 1; //run global
|
||||
isGlobal = 0; //run on server
|
||||
isTriggerActivated = 1; //Wait for triggers
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
|
||||
functionPriority = 0;
|
||||
class Arguments {};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
description = CSTRING(ModuleSurrender_Description); //Sync a unit to make them surrender.<br/>Source: ace_captives
|
||||
description = CSTRING(ModuleSurrender_Description);
|
||||
sync[] = {"AnyAI"};
|
||||
};
|
||||
};
|
||||
class GVAR(ModuleHandcuffed): Module_F {
|
||||
author = ECSTRING(common,ACETeam);
|
||||
category = "ACE";
|
||||
displayName = CSTRING(ModuleHandcuffed_DisplayName);
|
||||
function = QFUNC(moduleHandcuffed);
|
||||
scope = 2; //show in editor
|
||||
isGlobal = 0; //run on server
|
||||
isTriggerActivated = 1; //Wait for triggers
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa));
|
||||
functionPriority = 0;
|
||||
class Arguments {};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
description = CSTRING(ModuleHandcuffed_Description);
|
||||
sync[] = {"AnyAI"};
|
||||
};
|
||||
};
|
||||
@ -176,6 +188,7 @@ class CfgVehicles {
|
||||
scope = 2;
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
class Arguments {
|
||||
class allowHandcuffOwnSide {
|
||||
displayName = CSTRING(ModuleSettings_handcuffSide_name);
|
||||
|
BIN
addons/captives/UI/Icon_Module_Make_Unit_Handcuffed_ca.paa
Normal file
BIN
addons/captives/UI/Icon_Module_Make_Unit_Handcuffed_ca.paa
Normal file
Binary file not shown.
30
addons/captives/XEH_PREP.hpp
Normal file
30
addons/captives/XEH_PREP.hpp
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
PREP(canApplyHandcuffs);
|
||||
PREP(canEscortCaptive);
|
||||
PREP(canFriskPerson);
|
||||
PREP(canLoadCaptive);
|
||||
PREP(canRemoveHandcuffs);
|
||||
PREP(canStopEscorting);
|
||||
PREP(canSurrender);
|
||||
PREP(canUnloadCaptive);
|
||||
PREP(doApplyHandcuffs);
|
||||
PREP(doEscortCaptive);
|
||||
PREP(doFriskPerson);
|
||||
PREP(doLoadCaptive);
|
||||
PREP(doRemoveHandcuffs);
|
||||
PREP(doUnloadCaptive);
|
||||
PREP(findEmptyNonFFVCargoSeat);
|
||||
PREP(handleGetIn);
|
||||
PREP(handleGetOut);
|
||||
PREP(handleOnUnconscious);
|
||||
PREP(handlePlayerChanged);
|
||||
PREP(handleRespawn);
|
||||
PREP(handleUnitInitPost);
|
||||
PREP(handleZeusDisplayChanged);
|
||||
PREP(moduleHandcuffed);
|
||||
PREP(moduleSettings);
|
||||
PREP(moduleSurrender);
|
||||
PREP(setHandcuffed);
|
||||
PREP(setSurrendered);
|
||||
PREP(vehicleCaptiveMoveIn);
|
||||
PREP(vehicleCaptiveMoveOut);
|
@ -1,5 +1,11 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
["SettingsInitialized", {
|
||||
// Hold on a little bit longer to ensure anims will work
|
||||
[{
|
||||
GVAR(captivityEnabled) = true;
|
||||
}, [], 0.05] call EFUNC(common,waitAndExecute);
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
//Handles when someone starts escorting and then disconnects, leaving the captive attached
|
||||
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
|
||||
@ -18,7 +24,6 @@ if (isServer) then {
|
||||
}];
|
||||
};
|
||||
|
||||
["zeusDisplayChanged", {_this call FUNC(handleZeusDisplayChanged)}] call EFUNC(common,addEventHandler);
|
||||
["playerChanged", {_this call FUNC(handlePlayerChanged)}] call EFUNC(common,addEventhandler);
|
||||
["MoveInCaptive", {_this call FUNC(vehicleCaptiveMoveIn)}] call EFUNC(common,addEventHandler);
|
||||
["MoveOutCaptive", {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler);
|
||||
|
@ -2,33 +2,8 @@
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(canApplyHandcuffs);
|
||||
PREP(canEscortCaptive);
|
||||
PREP(canFriskPerson);
|
||||
PREP(canLoadCaptive);
|
||||
PREP(canRemoveHandcuffs);
|
||||
PREP(canStopEscorting);
|
||||
PREP(canSurrender);
|
||||
PREP(canUnloadCaptive);
|
||||
PREP(doApplyHandcuffs);
|
||||
PREP(doEscortCaptive);
|
||||
PREP(doFriskPerson);
|
||||
PREP(doLoadCaptive);
|
||||
PREP(doRemoveHandcuffs);
|
||||
PREP(doUnloadCaptive);
|
||||
PREP(findEmptyNonFFVCargoSeat);
|
||||
PREP(handleGetIn);
|
||||
PREP(handleGetOut);
|
||||
PREP(handleOnUnconscious);
|
||||
PREP(handlePlayerChanged);
|
||||
PREP(handleRespawn);
|
||||
PREP(handleUnitInitPost);
|
||||
PREP(handleZeusDisplayChanged);
|
||||
PREP(moduleSettings);
|
||||
PREP(moduleSurrender);
|
||||
PREP(setHandcuffed);
|
||||
PREP(setSurrendered);
|
||||
PREP(vehicleCaptiveMoveIn);
|
||||
PREP(vehicleCaptiveMoveOut);
|
||||
#include "XEH_PREP.hpp"
|
||||
|
||||
GVAR(captivityEnabled) = false;
|
||||
|
||||
ADDON = true;
|
||||
|
3
addons/captives/XEH_preStart.sqf
Normal file
3
addons/captives/XEH_preStart.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "XEH_PREP.hpp"
|
@ -2,7 +2,7 @@
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender)};
|
||||
units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender), QGVAR(ModuleHandcuffed)};
|
||||
weapons[] = {"ACE_CableTie"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_Interaction"};
|
||||
@ -17,3 +17,4 @@ class CfgPatches {
|
||||
#include "CfgMoves.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
#include "CfgEden.hpp"
|
@ -20,11 +20,12 @@ params ["_unit", "_target"];
|
||||
//Check sides, Player has cableTie, target is alive and not already handcuffed
|
||||
|
||||
(GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) &&
|
||||
("ACE_CableTie" in (items _unit)) &&
|
||||
{"ACE_CableTie" in (items _unit)} &&
|
||||
{alive _target} &&
|
||||
{!(_target getVariable [QGVAR(isHandcuffed), false])} &&
|
||||
{
|
||||
(_target getVariable ["ACE_isUnconscious", false]) || //isUnconscious
|
||||
{!([_target] call EFUNC(common,isPlayer))} || //is an AI (not a player)
|
||||
{GVAR(requireSurrender) == 0} || //or don't require surrendering
|
||||
{_target getVariable [QGVAR(isSurrendering), false]} || //or is surrendering
|
||||
{(GVAR(requireSurrender) == 2) && {(currentWeapon _target) == ""}} //or "SurrenderOrNoWeapon" and no weapon
|
||||
|
@ -45,7 +45,7 @@ if (_state) then {
|
||||
};
|
||||
|
||||
if (!(_unit getVariable [QGVAR(isEscorting), false])) then {
|
||||
[(_this select 1)] call cba_fnc_removePerFrameHandler;
|
||||
[(_this select 1)] call CBA_fnc_removePerFrameHandler;
|
||||
[objNull, _target, false] call EFUNC(common,claim);
|
||||
detach _target;
|
||||
_unit removeAction _actionID;
|
||||
|
@ -21,10 +21,10 @@ params ["_newUnit","_oldUnit"];
|
||||
//set showHUD based on new unit status:
|
||||
if ((_newUnit getVariable [QGVAR(isHandcuffed), false]) || {_newUnit getVariable [QGVAR(isSurrendering), false]}) then {
|
||||
TRACE_1("Player Change (showHUD false)",_newUnit);
|
||||
showHUD false;
|
||||
["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
|
||||
} else {
|
||||
TRACE_1("Player Change (showHUD true)",_newUnit);
|
||||
showHUD true;
|
||||
["captive", []] call EFUNC(common,showHud); //same as showHud true;
|
||||
};
|
||||
|
||||
//If old player was escorting, stop
|
||||
|
@ -40,12 +40,12 @@ if (_respawn > 3) then {
|
||||
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||
[_unit, false] call FUNC(setHandcuffed);
|
||||
};
|
||||
[_unit, QGVAR(Handcuffed), false] call EFUNC(common,setCaptivityStatus);
|
||||
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
||||
[_unit, false] call FUNC(setSurrendered);
|
||||
};
|
||||
[_unit, QGVAR(Surrendered), false] call EFUNC(common,setCaptivityStatus);
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
||||
_oldUnit setVariable [QGVAR(isEscorting), false, true];
|
||||
|
@ -17,15 +17,10 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit","_zeusIsOpen"];
|
||||
|
||||
//set showHUD based on unit status:
|
||||
if (!_zeusIsOpen) then {
|
||||
if ((_unit getVariable [QGVAR(isHandcuffed), false]) || {_unit getVariable [QGVAR(isSurrendering), false]}) then {
|
||||
TRACE_1("Player Change (showHUD false)",_unit);
|
||||
showHUD false;
|
||||
} else {
|
||||
TRACE_1("Player Change (showHUD true)",_unit);
|
||||
showHUD true;
|
||||
};
|
||||
if ((ACE_player getVariable [QGVAR(isHandcuffed), false]) || {ACE_player getVariable [QGVAR(isSurrendering), false]}) then {
|
||||
TRACE_1("Player Change (showHUD false)",ACE_player);
|
||||
["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
|
||||
} else {
|
||||
TRACE_1("Player Change (showHUD true)",ACE_player);
|
||||
["captive", []] call EFUNC(common,showHud); //same as showHud true;
|
||||
};
|
||||
|
39
addons/captives/functions/fnc_moduleHandcuffed.sqf
Normal file
39
addons/captives/functions/fnc_moduleHandcuffed.sqf
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Module Function to make a unit handcuffed (can be called from editor)
|
||||
* Also used for threeden attribute expression with dummy Logic Object
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The Module Logic <OBJECT>
|
||||
* 1: synced objects <ARRAY>
|
||||
* 2: Activated <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* [objNull, [player], true] call ace_captives_fnc_moduleHandcuffed
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_logic", "_units", "_activated"];
|
||||
|
||||
TRACE_3("params",_logic,_units,_activated);
|
||||
|
||||
if (!_activated) exitWith {};
|
||||
if (!isServer) exitWith {};
|
||||
|
||||
//Modules run before postInit can instal the event handler, so we need to wait a little bit
|
||||
[{
|
||||
params ["_units"];
|
||||
{
|
||||
TRACE_2("event",_x,local _x);
|
||||
["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||
} forEach _units;
|
||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
||||
|
||||
if (!isNull _logic) then {
|
||||
deleteVehicle _logic;
|
||||
};
|
@ -1,9 +1,10 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Module Function to make a unit surrender (can be called from editor, or placed with zeus)
|
||||
* Module Function to make a unit surrender (can be called from editor)
|
||||
* Also used for threeden attribute expression with dummy Logic Object
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The Module Logic Object <OBJECT>
|
||||
* 0: The Module Logic <OBJECT>
|
||||
* 1: synced objects <ARRAY>
|
||||
* 2: Activated <BOOL>
|
||||
*
|
||||
@ -11,26 +12,28 @@
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* Called from module
|
||||
* [objNull, [player], true] call ace_captives_fnc_moduleSurrender
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_bisMouseOver", "_mouseOverObject"];
|
||||
|
||||
params ["_logic", "_units", "_activated"];
|
||||
|
||||
TRACE_3("params",_logic,_units,_activated);
|
||||
|
||||
if (!_activated) exitWith {};
|
||||
if (!isServer) exitWith {};
|
||||
|
||||
if (local _logic) then {
|
||||
//Modules run before postInit can instal the event handler, so we need to wait a little bit
|
||||
[{
|
||||
params ["_units"];
|
||||
{
|
||||
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||
} forEach _units;
|
||||
}, [_units], 0.05]call EFUNC(common,waitAndExecute);
|
||||
//Modules run before postInit can instal the event handler, so we need to wait a little bit
|
||||
[{
|
||||
params ["_units"];
|
||||
{
|
||||
TRACE_2("event",_x,local _x);
|
||||
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||
} forEach _units;
|
||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
||||
|
||||
if (!isNull _logic) then {
|
||||
deleteVehicle _logic;
|
||||
};
|
||||
|
@ -19,16 +19,28 @@
|
||||
params ["_unit","_state"];
|
||||
TRACE_2("params",_unit,_state);
|
||||
|
||||
if (!local _unit) exitwith {
|
||||
if (!local _unit) exitWith {
|
||||
ERROR("running setHandcuffed on remote unit");
|
||||
};
|
||||
|
||||
if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
||||
// It's to soon to call this function, delay it
|
||||
if (EGVAR(common,settingsInitFinished)) then {
|
||||
// Settings are already initialized, but the small wait isn't over
|
||||
[DFUNC(setHandCuffed), _this, 0.05] call EFUNC(common,waitAndExecute);
|
||||
} else {
|
||||
// Settings are not initialized yet
|
||||
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
|
||||
};
|
||||
};
|
||||
|
||||
if ((_unit getVariable [QGVAR(isHandcuffed), false]) isEqualTo _state) exitWith {
|
||||
ERROR("setHandcuffed: current state same as new");
|
||||
};
|
||||
|
||||
if (_state) then {
|
||||
_unit setVariable [QGVAR(isHandcuffed), true, true];
|
||||
[_unit, QGVAR(Handcuffed), true] call EFUNC(common,setCaptivityStatus);
|
||||
[_unit, "setCaptive", QGVAR(Handcuffed), true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_unit getVariable [QGVAR(isSurrendering), false]) then { //If surrendering, stop
|
||||
[_unit, false] call FUNC(setSurrendered);
|
||||
@ -38,7 +50,7 @@ if (_state) then {
|
||||
_unit setVariable [QGVAR(CargoIndex), ((vehicle _unit) getCargoIndex _unit), true];
|
||||
|
||||
if (_unit == ACE_player) then {
|
||||
showHUD false;
|
||||
["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
|
||||
};
|
||||
|
||||
// fix anim on mission start (should work on dedicated servers)
|
||||
@ -56,8 +68,11 @@ if (_state) then {
|
||||
|
||||
//Adds an animation changed eh
|
||||
//If we get a change in animation then redo the animation (handles people vaulting to break the animation chain)
|
||||
private "_animChangedEHID";
|
||||
|
||||
private _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1];
|
||||
if (_animChangedEHID != -1) then {
|
||||
TRACE_1("removing animChanged EH",_animChangedEHID);
|
||||
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||
};
|
||||
_animChangedEHID = _unit addEventHandler ["AnimChanged", {
|
||||
params ["_unit", "_newAnimation"];
|
||||
TRACE_2("AnimChanged",_unit,_newAnimation);
|
||||
@ -67,7 +82,6 @@ if (_state) then {
|
||||
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
|
||||
};
|
||||
} else {
|
||||
|
||||
_turretPath = [];
|
||||
{
|
||||
_x params ["_xUnit", "", "", "_xTurretPath"];
|
||||
@ -87,11 +101,10 @@ if (_state) then {
|
||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
||||
} else {
|
||||
_unit setVariable [QGVAR(isHandcuffed), false, true];
|
||||
[_unit, QGVAR(Handcuffed), false] call EFUNC(common,setCaptivityStatus);
|
||||
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
//remove AnimChanged EH
|
||||
private "_animChangedEHID";
|
||||
_animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1];
|
||||
private _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1];
|
||||
TRACE_1("removing animChanged EH",_animChangedEHID);
|
||||
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||
_unit setVariable [QGVAR(handcuffAnimEHID), -1];
|
||||
@ -106,7 +119,7 @@ if (_state) then {
|
||||
};
|
||||
|
||||
if (_unit == ACE_player) then {
|
||||
showHUD true;
|
||||
["captive", []] call EFUNC(common,showHud); //same as showHud true;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -19,10 +19,21 @@
|
||||
params ["_unit","_state"];
|
||||
TRACE_2("params",_unit,_state);
|
||||
|
||||
if (!local _unit) exitwith {
|
||||
if (!local _unit) exitWith {
|
||||
ERROR("running surrender on remote unit");
|
||||
};
|
||||
|
||||
if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
||||
// It's to soon to call this function, delay it
|
||||
if (EGVAR(common,settingsInitFinished)) then {
|
||||
// Settings are already initialized, but the small wait isn't over
|
||||
[DFUNC(setSurrendered), _this, 0.05] call EFUNC(common,waitAndExecute);
|
||||
} else {
|
||||
// Settings are not initialized yet
|
||||
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
|
||||
};
|
||||
};
|
||||
|
||||
if ((_unit getVariable [QGVAR(isSurrendering), false]) isEqualTo _state) exitWith {
|
||||
ERROR("Surrender: current state same as new");
|
||||
};
|
||||
@ -33,10 +44,10 @@ if (_state) then {
|
||||
|
||||
_unit setVariable [QGVAR(isSurrendering), true, true];
|
||||
|
||||
[_unit, QGVAR(Surrendered), true] call EFUNC(common,setCaptivityStatus);
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), true] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_unit == ACE_player) then {
|
||||
showHUD false;
|
||||
["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
|
||||
};
|
||||
|
||||
[_unit] call EFUNC(common,fixLoweredRifleAnimation);
|
||||
@ -48,7 +59,11 @@ if (_state) then {
|
||||
if (_unit getVariable [QGVAR(isSurrendering), false] && {(vehicle _unit) == _unit}) then {
|
||||
//Adds an animation changed eh
|
||||
//If we get a change in animation then redo the animation (handles people vaulting to break the animation chain)
|
||||
private "_animChangedEHID";
|
||||
private _animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1];
|
||||
if (_animChangedEHID != -1) then {
|
||||
TRACE_1("removing animChanged EH",_animChangedEHID);
|
||||
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||
};
|
||||
_animChangedEHID = _unit addEventHandler ["AnimChanged", {
|
||||
params ["_unit", "_newAnimation"];
|
||||
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
|
||||
@ -61,18 +76,17 @@ if (_state) then {
|
||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
||||
} else {
|
||||
_unit setVariable [QGVAR(isSurrendering), false, true];
|
||||
[_unit, QGVAR(Surrendered), false] call EFUNC(common,setCaptivityStatus);
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
//remove AnimChanged EH
|
||||
private "_animChangedEHID";
|
||||
_animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1];
|
||||
private _animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1];
|
||||
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||
_unit setVariable [QGVAR(surrenderAnimEHID), -1];
|
||||
|
||||
if (_unit == ACE_player) then {
|
||||
//only re-enable HUD if not handcuffed
|
||||
if (!(_unit getVariable [QGVAR(isHandcuffed), false])) then {
|
||||
showHUD true;
|
||||
["captive", []] call EFUNC(common,showHud); //same as showHud true;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2,6 +2,9 @@
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_CAPTIVES
|
||||
#define DEBUG_MODE_FULL
|
||||
|
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Captives">
|
||||
<Key ID="STR_ACE_Captives_SetCaptive">
|
||||
<English>Take Prisoner</English>
|
||||
<German>Gefangen nehmen</German>
|
||||
<Spanish>Tomar prisionero</Spanish>
|
||||
<French>Capturer le prisonnier</French>
|
||||
<French>Prendre prisonnier</French>
|
||||
<Polish>Aresztuj</Polish>
|
||||
<Czech>Zajmout Osobu</Czech>
|
||||
<Czech>Zajmout osobu</Czech>
|
||||
<Italian>Arresta il prigioniero</Italian>
|
||||
<Portuguese>Tomar Prisioneiro</Portuguese>
|
||||
<Hungarian>Foglyul ejtés</Hungarian>
|
||||
@ -19,7 +19,7 @@
|
||||
<Spanish>Liberar prisionero</Spanish>
|
||||
<Polish>Wypuść więźnia</Polish>
|
||||
<French>Libérer le prisonnier</French>
|
||||
<Czech>Osvobodit Zajatce</Czech>
|
||||
<Czech>Osvobodit zajatce</Czech>
|
||||
<Italian>Libera il prigioniero</Italian>
|
||||
<Portuguese>Libertar Prisioneiro</Portuguese>
|
||||
<Hungarian>Fogoly szabadon engedése</Hungarian>
|
||||
@ -31,7 +31,7 @@
|
||||
<Spanish>Escoltar prisionero</Spanish>
|
||||
<Polish>Eskortuj więźnia</Polish>
|
||||
<French>Escorter le prisonnier</French>
|
||||
<Czech>Eskortovat Zajatce</Czech>
|
||||
<Czech>Eskortovat zajatce</Czech>
|
||||
<Italian>Scorta il Prigioniero</Italian>
|
||||
<Portuguese>Escoltar Prisioneiro</Portuguese>
|
||||
<Hungarian>Fogoly kísérése</Hungarian>
|
||||
@ -43,7 +43,7 @@
|
||||
<Spanish>Soltar prisionero</Spanish>
|
||||
<Polish>Anuluj eskortowanie</Polish>
|
||||
<French>Relâcher le prisonnier</French>
|
||||
<Czech>Uvolnit Zajatce</Czech>
|
||||
<Czech>Uvolnit zajatce</Czech>
|
||||
<Italian>Rilascia il Prigioniero</Italian>
|
||||
<Portuguese>Largar Prisioneiro</Portuguese>
|
||||
<Hungarian>Fogoly elengedése</Hungarian>
|
||||
@ -54,7 +54,7 @@
|
||||
<German>Du musst ihn zuerst gefangen nehmen.</German>
|
||||
<Spanish>Necesitas hacerle prisionero primero!</Spanish>
|
||||
<Polish>Najpierw musisz go aresztować!</Polish>
|
||||
<French>Vous devez d'abord le capturer!</French>
|
||||
<French>Vous devez d'abord le capturer !</French>
|
||||
<Czech>Musíš ho nejdříve zajmout!</Czech>
|
||||
<Italian>Prima devi arrestarlo!</Italian>
|
||||
<Portuguese>Você deve tomá-lo como prisioneiro primeiro!</Portuguese>
|
||||
@ -91,7 +91,7 @@
|
||||
<Polish>Opaska zaciskowa</Polish>
|
||||
<Spanish>Precinto</Spanish>
|
||||
<French>Serflex</French>
|
||||
<Czech>Stahovací Pásek</Czech>
|
||||
<Czech>Stahovací pásek</Czech>
|
||||
<Portuguese>Algema Plástica</Portuguese>
|
||||
<Italian>Fascietta</Italian>
|
||||
<Hungarian>Gyorskötöző</Hungarian>
|
||||
@ -112,7 +112,7 @@
|
||||
<Key ID="STR_ACE_Captives_FriskMenuHeader">
|
||||
<English>Inventory of frisked person</English>
|
||||
<German>Inventar der durchsuchten Person</German>
|
||||
<French>Inventaire de la fouille</French>
|
||||
<French>Inventaire de la personne fouillé</French>
|
||||
<Spanish>Inventario de la persona cacheada</Spanish>
|
||||
<Hungarian>Motozott személy felszerelése</Hungarian>
|
||||
<Czech>Inventář prohledávané osoby</Czech>
|
||||
@ -124,7 +124,7 @@
|
||||
<Key ID="STR_ACE_Captives_FriskPerson">
|
||||
<English>Frisk person</English>
|
||||
<German>Person durchsuchen</German>
|
||||
<French>Fouiller</French>
|
||||
<French>Fouiller la personne</French>
|
||||
<Spanish>Cachear</Spanish>
|
||||
<Czech>Prohledávaná osoba</Czech>
|
||||
<Polish>Rewiduj osobę</Polish>
|
||||
@ -147,7 +147,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_StopSurrendering">
|
||||
<English>Stop Surrendering</English>
|
||||
<French>Annuler la capitulation</French>
|
||||
<French>Annuler la reddition</French>
|
||||
<German>Den Kampf erneut aufnehmen</German>
|
||||
<Spanish>Dejar de rendirse</Spanish>
|
||||
<Portuguese>Parar de se render</Portuguese>
|
||||
@ -166,18 +166,42 @@
|
||||
<Portuguese>Fazer unidade se render</Portuguese>
|
||||
<French>Faire capituler l'unité</French>
|
||||
<Hungarian>Egység kapitulálása</Hungarian>
|
||||
<Russian>Сделать юнита пленным</Russian>
|
||||
<Russian>Заставить юнита сдаться</Russian>
|
||||
<Italian>Fai arrendere l'unità</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSurrender_Description">
|
||||
<English>Sync a unit to make them surrender.<br />Source: ace_captives</English>
|
||||
<Polish>Zsynchronizuj z jednostką, aby skapitulowała.<br />Źródło: ace_captives</Polish>
|
||||
<Spanish>Sincroniza una unidad para hacer que se rinda.<br />Fuente: ace_captives</Spanish>
|
||||
<German>Einheit synchronisieren, um sie kapitulieren zu lassen.<br />Quelle: ace_captives</German>
|
||||
<Czech>Synchronizuj s jednotkou, která se má vzdát.<br />Zdroj: ace_captives</Czech>
|
||||
<Portuguese>Sincroniza uma unidade para fazer com que ela se renda. <br/>Fonte: ace_captives</Portuguese>
|
||||
<French>Synchronise une unité pour la rendre captive. <br/>Source: ace_captives</French>
|
||||
<Hungarian>Egység szinkronizálása, hogy kapituláljon.<br />Forrás: ace_captives</Hungarian>
|
||||
<Russian>Синхронизируйте с юнитами, чтобы сделать их пленными.<br />Источник: ace_captives</Russian>
|
||||
<English>Sync a unit to make them surrender.</English>
|
||||
<Polish>Zsynchronizuj z jednostką, aby skapitulowała.</Polish>
|
||||
<Spanish>Sincroniza una unidad para hacer que se rinda.</Spanish>
|
||||
<German>Einheit synchronisieren, um sie kapitulieren zu lassen.</German>
|
||||
<Czech>Synchronizuj s jednotkou, která se má vzdát.</Czech>
|
||||
<Portuguese>Sincroniza uma unidade para fazer com que ela se renda.</Portuguese>
|
||||
<French>Synchronise une unité pour la rendre captive.</French>
|
||||
<Hungarian>Egység szinkronizálása, hogy kapituláljon.</Hungarian>
|
||||
<Russian>Синхронизируйте с юнитами, чтобы заставить их сдаться в плен.</Russian>
|
||||
<Italian>Sincronizza una unità per farla arrendere.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleHandcuffed_DisplayName">
|
||||
<English>Make Unit Handcuffed</English>
|
||||
<German>Einheit in Handschellen legen</German>
|
||||
<Polish>Skuj jednostkę</Polish>
|
||||
<Portuguese>Fazer unidade algemada</Portuguese>
|
||||
<Russian>Связать юнита</Russian>
|
||||
<Czech>Spoutat jednotku</Czech>
|
||||
<Italian>Metti manette all'unità</Italian>
|
||||
<Spanish>Hacer que la unidad esté esposada</Spanish>
|
||||
<French>Rend une unité captive</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleHandcuffed_Description">
|
||||
<English>Sync a unit to make them handcuffed.</English>
|
||||
<German>Synchronisiere eine Einheit um sie in Handschellen zu legen.</German>
|
||||
<Polish>Zsynchronizuj z jednostką, aby została skuta.</Polish>
|
||||
<Portuguese>Sincronizar uma unidade para deixá-la algemada.</Portuguese>
|
||||
<Russian>Синхронизируйте с юнитами, чтобы сделать их связанными.</Russian>
|
||||
<Czech>Synchronizovat s jednotkou, která má být v poutech.</Czech>
|
||||
<Italian>Sincronizza un'unità per metterle le manette.</Italian>
|
||||
<Spanish>Sincroniza una unidad para hacer que esté esposada.</Spanish>
|
||||
<French>Synchronisez une unité pour la rendre captive.</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
|
||||
<English>Captives Settings</English>
|
||||
@ -186,9 +210,10 @@
|
||||
<Czech>Nastavení zajatce</Czech>
|
||||
<German>Gefangenen-Einstellungen</German>
|
||||
<Portuguese>Ajustes de prisioneiros</Portuguese>
|
||||
<French>Options de capitulation</French>
|
||||
<French>Options de reddition</French>
|
||||
<Hungarian>Fogoly-beállítások</Hungarian>
|
||||
<Russian>Настройки пленения</Russian>
|
||||
<Italian>Impostazioni Prigionieri</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_Description">
|
||||
<English>Controls settings for surrender and cable ties</English>
|
||||
@ -197,9 +222,10 @@
|
||||
<Czech>Toto kontroluje nastavení kapitulace a pout</Czech>
|
||||
<German>Einstellungen zur Kapitulation und Kabelbindern</German>
|
||||
<Portuguese>Controla as configurações de rendição e abraçadeiras</Portuguese>
|
||||
<French>Contrôle les paramètres de la rédition et des Serflex</French>
|
||||
<French>Contrôle les paramètres de la reddition et des Serflex</French>
|
||||
<Hungarian>Szabályozza a kapituláció és bilincselés beállításait</Hungarian>
|
||||
<Russian>Управляет настройками сдачи в плен и связывания</Russian>
|
||||
<Italian>Controlla le impostazioni per la resa e le manette</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_name">
|
||||
<English>Can handcuff own side</English>
|
||||
@ -208,9 +234,10 @@
|
||||
<Czech>Může spoutat spolubojovníky</Czech>
|
||||
<German>Kann Kameraden fesseln</German>
|
||||
<Portuguese>Pode algemar o próprio lado</Portuguese>
|
||||
<French>Peut libérer sa propre faction</French>
|
||||
<French>Peut capturer sa propre faction</French>
|
||||
<Hungarian>Saját oldal megbilincselhető</Hungarian>
|
||||
<Russian>Связать союзника</Russian>
|
||||
<Italian>Puoi ammanettare unità alleate</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_description">
|
||||
<English>Can players cabletie units on their own side</English>
|
||||
@ -222,6 +249,7 @@
|
||||
<French>Les joueurs peuvent utiliser les Serflex sur leur propre camp</French>
|
||||
<Hungarian>A játékosok megkötözhetik-e a saját oldalukon lévő egységeket</Hungarian>
|
||||
<Russian>Разрешить игрокам связывать юнитов своей стороны</Russian>
|
||||
<Italian>I giocatori possono ammanettare unità alleate</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_name">
|
||||
<English>Allow surrendering</English>
|
||||
@ -230,9 +258,10 @@
|
||||
<Czech>Povolit vzdávání</Czech>
|
||||
<German>Kapitulation erlauben</German>
|
||||
<Portuguese>Permite rendição</Portuguese>
|
||||
<French>Permettre la capitulation</French>
|
||||
<French>Permettre la reddition</French>
|
||||
<Hungarian>Kapituláció engedélyezése</Hungarian>
|
||||
<Russian>Сдаться в плен</Russian>
|
||||
<Italian>Permetti Resa</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_description">
|
||||
<English>Players can surrender after holstering their weapon</English>
|
||||
@ -244,6 +273,7 @@
|
||||
<French>Les joueurs peuvent se rendre après avoir rangé leur arme</French>
|
||||
<Hungarian>A játékosok megadhatják magukat a fegyverük elrakása után</Hungarian>
|
||||
<Russian>Игроки могут сдаться в плен после того, как уберут оружие</Russian>
|
||||
<Italian>I giocatori possono arrendersi dopo aver messo via le proprie armi</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_name">
|
||||
<English>Require surrendering</English>
|
||||
@ -252,6 +282,9 @@
|
||||
<Portuguese>Requer rendição</Portuguese>
|
||||
<Russian>Требовать пленения</Russian>
|
||||
<Spanish>Requiere rendición</Spanish>
|
||||
<Czech>Vzdávání vyžadováno</Czech>
|
||||
<Italian>Richiedi Resa</Italian>
|
||||
<French>Requiert la reddition</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_description">
|
||||
<English>Require Players to surrender before they can be arrested</English>
|
||||
@ -260,6 +293,9 @@
|
||||
<Portuguese>Requer que jogadores se rendam antes de poderem ser presos</Portuguese>
|
||||
<Russian>Требуется, чтобы игрок сдался в плен прежде, чем его можно будет связать</Russian>
|
||||
<Spanish>Requiere que los Jugadores se rindan antes de arrestarlos</Spanish>
|
||||
<Czech>Vyžaduje, aby se hráč nejdříve vzdal, poté může být spoután</Czech>
|
||||
<Italian>I giocatori devono arrendersi prima che possano essere arrestati</Italian>
|
||||
<French>Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_SurrenderOnly">
|
||||
<English>Surrendering only</English>
|
||||
@ -268,6 +304,9 @@
|
||||
<Portuguese>Somente rendição </Portuguese>
|
||||
<Russian>Только сдавшийся в плен</Russian>
|
||||
<Spanish>Solo rendición</Spanish>
|
||||
<Czech>Pouze vzdávání</Czech>
|
||||
<Italian>Solo Resa</Italian>
|
||||
<French>Reddition seulement</French>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_SurrenderOrNoWeapon">
|
||||
<English>Surrendering or No weapon</English>
|
||||
@ -276,6 +315,9 @@
|
||||
<Portuguese>Rendição ou desarmado</Portuguese>
|
||||
<Russian>Сдавшийся или безоружный</Russian>
|
||||
<Spanish>Rendición o desarme</Spanish>
|
||||
<Czech>Vzdávání nebo beze zbraně</Czech>
|
||||
<Italian>Resa o senza armi</Italian>
|
||||
<French>Capitulation ou desarmé</French>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,3 +1,10 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
@ -12,7 +19,9 @@ class Extended_PostInit_EventHandlers {
|
||||
|
||||
class Extended_Killed_EventHandlers {
|
||||
class All {
|
||||
init = QUOTE(call FUNC(handleDestroyed));
|
||||
class ADDON {
|
||||
serverKilled = QUOTE(call FUNC(handleDestroyed));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -48,6 +57,11 @@ class Extended_InitPost_EventHandlers {
|
||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class RoadCone_F {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
|
||||
};
|
||||
};
|
||||
class Car {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initVehicle));
|
||||
@ -88,4 +102,9 @@ class Extended_InitPost_EventHandlers {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
class Land_PortableLight_single_F {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,5 +1,12 @@
|
||||
|
||||
class CBA_Extended_EventHandlers;
|
||||
|
||||
class CfgVehicles {
|
||||
class ACE_Module;
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription;
|
||||
};
|
||||
class ACE_Module: Module_F {};
|
||||
class ACE_moduleCargoSettings: ACE_Module {
|
||||
scope = 2;
|
||||
displayName = CSTRING(SettingsModule_DisplayName);
|
||||
@ -8,6 +15,7 @@ class CfgVehicles {
|
||||
function = QFUNC(moduleSettings);
|
||||
functionPriority = 1;
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
isTriggerActivated = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
@ -25,6 +33,33 @@ class CfgVehicles {
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
class GVAR(makeLoadable): ACE_Module {
|
||||
scope = 2;
|
||||
displayName = CSTRING(makeLoadable_displayName);
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_makeLoadable_ca.paa));
|
||||
category = "ACE_Logistics";
|
||||
function = QFUNC(moduleMakeLoadable);
|
||||
isGlobal = 1;
|
||||
isTriggerActivated = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
class Arguments {
|
||||
class canLoad {
|
||||
displayName = CSTRING(makeLoadable_displayName);
|
||||
description = CSTRING(MakeLoadable_description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class setSize {
|
||||
displayName = CSTRING(makeLoadable_setSize_displayName);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
description = CSTRING(makeLoadable_description);
|
||||
sync[] = {"AnyStaticObject"};
|
||||
};
|
||||
};
|
||||
|
||||
class LandVehicle;
|
||||
class Car: LandVehicle {
|
||||
@ -160,7 +195,7 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
class Heli_Transport_02_base_F;
|
||||
class I_Heli_Transport_02_F : Heli_Transport_02_base_F {
|
||||
class I_Heli_Transport_02_F: Heli_Transport_02_base_F {
|
||||
GVAR(space) = 20;
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
@ -171,6 +206,13 @@ class CfgVehicles {
|
||||
GVAR(hasCargo) = 0;
|
||||
};
|
||||
|
||||
// autonomus
|
||||
class Helicopter_Base_F;
|
||||
class UAV_01_base_F: Helicopter_Base_F {
|
||||
GVAR(space) = 0;
|
||||
GVAR(hasCargo) = 0;
|
||||
};
|
||||
|
||||
// boats
|
||||
class Ship;
|
||||
class Ship_F: Ship {
|
||||
@ -229,15 +271,32 @@ class CfgVehicles {
|
||||
GVAR(size) = 6;
|
||||
};
|
||||
|
||||
|
||||
class Slingload_base_F: ReammoBox_F {};
|
||||
class CargoNet_01_base_F: Slingload_base_F { //Slingload pallets
|
||||
GVAR(size) = 6;
|
||||
};
|
||||
class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers
|
||||
GVAR(canLoad) = 0;
|
||||
};
|
||||
// objects
|
||||
class RoadCone_F: ThingX {
|
||||
GVAR(size) = 1;
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
class RoadBarrier_F: RoadCone_F {
|
||||
GVAR(size) = 2;
|
||||
};
|
||||
|
||||
class Scrapyard_base_F;
|
||||
class Land_PaperBox_closed_F: Scrapyard_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 10;
|
||||
GVAR(hasCargo) = 1;
|
||||
GVAR(size) = 11;
|
||||
GVAR(canLoad) = 1;
|
||||
XEH_ENABLED;
|
||||
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
@ -269,163 +328,253 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
class Cargo10_base_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 14;
|
||||
GVAR(size) = 15;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_brick_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_cyan_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_grey_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_light_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_light_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_military_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Ruins_F;
|
||||
class Land_Cargo20_military_ruins_F: Ruins_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo20_orange_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_sand_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_vr_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_white_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo20_yellow_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 49;
|
||||
GVAR(size) = 50;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo40_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_brick_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_cyan_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_grey_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_light_blue_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_light_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_military_green_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo40_military_ruins_F: Ruins_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
class Land_Cargo40_orange_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_red_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_sand_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_vr_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_white_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
class Land_Cargo40_yellow_F: Cargo_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 99;
|
||||
GVAR(size) = 100;
|
||||
XEH_ENABLED;
|
||||
};
|
||||
|
||||
// small
|
||||
class Land_CargoBox_V1_F: ThingX {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 7;
|
||||
GVAR(hasCargo) = 1;
|
||||
GVAR(size) = 7;
|
||||
XEH_ENABLED;
|
||||
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
@ -438,4 +587,10 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Lamps_base_F;
|
||||
class Land_PortableLight_single_F: Lamps_base_F {
|
||||
GVAR(size) = 1;
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
};
|
||||
|
BIN
addons/cargo/UI/Icon_Module_makeLoadable_ca.paa
Normal file
BIN
addons/cargo/UI/Icon_Module_makeLoadable_ca.paa
Normal file
Binary file not shown.
20
addons/cargo/XEH_PREP.hpp
Normal file
20
addons/cargo/XEH_PREP.hpp
Normal file
@ -0,0 +1,20 @@
|
||||
|
||||
PREP(addCargoItem);
|
||||
PREP(canLoad);
|
||||
PREP(canLoadItemIn);
|
||||
PREP(canUnloadItem);
|
||||
PREP(findNearestVehicle);
|
||||
PREP(getCargoSpaceLeft);
|
||||
PREP(getSizeItem);
|
||||
PREP(handleDestroyed);
|
||||
PREP(initObject);
|
||||
PREP(initVehicle);
|
||||
PREP(loadItem);
|
||||
PREP(makeLoadable);
|
||||
PREP(moduleMakeLoadable);
|
||||
PREP(moduleSettings);
|
||||
PREP(onMenuOpen);
|
||||
PREP(startLoadIn);
|
||||
PREP(startUnload);
|
||||
PREP(unloadItem);
|
||||
PREP(validateCargoSpace);
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user