mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'origin/master' into wep_dragon
This commit is contained in:
commit
8c5c668599
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/)
|
27
.travis.yml
27
.travis.yml
@ -1,14 +1,29 @@
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
- release
|
||||||
language: python
|
language: python
|
||||||
python:
|
python:
|
||||||
- "3.4"
|
- '3.4'
|
||||||
before_script:
|
before_script:
|
||||||
- pip install pygithub
|
- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
||||||
- pip install pygithub3
|
pip install pygithub;
|
||||||
|
pip install pygithub3;
|
||||||
|
fi
|
||||||
script:
|
script:
|
||||||
- python3 tools/deploy.py
|
- python3 tools/sqf_validator.py
|
||||||
|
- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
||||||
|
python3 tools/deploy.py;
|
||||||
|
fi
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- secure: "KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg="
|
- secure: KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg=
|
||||||
|
notifications:
|
||||||
|
slack:
|
||||||
|
rooms:
|
||||||
|
- 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:
|
# If you contributed, but are not listed here, contact me:
|
||||||
# koffeinflummi@gmail.com
|
# koffeinflummi@gmail.com
|
||||||
#
|
#
|
||||||
@ -14,7 +14,8 @@ Garth "L-H" de Wet <garthofhearts@gmail.com>
|
|||||||
Giallustio
|
Giallustio
|
||||||
Glowbal
|
Glowbal
|
||||||
Janus
|
Janus
|
||||||
jokoho482 <jokoho482@gmail.com>`
|
jokoho482 <jokoho482@gmail.com>
|
||||||
|
Jonpas <jonpas33@gmail.com>
|
||||||
Kieran
|
Kieran
|
||||||
NouberNou
|
NouberNou
|
||||||
PabstMirror <pabstmirror@gmail.com>
|
PabstMirror <pabstmirror@gmail.com>
|
||||||
@ -37,13 +38,16 @@ alef <alefor@gmail.com>
|
|||||||
Aleksey EpMAK Yermakov <epmak777@gmail.com>
|
Aleksey EpMAK Yermakov <epmak777@gmail.com>
|
||||||
Alganthe <alganthe@live.fr>
|
Alganthe <alganthe@live.fr>
|
||||||
Anthariel <Contact@storm-simulation.com>
|
Anthariel <Contact@storm-simulation.com>
|
||||||
|
Arkhir <wonsz666@gmail.com >
|
||||||
Asgar Serran <piechottaf@web.de>
|
Asgar Serran <piechottaf@web.de>
|
||||||
|
BaerMitUmlaut
|
||||||
Bamse <bamsis@gmail.com>
|
Bamse <bamsis@gmail.com>
|
||||||
Bla1337
|
Bla1337
|
||||||
BlackPixxel <blackpixxel96@gmail.com>
|
BlackPixxel <blackpixxel96@gmail.com>
|
||||||
BlackQwar
|
BlackQwar
|
||||||
Brakoviejo
|
Brakoviejo
|
||||||
Brisse <brisse@outlook.com>
|
Brisse <brisse@outlook.com>
|
||||||
|
Brostrom.A | Evul <andreas.brostrom.ce@gmail.com>
|
||||||
BullHorn <bullhorn7@gmail.com>
|
BullHorn <bullhorn7@gmail.com>
|
||||||
Clon1998 <ps.patti1998@gmail.com>
|
Clon1998 <ps.patti1998@gmail.com>
|
||||||
Codingboy
|
Codingboy
|
||||||
@ -51,19 +55,25 @@ Coren <coren4@gmail.com>
|
|||||||
Crusty
|
Crusty
|
||||||
Dharma Bellamkonda <dharma.bellamkonda@gmail.com>
|
Dharma Bellamkonda <dharma.bellamkonda@gmail.com>
|
||||||
Dimaslg <dimaslg@telecable.es>
|
Dimaslg <dimaslg@telecable.es>
|
||||||
|
dixon13 <dixonbegay@gmail.com>
|
||||||
Drill <drill87@gmail.com>
|
Drill <drill87@gmail.com>
|
||||||
|
Dudakov aka [OMCB]Kaban <dudakov.s@gmail.com>
|
||||||
|
Dslyecxi <dslyecxi@gmail.com>
|
||||||
eRazeri
|
eRazeri
|
||||||
evromalarkey <evromalarkey@gmail.com>
|
evromalarkey <evromalarkey@gmail.com>
|
||||||
F3 Project <alanr@ferstaberinde.com>
|
F3 Project <alanr@ferstaberinde.com>
|
||||||
Falke75
|
Falke75
|
||||||
Ferenczi
|
Ferenczi
|
||||||
Ferenzi
|
Ferenzi
|
||||||
|
FFAAMOD <modffaa@gmail.com>
|
||||||
Filip Basara <filip.basara93@googlemail.com>
|
Filip Basara <filip.basara93@googlemail.com>
|
||||||
|
fr89k <kaschitoku@web.de>
|
||||||
FreeZbe <freeseb@gmail.com>
|
FreeZbe <freeseb@gmail.com>
|
||||||
geraldbolso1899
|
geraldbolso1899
|
||||||
Ghost
|
Ghost
|
||||||
Gianmarco Varriale (TeamNuke) <admin@forhost.org>
|
Gianmarco Varriale (TeamNuke) <admin@forhost.org>
|
||||||
GieNkoV <gienkov.grzegorz@gmail.com>
|
GieNkoV <gienkov.grzegorz@gmail.com>
|
||||||
|
GitHawk <githawk@gmx.net>
|
||||||
gpgpgpgp
|
gpgpgpgp
|
||||||
Grzegorz
|
Grzegorz
|
||||||
Hamburger SV
|
Hamburger SV
|
||||||
@ -71,7 +81,6 @@ Harakhti <shadowdragonphd@gmail.com>
|
|||||||
havena <silveredenis@gmail.com>
|
havena <silveredenis@gmail.com>
|
||||||
Hawkins
|
Hawkins
|
||||||
Head <brobergsebastian@gmail.com>
|
Head <brobergsebastian@gmail.com>
|
||||||
Jonpas <jonpas33@gmail.com>
|
|
||||||
Karneck <dschultz26@hotmail.com>
|
Karneck <dschultz26@hotmail.com>
|
||||||
Kavinsky <nmunozfernandez@gmail.com>
|
Kavinsky <nmunozfernandez@gmail.com>
|
||||||
Kllrt <kllrtik@gmail.com>
|
Kllrt <kllrtik@gmail.com>
|
||||||
@ -99,12 +108,15 @@ Robert Boklahánics <bokirobi@gmail.com>
|
|||||||
ruPaladin <happyworm24@rambler.ru>
|
ruPaladin <happyworm24@rambler.ru>
|
||||||
simon84 <badguy360th@gmail.com>
|
simon84 <badguy360th@gmail.com>
|
||||||
Sniperwolf572 <tenga6@gmail.com>
|
Sniperwolf572 <tenga6@gmail.com>
|
||||||
|
System98
|
||||||
SzwedzikPL <szwedzikpl@gmail.com>
|
SzwedzikPL <szwedzikpl@gmail.com>
|
||||||
Tachi <zaveruha007@gmail.com>
|
Tachi <zaveruha007@gmail.com>
|
||||||
Toaster <jonathan.pereira@gmail.com>
|
Toaster <jonathan.pereira@gmail.com>
|
||||||
Tonic
|
Tonic
|
||||||
Tourorist <tourorist@gmail.com>
|
Tourorist <tourorist@gmail.com>
|
||||||
Valentin Torikian <valentin.torikian@gmail.com>
|
Valentin Torikian <valentin.torikian@gmail.com>
|
||||||
|
voiper
|
||||||
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
||||||
Winter <simon@agius-muscat.net>
|
Winter <simon@agius-muscat.net>
|
||||||
zGuba
|
zGuba
|
||||||
|
Grey-Soldierman <gungamer101@hotmail.com>
|
||||||
|
4
LICENSE
4
LICENSE
@ -22,13 +22,13 @@ source code of the individual modules.
|
|||||||
When publishing a derivative of this product you may not use a name that
|
When publishing a derivative of this product you may not use a name that
|
||||||
might create the impression that your version is an official release.
|
might create the impression that your version is an official release.
|
||||||
|
|
||||||
Some folders of this project may contain a seperate LICENSE file. Should
|
Some folders of this project may contain a separate LICENSE file. Should
|
||||||
that be the case, everything in that folder and all subfolders is subject
|
that be the case, everything in that folder and all subfolders is subject
|
||||||
to that license instead.
|
to that license instead.
|
||||||
|
|
||||||
|
|
||||||
============================================================================
|
============================================================================
|
||||||
Full Gnu General Public License Text
|
Full GNU General Public License Text
|
||||||
============================================================================
|
============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
31
README.md
31
README.md
@ -1,24 +1,32 @@
|
|||||||
<p align="center">
|
<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>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/acemod/ACE3/releases">
|
<a href="https://github.com/acemod/ACE3/releases">
|
||||||
<img src="https://img.shields.io/badge/Version-3.2.1-blue.svg" alt="ACE3 Version">
|
<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/releases/download/v3.2.1/ace3_3.2.1.zip">
|
|
||||||
<img src="http://img.shields.io/badge/Download-56.5_MB-green.svg" alt="ACE3 Download">
|
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/issues">
|
<a href="https://github.com/acemod/ACE3/issues">
|
||||||
<img src="http://img.shields.io/github/issues-raw/acemod/ACE3.svg?label=Issues" alt="ACE3 Issues">
|
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://forums.bistudio.com/topic/181341-ace3-a-collaborative-merger-between-agm-cse-and-ace/?p=2859670">
|
<a href="https://forums.bistudio.com/topic/181341-ace3-a-collaborative-merger-between-agm-cse-and-ace/?p=2859670">
|
||||||
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg" alt="BIF Thread">
|
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square" alt="BIF Thread">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/blob/master/LICENSE">
|
<a href="https://github.com/acemod/ACE3/blob/master/LICENSE">
|
||||||
<img src="http://img.shields.io/badge/License-GPLv2-red.svg" alt="ACE3 License">
|
<img src="https://img.shields.io/badge/License-GPLv2-red.svg?style=flat-square" alt="ACE3 License">
|
||||||
|
</a>
|
||||||
|
<a href="http://slackin.ace3mod.com/">
|
||||||
|
<img src="http://slackin.ace3mod.com/badge.svg?style=flat-square&label=Slack" alt="ACE3 Slack">
|
||||||
|
</a>
|
||||||
|
<a href="https://travis-ci.org/acemod/ACE3">
|
||||||
|
<img src="https://img.shields.io/travis/acemod/ACE3.svg?style=flat-square&label=Build" alt="ACE3 Build Status">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<p align="center"><sup><strong>Requires the latest version of <a href="https://github.com/CBATeam/CBA_A3/releases">CBA A3</a>. Visit us on <a href="https://www.facebook.com/ACE3Mod">Facebook</a> | <a href="https://www.youtube.com/c/ACE3Mod">YouTube</a> | <a href="https://twitter.com/ACE3Mod">Twitter</a> | <a href="http://www.reddit.com/r/arma/search?q=ACE&restrict_sr=on&sort=new&t=all">Reddit</a></strong></sup></p>
|
|
||||||
|
<p align="center">
|
||||||
|
<sup><strong>Requires the latest version of <a href="https://github.com/CBATeam/CBA_A3/releases">CBA A3</a>.<br/>
|
||||||
|
Visit us on <a href="https://twitter.com/ACE3Mod">Twitter</a> | <a href="https://www.facebook.com/ACE3Mod">Facebook</a> | <a href="https://www.youtube.com/c/ACE3Mod">YouTube</a> | <a href="http://www.reddit.com/r/arma/search?q=ACE&restrict_sr=on&sort=new&t=all">Reddit</a></strong></sup>
|
||||||
|
</p>
|
||||||
|
|
||||||
**ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3.
|
**ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3.
|
||||||
|
|
||||||
@ -37,6 +45,7 @@ The mod is **built modularly**, so almost any included PBO can be easily removed
|
|||||||
- Captivity system
|
- Captivity system
|
||||||
- Explosives system, including different trigger types
|
- Explosives system, including different trigger types
|
||||||
- Map screen improvements – marker placement and map tools
|
- Map screen improvements – marker placement and map tools
|
||||||
|
- Logistics
|
||||||
- Advanced missile guidance and laser designation
|
- Advanced missile guidance and laser designation
|
||||||
|
|
||||||
#### Additional features
|
#### Additional features
|
||||||
@ -52,7 +61,6 @@ The mod is **built modularly**, so almost any included PBO can be easily removed
|
|||||||
- Magazine repacking
|
- Magazine repacking
|
||||||
- Realistic weapon overheating mechanic
|
- Realistic weapon overheating mechanic
|
||||||
- Combat deafness (temporary loss of hearing) simulation
|
- Combat deafness (temporary loss of hearing) simulation
|
||||||
- Improved ragdoll physics
|
|
||||||
- Improved interactions for AARs and ammo bearers
|
- Improved interactions for AARs and ammo bearers
|
||||||
- Adjustable sniper scopes
|
- Adjustable sniper scopes
|
||||||
- No idle animation with lowered weapon
|
- No idle animation with lowered weapon
|
||||||
@ -63,7 +71,8 @@ The mod is **built modularly**, so almost any included PBO can be easily removed
|
|||||||
|
|
||||||
### Guides & how-tos
|
### Guides & how-tos
|
||||||
If you installed ACE3 but have trouble understanding how it all works, or where to start, read this first:
|
If you installed ACE3 but have trouble understanding how it all works, or where to start, read this first:
|
||||||
- [Getting started](http://ace3mod.com/wiki/user/getting-started.html)
|
- [Installation guide](http://ace3mod.com/wiki/user/installation-guide.html)
|
||||||
|
- [Information center](http://ace3mod.com/wiki/user/information-center.html)
|
||||||
|
|
||||||
#### Contributing
|
#### Contributing
|
||||||
You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE3, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address.
|
You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE3, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address.
|
||||||
|
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 Extended_PreInit_EventHandlers {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
|
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
|
||||||
@ -9,11 +16,3 @@ class Extended_PostInit_EventHandlers {
|
|||||||
init = QUOTE( call COMPILE_FILE(XEH_postInit) );
|
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);
|
[] 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;
|
ADDON = false;
|
||||||
|
|
||||||
PREP(calculateAmmoTemperatureVelocityShift);
|
#include "XEH_PREP.hpp"
|
||||||
PREP(calculateAtmosphericCorrection);
|
|
||||||
PREP(calculateBarrelLengthVelocityShift);
|
|
||||||
PREP(calculateRetardation);
|
|
||||||
PREP(calculateStabilityFactor);
|
|
||||||
PREP(displayProtractor);
|
|
||||||
PREP(handleFired);
|
|
||||||
PREP(initializeTerrainExtension);
|
|
||||||
PREP(initModuleSettings);
|
|
||||||
PREP(readAmmoDataFromConfig);
|
|
||||||
PREP(readWeaponDataFromConfig);
|
|
||||||
PREP(handleFirePFH);
|
|
||||||
ADDON = true;
|
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"];
|
"_temperatureIndexA", "_temperatureIndexB", "_interpolationRatio"];
|
||||||
params["_muzzleVelocityShiftTable", "_temperature"];
|
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;
|
_muzzleVelocityShiftTableUpperLimit = _muzzleVelocityShiftTable select 10;
|
||||||
if (isNil "_muzzleVelocityShiftTableUpperLimit") exitWith { 0 };
|
if (isNil "_muzzleVelocityShiftTableUpperLimit") exitWith { 0 };
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ private ["_muzzleVelocityTableCount", "_barrelLengthTableCount", "_lowerDataInde
|
|||||||
"_upperDataIndex", "_lowerBarrelLength", "_upperBarrelLength", "_lowerMuzzleVelocity",
|
"_upperDataIndex", "_lowerBarrelLength", "_upperBarrelLength", "_lowerMuzzleVelocity",
|
||||||
"_upperMuzzleVelocity", "_interpolationRatio"];
|
"_upperMuzzleVelocity", "_interpolationRatio"];
|
||||||
params ["_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity"];
|
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 barrel length is not defined, then there is no point in calculating muzzle velocity
|
||||||
if (_barrelLength == 0) exitWith { 0 };
|
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"];
|
2 cutText ["", "PLAIN"];
|
||||||
EGVAR(weather,WindInfo) = false;
|
EGVAR(weather,WindInfo) = false;
|
||||||
0 cutText ["", "PLAIN"];
|
(["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN"];
|
||||||
GVAR(Protractor) = true;
|
GVAR(Protractor) = true;
|
||||||
|
|
||||||
[{
|
[{
|
||||||
@ -36,7 +36,7 @@ GVAR(Protractor) = true;
|
|||||||
if !(GVAR(Protractor) && !(weaponLowered ACE_player) && currentWeapon ACE_player == primaryWeapon ACE_player) exitWith {
|
if !(GVAR(Protractor) && !(weaponLowered ACE_player) && currentWeapon ACE_player == primaryWeapon ACE_player) exitWith {
|
||||||
GVAR(Protractor) = false;
|
GVAR(Protractor) = false;
|
||||||
1 cutText ["", "PLAIN"];
|
1 cutText ["", "PLAIN"];
|
||||||
[_idPFH] call cba_fnc_removePerFrameHandler;
|
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
|
||||||
1 cutRsc ["RscProtractor", "PLAIN", 1, false];
|
1 cutRsc ["RscProtractor", "PLAIN", 1, false];
|
||||||
|
@ -12,11 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private "_deleted";
|
private _aceTimeSecond = floor ACE_time;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_deleted = 0;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
|
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
|
||||||
@ -26,20 +22,19 @@ _deleted = 0;
|
|||||||
|
|
||||||
_bulletSpeed = vectorMagnitude _bulletVelocity;
|
_bulletSpeed = vectorMagnitude _bulletVelocity;
|
||||||
|
|
||||||
if (!alive _bullet || _bulletSpeed < 100) exitWith {
|
if (!alive _bullet || _bulletSpeed < 100) then {
|
||||||
GVAR(allBullets) deleteAt (_forEachIndex - _deleted);
|
GVAR(allBullets) deleteAt (GVAR(allBullets) find _x);
|
||||||
_deleted = _deleted + 1;
|
} 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]);
|
||||||
};
|
};
|
||||||
|
nil
|
||||||
_bulletPosition = getPosASL _bullet;
|
} count +GVAR(allBullets);
|
||||||
|
|
||||||
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,"","",""];
|
|
||||||
};
|
|
||||||
|
|
||||||
_aceTimeSecond = floor ACE_time;
|
|
||||||
call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, _aceTimeSecond, ACE_time - _aceTimeSecond]);
|
|
||||||
} forEach GVAR(allBullets);
|
|
||||||
|
|
||||||
if (GVAR(allBullets) isEqualTo []) then {
|
if (GVAR(allBullets) isEqualTo []) then {
|
||||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||||
|
@ -1,16 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* Author: Glowbal, Ruthberg
|
* 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:
|
* Arguments:
|
||||||
* 0: unit - Object the event handler is assigned to <OBJECT>
|
* None. Parameters inherited from EFUNC(common,firedEH)
|
||||||
* 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>
|
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
@ -19,20 +13,16 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
// Early Quiting
|
//IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"];
|
||||||
if (!hasInterface) exitWith {};
|
TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret);
|
||||||
if (!GVAR(enabled)) exitWith {};
|
|
||||||
|
|
||||||
// Parameterization
|
// Parameterization
|
||||||
private ["_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_stabilityFactor"];
|
private ["_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletLength", "_barrelTwist", "_stabilityFactor", "_aceTimeSecond", "_barrelVelocityShift", "_ammoTemperatureVelocityShift"];
|
||||||
params ["_unit", "_weapon", "", "_mode", "_ammo", "_magazine", "_bullet"];
|
|
||||||
|
|
||||||
_abort = false;
|
_abort = false;
|
||||||
|
|
||||||
|
|
||||||
if (!(_ammo isKindOf "BulletBase")) exitWith {};
|
if (!(_ammo isKindOf "BulletBase")) exitWith {};
|
||||||
if (!alive _bullet) exitWith {};
|
if (!alive _projectile) exitWith {};
|
||||||
if (!([_unit] call EFUNC(common,isPlayer))) exitWith {};
|
|
||||||
if (_unit distance ACE_player > GVAR(simulationRadius)) exitWith {};
|
if (_unit distance ACE_player > GVAR(simulationRadius)) exitWith {};
|
||||||
if (underwater _unit) exitWith {};
|
if (underwater _unit) exitWith {};
|
||||||
if (!GVAR(simulateForEveryone) && !(local _unit)) then {
|
if (!GVAR(simulateForEveryone) && !(local _unit)) then {
|
||||||
@ -53,7 +43,9 @@ if (!GVAR(simulateForEveryone) && !(local _unit)) then {
|
|||||||
if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "CfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; };
|
if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "CfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; };
|
||||||
|
|
||||||
if (_abort || !(GVAR(extensionAvailable))) exitWith {
|
if (_abort || !(GVAR(extensionAvailable))) exitWith {
|
||||||
[_bullet, getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction")] call EFUNC(winddeflection,updateTrajectoryPFH);
|
if (missionNamespace getVariable [QEGVAR(windDeflection,enabled), false]) then {
|
||||||
|
EGVAR(windDeflection,trackedBullets) pushBack [_projectile, getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction")];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
// Get Weapon and Ammo Configurations
|
// Get Weapon and Ammo Configurations
|
||||||
@ -70,27 +62,27 @@ _AmmoCacheEntry params ["_airFriction", "_caliber", "_bulletLength", "_bulletMas
|
|||||||
_WeaponCacheEntry params ["_barrelTwist", "_twistDirection", "_barrelLength"];
|
_WeaponCacheEntry params ["_barrelTwist", "_twistDirection", "_barrelLength"];
|
||||||
|
|
||||||
|
|
||||||
_bulletVelocity = velocity _bullet;
|
_bulletVelocity = velocity _projectile;
|
||||||
_muzzleVelocity = vectorMagnitude _bulletVelocity;
|
_muzzleVelocity = vectorMagnitude _bulletVelocity;
|
||||||
|
|
||||||
|
_barrelVelocityShift = 0;
|
||||||
if (GVAR(barrelLengthInfluenceEnabled)) then {
|
if (GVAR(barrelLengthInfluenceEnabled)) then {
|
||||||
_barrelVelocityShift = uiNamespace getVariable [format [QGVAR(%1_muzzleVelocityShift),_weapon],nil];
|
_barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
|
||||||
if (isNil "_barrelVelocityShift") then {
|
|
||||||
_barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
|
|
||||||
uiNamespace setVariable [format [QGVAR(%1_muzzleVelocityShift),_weapon],_muzzleVelocityShift];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_ammoTemperatureVelocityShift = 0;
|
||||||
if (GVAR(ammoTemperatureEnabled)) then {
|
if (GVAR(ammoTemperatureEnabled)) then {
|
||||||
_temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
|
_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 {
|
if (GVAR(ammoTemperatureEnabled) || GVAR(barrelLengthInfluenceEnabled)) then {
|
||||||
|
_muzzleVelocityShift = _barrelVelocityShift + _ammoTemperatureVelocityShift;
|
||||||
|
TRACE_4("shift",_muzzleVelocity,_muzzleVelocityShift, _barrelVelocityShift, _ammoTemperatureVelocityShift);
|
||||||
if (_muzzleVelocityShift != 0) then {
|
if (_muzzleVelocityShift != 0) then {
|
||||||
_muzzleVelocity = _muzzleVelocity + (_barrelVelocityShift + _ammoTemperatureVelocityShift);
|
_muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift;
|
||||||
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
|
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
|
||||||
_bullet setVelocity _bulletVelocity;
|
_projectile setVelocity _bulletVelocity;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -112,16 +104,16 @@ if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) th
|
|||||||
if (isNil "_temperature") then {
|
if (isNil "_temperature") then {
|
||||||
_temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
|
_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);
|
_stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call FUNC(calculateStabilityFactor);
|
||||||
};
|
};
|
||||||
|
|
||||||
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
||||||
|
|
||||||
_aceTimeSecond = floor ACE_time;
|
_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 {
|
if (isNil QGVAR(BulletPFH)) then {
|
||||||
GVAR(BulletPFH) = [FUNC(handleFirePFH), GVAR(simulationInterval), []] call CBA_fnc_addPerFrameHandler;
|
GVAR(BulletPFH) = [FUNC(handleFirePFH), GVAR(simulationInterval), []] call CBA_fnc_addPerFrameHandler;
|
||||||
|
@ -40,7 +40,7 @@ GVAR(currentGrid) = 0;
|
|||||||
#ifdef DEBUG_MODE_FULL
|
#ifdef DEBUG_MODE_FULL
|
||||||
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(ACE_time - _initStartTime)];
|
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(ACE_time - _initStartTime)];
|
||||||
#endif
|
#endif
|
||||||
[_idPFH] call cba_fnc_removePerFrameHandler;
|
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
|
||||||
for "_i" from 1 to 50 do {
|
for "_i" from 1 to 50 do {
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#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"];
|
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
||||||
_ammoConfig = configFile >> "CfgAmmo" >> _this;
|
_ammoConfig = configFile >> "CfgAmmo" >> _this;
|
||||||
|
|
||||||
@ -49,6 +50,42 @@ _ammoTempMuzzleVelocityShifts = getArray(_ammoConfig >> "ACE_ammoTempMuzzleVeloc
|
|||||||
_muzzleVelocityTable = getArray(_ammoConfig >> "ACE_muzzleVelocities");
|
_muzzleVelocityTable = getArray(_ammoConfig >> "ACE_muzzleVelocities");
|
||||||
_barrelLengthTable = getArray(_ammoConfig >> "ACE_barrelLengths");
|
_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];
|
_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
|
||||||
|
|
||||||
uiNamespace setVariable [format[QGVAR(%1), _this], _result];
|
uiNamespace setVariable [format[QGVAR(%1), _this], _result];
|
||||||
|
@ -20,9 +20,11 @@ _weaponConfig = (configFile >> "CfgWeapons" >> _this);
|
|||||||
|
|
||||||
_barrelTwist = getNumber(_weaponConfig >> "ACE_barrelTwist");
|
_barrelTwist = getNumber(_weaponConfig >> "ACE_barrelTwist");
|
||||||
_twistDirection = 1;
|
_twistDirection = 1;
|
||||||
_twistDirection = getNumber(_weaponConfig >> "ACE_twistDirection");
|
if (isNumber (_weaponConfig >> "ACE_twistDirection")) then {
|
||||||
if !(_twistDirection in [-1, 0, 1]) then {
|
_twistDirection = getNumber (_weaponConfig >> "ACE_twistDirection");
|
||||||
_twistDirection = 1;
|
if !(_twistDirection in [-1, 0, 1]) then {
|
||||||
|
_twistDirection = 1;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_barrelLength = getNumber(_weaponConfig >> "ACE_barrelLength");
|
_barrelLength = getNumber(_weaponConfig >> "ACE_barrelLength");
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#define COMPONENT advanced_ballistics
|
#define COMPONENT advanced_ballistics
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_ADVANCEDBALLISTICS
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<Spanish>Mostrar información del viento</Spanish>
|
<Spanish>Mostrar información del viento</Spanish>
|
||||||
<German>Windinformationen anzeigen</German>
|
<German>Windinformationen anzeigen</German>
|
||||||
<Hungarian>Széladatok mutatása</Hungarian>
|
<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>
|
<Portuguese>Mostrar Informação do Vento</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_ProtractorKey">
|
<Key ID="STR_ACE_Advanced_Ballistics_ProtractorKey">
|
||||||
@ -32,7 +32,10 @@
|
|||||||
<German>Erweiterte Ballistik</German>
|
<German>Erweiterte Ballistik</German>
|
||||||
<Czech>Pokročilá balistika</Czech>
|
<Czech>Pokročilá balistika</Czech>
|
||||||
<Portuguese>Balística avançada</Portuguese>
|
<Portuguese>Balística avançada</Portuguese>
|
||||||
|
<French>Balistique avancée</French>
|
||||||
<Hungarian>Fejlett ballisztika</Hungarian>
|
<Hungarian>Fejlett ballisztika</Hungarian>
|
||||||
|
<Russian>Продвинутая баллистика</Russian>
|
||||||
|
<Italian>Balistica Avanzata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
|
||||||
<English>Advanced Ballistics</English>
|
<English>Advanced Ballistics</English>
|
||||||
@ -41,7 +44,10 @@
|
|||||||
<German>Erweiterte Ballistik</German>
|
<German>Erweiterte Ballistik</German>
|
||||||
<Czech>Pokročilá balistika</Czech>
|
<Czech>Pokročilá balistika</Czech>
|
||||||
<Portuguese>Balística avançada</Portuguese>
|
<Portuguese>Balística avançada</Portuguese>
|
||||||
|
<French>Balistique avancée</French>
|
||||||
<Hungarian>Fejlett ballisztika</Hungarian>
|
<Hungarian>Fejlett ballisztika</Hungarian>
|
||||||
|
<Russian>Продвинутая баллистика</Russian>
|
||||||
|
<Italian>Balistica Avanzata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
|
||||||
<English>Enables advanced ballistics</English>
|
<English>Enables advanced ballistics</English>
|
||||||
@ -50,7 +56,10 @@
|
|||||||
<German>Aktiviert die erweiterte Ballistik</German>
|
<German>Aktiviert die erweiterte Ballistik</German>
|
||||||
<Czech>Aktivuje pokročilou balistiku</Czech>
|
<Czech>Aktivuje pokročilou balistiku</Czech>
|
||||||
<Portuguese>Ativa balística avançada</Portuguese>
|
<Portuguese>Ativa balística avançada</Portuguese>
|
||||||
|
<French>Activer la balistique avancée</French>
|
||||||
<Hungarian>Engedélyezi a fejlett ballisztikát</Hungarian>
|
<Hungarian>Engedélyezi a fejlett ballisztikát</Hungarian>
|
||||||
|
<Russian>Включает продвинутую баллистику</Russian>
|
||||||
|
<Italian>Abilita Balistica Avanzata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName">
|
||||||
<English>Enabled For Snipers</English>
|
<English>Enabled For Snipers</English>
|
||||||
@ -59,16 +68,22 @@
|
|||||||
<German>Für Scharfschützen aktiviert</German>
|
<German>Für Scharfschützen aktiviert</German>
|
||||||
<Czech>Povoleno pro odstřelovače</Czech>
|
<Czech>Povoleno pro odstřelovače</Czech>
|
||||||
<Portuguese>Ativar para caçadores</Portuguese>
|
<Portuguese>Ativar para caçadores</Portuguese>
|
||||||
|
<French>Activer pour les snipers</French>
|
||||||
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
|
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
|
||||||
|
<Russian>Включена для снайперов</Russian>
|
||||||
|
<Italian>Abilita per Tiratori Scelti</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description">
|
||||||
<English>Enables advanced ballistics for non local snipers (when using high power optics)</English>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName">
|
||||||
<English>Enabled For Group Members</English>
|
<English>Enabled For Group Members</English>
|
||||||
@ -77,7 +92,10 @@
|
|||||||
<German>Für Gruppenmitglieder aktiviert</German>
|
<German>Für Gruppenmitglieder aktiviert</German>
|
||||||
<Czech>Povoleno pro členy skupiny</Czech>
|
<Czech>Povoleno pro členy skupiny</Czech>
|
||||||
<Portuguese>Ativada para membros do grupo</Portuguese>
|
<Portuguese>Ativada para membros do grupo</Portuguese>
|
||||||
|
<French>Activer pour les membres du groupe</French>
|
||||||
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
||||||
|
<Russian>Включена для группы</Russian>
|
||||||
|
<Italian>Abilita per Membri del Gruppo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description">
|
||||||
<English>Enables advanced ballistics for non local group members</English>
|
<English>Enables advanced ballistics for non local group members</English>
|
||||||
@ -86,7 +104,10 @@
|
|||||||
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
|
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
|
||||||
<Czech>Aktivuje pokročilou balistiku pro nelokální členy skupiny</Czech>
|
<Czech>Aktivuje pokročilou balistiku pro nelokální členy skupiny</Czech>
|
||||||
<Portuguese>Ativa balística avançada para membros de grupo não locais</Portuguese>
|
<Portuguese>Ativa balística avançada para membros de grupo não locais</Portuguese>
|
||||||
|
<French>Active la balistique avancée pour les membres du groupe non locaux</French>
|
||||||
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
|
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
|
||||||
|
<Russian>Включает продвинутую баллистику для нелокальных членов группы</Russian>
|
||||||
|
<Italian>Abilita Balistica Avanzata per Membri non locali del Gruppo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName">
|
||||||
<English>Enabled For Everyone</English>
|
<English>Enabled For Everyone</English>
|
||||||
@ -95,16 +116,22 @@
|
|||||||
<German>Für jeden aktiviert</German>
|
<German>Für jeden aktiviert</German>
|
||||||
<Czech>Povoleno pro všechny</Czech>
|
<Czech>Povoleno pro všechny</Czech>
|
||||||
<Portuguese>Ativada para todos</Portuguese>
|
<Portuguese>Ativada para todos</Portuguese>
|
||||||
|
<French>Activer pour tout le monde</French>
|
||||||
<Hungarian>Mindenkinek engedélyezve</Hungarian>
|
<Hungarian>Mindenkinek engedélyezve</Hungarian>
|
||||||
|
<Russian>Включена для всех</Russian>
|
||||||
|
<Italian>Abilita per tutti</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_Description">
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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ée pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
||||||
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
|
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
|
||||||
|
<Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian>
|
||||||
|
<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>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName">
|
||||||
<English>Always Enabled For Group Members</English>
|
<English>Always Enabled For Group Members</English>
|
||||||
@ -113,7 +140,10 @@
|
|||||||
<German>Für Gruppenmitglieder immer aktiviert</German>
|
<German>Für Gruppenmitglieder immer aktiviert</German>
|
||||||
<Czech>Vždy povoleno pro členy skupiny</Czech>
|
<Czech>Vždy povoleno pro členy skupiny</Czech>
|
||||||
<Portuguese>Sempre ativada para membros do grupo</Portuguese>
|
<Portuguese>Sempre ativada para membros do grupo</Portuguese>
|
||||||
|
<French>Toujours activer pour les membres du groupe</French>
|
||||||
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
|
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
|
||||||
|
<Russian>Всегда включена для членов группы</Russian>
|
||||||
|
<Italian>Sempre abilitato per Membri del Gruppo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description">
|
||||||
<English>Always enables advanced ballistics when a group member fires</English>
|
<English>Always enables advanced ballistics when a group member fires</English>
|
||||||
@ -122,7 +152,10 @@
|
|||||||
<German>Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießt</German>
|
<German>Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießt</German>
|
||||||
<Czech>Aktivuje pokročilou balistiku pro členy skupiny</Czech>
|
<Czech>Aktivuje pokročilou balistiku pro členy skupiny</Czech>
|
||||||
<Portuguese>Sempre ative balística avançada quando um membro do grupo disparar</Portuguese>
|
<Portuguese>Sempre ative balística avançada quando um membro do grupo disparar</Portuguese>
|
||||||
|
<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>
|
<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>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName">
|
||||||
<English>Disabled In FullAuto Mode</English>
|
<English>Disabled In FullAuto Mode</English>
|
||||||
@ -131,7 +164,10 @@
|
|||||||
<German>Beim vollautomatischen Feuern deaktiviert</German>
|
<German>Beim vollautomatischen Feuern deaktiviert</German>
|
||||||
<Czech>Zakázáno v automatickém režimu střelby</Czech>
|
<Czech>Zakázáno v automatickém režimu střelby</Czech>
|
||||||
<Portuguese>Desabilitar no modo automático</Portuguese>
|
<Portuguese>Desabilitar no modo automático</Portuguese>
|
||||||
|
<French>Désactiver en mode rafale libre</French>
|
||||||
<Hungarian>Automata módban letiltva</Hungarian>
|
<Hungarian>Automata módban letiltva</Hungarian>
|
||||||
|
<Russian>Выкл. для автомат. режима</Russian>
|
||||||
|
<Italian>Disabilita in modalità di fuoco automatico</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description">
|
||||||
<English>Disables the advanced ballistics during full auto fire</English>
|
<English>Disables the advanced ballistics during full auto fire</English>
|
||||||
@ -140,7 +176,10 @@
|
|||||||
<German>Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern</German>
|
<German>Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern</German>
|
||||||
<Czech>Zákáže pokročilou balistiku během střelby v režimu automat</Czech>
|
<Czech>Zákáže pokročilou balistiku během střelby v režimu automat</Czech>
|
||||||
<Portuguese>Desabilitar a balística avançada durante fogo automático</Portuguese>
|
<Portuguese>Desabilitar a balística avançada durante fogo automático</Portuguese>
|
||||||
|
<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>
|
<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>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
|
||||||
<English>Enable Ammo Temperature Simulation</English>
|
<English>Enable Ammo Temperature Simulation</English>
|
||||||
@ -149,7 +188,10 @@
|
|||||||
<German>Simulation der Munitionstemperatur aktivieren</German>
|
<German>Simulation der Munitionstemperatur aktivieren</German>
|
||||||
<Czech>Povolit simulaci teploty munice</Czech>
|
<Czech>Povolit simulaci teploty munice</Czech>
|
||||||
<Portuguese>Ativar simulação de temperatura de munição</Portuguese>
|
<Portuguese>Ativar simulação de temperatura de munição</Portuguese>
|
||||||
|
<French>Activer la simulation de la température</French>
|
||||||
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
|
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
|
||||||
|
<Russian>Симуляция температуры для боеприпасов</Russian>
|
||||||
|
<Italian>Abilita simulazione della temperatura delle munizioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description">
|
||||||
<English>Muzzle velocity varies with ammo temperature</English>
|
<English>Muzzle velocity varies with ammo temperature</English>
|
||||||
@ -158,7 +200,10 @@
|
|||||||
<German>Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit</German>
|
<German>Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit</German>
|
||||||
<Czech>Úsťová rychlost je závislá na teplotě munice</Czech>
|
<Czech>Úsťová rychlost je závislá na teplotě munice</Czech>
|
||||||
<Portuguese>A velocidade de saída varia com a temperatura da munição</Portuguese>
|
<Portuguese>A velocidade de saída varia com a temperatura da munição</Portuguese>
|
||||||
|
<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>
|
<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>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName">
|
||||||
<English>Enable Barrel Length Simulation</English>
|
<English>Enable Barrel Length Simulation</English>
|
||||||
@ -167,7 +212,10 @@
|
|||||||
<German>Simulation der Lauflänge aktivieren</German>
|
<German>Simulation der Lauflänge aktivieren</German>
|
||||||
<Czech>Povolit simulaci délky hlavně</Czech>
|
<Czech>Povolit simulaci délky hlavně</Czech>
|
||||||
<Portuguese>Ativar a simulação de comprimento do cano</Portuguese>
|
<Portuguese>Ativar a simulação de comprimento do cano</Portuguese>
|
||||||
|
<French>Activer la simulation de la longueur de canon</French>
|
||||||
<Hungarian>Csőhossz-szimuláció engedélyezése</Hungarian>
|
<Hungarian>Csőhossz-szimuláció engedélyezése</Hungarian>
|
||||||
|
<Russian>Симуляция длины ствола</Russian>
|
||||||
|
<Italian>Abilita simulazione della lunghezza della canna</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description">
|
||||||
<English>Muzzle velocity varies with barrel length</English>
|
<English>Muzzle velocity varies with barrel length</English>
|
||||||
@ -176,7 +224,10 @@
|
|||||||
<German>Lauflänge beeinflusst Mündungsgeschwindigkeit</German>
|
<German>Lauflänge beeinflusst Mündungsgeschwindigkeit</German>
|
||||||
<Czech>Úsťová rychlost je závislá na délce hlavně</Czech>
|
<Czech>Úsťová rychlost je závislá na délce hlavně</Czech>
|
||||||
<Portuguese>A velocidade de saída caria com o comprimento do cano</Portuguese>
|
<Portuguese>A velocidade de saída caria com o comprimento do cano</Portuguese>
|
||||||
|
<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>
|
<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>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName">
|
||||||
<English>Enable Bullet Trace Effect</English>
|
<English>Enable Bullet Trace Effect</English>
|
||||||
@ -185,7 +236,10 @@
|
|||||||
<German>Geschossspureffekt aktivieren</German>
|
<German>Geschossspureffekt aktivieren</German>
|
||||||
<Czech>Povolit efekt trasírek</Czech>
|
<Czech>Povolit efekt trasírek</Czech>
|
||||||
<Portuguese>Ativa efeito traçante de projétil</Portuguese>
|
<Portuguese>Ativa efeito traçante de projétil</Portuguese>
|
||||||
|
<French>Activer l'effet traçante</French>
|
||||||
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
||||||
|
<Russian>Следы пуль</Russian>
|
||||||
|
<Italian>Abilita effetto di tracciatura dei proiettili</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_Description">
|
<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>
|
<English>Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)</English>
|
||||||
@ -194,7 +248,10 @@
|
|||||||
<German>Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)</German>
|
<German>Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)</German>
|
||||||
<Czech>Aktivuje efekt trasírek z vysokokaliberních zbraní (viditelné pouze skrze výkonnou optiku)</Czech>
|
<Czech>Aktivuje efekt trasírek z vysokokaliberních zbraní (viditelné pouze skrze výkonnou optiku)</Czech>
|
||||||
<Portuguese>Ativa o efeito traçante de projétil para projéteis de alto calibre (somente visível quando observado por miras telescópicas)</Portuguese>
|
<Portuguese>Ativa o efeito traçante de projétil para projéteis de alto calibre (somente visível quando observado por miras telescópicas)</Portuguese>
|
||||||
|
<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>
|
<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>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
|
||||||
<English>Simulation Interval</English>
|
<English>Simulation Interval</English>
|
||||||
@ -203,7 +260,10 @@
|
|||||||
<German>Simulationsintervall</German>
|
<German>Simulationsintervall</German>
|
||||||
<Czech>Interval simulace</Czech>
|
<Czech>Interval simulace</Czech>
|
||||||
<Portuguese>Intervalo da simulação</Portuguese>
|
<Portuguese>Intervalo da simulação</Portuguese>
|
||||||
|
<French>Intervalle de simulation</French>
|
||||||
<Hungarian>Szimuláció intervalluma</Hungarian>
|
<Hungarian>Szimuláció intervalluma</Hungarian>
|
||||||
|
<Russian>Интервал симуляции</Russian>
|
||||||
|
<Italian>Intervallo Simulazione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description">
|
||||||
<English>Defines the interval between every calculation step</English>
|
<English>Defines the interval between every calculation step</English>
|
||||||
@ -212,7 +272,10 @@
|
|||||||
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
|
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
|
||||||
<Czech>Určuje interval mezi každým výpočtem</Czech>
|
<Czech>Určuje interval mezi každým výpočtem</Czech>
|
||||||
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
|
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
|
||||||
|
<French>Définit un intervalle de calcul entre deux simulations</French>
|
||||||
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
|
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
|
||||||
|
<Russian>Определяет временной интервал между вычислениями</Russian>
|
||||||
|
<Italian>Definisce l'intervallo tra ogni step di calcolo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
|
||||||
<English>Simulation Radius</English>
|
<English>Simulation Radius</English>
|
||||||
@ -221,7 +284,10 @@
|
|||||||
<German>Simulationsradius</German>
|
<German>Simulationsradius</German>
|
||||||
<Czech>Rozsah simulace</Czech>
|
<Czech>Rozsah simulace</Czech>
|
||||||
<Portuguese>Raio de simulação</Portuguese>
|
<Portuguese>Raio de simulação</Portuguese>
|
||||||
|
<French>Rayon de simulation</French>
|
||||||
<Hungarian>Szimuláció hatóköre</Hungarian>
|
<Hungarian>Szimuláció hatóköre</Hungarian>
|
||||||
|
<Russian>Радиус симуляции</Russian>
|
||||||
|
<Italian>Raggio Simulazione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_Description">
|
<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>
|
<English>Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles</English>
|
||||||
@ -230,14 +296,22 @@
|
|||||||
<German>Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird</German>
|
<German>Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird</German>
|
||||||
<Czech>Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil</Czech>
|
<Czech>Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil</Czech>
|
||||||
<Portuguese>Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis</Portuguese>
|
<Portuguese>Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis</Portuguese>
|
||||||
|
<French>Définit le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
|
||||||
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
|
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
|
||||||
|
<Russian>Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам</Russian>
|
||||||
|
<Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_Description">
|
<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>
|
<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>
|
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
|
||||||
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
||||||
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
||||||
|
<French>Ce module active la simulation de balistique avancée - ie les projectiles sont influencés par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelle ils sont tirés.</French>
|
||||||
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
||||||
|
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
|
||||||
|
<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>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,6 +1,11 @@
|
|||||||
#define COMPONENT ai
|
#define COMPONENT ai
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_AI
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#define COMPONENT aircraft
|
#define COMPONENT aircraft
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_AIRCRAFT
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<Spanish>Ráfaga</Spanish>
|
<Spanish>Ráfaga</Spanish>
|
||||||
<Polish>Seria</Polish>
|
<Polish>Seria</Polish>
|
||||||
<Czech>Dávka</Czech>
|
<Czech>Dávka</Czech>
|
||||||
<French>Contre mesure</French>
|
<French>Contre mesures</French>
|
||||||
<Russian>Очередь</Russian>
|
<Russian>Очередь</Russian>
|
||||||
<Hungarian>Sorozat</Hungarian>
|
<Hungarian>Sorozat</Hungarian>
|
||||||
<Portuguese>Rajada</Portuguese>
|
<Portuguese>Rajada</Portuguese>
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<English>Open Cargo Door</English>
|
<English>Open Cargo Door</English>
|
||||||
<German>Laderampe öffnen</German>
|
<German>Laderampe öffnen</German>
|
||||||
<Spanish>Abrir compuerta de carga</Spanish>
|
<Spanish>Abrir compuerta de carga</Spanish>
|
||||||
<French>Ourvir la rampe</French>
|
<French>Ouvrir la rampe</French>
|
||||||
<Polish>Otwórz drzwi ładowni</Polish>
|
<Polish>Otwórz drzwi ładowni</Polish>
|
||||||
<Czech>Otevřít nákladní prostor</Czech>
|
<Czech>Otevřít nákladní prostor</Czech>
|
||||||
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
<Hungarian>Rakodórámpa nyitása</Hungarian>
|
||||||
|
@ -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;
|
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
|
#define COMPONENT APL
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_APL
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
|
||||||
|
class Extended_PreStart_EventHandlers {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
class Extended_PreInit_EventHandlers {
|
class Extended_PreInit_EventHandlers {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
|
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;
|
ADDON = false;
|
||||||
|
|
||||||
PREP(add_new_gun);
|
#include "XEH_PREP.hpp"
|
||||||
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);
|
|
||||||
|
|
||||||
ADDON = true;
|
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) = [{
|
GVAR(DialogPFH) = [{
|
||||||
if (!GVAR(active)) exitWith {
|
if (!GVAR(active)) exitWith {
|
||||||
[_this select 1] call cba_fnc_removePerFrameHandler;
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
__ctrlBackground ctrlSetText format [QUOTE(PATHTOF(UI\ATRAG_%1.paa)), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
|
__ctrlBackground ctrlSetText format [QUOTE(PATHTOF(UI\ATRAG_%1.paa)), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
|
||||||
}, 60, []] call CBA_fnc_addPerFrameHandler;
|
}, 60, []] call CBA_fnc_addPerFrameHandler;
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
uiNamespace setVariable ['ATragMX_Display', nil];
|
uiNamespace setVariable ['ATragMX_Display', nil];
|
||||||
GVAR(active) = false;
|
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);
|
false call FUNC(show_target_speed_assist_timer);
|
||||||
true call FUNC(show_target_speed_assist);
|
true call FUNC(show_target_speed_assist);
|
||||||
|
|
||||||
[_this select 1] call cba_fnc_removePerFrameHandler;
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
|
||||||
ctrlSetText [9001, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
ctrlSetText [9001, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#define COMPONENT atragmx
|
#define COMPONENT atragmx
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_ATRAGMX
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="ATragMX">
|
<Package name="ATragMX">
|
||||||
<Key ID="STR_ACE_ATragMX_Name">
|
<Key ID="STR_ACE_ATragMX_Name">
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
|
||||||
|
class Extended_PreStart_EventHandlers {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
class Extended_PreInit_EventHandlers {
|
class Extended_PreInit_EventHandlers {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||||
|
@ -61,7 +61,6 @@ class CfgVehicles {
|
|||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 5;
|
priority = 5;
|
||||||
icon = PATHTOF(UI\attach_ca.paa);
|
icon = PATHTOF(UI\attach_ca.paa);
|
||||||
// hotkey = "T";
|
|
||||||
};
|
};
|
||||||
class GVAR(Detach) {
|
class GVAR(Detach) {
|
||||||
displayName = CSTRING(Detach);
|
displayName = CSTRING(Detach);
|
||||||
@ -71,7 +70,6 @@ class CfgVehicles {
|
|||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 5;
|
priority = 5;
|
||||||
icon = PATHTOF(UI\detach_ca.paa);
|
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;
|
ADDON = false;
|
||||||
|
|
||||||
PREP(attach);
|
#include "XEH_PREP.hpp"
|
||||||
PREP(canAttach);
|
|
||||||
PREP(canDetach);
|
|
||||||
PREP(detach);
|
|
||||||
PREP(getChildrenAttachActions);
|
|
||||||
PREP(handleGetIn);
|
|
||||||
PREP(handleGetOut);
|
|
||||||
PREP(handleKilled);
|
|
||||||
PREP(placeApprove);
|
|
||||||
|
|
||||||
ADDON = true;
|
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 {
|
} else {
|
||||||
GVAR(placeAction) = PLACE_WAITING;
|
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);
|
[{[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)];
|
_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 {
|
{!([_attachToVehicle, _unit, _itemClassname] call FUNC(canAttach))}) then {
|
||||||
|
|
||||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
[_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);
|
[] call EFUNC(interaction,hideMouseHint);
|
||||||
[_unit, "DefaultAction", (_unit getVariable [QGVAR(placeActionEH), -1])] call EFUNC(common,removeActionEventHandler);
|
[_unit, "DefaultAction", (_unit getVariable [QGVAR(placeActionEH), -1])] call EFUNC(common,removeActionEventHandler);
|
||||||
_unit removeAction _actionID;
|
_unit removeAction _actionID;
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
params ["_attachToVehicle", "_unit"];
|
params ["_attachToVehicle", "_unit"];
|
||||||
TRACE_2("params",_attachToVehicle,_unit);
|
TRACE_2("params",_attachToVehicle,_unit);
|
||||||
|
|
||||||
|
if ((vehicle _unit) != _unit) exitWith {false};
|
||||||
|
|
||||||
_attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
|
_attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
|
||||||
if ((count _attachedList) == 0) exitWith {false};
|
if ((count _attachedList) == 0) exitWith {false};
|
||||||
|
|
||||||
|
@ -17,11 +17,11 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
if (!isServer) exitWith {};
|
|
||||||
|
|
||||||
params ["", "", "_unit"];
|
params ["", "", "_unit"];
|
||||||
TRACE_1("params",_unit);
|
TRACE_1("params",_unit);
|
||||||
|
|
||||||
|
if (!local _unit) exitWith {};
|
||||||
|
|
||||||
private ["_attachedList"];
|
private ["_attachedList"];
|
||||||
|
|
||||||
_attachedList = _unit getVariable [QGVAR(attached), []];
|
_attachedList = _unit getVariable [QGVAR(attached), []];
|
||||||
@ -29,9 +29,14 @@ if ((count _attachedList) == 0) exitWith {};
|
|||||||
|
|
||||||
(_attachedList select 0) params ["_xObject"];
|
(_attachedList select 0) params ["_xObject"];
|
||||||
if (!isNull _xObject) then {
|
if (!isNull _xObject) then {
|
||||||
|
TRACE_1("detaching and moving attached light",_xObject);
|
||||||
detach _xObject;
|
detach _xObject;
|
||||||
_xObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
|
_xObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
|
||||||
[{deleteVehicle (_this select 0)}, [_xObject], 2] call EFUNC(common,waitAndExecute);
|
[{
|
||||||
|
params ["_detachedLight"];
|
||||||
|
TRACE_1("delayed delete",_detachedLight);
|
||||||
|
deleteVehicle _detachedLight;
|
||||||
|
}, [_xObject], 2] call EFUNC(common,waitAndExecute);
|
||||||
(_attachedList select 0) set [0, objNull];
|
(_attachedList select 0) set [0, objNull];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -17,11 +17,11 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
if (!isServer) exitWith {};
|
|
||||||
|
|
||||||
params ["", "", "_unit"];
|
params ["", "", "_unit"];
|
||||||
TRACE_1("params",_unit);
|
TRACE_1("params",_unit);
|
||||||
|
|
||||||
|
if (!local _unit) exitWith {};
|
||||||
|
|
||||||
private ["_attachedList"];
|
private ["_attachedList"];
|
||||||
|
|
||||||
_attachedList = _unit getVariable [QGVAR(attached), []];
|
_attachedList = _unit getVariable [QGVAR(attached), []];
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Unit (player) <OBJECT>
|
* 0: Unit (player) <OBJECT>
|
||||||
* 1: attachToVehicle <OBJECT>
|
* 1: attachToVehicle <OBJECT>
|
||||||
* 2: Item Classname (cfgWeapon/cfgMagazine) <STRING>
|
* 2: Item Classname (CfgWeapon/CfgMagazine) <STRING>
|
||||||
* 3: Light Vehicle Classname <STRING>
|
* 3: Light Vehicle Classname <STRING>
|
||||||
* 4: On Attach Text <STRING>
|
* 4: On Attach Text <STRING>
|
||||||
* 5: Starting Pos of dummy item <ARRAY>
|
* 5: Starting Pos of dummy item <ARRAY>
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#define COMPONENT attach
|
#define COMPONENT attach
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_ATTACH
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<Spanish>Acoplar objeto >></Spanish>
|
<Spanish>Acoplar objeto >></Spanish>
|
||||||
<Polish>Przyczep >></Polish>
|
<Polish>Przyczep >></Polish>
|
||||||
<French>Attacher l'objet >></French>
|
<French>Attacher l'objet >></French>
|
||||||
<Czech>Připnout předmět >></Czech>
|
<Czech>Připnout >></Czech>
|
||||||
<Portuguese>Fixar item >></Portuguese>
|
<Portuguese>Fixar item >></Portuguese>
|
||||||
<Italian>Attacca l'oggetto >></Italian>
|
<Italian>Attacca l'oggetto >></Italian>
|
||||||
<Hungarian>Tárgy hozzácsatolása >></Hungarian>
|
<Hungarian>Tárgy hozzácsatolása >></Hungarian>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<German>Leuchtstab befestigt</German>
|
<German>Leuchtstab befestigt</German>
|
||||||
<Spanish>Barra de luz acoplada</Spanish>
|
<Spanish>Barra de luz acoplada</Spanish>
|
||||||
<Polish>Przyczepiono światło chemiczne</Polish>
|
<Polish>Przyczepiono światło chemiczne</Polish>
|
||||||
<French>Chemlight attachée</French>
|
<French>Cyalume attachée</French>
|
||||||
<Czech>Chemické světlo připnuto</Czech>
|
<Czech>Chemické světlo připnuto</Czech>
|
||||||
<Portuguese>Chemlight Fixada</Portuguese>
|
<Portuguese>Chemlight Fixada</Portuguese>
|
||||||
<Italian>Chemlight attaccata</Italian>
|
<Italian>Chemlight attaccata</Italian>
|
||||||
@ -102,7 +102,7 @@
|
|||||||
<German>Leuchtstab entfernt</German>
|
<German>Leuchtstab entfernt</German>
|
||||||
<Spanish>Barra de luz quitada</Spanish>
|
<Spanish>Barra de luz quitada</Spanish>
|
||||||
<Polish>Odczepiono światło chemiczne</Polish>
|
<Polish>Odczepiono światło chemiczne</Polish>
|
||||||
<French>Chemlight détachée</French>
|
<French>Cyalume détachée</French>
|
||||||
<Czech>Chemické světlo odepnuto</Czech>
|
<Czech>Chemické světlo odepnuto</Czech>
|
||||||
<Portuguese>Chemlight Separada</Portuguese>
|
<Portuguese>Chemlight Separada</Portuguese>
|
||||||
<Italian>Chemlight staccata</Italian>
|
<Italian>Chemlight staccata</Italian>
|
||||||
@ -115,7 +115,7 @@
|
|||||||
<Spanish>Sin espacio en inventario</Spanish>
|
<Spanish>Sin espacio en inventario</Spanish>
|
||||||
<Polish>Brak miejsca w ekwipunku</Polish>
|
<Polish>Brak miejsca w ekwipunku</Polish>
|
||||||
<French>Pas de place dans l'inventaire</French>
|
<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>
|
<Portuguese>Sem espaço no inventário</Portuguese>
|
||||||
<Italian>Non hai più spazio</Italian>
|
<Italian>Non hai più spazio</Italian>
|
||||||
<Hungarian>Nincs több hely</Hungarian>
|
<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>
|
<German>Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist.</German>
|
||||||
<Polish>Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.</Polish>
|
<Polish>Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.</Polish>
|
||||||
<Spanish>El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. </Spanish>
|
<Spanish>El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. </Spanish>
|
||||||
<French>La balise IR permet de signaler votre position grace à un clignotement visible par des JVN.</French>
|
<French>La balise IR permet de signaler votre position grâce à un clignotement visible par des JVN.</French>
|
||||||
<Czech>IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru.</Czech>
|
<Czech>IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru.</Czech>
|
||||||
<Portuguese>O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna.</Portuguese>
|
<Portuguese>O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna.</Portuguese>
|
||||||
<Italian>La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni.</Italian>
|
<Italian>La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni.</Italian>
|
||||||
@ -175,7 +175,7 @@
|
|||||||
<German>Befestigen fehlgeschlagen</German>
|
<German>Befestigen fehlgeschlagen</German>
|
||||||
<Russian>Не удалось присоединить</Russian>
|
<Russian>Не удалось присоединить</Russian>
|
||||||
<Spanish>Error al acoplar</Spanish>
|
<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>
|
<Portuguese>Erro ao fixar</Portuguese>
|
||||||
<Polish>Przyczepianie nie powiodło się</Polish>
|
<Polish>Przyczepianie nie powiodło się</Polish>
|
||||||
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
|
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
|
||||||
@ -187,7 +187,7 @@
|
|||||||
<Spanish>%1<br/>acoplada</Spanish>
|
<Spanish>%1<br/>acoplada</Spanish>
|
||||||
<Polish>Przyczepiono<br/>%1</Polish>
|
<Polish>Przyczepiono<br/>%1</Polish>
|
||||||
<French>%1<br/>attachée</French>
|
<French>%1<br/>attachée</French>
|
||||||
<Czech>%1<br/>Připnutý</Czech>
|
<Czech>%1<br/>Připnuto</Czech>
|
||||||
<Portuguese>%1<br/>Fixada</Portuguese>
|
<Portuguese>%1<br/>Fixada</Portuguese>
|
||||||
<Italian>%1<br/>attaccata</Italian>
|
<Italian>%1<br/>attaccata</Italian>
|
||||||
<Hungarian>%1<br/>hozzácsatolva</Hungarian>
|
<Hungarian>%1<br/>hozzácsatolva</Hungarian>
|
||||||
@ -199,7 +199,7 @@
|
|||||||
<Spanish>%1<br/>quitada</Spanish>
|
<Spanish>%1<br/>quitada</Spanish>
|
||||||
<Polish>Odczepiono<br/>%1</Polish>
|
<Polish>Odczepiono<br/>%1</Polish>
|
||||||
<French>%1<br/>détachée</French>
|
<French>%1<br/>détachée</French>
|
||||||
<Czech>%1<br/>Odepnutý</Czech>
|
<Czech>%1<br/>Odepnuto</Czech>
|
||||||
<Portuguese>%1<br/>Separada</Portuguese>
|
<Portuguese>%1<br/>Separada</Portuguese>
|
||||||
<Italian>%1<br/>staccata</Italian>
|
<Italian>%1<br/>staccata</Italian>
|
||||||
<Hungarian>%1<br/>lecsatolva</Hungarian>
|
<Hungarian>%1<br/>lecsatolva</Hungarian>
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
|
|
||||||
|
class Extended_PreStart_EventHandlers {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
class Extended_PreInit_EventHandlers {
|
class Extended_PreInit_EventHandlers {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
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);
|
@ -1,3 +1,3 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
["backpackOpened", DFUNC(backpackOpened)] call EFUNC(common,addEventHandler);
|
["backpackOpened", {_this call FUNC(backpackOpened)}] call EFUNC(common,addEventHandler);
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
|
|
||||||
ADDON = false;
|
ADDON = false;
|
||||||
|
|
||||||
PREP(backpackOpened);
|
#include "XEH_PREP.hpp"
|
||||||
PREP(getBackpackAssignedUnit);
|
|
||||||
PREP(isBackpack);
|
|
||||||
PREP(onOpenInventory);
|
|
||||||
|
|
||||||
ADDON = true;
|
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"
|
@ -1,42 +1,36 @@
|
|||||||
/*
|
/*
|
||||||
* Author: commy2
|
* Author: commy2
|
||||||
|
* Someone opened your backpack. Play sound and camshake. Execute locally.
|
||||||
*
|
*
|
||||||
* Someone opened your backpack. Execute locally.
|
* Arguments:
|
||||||
*
|
|
||||||
* Argument:
|
|
||||||
* 0: Who accessed your inventory? (Object)
|
* 0: Who accessed your inventory? (Object)
|
||||||
* 1: Unit that wields the backpack (Object)
|
* 1: Unit that wields the backpack (Object)
|
||||||
* 2: The backpack object (Object)
|
* 2: The backpack object (Object)
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None.
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
private ["_sounds", "_position"];
|
|
||||||
params ["_target", "_backpack"];
|
params ["_target", "_backpack"];
|
||||||
|
|
||||||
// do cam shake if the target is the player
|
// 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];
|
addCamShake [4, 0.5, 5];
|
||||||
};
|
};
|
||||||
|
|
||||||
// play a rustling sound
|
// play a zipper sound effect
|
||||||
|
private _sounds = [
|
||||||
_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"*/
|
|
||||||
|
|
||||||
QUOTE(PATHTO_R(sounds\zip_in.wav)),
|
QUOTE(PATHTO_R(sounds\zip_in.wav)),
|
||||||
QUOTE(PATHTO_R(sounds\zip_out.wav))
|
QUOTE(PATHTO_R(sounds\zip_out.wav))
|
||||||
];
|
];
|
||||||
|
|
||||||
_position = _target modelToWorldVisual (_target selectionPosition "Spine3");
|
private _position = AGLToASL (_target modelToWorldVisual (_target selectionPosition "Spine3"));
|
||||||
_position = _position call EFUNC(common,positionToASL);
|
|
||||||
|
|
||||||
playSound3D [
|
playSound3D [
|
||||||
_sounds select floor random count _sounds,
|
selectRandom _sounds,
|
||||||
objNull,
|
objNull,
|
||||||
false,
|
false,
|
||||||
_position,
|
_position,
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: commy2
|
|
||||||
*
|
|
||||||
* Returns the unit that has the given backpack object equipped.
|
|
||||||
*
|
|
||||||
* Argument:
|
|
||||||
* 0: Executing Unit (Object)
|
|
||||||
* 1: A backpack object (Object)
|
|
||||||
*
|
|
||||||
* Return value:
|
|
||||||
* Unit that has the backpack equipped. (Object)
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
scopeName "main";
|
|
||||||
|
|
||||||
params ["_unit","_backpack"];
|
|
||||||
_target = objNull;
|
|
||||||
{
|
|
||||||
if (backpackContainer _x == _backpack) then {_target = _x; breakTo "main"};
|
|
||||||
} count nearestObjects [_unit, ["Man"], 5];
|
|
||||||
if (isNull _target) exitWith {ACE_Player};
|
|
||||||
_target
|
|
@ -1,23 +1,23 @@
|
|||||||
/*
|
/*
|
||||||
* Author: commy2
|
* Author: commy2
|
||||||
|
* Check if the given backpack is an actual backpack that can store items. Parachute, static weapon packs, etc. will return false.
|
||||||
*
|
*
|
||||||
* Check if the given backpack is an actual backpack that can store items. Parachute backpacks will return false for example.
|
* Arguments:
|
||||||
|
* 0: Backpack <OBJECT, STRING>
|
||||||
*
|
*
|
||||||
* Argument:
|
* Return Value:
|
||||||
* 0: A backpack (Object or String)
|
* Boolean <BOOL>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Public: Yes
|
||||||
* Boolean (Bool)
|
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_config"];
|
params [["_backpack", objNull, [objNull, ""]]];
|
||||||
params ["_backpack"];
|
|
||||||
|
|
||||||
if (typeName _backpack == "OBJECT") then {
|
if (_backpack isEqualType objNull) then {
|
||||||
_backpack = typeOf _backpack;
|
_backpack = typeOf _backpack;
|
||||||
};
|
};
|
||||||
|
|
||||||
_config = configFile >> "CfgVehicles" >> _backpack;
|
private _config = configFile >> "CfgVehicles" >> _backpack;
|
||||||
|
|
||||||
getText (_config >> "vehicleClass") == "backpacks" && {getNumber (_config >> "maximumLoad") > 0}
|
getText (_config >> "vehicleClass") == "backpacks" && {getNumber (_config >> "maximumLoad") > 0} // return
|
||||||
|
@ -1,26 +1,28 @@
|
|||||||
/*
|
/*
|
||||||
* Author: commy2
|
* Author: commy2
|
||||||
|
* Handle the open inventory event. Camshake and sound on target client.
|
||||||
*
|
*
|
||||||
* Handle the open inventory event. Display message on traget client.
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
* 1: Backpack <OBJECT>
|
||||||
*
|
*
|
||||||
* Argument:
|
* Return Value:
|
||||||
* Input from "InventoryOpened" eventhandler
|
|
||||||
*
|
|
||||||
* Return value:
|
|
||||||
* false. Always open the inventory dialog. (Bool)
|
* false. Always open the inventory dialog. (Bool)
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private "_target";
|
params ["_unit", "_backpack"];
|
||||||
params ["","_backpack"];
|
|
||||||
|
|
||||||
// exit if the target is not a backpack
|
// exit if the target is not a real backpack, i.e. parachute, static weapon bag etc.
|
||||||
if !([_backpack] call FUNC(isBackpack)) exitWith {};
|
if !(_backpack call FUNC(isBackpack)) exitWith {false};
|
||||||
|
|
||||||
// get the unit that wears the backpack object
|
// get the unit that wears the backpack object
|
||||||
_target = _this call FUNC(getBackpackAssignedUnit);
|
private _target = objectParent _backpack;
|
||||||
|
|
||||||
if (isNull _target) exitWith {false};
|
if (isNull _target) exitWith {false};
|
||||||
|
|
||||||
// raise event on target unit
|
// raise event on target unit
|
||||||
["backpackOpened", _target, [_target, _backpack]] call EFUNC(common,targetEvent);
|
["backpackOpened", _target, [_target, _backpack]] call EFUNC(common,targetEvent);
|
||||||
|
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#define COMPONENT backpacks
|
#define COMPONENT backpacks
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_BACKPACKS
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,23 +6,11 @@ class CfgAmmo {
|
|||||||
timeToLive=6;
|
timeToLive=6;
|
||||||
};
|
};
|
||||||
|
|
||||||
class B_20mm : BulletBase {
|
|
||||||
timeToLive=30;
|
|
||||||
};
|
|
||||||
class B_25mm : BulletBase {
|
|
||||||
timeToLive=30;
|
|
||||||
};
|
|
||||||
class B_35mm_AA : BulletBase {
|
|
||||||
timeToLive=30;
|
|
||||||
};
|
|
||||||
class B_30mm_AP : BulletBase {
|
|
||||||
timeToLive=30;
|
|
||||||
};
|
|
||||||
|
|
||||||
class B_556x45_Ball : BulletBase {
|
class B_556x45_Ball : BulletBase {
|
||||||
airFriction=-0.00126466;
|
airFriction=-0.00126466;
|
||||||
hit=8;
|
hit=8;
|
||||||
typicalSpeed=750;
|
typicalSpeed=750;
|
||||||
|
tracerScale = 1;
|
||||||
tracerStartTime=0.073; // M856 tracer burns out to 800m
|
tracerStartTime=0.073; // M856 tracer burns out to 800m
|
||||||
tracerEndTime=1.57123; // Time in seconds calculated with ballistics calculator
|
tracerEndTime=1.57123; // Time in seconds calculated with ballistics calculator
|
||||||
ACE_caliber=5.69;
|
ACE_caliber=5.69;
|
||||||
@ -128,9 +116,13 @@ class CfgAmmo {
|
|||||||
ACE_muzzleVelocities[]={785, 883, 925};
|
ACE_muzzleVelocities[]={785, 883, 925};
|
||||||
ACE_barrelLengths[]={254.0, 414.02, 508.0};
|
ACE_barrelLengths[]={254.0, 414.02, 508.0};
|
||||||
};
|
};
|
||||||
|
class B_56x15_dual: BulletBase {
|
||||||
|
tracerScale = 0.5;
|
||||||
|
};
|
||||||
class B_65x39_Caseless : BulletBase {
|
class B_65x39_Caseless : BulletBase {
|
||||||
airFriction=-0.00075308;
|
airFriction=-0.00075308;
|
||||||
typicalSpeed=800;
|
typicalSpeed=800;
|
||||||
|
tracerScale = 1.1; //1.0;
|
||||||
ACE_caliber=6.706;
|
ACE_caliber=6.706;
|
||||||
ACE_bulletLength=32.893;
|
ACE_bulletLength=32.893;
|
||||||
ACE_bulletMass=7.9704;
|
ACE_bulletMass=7.9704;
|
||||||
@ -180,10 +172,15 @@ class CfgAmmo {
|
|||||||
ACE_muzzleVelocities[]={750, 820, 840, 852, 860};
|
ACE_muzzleVelocities[]={750, 820, 840, 852, 860};
|
||||||
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
|
||||||
};
|
};
|
||||||
|
class SubmunitionBullet;
|
||||||
|
class B_65x39_Minigun_Caseless: SubmunitionBullet {
|
||||||
|
tracerScale = 1.1; //1.0;
|
||||||
|
};
|
||||||
class B_762x51_Ball : BulletBase {
|
class B_762x51_Ball : BulletBase {
|
||||||
airFriction=-0.00100957;
|
airFriction=-0.00100957;
|
||||||
typicalSpeed=833;
|
typicalSpeed=833;
|
||||||
hit=9;
|
hit=9;
|
||||||
|
tracerScale = 1.2; //0.6;
|
||||||
tracerStartTime=0.073; // Based on the British L5A1 which burns out to 1000m
|
tracerStartTime=0.073; // Based on the British L5A1 which burns out to 1000m
|
||||||
tracerEndTime=2.15957; // Time in seconds calculated with ballistics calculator
|
tracerEndTime=2.15957; // Time in seconds calculated with ballistics calculator
|
||||||
ACE_caliber=7.823;
|
ACE_caliber=7.823;
|
||||||
@ -479,6 +476,7 @@ class CfgAmmo {
|
|||||||
class B_9x21_Ball : BulletBase {
|
class B_9x21_Ball : BulletBase {
|
||||||
airFriction=-0.00226847;
|
airFriction=-0.00226847;
|
||||||
typicalSpeed=390;
|
typicalSpeed=390;
|
||||||
|
tracerScale = 0.5;
|
||||||
hit=6;
|
hit=6;
|
||||||
ACE_caliber=9.042;
|
ACE_caliber=9.042;
|
||||||
ACE_bulletLength=15.494;
|
ACE_bulletLength=15.494;
|
||||||
@ -491,6 +489,9 @@ class CfgAmmo {
|
|||||||
ACE_muzzleVelocities[]={440, 460, 480};
|
ACE_muzzleVelocities[]={440, 460, 480};
|
||||||
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
||||||
};
|
};
|
||||||
|
class B_9x21_Ball_Tracer_Green: B_9x21_Ball {
|
||||||
|
tracerScale = 0.5;
|
||||||
|
};
|
||||||
class ACE_9x18_Ball_57N181S : B_9x21_Ball {
|
class ACE_9x18_Ball_57N181S : B_9x21_Ball {
|
||||||
hit=5;
|
hit=5;
|
||||||
airFriction=-0.00190333;
|
airFriction=-0.00190333;
|
||||||
@ -584,6 +585,7 @@ class CfgAmmo {
|
|||||||
timeToLive=10;
|
timeToLive=10;
|
||||||
airFriction=-0.00038944;
|
airFriction=-0.00038944;
|
||||||
typicalSpeed=910;
|
typicalSpeed=910;
|
||||||
|
tracerScale = 1.3; //1.2;
|
||||||
ACE_caliber=10.363;
|
ACE_caliber=10.363;
|
||||||
ACE_bulletLength=54.0;
|
ACE_bulletLength=54.0;
|
||||||
ACE_bulletMass=26.568;
|
ACE_bulletMass=26.568;
|
||||||
@ -670,9 +672,13 @@ class CfgAmmo {
|
|||||||
ACE_muzzleVelocities[]={880, 915, 925};
|
ACE_muzzleVelocities[]={880, 915, 925};
|
||||||
ACE_barrelLengths[]={508.0, 660.4, 711.2};
|
ACE_barrelLengths[]={508.0, 660.4, 711.2};
|
||||||
};
|
};
|
||||||
|
class B_127x33_Ball: BulletBase {
|
||||||
|
tracerScale = 1.3; //1.2;
|
||||||
|
};
|
||||||
class B_127x54_Ball : BulletBase {
|
class B_127x54_Ball : BulletBase {
|
||||||
airFriction=-0.00019268;
|
airFriction=-0.00019268;
|
||||||
typicalSpeed=300;
|
typicalSpeed=300;
|
||||||
|
tracerScale = 1.3;//
|
||||||
ACE_caliber=12.954;
|
ACE_caliber=12.954;
|
||||||
ACE_bulletLength=64.516;
|
ACE_bulletLength=64.516;
|
||||||
ACE_bulletMass=48.6;
|
ACE_bulletMass=48.6;
|
||||||
@ -688,6 +694,7 @@ class CfgAmmo {
|
|||||||
timeToLive=10;
|
timeToLive=10;
|
||||||
airFriction=-0.00057503;
|
airFriction=-0.00057503;
|
||||||
typicalSpeed=900;
|
typicalSpeed=900;
|
||||||
|
tracerScale = 1.3; //1.2;
|
||||||
ACE_caliber=12.954;
|
ACE_caliber=12.954;
|
||||||
ACE_bulletLength=58.674;
|
ACE_bulletLength=58.674;
|
||||||
ACE_bulletMass=41.9256;
|
ACE_bulletMass=41.9256;
|
||||||
@ -703,6 +710,7 @@ class CfgAmmo {
|
|||||||
timeToLive=10;
|
timeToLive=10;
|
||||||
airFriction=-0.00057503;
|
airFriction=-0.00057503;
|
||||||
typicalSpeed=900;
|
typicalSpeed=900;
|
||||||
|
tracerScale = 1.3;//
|
||||||
hit=25;
|
hit=25;
|
||||||
caliber=4.0;
|
caliber=4.0;
|
||||||
ACE_caliber=12.954;
|
ACE_caliber=12.954;
|
||||||
@ -736,6 +744,7 @@ class CfgAmmo {
|
|||||||
timeToLive=10;
|
timeToLive=10;
|
||||||
airFriction=-0.00063800;
|
airFriction=-0.00063800;
|
||||||
typicalSpeed=820;
|
typicalSpeed=820;
|
||||||
|
tracerScale = 1.3; //1.5;
|
||||||
ACE_caliber=12.979;
|
ACE_caliber=12.979;
|
||||||
ACE_bulletLength=64.008;
|
ACE_bulletLength=64.008;
|
||||||
ACE_bulletMass=48.276;
|
ACE_bulletMass=48.276;
|
||||||
@ -750,6 +759,7 @@ class CfgAmmo {
|
|||||||
class B_45ACP_Ball : BulletBase {
|
class B_45ACP_Ball : BulletBase {
|
||||||
airFriction=-0.00081221;
|
airFriction=-0.00081221;
|
||||||
typicalSpeed=250;
|
typicalSpeed=250;
|
||||||
|
tracerScale = 0.6;
|
||||||
ACE_caliber=11.481;
|
ACE_caliber=11.481;
|
||||||
ACE_bulletLength=17.272;
|
ACE_bulletLength=17.272;
|
||||||
ACE_bulletMass=14.904;
|
ACE_bulletMass=14.904;
|
||||||
@ -761,4 +771,36 @@ class CfgAmmo {
|
|||||||
ACE_muzzleVelocities[]={230, 250, 285};
|
ACE_muzzleVelocities[]={230, 250, 285};
|
||||||
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
ACE_barrelLengths[]={101.6, 127.0, 228.6};
|
||||||
};
|
};
|
||||||
|
class B_19mm_HE: BulletBase {
|
||||||
|
tracerScale = 1;
|
||||||
|
};
|
||||||
|
class B_30mm_HE: B_19mm_HE {
|
||||||
|
tracerScale = 2.5;
|
||||||
|
};
|
||||||
|
class B_20mm: BulletBase {
|
||||||
|
timeToLive=30;
|
||||||
|
tracerScale = 1.5; //1;
|
||||||
|
};
|
||||||
|
class B_25mm: BulletBase {
|
||||||
|
timeToLive=30;
|
||||||
|
tracerScale = 2.0; //1;
|
||||||
|
};
|
||||||
|
class B_30mm_AP: BulletBase {
|
||||||
|
timeToLive=30;
|
||||||
|
tracerScale = 2.5;
|
||||||
|
};
|
||||||
|
class B_35mm_AA: BulletBase {
|
||||||
|
timeToLive=30;
|
||||||
|
tracerScale = 2.75; //1.85;
|
||||||
|
};
|
||||||
|
class ShellBase;
|
||||||
|
class Sh_120mm_HE: ShellBase {
|
||||||
|
tracerScale = 3;
|
||||||
|
};
|
||||||
|
class Sh_120mm_APFSDS: ShellBase {
|
||||||
|
tracerScale = 3;
|
||||||
|
};
|
||||||
|
class Gatling_30mm_HE_Plane_CAS_01_F: BulletBase {
|
||||||
|
tracerScale = 2.5;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -14,7 +14,6 @@ class CfgWeapons {
|
|||||||
class MMG_02_base_F;
|
class MMG_02_base_F;
|
||||||
class Rifle_Base_F;
|
class Rifle_Base_F;
|
||||||
class Rifle_Long_Base_F;
|
class Rifle_Long_Base_F;
|
||||||
class WeaponSlotsInfo;
|
|
||||||
class MuzzleSlot;
|
class MuzzleSlot;
|
||||||
|
|
||||||
/* Long Rifles */
|
/* Long Rifles */
|
||||||
@ -74,22 +73,12 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class DMR_01_base_F: Rifle_Long_Base_F {
|
class DMR_01_base_F: Rifle_Long_Base_F {
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
|
||||||
class MuzzleSlot: MuzzleSlot {
|
|
||||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class EBR_base_F: Rifle_Long_Base_F {
|
class EBR_base_F: Rifle_Long_Base_F {
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
|
||||||
class MuzzleSlot: MuzzleSlot {
|
|
||||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class Single: Mode_SemiAuto {
|
class Single: Mode_SemiAuto {
|
||||||
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
|
||||||
};
|
};
|
||||||
@ -101,13 +90,7 @@ class CfgWeapons {
|
|||||||
|
|
||||||
/* MX */
|
/* MX */
|
||||||
|
|
||||||
class arifle_MX_Base_F: Rifle_Base_F {
|
class arifle_MX_Base_F: Rifle_Base_F {};
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
|
||||||
class MuzzleSlot: MuzzleSlot {
|
|
||||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||||
magazines[] = {
|
magazines[] = {
|
||||||
"100Rnd_65x39_caseless_mag_Tracer",
|
"100Rnd_65x39_caseless_mag_Tracer",
|
||||||
@ -120,13 +103,6 @@ class CfgWeapons {
|
|||||||
initSpeed = -1.0;
|
initSpeed = -1.0;
|
||||||
ACE_barrelTwist=228.6;
|
ACE_barrelTwist=228.6;
|
||||||
ACE_barrelLength=406.4;
|
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 {
|
class arifle_MXM_F: arifle_MX_Base_F {
|
||||||
magazines[] = {
|
magazines[] = {
|
||||||
@ -150,13 +126,7 @@ class CfgWeapons {
|
|||||||
|
|
||||||
|
|
||||||
/* Katiba */
|
/* Katiba */
|
||||||
class arifle_katiba_Base_F: Rifle_Base_F {
|
class arifle_katiba_Base_F: Rifle_Base_F {};
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
|
||||||
class MuzzleSlot: MuzzleSlot {
|
|
||||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* Other */
|
/* Other */
|
||||||
@ -167,42 +137,16 @@ class CfgWeapons {
|
|||||||
"ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
|
"ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
|
||||||
};
|
};
|
||||||
initSpeed = -0.9763;
|
initSpeed = -0.9763;
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
|
||||||
class MuzzleSlot: MuzzleSlot {
|
|
||||||
compatibleItems[] += {"ACE_muzzle_mzls_H"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
ACE_barrelTwist=177.8;
|
ACE_barrelTwist=177.8;
|
||||||
ACE_barrelLength=317.5;
|
ACE_barrelLength=317.5;
|
||||||
};
|
};
|
||||||
class LMG_Zafir_F: Rifle_Long_Base_F {
|
class LMG_Zafir_F: Rifle_Long_Base_F {
|
||||||
initSpeed = -1.0;
|
initSpeed = -1.0;
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
|
||||||
class MuzzleSlot: MuzzleSlot {
|
|
||||||
compatibleItems[] += {"ACE_muzzle_mzls_B"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
ACE_barrelTwist=304.8;
|
ACE_barrelTwist=304.8;
|
||||||
ACE_barrelLength=459.74;
|
ACE_barrelLength=459.74;
|
||||||
};
|
};
|
||||||
|
class Tavor_base_F: Rifle_Base_F {};
|
||||||
|
class mk20_base_F: Rifle_Base_F {};
|
||||||
/* 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"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* SMGs */
|
/* SMGs */
|
||||||
class SDAR_base_F: Rifle_Base_F {
|
class SDAR_base_F: Rifle_Base_F {
|
||||||
@ -219,93 +163,43 @@ class CfgWeapons {
|
|||||||
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
dispersion = 0.0008727; // radians. Equal to 3 MOA.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class pdw2000_base_F: Rifle_Base_F {
|
class pdw2000_base_F: Rifle_Base_F {};
|
||||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
class SMG_01_Base: Rifle_Base_F {};
|
||||||
class MuzzleSlot: MuzzleSlot {
|
class SMG_02_base_F: Rifle_Base_F {};
|
||||||
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"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Pistols */
|
/* Pistols */
|
||||||
|
|
||||||
class Pistol;
|
class Pistol;
|
||||||
class Pistol_Base_F: Pistol {
|
class Pistol_Base_F: Pistol {};
|
||||||
class WeaponSlotsInfo;
|
|
||||||
};
|
|
||||||
|
|
||||||
class hgun_P07_F: Pistol_Base_F {
|
class hgun_P07_F: Pistol_Base_F {
|
||||||
initSpeed = -0.9778;
|
initSpeed = -0.9778;
|
||||||
ACE_barrelTwist=254.0;
|
ACE_barrelTwist=254.0;
|
||||||
ACE_barrelLength=101.6;
|
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 {
|
class hgun_Rook40_F: Pistol_Base_F {
|
||||||
initSpeed = -1.0;
|
initSpeed = -1.0;
|
||||||
ACE_barrelTwist=254.0;
|
ACE_barrelTwist=254.0;
|
||||||
ACE_barrelLength=111.76;
|
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 {
|
class hgun_ACPC2_F: Pistol_Base_F {
|
||||||
initSpeed = -1.0;
|
initSpeed = -1.0;
|
||||||
ACE_barrelTwist=406.4;
|
ACE_barrelTwist=406.4;
|
||||||
ACE_barrelLength=127.0;
|
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 {
|
class hgun_Pistol_heavy_01_F: Pistol_Base_F {
|
||||||
initSpeed = -0.96;
|
initSpeed = -0.96;
|
||||||
ACE_barrelTwist=406.4;
|
ACE_barrelTwist=406.4;
|
||||||
ACE_barrelLength=114.3;
|
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 {
|
class hgun_Pistol_heavy_02_F: Pistol_Base_F {
|
||||||
initSpeed = -0.92;
|
initSpeed = -0.92;
|
||||||
ACE_barrelTwist=406.4;
|
ACE_barrelTwist=406.4;
|
||||||
ACE_barrelLength=76.2;
|
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 {
|
class hgun_PDW2000_F: pdw2000_base_F {
|
||||||
initSpeed = -1.157;
|
initSpeed = -1.157;
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#define COMPONENT ballistics
|
#define COMPONENT ballistics
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#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
|
#ifdef DEBUG_ENABLED_BALLISTICS
|
||||||
#define DEBUG_MODE_FULL
|
#define DEBUG_MODE_FULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Ballistics">
|
<Package name="Ballistics">
|
||||||
<!-- MX -->
|
<!-- MX -->
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<Spanish>Calibre: 6,5x39mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL</Spanish>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<Italian>Calibro: 6.5x39mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||||
<Russian>Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba</Russian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<Italian>Calibro: 6.5x39mm Sil.<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||||
<Russian>Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba</Russian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<Italian>Calibro: 6.5x39mm AP<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||||
<Russian>Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba</Russian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<Italian>Calibro: 7.62x51mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||||
<Russian>Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR</Russian>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
<Italian>Calibro: 7.62x51mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||||
<Russian>Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR</Russian>
|
<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>
|
<Spanish>Calibre: .338 Norma Magnum trazadora<br />Balas: 130<br />Se usa en: SPMG</Spanish>
|
||||||
<Russian>Калибр: .338 Norma Magnum трассирующие<br />Патронов: 130<br />Используются в: SPMG</Russian>
|
<Russian>Калибр: .338 Norma Magnum трассирующие<br />Патронов: 130<br />Используются в: SPMG</Russian>
|
||||||
<Italian>Calibro: .338 Norma Magnum Tracciante<br />Munizioni: 130<br />In uso su: SPMG</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: .338 Norma Magnum nyomkövető<br />Lövedékek: 130<br />Használható: SPMG</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -434,7 +434,7 @@
|
|||||||
<Spanish>Calibre: .338 Norma Magnum trazadora IR-DIM<br />Balas: 130<br />Se usa en: SPMG</Spanish>
|
<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>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: .338 Norma Magnum infravörös nyomkövető<br />Lövedékek: 130<br />Használható: SPMG</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -470,7 +470,7 @@
|
|||||||
<Spanish>Calibre: .338 Norma Magnum AP<br />Balas: 130<br />Se usa en: SPMG</Spanish>
|
<Spanish>Calibre: .338 Norma Magnum AP<br />Balas: 130<br />Se usa en: SPMG</Spanish>
|
||||||
<Russian>Калибр: .338 Norma Magnum бронебойные<br />Патронов: 130<br />Используются с: SPMG</Russian>
|
<Russian>Калибр: .338 Norma Magnum бронебойные<br />Патронов: 130<br />Используются с: SPMG</Russian>
|
||||||
<Italian>Calibro: .338 Norma Magnum AP<br />Munizioni: 130<br />In uso su: SPMG</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: .338 Norma Magnum páncéltörő<br />Lövedékek: 130<br />Használható: SPMG</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -507,7 +507,7 @@
|
|||||||
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||||
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||||
<Italian>Calibro: 9.3x64mm Tracer<br />Munizioni: 10<br />In uso su: Cyrus</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 10<br />Használható: Cyrus</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -543,7 +543,7 @@
|
|||||||
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||||
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||||
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM<br />Munizioni: 10<br />In uso su: Cyrus</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 10<br /> Használható: Cyrus</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -580,7 +580,7 @@
|
|||||||
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||||
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||||
<Italian>Calibro: 9.3x64mm Tracciante<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 150<br />Használható: Navid</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -616,7 +616,7 @@
|
|||||||
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||||
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||||
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 150<br />Használható: Navid</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -652,7 +652,7 @@
|
|||||||
<Spanish>Calibre: 9.3x64mm AP<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
<Spanish>Calibre: 9.3x64mm AP<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||||
<Russian>Калибр: 9,3x64 мм бронебойные<br />Патронов: 150<br />Используются с: Навид</Russian>
|
<Russian>Калибр: 9,3x64 мм бронебойные<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||||
<Italian>Calibro: 9.3x64mm AP<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 9,3x64mm páncéltörő<br />Lövedékek: 150<br />Használható: Navid</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -796,7 +796,7 @@
|
|||||||
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
|
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
|
||||||
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur<br />Patronen: 100<br />Eingesetzt von: MXLSW</German>
|
<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>
|
<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>
|
<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>
|
<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>
|
</Key>
|
||||||
@ -832,7 +832,7 @@
|
|||||||
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
|
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
|
||||||
<German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur<br />Patronen: 200<br />Eingesetzt von: Stoner 99 LMG</German>
|
<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>
|
<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>
|
<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>
|
<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>
|
</Key>
|
||||||
@ -868,7 +868,7 @@
|
|||||||
<Russian>Калибр: 5,56x45 мм NATO (Mk262)<br />Патронов: 30</Russian>
|
<Russian>Калибр: 5,56x45 мм NATO (Mk262)<br />Патронов: 30</Russian>
|
||||||
<German>Kaliber: 5,56x45mm NATO (Mk262)<br />Patronen: 30</German>
|
<German>Kaliber: 5,56x45mm NATO (Mk262)<br />Patronen: 30</German>
|
||||||
<Italian>Calibro: 5.56x45 mm NATO (Mk262)<br />Munizioni: 30</Italian>
|
<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>
|
<Portuguese>Calibre: 5.56x45mm NATO (Mk262)<br/>Cartuchos: 30</Portuguese>
|
||||||
<Hungarian>Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30</Hungarian>
|
<Hungarian>Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -904,7 +904,7 @@
|
|||||||
<Russian>Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30</Russian>
|
<Russian>Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30</Russian>
|
||||||
<German>Kaliber: 5,56x45mm NATO (Mk318)<br />Patronen: 30</German>
|
<German>Kaliber: 5,56x45mm NATO (Mk318)<br />Patronen: 30</German>
|
||||||
<Italian>Calibro: 5.56x45 mm NATO (Mk318)<br />Munizioni: 30</Italian>
|
<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>
|
<Portuguese>Calibre: 5.56x45mm NATO (Mk318)<br/>Cartuchos: 30</Portuguese>
|
||||||
<Hungarian>Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30</Hungarian>
|
<Hungarian>Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -940,7 +940,7 @@
|
|||||||
<Russian>Калибр: 5,56x45 мм NATO (M995 бронебойные)<br />Патронов: 30</Russian>
|
<Russian>Калибр: 5,56x45 мм NATO (M995 бронебойные)<br />Патронов: 30</Russian>
|
||||||
<German>Kaliber: 5,56x45mm NATO (M995 AP)<br />Patronen: 30</German>
|
<German>Kaliber: 5,56x45mm NATO (M995 AP)<br />Patronen: 30</German>
|
||||||
<Italian>Calibro: 5.56x45 mm NATO (M995 AP)<br />Munizioni: 30</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 5,56x45mm NATO (M995 páncéltörő)<br />Lövedékek: 30</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -976,7 +976,7 @@
|
|||||||
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 10</Russian>
|
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 10</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 10</German>
|
<German>Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 10</German>
|
||||||
<Italian>Calibro: 7.62x51 mm NATO (M118LR)<br />Munizioni: 10</Italian>
|
<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>
|
<Portuguese>Calibre: 7.26x51mm NATO (M118LR)<br/>Cartuchos: 10</Portuguese>
|
||||||
<Hungarian>Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10</Hungarian>
|
<Hungarian>Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1012,7 +1012,7 @@
|
|||||||
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 20</Russian>
|
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 20</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 20</German>
|
<German>Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 20</German>
|
||||||
<Italian>Calibro: 7.62x51 mm NATO (M118LR)<br />Munizioni: 20</Italian>
|
<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>
|
<Portuguese>Calibre: 7.26x51mm NATO (M118LR)<br/>Cartuchos: 20</Portuguese>
|
||||||
<Hungarian>Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20</Hungarian>
|
<Hungarian>Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1048,7 +1048,7 @@
|
|||||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10</Russian>
|
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 10</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 10</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1084,7 +1084,7 @@
|
|||||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20</Russian>
|
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 20</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 20</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1120,7 +1120,7 @@
|
|||||||
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 10</Russian>
|
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 10</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 10</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 10</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1156,7 +1156,7 @@
|
|||||||
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20</Russian>
|
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 20</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 20</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1192,7 +1192,7 @@
|
|||||||
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)<br />Патронов: 10</Russian>
|
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)<br />Патронов: 10</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 10</German>
|
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 10</German>
|
||||||
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)<br />Munizioni: 10</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 10</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1228,7 +1228,7 @@
|
|||||||
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 20</German>
|
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 20</German>
|
||||||
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)<br />Munizioni: 20</Italian>
|
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)<br />Munizioni: 20</Italian>
|
||||||
<Spanish>Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 20</Spanish>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 20</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1264,7 +1264,7 @@
|
|||||||
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 0)<br />Патронов: 20</Russian>
|
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 0)<br />Патронов: 20</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Patronen: 20</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Lövedékek: 20</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1300,7 +1300,7 @@
|
|||||||
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20</Russian>
|
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20</Russian>
|
||||||
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Patronen: 20</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Lövedékek: 20</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1336,7 +1336,7 @@
|
|||||||
<Russian>Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20</Russian>
|
<Russian>Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20</Russian>
|
||||||
<German>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Patronen: 20</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Lövedékek: 20</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1372,7 +1372,7 @@
|
|||||||
<Russian>Калибр: 6,5x47 мм (экспансивные Scenar)<br />Патронов: 30<br />Используются с: MXM</Russian>
|
<Russian>Калибр: 6,5x47 мм (экспансивные Scenar)<br />Патронов: 30<br />Используются с: MXM</Russian>
|
||||||
<German>Kaliber: 6,5x47mm (HPBT Scenar)<br />Patronen: 30<br />Eingesetzt von: MXM</German>
|
<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>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 30<br />Használható: MXM</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1408,7 +1408,7 @@
|
|||||||
<Italian>Calibro: 6.5mm Creedmor<br />Munizioni: 30<br />In uso su: MXM</Italian>
|
<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>
|
<Spanish>Calibre: 6.5mm Creedmor<br />Balas: 30<br />Se usa en: MXM</Spanish>
|
||||||
<Russian>Калибр: 6,5x47мм Creedmor<br />Патронов: 30<br />Используются c: MXM</Russian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 30<br />Használható: MXM</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1444,7 +1444,7 @@
|
|||||||
<Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)<br />Патронов: 10</Russian>
|
<Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)<br />Патронов: 10</Russian>
|
||||||
<German>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Patronen: 10</German>
|
<German>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Patronen: 10</German>
|
||||||
<Italian>Calibro: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Munizioni: 10</Italian>
|
<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>
|
<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>
|
<Hungarian>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Lövedékek: 10</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1480,7 +1480,7 @@
|
|||||||
<Russian>Калибр: 8,6x70 мм (API526)<br />Патронов: 10</Russian>
|
<Russian>Калибр: 8,6x70 мм (API526)<br />Патронов: 10</Russian>
|
||||||
<German>Kaliber: 8,6x70mm (API526)<br />Patronen: 10</German>
|
<German>Kaliber: 8,6x70mm (API526)<br />Patronen: 10</German>
|
||||||
<Italian>Calibro: 8.6x70mm (API526)<br />Munizioni: 10</Italian>
|
<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>
|
<Portuguese>Calibre: 8.6x70mm (API526)<br/>Cartuchos: 10</Portuguese>
|
||||||
<Hungarian>Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10</Hungarian>
|
<Hungarian>Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1516,7 +1516,7 @@
|
|||||||
<Russian>Калибр: 12,7x99 мм<br />Патронов: 5</Russian>
|
<Russian>Калибр: 12,7x99 мм<br />Патронов: 5</Russian>
|
||||||
<German>Kaliber: 12,7x99mm<br />Patronen: 5</German>
|
<German>Kaliber: 12,7x99mm<br />Patronen: 5</German>
|
||||||
<Italian>Calibro: 12.7x99mm<br />Munizioni: 5</Italian>
|
<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>
|
<Portuguese>Calibre: 12.7x99mm<br/>Cartuchos: 5</Portuguese>
|
||||||
<Hungarian>Kaliber: 12,7x99mm<br />Lövedékek: 5</Hungarian>
|
<Hungarian>Kaliber: 12,7x99mm<br />Lövedékek: 5</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1552,7 +1552,7 @@
|
|||||||
<Russian>Калибр: 12,7x99 мм бронебойно-зажигательные<br />Патронов: 5</Russian>
|
<Russian>Калибр: 12,7x99 мм бронебойно-зажигательные<br />Патронов: 5</Russian>
|
||||||
<German>Kaliber:12,7x99mm API<br />Patronen: 5</German>
|
<German>Kaliber:12,7x99mm API<br />Patronen: 5</German>
|
||||||
<Italian>Calibro: 12.7x99mm API<br />Munizioni: 5</Italian>
|
<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>
|
<Portuguese>Calibre: 12.7x99mm API<br/>Cartuchos: 5</Portuguese>
|
||||||
<Hungarian>Kaliber: 12,7x99mm API<br />Lövedékek: 5</Hungarian>
|
<Hungarian>Kaliber: 12,7x99mm API<br />Lövedékek: 5</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1588,7 +1588,7 @@
|
|||||||
<Russian>Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5</Russian>
|
<Russian>Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5</Russian>
|
||||||
<Italian>Calibro: 12.7x99mm (AMAX)<br />Munizioni: 5</Italian>
|
<Italian>Calibro: 12.7x99mm (AMAX)<br />Munizioni: 5</Italian>
|
||||||
<German>Kaliber:12,7x99mm (AMAX)<br />Patronen: 5</German>
|
<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>
|
<Portuguese>Calibre: 12.7x99mm (AMAX)<br/>Cartuchos: 5</Portuguese>
|
||||||
<Hungarian>Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5</Hungarian>
|
<Hungarian>Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5</Hungarian>
|
||||||
</Key>
|
</Key>
|
||||||
@ -1599,7 +1599,10 @@
|
|||||||
<German>[ACE] Munitionskiste</German>
|
<German>[ACE] Munitionskiste</German>
|
||||||
<Czech>[ACE] Bedna s municí</Czech>
|
<Czech>[ACE] Bedna s municí</Czech>
|
||||||
<Portuguese>[ACE] Caixa com suprimentos de munição</Portuguese>
|
<Portuguese>[ACE] Caixa com suprimentos de munição</Portuguese>
|
||||||
|
<French>[ACE] Caisse de munitions</French>
|
||||||
<Hungarian>[ACE] Lőszeres láda</Hungarian>
|
<Hungarian>[ACE] Lőszeres láda</Hungarian>
|
||||||
|
<Russian>[ACE] Ящик с боеприпасами</Russian>
|
||||||
|
<Italian>[ACE] Cassa munizioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</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 Extended_PreInit_EventHandlers {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||||
@ -9,6 +16,13 @@ class Extended_PostInit_EventHandlers {
|
|||||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
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
|
//release escorted captive when entering a vehicle
|
||||||
class Extended_GetIn_EventHandlers {
|
class Extended_GetIn_EventHandlers {
|
||||||
class All {
|
class All {
|
||||||
@ -25,14 +39,6 @@ class Extended_GetOut_EventHandlers {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
//reset captivity and escorting status when getting killed
|
|
||||||
class Extended_Killed_EventHandlers {
|
|
||||||
class CAManBase {
|
|
||||||
class GVAR(AutoDetachCaptive) {
|
|
||||||
killed = QUOTE(_this call FUNC(handleKilled));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
//mission start
|
//mission start
|
||||||
class Extended_InitPost_EventHandlers {
|
class Extended_InitPost_EventHandlers {
|
||||||
class CAManBase {
|
class CAManBase {
|
||||||
|
@ -35,6 +35,12 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
|||||||
|
|
||||||
class CutSceneAnimationBase;
|
class CutSceneAnimationBase;
|
||||||
|
|
||||||
|
#define MACRO_ANIMATION \
|
||||||
|
head = "headDefault"; \
|
||||||
|
aimingBody = "aimingNo"; \
|
||||||
|
forceAim = 1; \
|
||||||
|
static = 1;
|
||||||
|
|
||||||
//Handcuffed Anims:
|
//Handcuffed Anims:
|
||||||
class ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon: CutSceneAnimationBase {
|
class ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon: CutSceneAnimationBase {
|
||||||
actions = "ACE_CivilStandHandcuffedActions";
|
actions = "ACE_CivilStandHandcuffedActions";
|
||||||
@ -45,6 +51,7 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
|||||||
ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon",0.1};
|
ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon",0.1};
|
||||||
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
||||||
canReload = 0;
|
canReload = 0;
|
||||||
|
MACRO_ANIMATION
|
||||||
};
|
};
|
||||||
class ACE_AmovPercMstpScapWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon {
|
class ACE_AmovPercMstpScapWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon {
|
||||||
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_Ease";
|
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_Ease";
|
||||||
@ -52,12 +59,14 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
|||||||
ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
||||||
InterpolateTo[] = {"Unconscious",0.01};
|
InterpolateTo[] = {"Unconscious",0.01};
|
||||||
looped = 1;
|
looped = 1;
|
||||||
|
MACRO_ANIMATION
|
||||||
};
|
};
|
||||||
class ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon {
|
class ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon {
|
||||||
actions = "CivilStandActions";
|
actions = "CivilStandActions";
|
||||||
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\amovpercmstpsnonwnondnon_easeout";
|
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\amovpercmstpsnonwnondnon_easeout";
|
||||||
ConnectTo[] = {"AmovPercMstpSnonWnonDnon",0.1};
|
ConnectTo[] = {"AmovPercMstpSnonWnonDnon",0.1};
|
||||||
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1};
|
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1};
|
||||||
|
MACRO_ANIMATION
|
||||||
};
|
};
|
||||||
|
|
||||||
//Handcuffed-FFV:
|
//Handcuffed-FFV:
|
||||||
@ -65,6 +74,7 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
|||||||
file = "\A3\cargoposes_F_heli\anim\passenger_flatground_3idleunarmed.rtm";
|
file = "\A3\cargoposes_F_heli\anim\passenger_flatground_3idleunarmed.rtm";
|
||||||
actions = "ACE_CivilHandCuffedFFVActions";
|
actions = "ACE_CivilHandCuffedFFVActions";
|
||||||
ConnectTo[] = {};
|
ConnectTo[] = {};
|
||||||
|
MACRO_ANIMATION
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -78,6 +88,7 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
|||||||
ConnectTo[] = {"ACE_AmovPercMstpSsurWnonDnon",0.1};
|
ConnectTo[] = {"ACE_AmovPercMstpSsurWnonDnon",0.1};
|
||||||
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
||||||
canReload = 0;
|
canReload = 0;
|
||||||
|
MACRO_ANIMATION
|
||||||
};
|
};
|
||||||
class ACE_AmovPercMstpSsurWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon {
|
class ACE_AmovPercMstpSsurWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon {
|
||||||
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\sur\non\AmovPercMstpSsurWnonDnon";
|
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\sur\non\AmovPercMstpSsurWnonDnon";
|
||||||
@ -85,6 +96,7 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
|||||||
looped = 1;
|
looped = 1;
|
||||||
ConnectTo[] = {"ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
ConnectTo[] = {"ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
|
||||||
InterpolateTo[] = {"Unconscious",0.01};
|
InterpolateTo[] = {"Unconscious",0.01};
|
||||||
|
MACRO_ANIMATION
|
||||||
};
|
};
|
||||||
class ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon {
|
class ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon {
|
||||||
speed = 0.5; //for gameplay reasons, slow this down
|
speed = 0.5; //for gameplay reasons, slow this down
|
||||||
@ -92,6 +104,7 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
|||||||
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\sur\non\AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon";
|
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\sur\non\AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon";
|
||||||
ConnectTo[] = {"AmovPercMstpSnonWnonDnon",0.1};
|
ConnectTo[] = {"AmovPercMstpSnonWnonDnon",0.1};
|
||||||
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon",0.1};
|
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon",0.1};
|
||||||
|
MACRO_ANIMATION
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -32,7 +32,6 @@ class CfgVehicles {
|
|||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||||
priority = 2.3;
|
priority = 2.3;
|
||||||
hotkey = "E";
|
|
||||||
};
|
};
|
||||||
class ACE_StopEscorting {
|
class ACE_StopEscorting {
|
||||||
displayName = CSTRING(StopEscorting);
|
displayName = CSTRING(StopEscorting);
|
||||||
@ -43,7 +42,6 @@ class CfgVehicles {
|
|||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||||
priority = 2.3;
|
priority = 2.3;
|
||||||
hotkey = "E";
|
|
||||||
};
|
};
|
||||||
class ACE_LoadCaptive {
|
class ACE_LoadCaptive {
|
||||||
displayName = CSTRING(LoadCaptive);
|
displayName = CSTRING(LoadCaptive);
|
||||||
@ -54,7 +52,6 @@ class CfgVehicles {
|
|||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
||||||
priority = 2.2;
|
priority = 2.2;
|
||||||
hotkey = "L";
|
|
||||||
};
|
};
|
||||||
class GVAR(UnloadCaptive) {
|
class GVAR(UnloadCaptive) {
|
||||||
displayName = CSTRING(UnloadCaptive);
|
displayName = CSTRING(UnloadCaptive);
|
||||||
@ -74,7 +71,6 @@ class CfgVehicles {
|
|||||||
exceptions[] = {"isNotEscorting"};
|
exceptions[] = {"isNotEscorting"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 2.3;
|
priority = 2.3;
|
||||||
hotkey = "C";
|
|
||||||
};
|
};
|
||||||
class ACE_StartSurrenderingSelf {
|
class ACE_StartSurrenderingSelf {
|
||||||
displayName = CSTRING(StartSurrendering);
|
displayName = CSTRING(StartSurrendering);
|
||||||
@ -153,16 +149,32 @@ class CfgVehicles {
|
|||||||
class GVAR(ModuleSurrender): Module_F {
|
class GVAR(ModuleSurrender): Module_F {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
category = "ACE";
|
category = "ACE";
|
||||||
displayName = CSTRING(ModuleSurrender_DisplayName); //Make Unit Surrender
|
displayName = CSTRING(ModuleSurrender_DisplayName);
|
||||||
function = QFUNC(moduleSurrender);
|
function = QFUNC(moduleSurrender);
|
||||||
scope = 2; //show in editor
|
scope = 2; //show in editor
|
||||||
isGlobal = 1; //run global
|
isGlobal = 0; //run on server
|
||||||
isTriggerActivated = 1; //Wait for triggers
|
isTriggerActivated = 1; //Wait for triggers
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
|
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
|
||||||
functionPriority = 0;
|
functionPriority = 0;
|
||||||
class Arguments {};
|
class Arguments {};
|
||||||
class ModuleDescription: ModuleDescription {
|
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"};
|
sync[] = {"AnyAI"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -176,6 +188,7 @@ class CfgVehicles {
|
|||||||
scope = 2;
|
scope = 2;
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
|
icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
|
isSingular = 1;
|
||||||
class Arguments {
|
class Arguments {
|
||||||
class allowHandcuffOwnSide {
|
class allowHandcuffOwnSide {
|
||||||
displayName = CSTRING(ModuleSettings_handcuffSide_name);
|
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"
|
#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
|
//Handles when someone starts escorting and then disconnects, leaving the captive attached
|
||||||
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
|
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
|
||||||
@ -18,8 +24,6 @@ if (isServer) then {
|
|||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
|
||||||
["playerVehicleChanged", {_this call FUNC(handleVehicleChanged)}] call EFUNC(common,addEventHandler);
|
|
||||||
["zeusDisplayChanged", {_this call FUNC(handleZeusDisplayChanged)}] call EFUNC(common,addEventHandler);
|
|
||||||
["playerChanged", {_this call FUNC(handlePlayerChanged)}] call EFUNC(common,addEventhandler);
|
["playerChanged", {_this call FUNC(handlePlayerChanged)}] call EFUNC(common,addEventhandler);
|
||||||
["MoveInCaptive", {_this call FUNC(vehicleCaptiveMoveIn)}] call EFUNC(common,addEventHandler);
|
["MoveInCaptive", {_this call FUNC(vehicleCaptiveMoveIn)}] call EFUNC(common,addEventHandler);
|
||||||
["MoveOutCaptive", {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler);
|
["MoveOutCaptive", {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler);
|
||||||
@ -27,7 +31,7 @@ if (isServer) then {
|
|||||||
["SetHandcuffed", {_this call FUNC(setHandcuffed)}] call EFUNC(common,addEventHandler);
|
["SetHandcuffed", {_this call FUNC(setHandcuffed)}] call EFUNC(common,addEventHandler);
|
||||||
["SetSurrendered", {_this call FUNC(setSurrendered)}] call EFUNC(common,addEventHandler);
|
["SetSurrendered", {_this call FUNC(setSurrendered)}] call EFUNC(common,addEventHandler);
|
||||||
|
|
||||||
//Medical Integration Events???
|
//Medical Integration Events
|
||||||
["medical_onUnconscious", {_this call ACE_Captives_fnc_handleOnUnconscious}] call EFUNC(common,addEventHandler);
|
["medical_onUnconscious", {_this call ACE_Captives_fnc_handleOnUnconscious}] call EFUNC(common,addEventHandler);
|
||||||
|
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
@ -2,34 +2,8 @@
|
|||||||
|
|
||||||
ADDON = false;
|
ADDON = false;
|
||||||
|
|
||||||
PREP(canApplyHandcuffs);
|
#include "XEH_PREP.hpp"
|
||||||
PREP(canEscortCaptive);
|
|
||||||
PREP(canFriskPerson);
|
GVAR(captivityEnabled) = false;
|
||||||
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(handleKilled);
|
|
||||||
PREP(handleOnUnconscious);
|
|
||||||
PREP(handlePlayerChanged);
|
|
||||||
PREP(handleRespawn);
|
|
||||||
PREP(handleUnitInitPost);
|
|
||||||
PREP(handleZeusDisplayChanged);
|
|
||||||
PREP(moduleSettings);
|
|
||||||
PREP(moduleSurrender);
|
|
||||||
PREP(setHandcuffed);
|
|
||||||
PREP(setSurrendered);
|
|
||||||
PREP(vehicleCaptiveMoveIn);
|
|
||||||
PREP(vehicleCaptiveMoveOut);
|
|
||||||
|
|
||||||
ADDON = true;
|
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 CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender)};
|
units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender), QGVAR(ModuleHandcuffed)};
|
||||||
weapons[] = {"ACE_CableTie"};
|
weapons[] = {"ACE_CableTie"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ACE_Interaction"};
|
requiredAddons[] = {"ACE_Interaction"};
|
||||||
@ -17,3 +17,4 @@ class CfgPatches {
|
|||||||
#include "CfgMoves.hpp"
|
#include "CfgMoves.hpp"
|
||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
#include "CfgWeapons.hpp"
|
#include "CfgWeapons.hpp"
|
||||||
|
#include "CfgEden.hpp"
|
@ -20,7 +20,13 @@ params ["_unit", "_target"];
|
|||||||
//Check sides, Player has cableTie, target is alive and not already handcuffed
|
//Check sides, Player has cableTie, target is alive and not already handcuffed
|
||||||
|
|
||||||
(GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) &&
|
(GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) &&
|
||||||
("ACE_CableTie" in (items _unit)) &&
|
{"ACE_CableTie" in (items _unit)} &&
|
||||||
{alive _target} &&
|
{alive _target} &&
|
||||||
{!(_target getVariable [QGVAR(isHandcuffed), false])} &&
|
{!(_target getVariable [QGVAR(isHandcuffed), false])} &&
|
||||||
(GVAR(requireSurrender) == 0 || ((_target getVariable [QGVAR(isSurrendering), false]) || (currentWeapon _target == "" && GVAR(requireSurrender) == 2)))
|
{
|
||||||
|
(_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 {
|
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);
|
[objNull, _target, false] call EFUNC(common,claim);
|
||||||
detach _target;
|
detach _target;
|
||||||
_unit removeAction _actionID;
|
_unit removeAction _actionID;
|
||||||
|
@ -26,7 +26,7 @@ if (local _unit) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
||||||
[_unit, false] call FUNC(setSurrender);
|
[_unit, false] call FUNC(setSurrendered);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: PabstMirror
|
|
||||||
* Handles when a unit is kill. Reset captivity and escorting status
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: _oldUnit <OBJECT>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* None
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* [bob1] call ACE_captives_fnc_handleKilled
|
|
||||||
*
|
|
||||||
* Public: No
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
params ["_oldUnit"];
|
|
||||||
|
|
||||||
if (!local _oldUnit) exitWith {};
|
|
||||||
|
|
||||||
if (_oldUnit getVariable [QGVAR(isHandcuffed), false]) then {
|
|
||||||
[_oldUnit, false] call FUNC(setHandcuffed);
|
|
||||||
};
|
|
||||||
|
|
||||||
if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
|
||||||
_oldUnit setVariable [QGVAR(isEscorting), false, true];
|
|
||||||
};
|
|
||||||
|
|
||||||
if (_oldUnit getVariable [QGVAR(isSurrendering), false]) then {
|
|
||||||
[_oldUnit, false] call FUNC(setSurrendered);
|
|
||||||
};
|
|
@ -21,10 +21,10 @@ params ["_newUnit","_oldUnit"];
|
|||||||
//set showHUD based on new unit status:
|
//set showHUD based on new unit status:
|
||||||
if ((_newUnit getVariable [QGVAR(isHandcuffed), false]) || {_newUnit getVariable [QGVAR(isSurrendering), false]}) then {
|
if ((_newUnit getVariable [QGVAR(isHandcuffed), false]) || {_newUnit getVariable [QGVAR(isSurrendering), false]}) then {
|
||||||
TRACE_1("Player Change (showHUD false)",_newUnit);
|
TRACE_1("Player Change (showHUD false)",_newUnit);
|
||||||
showHUD false;
|
["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
|
||||||
} else {
|
} else {
|
||||||
TRACE_1("Player Change (showHUD true)",_newUnit);
|
TRACE_1("Player Change (showHUD true)",_newUnit);
|
||||||
showHUD true;
|
["captive", []] call EFUNC(common,showHud); //same as showHud true;
|
||||||
};
|
};
|
||||||
|
|
||||||
//If old player was escorting, stop
|
//If old player was escorting, stop
|
||||||
|
@ -20,20 +20,34 @@ params ["_unit","_dead"];
|
|||||||
|
|
||||||
if (!local _unit) exitWith {};
|
if (!local _unit) exitWith {};
|
||||||
|
|
||||||
//With respawn="group", we could be respawning into a unit that is handcuffed/captive
|
// Group and side respawn can potentially respawn you as a captive unit
|
||||||
//If they are, reset and rerun the SET function
|
// Base and instant respawn cannot, so captive should be entirely reset
|
||||||
//if not, make sure to explicity disable the setCaptivityStatus, because captiveNum does not work correctly on respawn
|
// So we explicity account for the respawn type
|
||||||
|
private ["_respawn"];
|
||||||
|
_respawn = [0] call BIS_fnc_missionRespawnType;
|
||||||
|
|
||||||
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
if (_respawn > 3) then {
|
||||||
_unit setVariable [QGVAR(isHandcuffed), false];
|
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||||
[_unit, true] call FUNC(setHandcuffed);
|
_unit setVariable [QGVAR(isHandcuffed), false];
|
||||||
} else {
|
[_unit, true] call FUNC(setHandcuffed);
|
||||||
[_unit, QGVAR(Handcuffed), false] call EFUNC(common,setCaptivityStatus);
|
};
|
||||||
};
|
|
||||||
|
|
||||||
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
||||||
_unit setVariable [QGVAR(isSurrendering), false];
|
_unit setVariable [QGVAR(isSurrendering), false];
|
||||||
[_unit, true] call FUNC(setSurrendered);
|
[_unit, true] call FUNC(setSurrendered);
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
[_unit, QGVAR(Surrendered), false] call EFUNC(common,setCaptivityStatus);
|
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||||
|
[_unit, false] call FUNC(setHandcuffed);
|
||||||
|
};
|
||||||
|
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||||
|
|
||||||
|
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
||||||
|
[_unit, false] call FUNC(setSurrendered);
|
||||||
|
};
|
||||||
|
[_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"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
params ["_unit","_zeusIsOpen"];
|
if ((ACE_player getVariable [QGVAR(isHandcuffed), false]) || {ACE_player getVariable [QGVAR(isSurrendering), false]}) then {
|
||||||
|
TRACE_1("Player Change (showHUD false)",ACE_player);
|
||||||
//set showHUD based on unit status:
|
["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
|
||||||
if (!_zeusIsOpen) then {
|
} else {
|
||||||
if ((_unit getVariable [QGVAR(isHandcuffed), false]) || {_unit getVariable [QGVAR(isSurrendering), false]}) then {
|
TRACE_1("Player Change (showHUD true)",ACE_player);
|
||||||
TRACE_1("Player Change (showHUD false)",_unit);
|
["captive", []] call EFUNC(common,showHud); //same as showHud true;
|
||||||
showHUD false;
|
|
||||||
} else {
|
|
||||||
TRACE_1("Player Change (showHUD true)",_unit);
|
|
||||||
showHUD true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user