mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into cseBasicBallisticsPort
This commit is contained in:
commit
b2b6591fdd
57
README.md
57
README.md
@ -1,4 +1,53 @@
|
||||
ACE3
|
||||
====
|
||||
|
||||
Placeholder.
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/KoffeinFlummi/ACE3/new-readme/extras/logo.png?token=ACU2mWeJUeshQIVc52XPoNiPpc3PzTauks5Uv24rwA%3D%3D" height="150px" /><br />
|
||||
<a href="https://github.com/KoffeinFlummi/ACE3/releases">
|
||||
<img src="http://img.shields.io/badge/release-3.0-green.svg?style=flat" alt="ACE version">
|
||||
</a>
|
||||
<a href="#">
|
||||
<img src="http://img.shields.io/badge/download-22_MB-blue.svg?style=flat" alt="ACE download">
|
||||
</a>
|
||||
<a href="https://github.com/KoffeinFlummi/ACE3/issues">
|
||||
<img src="http://img.shields.io/github/issues/KoffeinFlummi/ACE3.svg?style=flat" alt="ACE issues">
|
||||
</a>
|
||||
<a href="https://github.com/KoffeinFlummi/ACE3/blob/master/LICENSE">
|
||||
<img src="http://img.shields.io/badge/license-GPLv2-red.svg?style=flat" alt="ACE license">
|
||||
</a>
|
||||
</p>
|
||||
<p align="center"><sup><strong>Requires the latest version of <a href="http://www.armaholic.com/page.php?id=18767">CBA A3</a> | <a href="#">BIF thread</a></strong></sup></p>
|
||||
|
||||
**ACE 3** is a join effort by the teams behind **ACE 2**, **AGM**, **CSE** and **RHS** to improve the realism and authenticity of Arma 3.
|
||||
|
||||
This mod is entirely **open-source**, and everyone is free to propose changes or maintain their own, customized version as long as they make their changes open to the public in accordance with the GNU General Public License (for more information check the license file attached to this project).
|
||||
|
||||
The mod is **built modularly** — almost any PBO can be removed, thus a team can maintain its own tailored version of ACE, which excludes a select number of components that they don't like, or which conflict with other add-ons. Components themselves, like e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience.
|
||||
|
||||
More information on the purpose of the different components of ACE and which ones they rely on can be found [here](https://github.com/KoffeinFlummi/ACE3/wiki#features).
|
||||
|
||||
### Features
|
||||
* Improved medical system
|
||||
* Logistics system including cargo transport and vehicle maintenance
|
||||
* Explosives system including different trigger types
|
||||
* Captivity system
|
||||
* Realistic names for vehicles and weapons
|
||||
* Realistic ballistics including wind and humidity
|
||||
* Backblast simulation
|
||||
* Weapon resting and bipod deployment
|
||||
* A fire control system for armored vehicles and helicopters
|
||||
***and more...***
|
||||
|
||||
For a full list of current features, check [the official wiki](https://github.com/KoffeinFlummi/ACE3/wiki).
|
||||
|
||||
#### Guides & How-Tos
|
||||
If you installed ACE3, but have trouble understanding how it all works, or where to start — see [Getting Started](https://github.com/KoffeinFlummi/ACE3/wiki/Getting-Started).
|
||||
|
||||
#### Contributing
|
||||
If you want to help put with the ongoing development, you can do so by looking for possible bugs or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. In the process, feel free to add yourself to the author array of any .pbo you will be editing and the AUTHORS.txt file.
|
||||
|
||||
To report a bug, propose a feature, or suggest a change to the existing one — please, use our [Issue Tracker](https://github.com/KoffeinFlummi/ACE3/issues).
|
||||
|
||||
For detailed information on how to make your weapons or vehicles compatible with ACE — read [this article](https://github.com/KoffeinFlummi/ACE3/wiki/For-Addon-Makers).
|
||||
|
||||
#### Testing & Building
|
||||
If you want to help us test the latest development changes, feel free to download our master branch, using either git — if familiar with the process — or directly, by following [this link](https://github.com/KoffeinFlummi/ACE3/archive/master.zip).
|
||||
|
||||
To find out how to build a version of ACE for testing, follow [these instructions](https://github.com/KoffeinFlummi/ACE3/wiki/Developers-::-Setting-up-your-development-environment).
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,565 +0,0 @@
|
||||
|
||||
class MFD {
|
||||
class AirplaneHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.85,0.85};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class PlaneOrientation {
|
||||
type = "fixed";
|
||||
pos[] = {0.5,0.5};
|
||||
};
|
||||
|
||||
class Target: Pos10Vector {
|
||||
source = "target";
|
||||
};
|
||||
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.65,0.65};
|
||||
};
|
||||
|
||||
class VspeedBone {
|
||||
type = "linear";
|
||||
source = "vspeed";
|
||||
sourceScale = 1;
|
||||
min = -10;
|
||||
max = 10;
|
||||
minPos[] = {0.93,0.2};
|
||||
maxPos[] = {0.93,0.8};
|
||||
};
|
||||
|
||||
class RadarAltitudeBone {
|
||||
type = "linear";
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
min = 0;
|
||||
max = 60;
|
||||
minPos[] = {0.965,0.2};
|
||||
maxPos[] = {0.965,0.8};
|
||||
};
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "rotational";
|
||||
source = "horizonBank";
|
||||
center[] = {0.5,0.5};
|
||||
min = -3.1416;
|
||||
max = 3.1416;
|
||||
minAngle = -180;
|
||||
maxAngle = 180;
|
||||
aspectRatio = 1;
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.1,0.1};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.65,0.65};
|
||||
};
|
||||
|
||||
class Level0 {
|
||||
type = "horizon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.78,0.78};
|
||||
angle = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class Horizont {
|
||||
clipTL[] = {0.15,0.15};
|
||||
clipBR[] = {0.85,0.85};
|
||||
class Dimmed {
|
||||
class Level0 {
|
||||
type = "line";
|
||||
points[] = {
|
||||
{"Level0",{-0.42,0},1},
|
||||
{"Level0",{-0.38,0},1},{},
|
||||
{"Level0",{-0.37,0},1},
|
||||
{"Level0",{-0.33,0},1},{},
|
||||
{"Level0",{-0.32,0},1},
|
||||
{"Level0",{-0.28,0},1},{},
|
||||
{"Level0",{-0.27,0},1},
|
||||
{"Level0",{-0.23,0},1},{},
|
||||
{"Level0",{-0.22,0},1},
|
||||
{"Level0",{-0.18,0},1},{},
|
||||
{"Level0",{-0.17,0},1},
|
||||
{"Level0",{-0.13,0},1},{},
|
||||
{"Level0",{-0.12,0},1},
|
||||
{"Level0",{-0.08,0},1},{},
|
||||
{"Level0",{0.42,0},1},
|
||||
{"Level0",{0.38,0},1},{},
|
||||
{"Level0",{0.37,0},1},
|
||||
{"Level0",{0.33,0},1},{},
|
||||
{"Level0",{0.32,0},1},
|
||||
{"Level0",{0.28,0},1},{},
|
||||
{"Level0",{0.27,0},1},
|
||||
{"Level0",{0.23,0},1},{},
|
||||
{"Level0",{0.22,0},1},
|
||||
{"Level0",{0.18,0},1},{},
|
||||
{"Level0",{0.17,0},1},
|
||||
{"Level0",{0.13,0},1},{},
|
||||
{"Level0",{0.12,0},1},
|
||||
{"Level0",{0.08,0},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*class StaticBank {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
////////////////////////////////////////////////////// LEFT
|
||||
{{0.4782,0.2510},1},
|
||||
{{0.4773,0.2410},1},{},
|
||||
{{0.4566,0.2538},1},
|
||||
{{0.4549,0.2439},1},{},
|
||||
{{0.4353,0.2585},1},
|
||||
{{0.4301,0.2392},1},{},
|
||||
{{0.4145,0.2651},1},
|
||||
{{0.4111,0.2557},1},{},
|
||||
{{0.3943,0.2734},1},
|
||||
{{0.3901,0.2644},1},{},
|
||||
{{0.3750,0.2835},1},
|
||||
{{0.3650,0.2662},1},{},
|
||||
{{0.3232,0.3232},1},
|
||||
{{0.3091,0.3091},1},{},
|
||||
{{0.2835,0.3750},1},
|
||||
{{0.2662,0.3650},1},{},
|
||||
/////////////////////////////////////////////////////// RIGHT
|
||||
{{"0.5 + (0.5- 0.4782)",0.2510},1},
|
||||
{{"0.5 + (0.5- 0.4773)",0.2410},1},{},
|
||||
{{"0.5 + (0.5- 0.4566)",0.2538},1},
|
||||
{{"0.5 + (0.5- 0.4549)",0.2439},1},{},
|
||||
{{"0.5 + (0.5- 0.4353)",0.2585},1},
|
||||
{{"0.5 + (0.5- 0.4301)",0.2392},1},{},
|
||||
{{"0.5 + (0.5- 0.4145)",0.2651},1},
|
||||
{{"0.5 + (0.5- 0.4111)",0.2557},1},{},
|
||||
{{"0.5 + (0.5- 0.3943)",0.2734},1},
|
||||
{{"0.5 + (0.5- 0.3901)",0.2644},1},{},
|
||||
{{"0.5 + (0.5- 0.3750)",0.2835},1},
|
||||
{{"0.5 + (0.5- 0.3650)",0.2662},1},{},
|
||||
{{"0.5 + (0.5- 0.3232)",0.3232},1},
|
||||
{{"0.5 + (0.5- 0.3091)",0.3091},1},{},
|
||||
{{"0.5 + (0.5- 0.2835)",0.3750},1},
|
||||
{{"0.5 + (0.5- 0.2662)",0.3650},1},{},
|
||||
/////////////////////////////////////////////////////// CENTER
|
||||
{{0.5,"0.5 - 0.25"},1},
|
||||
{{0.5,"0.5 - 0.28"},1}
|
||||
};
|
||||
};*/
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{"HorizonBankRot",{0,0.25},1},
|
||||
{"HorizonBankRot",{-0.01,0.23},1},
|
||||
{"HorizonBankRot",{0.01,0.23},1},
|
||||
{"HorizonBankRot",{0,0.25},1}
|
||||
};
|
||||
};
|
||||
|
||||
class Centerline {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{{0.45,0.5},1},
|
||||
{{0.48,0.5},1},
|
||||
{{0.49,0.525},1},
|
||||
{{0.5,0.5},1},
|
||||
{{0.51,0.525},1},
|
||||
{{0.52,0.5},1},
|
||||
{{0.55,0.5},1}
|
||||
};
|
||||
};
|
||||
|
||||
/*class WeaponName {
|
||||
type = "text";
|
||||
source = "weapon";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,0.86},1};
|
||||
right[] = {{0.07,0.86},1};
|
||||
down[] = {{0.03,0.90},1};
|
||||
};
|
||||
|
||||
class AmmoCount {
|
||||
type = "text";
|
||||
source = "ammo";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,0.89},1};
|
||||
right[] = {{0.07,0.89},1};
|
||||
down[] = {{0.03,0.93},1};
|
||||
};*/
|
||||
|
||||
class LightsGroup {
|
||||
type = "group";
|
||||
condition = "lights";
|
||||
class LightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "LIGHTS";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.055"},1};
|
||||
right[] = {{0.07,"0.53 + 0.055"},1};
|
||||
down[] = {{0.03,"0.53 + 0.095"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class CollisionLightsGroup {
|
||||
type = "group";
|
||||
condition = "collisionlights";
|
||||
class CollisionLightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "A-COL";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.105"},1};
|
||||
right[] = {{0.07,"0.53 + 0.105"},1};
|
||||
down[] = {{0.03,"0.53 + 0.145"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class SpeedNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "speed";
|
||||
sourceScale = 3.6;
|
||||
pos[] = {{0.03,0.475},1};
|
||||
right[] = {{0.08,0.475},1};
|
||||
down[] = {{0.03,0.525},1};
|
||||
};
|
||||
|
||||
class TorqueNumber {
|
||||
type = "text";
|
||||
align = "left";
|
||||
scale = 1;
|
||||
source = "rtdRotorTorque";
|
||||
sourceScale = 110;
|
||||
pos[] = {{0.065,0.175},1};
|
||||
right[] = {{0.115,0.175},1};
|
||||
down[] = {{0.065,0.225},1};
|
||||
};
|
||||
|
||||
class Torquetext {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "%";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.07,0.175},1};
|
||||
right[] = {{0.12,0.175},1};
|
||||
down[] = {{0.07,0.225},1};
|
||||
};
|
||||
|
||||
class AltNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
pos[] = {{0.83,0.475},1};
|
||||
right[] = {{0.88,0.475},1};
|
||||
down[] = {{0.83,0.525},1};
|
||||
};
|
||||
|
||||
class ASLNumber {
|
||||
type = "text";
|
||||
source = "altitudeASL";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.835,0.18},1};
|
||||
right[] = {{0.875,0.18},1};
|
||||
down[] = {{0.835,0.22},1};
|
||||
};
|
||||
|
||||
class VspeedScalePosta {
|
||||
type = "line";
|
||||
width = 5;
|
||||
points[] = {
|
||||
{{0.98,0.2},1},
|
||||
{{1,0.2},1},{},
|
||||
{{0.93,0.2},1},
|
||||
{{0.95,0.2},1},{},
|
||||
{{0.98,0.35},1},
|
||||
{{1,0.35},1},{},
|
||||
{{0.93,0.35},1},
|
||||
{{0.95,0.35},1},{},
|
||||
{{0.94,0.38},1},
|
||||
{{0.95,0.38},1},{},
|
||||
{{0.94,0.41},1},
|
||||
{{0.95,0.41},1},{},
|
||||
{{0.94,0.44},1},
|
||||
{{0.95,0.44},1},{},
|
||||
{{0.94,0.47},1},
|
||||
{{0.95,0.47},1},{},
|
||||
{{0.98,0.5},1},
|
||||
{{1,0.5},1},{},
|
||||
{{0.93,0.5},1},
|
||||
{{0.95,0.5},1},{},
|
||||
{{0.94,0.53},1},
|
||||
{{0.95,0.53},1},{},
|
||||
{{0.94,0.56},1},
|
||||
{{0.95,0.56},1},{},
|
||||
{{0.94,0.59},1},
|
||||
{{0.95,0.59},1},{},
|
||||
{{0.94,0.62},1},
|
||||
{{0.95,0.62},1},{},
|
||||
{{0.98,0.65},1},
|
||||
{{1,0.65},1},{},
|
||||
{{0.93,0.65},1},
|
||||
{{0.95,0.65},1},{},
|
||||
{{0.99,0.68},1},
|
||||
{{0.98,0.68},1},{},
|
||||
{{0.99,0.71},1},
|
||||
{{0.98,0.71},1},{},
|
||||
{{0.99,0.74},1},
|
||||
{{0.98,0.74},1},{},
|
||||
{{0.99,0.77},1},
|
||||
{{0.98,0.77},1},{},
|
||||
{{0.98,0.8},1},
|
||||
{{1,0.8},1},{},
|
||||
{{0.93,0.8},1},
|
||||
{{0.95,0.8},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class RadarAltitudeBand {
|
||||
clipTL[] = {0,0.2};
|
||||
clipBR[] = {1,0.8};
|
||||
class radarbanda {
|
||||
type = "line";
|
||||
width = 17;
|
||||
points[] = {
|
||||
{"RadarAltitudeBone",{0,0},1},
|
||||
{"RadarAltitudeBone",{0,0.6},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class VspeedBand {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{"VspeedBone",{-0.01,0},1},
|
||||
{"VspeedBone",{-0.025,-0.015},1},
|
||||
{"VspeedBone",{-0.025,0.015},1},
|
||||
{"VspeedBone",{-0.01,0},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingNumber: SpeedNumber {
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
align = "center";
|
||||
pos[] = {{0.5,0.01},1};
|
||||
right[] = {{0.56,0.01},1};
|
||||
down[] = {{0.5,0.06},1};
|
||||
};
|
||||
|
||||
class Center_box {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{{0.44,0.005},1},
|
||||
{{"0.44 + 0.12",0.005},1},
|
||||
{{"0.44 + 0.12","0.005 + 0.06"},1},
|
||||
{{0.44,"0.005 + 0.06"},1},
|
||||
{{0.44,0.005},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingArrow {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {{{"0.5","0.128 + 0.03"},1},{{0.5,0.128},1}};
|
||||
};
|
||||
|
||||
class HeadingScale {
|
||||
type = "scale";
|
||||
horizontal = 1;
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
width = 5;
|
||||
top = 0.12;
|
||||
center = 0.5;
|
||||
bottom = 0.88;
|
||||
lineXleft = "0.03 + 0.085";
|
||||
lineYright = "0.02 + 0.085";
|
||||
lineXleftMajor = "0.04 + 0.085";
|
||||
lineYrightMajor = "0.02 + 0.085";
|
||||
majorLineEach = 3;
|
||||
numberEach = 3;
|
||||
step = 10;
|
||||
stepSize = "0.05";
|
||||
align = "center";
|
||||
scale = 1;
|
||||
pos[] = {0.12,"0.0 + 0.065"};
|
||||
right[] = {0.16,"0.0 + 0.065"};
|
||||
down[] = {0.12,"0.04 + 0.065"};
|
||||
};
|
||||
|
||||
class Fuel_Text {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "Fuel";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.85,0.86},1};
|
||||
right[] = {{0.89,0.86},1};
|
||||
down[] = {{0.85,0.9},1};
|
||||
};
|
||||
|
||||
class Fuel_Number {
|
||||
type = "text";
|
||||
source = "fuel";
|
||||
sourceScale = 100;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.92,0.86},1};
|
||||
right[] = {{0.96,0.86},1};
|
||||
down[] = {{0.92,0.9},1};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.04,0.04,0.1};
|
||||
helmetRight[] = {0.08,0,0};
|
||||
helmetDown[] = {0,-0.08,0};
|
||||
};
|
||||
|
||||
class LittleHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.722,0.722};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.75,0.75};
|
||||
};
|
||||
|
||||
class ForwardVec1 {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.25,0.25};
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.253,0.253};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class WeaponAim1 {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.253,0.23};
|
||||
};
|
||||
|
||||
class Target {
|
||||
type = "vector";
|
||||
source = "target";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class RadarContact {
|
||||
type = "fixed";
|
||||
pos[] = {0,0};
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class PlaneMovementCrosshair {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.04},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.035,0.035,0.1};
|
||||
helmetRight[] = {0.07,0,0};
|
||||
helmetDown[] = {0,-0.07,0};
|
||||
};
|
||||
};
|
@ -1,694 +0,0 @@
|
||||
|
||||
class MFD {
|
||||
class AirplaneHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.85,0.85};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class PlaneOrientation {
|
||||
type = "fixed";
|
||||
pos[] = {0.5,0.5};
|
||||
};
|
||||
|
||||
class Target: Pos10Vector {
|
||||
source = "target";
|
||||
};
|
||||
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.65,0.65};
|
||||
};
|
||||
|
||||
class VspeedBone {
|
||||
type = "linear";
|
||||
source = "vspeed";
|
||||
sourceScale = 1;
|
||||
min = -10;
|
||||
max = 10;
|
||||
minPos[] = {0.93,0.2};
|
||||
maxPos[] = {0.93,0.8};
|
||||
};
|
||||
|
||||
class RadarAltitudeBone {
|
||||
type = "linear";
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
min = 0;
|
||||
max = 60;
|
||||
minPos[] = {0.965,0.2};
|
||||
maxPos[] = {0.965,0.8};
|
||||
};
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "rotational";
|
||||
source = "horizonBank";
|
||||
center[] = {0.5,0.5};
|
||||
min = -3.1416;
|
||||
max = 3.1416;
|
||||
minAngle = -180;
|
||||
maxAngle = 180;
|
||||
aspectRatio = 1;
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.22,0.22};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.73,0.73};
|
||||
};
|
||||
|
||||
class Level0 {
|
||||
type = "horizon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.78,0.78};
|
||||
angle = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class Horizont {
|
||||
clipTL[] = {0.15,0.15};
|
||||
clipBR[] = {0.85,0.85};
|
||||
class Dimmed {
|
||||
class Level0 {
|
||||
type = "line";
|
||||
points[] = {
|
||||
{"Level0",{-0.42,0},1},
|
||||
{"Level0",{-0.38,0},1},{},
|
||||
{"Level0",{-0.37,0},1},
|
||||
{"Level0",{-0.33,0},1},{},
|
||||
{"Level0",{-0.32,0},1},
|
||||
{"Level0",{-0.28,0},1},{},
|
||||
{"Level0",{-0.27,0},1},
|
||||
{"Level0",{-0.23,0},1},{},
|
||||
{"Level0",{-0.22,0},1},
|
||||
{"Level0",{-0.18,0},1},{},
|
||||
{"Level0",{-0.17,0},1},
|
||||
{"Level0",{-0.13,0},1},{},
|
||||
{"Level0",{-0.12,0},1},
|
||||
{"Level0",{-0.08,0},1},{},
|
||||
{"Level0",{0.42,0},1},
|
||||
{"Level0",{0.38,0},1},{},
|
||||
{"Level0",{0.37,0},1},
|
||||
{"Level0",{0.33,0},1},{},
|
||||
{"Level0",{0.32,0},1},
|
||||
{"Level0",{0.28,0},1},{},
|
||||
{"Level0",{0.27,0},1},
|
||||
{"Level0",{0.23,0},1},{},
|
||||
{"Level0",{0.22,0},1},
|
||||
{"Level0",{0.18,0},1},{},
|
||||
{"Level0",{0.17,0},1},
|
||||
{"Level0",{0.13,0},1},{},
|
||||
{"Level0",{0.12,0},1},
|
||||
{"Level0",{0.08,0},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*class StaticBank {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
////////////////////////////////////////////////////// LEFT
|
||||
{{0.4782,0.2510},1},
|
||||
{{0.4773,0.2410},1},{},
|
||||
{{0.4566,0.2538},1},
|
||||
{{0.4549,0.2439},1},{},
|
||||
{{0.4353,0.2585},1},
|
||||
{{0.4301,0.2392},1},{},
|
||||
{{0.4145,0.2651},1},
|
||||
{{0.4111,0.2557},1},{},
|
||||
{{0.3943,0.2734},1},
|
||||
{{0.3901,0.2644},1},{},
|
||||
{{0.3750,0.2835},1},
|
||||
{{0.3650,0.2662},1},{},
|
||||
{{0.3232,0.3232},1},
|
||||
{{0.3091,0.3091},1},{},
|
||||
{{0.2835,0.3750},1},
|
||||
{{0.2662,0.3650},1},{},
|
||||
/////////////////////////////////////////////////////// RIGHT
|
||||
{{"0.5 + (0.5- 0.4782)",0.2510},1},
|
||||
{{"0.5 + (0.5- 0.4773)",0.2410},1},{},
|
||||
{{"0.5 + (0.5- 0.4566)",0.2538},1},
|
||||
{{"0.5 + (0.5- 0.4549)",0.2439},1},{},
|
||||
{{"0.5 + (0.5- 0.4353)",0.2585},1},
|
||||
{{"0.5 + (0.5- 0.4301)",0.2392},1},{},
|
||||
{{"0.5 + (0.5- 0.4145)",0.2651},1},
|
||||
{{"0.5 + (0.5- 0.4111)",0.2557},1},{},
|
||||
{{"0.5 + (0.5- 0.3943)",0.2734},1},
|
||||
{{"0.5 + (0.5- 0.3901)",0.2644},1},{},
|
||||
{{"0.5 + (0.5- 0.3750)",0.2835},1},
|
||||
{{"0.5 + (0.5- 0.3650)",0.2662},1},{},
|
||||
{{"0.5 + (0.5- 0.3232)",0.3232},1},
|
||||
{{"0.5 + (0.5- 0.3091)",0.3091},1},{},
|
||||
{{"0.5 + (0.5- 0.2835)",0.3750},1},
|
||||
{{"0.5 + (0.5- 0.2662)",0.3650},1},{},
|
||||
/////////////////////////////////////////////////////// CENTER
|
||||
{{0.5,"0.5 - 0.25"},1},
|
||||
{{0.5,"0.5 - 0.28"},1}
|
||||
};
|
||||
};*/
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{"HorizonBankRot",{0,0.25},1},
|
||||
{"HorizonBankRot",{-0.01,0.23},1},
|
||||
{"HorizonBankRot",{0.01,0.23},1},
|
||||
{"HorizonBankRot",{0,0.25},1}
|
||||
};
|
||||
};
|
||||
|
||||
class Centerline {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{{0.45,0.5},1},
|
||||
{{0.48,0.5},1},
|
||||
{{0.49,0.525},1},
|
||||
{{0.5,0.5},1},
|
||||
{{0.51,0.525},1},
|
||||
{{0.52,0.5},1},
|
||||
{{0.55,0.5},1}
|
||||
};
|
||||
};
|
||||
|
||||
class GunCross {
|
||||
condition = "mgun";
|
||||
type = "group";
|
||||
class GunSight {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,-0.02},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,-0.05},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,0.02},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,0.05},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{-0.02,0},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{-0.05,0},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0.02,0},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0.05,0},1},{}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RocketCross {
|
||||
condition = "rocket";
|
||||
type = "group";
|
||||
class RocketSight {
|
||||
type = "line";
|
||||
width = 5.5;
|
||||
points[] = {
|
||||
{"ForwardVec",1,"WeaponAim",1,{0.04,-0.06},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{-0.04,-0.06},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,-0.06},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,-0.01},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,0.001},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,-0.001},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0.001,0},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{-0.001,0},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,0.01},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0,0.06},1},{},
|
||||
{"ForwardVec",1,"WeaponAim",1,{0.04,0.06},1},
|
||||
{"ForwardVec",1,"WeaponAim",1,{-0.04,0.06},1},{}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*class Mastermode_GUN {
|
||||
condition = "mgun";
|
||||
type = "group";
|
||||
class MasterMODE {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "GUN";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,0.83},1};
|
||||
right[] = {{0.07,0.83},1};
|
||||
down[] = {{0.03,0.87},1};
|
||||
};
|
||||
};*/
|
||||
|
||||
class WeaponName {
|
||||
type = "text";
|
||||
source = "weapon";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,0.86},1};
|
||||
right[] = {{0.07,0.86},1};
|
||||
down[] = {{0.03,0.9},1};
|
||||
};
|
||||
|
||||
class AmmoCount {
|
||||
type = "text";
|
||||
source = "ammo";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,0.89},1};
|
||||
right[] = {{0.07,0.89},1};
|
||||
down[] = {{0.03,0.93},1};
|
||||
};
|
||||
|
||||
class LightsGroup {
|
||||
type = "group";
|
||||
condition = "lights";
|
||||
class LightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "LIGHTS";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.055"},1};
|
||||
right[] = {{0.07,"0.53 + 0.055"},1};
|
||||
down[] = {{0.03,"0.53 + 0.095"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class CollisionLightsGroup {
|
||||
type = "group";
|
||||
condition = "collisionlights";
|
||||
class CollisionLightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "A-COL";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.105"},1};
|
||||
right[] = {{0.07,"0.53 + 0.105"},1};
|
||||
down[] = {{0.03,"0.53 + 0.145"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class RangeNumber {
|
||||
type = "text";
|
||||
source = "targetDist";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.51,0.94},1};
|
||||
right[] = {{0.56,0.94},1};
|
||||
down[] = {{0.51,0.98},1};
|
||||
};
|
||||
|
||||
class RangeText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "RNG";
|
||||
align = "left";
|
||||
scale = 1;
|
||||
pos[] = {{0.49,0.94},1};
|
||||
right[] = {{0.54,0.94},1};
|
||||
down[] = {{0.49,0.98},1};
|
||||
};
|
||||
|
||||
class SpeedNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "speed";
|
||||
sourceScale = 3.6;
|
||||
pos[] = {{0.03,0.475},1};
|
||||
right[] = {{0.08,0.475},1};
|
||||
down[] = {{0.03,0.525},1};
|
||||
};
|
||||
|
||||
class TorqueNumber {
|
||||
type = "text";
|
||||
align = "left";
|
||||
scale = 1;
|
||||
source = "rtdRotorTorque";
|
||||
sourceScale = 100;
|
||||
pos[] = {{0.065,0.175},1};
|
||||
right[] = {{0.115,0.175},1};
|
||||
down[] = {{0.065,0.225},1};
|
||||
};
|
||||
|
||||
class Torquetext {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "%";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.07,0.175},1};
|
||||
right[] = {{0.12,0.175},1};
|
||||
down[] = {{0.07,0.225},1};
|
||||
};
|
||||
|
||||
class AltNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
pos[] = {{0.83,0.475},1};
|
||||
right[] = {{0.88,0.475},1};
|
||||
down[] = {{0.83,0.525},1};
|
||||
};
|
||||
|
||||
class ASLNumber {
|
||||
type = "text";
|
||||
source = "altitudeASL";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.835,0.18},1};
|
||||
right[] = {{0.875,0.18},1};
|
||||
down[] = {{0.835,0.22},1};
|
||||
};
|
||||
|
||||
class VspeedScalePosta {
|
||||
type = "line";
|
||||
width = 5;
|
||||
points[] = {
|
||||
{{0.98,0.2},1},
|
||||
{{1,0.2},1},{},
|
||||
{{0.93,0.2},1},
|
||||
{{0.95,0.2},1},{},
|
||||
{{0.98,0.35},1},
|
||||
{{1,0.35},1},{},
|
||||
{{0.93,0.35},1},
|
||||
{{0.95,0.35},1},{},
|
||||
{{0.94,0.38},1},
|
||||
{{0.95,0.38},1},{},
|
||||
{{0.94,0.41},1},
|
||||
{{0.95,0.41},1},{},
|
||||
{{0.94,0.44},1},
|
||||
{{0.95,0.44},1},{},
|
||||
{{0.94,0.47},1},
|
||||
{{0.95,0.47},1},{},
|
||||
{{0.98,0.5},1},
|
||||
{{1,0.5},1},{},
|
||||
{{0.93,0.5},1},
|
||||
{{0.95,0.5},1},{},
|
||||
{{0.94,0.53},1},
|
||||
{{0.95,0.53},1},{},
|
||||
{{0.94,0.56},1},
|
||||
{{0.95,0.56},1},{},
|
||||
{{0.94,0.59},1},
|
||||
{{0.95,0.59},1},{},
|
||||
{{0.94,0.62},1},
|
||||
{{0.95,0.62},1},{},
|
||||
{{0.98,0.65},1},
|
||||
{{1,0.65},1},{},
|
||||
{{0.93,0.65},1},
|
||||
{{0.95,0.65},1},{},
|
||||
{{0.99,0.68},1},
|
||||
{{0.98,0.68},1},{},
|
||||
{{0.99,0.71},1},
|
||||
{{0.98,0.71},1},{},
|
||||
{{0.99,0.74},1},
|
||||
{{0.98,0.74},1},{},
|
||||
{{0.99,0.77},1},
|
||||
{{0.98,0.77},1},{},
|
||||
{{0.98,0.8},1},
|
||||
{{1,0.8},1},{},
|
||||
{{0.93,0.8},1},
|
||||
{{0.95,0.8},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class RadarAltitudeBand {
|
||||
clipTL[] = {0,0.2};
|
||||
clipBR[] = {1,0.8};
|
||||
class radarbanda {
|
||||
type = "line";
|
||||
width = 17;
|
||||
points[] = {
|
||||
{"RadarAltitudeBone",{0,0},1},
|
||||
{"RadarAltitudeBone",{0,0.6},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class VspeedBand {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{"VspeedBone",{-0.01,0},1},
|
||||
{"VspeedBone",{-0.025,-0.015},1},
|
||||
{"VspeedBone",{-0.025,0.015},1},
|
||||
{"VspeedBone",{-0.01,0},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingNumber: SpeedNumber {
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
align = "center";
|
||||
pos[] = {{0.5,0.01},1};
|
||||
right[] = {{0.56,0.01},1};
|
||||
down[] = {{0.5,0.06},1};
|
||||
};
|
||||
|
||||
class Center_box {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{{0.44,0.005},1},
|
||||
{{"0.44 + 0.12",0.005},1},
|
||||
{{"0.44 + 0.12","0.005 + 0.06"},1},
|
||||
{{0.44,"0.005 + 0.06"},1},
|
||||
{{0.44,0.005},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingArrow {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{{"0.5","0.128 + 0.03"},1},
|
||||
{{0.5,0.128},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingScale {
|
||||
type = "scale";
|
||||
horizontal = 1;
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
width = 5;
|
||||
top = 0.12;
|
||||
center = 0.5;
|
||||
bottom = 0.88;
|
||||
lineXleft = "0.03 + 0.085";
|
||||
lineYright = "0.02 + 0.085";
|
||||
lineXleftMajor = "0.04 + 0.085";
|
||||
lineYrightMajor = "0.02 + 0.085";
|
||||
majorLineEach = 3;
|
||||
numberEach = 3;
|
||||
step = 10;
|
||||
stepSize = "0.05";
|
||||
align = "center";
|
||||
scale = 1;
|
||||
pos[] = {0.119,"0.0 + 0.065"};
|
||||
right[] = {0.159,"0.0 + 0.065"};
|
||||
down[] = {0.119,"0.04 + 0.065"};
|
||||
};
|
||||
|
||||
class Fuel_Text {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "Fuel";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.85,0.86},1};
|
||||
right[] = {{0.89,0.86},1};
|
||||
down[] = {{0.85,0.9},1};
|
||||
};
|
||||
|
||||
class Fuel_Number {
|
||||
type = "text";
|
||||
source = "fuel";
|
||||
sourceScale = 100;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.92,0.86},1};
|
||||
right[] = {{0.96,0.86},1};
|
||||
down[] = {{0.92,0.9},1};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.04,0.04,0.1};
|
||||
helmetRight[] = {0.08,0,0};
|
||||
helmetDown[] = {0,-0.08,0};
|
||||
};
|
||||
|
||||
class LittleHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.722,0.722};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.76,0.76};
|
||||
};
|
||||
|
||||
class ForwardVec1 {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.26,0.26};
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.253,0.253};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class Target {
|
||||
type = "vector";
|
||||
source = "target";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class RadarContact {
|
||||
type = "fixed";
|
||||
pos[] = {0,0};
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class PlaneMovementCrosshair {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.04},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1}
|
||||
};
|
||||
};
|
||||
|
||||
class TargetACQ {
|
||||
type = "line";
|
||||
width = 2;
|
||||
points[] = {
|
||||
//////////////////////////////////////////////// UP
|
||||
/*{"ForwardVec1",1,"target",{0,-0.10},1},{"ForwardVec1",1,"target",{0,-0.095},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.09},1},{"ForwardVec1",1,"target",{0,-0.085},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.080},1},{"ForwardVec1",1,"target",{0,-0.075},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.070},1},{"ForwardVec1",1,"target",{0,-0.065},1},{},*/
|
||||
{"ForwardVec",1,"target",{0,-0.060},1},{"ForwardVec",1,"target",{0,-0.055},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.050},1},{"ForwardVec",1,"target",{0,-0.045},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.040},1},{"ForwardVec",1,"target",{0,-0.035},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.030},1},{"ForwardVec",1,"target",{0,-0.025},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.020},1},{"ForwardVec",1,"target",{0,-0.015},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.010},1},{"ForwardVec",1,"target",{0,-0.005},1},{},
|
||||
//////////////////////////////////////////////// center
|
||||
{"ForwardVec",1,"target",{0,0},1},{"ForwardVec",1,"target",{0,0},1},{},
|
||||
/////////////////////////////////////////////// DOWN
|
||||
/*{"ForwardVec1",1,"target",{0,0.10},1},{"ForwardVec1",1,"target",{0,0.095},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.09},1},{"ForwardVec1",1,"target",{0,0.085},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.080},1},{"ForwardVec1",1,"target",{0,0.075},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.070},1},{"ForwardVec1",1,"target",{0,0.065},1},{},*/
|
||||
{"ForwardVec",1,"target",{0,0.060},1},{"ForwardVec",1,"target",{0,0.055},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.050},1},{"ForwardVec",1,"target",{0,0.045},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.040},1},{"ForwardVec",1,"target",{0,0.035},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.030},1},{"ForwardVec",1,"target",{0,0.025},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.020},1},{"ForwardVec",1,"target",{0,0.015},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.010},1},{"ForwardVec",1,"target",{0,0.005},1},{},
|
||||
/////////////////////////////////////////////// LEFT
|
||||
/*{"ForwardVec1",1,"target",{-0.10, 0},1},{"ForwardVec1",1,"target",{-0.095,0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.09, 0},1},{"ForwardVec1",1,"target",{-0.085,0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.080, 0},1},{"ForwardVec1",1,"target",{-0.075,0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.070, 0},1},{"ForwardVec1",1,"target",{-0.065,0},1},{},*/
|
||||
{"ForwardVec",1,"target",{-0.060, 0},1},{"ForwardVec",1,"target",{-0.055,0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.050, 0},1},{"ForwardVec",1,"target",{-0.045,0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.040, 0},1},{"ForwardVec",1,"target",{-0.035,0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.030, 0},1},{"ForwardVec",1,"target",{-0.025,0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.020, 0},1},{"ForwardVec",1,"target",{-0.015,0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.010, 0},1},{"ForwardVec",1,"target",{-0.005,0},1},{},
|
||||
/////////////////////////////////////////////// RIGHT
|
||||
/*{"ForwardVec1",1,"target",{0.10, 0},1},{"ForwardVec1",1,"target",{0.095,0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.09, 0},1},{"ForwardVec1",1,"target",{0.085,0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.080, 0},1},{"ForwardVec1",1,"target",{0.075,0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.070, 0},1},{"ForwardVec1",1,"target",{0.065,0},1},{},*/
|
||||
{"ForwardVec",1,"target",{0.060, 0},1},{"ForwardVec",1,"target",{0.055,0},1},{},
|
||||
{"ForwardVec",1,"target",{0.050, 0},1},{"ForwardVec",1,"target",{0.045,0},1},{},
|
||||
{"ForwardVec",1,"target",{0.040, 0},1},{"ForwardVec",1,"target",{0.035,0},1},{},
|
||||
{"ForwardVec",1,"target",{0.030, 0},1},{"ForwardVec",1,"target",{0.025,0},1},{},
|
||||
{"ForwardVec",1,"target",{0.020, 0},1},{"ForwardVec",1,"target",{0.015,0},1},{},
|
||||
{"ForwardVec",1,"target",{0.010, 0},1},{"ForwardVec",1,"target",{0.005,0},1},{}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.035,0.035,0.1};
|
||||
helmetRight[] = {0.07,0,0};
|
||||
helmetDown[] = {0,-0.07,0};
|
||||
};
|
||||
};
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,784 +0,0 @@
|
||||
|
||||
class MFD {
|
||||
class AirplaneHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.85,0.85};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class PlaneOrientation {
|
||||
type = "fixed";
|
||||
pos[] = {0.5,0.5};
|
||||
};
|
||||
|
||||
class GunnerAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.011,0.0027};
|
||||
};
|
||||
|
||||
class Target {
|
||||
type = "vector";
|
||||
source = "target";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.85,0.85};
|
||||
};
|
||||
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.65,0.65};
|
||||
};
|
||||
|
||||
class VspeedBone {
|
||||
type = "linear";
|
||||
source = "vspeed";
|
||||
sourceScale = 1;
|
||||
min = -10;
|
||||
max = 10;
|
||||
minPos[] = {0.93,0.2};
|
||||
maxPos[] = {0.93,0.8};
|
||||
};
|
||||
|
||||
class RadarAltitudeBone {
|
||||
type = "linear";
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
min = 0;
|
||||
max = 60;
|
||||
minPos[] = {0.965,0.2};
|
||||
maxPos[] = {0.965,0.8};
|
||||
};
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "rotational";
|
||||
source = "horizonBank";
|
||||
center[] = {0.5,0.5};
|
||||
min = -3.1416;
|
||||
max = 3.1416;
|
||||
minAngle = -180;
|
||||
maxAngle = 180;
|
||||
aspectRatio = 1;
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.2193,0.2193};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.75,0.75};
|
||||
};
|
||||
|
||||
class Level0 {
|
||||
type = "horizon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.78,0.78};
|
||||
angle = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class Horizont {
|
||||
clipTL[] = {0.15,0.15};
|
||||
clipBR[] = {0.85,0.85};
|
||||
class Dimmed {
|
||||
class Level0 {
|
||||
type = "line";
|
||||
points[] = {
|
||||
{"Level0",{-0.42,0},1},
|
||||
{"Level0",{-0.38,0},1},{},
|
||||
{"Level0",{-0.37,0},1},
|
||||
{"Level0",{-0.33,0},1},{},
|
||||
{"Level0",{-0.32,0},1},
|
||||
{"Level0",{-0.28,0},1},{},
|
||||
{"Level0",{-0.27,0},1},
|
||||
{"Level0",{-0.23,0},1},{},
|
||||
{"Level0",{-0.22,0},1},
|
||||
{"Level0",{-0.18,0},1},{},
|
||||
{"Level0",{-0.17,0},1},
|
||||
{"Level0",{-0.13,0},1},{},
|
||||
{"Level0",{-0.12,0},1},
|
||||
{"Level0",{-0.08,0},1},{},
|
||||
{"Level0",{0.42,0},1},
|
||||
{"Level0",{0.38,0},1},{},
|
||||
{"Level0",{0.37,0},1},
|
||||
{"Level0",{0.33,0},1},{},
|
||||
{"Level0",{0.32,0},1},
|
||||
{"Level0",{0.28,0},1},{},
|
||||
{"Level0",{0.27,0},1},
|
||||
{"Level0",{0.23,0},1},{},
|
||||
{"Level0",{0.22,0},1},
|
||||
{"Level0",{0.18,0},1},{},
|
||||
{"Level0",{0.17,0},1},
|
||||
{"Level0",{0.13,0},1},{},
|
||||
{"Level0",{0.12,0},1},
|
||||
{"Level0",{0.08,0},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*class StaticBank {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{{0.4782,0.251},1},
|
||||
{{0.4773,0.241},1},{},
|
||||
{{0.4566,0.2538},1},
|
||||
{{0.4549,0.2439},1},{},
|
||||
{{0.4353,0.2585},1},
|
||||
{{0.4301,0.2392},1},{},
|
||||
{{0.4145,0.2651},1},
|
||||
{{0.4111,0.2557},1},{},
|
||||
{{0.3943,0.2734},1},
|
||||
{{0.3901,0.2644},1},{},
|
||||
{{0.375,0.2835},1},
|
||||
{{0.365,0.2662},1},{},
|
||||
{{0.3232,0.3232},1},
|
||||
{{0.3091,0.3091},1},{},
|
||||
{{0.2835,0.375},1},
|
||||
{{0.2662,0.365},1},{},
|
||||
{{"0.5 + (0.5- 0.4782)",0.251},1},
|
||||
{{"0.5 + (0.5- 0.4773)",0.241},1},{},
|
||||
{{"0.5 + (0.5- 0.4566)",0.2538},1},
|
||||
{{"0.5 + (0.5- 0.4549)",0.2439},1},{},
|
||||
{{"0.5 + (0.5- 0.4353)",0.2585},1},
|
||||
{{"0.5 + (0.5- 0.4301)",0.2392},1},{},
|
||||
{{"0.5 + (0.5- 0.4145)",0.2651},1},
|
||||
{{"0.5 + (0.5- 0.4111)",0.2557},1},{},
|
||||
{{"0.5 + (0.5- 0.3943)",0.2734},1},
|
||||
{{"0.5 + (0.5- 0.3901)",0.2644},1},{},
|
||||
{{"0.5 + (0.5- 0.3750)",0.2835},1},
|
||||
{{"0.5 + (0.5- 0.3650)",0.2662},1},{},
|
||||
{{"0.5 + (0.5- 0.3232)",0.3232},1},
|
||||
{{"0.5 + (0.5- 0.3091)",0.3091},1},{},
|
||||
{{"0.5 + (0.5- 0.2835)",0.375},1},
|
||||
{{"0.5 + (0.5- 0.2662)",0.365},1},{},
|
||||
{{0.5,"0.5 - 0.25"},1},
|
||||
{{0.5,"0.5 - 0.28"},1}
|
||||
};
|
||||
};*/
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {{"HorizonBankRot",{0,0.25},1},{"HorizonBankRot",{-0.01,0.23},1},{"HorizonBankRot",{0.01,0.23},1},{"HorizonBankRot",{0,0.25},1}};
|
||||
};
|
||||
|
||||
class Static {
|
||||
clipTL[] = {0,1};
|
||||
clipBR[] = {1,0};
|
||||
type = "line";
|
||||
width = 5;
|
||||
points[] = {{{"0.5-0.1","0.9-0.04"},1},{{"0.5-0.1","0.9+0.04"},1},{{"0.5+0.1","0.9+0.04"},1},{{"0.5+0.1","0.9-0.04"},1},{{"0.5-0.1","0.9-0.04"},1},{},{{"0.5-0.1",0.9},1},{{"0.5-0.092",0.9},1},{},{{"0.5+0.1",0.9},1},{{"0.5+0.092",0.9},1},{},{{0.5,"0.9-0.04"},1},{{0.5,"0.9-0.032"},1},{},{{0.5,"0.9+0.04"},1},{{0.5,"0.9+0.032"},1},{}};
|
||||
};
|
||||
|
||||
class Centerline {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {{{0.5,0.49},1},{{0.5,0.47},1},{},{{0.5,0.51},1},{{0.5,0.53},1},{},{{0.49,0.5},1},{{0.47,0.5},1},{},{{0.51,0.5},1},{{0.53,0.5},1},{}};
|
||||
};
|
||||
|
||||
class GunCross_CIRCLE {
|
||||
type = "group";
|
||||
class CCIP_circle {
|
||||
type = "line";
|
||||
width = 4;
|
||||
points[] = {
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-1.2000 * 0.04","-0.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-1.0000 * 0.04","-0.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.9877 * 0.04","-0.1736 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.9397 * 0.04","-0.3420 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.8660 * 0.04","-0.5000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.7660 * 0.04","-0.6428 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.6428 * 0.04","-0.7660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.5000 * 0.04","-0.8660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.3420 * 0.04","-0.9397 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.1736 * 0.04","-0.9877 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","-1.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.1736 * 0.04","-0.9877 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.3420 * 0.04","-0.9397 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.5000 * 0.04","-0.8660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.6428 * 0.04","-0.7660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.7660 * 0.04","-0.6428 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.8660 * 0.04","-0.5000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.9397 * 0.04","-0.3420 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.9877 * 0.04","-0.1736 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"1.0000 * 0.04","-0.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"1.2000 * 0.04","-0.0000 * 0.04"},1},{},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-1.2000 * 0.04","0.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-1.0000 * 0.04","0.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.9877 * 0.04","0.1736 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.9397 * 0.04","0.3420 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.8660 * 0.04","0.5000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.7660 * 0.04","0.6428 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.6428 * 0.04","0.7660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.5000 * 0.04","0.8660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.3420 * 0.04","0.9397 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.1736 * 0.04","0.9877 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","1.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.1736 * 0.04","0.9877 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.3420 * 0.04","0.9397 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.5000 * 0.04","0.8660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.6428 * 0.04","0.7660 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.7660 * 0.04","0.6428 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.8660 * 0.04","0.5000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.9397 * 0.04","0.3420 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"0.9877 * 0.04","0.1736 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"1.0000 * 0.04","0.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"1.2000 * 0.04","0.0000 * 0.04"},1},{},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","-1.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","-1.2000 * 0.04"},1},{},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","1.0000 * 0.04"},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","1.2000 * 0.04"},1},{},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{0.005,0},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{-0.005,0},1},{},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{0,0.005},1},
|
||||
{"ForwardVec",1,"PlaneOrientation",1,{0,-0.005},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Gunner {
|
||||
type = "line";
|
||||
width = 6;
|
||||
points[] = {
|
||||
{"GunnerAim",{"0.5-0.015","0.9-0.008"},1},
|
||||
{"GunnerAim",{"0.5-0.015","0.9+0.008"},1},
|
||||
{"GunnerAim",{"0.5+0.015","0.9+0.008"},1},
|
||||
{"GunnerAim",{"0.5+0.015","0.9-0.008"},1},
|
||||
{"GunnerAim",{"0.5-0.015","0.9-0.008"},1}
|
||||
};
|
||||
};
|
||||
|
||||
class WeaponName {
|
||||
type = "text";
|
||||
source = "weapon";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.61,0.86},1};
|
||||
right[] = {{0.65,0.86},1};
|
||||
down[] = {{0.61,0.9},1};
|
||||
};
|
||||
|
||||
class AmmoCount {
|
||||
type = "text";
|
||||
source = "ammo";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.61,0.89},1};
|
||||
right[] = {{0.65,0.89},1};
|
||||
down[] = {{0.61,0.93},1};
|
||||
};
|
||||
|
||||
class LightsGroup {
|
||||
type = "group";
|
||||
condition = "lights";
|
||||
class LightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "LIGHTS";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.055"},1};
|
||||
right[] = {{0.07,"0.53 + 0.055"},1};
|
||||
down[] = {{0.03,"0.53 + 0.095"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class CollisionLightsGroup {
|
||||
type = "group";
|
||||
condition = "collisionlights";
|
||||
class CollisionLightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "A-COL";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.105"},1};
|
||||
right[] = {{0.07,"0.53 + 0.105"},1};
|
||||
down[] = {{0.03,"0.53 + 0.145"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class ATMissileTOFGroup {
|
||||
condition = "ATmissile";
|
||||
type = "group";
|
||||
class TOFtext {
|
||||
type = "text";
|
||||
align = "right";
|
||||
source = "static";
|
||||
text = "TOF=";
|
||||
scale = 1;
|
||||
pos[] = {{0.61,0.92},1};
|
||||
right[] = {{0.65,0.92},1};
|
||||
down[] = {{0.61,0.96},1};
|
||||
};
|
||||
|
||||
class TOFnumber {
|
||||
type = "text";
|
||||
source = "targetDist";
|
||||
sourcescale = 0.0025;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.69,0.92},1};
|
||||
right[] = {{0.73,0.92},1};
|
||||
down[] = {{0.69,0.96},1};
|
||||
};
|
||||
};
|
||||
|
||||
class RangeNumber {
|
||||
type = "text";
|
||||
source = "targetDist";
|
||||
sourceScale = 1;
|
||||
align = "left";
|
||||
scale = 1;
|
||||
pos[] = {{0.39,0.89},1};
|
||||
right[] = {{0.43,0.89},1};
|
||||
down[] = {{0.39,0.93},1};
|
||||
};
|
||||
|
||||
class RangeText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "RNG";
|
||||
align = "left";
|
||||
scale = 1;
|
||||
pos[] = {{0.39,0.86},1};
|
||||
right[] = {{0.43,0.86},1};
|
||||
down[] = {{0.39,0.9},1};
|
||||
};
|
||||
|
||||
class SpeedNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "speed";
|
||||
sourceScale = 3.6;
|
||||
pos[] = {{0.03,0.475},1};
|
||||
right[] = {{0.08,0.475},1};
|
||||
down[] = {{0.03,0.525},1};
|
||||
};
|
||||
|
||||
class TorqueNumber {
|
||||
type = "text";
|
||||
align = "left";
|
||||
scale = 1;
|
||||
source = "rtdRotorTorque";
|
||||
sourceScale = 363;
|
||||
pos[] = {{0.065,0.175},1};
|
||||
right[] = {{0.115,0.175},1};
|
||||
down[] = {{0.065,0.225},1};
|
||||
};
|
||||
|
||||
class Torquetext {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "%";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.07,0.175},1};
|
||||
right[] = {{0.12,0.175},1};
|
||||
down[] = {{0.07,0.225},1};
|
||||
};
|
||||
|
||||
class AltNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
pos[] = {{0.83,0.475},1};
|
||||
right[] = {{0.88,0.475},1};
|
||||
down[] = {{0.83,0.525},1};
|
||||
};
|
||||
|
||||
class ASLNumber {
|
||||
type = "text";
|
||||
source = "altitudeASL";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.835,0.18},1};
|
||||
right[] = {{0.875,0.18},1};
|
||||
down[] = {{0.835,0.22},1};
|
||||
};
|
||||
|
||||
class VspeedScalePosta {
|
||||
type = "line";
|
||||
width = 5;
|
||||
points[] = {
|
||||
{{0.98,0.2},1},
|
||||
{{1,0.2},1},{},
|
||||
{{0.93,0.2},1},
|
||||
{{0.95,0.2},1},{},
|
||||
{{0.98,0.35},1},
|
||||
{{1,0.35},1},{},
|
||||
{{0.93,0.35},1},
|
||||
{{0.95,0.35},1},{},
|
||||
{{0.94,0.38},1},
|
||||
{{0.95,0.38},1},{},
|
||||
{{0.94,0.41},1},
|
||||
{{0.95,0.41},1},{},
|
||||
{{0.94,0.44},1},
|
||||
{{0.95,0.44},1},{},
|
||||
{{0.94,0.47},1},
|
||||
{{0.95,0.47},1},{},
|
||||
{{0.98,0.5},1},
|
||||
{{1,0.5},1},{},
|
||||
{{0.93,0.5},1},
|
||||
{{0.95,0.5},1},{},
|
||||
{{0.94,0.53},1},
|
||||
{{0.95,0.53},1},{},
|
||||
{{0.94,0.56},1},
|
||||
{{0.95,0.56},1},{},
|
||||
{{0.94,0.59},1},
|
||||
{{0.95,0.59},1},{},
|
||||
{{0.94,0.62},1},
|
||||
{{0.95,0.62},1},{},
|
||||
{{0.98,0.65},1},
|
||||
{{1,0.65},1},{},
|
||||
{{0.93,0.65},1},
|
||||
{{0.95,0.65},1},{},
|
||||
{{0.99,0.68},1},
|
||||
{{0.98,0.68},1},{},
|
||||
{{0.99,0.71},1},
|
||||
{{0.98,0.71},1},{},
|
||||
{{0.99,0.74},1},
|
||||
{{0.98,0.74},1},{},
|
||||
{{0.99,0.77},1},
|
||||
{{0.98,0.77},1},{},
|
||||
{{0.98,0.8},1},
|
||||
{{1,0.8},1},{},
|
||||
{{0.93,0.8},1},
|
||||
{{0.95,0.8},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class RadarAltitudeBand {
|
||||
clipTL[] = {0,0.2};
|
||||
clipBR[] = {1,0.8};
|
||||
class radarbanda {
|
||||
type = "line";
|
||||
width = 17;
|
||||
points[] = {
|
||||
{"RadarAltitudeBone",{0,0},1},
|
||||
{"RadarAltitudeBone",{0,0.6},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class VspeedBand {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{"VspeedBone",{-0.01,0},1},
|
||||
{"VspeedBone",{-0.025,-0.015},1},
|
||||
{"VspeedBone",{-0.025,0.015},1},
|
||||
{"VspeedBone",{-0.01,0},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingNumber: SpeedNumber {
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
align = "center";
|
||||
pos[] = {{0.5,0.01},1};
|
||||
right[] = {{0.56,0.01},1};
|
||||
down[] = {{0.5,0.06},1};
|
||||
};
|
||||
|
||||
class Center_box {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{{0.44,0.005},1},
|
||||
{{"0.44 + 0.12",0.005},1},
|
||||
{{"0.44 + 0.12","0.005 + 0.06"},1},
|
||||
{{0.44,"0.005 + 0.06"},1},
|
||||
{{0.44,0.005},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingArrow {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{{"0.5","0.128 + 0.03"},1},
|
||||
{{0.5,0.128},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingScale {
|
||||
type = "scale";
|
||||
horizontal = 1;
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
width = 5;
|
||||
top = 0.12;
|
||||
center = 0.5;
|
||||
bottom = 0.88;
|
||||
lineXleft = "0.03 + 0.085";
|
||||
lineYright = "0.02 + 0.085";
|
||||
lineXleftMajor = "0.04 + 0.085";
|
||||
lineYrightMajor = "0.02 + 0.085";
|
||||
majorLineEach = 3;
|
||||
numberEach = 3;
|
||||
step = 10;
|
||||
stepSize = "0.05";
|
||||
align = "center";
|
||||
scale = 1;
|
||||
pos[] = {0.119,"0.0 + 0.065"};
|
||||
right[] = {0.159,"0.0 + 0.065"};
|
||||
down[] = {0.119,"0.04 + 0.065"};
|
||||
};
|
||||
|
||||
class Fuel_Text {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "Fuel";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,0.9},1};
|
||||
right[] = {{0.07,0.9},1};
|
||||
down[] = {{0.03,0.94},1};
|
||||
};
|
||||
|
||||
class Fuel_Number {
|
||||
type = "text";
|
||||
source = "fuel";
|
||||
sourceScale = 100;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.1,0.9},1};
|
||||
right[] = {{0.14,0.9},1};
|
||||
down[] = {{0.1,0.94},1};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.04,0.04,0.1};
|
||||
helmetRight[] = {0.08,0,0};
|
||||
helmetDown[] = {0,-0.08,0};
|
||||
};
|
||||
|
||||
class LittleHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.722,0.722};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.75,0.75};
|
||||
};
|
||||
|
||||
class ForwardVec1 {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.25,0.25};
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.253,0.253};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class WeaponAim1 {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.253,0.23};
|
||||
};
|
||||
|
||||
class Target {
|
||||
type = "vector";
|
||||
source = "target";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class RadarContact {
|
||||
type = "fixed";
|
||||
pos[] = {0,0};
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class PlaneMovementCrosshair {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.04},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1}
|
||||
};
|
||||
};
|
||||
|
||||
class TargetACQ {
|
||||
type = "line";
|
||||
width = 2;
|
||||
points[] = {
|
||||
//////////////////////////////////////////////// UP
|
||||
/*{"ForwardVec1",1,"target",{0,-0.1},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.095},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.09},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.085},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.08},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.075},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.07},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.065},1},{},*/
|
||||
{"ForwardVec",1,"target",{0,-0.06},1},
|
||||
{"ForwardVec",1,"target",{0,-0.055},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.05},1},
|
||||
{"ForwardVec",1,"target",{0,-0.045},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.04},1},
|
||||
{"ForwardVec",1,"target",{0,-0.035},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.03},1},
|
||||
{"ForwardVec",1,"target",{0,-0.025},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.02},1},
|
||||
{"ForwardVec",1,"target",{0,-0.015},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.01},1},
|
||||
{"ForwardVec",1,"target",{0,-0.005},1},{},
|
||||
//////////////////////////////////////////////// center
|
||||
{"ForwardVec",1,"target",{0,0},1},
|
||||
{"ForwardVec",1,"target",{0,0},1},{},
|
||||
/////////////////////////////////////////////// DOWN
|
||||
/*{"ForwardVec1",1,"target",{0,0.1},1},
|
||||
{"ForwardVec1",1,"target",{0,0.095},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.09},1},
|
||||
{"ForwardVec1",1,"target",{0,0.085},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.080},1},
|
||||
{"ForwardVec1",1,"target",{0,0.075},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.070},1},
|
||||
{"ForwardVec1",1,"target",{0,0.065},1},{},*/
|
||||
{"ForwardVec",1,"target",{0,0.060},1},
|
||||
{"ForwardVec",1,"target",{0,0.055},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.050},1},
|
||||
{"ForwardVec",1,"target",{0,0.045},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.040},1},
|
||||
{"ForwardVec",1,"target",{0,0.035},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.030},1},
|
||||
{"ForwardVec",1,"target",{0,0.025},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.020},1},
|
||||
{"ForwardVec",1,"target",{0,0.015},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.010},1},
|
||||
{"ForwardVec",1,"target",{0,0.005},1},{},
|
||||
/////////////////////////////////////////////// LEFT
|
||||
/*{"ForwardVec1",1,"target",{-0.10, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.095, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.09, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.085, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.080, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.075, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.070, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.065, 0},1},{},*/
|
||||
{"ForwardVec",1,"target",{-0.060, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.055, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.050, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.045, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.040, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.035, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.030, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.025, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.020, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.015, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.010, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.005, 0},1},{},
|
||||
/////////////////////////////////////////////// RIGHT
|
||||
/*{"ForwardVec1",1,"target",{0.10, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.095, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.09, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.085, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.080, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.075, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.070, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.065, 0},1},{},*/
|
||||
{"ForwardVec",1,"target",{0.060, 0},1},
|
||||
{"ForwardVec",1,"target",{0.055, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.050, 0},1},
|
||||
{"ForwardVec",1,"target",{0.045, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.040, 0},1},
|
||||
{"ForwardVec",1,"target",{0.035, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.030, 0},1},
|
||||
{"ForwardVec",1,"target",{0.025, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.020, 0},1},
|
||||
{"ForwardVec",1,"target",{0.015, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.010, 0},1},
|
||||
{"ForwardVec",1,"target",{0.005, 0},1},{}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.035,0.035,0.1};
|
||||
helmetRight[] = {0.07,0,0};
|
||||
helmetDown[] = {0,-0.07,0};
|
||||
};
|
||||
};
|
@ -1,896 +0,0 @@
|
||||
|
||||
class MFD {
|
||||
class AirplaneHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.85,0.85};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class PlaneOrientation {
|
||||
type = "fixed";
|
||||
pos[] = {0.5,0.5};
|
||||
};
|
||||
|
||||
class GunnerAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.011,0.0027};
|
||||
};
|
||||
|
||||
class Target {
|
||||
type = "vector";
|
||||
source = "target";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.85,0.85};
|
||||
};
|
||||
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.65,0.65};
|
||||
};
|
||||
|
||||
class VspeedBone {
|
||||
type = "linear";
|
||||
source = "vspeed";
|
||||
sourceScale = 1;
|
||||
min = -10;
|
||||
max = 10;
|
||||
minPos[] = {0.93,0.2};
|
||||
maxPos[] = {0.93,0.8};
|
||||
};
|
||||
|
||||
class RadarAltitudeBone {
|
||||
type = "linear";
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
min = 0;
|
||||
max = 60;
|
||||
minPos[] = {0.965,0.2};
|
||||
maxPos[] = {0.965,0.8};
|
||||
};
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "rotational";
|
||||
source = "horizonBank";
|
||||
center[] = {0.5,0.5};
|
||||
min = -3.1416;
|
||||
max = 3.1416;
|
||||
minAngle = -180;
|
||||
maxAngle = 180;
|
||||
aspectRatio = 1;
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.235,0.235};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.75,0.75};
|
||||
};
|
||||
|
||||
class Level0 {
|
||||
type = "horizon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.78,0.78};
|
||||
angle = 0;
|
||||
};
|
||||
|
||||
class LevelP5: Level0 {
|
||||
angle = 5;
|
||||
};
|
||||
|
||||
class LevelM5: Level0 {
|
||||
angle = -5;
|
||||
};
|
||||
|
||||
class LevelP10: Level0 {
|
||||
angle = 10;
|
||||
};
|
||||
|
||||
class LevelM10: Level0 {
|
||||
angle = -10;
|
||||
};
|
||||
|
||||
class LevelP15: Level0 {
|
||||
angle = 15;
|
||||
};
|
||||
|
||||
class LevelM15: Level0 {
|
||||
angle = -15;
|
||||
};
|
||||
|
||||
class LevelP20: Level0 {
|
||||
angle = 20;
|
||||
};
|
||||
|
||||
class LevelM20: Level0 {
|
||||
angle = -20;
|
||||
};
|
||||
|
||||
class LevelP25: Level0 {
|
||||
angle = 25;
|
||||
};
|
||||
|
||||
class LevelM25: Level0 {
|
||||
angle = -25;
|
||||
};
|
||||
|
||||
class LevelP30: Level0 {
|
||||
angle = 30;
|
||||
};
|
||||
|
||||
class LevelM30: Level0 {
|
||||
angle = -30;
|
||||
};
|
||||
|
||||
class LevelP35: Level0 {
|
||||
angle = 35;
|
||||
};
|
||||
|
||||
class LevelM35: Level0 {
|
||||
angle = -35;
|
||||
};
|
||||
|
||||
class LevelP40: Level0 {
|
||||
angle = 40;
|
||||
};
|
||||
|
||||
class LevelM40: Level0 {
|
||||
angle = -40;
|
||||
};
|
||||
|
||||
class LevelP45: Level0 {
|
||||
angle = 45;
|
||||
};
|
||||
|
||||
class LevelM45: Level0 {
|
||||
angle = -45;
|
||||
};
|
||||
|
||||
class LevelP50: Level0 {
|
||||
angle = 50;
|
||||
};
|
||||
|
||||
class LevelM50: Level0 {
|
||||
angle = -50;
|
||||
};
|
||||
|
||||
class LevelP55: Level0 {
|
||||
angle = 55;
|
||||
};
|
||||
|
||||
class LevelM55: Level0 {
|
||||
angle = -55;
|
||||
};
|
||||
|
||||
class LevelP60: Level0 {
|
||||
angle = 60;
|
||||
};
|
||||
|
||||
class LevelM60: Level0 {
|
||||
angle = -60;
|
||||
};
|
||||
|
||||
class LevelP65: Level0 {
|
||||
angle = 65;
|
||||
};
|
||||
|
||||
class LevelM65: Level0 {
|
||||
angle = -65;
|
||||
};
|
||||
|
||||
class LevelP70: Level0 {
|
||||
angle = 70;
|
||||
};
|
||||
|
||||
class LevelM70: Level0 {
|
||||
angle = -70;
|
||||
};
|
||||
|
||||
class LevelP75: Level0 {
|
||||
angle = 75;
|
||||
};
|
||||
|
||||
class LevelM75: Level0 {
|
||||
angle = -75;
|
||||
};
|
||||
|
||||
class LevelP80: Level0 {
|
||||
angle = 80;
|
||||
};
|
||||
|
||||
class LevelM80: Level0 {
|
||||
angle = -80;
|
||||
};
|
||||
|
||||
class LevelP85: Level0 {
|
||||
angle = 85;
|
||||
};
|
||||
|
||||
class LevelM85: Level0 {
|
||||
angle = -85;
|
||||
};
|
||||
|
||||
class LevelP90: Level0 {
|
||||
angle = 90;
|
||||
};
|
||||
|
||||
class LevelM90: Level0 {
|
||||
angle = -90;
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class Horizont {
|
||||
clipTL[] = {0.15,0.15};
|
||||
clipBR[] = {0.85,0.85};
|
||||
class Dimmed {
|
||||
class Level0 {
|
||||
type = "line";
|
||||
points[] = {
|
||||
{"Level0",{-0.42,0},1},
|
||||
{"Level0",{-0.38,0},1},{},
|
||||
{"Level0",{-0.37,0},1},
|
||||
{"Level0",{-0.33,0},1},{},
|
||||
{"Level0",{-0.32,0},1},
|
||||
{"Level0",{-0.28,0},1},{},
|
||||
{"Level0",{-0.27,0},1},
|
||||
{"Level0",{-0.23,0},1},{},
|
||||
{"Level0",{-0.22,0},1},
|
||||
{"Level0",{-0.18,0},1},{},
|
||||
{"Level0",{-0.17,0},1},
|
||||
{"Level0",{-0.13,0},1},{},
|
||||
{"Level0",{-0.12,0},1},
|
||||
{"Level0",{-0.08,0},1},{},
|
||||
{"Level0",{0.42,0},1},
|
||||
{"Level0",{0.38,0},1},{},
|
||||
{"Level0",{0.37,0},1},
|
||||
{"Level0",{0.33,0},1},{},
|
||||
{"Level0",{0.32,0},1},
|
||||
{"Level0",{0.28,0},1},{},
|
||||
{"Level0",{0.27,0},1},
|
||||
{"Level0",{0.23,0},1},{},
|
||||
{"Level0",{0.22,0},1},
|
||||
{"Level0",{0.18,0},1},{},
|
||||
{"Level0",{0.17,0},1},
|
||||
{"Level0",{0.13,0},1},{},
|
||||
{"Level0",{0.12,0},1},
|
||||
{"Level0",{0.08,0},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*class StaticBank {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{{0.4782,0.251},1},
|
||||
{{0.4773,0.241},1},{},
|
||||
{{0.4566,0.2538},1},
|
||||
{{0.4549,0.2439},1},{},
|
||||
{{0.4353,0.2585},1},
|
||||
{{0.4301,0.2392},1},{},
|
||||
{{0.4145,0.2651},1},
|
||||
{{0.4111,0.2557},1},{},
|
||||
{{0.3943,0.2734},1},
|
||||
{{0.3901,0.2644},1},{},
|
||||
{{0.375,0.2835},1},
|
||||
{{0.365,0.2662},1},{},
|
||||
{{0.3232,0.3232},1},
|
||||
{{0.3091,0.3091},1},{},
|
||||
{{0.2835,0.375},1},
|
||||
{{0.2662,0.365},1},{},
|
||||
{{"0.5 + (0.5- 0.4782)",0.251},1},
|
||||
{{"0.5 + (0.5- 0.4773)",0.241},1},{},
|
||||
{{"0.5 + (0.5- 0.4566)",0.2538},1},
|
||||
{{"0.5 + (0.5- 0.4549)",0.2439},1},{},
|
||||
{{"0.5 + (0.5- 0.4353)",0.2585},1},
|
||||
{{"0.5 + (0.5- 0.4301)",0.2392},1},{},
|
||||
{{"0.5 + (0.5- 0.4145)",0.2651},1},
|
||||
{{"0.5 + (0.5- 0.4111)",0.2557},1},{},
|
||||
{{"0.5 + (0.5- 0.3943)",0.2734},1},
|
||||
{{"0.5 + (0.5- 0.3901)",0.2644},1},{},
|
||||
{{"0.5 + (0.5- 0.3750)",0.2835},1},
|
||||
{{"0.5 + (0.5- 0.3650)",0.2662},1},{},
|
||||
{{"0.5 + (0.5- 0.3232)",0.3232},1},
|
||||
{{"0.5 + (0.5- 0.3091)",0.3091},1},{},
|
||||
{{"0.5 + (0.5- 0.2835)",0.375},1},
|
||||
{{"0.5 + (0.5- 0.2662)",0.365},1},{},
|
||||
{{0.5,"0.5 - 0.25"},1},
|
||||
{{0.5,"0.5 - 0.28"},1}
|
||||
};
|
||||
};*/
|
||||
|
||||
class HorizonBankRot {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{"HorizonBankRot",{0,0.25},1},
|
||||
{"HorizonBankRot",{-0.01,0.23},1},
|
||||
{"HorizonBankRot",{0.01,0.23},1},
|
||||
{"HorizonBankRot",{0,0.25},1}
|
||||
};
|
||||
};
|
||||
|
||||
class Static {
|
||||
clipTL[] = {0,1};
|
||||
clipBR[] = {1,0};
|
||||
type = "line";
|
||||
width = 5;
|
||||
points[] = {
|
||||
{{"0.5-0.1","0.9-0.04"},1},
|
||||
{{"0.5-0.1","0.9+0.04"},1},
|
||||
{{"0.5+0.1","0.9+0.04"},1},
|
||||
{{"0.5+0.1","0.9-0.04"},1},
|
||||
{{"0.5-0.1","0.9-0.04"},1},{},
|
||||
{{"0.5-0.1",0.9},1},
|
||||
{{"0.5-0.092",0.9},1},{},
|
||||
{{"0.5+0.1",0.9},1},
|
||||
{{"0.5+0.092",0.9},1},{},
|
||||
{{0.5,"0.9-0.04"},1},
|
||||
{{0.5,"0.9-0.032"},1},{},
|
||||
{{0.5,"0.9+0.04"},1},
|
||||
{{0.5,"0.9+0.032"},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class Centerline {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{{0.5,0.49},1},
|
||||
{{0.5,0.47},1},{},
|
||||
{{0.5,0.51},1},
|
||||
{{0.5,0.53},1},{},
|
||||
{{0.49,0.5},1},
|
||||
{{0.47,0.5},1},{},
|
||||
{{0.51,0.5},1},
|
||||
{{0.53,0.5},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class Gunner {
|
||||
type = "line";
|
||||
width = 6;
|
||||
points[] = {
|
||||
{"GunnerAim",{"0.5-0.015","0.9-0.008"},1},
|
||||
{"GunnerAim",{"0.5-0.015","0.9+0.008"},1},
|
||||
{"GunnerAim",{"0.5+0.015","0.9+0.008"},1},
|
||||
{"GunnerAim",{"0.5+0.015","0.9-0.008"},1},
|
||||
{"GunnerAim",{"0.5-0.015","0.9-0.008"},1}
|
||||
};
|
||||
};
|
||||
|
||||
class WeaponName {
|
||||
type = "text";
|
||||
source = "weapon";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.61,0.86},1};
|
||||
right[] = {{0.65,0.86},1};
|
||||
down[] = {{0.61,0.9},1};
|
||||
};
|
||||
|
||||
class AmmoCount {
|
||||
type = "text";
|
||||
source = "ammo";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.61,0.89},1};
|
||||
right[] = {{0.65,0.89},1};
|
||||
down[] = {{0.61,0.93},1};
|
||||
};
|
||||
|
||||
class LightsGroup {
|
||||
type = "group";
|
||||
condition = "lights";
|
||||
class LightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "LIGHTS";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.055"},1};
|
||||
right[] = {{0.07,"0.53 + 0.055"},1};
|
||||
down[] = {{0.03,"0.53 + 0.095"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class CollisionLightsGroup {
|
||||
type = "group";
|
||||
condition = "collisionlights";
|
||||
class CollisionLightsText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "A-COL";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,"0.53 + 0.105"},1};
|
||||
right[] = {{0.07,"0.53 + 0.105"},1};
|
||||
down[] = {{0.03,"0.53 + 0.145"},1};
|
||||
};
|
||||
};
|
||||
|
||||
class ATMissileTOFGroup {
|
||||
condition = "ATmissile";
|
||||
type = "group";
|
||||
class TOFtext {
|
||||
type = "text";
|
||||
align = "right";
|
||||
source = "static";
|
||||
text = "TOF=";
|
||||
scale = 1;
|
||||
pos[] = {{0.61,0.92},1};
|
||||
right[] = {{0.65,0.92},1};
|
||||
down[] = {{0.61,0.96},1};
|
||||
};
|
||||
|
||||
class TOFnumber {
|
||||
type = "text";
|
||||
source = "targetDist";
|
||||
sourcescale = 0.0025;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.69,0.92},1};
|
||||
right[] = {{0.73,0.92},1};
|
||||
down[] = {{0.69,0.96},1};
|
||||
};
|
||||
};
|
||||
|
||||
class RangeNumber {
|
||||
type = "text";
|
||||
source = "targetDist";
|
||||
sourceScale = 1;
|
||||
align = "left";
|
||||
scale = 1;
|
||||
pos[] = {{0.39,0.89},1};
|
||||
right[] = {{0.43,0.89},1};
|
||||
down[] = {{0.39,0.93},1};
|
||||
};
|
||||
|
||||
class RangeText {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "RNG";
|
||||
align = "left";
|
||||
scale = 1;
|
||||
pos[] = {{0.39,0.86},1};
|
||||
right[] = {{0.43,0.86},1};
|
||||
down[] = {{0.39,0.9},1};
|
||||
};
|
||||
|
||||
class SpeedNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "speed";
|
||||
sourceScale = 3.6;
|
||||
pos[] = {{0.03,0.475},1};
|
||||
right[] = {{0.08,0.475},1};
|
||||
down[] = {{0.03,0.525},1};
|
||||
};
|
||||
|
||||
class TorqueNumber {
|
||||
type = "text";
|
||||
align = "left";
|
||||
scale = 1;
|
||||
source = "rtdRotorTorque";
|
||||
sourceScale = 110;
|
||||
pos[] = {{0.065,0.175},1};
|
||||
right[] = {{0.115,0.175},1};
|
||||
down[] = {{0.065,0.225},1};
|
||||
};
|
||||
|
||||
class Torquetext {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "%";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.07,0.175},1};
|
||||
right[] = {{0.12,0.175},1};
|
||||
down[] = {{0.07,0.225},1};
|
||||
};
|
||||
|
||||
class AltNumber {
|
||||
type = "text";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
source = "altitudeAGL";
|
||||
sourceScale = 1;
|
||||
pos[] = {{0.83,0.475},1};
|
||||
right[] = {{0.88,0.475},1};
|
||||
down[] = {{0.83,0.525},1};
|
||||
};
|
||||
|
||||
class ASLNumber {
|
||||
type = "text";
|
||||
source = "altitudeASL";
|
||||
sourceScale = 1;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.835,0.18},1};
|
||||
right[] = {{0.875,0.18},1};
|
||||
down[] = {{0.835,0.22},1};
|
||||
};
|
||||
|
||||
class VspeedScalePosta {
|
||||
type = "line";
|
||||
width = 5;
|
||||
points[] = {
|
||||
{{0.98,0.2},1},
|
||||
{{1,0.2},1},{},
|
||||
{{0.93,0.2},1},
|
||||
{{0.95,0.2},1},{},
|
||||
{{0.98,0.35},1},
|
||||
{{1,0.35},1},{},
|
||||
{{0.93,0.35},1},
|
||||
{{0.95,0.35},1},{},
|
||||
{{0.94,0.38},1},
|
||||
{{0.95,0.38},1},{},
|
||||
{{0.94,0.41},1},
|
||||
{{0.95,0.41},1},{},
|
||||
{{0.94,0.44},1},
|
||||
{{0.95,0.44},1},{},
|
||||
{{0.94,0.47},1},
|
||||
{{0.95,0.47},1},{},
|
||||
{{0.98,0.5},1},
|
||||
{{1,0.5},1},{},
|
||||
{{0.93,0.5},1},
|
||||
{{0.95,0.5},1},{},
|
||||
{{0.94,0.53},1},
|
||||
{{0.95,0.53},1},{},
|
||||
{{0.94,0.56},1},
|
||||
{{0.95,0.56},1},{},
|
||||
{{0.94,0.59},1},
|
||||
{{0.95,0.59},1},{},
|
||||
{{0.94,0.62},1},
|
||||
{{0.95,0.62},1},{},
|
||||
{{0.98,0.65},1},
|
||||
{{1,0.65},1},{},
|
||||
{{0.93,0.65},1},
|
||||
{{0.95,0.65},1},{},
|
||||
{{0.99,0.68},1},
|
||||
{{0.98,0.68},1},{},
|
||||
{{0.99,0.71},1},
|
||||
{{0.98,0.71},1},{},
|
||||
{{0.99,0.74},1},
|
||||
{{0.98,0.74},1},{},
|
||||
{{0.99,0.77},1},
|
||||
{{0.98,0.77},1},{},
|
||||
{{0.98,0.8},1},
|
||||
{{1,0.8},1},{},
|
||||
{{0.93,0.8},1},
|
||||
{{0.95,0.8},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class RadarAltitudeBand {
|
||||
clipTL[] = {0,0.2};
|
||||
clipBR[] = {1,0.8};
|
||||
class radarbanda {
|
||||
type = "line";
|
||||
width = 17;
|
||||
points[] = {
|
||||
{"RadarAltitudeBone",{0,0},1},
|
||||
{"RadarAltitudeBone",{0,0.6},1}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class VspeedBand {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{"VspeedBone",{-0.01,0},1},
|
||||
{"VspeedBone",{-0.025,-0.015},1},
|
||||
{"VspeedBone",{-0.025,0.015},1},
|
||||
{"VspeedBone",{-0.01,0},1},{}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingNumber: SpeedNumber {
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
align = "center";
|
||||
pos[] = {{0.5,0.01},1};
|
||||
right[] = {{0.56,0.01},1};
|
||||
down[] = {{0.5,0.06},1};
|
||||
};
|
||||
|
||||
class Center_box {
|
||||
type = "line";
|
||||
width = 3;
|
||||
points[] = {
|
||||
{{0.44,0.005},1},
|
||||
{{"0.44 + 0.12",0.005},1},
|
||||
{{"0.44 + 0.12","0.005 + 0.06"},1},
|
||||
{{0.44,"0.005 + 0.06"},1},
|
||||
{{0.44,0.005},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingArrow {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{{"0.5","0.128 + 0.03"},1},
|
||||
{{0.5,0.128},1}
|
||||
};
|
||||
};
|
||||
|
||||
class HeadingScale {
|
||||
type = "scale";
|
||||
horizontal = 1;
|
||||
source = "heading";
|
||||
sourceScale = 1;
|
||||
width = 5;
|
||||
top = 0.12;
|
||||
center = 0.5;
|
||||
bottom = 0.88;
|
||||
lineXleft = "0.03 + 0.085";
|
||||
lineYright = "0.02 + 0.085";
|
||||
lineXleftMajor = "0.04 + 0.085";
|
||||
lineYrightMajor = "0.02 + 0.085";
|
||||
majorLineEach = 3;
|
||||
numberEach = 3;
|
||||
step = 10;
|
||||
stepSize = "0.05";
|
||||
align = "center";
|
||||
scale = 1;
|
||||
pos[] = {0.119,"0.0 + 0.065"};
|
||||
right[] = {0.159,"0.0 + 0.065"};
|
||||
down[] = {0.119,"0.04 + 0.065"};
|
||||
};
|
||||
|
||||
class Fuel_Text {
|
||||
type = "text";
|
||||
source = "static";
|
||||
text = "Fuel";
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.03,0.9},1};
|
||||
right[] = {{0.07,0.9},1};
|
||||
down[] = {{0.03,0.94},1};
|
||||
};
|
||||
|
||||
class Fuel_Number {
|
||||
type = "text";
|
||||
source = "fuel";
|
||||
sourceScale = 100;
|
||||
align = "right";
|
||||
scale = 1;
|
||||
pos[] = {{0.1,0.9},1};
|
||||
right[] = {{0.14,0.9},1};
|
||||
down[] = {{0.1,0.94},1};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.04,0.04,0.1};
|
||||
helmetRight[] = {0.08,0,0};
|
||||
helmetDown[] = {0,-0.08,0};
|
||||
};
|
||||
|
||||
class LittleHUD {
|
||||
class Pos10Vector {
|
||||
type = "vector";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.722,0.722};
|
||||
};
|
||||
|
||||
topLeft = "HUD_top_left";
|
||||
topRight = "HUD_top_right";
|
||||
bottomLeft = "HUD_bottom_left";
|
||||
borderLeft = 0;
|
||||
borderRight = 0;
|
||||
borderTop = 0;
|
||||
borderBottom = 0;
|
||||
color[] = {0.15,1,0.15,1};
|
||||
enableParallax = 0;
|
||||
class Bones {
|
||||
class Velocity {
|
||||
type = "vector";
|
||||
source = "velocity";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.75,0.75};
|
||||
};
|
||||
|
||||
class ForwardVec1 {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.25,0.25};
|
||||
};
|
||||
|
||||
class ForwardVec {
|
||||
type = "vector";
|
||||
source = "forward";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.253,0.253};
|
||||
};
|
||||
|
||||
class WeaponAim {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class WeaponAim1 {
|
||||
type = "vector";
|
||||
source = "weapon";
|
||||
pos0[] = {0,0};
|
||||
pos10[] = {0.253,0.23};
|
||||
};
|
||||
|
||||
class Target {
|
||||
type = "vector";
|
||||
source = "target";
|
||||
pos0[] = {0.5,0.5};
|
||||
pos10[] = {0.753,0.753};
|
||||
};
|
||||
|
||||
class RadarContact {
|
||||
type = "fixed";
|
||||
pos[] = {0,0};
|
||||
};
|
||||
};
|
||||
|
||||
class Draw {
|
||||
color[] = {0.18,1,0.18};
|
||||
alpha = 1;
|
||||
condition = "on";
|
||||
class PlaneMovementCrosshair {
|
||||
type = "line";
|
||||
width = 7;
|
||||
points[] = {
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,0.02},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.04,0},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.04},1},
|
||||
{"ForwardVec1",1,"Velocity",1,{0,-0.02},1}
|
||||
};
|
||||
};
|
||||
|
||||
class TargetACQ {
|
||||
type = "line";
|
||||
width = 2;
|
||||
points[] = {
|
||||
//////////////////////////////////////////////// UP
|
||||
/*{"ForwardVec1",1,"target",{0,-0.1},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.095},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.09},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.085},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.08},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.075},1},{},
|
||||
{"ForwardVec1",1,"target",{0,-0.07},1},
|
||||
{"ForwardVec1",1,"target",{0,-0.065},1},{},*/
|
||||
{"ForwardVec",1,"target",{0,-0.06},1},
|
||||
{"ForwardVec",1,"target",{0,-0.055},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.05},1},
|
||||
{"ForwardVec",1,"target",{0,-0.045},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.04},1},
|
||||
{"ForwardVec",1,"target",{0,-0.035},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.03},1},
|
||||
{"ForwardVec",1,"target",{0,-0.025},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.02},1},
|
||||
{"ForwardVec",1,"target",{0,-0.015},1},{},
|
||||
{"ForwardVec",1,"target",{0,-0.01},1},
|
||||
{"ForwardVec",1,"target",{0,-0.005},1},{},
|
||||
//////////////////////////////////////////////// center
|
||||
{"ForwardVec",1,"target",{0,0},1},
|
||||
{"ForwardVec",1,"target",{0,0},1},{},
|
||||
/////////////////////////////////////////////// DOWN
|
||||
/*{"ForwardVec1",1,"target",{0,0.1},1},
|
||||
{"ForwardVec1",1,"target",{0,0.095},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.09},1},
|
||||
{"ForwardVec1",1,"target",{0,0.085},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.080},1},
|
||||
{"ForwardVec1",1,"target",{0,0.075},1},{},
|
||||
{"ForwardVec1",1,"target",{0,0.070},1},
|
||||
{"ForwardVec1",1,"target",{0,0.065},1},{},*/
|
||||
{"ForwardVec",1,"target",{0,0.060},1},
|
||||
{"ForwardVec",1,"target",{0,0.055},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.050},1},
|
||||
{"ForwardVec",1,"target",{0,0.045},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.040},1},
|
||||
{"ForwardVec",1,"target",{0,0.035},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.030},1},
|
||||
{"ForwardVec",1,"target",{0,0.025},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.020},1},
|
||||
{"ForwardVec",1,"target",{0,0.015},1},{},
|
||||
{"ForwardVec",1,"target",{0,0.010},1},
|
||||
{"ForwardVec",1,"target",{0,0.005},1},{},
|
||||
/////////////////////////////////////////////// LEFT
|
||||
/*{"ForwardVec1",1,"target",{-0.10, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.095, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.09, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.085, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.080, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.075, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{-0.070, 0},1},
|
||||
{"ForwardVec1",1,"target",{-0.065, 0},1},{},*/
|
||||
{"ForwardVec",1,"target",{-0.060, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.055, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.050, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.045, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.040, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.035, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.030, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.025, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.020, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.015, 0},1},{},
|
||||
{"ForwardVec",1,"target",{-0.010, 0},1},
|
||||
{"ForwardVec",1,"target",{-0.005, 0},1},{},
|
||||
/////////////////////////////////////////////// RIGHT
|
||||
/*{"ForwardVec1",1,"target",{0.10, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.095, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.09, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.085, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.080, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.075, 0},1},{},
|
||||
{"ForwardVec1",1,"target",{0.070, 0},1},
|
||||
{"ForwardVec1",1,"target",{0.065, 0},1},{},*/
|
||||
{"ForwardVec",1,"target",{0.060, 0},1},
|
||||
{"ForwardVec",1,"target",{0.055, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.050, 0},1},
|
||||
{"ForwardVec",1,"target",{0.045, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.040, 0},1},
|
||||
{"ForwardVec",1,"target",{0.035, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.030, 0},1},
|
||||
{"ForwardVec",1,"target",{0.025, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.020, 0},1},
|
||||
{"ForwardVec",1,"target",{0.015, 0},1},{},
|
||||
{"ForwardVec",1,"target",{0.010, 0},1},
|
||||
{"ForwardVec",1,"target",{0.005, 0},1},{}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
helmetMountedDisplay = 1;
|
||||
helmetPosition[] = {-0.035,0.035,0.1};
|
||||
helmetRight[] = {0.07,0,0};
|
||||
helmetDown[] = {0,-0.07,0};
|
||||
};
|
||||
};
|
@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-12 -->
|
||||
<Project name="AGM">
|
||||
<Package name="Aircraft">
|
||||
<Key ID="STR_AGM_Aircraft_CMFlareLauncher_Burst_Name">
|
||||
<English>Burst</English>
|
||||
<German>Feuerstoß</German>
|
||||
<Spanish>Ráfaga</Spanish>
|
||||
<Polish>Seria</Polish>
|
||||
<Czech>Dávka</Czech>
|
||||
<French>Rafale</French>
|
||||
<Russian>Очередь</Russian>
|
||||
<Hungarian>Sorozat</Hungarian>
|
||||
<Portuguese>Rajada</Portuguese>
|
||||
<Italian>Raffica</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Aircraft_OpenCargoRamp">
|
||||
<English>Open Cargo Door</English>
|
||||
<German>Laderampe öffnen</German>
|
||||
<Spanish>Abrir compuerta de carga</Spanish>
|
||||
<French>Ourvir Rampe Cargo</French>
|
||||
<Polish>Otwórz drzwi ładowni</Polish>
|
||||
<Czech>Otevřít nákladní prostor</Czech>
|
||||
<Hungarian>Rámpát kinyitni</Hungarian>
|
||||
<Russian>Открыть грузовой отсек</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Aircraft_CloseCargoRamp">
|
||||
<English>Close Cargo Door</English>
|
||||
<German>Laderampe schließen</German>
|
||||
<Spanish>Cerrar compuerta de carga</Spanish>
|
||||
<French>Fermer Rampe Cargo</French>
|
||||
<Polish>Zamknij drzwi ładowni</Polish>
|
||||
<Czech>Zavřít nákladní prostor</Czech>
|
||||
<Hungarian>Rámpát zárni</Hungarian>
|
||||
<Russian>Закрыть грузовой отсек</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,159 +0,0 @@
|
||||
class CfgPatches {
|
||||
class AGM_Attach {
|
||||
units[] = {};
|
||||
weapons[] = {"AGM_IR_Strobe_Item"};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core, AGM_Interaction};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"KoffeinFlummi", "eRazeri", "CAA-Picard"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_Attach {
|
||||
class AGM_Attach {
|
||||
file = "AGM_Attach\functions";
|
||||
class attach;
|
||||
class canAttach;
|
||||
class canDetach;
|
||||
class detach;
|
||||
class openAttachUI;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
|
||||
name = #ITEM; \
|
||||
count = COUNT; \
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class AGM_SelfActions {
|
||||
class AGM_Equipment {
|
||||
class AGM_Attach {
|
||||
displayName = "$STR_AGM_Attach_AttachDetach";
|
||||
condition = "[_player, ''] call AGM_Attach_fnc_canAttach";
|
||||
statement = "[_player] call AGM_Attach_fnc_openAttachUI;";
|
||||
exceptions[] = {"AGM_Drag_isNotDragging"};
|
||||
showDisabled = 0;
|
||||
priority = 5;
|
||||
icon = "\AGM_Attach\UI\attach_ca.paa";
|
||||
hotkey = "T";
|
||||
};
|
||||
class AGM_Attach_Detach {
|
||||
displayName = "$STR_AGM_Attach_Detach";
|
||||
condition = "[_player] call AGM_Attach_fnc_canDetach";
|
||||
statement = "[_player] call AGM_Attach_fnc_detach";
|
||||
exceptions[] = {"AGM_Drag_isNotDragging"};
|
||||
showDisabled = 0;
|
||||
priority = 5;
|
||||
icon = "\AGM_Attach\UI\detach_ca.paa";
|
||||
hotkey = "T";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class All;
|
||||
class AGM_IR_Strobe_Effect: All {
|
||||
scope = 1;
|
||||
displayName = "IR Strobe";
|
||||
model = "\A3\Weapons_F\empty.p3d";
|
||||
simulation = "nvmarker";
|
||||
|
||||
class NVGMarker {
|
||||
diffuse[] = {0,0,0};
|
||||
ambient[] = {0,0,0};
|
||||
brightness = 0.004;
|
||||
name = "pozicni blik";
|
||||
drawLight = 1;
|
||||
drawLightSize = 0.005;
|
||||
drawLightCenterSize = 0.003;
|
||||
activeLight = 0;
|
||||
blinking=1;
|
||||
dayLight = 0;
|
||||
onlyInNvg = 1;
|
||||
useFlare = 0;
|
||||
};
|
||||
side = 7;//-1=NO_SIDE yellow box,3=CIV grey box,4=NEUTRAL yellow box,6=FRIENDLY green box,7=LOGIC no radar signature
|
||||
accuracy = 1000;
|
||||
cost = 0;
|
||||
armor = 500;
|
||||
threat[] = {0,0,0};
|
||||
nameSound = "";
|
||||
type = 0;
|
||||
weapons[] = {};
|
||||
magazines[] = {};
|
||||
nvTarget = 1;
|
||||
destrType = "DestructNo";
|
||||
brightness = 20;
|
||||
};
|
||||
|
||||
class NATO_Box_Base;
|
||||
class EAST_Box_Base;
|
||||
class IND_Box_Base;
|
||||
class FIA_Box_Base_F;
|
||||
|
||||
class Box_NATO_Support_F: NATO_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_IR_Strobe_Item,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_East_Support_F: EAST_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_IR_Strobe_Item,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_IND_Support_F: IND_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_IR_Strobe_Item,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_FIA_Support_F: FIA_Box_Base_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_IR_Strobe_Item,12)
|
||||
};
|
||||
};
|
||||
|
||||
class AGM_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_IR_Strobe_Item,12)
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgWeapons {
|
||||
class AGM_ItemCore;
|
||||
class InventoryItem_Base_F;
|
||||
|
||||
class AGM_IR_Strobe_Item: AGM_ItemCore {
|
||||
displayName = "$STR_AGM_IrStrobe_Name";
|
||||
descriptionShort = "$STR_AGM_IrStrobe_Description";
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
picture = "\AGM_Attach\UI\irstrobe_item.paa";
|
||||
scope = 2;
|
||||
AGM_attachable = 1;
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
mass = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgMagazines {
|
||||
class CA_Magazine;
|
||||
class B_IR_Grenade: CA_Magazine {
|
||||
AGM_Attachable = 1;
|
||||
};
|
||||
class SmokeShell;
|
||||
class Chemlight_green: SmokeShell {
|
||||
AGM_Attachable = 1;
|
||||
};
|
||||
};
|
@ -1,60 +0,0 @@
|
||||
/*
|
||||
Author: eRazeri and CAA-Picard
|
||||
|
||||
Attach an item to the unit
|
||||
|
||||
Arguments:
|
||||
0: unit
|
||||
1: Item name
|
||||
|
||||
Return Value:
|
||||
none
|
||||
*/
|
||||
|
||||
private ["_unit", "_itemName", "_attachedItem"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_itemName = _this select 1;
|
||||
|
||||
// Check if unit has an attached item
|
||||
if (_unit getVariable ["AGM_AttachedItemName", ""] != "") exitWith {};
|
||||
|
||||
// Check if the unit still has the item
|
||||
if !((_itemName in items _unit) or (_itemName in magazines _unit)) exitWith {};
|
||||
|
||||
// Attach item
|
||||
switch true do {
|
||||
case (_itemName == "AGM_IR_Strobe_Item") : {
|
||||
_attachedItem = "AGM_IR_Strobe_Effect" createVehicle [0,0,0];
|
||||
_attachedItem attachTo [_unit,[0,-0.11,0.16],"pilot"];//makes it attach to the head a bit better, shoulder is not good for visibility - eRazeri
|
||||
[localize "STR_AGM_Attach_IrStrobe_Attached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
case (_itemName == "B_IR_Grenade") : {
|
||||
_attachedItem = "B_IRStrobe" createVehicle [0,0,0];
|
||||
_attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"];
|
||||
[localize "STR_AGM_Attach_IrGrenade_Attached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
case (_itemName == "O_IR_Grenade") : {
|
||||
_attachedItem = "O_IRStrobe" createVehicle [0,0,0];
|
||||
_attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"];
|
||||
[localize "STR_AGM_Attach_IrGrenade_Attached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
case (_itemName == "I_IR_Grenade") : {
|
||||
_attachedItem = "I_IRStrobe" createVehicle [0,0,0];
|
||||
_attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"];
|
||||
[localize "STR_AGM_Attach_IrGrenade_Attached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
case (_itemName == "Chemlight_blue" or {_itemName == "Chemlight_green"} or {_itemName == "Chemlight_red"} or {_itemName == "Chemlight_yellow"}) : {
|
||||
_attachedItem = _itemName createVehicle [0,0,0];
|
||||
_attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"];
|
||||
[localize "STR_AGM_Attach_Chemlight_Attached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
default {
|
||||
if (true) exitWith {};
|
||||
};
|
||||
};
|
||||
|
||||
// Remove item
|
||||
_unit removeItem _itemName;
|
||||
_unit setVariable ["AGM_AttachedItemName", _itemName, true];
|
||||
_unit setVariable ["AGM_AttachedItem", _attachedItem, true];
|
@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Check if a unit can attach a specific item.
|
||||
*
|
||||
* Argument:
|
||||
* 0: Unit that wants to attach the object (Object)
|
||||
* 1: Name of the attachable item (String)
|
||||
*
|
||||
* Return value:
|
||||
* Boolean (Bool)
|
||||
*/
|
||||
|
||||
private ["_unit", "_item"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_item = _this select 1;
|
||||
|
||||
canStand _unit && {_unit getVariable ["AGM_AttachedItemName", ""] == ""} && {_item in (magazines _unit + items _unit + [""])}
|
@ -1,17 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Check if a unit has an item attached and if it can remove that item.
|
||||
*
|
||||
* Argument:
|
||||
* 0: Unit that wants to detach something (Object)
|
||||
*
|
||||
* Return value:
|
||||
* Boolean (Bool)
|
||||
*/
|
||||
|
||||
private "_unit";
|
||||
|
||||
_unit = _this select 0;
|
||||
|
||||
canStand _unit && {_unit getVariable ["AGM_AttachedItemName", ""] != ""}
|
@ -1,63 +0,0 @@
|
||||
/*
|
||||
Author: eRazeri and CAA-Picard
|
||||
|
||||
Detach an item from a unit
|
||||
|
||||
Arguments:
|
||||
unit
|
||||
|
||||
Return Value:
|
||||
none
|
||||
*/
|
||||
|
||||
private ["_unit", "_itemName", "_count", "_attachedItem"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_itemName = _unit getVariable ["AGM_AttachedItemName", ""];
|
||||
|
||||
// Check if unit has an attached item
|
||||
if (_itemName == "") exitWith {};
|
||||
|
||||
// Add item to inventory
|
||||
_count = (count items _unit) + (count magazines _unit);
|
||||
_unit addItem _itemName;
|
||||
if ((count items _unit) + (count magazines _unit) <= _count) exitWith {
|
||||
[localize "STR_AGM_Attach_Inventory_Full"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
|
||||
if (_itemName == "B_IR_Grenade" or _itemName == "O_IR_Grenade" or _itemName == "I_IR_Grenade") then {
|
||||
// Hack for dealing with X_IR_Grenade effect not dissapearing on deleteVehicle
|
||||
[_unit getVariable "AGM_AttachedItem", _unit] spawn {
|
||||
_attachedItem = _this select 0;
|
||||
_unit = _this select 1;
|
||||
detach _attachedItem;
|
||||
_attachedItem setPos [getPos _unit select 0, getPos _unit select 1, (getPos _unit select 2) -1000];
|
||||
sleep 0.5;
|
||||
deleteVehicle _attachedItem;
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
// Delete attached item
|
||||
deleteVehicle (_unit getVariable "AGM_AttachedItem");
|
||||
};
|
||||
|
||||
// Reset unit variables
|
||||
_unit setVariable ["AGM_AttachedItemName","", true];
|
||||
_unit setVariable ["AGM_AttachedItem",nil, true];
|
||||
|
||||
// Display message
|
||||
switch true do {
|
||||
case (_itemName == "AGM_IR_Strobe_Item") : {
|
||||
[localize "STR_AGM_Attach_IrStrobe_Detached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
case (_itemName == "B_IR_Grenade" or _itemName == "O_IR_Grenade" or _itemName == "I_IR_Grenade") : {
|
||||
[localize "STR_AGM_Attach_IrGrenade_Detached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
case (_itemName == "Chemlight_blue" or {_itemName == "Chemlight_green"} or {_itemName == "Chemlight_red"} or {_itemName == "Chemlight_yellow"}) : {
|
||||
[localize "STR_AGM_Attach_Chemlight_Detached"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
default {
|
||||
if (true) exitWith {};
|
||||
};
|
||||
};
|
@ -1,63 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Attach_fnc_openAttachUI
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Opens the UI for attaching objects.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player] call AGM_Attach_fnc_openAttachUI;
|
||||
*/
|
||||
private ["_unit", "_actions", "_attachables", "_item"];
|
||||
_unit = _this select 0;
|
||||
_listed = [];
|
||||
_attachables = magazines _unit;
|
||||
_actions = [localize "STR_AGM_Attach_AttachDetach", localize "STR_AGM_Attach_Attach"] call AGM_Interaction_fnc_prepareSelectMenu;
|
||||
{
|
||||
if !(_x in _listed) then {
|
||||
_item = ConfigFile >> "CfgMagazines" >> _x;
|
||||
if (getNumber (_item >> "AGM_Attachable") == 1) then {
|
||||
_actions = [
|
||||
_actions,
|
||||
getText(_item >> "displayName"),
|
||||
getText(_item >> "picture"),
|
||||
_x
|
||||
] call AGM_Interaction_fnc_AddSelectableItem;
|
||||
};
|
||||
_listed pushBack _x;
|
||||
};
|
||||
} forEach _attachables;
|
||||
_attachables = items _unit;
|
||||
{
|
||||
if !(_x in _listed) then {
|
||||
_item = ConfigFile >> "CfgWeapons" >> _x;
|
||||
if (getNumber (_item >> "AGM_Attachable") == 1) then {
|
||||
_actions = [
|
||||
_actions,
|
||||
getText(_item >> "displayName"),
|
||||
getText(_item >> "picture"),
|
||||
_x
|
||||
] call AGM_Interaction_fnc_AddSelectableItem;
|
||||
};
|
||||
_listed pushBack _x;
|
||||
};
|
||||
} forEach _attachables;
|
||||
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[AGM_player, _this] call AGM_Attach_fnc_attach;
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
},
|
||||
{
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenuSelf};
|
||||
}
|
||||
] call AGM_Interaction_fnc_openSelectMenu;
|
@ -1,150 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-12 -->
|
||||
<Project name="AGM">
|
||||
<Package name="Attach">
|
||||
<Key ID="STR_AGM_Attach_AttachDetach">
|
||||
<English>Attach item >></English>
|
||||
<German>Gegenstand befestigen >></German>
|
||||
<Spanish>Acoplar objeto >></Spanish>
|
||||
<Polish>Przyczep przedmiot >></Polish>
|
||||
<French>Attacher l'objet >></French>
|
||||
<Czech>Připnout předmět >></Czech>
|
||||
<Portuguese>Acoplar item >></Portuguese>
|
||||
<Italian>Attacca l'oggetto >></Italian>
|
||||
<Hungarian>Tárgy hozzácsatolása >></Hungarian>
|
||||
<Russian>Добавить приспособления</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_Attach">
|
||||
<English>Attach</English>
|
||||
<German>Befestigen</German>
|
||||
<Spanish>Acoplar</Spanish>
|
||||
<Polish>Przyczep</Polish>
|
||||
<French>Attacher</French>
|
||||
<Czech>Připnout</Czech>
|
||||
<Portuguese>Acoplar</Portuguese>
|
||||
<Italian>Attacca</Italian>
|
||||
<Hungarian>Hozzácsatolás</Hungarian>
|
||||
<Russian>Присоединить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_Detach">
|
||||
<English>Detach item</English>
|
||||
<German>Gegenstand entfernen</German>
|
||||
<Spanish>Quitar objeto</Spanish>
|
||||
<Polish>Odczep przedmiot</Polish>
|
||||
<French>Détacher l'objet</French>
|
||||
<Czech>Odepnout předmět</Czech>
|
||||
<Portuguese>Separar item</Portuguese>
|
||||
<Italian>Stacca l'oggetto</Italian>
|
||||
<Hungarian>Tárgy lecsatolása</Hungarian>
|
||||
<Russian>Отсоединить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_IrStrobe_Attached">
|
||||
<English>IR Strobe Attached</English>
|
||||
<German>IR-Stroboskop befestigt</German>
|
||||
<Spanish>Marcador IR acoplado</Spanish>
|
||||
<Polish>Przyczepiono stroboskop IR</Polish>
|
||||
<French>Strobe IR attaché</French>
|
||||
<Czech>IR Značkovač Připnutý</Czech>
|
||||
<Portuguese>Marcador IV Acoplado</Portuguese>
|
||||
<Italian>Strobo IR attaccata</Italian>
|
||||
<Hungarian>Infravörös jeladó hozzácsatolva</Hungarian>
|
||||
<Russian>ИК строб присоединён</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_IrStrobe_Detached">
|
||||
<English>IR Strobe Detached</English>
|
||||
<German>IR-Stroboskop entfernt</German>
|
||||
<Spanish>Marcador IR quitado</Spanish>
|
||||
<Polish>Odczepiono stroboskop IR</Polish>
|
||||
<French>Strobe IR détaché</French>
|
||||
<Czech>IR Značkovač Odepnutý</Czech>
|
||||
<Portuguese>Marcador IV Separado</Portuguese>
|
||||
<Italian>Strobo IR staccata</Italian>
|
||||
<Hungarian>Infravörös jeladó lecsatolva</Hungarian>
|
||||
<Russian>ИК строб отсоединён</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_IrGrenade_Attached">
|
||||
<English>IR Grenade Attached</English>
|
||||
<German>IR-Granate befestigt</German>
|
||||
<Spanish>Granada IR acoplada</Spanish>
|
||||
<Polish>Przyczepiono granat IR</Polish>
|
||||
<French>Grenade IR attachée</French>
|
||||
<Czech>IR Granát Připnutý</Czech>
|
||||
<Portuguese>Granada IV Acoplada</Portuguese>
|
||||
<Italian>Granata IR attaccata</Italian>
|
||||
<Hungarian>Infravörös gránát hozzácsatolva</Hungarian>
|
||||
<Russian>ИК граната присоединена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_IrGrenade_Detached">
|
||||
<English>IR Grenade Detached</English>
|
||||
<German>IR-Granate entfernt</German>
|
||||
<Spanish>Granada IR quitada</Spanish>
|
||||
<Polish>Odczepiono granat IR</Polish>
|
||||
<French>Grenade IR détachée</French>
|
||||
<Czech>IR Granát Odepnutý</Czech>
|
||||
<Portuguese>Granada IV Separada</Portuguese>
|
||||
<Italian>Granata IR staccata</Italian>
|
||||
<Hungarian>Infravörös gránát lecsatolva</Hungarian>
|
||||
<Russian>ИК граната отсоединена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_Chemlight_Attached">
|
||||
<English>Chemlight Attached</English>
|
||||
<German>Leuchtstab befestigt</German>
|
||||
<Spanish>Barra de luz acoplada</Spanish>
|
||||
<Polish>Przyczepiono światło chemiczne</Polish>
|
||||
<French>Chemlight attaché</French>
|
||||
<Czech>Chemické světlo Připnuto</Czech>
|
||||
<Portuguese>Chemlight Acoplada</Portuguese>
|
||||
<Italian>Chemlight attaccata</Italian>
|
||||
<Hungarian>Chemlight hozzácsatolva</Hungarian>
|
||||
<Russian>Химсвет присоединён</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_Chemlight_Detached">
|
||||
<English>Chemlight Detached</English>
|
||||
<German>Leuchtstab entfernt</German>
|
||||
<Spanish>Barra de luz quitada</Spanish>
|
||||
<Polish>Odczepiono światło chemiczne</Polish>
|
||||
<French>Chemlight détaché</French>
|
||||
<Czech>Chemické světlo Odepnuto</Czech>
|
||||
<Portuguese>Chemlight Separada</Portuguese>
|
||||
<Italian>Chemlight staccata</Italian>
|
||||
<Hungarian>Chemlight hozzácsatolva</Hungarian>
|
||||
<Russian>Химсвет отсоединён</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Attach_Inventory_Full">
|
||||
<English>No inventory space</English>
|
||||
<German>Kein Platz im Inventar</German>
|
||||
<Spanish>Sin espacio en inventario</Spanish>
|
||||
<Polish>Brak miejsca w ekwipunku</Polish>
|
||||
<French>Pas de place dans l'inventaire</French>
|
||||
<Czech>Není místo v inventáři</Czech>
|
||||
<Portuguese>Sem espaço no inventário</Portuguese>
|
||||
<Italian>Non hai più spazio</Italian>
|
||||
<Hungarian>Nincs több hely</Hungarian>
|
||||
<Russian>В инвентаре нет места</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_IrStrobe_Name">
|
||||
<English>IR Strobe</English>
|
||||
<German>IR-Stroboskop</German>
|
||||
<Spanish>Marcador IR</Spanish>
|
||||
<Polish>Stroboskop IR</Polish>
|
||||
<French>Strobe IR</French>
|
||||
<Czech>IR Značkovač</Czech>
|
||||
<Portuguese>Marcador IV</Portuguese>
|
||||
<Italian>Strobo IR</Italian>
|
||||
<Hungarian>Infravörös jeladó</Hungarian>
|
||||
<Russian>ИК строб</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_IrStrobe_Description">
|
||||
<English>IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs.</English>
|
||||
<German>Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist.</German>
|
||||
<Polish>Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.</Polish>
|
||||
<Spanish>El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. </Spanish>
|
||||
<French>Le Strobe IR permet de signaler votre position grace à un clignotement visible par des JVN.</French>
|
||||
<Czech>IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru.</Czech>
|
||||
<Portuguese>O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna.</Portuguese>
|
||||
<Italian>La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni.</Italian>
|
||||
<Hungarian>Az infravörös jeladóval megjelölheted a helyzetedet úgy, hogy annak pulzáló fénye csak éjjellátó készülékkel látható.</Hungarian>
|
||||
<Russian>ИК строб позволяет сигнализировать свое местоположение через пульсирующий маяк, видимый только через ПНВ.</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -1,80 +0,0 @@
|
||||
class CfgPatches {
|
||||
class AGM_Backblast {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"commy2", "KoffeinFlummi"};
|
||||
authorUrl = "https://github.com/commy2/";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_Backblast {
|
||||
class AGM_Backblast {
|
||||
file = "\AGM_Backblast\functions";
|
||||
class getDistance;
|
||||
class launcherBackblast;
|
||||
class tankDangerZone;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_FiredNear_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_FiredNear_LauncherBackblast {
|
||||
FiredNear = "if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 3 >> 'AGM_Backblast_Damage') > 0}) then {_this call AGM_Backblast_fnc_launcherBackblast}";
|
||||
};
|
||||
class AGM_FiredNear_TankDangerZone {
|
||||
FiredNear = "if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 3 >> 'AGM_DangerZone_Damage') > 0}) then {_this call AGM_Backblast_fnc_tankDangerZone}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgWeapons {
|
||||
|
||||
class LauncherCore;
|
||||
class Launcher: LauncherCore {
|
||||
AGM_Backblast_Angle = 60;
|
||||
AGM_Backblast_Range = 10;
|
||||
AGM_Backblast_Damage = 0.7;
|
||||
};
|
||||
class Launcher_Base_F: Launcher {};
|
||||
|
||||
class launch_Titan_base: Launcher_Base_F {
|
||||
AGM_Backblast_Angle = 40;
|
||||
AGM_Backblast_Range = 8;
|
||||
AGM_Backblast_Damage = 0.5;
|
||||
};
|
||||
class launch_Titan_short_base: launch_Titan_base {
|
||||
AGM_Backblast_Angle = 40;
|
||||
AGM_Backblast_Range = 8;
|
||||
AGM_Backblast_Damage = 0.5;
|
||||
};
|
||||
|
||||
class launch_NLAW_F: Launcher_Base_F {
|
||||
AGM_Backblast_Angle = 40;
|
||||
AGM_Backblast_Range = 5;
|
||||
AGM_Backblast_Damage = 0.6;
|
||||
};
|
||||
class launch_RPG32_F: Launcher_Base_F {
|
||||
AGM_Backblast_Angle = 60;
|
||||
AGM_Backblast_Range = 15;
|
||||
AGM_Backblast_Damage = 0.7;
|
||||
};
|
||||
|
||||
class CannonCore;
|
||||
class cannon_120mm: CannonCore {
|
||||
AGM_DangerZone_Angle = 90;
|
||||
AGM_DangerZone_Range = 50;
|
||||
AGM_DangerZone_Damage = 0.85;
|
||||
};
|
||||
class mortar_155mm_AMOS: CannonCore {
|
||||
AGM_DangerZone_Angle = 90;
|
||||
AGM_DangerZone_Range = 60;
|
||||
AGM_DangerZone_Damage = 1;
|
||||
};
|
||||
};
|
@ -1,30 +0,0 @@
|
||||
// by commy2
|
||||
|
||||
private ["_position", "_direction", "_maxDistance", "_distance", "_iteration", "_laser", "_line"];
|
||||
|
||||
_position = + _this select 0;
|
||||
_direction = + _this select 1;
|
||||
_maxDistance = _this select 2;
|
||||
|
||||
_distance = _maxDistance;
|
||||
_iteration = _distance;
|
||||
_laser = [];
|
||||
_line = [_position, _laser];
|
||||
|
||||
while {
|
||||
_iteration > 0.1
|
||||
} do {
|
||||
_iteration = _iteration / 2;
|
||||
|
||||
_laser set [0, (_position select 0) - _distance * (_direction select 0)];
|
||||
_laser set [1, (_position select 1) - _distance * (_direction select 1)];
|
||||
_laser set [2, (_position select 2) - _distance * (_direction select 2)];
|
||||
|
||||
_intersections = {
|
||||
_x isKindOf "Static" || {_x isKindOf "AllVehicles"}
|
||||
} count (lineIntersectsWith _line);
|
||||
|
||||
_distance = _distance + ([1, -1] select (_intersections > 0)) * _iteration;
|
||||
};
|
||||
|
||||
if (_distance > _maxDistance) then {999} else {_distance}
|
@ -1,67 +0,0 @@
|
||||
// by commy2
|
||||
|
||||
_unit = _this select 0;
|
||||
_firer = _this select 1;
|
||||
_distance = _this select 2;
|
||||
_weapon = _this select 3;
|
||||
|
||||
if (vehicle _unit != _unit || {!([_firer] call AGM_Core_fnc_isPlayer)}) exitWith {};
|
||||
|
||||
_backblastAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_Backblast_Angle") / 2;
|
||||
_backblastRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_Backblast_Range");
|
||||
_backblastDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_Backblast_Damage");
|
||||
|
||||
_position = eyePos _firer;
|
||||
_direction = _firer weaponDirection currentWeapon _firer;
|
||||
|
||||
if (_unit == _firer) then {
|
||||
_distance = [_position, _direction, _backblastRange] call AGM_Backblast_fnc_getDistance;
|
||||
|
||||
if (_distance < _backblastRange) then {
|
||||
_alpha = sqrt (1 - _distance / _backblastRange);
|
||||
_beta = sqrt 0.5;
|
||||
|
||||
_damage = 2 * _alpha * _beta * _backblastDamage;
|
||||
[_damage * 100] call BIS_fnc_bloodEffect;
|
||||
|
||||
if (isClass (configFile >> "CfgPatches" >> "AGM_Medical")) then {
|
||||
[_unit, "HitBody", ([_unit, "", ((_unit getHitPointDamage "HitBody") + _damage), objNull, objNull] call AGM_Medical_fnc_handleDamage)] call AGM_Medical_fnc_setHitPointDamage;
|
||||
} else {
|
||||
_unit setDamage (damage _unit + _damage);
|
||||
};
|
||||
};
|
||||
} else {
|
||||
_direction = [0, 0, 0] vectorDiff _direction;
|
||||
|
||||
_azimuth = (_direction select 0) atan2 (_direction select 1);
|
||||
_inclination = asin (_direction select 2);
|
||||
|
||||
_relativePosition = eyePos _unit;
|
||||
_relativeDirection = _relativePosition vectorDiff _position;
|
||||
|
||||
_relativeAzimuth = (_relativeDirection select 0) atan2 (_relativeDirection select 1);
|
||||
_relativeInclination = asin (_relativeDirection select 2);
|
||||
|
||||
_angle = sqrt ((_relativeAzimuth - _azimuth) ^ 2 + (_relativeInclination - _inclination) ^ 2);
|
||||
_distance = vectorMagnitude _relativeDirection;
|
||||
|
||||
_line = [_position, _relativePosition];
|
||||
|
||||
if (_angle < _backblastAngle && {_distance < _backblastRange} && {!lineIntersects _line} && {!terrainIntersectASL _line}) then {
|
||||
_alpha = sqrt (1 - _distance / _backblastRange);
|
||||
_beta = sqrt (1 - _angle / _backblastAngle);
|
||||
|
||||
_damage = 2 * _alpha * _beta * _backblastDamage;
|
||||
if (_unit == AGM_player) then {[_damage * 100] call BIS_fnc_bloodEffect};
|
||||
|
||||
if (isClass (configFile >> "CfgPatches" >> "AGM_Medical")) then {
|
||||
[_unit, "HitBody", ([_unit, "", ((_unit getHitPointDamage "HitBody") + _damage), objNull, objNull] call AGM_Medical_fnc_handleDamage)] call AGM_Medical_fnc_setHitPointDamage;
|
||||
_unit spawn {
|
||||
sleep 0.5;
|
||||
[_this, "", 0, objNull, objNull] call AGM_Medical_fnc_handleDamage;
|
||||
};
|
||||
} else {
|
||||
_unit setDamage (damage _unit + _damage);
|
||||
};
|
||||
};
|
||||
};
|
@ -1,51 +0,0 @@
|
||||
// by commy2
|
||||
|
||||
#define BARREL_MUZZLE "usti hlavne"
|
||||
|
||||
_unit = _this select 0;
|
||||
_vehicle = vehicle (_this select 1);
|
||||
_distance = _this select 2;
|
||||
_weapon = _this select 3;
|
||||
|
||||
if (vehicle _unit != _unit || {!([gunner _firer] call AGM_Core_fnc_isPlayer)}) exitWith {};
|
||||
|
||||
_dangerZoneAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_DangerZone_Angle") / 2;
|
||||
_dangerZoneRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_DangerZone_Range");
|
||||
_dangerZoneDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_DangerZone_Damage");
|
||||
|
||||
_position = ATLToASL (_vehicle modelToWorld (_vehicle selectionPosition BARREL_MUZZLE));
|
||||
_direction = _vehicle weaponDirection _weapon;
|
||||
|
||||
if (_unit != _vehicle) then {
|
||||
_azimuth = (_direction select 0) atan2 (_direction select 1);
|
||||
_inclination = asin (_direction select 2);
|
||||
|
||||
_relativePosition = eyePos _unit;
|
||||
_relativeDirection = _relativePosition vectorDiff _position;
|
||||
|
||||
_relativeAzimuth = (_relativeDirection select 0) atan2 (_relativeDirection select 1);
|
||||
_relativeInclination = asin (_relativeDirection select 2);
|
||||
|
||||
_angle = sqrt ((_relativeAzimuth - _azimuth) ^ 2 + (_relativeInclination - _inclination) ^ 2);
|
||||
_distance = vectorMagnitude _relativeDirection;
|
||||
|
||||
_line = [_position, _relativePosition];
|
||||
|
||||
if (_angle < _dangerZoneAngle && {_distance < _dangerZoneRange} && {!lineIntersects (_line + [_vehicle])} && {!terrainIntersectASL _line}) then {
|
||||
_alpha = sqrt (1 - _distance / _dangerZoneRange);
|
||||
_beta = sqrt (1 - _angle / _dangerZoneAngle);
|
||||
|
||||
_damage = 2 * _alpha * _beta * _dangerZoneDamage;
|
||||
if (_unit == AGM_player) then {[_damage * 100] call BIS_fnc_bloodEffect};
|
||||
|
||||
if (isClass (configFile >> "CfgPatches" >> "AGM_Medical")) then {
|
||||
[_unit, "HitBody", ([_unit, "", ((_unit getHitPointDamage "HitBody") + _damage), objNull, objNull] call AGM_Medical_fnc_handleDamage)] call AGM_Medical_fnc_setHitPointDamage;
|
||||
_unit spawn {
|
||||
sleep 0.5;
|
||||
[_this, "", 0, objNull, objNull] call AGM_Medical_fnc_handleDamage;
|
||||
};
|
||||
} else {
|
||||
_unit setDamage (damage _unit + _damage);
|
||||
};
|
||||
};
|
||||
};
|
@ -1,62 +0,0 @@
|
||||
class CfgPatches {
|
||||
class AGM_Backpacks {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core, AGM_Interaction};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"bux", "commy2"};
|
||||
authorUrl = "https://github.com/commy2/";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_Backpacks {
|
||||
class AGM_Backpacks {
|
||||
file = "\AGM_Backpacks\functions";
|
||||
class getBackpackAssignedUnit;
|
||||
class isBackpack;
|
||||
class openInventory;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_InventoryOpened_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Backpacks_openInventory {
|
||||
clientInventoryOpened = "if (_this select 0 == AGM_player) then {_this call AGM_Backpacks_fnc_openInventory};";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class AGM_SelfActions {
|
||||
class AGM_Equipment {
|
||||
class AGM_LockBackpack {
|
||||
displayName = "$STR_AGM_Backpacks_LockBackpack";
|
||||
condition = "[backpackContainer _player] call AGM_Backpacks_fnc_isBackpack && {!((backpackContainer _player) getVariable ['AGM_LockedInventory', false])}";
|
||||
statement = "(backpackContainer _player) setVariable ['AGM_LockedInventory', true, true]";
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
icon = ""; // @todo
|
||||
hotkey = "L";
|
||||
enableInside = 1;
|
||||
};
|
||||
class AGM_UnlockBackpack {
|
||||
displayName = "$STR_AGM_Backpacks_UnlockBackpack";
|
||||
condition = "[backpackContainer _player] call AGM_Backpacks_fnc_isBackpack && {(backpackContainer _player) getVariable ['AGM_LockedInventory', false]}";
|
||||
statement = "(backpackContainer _player) setVariable ['AGM_LockedInventory', false, true]";
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
icon = ""; // @todo
|
||||
hotkey = "L";
|
||||
enableInside = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,21 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Returns the unit that has the given backpack object equipped.
|
||||
*
|
||||
* Argument:
|
||||
* 0: A backpack object (Object)
|
||||
*
|
||||
* Return value:
|
||||
* Unit that has the backpack equipped. (Object)
|
||||
*/
|
||||
|
||||
private ["_backpack", "_unit"];
|
||||
|
||||
_backpack = _this select 0;
|
||||
|
||||
_unit = objNull;
|
||||
{
|
||||
if (backpackContainer _x == _backpack) exitWith {_unit = _x};
|
||||
} forEach (allUnits + allDeadMen);
|
||||
_unit
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Check if the given backpack is an actual backpack that can store items. Parachute backpacks will return false for example.
|
||||
*
|
||||
* Argument:
|
||||
* 0: A backpack (Object or String)
|
||||
*
|
||||
* Return value:
|
||||
* Boolean (Bool)
|
||||
*/
|
||||
|
||||
private ["_backpack", "_config"];
|
||||
|
||||
_backpack = _this select 0;
|
||||
|
||||
if (typeName _backpack == "OBJECT") then {
|
||||
_backpack = typeOf _backpack;
|
||||
};
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> _backpack;
|
||||
|
||||
getText (_config >> "vehicleClass") == "backpacks" && {getNumber (_config >> "maximumLoad") > 0}
|
@ -1,46 +0,0 @@
|
||||
/*
|
||||
* Author: bux, commy2
|
||||
*
|
||||
* Handle the open inventory event. Don't open the inventory if it's locked and display message.
|
||||
*
|
||||
* Argument:
|
||||
* Input from "InventoryOpened" eventhandler
|
||||
*
|
||||
* Return value:
|
||||
* Don't open the inventory dialog? (Bool)
|
||||
*/
|
||||
|
||||
private ["_target", "_isBackpack", "_isLocked", "_return"];
|
||||
|
||||
_target = _this select 1;
|
||||
|
||||
_isBackpack = [_target] call AGM_Backpacks_fnc_isBackpack;
|
||||
_isLocked = _target getVariable ["AGM_LockedInventory", false];
|
||||
|
||||
_return = false;
|
||||
if (_isBackpack) then {
|
||||
// target is a backpack
|
||||
private "_unit";
|
||||
_unit = [_target] call AGM_Backpacks_fnc_getBackpackAssignedUnit;
|
||||
|
||||
if (!alive _unit || {_unit getVariable ["AGM_isUnconscious", false]}) exitWith {};
|
||||
|
||||
if (_isLocked) then {
|
||||
// target is a locked backpack
|
||||
[format [localize "STR_AGM_Backpacks_BackpackLocked", [_unit] call AGM_Core_fnc_getName]] call AGM_Core_fnc_displayTextStructured;
|
||||
_return = true;
|
||||
} else {
|
||||
// target is a not-locked backpack
|
||||
if (_unit getVariable ["AGM_LockedInventory", false]) then {
|
||||
[localize "STR_AGM_Backpacks_InventoryLocked"] call AGM_Core_fnc_displayTextStructured;
|
||||
_return = true;
|
||||
};
|
||||
};
|
||||
} else {
|
||||
// target is not a backpack
|
||||
if (_isLocked) then {
|
||||
[localize "STR_AGM_Backpacks_InventoryLocked"] call AGM_Core_fnc_displayTextStructured;
|
||||
_return = true;
|
||||
};
|
||||
};
|
||||
_return
|
@ -1,70 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-21 -->
|
||||
<Project name="AGM">
|
||||
<Package name="Backpacks">
|
||||
<Key ID="STR_AGM_Backpacks_BackpackVentralTake">
|
||||
<English>Take (Ventral)</English>
|
||||
<German>Aufnehmen (Am Bauch)</German>
|
||||
<Spanish>Coger (Mochila delantera)</Spanish>
|
||||
<Polish>Załóż (brzuch)</Polish>
|
||||
<Czech>Vzít (ventrální)</Czech>
|
||||
<French>Prendre (Ventral)</French>
|
||||
<Russian>Взять рюкзак (передний)</Russian>
|
||||
<Hungarian>Felvétel (előre)</Hungarian>
|
||||
<Portuguese>Pegar (Mochila Ventral)</Portuguese>
|
||||
<Italian>Prendi</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Backpacks_BackpackVentralPut">
|
||||
<English>Take Off Backpack</English>
|
||||
<German>Rucksack ablegen</German>
|
||||
<Spanish>Dejar mochila</Spanish>
|
||||
<Polish>Zdejmij (brzuch)</Polish>
|
||||
<Czech>Odložit batoh</Czech>
|
||||
<French>Enlever (Ventral)</French>
|
||||
<Russian>Снять рюкзак (передний)</Russian>
|
||||
<Hungarian>Táska levétele</Hungarian>
|
||||
<Portuguese>Retirar Mochila</Portuguese>
|
||||
<Italian>Togliere zaino</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Backpacks_LockBackpack">
|
||||
<English>Lock Backpack</English>
|
||||
<German>Rucksack verschließen</German>
|
||||
<French>Verrouiller le sac à dos</French>
|
||||
<Spanish>Bloquear mochila</Spanish>
|
||||
<Czech>Zamknout batoh</Czech>
|
||||
<Polish>Zablokuj plecak</Polish>
|
||||
<Hungarian>Táska zárolása</Hungarian>
|
||||
<Russian>Запереть рюкзак</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Backpacks_UnlockBackpack">
|
||||
<English>Unlock Backpack</English>
|
||||
<German>Rucksack aufschließen</German>
|
||||
<French>Déverouiller le sac à dos</French>
|
||||
<Spanish>Desbloquear mochila</Spanish>
|
||||
<Czech>Odemknout batoh</Czech>
|
||||
<Polish>Odblokuj plecak</Polish>
|
||||
<Hungarian>Táska nyitása</Hungarian>
|
||||
<Russian>Отпереть рюкзак</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Backpacks_BackpackLocked">
|
||||
<English>Backpack of %1 is locked</English>
|
||||
<German>Der Rucksack von %1 ist verschlossen</German>
|
||||
<French>Le sac à dos de %1 est verroullé</French>
|
||||
<Spanish>La mochila de %1 está bloqueada</Spanish>
|
||||
<Czech>%1 má zamčený batoh</Czech>
|
||||
<Polish>Plecak %1 jest zablokowany</Polish>
|
||||
<Hungarian>%1 táskája zárolva</Hungarian>
|
||||
<Russian>Рюкзак %1 заперт</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Backpacks_InventoryLocked">
|
||||
<English>Inventory is locked</English>
|
||||
<German>Das Inventar ist verschlossen</German>
|
||||
<French>L'inventaire est verrouillé</French>
|
||||
<Spanish>Inventario bloqueado</Spanish>
|
||||
<Czech>Inventář je zamčený</Czech>
|
||||
<Polish>Ekwipunek jest zablokowany</Polish>
|
||||
<Hungarian>Felszerelés zárolt</Hungarian>
|
||||
<Russian>Инвентарь заперт</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -1,294 +0,0 @@
|
||||
|
||||
class VestItem;
|
||||
class Vest_Camo_Base: ItemCore {
|
||||
class ItemInfo: VestItem {
|
||||
/*containerClass = "Supply0";
|
||||
mass = 0;
|
||||
armor = 0;
|
||||
passThrough = 1;*/
|
||||
};
|
||||
};
|
||||
class Vest_NoCamo_Base: ItemCore {
|
||||
class ItemInfo: VestItem {
|
||||
/*containerClass = "Supply0";
|
||||
mass = 0;
|
||||
armor = 0;
|
||||
passThrough = 1;*/
|
||||
};
|
||||
};
|
||||
|
||||
// belts
|
||||
class V_Rangemaster_belt: Vest_NoCamo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply40";
|
||||
mass = 10;
|
||||
armor = 0;
|
||||
passThrough = 1;*/
|
||||
};
|
||||
};
|
||||
|
||||
// bandolliers
|
||||
class V_BandollierB_khk: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply80";
|
||||
mass = 15;
|
||||
armor = 0;*/
|
||||
passThrough = 0.85; //1;
|
||||
};
|
||||
};
|
||||
/*class V_BandollierB_cbr: V_BandollierB_khk {
|
||||
class ItemInfo: ItemInfo {};
|
||||
};
|
||||
class V_BandollierB_rgr: V_BandollierB_khk {
|
||||
class ItemInfo: ItemInfo {};
|
||||
};
|
||||
class V_BandollierB_blk: V_BandollierB_khk {
|
||||
class ItemInfo: ItemInfo {};
|
||||
};
|
||||
class V_BandollierB_oli: V_BandollierB_khk {
|
||||
class ItemInfo: ItemInfo {};
|
||||
};*/
|
||||
|
||||
// plate carriers
|
||||
class V_PlateCarrier1_rgr: Vest_NoCamo_Base { // lite
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply140";
|
||||
mass = 80;*/
|
||||
armor = 8; //20;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrier2_rgr: V_PlateCarrier1_rgr { // heavy
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply140";
|
||||
mass = 100;*/
|
||||
armor = 12; //30;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrier3_rgr: Vest_NoCamo_Base { // heavy (us)
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply140";
|
||||
mass = 100;*/
|
||||
armor = 12; //30;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrierGL_rgr: Vest_NoCamo_Base { // lite (gl)
|
||||
class ItemInfo: ItemInfo {
|
||||
containerClass = "Supply160"; //"Supply140";
|
||||
/*mass = 100;*/
|
||||
armor = 8; //100;
|
||||
passThrough = 0.75; //0.7;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrier1_blk: Vest_Camo_Base { // heavy (black)
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply140";*/
|
||||
mass = 100; //80;
|
||||
armor = 12; //20;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrierSpec_rgr: Vest_NoCamo_Base { // lite (special)
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply100";
|
||||
mass = 120;*/
|
||||
armor = 16; //40;
|
||||
passThrough = 0.75; //0.1;
|
||||
};
|
||||
};
|
||||
|
||||
// chestrigs
|
||||
/*class V_Chestrig_khk: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
containerClass = "Supply140";
|
||||
mass = 20;
|
||||
armor = 0;
|
||||
passThrough = 1;
|
||||
};
|
||||
};
|
||||
class V_Chestrig_rgr: V_Chestrig_khk {};
|
||||
class V_Chestrig_blk: V_Chestrig_khk {};
|
||||
class V_Chestrig_oli: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
containerClass = "Supply140";
|
||||
mass = 20;
|
||||
armor = 0;
|
||||
passThrough = 1;
|
||||
};
|
||||
};*/
|
||||
|
||||
// tactical vests
|
||||
class V_TacVest_khk: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply100";
|
||||
mass = 40;*/
|
||||
armor = 8; //20;
|
||||
/*passThrough = 1;*/
|
||||
};
|
||||
};
|
||||
class V_TacVest_brn: V_TacVest_khk {};
|
||||
class V_TacVest_oli: V_TacVest_khk {};
|
||||
class V_TacVest_blk: V_TacVest_khk {};
|
||||
class V_TacVest_camo: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply100";
|
||||
mass = 40;*/
|
||||
armor = 8; //20;
|
||||
/*passThrough = 1;*/
|
||||
};
|
||||
};
|
||||
class V_TacVest_blk_POLICE: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply100";*/
|
||||
mass = 40; //60;
|
||||
armor = 8; //100;
|
||||
passThrough = 1; //0.7;
|
||||
};
|
||||
};
|
||||
class V_TacVestIR_blk: Vest_NoCamo_Base { // raven vest
|
||||
class ItemInfo: VestItem {
|
||||
/*containerClass = "Supply100";
|
||||
mass = 50;*/
|
||||
armor = 8; //20;
|
||||
passThrough = 0.85; //0.5;
|
||||
};
|
||||
};
|
||||
class V_TacVestCamo_khk: Vest_Camo_Base {
|
||||
class ItemInfo: VestItem {
|
||||
/*containerClass = "Supply100";
|
||||
mass = 40;*/
|
||||
armor = 8; //20;
|
||||
/*passThrough = 1;*/
|
||||
};
|
||||
};
|
||||
|
||||
// harnesses
|
||||
class V_HarnessO_brn: Vest_NoCamo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply160";
|
||||
mass = 30;
|
||||
armor = 0;*/
|
||||
passThrough = 0.85; //0.5;
|
||||
};
|
||||
};
|
||||
class V_HarnessOGL_brn: Vest_NoCamo_Base { // gl
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply120";
|
||||
mass = 20;
|
||||
armor = 0;*/
|
||||
passThrough = 0.85; //0.5;
|
||||
};
|
||||
};
|
||||
class V_HarnessO_gry: V_HarnessO_brn {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply160";
|
||||
mass = 30;
|
||||
armor = 0;*/
|
||||
passThrough = 0.85; //0.5;
|
||||
};
|
||||
};
|
||||
class V_HarnessOGL_gry: V_HarnessO_gry { // gl
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply120";
|
||||
mass = 20;
|
||||
armor = 0;*/
|
||||
passThrough = 0.85; //0.5;
|
||||
};
|
||||
};
|
||||
class V_HarnessOSpec_brn: V_HarnessO_brn {
|
||||
class ItemInfo: VestItem {
|
||||
/*containerClass = "Supply160";
|
||||
mass = 30;
|
||||
armor = 0;*/
|
||||
passThrough = 0.85; //0.5;
|
||||
};
|
||||
};
|
||||
class V_HarnessOSpec_gry: V_HarnessO_gry {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply160";
|
||||
mass = 30;
|
||||
armor = 0;*/
|
||||
passThrough = 0.85; //0.5;
|
||||
};
|
||||
};
|
||||
|
||||
// indep plate carriers
|
||||
class V_PlateCarrierIA1_dgtl: Vest_NoCamo_Base { // lite
|
||||
class ItemInfo: VestItem {
|
||||
/*containerClass = "Supply120";
|
||||
mass = 60;*/
|
||||
armor = 8; //20;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrierIA2_dgtl: V_PlateCarrierIA1_dgtl { // heavy
|
||||
class ItemInfo: VestItem {
|
||||
/*containerClass = "Supply120";
|
||||
mass = 80;*/
|
||||
armor = 12; //30;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrierIAGL_dgtl: V_PlateCarrierIA2_dgtl { // heavy (gl)
|
||||
class ItemInfo: VestItem {
|
||||
containerClass = "Supply140"; //"Supply120";
|
||||
mass = 100; //80;
|
||||
armor = 12; //100;
|
||||
passThrough = 0.75; //0.7;
|
||||
};
|
||||
};
|
||||
|
||||
// rebreather
|
||||
/*class V_RebreatherB: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
containerClass = "Supply0";
|
||||
mass = 80;
|
||||
armor = 20;
|
||||
passThrough = 1;
|
||||
};
|
||||
};
|
||||
class V_RebreatherIR: V_RebreatherB {};
|
||||
class V_RebreatherIA: V_RebreatherB {};*/
|
||||
|
||||
// more plate carriers
|
||||
class V_PlateCarrier_Kerry: V_PlateCarrier1_rgr { // lighter
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply140";
|
||||
mass = 80;*/
|
||||
armor = 8; //30;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrierL_CTRG: V_PlateCarrier1_rgr { // lite
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply140";
|
||||
mass = 80;*/
|
||||
armor = 8; //20;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
class V_PlateCarrierH_CTRG: V_PlateCarrier2_rgr { // heavy
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply140";
|
||||
mass = 100;*/
|
||||
armor = 12; //30;
|
||||
passThrough = 0.75; //0.5;
|
||||
};
|
||||
};
|
||||
|
||||
// another tactical vest
|
||||
class V_I_G_resistanceLeader_F: V_TacVest_camo {
|
||||
class ItemInfo: ItemInfo {};
|
||||
};
|
||||
|
||||
// press vest
|
||||
class V_Press_F: Vest_Camo_Base {
|
||||
class ItemInfo: ItemInfo {
|
||||
/*containerClass = "Supply40";
|
||||
mass = 20;*/
|
||||
armor = 8; //0; ?
|
||||
/*passThrough = 1;*/
|
||||
};
|
||||
};
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +0,0 @@
|
||||
// by commy2
|
||||
|
||||
_wall = _this select 0;
|
||||
|
||||
if (local _wall) then {
|
||||
_paper = "UserTexture_1x2_F" createVehicle position _wall;
|
||||
|
||||
_paper attachTo [_wall, [0,-0.02,0.6]];
|
||||
_paper setDir getDir _wall;
|
||||
|
||||
_paper setObjectTextureGlobal [0, "\AGM_Ballistics\textures\target_ca.paa"];
|
||||
};
|
@ -1,551 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-15 -->
|
||||
<Project name="AGM">
|
||||
<Package name="Ballistics">
|
||||
<!-- MX -->
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_Tracer_DimName">
|
||||
<English>6.5mm 30Rnd Tracer IR-DIM Mag</English>
|
||||
<Hungarian>6,5 mm Nyomjelző IR-DIM 30-as Tár</Hungarian>
|
||||
<German>6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM</German>
|
||||
<Spanish>Cargador de 30 balas trazadoras IR-DIM de 6,5mm</Spanish>
|
||||
<French>Ch. 6,5mm 30Cps Traçantes IR-DIM</French>
|
||||
<Polish>Magazynek 6,5mm 30rd Smugacz IR-DIM</Polish>
|
||||
<Czech>6.5mm 30ks Svítící IR-DIM Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis traçantes IR-DIM de 6,5mm</Portuguese>
|
||||
<Italian>Caricatore 6.5mm 30Rnd Traccianti IR-DIM</Italian>
|
||||
<Russian>Магазин из 30-и 6.5 мм трассирующих под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_Tracer_DimNameShort">
|
||||
<English>6.5mm IR-DIM</English>
|
||||
<Hungarian>6,5 mm IR-DIM</Hungarian>
|
||||
<German>6,5mm IR-DIM</German>
|
||||
<Spanish>6,5mm IR-DIM</Spanish>
|
||||
<French>6,5mm IR-DIM</French>
|
||||
<Polish>6,5mm IR-DIM</Polish>
|
||||
<Czech>6.5mm IR-DIM</Czech>
|
||||
<Portuguese>6,5mm IR-DIM</Portuguese>
|
||||
<Italian>6.5 IR-DIM</Italian>
|
||||
<Russian>6.5 мм трассирущие под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_Tracer_DimDescription">
|
||||
<English>Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL</English>
|
||||
<Hungarian>Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL</Hungarian>
|
||||
<German>Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL</German>
|
||||
<Spanish>Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL</Spanish>
|
||||
<French>Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL</French>
|
||||
<Polish>Kaliber: 6,5 x 39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL</Polish>
|
||||
<Czech>Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL</Czech>
|
||||
<Portuguese>Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL</Portuguese>
|
||||
<Italian>Calibro: 6.5x39 mm 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>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_SDName">
|
||||
<English>6.5mm 30Rnd SD Mag</English>
|
||||
<Hungarian>6,5 mm Hangtompítós 30-as Tár</Hungarian>
|
||||
<German>6,5 mm 30-Schuss-Magazin SD</German>
|
||||
<Spanish>Cargador de 30 balas SD de 6,5mm</Spanish>
|
||||
<French>Ch. 6,5mm 30Cps SD</French>
|
||||
<Polish>Magazynek 6,5mm 30rd SD</Polish>
|
||||
<Czech>6.5mm 30ks SD Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis SD de 6,5mm</Portuguese>
|
||||
<Italian>Caricatore 6.5mm 30Rnd Sil.</Italian>
|
||||
<Russian>Магазин из 30-и 6.5 мм дозвуковых</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_SDNameShort">
|
||||
<English>6.5mm SD</English>
|
||||
<Hungarian>6,5 mm Hangtompítós</Hungarian>
|
||||
<German>6,5mm SD</German>
|
||||
<Spanish>6,5mm SD</Spanish>
|
||||
<French>6,5mm SD</French>
|
||||
<Polish>6,5mm SD</Polish>
|
||||
<Czech>6.5mm SD</Czech>
|
||||
<Portuguese>6,5mm SD</Portuguese>
|
||||
<Italian>6.5mm Sil.</Italian>
|
||||
<Russian>6.5 мм дозвуковые</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_SDDescription">
|
||||
<English>Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL</English>
|
||||
<Hungarian>Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL</Hungarian>
|
||||
<German>Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL</German>
|
||||
<Spanish>Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL</Spanish>
|
||||
<French>Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL</French>
|
||||
<Polish>Kaliber: 6,5 x 39 mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL</Polish>
|
||||
<Czech>Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL</Czech>
|
||||
<Portuguese>Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL</Portuguese>
|
||||
<Italian>Calibro: 6.5x39 mm 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>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_APName">
|
||||
<English>6.5mm 30Rnd AP Mag</English>
|
||||
<Hungarian>6,5 mm Páncéltörő 30-as Tár</Hungarian>
|
||||
<German>6,5 mm 30-Schuss-Magazin AP</German>
|
||||
<Spanish>Cargador de 30 balas AP de 6,5mm</Spanish>
|
||||
<French>Ch. 6,5mm 30Cps AP</French>
|
||||
<Polish>Magazynek 6,5mm 30rd AP</Polish>
|
||||
<Czech>6.5mm 30ks AP Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis AP de 6,5mm</Portuguese>
|
||||
<Italian>Caricatore 6.5mm 30Rnd AP</Italian>
|
||||
<Russian>Магазин из 30-и 6.5 мм бронебойных</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_APNameShort">
|
||||
<English>6.5mm AP</English>
|
||||
<Hungarian>6,5 mm Páncéltörő</Hungarian>
|
||||
<German>6,5mm AP</German>
|
||||
<Spanish>6,5mm AP</Spanish>
|
||||
<French>6,5mm AP</French>
|
||||
<Polish>6,5mm AP</Polish>
|
||||
<Czech>6.5mm AP</Czech>
|
||||
<Portuguese>6,5mm AP</Portuguese>
|
||||
<Italian>6.5mm AP</Italian>
|
||||
<Russian>6.5 мм бронебойные</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_mag_APDescription">
|
||||
<English>Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL</English>
|
||||
<Hungarian>Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL</Hungarian>
|
||||
<German>Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL</German>
|
||||
<Spanish>Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL</Spanish>
|
||||
<French>Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL</French>
|
||||
<Polish>Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL</Polish>
|
||||
<Czech>Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL</Czech>
|
||||
<Portuguese>Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL</Portuguese>
|
||||
<Italian>Calibro: 6.5x39 mm 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>
|
||||
</Key>
|
||||
<!-- KATIBA -->
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_Tracer_DimName">
|
||||
<English>6.5mm 30Rnd Tracer IR-DIM Mag</English>
|
||||
<Hungarian>6,5mm IR-DIM Nyomjelző 30-as Tár</Hungarian>
|
||||
<German>6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM</German>
|
||||
<Spanish>Cargador de 30 balas trazadoras IR-DIM de 6,5mm</Spanish>
|
||||
<French>Ch. 6,5mm 30Cps Traçantes IR-DIM</French>
|
||||
<Polish>Magazynek 6,5mm 30rd Smugacz IR-DIM</Polish>
|
||||
<Czech>6.5mm 30ks Svítící IR-DIM Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis traçantes IR-DIM de 6,5mm</Portuguese>
|
||||
<Italian>Caricatore 6.5mm 30Rnd Traccianti IR-DIM</Italian>
|
||||
<Russian>Магазин из 30-и 6.5 мм трассирующих под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_Tracer_DimNameShort">
|
||||
<English>6.5mm IR-DIM</English>
|
||||
<Hungarian>6,5mm IR-DIM</Hungarian>
|
||||
<German>6,5mm IR-DIM</German>
|
||||
<Spanish>6,5mm IR-DIM</Spanish>
|
||||
<French>6,5mm IR-DIM</French>
|
||||
<Polish>6,5mm IR-DIM</Polish>
|
||||
<Czech>6.5mm IR-DIM</Czech>
|
||||
<Portuguese>6,5mm IR-DIM</Portuguese>
|
||||
<Italian>6.5mm IR-DIM</Italian>
|
||||
<Russian>6.5 мм трассирущие под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_Tracer_DimDescription">
|
||||
<English>Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba</English>
|
||||
<Hungarian>Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: Katiba</Hungarian>
|
||||
<German>Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba</German>
|
||||
<Spanish>Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba</Spanish>
|
||||
<French>Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba</French>
|
||||
<Polish>Kaliber: 6,5x39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: Katiba</Polish>
|
||||
<Czech>Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba</Czech>
|
||||
<Portuguese>Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba</Portuguese>
|
||||
<Italian>Calibro: 6.5x39 mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||
<Russian>Калибр: 6.5x39 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: Katiba</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_SDName">
|
||||
<English>6.5mm 30Rnd SD Mag</English>
|
||||
<Hungarian>6,5 mm Hangtompítós 30-as Tár</Hungarian>
|
||||
<German>6,5 mm 30-Schuss-Magazin SD</German>
|
||||
<Spanish>Cargador de 30 balas SD de 6,5mm</Spanish>
|
||||
<French>Ch. 6,5mm 30Cps SD</French>
|
||||
<Polish>Magazynek 6,5mm 30rd SD</Polish>
|
||||
<Czech>6.5mm 30ks SD Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis SD de 6,5mm</Portuguese>
|
||||
<Italian>Caricatore 6.5mm 30Rnd Sil.</Italian>
|
||||
<Russian>Магазин из 30-и 6.5 мм дозвуковых</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_SDNameShort">
|
||||
<English>6.5mm SD</English>
|
||||
<Hungarian>6,5 mm Hangtompítós</Hungarian>
|
||||
<German>6,5mm SD</German>
|
||||
<Spanish>6,5mm SD</Spanish>
|
||||
<French>6,5mm SD</French>
|
||||
<Polish>6,5mm SD</Polish>
|
||||
<Czech>6.5mm SD</Czech>
|
||||
<Portuguese>6,5mm SD</Portuguese>
|
||||
<Italian>6.5mm Sil.</Italian>
|
||||
<Russian>6.5 мм дозвуковые</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_SDDescription">
|
||||
<English>Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: Katiba</English>
|
||||
<Hungarian>Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: Katiba</Hungarian>
|
||||
<German>Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba</German>
|
||||
<Spanish>Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: Katiba</Spanish>
|
||||
<French>Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba</French>
|
||||
<Polish>Kaliber: 6,5 x 39 mm SD<br />Naboje: 30<br />Używane w: Katiba</Polish>
|
||||
<Czech>Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: Katiba</Czech>
|
||||
<Portuguese>Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: Katiba</Portuguese>
|
||||
<Italian>Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||
<Russian>Калибр: 6.5x39 мм дозвуковые<br />Патронов: 30<br />Применимы в: Katiba</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_APName">
|
||||
<English>6.5mm 30Rnd AP Mag</English>
|
||||
<Hungarian>6,5 mm Páncéltörő 30-as Tár</Hungarian>
|
||||
<German>6,5 mm 30-Schuss-Magazin AP</German>
|
||||
<Spanish>Cargador de 30 balas AP de 6,5mm</Spanish>
|
||||
<French>Ch. 6,5mm 30Cps AP</French>
|
||||
<Polish>Magazynek 6,5mm 30rd AP</Polish>
|
||||
<Czech>6.5mm 30ks AP Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis AP de 6,5mm</Portuguese>
|
||||
<Italian>Caricatore 6.5mm 30Rnd AP</Italian>
|
||||
<Russian>Магазин из 30-и 6.5 мм бронебойных</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_APNameShort">
|
||||
<English>6.5mm AP</English>
|
||||
<Hungarian>6,5 mm Páncéltörő</Hungarian>
|
||||
<German>6,5mm AP</German>
|
||||
<Spanish>6,5mm AP</Spanish>
|
||||
<French>6,5mm AP</French>
|
||||
<Polish>6,5mm AP</Polish>
|
||||
<Czech>6.5mm AP</Czech>
|
||||
<Portuguese>6,5mm AP</Portuguese>
|
||||
<Italian>6.5mm AP</Italian>
|
||||
<Russian>6.5 мм бронебойные</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_65x39_caseless_green_mag_APDescription">
|
||||
<English>Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: Katiba</English>
|
||||
<Hungarian>Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: Katiba</Hungarian>
|
||||
<German>Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba</German>
|
||||
<Spanish>Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: Katiba</Spanish>
|
||||
<French>Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba</French>
|
||||
<Polish>Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: Katiba</Polish>
|
||||
<Czech>Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: Katiba</Czech>
|
||||
<Portuguese>Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: Katiba</Portuguese>
|
||||
<Italian>Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: Katiba</Italian>
|
||||
<Russian>Калибр: 6.5x39 мм бронебойные<br />Патронов: 30<br />Применимы в: Katiba</Russian>
|
||||
</Key>
|
||||
<!-- 5.56x45mm -->
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_Tracer_DimName">
|
||||
<English>5.56mm 30rnd Tracer IR-DIM Mag</English>
|
||||
<Hungarian>5,56 mm Nyomjelző IR-DIM 30-as Tár</Hungarian>
|
||||
<German>5,56 mm 30-Schuss-Magazin Leuchtspur IR-DIM</German>
|
||||
<Spanish>Cargador de 30 balas trazadoras IR-DIM de 5,56mm</Spanish>
|
||||
<French>Ch. 5,56mm 30Cps Traçantes IR-DIM</French>
|
||||
<Polish>Magazynek 5,56mm 30rd Smugacz IR-DIM</Polish>
|
||||
<Czech>5.56mm 30ks Svítící IR-DIM Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis traçantes IR-DIM de 5,56mm</Portuguese>
|
||||
<Italian>Caricatore 5.56mm 30rnd Traccianti IR-DIM</Italian>
|
||||
<Russian>Магазин из 30-и 5.56 мм трассирующих под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_Tracer_DimNameShort">
|
||||
<English>5.56mm IR-DIM</English>
|
||||
<Hungarian>5,56 mm IR-DIM</Hungarian>
|
||||
<German>5,56mm IR-DIM</German>
|
||||
<Spanish>5,56mm IR-DIM</Spanish>
|
||||
<French>5,56mm IR-DIM</French>
|
||||
<Polish>5,56mm IR-DIM</Polish>
|
||||
<Czech>5.56mm IR-DIM</Czech>
|
||||
<Portuguese>5,56mm IR-DIM</Portuguese>
|
||||
<Italian>5.56mm IR-DIM</Italian>
|
||||
<Russian>5.56 мм трассирущие под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_Tracer_DimDescription">
|
||||
<English>Caliber: 5.56x45 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
|
||||
<Hungarian>Kaliber: 5,56x45 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
|
||||
<German>Kaliber: 5,56x45 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
|
||||
<Spanish>Calibre: 5,56x45 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
|
||||
<French>Calibre: 5,56x45 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
|
||||
<Polish>Kaliber: 5,56 x 45 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
|
||||
<Czech>Ráže: 5.56x45 mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
|
||||
<Portuguese>Calibre: 5,56x45 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
|
||||
<Italian>Calibro: 5.56x45 mm 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>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_SDName">
|
||||
<English>5.56mm 30Rnd SD Mag</English>
|
||||
<Hungarian>5,56 mm Hangtompítós 30-as Tár</Hungarian>
|
||||
<German>5,56 mm 30-Schuss-Magazin SD</German>
|
||||
<Spanish>Cargador de 30 balas SD de 5,56 mm</Spanish>
|
||||
<French>Ch. 5,56mm 30Cps SD</French>
|
||||
<Polish>Magazynek 5,56mm 30rd SD</Polish>
|
||||
<Czech>5.56mm 30ks SD Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis SD de 5,56mm</Portuguese>
|
||||
<Italian>Caricatore 5.56mm 30Rnd Sil.</Italian>
|
||||
<Russian>Магазин из 30-и 5.56 мм дозвуковых</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_SDNameShort">
|
||||
<English>5.56mm SD</English>
|
||||
<Hungarian>5,56 mm Hangtompítós</Hungarian>
|
||||
<German>5,56mm SD</German>
|
||||
<Spanish>5,56 mm SD</Spanish>
|
||||
<French>5,56mm SD</French>
|
||||
<Polish>5,56mm SD</Polish>
|
||||
<Czech>5.56mm SD</Czech>
|
||||
<Portuguese>5,56mm SD</Portuguese>
|
||||
<Italian>5.56 Sil.</Italian>
|
||||
<Russian>5.56 мм дозвуковые</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_SDDescription">
|
||||
<English>Caliber: 5.56x45 mm SD<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
|
||||
<Hungarian>Kaliber: 5,56x45 mm Hangtompítós<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
|
||||
<German>Kaliber: 5,56x45 mm SD<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
|
||||
<Spanish>Calibre: 5,56x45 mm SD<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
|
||||
<French>Calibre: 5.56x45 mm SD<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
|
||||
<Polish>Kaliber: 5,56 x 45 mm SD<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
|
||||
<Czech>Ráže: 5.56x45 mm SD<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
|
||||
<Portuguese>Calibre: 5,56x45 mm SD<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
|
||||
<Italian>Calibro: 5.56x45 mm Sil.<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>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_APName">
|
||||
<English>5.56mm 30Rnd AP Mag</English>
|
||||
<Hungarian>5,56 mm Páncéltörő 30-as Tár</Hungarian>
|
||||
<German>5,56 mm 30-Schuss-Magazin AP</German>
|
||||
<Spanish>Cargador de 30 balas AP de 5,56mm</Spanish>
|
||||
<French>Ch. 5,56mm 30Cps AP</French>
|
||||
<Polish>Magazynek 5,56mm 30rd AP</Polish>
|
||||
<Czech>5.56mm 30ks AP Zásobník</Czech>
|
||||
<Portuguese>Carregador de 30 projéteis AP de 5,56mm</Portuguese>
|
||||
<Italian>Caricatore 5.56mm 30Rnd AP</Italian>
|
||||
<Russian>Магазин из 30-и 5.56 мм бронебойных</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_APNameShort">
|
||||
<English>5.56mm AP</English>
|
||||
<Hungarian>5,56 mm Páncéltörő</Hungarian>
|
||||
<German>5,56mm AP</German>
|
||||
<Spanish>5,56mm AP</Spanish>
|
||||
<French>5,56mm AP</French>
|
||||
<Polish>5,56mm AP</Polish>
|
||||
<Czech>5.56mm AP</Czech>
|
||||
<Portuguese>5,56mm AP</Portuguese>
|
||||
<Italian>5.56mm AP</Italian>
|
||||
<Russian>5.56 мм бронебойные</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_30Rnd_556x45_mag_APDescription">
|
||||
<English>Caliber: 5.56x45 mm AP<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
|
||||
<Hungarian>Kaliber: 5,56x45 mm Páncéltörő<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
|
||||
<German>Kaliber: 5,56x45 mm AP<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
|
||||
<Spanish>Calibre: 5,56x45 mm AP<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
|
||||
<French>Calibre: 5,56x45 mm AP<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
|
||||
<Polish>Kaliber: 5,56 x 45 mm AP<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
|
||||
<Czech>Ráže: 5.56x45 mm AP<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
|
||||
<Portuguese>Calibre: 5,56x45 mm AP<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
|
||||
<Italian>Calibro: 5.56x45 mm AP<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>
|
||||
</Key>
|
||||
<!-- 7.62x51mm -->
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_TracerName">
|
||||
<English>7.62mm 20rnd Tracer Mag</English>
|
||||
<Hungarian>7,62 mm Nyomjelző IR-DIM 20-as Tár</Hungarian>
|
||||
<German>7,62 mm 20-Schuss-Magazin Leuchtspur</German>
|
||||
<Spanish>Cargador de 20 balas trazadores de 7,62mm</Spanish>
|
||||
<French>Ch. 7,62mm 20Cps Traçantes </French>
|
||||
<Polish>Magazynek 7,62mm 20rd Smugacz</Polish>
|
||||
<Czech>7.62mm 20ks Svítící Zásobník</Czech>
|
||||
<Portuguese>Carregador de 20 projéteis traçantes de 7,62mm</Portuguese>
|
||||
<Italian>Caricatore 7.62mm 20Rnd Traccianti</Italian>
|
||||
<Russian>Магазин из 20-и 7.62 мм трассирующих</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_TracerNameShort">
|
||||
<English>7.62mm Tracer</English>
|
||||
<Hungarian>7,62 mm Nyomjelző</Hungarian>
|
||||
<German>7,62mm Leuchtspur</German>
|
||||
<Spanish>7,62mm Trazadora</Spanish>
|
||||
<French>7,62mm Traçantes</French>
|
||||
<Polish>7,62mm Smugacz</Polish>
|
||||
<Czech>7.62mm Svítící</Czech>
|
||||
<Portuguese>7,62mm Traçante</Portuguese>
|
||||
<Italian>7.62mm Traccianti</Italian>
|
||||
<Russian>7.62 мм трассирущие</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_TracerDescription">
|
||||
<English>Caliber: 7.62x51 mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR</English>
|
||||
<Hungarian>Kaliber: 7,62x51 mm Nyomjelző<br />Lőszerek: 20<br />Használható: Mk18 ABR</Hungarian>
|
||||
<German>Kaliber: 7,62x51 mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR</German>
|
||||
<Spanish>Calibre: 7,62x51 mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51 mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR</French>
|
||||
<Polish>Kaliber: 7,62 x 51 mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51 mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51 mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51 mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7.62x51 мм трассирующие<br />Патронов: 20<br />Применимы в: Mk18 ABR</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_Tracer_DimName">
|
||||
<English>7.62mm 20rnd Tracer IR-DIM Mag</English>
|
||||
<Hungarian>7,62 mm Nyomjelző IR-DIM 20-as Tár</Hungarian>
|
||||
<German>7,62 mm 20-Schuss-Magazin Leuchtspur IR-DIM</German>
|
||||
<Spanish>Cargador de 20 balas IR-DIM de 7,62mm</Spanish>
|
||||
<French>Ch. 7,62mm 20Cps Traçantes IR-DIM</French>
|
||||
<Polish>Magazynek 7,62mm 20rd Smugacz IR-DIM</Polish>
|
||||
<Czech>7.62mm 20ks Svítící IR-DIM Zásobník</Czech>
|
||||
<Portuguese>Carregador de 20 projéteis IR-DIM de 7,62mm</Portuguese>
|
||||
<Italian>Caricatore 7.62mm 20rnd Traccianti IR-DIM</Italian>
|
||||
<Russian>Магазин из 20-и 7.62 мм трассирующих под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_Tracer_DimNameShort">
|
||||
<English>7.62mm IR-DIM</English>
|
||||
<Hungarian>7,62 mm IR-DIM</Hungarian>
|
||||
<German>7,62mm IR-DIM</German>
|
||||
<Spanish>7,62mm IR-DIM</Spanish>
|
||||
<French>7,62mm IR-DIM</French>
|
||||
<Polish>7,62mm IR-DIM</Polish>
|
||||
<Czech>7.62mm IR-DIM</Czech>
|
||||
<Portuguese>7,62mm IR-DIM</Portuguese>
|
||||
<Italian>7.62mm IR-DIM</Italian>
|
||||
<Russian>7.62 мм трассирущие под ПНВ</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_Tracer_DimDescription">
|
||||
<English>Caliber: 7.62x51 mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR</English>
|
||||
<Hungarian>Kaliber: 7,62x51 mm Nyomjelző IR-DIM<br />Lőszerek: 20<br />Használható: Mk18 ABR</Hungarian>
|
||||
<German>Kaliber: 7,62x51 mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR</German>
|
||||
<Spanish>Calibre: 7,62x51 mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51 mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR</French>
|
||||
<Polish>Kaliber: 7,62 x 51 mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51 mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51 mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51 mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7.62x51 мм трассирующие под ПНВ<br />Патронов: 20<br />Применимы в: Mk18 ABR</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_SDName">
|
||||
<English>7.62mm 20Rnd SD Mag</English>
|
||||
<Hungarian>7,62 mm Hangtompítós 20-as Tár</Hungarian>
|
||||
<German>7,62 mm 20-Schuss-Magazin SD</German>
|
||||
<Spanish>Cargador de 20 balas SD de 7,62mm</Spanish>
|
||||
<French>Ch. 7,62mm 20Cps SD</French>
|
||||
<Polish>Magazynek 7,62mm 20rd SD</Polish>
|
||||
<Czech>7.62mm 20ks SD Zásobník</Czech>
|
||||
<Portuguese>Carregador de 20 projéteis SD de 7,62mm</Portuguese>
|
||||
<Italian>Caricatore 7.62mm 20Rnd Sil.</Italian>
|
||||
<Russian>Магазин из 20-и 7.62 мм дозвуковых</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_SDNameShort">
|
||||
<English>7.62mm SD</English>
|
||||
<Hungarian>7,62 mm Hangtompítós</Hungarian>
|
||||
<German>7,62mm SD</German>
|
||||
<Spanish>7,62mm SD</Spanish>
|
||||
<French>7,62mm SD</French>
|
||||
<Polish>7,62mm SD</Polish>
|
||||
<Czech>7.62mm SD</Czech>
|
||||
<Portuguese>7,62mm SD</Portuguese>
|
||||
<Italian>7.62mm Sil.</Italian>
|
||||
<Russian>7.62 мм дозвуковые</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_SDDescription">
|
||||
<English>Caliber: 7.62x51 mm SD<br />Rounds: 20<br />Used in: Mk18 ABR</English>
|
||||
<Hungarian>Kaliber: 7,62x51 mm Hangtompítós<br />Lőszerek: 20<br />Használható: Mk18 ABR</Hungarian>
|
||||
<German>Kaliber: 7,62x51 mm SD<br />Patronen: 20<br />Eingesetzt von: EBR</German>
|
||||
<Spanish>Calibre: 7,62x51 mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51 mm SD<br />Cartouches: 20<br />Utilisé dans: EBR</French>
|
||||
<Polish>Kaliber: 7,62 x 51 mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51 mm SD<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51 mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51 mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_APName">
|
||||
<English>7.62mm 20Rnd AP Mag</English>
|
||||
<Hungarian>7,62 mm Páncéltörő 20-as Tár</Hungarian>
|
||||
<German>7,62 mm 20-Schuss-Magazin AP</German>
|
||||
<Spanish>Cargador de 20 balas AP de 7,62mm</Spanish>
|
||||
<French>Ch. 7,62mm 20Cps AP</French>
|
||||
<Polish>Magazynek 7,62mm 20rd AP</Polish>
|
||||
<Czech>7.62mm 20ks AP Zásobník</Czech>
|
||||
<Portuguese>Carregador de 20 projéteis AP de 7,62mm</Portuguese>
|
||||
<Italian>Caricatore 7.62mm 20Rnd AP</Italian>
|
||||
<Russian>Магазин из 20-и 7.62 мм бронебойных</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_APNameShort">
|
||||
<English>7.62mm AP</English>
|
||||
<Hungarian>7,62 mm Páncéltörő</Hungarian>
|
||||
<German>7,62mm AP</German>
|
||||
<Spanish>7,62mm AP</Spanish>
|
||||
<French>7,62mm AP</French>
|
||||
<Polish>7,62mm AP</Polish>
|
||||
<Czech>7.62mm AP</Czech>
|
||||
<Portuguese>7,62mm AP</Portuguese>
|
||||
<Italian>7.62mm AP</Italian>
|
||||
<Russian>7.62 мм бронебойные</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_20Rnd_762x51_mag_APDescription">
|
||||
<English>Caliber: 7.62x51 mm AP<br />Rounds: 20<br />Used in: Mk18 ABR</English>
|
||||
<Hungarian>Kaliber: 7,62x51 mm Páncéltörő<br />Lőszerek: 20<br />Használható: Mk18 ABR</Hungarian>
|
||||
<German>Kaliber: 7,62x51 mm AP<br />Patronen: 20<br />Eingesetzt von: EBR</German>
|
||||
<Spanish>Calibre: 7,62x51 mm AP<br />Balas: 20<br />Se usa en: Mk18 ABR</Spanish>
|
||||
<French>Calibre: 7,62x51 mm AP<br />Cartouches: 20<br />Utilisé dans: EBR</French>
|
||||
<Polish>Kaliber: 7,62 x 51 mm AP<br />Pociski: 20<br />Używane w: Mk18 ABR</Polish>
|
||||
<Czech>Ráže: 7.62x51 mm AP<br />Munice: 20<br />Použití: Mk18 ABR</Czech>
|
||||
<Portuguese>Calibre: 7,62x51 mm AP<br />Projéteis: 20<br />Usado em: Mk18 ABR</Portuguese>
|
||||
<Italian>Calibro: 7.62x51 mm AP<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian>
|
||||
<Russian>Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Ballistics_20Rnd_762x51_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm M118LR<br />Rounds: 20<br />Type: M14</English>
|
||||
<Hungarian>Kaliber: 7,62x51 mm M118LR<br />Lőszerek: 20<br />Típus: M14</Hungarian>
|
||||
<German>Kaliber: 7,62x51mm M118LR<br />Schuss: 20<br />Typ: M14</German>
|
||||
<Spanish>Calibre: 7,62x51mm M118LR<br />Balas: 20<br />Tipo: M14</Spanish>
|
||||
<Polish>Kaliber: 7,62 x 51 mm M118LR<br />Pociski: 20<br />Typ: M14</Polish>
|
||||
<Czech>Kalibr: 7.62x51mm M118LR<br />Náboje: 20<br />Typ: M14</Czech>
|
||||
<French>Calibre : 7,62x51mm M118LR<br />Cartouches: 20<br />Type: M14</French>
|
||||
<Portuguese>Calibre: 7,62x51mm M118LR<br />Projéteis: 20<br />Tipo: M14</Portuguese>
|
||||
<Russian>Калибр: 7.62x51mm M118LR<br />Патронов: 20<br />Тип: M14</Russian>
|
||||
<Italian>Calibro: 7.62x51mm M118LR<br />Munizioni:20<br />In uso su: M14</Italian>
|
||||
</Key>
|
||||
<!-- Flash suppressors -->
|
||||
<Key ID="STR_AGM_muzzle_mzls_H">
|
||||
<English>Flash Suppressor (6.5 mm)</English>
|
||||
<Hungarian>Lángrejtő (6,5 mm)</Hungarian>
|
||||
<German>Mündungsfeuerdämpfer (6,5 mm)</German>
|
||||
<Italian>Soppressore di fiamma (6.5mm)</Italian>
|
||||
<Portuguese>Supressor de Clarão (6,5mm)</Portuguese>
|
||||
<Polish>Tłumik płomieni (6,5 mm)</Polish>
|
||||
<Czech>Tlumič záblesku (6,5 mm)</Czech>
|
||||
<French>Cache-flamme (6,5 mm)</French>
|
||||
<Russian>Пламегаситель (6,5 мм)</Russian>
|
||||
<Spanish>Supresor (6,5 mm)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_muzzle_mzls_B">
|
||||
<English>Flash Suppressor (7.62 mm)</English>
|
||||
<Hungarian>Lángrejtő (7,62 mm)</Hungarian>
|
||||
<German>Mündungsfeuerdämpfer (7,62 mm)</German>
|
||||
<Italian>Soppressore di fiamma (7.62mm)</Italian>
|
||||
<Portuguese>Supressor de Clarão (7,62mm)</Portuguese>
|
||||
<Polish>Tłumik płomieni (7,62 mm)</Polish>
|
||||
<Czech>Tlumič záblesku (7,62 mm)</Czech>
|
||||
<French>Cache-flamme (7,62 mm)</French>
|
||||
<Russian>Пламегаситель (7,62 мм)</Russian>
|
||||
<Spanish>Supresor (7,62 mm)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_muzzle_mzls_L">
|
||||
<English>Flash Suppressor (5.56 mm)</English>
|
||||
<Hungarian>Lángrejtő (5,56 mm)</Hungarian>
|
||||
<German>Mündungsfeuerdämpfer (5,56 mm)</German>
|
||||
<Italian>Soppressore di fiamma (5.56mm)</Italian>
|
||||
<Portuguese>Supressor de Clarão (5,56mm)</Portuguese>
|
||||
<Polish>Tłumik płomieni (5,56 mm)</Polish>
|
||||
<Czech>Tlumič záblesku (5,56 mm)</Czech>
|
||||
<French>Cache-flamme (5,56 mm)</French>
|
||||
<Russian>Пламегаситель (5,56 мм)</Russian>
|
||||
<Spanish>Supresor (5,56 mm)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_muzzle_mzls_smg_01">
|
||||
<English>Flash Suppressor (.45 ACP)</English>
|
||||
<Hungarian>Lángrejtő (.45 ACP)</Hungarian>
|
||||
<German>Mündungsfeuerdämpfer (.45 ACP)</German>
|
||||
<Italian>Soppressore di fiamma (.45 ACP)</Italian>
|
||||
<Portuguese>Supressor de Clarão (.45 ACP)</Portuguese>
|
||||
<Polish>Tłumik płomieni (.45 ACP)</Polish>
|
||||
<Czech>Tlumič záblesku (.45 ACP)</Czech>
|
||||
<French>Cache-flamme (.45 ACP)</French>
|
||||
<Russian>Пламегаситель (.45 ACP)</Russian>
|
||||
<Spanish>Supresor (.45 ACP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_muzzle_mzls_smg_02">
|
||||
<English>Flash Suppressor (9 mm)</English>
|
||||
<Hungarian>Lángrejtő (9 mm)</Hungarian>
|
||||
<German>Mündungsfeuerdämpfer (9 mm)</German>
|
||||
<Italian>Soppressore di fiamma (9 mm)</Italian>
|
||||
<Portuguese>Supressor de Clarão (9mm)</Portuguese>
|
||||
<Polish>Tłumik płomieni (9 mm)</Polish>
|
||||
<Czech>Tlumič záblesku (9 mm)</Czech>
|
||||
<French>Cache-flamme (9 mm)</French>
|
||||
<Russian>Пламегаситель (9 мм)</Russian>
|
||||
<Spanish>Supresor (9 mm)</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -1,47 +0,0 @@
|
||||
|
||||
class CfgPatches {
|
||||
class AGM_Difficulties {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"commy2"};
|
||||
authorUrl = "https://github.com/commy2/";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgDifficulties {
|
||||
class Mercenary {
|
||||
class Flags {
|
||||
armor[] = {0,0};
|
||||
friendlyTag[] = {0,0};
|
||||
enemyTag[] = {0,0};
|
||||
mineTag[] = {0,0};
|
||||
hud[] = {0,1};//{1,1};
|
||||
hudPerm[] = {0,0};
|
||||
hudWp[] = {0,0};
|
||||
hudWpPerm[] = {0,0};
|
||||
autoSpot[] = {0,1};
|
||||
map[] = {0,0};
|
||||
weaponCursor[] = {0,1};//{1,1};
|
||||
autoGuideAT[] = {0,0};
|
||||
clockIndicator[] = {0,0};
|
||||
3rdPersonView[] = {0,0};
|
||||
autoAim[] = {0,0};
|
||||
unlimitedSaves[] = {0,0};
|
||||
deathMessages[] = {0,1};//{1,1};
|
||||
netStats[] = {0,1};//{1,1};
|
||||
vonID[] = {0,1};
|
||||
cameraShake[] = {1,0};
|
||||
hudGroupInfo[] = {0,0};
|
||||
extendetInfoType[] = {0,0};
|
||||
roughLanding[] = {0,0};
|
||||
windEnabled[] = {1,0};
|
||||
autoTrimEnabled[] = {0,0};
|
||||
stressDamageEnabled[] = {1,0};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,10 +0,0 @@
|
||||
// by commy2
|
||||
|
||||
// The Arma InventoryOpened EH fires actually before the inventory dialog is opened (findDisplay 602 => displayNull).
|
||||
if (isNil "AGM_Disposable_UpdateInventoryDisplay_EHID") then {
|
||||
AGM_Disposable_UpdateInventoryDisplay_EHID = [{
|
||||
_player = AGM_player;
|
||||
[_player, secondaryWeapon _player] call AGM_Disposable_fnc_takeLoadedATWeapon;
|
||||
[_player, _this select 0] spawn AGM_Disposable_fnc_updateInventoryDisplay;
|
||||
}] call AGM_Core_fnc_addInventoryDisplayLoadedEventHandler;
|
||||
};
|
@ -1,255 +0,0 @@
|
||||
|
||||
class CfgPatches {
|
||||
class AGM_Disposable {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"commy2"};
|
||||
authorUrl = "https://github.com/commy2/";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_Disposable {
|
||||
class AGM_Disposable {
|
||||
file = "\AGM_Disposable\functions";
|
||||
class replaceATWeapon;
|
||||
class takeLoadedATWeapon;
|
||||
class updateInventoryDisplay;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class AGM_Disposable {
|
||||
clientInit = "call compile preprocessFileLineNumbers '\AGM_Disposable\clientInit.sqf'";
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_FiredBIS_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Disposable_ReplaceFiredATWeapon {
|
||||
firedBIS = "if (local (_this select 0)) then {_this call AGM_Disposable_fnc_replaceATWeapon};";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// handle preloaded missile
|
||||
class Extended_Init_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Disposable_UpdateInventoryDisplay {
|
||||
init = "if (local (_this select 0)) then {_this spawn {[_this select 0, secondaryWeapon (_this select 0)] call AGM_Disposable_fnc_takeLoadedATWeapon}};";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Take_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Disposable_UpdateInventoryDisplay {
|
||||
take = "if (local (_this select 0)) then {[_this select 0, _this select 2] call AGM_Disposable_fnc_takeLoadedATWeapon; [_this select 0, findDisplay 602] call AGM_Disposable_fnc_updateInventoryDisplay};";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Put_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Disposable_UpdateInventoryDisplay {
|
||||
put = "if (local (_this select 0)) then {[_this select 0, findDisplay 602] call AGM_Disposable_fnc_updateInventoryDisplay};";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgWeapons {
|
||||
class Launcher_Base_F;
|
||||
class launch_NLAW_F: Launcher_Base_F {
|
||||
AGM_UsedTube = "AGM_launch_NLAW_Used_F"; // The class name of the used tube.
|
||||
magazines[] = {"AGM_PreloadedMissileDummy"}; // The dummy magazine
|
||||
};
|
||||
class AGM_launch_NLAW_Used_F: launch_NLAW_F { // the used tube should be a sub class of the disposable launcher
|
||||
scope = 1;
|
||||
AGM_isUsedLauncher = 1;
|
||||
author = "$STR_AGM_Core_AGMTeam";
|
||||
displayName = "$STR_AGM_Disposable_UsedTube";
|
||||
descriptionShort = "$STR_AGM_Disposable_UsedTubeDescription";
|
||||
magazines[] = {"AGM_FiredMissileDummy"}; // This will disable the used launcher class from being fired again.
|
||||
//picture = ""; @todo
|
||||
//model = ""; @todo
|
||||
weaponPoolAvailable = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class CfgMagazines {
|
||||
class NLAW_F;
|
||||
class AGM_PreloadedMissileDummy: NLAW_F { // The dummy magazine
|
||||
author = "$STR_AGM_Core_AGMTeam";
|
||||
scope = 1;
|
||||
displayName = "$STR_AGM_Disposable_PreloadedMissileDummy";
|
||||
picture = "\AGM_Core\UI\blank_CO.paa";
|
||||
weaponPoolAvailable = 0;
|
||||
mass = 0;
|
||||
};
|
||||
class AGM_FiredMissileDummy: AGM_PreloadedMissileDummy {
|
||||
count = 0;
|
||||
};
|
||||
class AGM_UsedTube_F: NLAW_F {
|
||||
author = "$STR_AGM_Core_AGMTeam";
|
||||
displayName = "$STR_AGM_Disposable_UsedTube";
|
||||
descriptionShort = "$STR_AGM_Disposable_UsedTubeDescription";
|
||||
displayNameShort = "-";
|
||||
count = 0;
|
||||
weaponPoolAvailable = 0;
|
||||
modelSpecial = "";
|
||||
mass = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
#define MACRO_NONLAW \
|
||||
class TransportMagazines { \
|
||||
class _xx_NLAW_F { \
|
||||
count = 0; \
|
||||
}; \
|
||||
};
|
||||
|
||||
class ReammoBox_F;
|
||||
class NATO_Box_Base: ReammoBox_F {};
|
||||
class Box_NATO_Ammo_F: NATO_Box_Base {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class Box_NATO_WpsLaunch_F: NATO_Box_Base {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class IND_Box_Base: ReammoBox_F {};
|
||||
class Box_IND_WpsLaunch_F: IND_Box_Base {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class Box_IND_Ammo_F: IND_Box_Base {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class B_supplyCrate_F: ReammoBox_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class I_supplyCrate_F: B_supplyCrate_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class C_supplyCrate_F: ReammoBox_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class B_AssaultPack_rgr;
|
||||
class B_AssaultPack_rgr_LAT: B_AssaultPack_rgr {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_AssaultPack_rgr_ReconLAT: B_AssaultPack_rgr {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class B_Carryall_mcamo;
|
||||
class B_AssaultPack_mcamo_Ammo: B_Carryall_mcamo {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_Carryall_oli;
|
||||
class I_Fieldpack_oli_Ammo: B_Carryall_oli {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class B_AssaultPack_dgtl;
|
||||
class I_Fieldpack_oli_LAT: B_AssaultPack_dgtl {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class CargoNet_01_ammo_base_F;
|
||||
class B_CargoNet_01_ammo_F: CargoNet_01_ammo_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class I_CargoNet_01_ammo_F: CargoNet_01_ammo_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class Slingload_01_Base_F;
|
||||
class B_Slingload_01_Cargo_F: Slingload_01_Base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
|
||||
class Tank_F;
|
||||
class APC_Tracked_01_base_F: Tank_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
/*class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};*/
|
||||
|
||||
class Car_F;
|
||||
class MRAP_01_base_F: Car_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
/*class MRAP_01_gmg_base_F: MRAP_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_MRAP_01_F: MRAP_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_MRAP_01_gmg_F: MRAP_01_gmg_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_MRAP_01_hmg_F: MRAP_01_hmg_base_F {
|
||||
MACRO_NONLAW
|
||||
};*/
|
||||
|
||||
class MRAP_03_base_F: Car_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
/*class MRAP_03_hmg_base_F: MRAP_03_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class I_MRAP_03_F: MRAP_03_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class I_MRAP_03_hmg_F: MRAP_03_hmg_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class I_MRAP_03_gmg_F: MRAP_03_gmg_base_F {
|
||||
MACRO_NONLAW
|
||||
};*/
|
||||
|
||||
class Wheeled_APC_F: Car_F {};
|
||||
class APC_Wheeled_03_base_F: Wheeled_APC_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class APC_Wheeled_01_base_F: Wheeled_APC_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
/*class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class I_APC_Wheeled_03_base_F: APC_Wheeled_03_base_F {
|
||||
MACRO_NONLAW
|
||||
};
|
||||
class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F {
|
||||
MACRO_NONLAW
|
||||
};*/
|
||||
};
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Replace the disposable launcher with the used dummy.
|
||||
*
|
||||
* Argument:
|
||||
* Input from "Fired" eventhandler
|
||||
*
|
||||
* Return value:
|
||||
* Nothing
|
||||
*/
|
||||
|
||||
private ["_unit", "_tube", "_projectile"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_tube = getText (configFile >> "CfgWeapons" >> _this select 1 >> "AGM_UsedTube");
|
||||
_projectile = _this select 6;
|
||||
|
||||
if (_tube == "") exitWith {};
|
||||
|
||||
private "_items";
|
||||
|
||||
_items = secondaryWeaponItems _unit;
|
||||
|
||||
_unit addWeapon _tube;
|
||||
_unit selectWeapon _tube;
|
||||
{
|
||||
if (_x != "") then {_unit addSecondaryWeaponItem _x};
|
||||
} forEach _items;
|
||||
|
||||
// AI
|
||||
if !([_unit] call AGM_Core_fnc_isPlayer) then {
|
||||
[_unit, _tube, _projectile] spawn {
|
||||
_unit = _this select 0;
|
||||
_tube = _this select 1;
|
||||
_projectile = _this select 2;
|
||||
|
||||
waitUntil {isNull _projectile};
|
||||
sleep 1;
|
||||
|
||||
if (secondaryWeapon _unit == _tube) then {
|
||||
_logic = createVehicle ["GroundWeaponHolder", position _unit, [], 0, "CAN_COLLIDE"];
|
||||
_logic addWeaponCargoGlobal [_tube, 1]; // @todo secondary weapon items
|
||||
|
||||
_unit removeWeapon _tube;
|
||||
};
|
||||
};
|
||||
};
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Handle the take event. Add a dummy magazine if a disposable rocket launcher is taken.
|
||||
*
|
||||
* Argument:
|
||||
* Input from "Take" eventhandler
|
||||
*
|
||||
* Return value:
|
||||
* Nothing
|
||||
*/
|
||||
|
||||
private ["_unit", "_launcher", "_config"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_launcher = _this select 1;
|
||||
|
||||
_config = configFile >> "CfgWeapons" >> _launcher;
|
||||
|
||||
if (isClass _config && {getText (_config >> "AGM_UsedTube") != ""} && {getNumber (_config >> "AGM_isUsedLauncher") != 1} && {count secondaryWeaponMagazine _unit == 0}) then {
|
||||
private ["_magazine", "_isLauncherSelected"];
|
||||
|
||||
_magazine = getArray (_config >> "magazines") select 0;
|
||||
|
||||
_isLauncherSelected = currentWeapon _unit == _launcher;
|
||||
|
||||
_unit removeMagazines _magazine;
|
||||
|
||||
if (backpack _unit == "") then {
|
||||
_unit addBackpack "Bag_Base";
|
||||
|
||||
_unit addMagazine _magazine;
|
||||
_unit addWeapon _launcher;
|
||||
|
||||
removeBackpack _unit;
|
||||
} else {
|
||||
_unit addMagazine _magazine;
|
||||
_unit addWeapon _launcher;
|
||||
};
|
||||
|
||||
if (_isLauncherSelected) then {
|
||||
_unit selectWeapon _launcher;
|
||||
};
|
||||
};
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Author: bux, commy2
|
||||
*
|
||||
* Hide or show the secondary weapon magazine inventory slot to prevent unloading of dummy magazines.
|
||||
*
|
||||
* Argument:
|
||||
* 0: The player. (Object)
|
||||
*
|
||||
* Return value:
|
||||
* Nothing
|
||||
*/
|
||||
|
||||
private ["_player", "_display"];
|
||||
|
||||
_player = _this select 0;
|
||||
|
||||
_player removeMagazines "AGM_PreloadedMissileDummy";
|
||||
_player removeMagazines "AGM_FiredMissileDummy";
|
||||
|
||||
disableSerialization;
|
||||
_display = _this select 1;
|
||||
|
||||
if (isNull _display) exitWith {};
|
||||
|
||||
private ["_launcher", "_control", "_config"];
|
||||
|
||||
_launcher = secondaryWeapon _player;
|
||||
|
||||
if (_launcher == "" || {getText (configFile >> "CfgWeapons" >> _launcher >> "AGM_UsedTube") == ""}) then {
|
||||
_control = _display displayCtrl 627;
|
||||
_config = configFile >> "RscDisplayInventory" >> "controls" >> "SlotSecondaryMagazine";
|
||||
_control ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")];
|
||||
_control ctrlCommit 0;
|
||||
|
||||
_control = _display displayCtrl 1251;
|
||||
_config = configFile >> "RscDisplayInventory" >> "controls" >> "BackgroundSlotSecondaryMagazine";
|
||||
_control ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")];
|
||||
_control ctrlCommit 0;
|
||||
} else {
|
||||
_control = _display displayCtrl 627;
|
||||
_control ctrlSetPosition [0, 0, 0, 0];
|
||||
_control ctrlCommit 0;
|
||||
|
||||
_control = _display displayCtrl 1251;
|
||||
_control ctrlSetPosition [0, 0, 0, 0];
|
||||
_control ctrlCommit 0;
|
||||
};
|
@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-16 -->
|
||||
<Project name="AGM">
|
||||
<Package name="Disposable">
|
||||
<Key ID="STR_AGM_Disposable_UsedTube">
|
||||
<English>Used Tube</English>
|
||||
<German>Benutze Einwegwaffe</German>
|
||||
<French>Tube utilisé</French>
|
||||
<Czech>Použitý odpalovač</Czech>
|
||||
<Polish>Zużyta tuba</Polish>
|
||||
<Spanish>Lanzador utilizado</Spanish>
|
||||
<Hungarian>Használt cső</Hungarian>
|
||||
<Russian>Отстрелянная труба</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Disposable_UsedTubeDescription">
|
||||
<English>Used disposable rocket launcher</English>
|
||||
<German>Benutzter Einweg-Raketenwerfer</German>
|
||||
<French>Lance-roquette à usage unique utilisé</French>
|
||||
<Czech>Použitý raketomet</Czech>
|
||||
<Polish>Zużyta tuba granatnika jednorazowego użytku</Polish>
|
||||
<Spanish>Lanzador desechable utilizado</Spanish>
|
||||
<Hungarian>Használt rakétavető</Hungarian>
|
||||
<Russian>Отстрелянная одноразовая пусковая установка</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Disposable_PreloadedMissileDummy">
|
||||
<English>Preloaded Missile Dummy</English>
|
||||
<German>Preloaded Missile Dummy</German>
|
||||
<French>Preloaded Missile Dummy</French>
|
||||
<Czech>Preloaded Missile Dummy</Czech>
|
||||
<Polish>Preloaded Missile Dummy</Polish>
|
||||
<Spanish>Preloaded Missile Dummy</Spanish>
|
||||
<Hungarian>Preloaded Missile Dummy</Hungarian>
|
||||
<Russian>Заряженная ракетная пустышка</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -1,84 +0,0 @@
|
||||
class CfgAmmo {
|
||||
// All explosive based Ammo classes. Theses are all listed in case they are required.
|
||||
class Default;
|
||||
|
||||
class TimeBombCore:Default {
|
||||
AGM_DefuseTime = 5;
|
||||
};
|
||||
/*
|
||||
class BoundingMineCore:TimeBombCore;
|
||||
class BoundingMineBase:BoundingMineCore;
|
||||
class APERSBoundingMine_Range_Ammo:BoundingMineBase;
|
||||
|
||||
class MineCore: TimeBombCore;
|
||||
class MineBase:MineCore;
|
||||
class APERSMine_Range_Ammo:MineBase;
|
||||
class ATMine_Range_Ammo:MineBase;
|
||||
|
||||
class UnderwaterMine_Range_Ammo:MineBase;
|
||||
class UnderwaterMineAB_Range_Ammo:UnderwaterMine_Range_Ammo;
|
||||
class UnderwaterMinePDM_Range_Ammo:UnderwaterMine_Range_Ammo;
|
||||
|
||||
class DirectionalBombCore:TimeBombCore;
|
||||
class DirectionalBombBase:DirectionalBombCore;
|
||||
class APERSTripMine_Wire_Ammo:DirectionalBombBase;
|
||||
|
||||
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase;
|
||||
|
||||
class PipeBombCore: TimeBombCore;
|
||||
class PipeBombBase:PipeBombCore;
|
||||
*/
|
||||
class DirectionalBombBase;
|
||||
class ClaymoreDirectionalMine_Remote_Ammo:DirectionalBombBase{
|
||||
AGM_Explosive = "ClaymoreDirectionalMine_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
};
|
||||
//class ClaymoreDirectionalMine_Remote_Ammo_Scripted:ClaymoreDirectionalMine_Remote_Ammo;
|
||||
|
||||
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase{
|
||||
indirectHitRange = 20;
|
||||
AGM_explodeOnDefuse = 1;
|
||||
};
|
||||
class SLAMDirectionalMine_Command_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "RemoteTrigger";
|
||||
AGM_explodeOnDefuse = 0;
|
||||
};
|
||||
class SLAMDirectionalMine_Timer_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "TimeTrigger";
|
||||
AGM_explodeOnDefuse = 0;
|
||||
};
|
||||
class SLAMDirectionalMine_Magnetic_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "MagneticTrigger";
|
||||
};
|
||||
|
||||
class PipeBombBase;
|
||||
class DemoCharge_Remote_Ammo:PipeBombBase{
|
||||
AGM_Explosive = "DemoCharge_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
hit = 500;
|
||||
indirectHit = 500;
|
||||
indirectHitRange = 7;
|
||||
};
|
||||
//class DemoCharge_Remote_Ammo_Scripted:DemoCharge_Remote_Ammo;
|
||||
class SatchelCharge_Remote_Ammo:PipeBombBase{
|
||||
AGM_Explosive = "SatchelCharge_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
};
|
||||
/*class SatchelCharge_Remote_Ammo_Scripted:SatchelCharge_Remote_Ammo;
|
||||
|
||||
class IEDLandBig_Remote_Ammo:PipeBombBase{
|
||||
triggerWhenDestroyed = 1;
|
||||
};
|
||||
class IEDLandSmall_Remote_Ammo:PipeBombBase{
|
||||
triggerWhenDestroyed = 1;
|
||||
};
|
||||
class IEDUrbanBig_Remote_Ammo:PipeBombBase{
|
||||
triggerWhenDestroyed = 1;
|
||||
};
|
||||
class IEDUrbanSmall_Remote_Ammo:PipeBombBase{
|
||||
triggerWhenDestroyed = 1;
|
||||
};*/
|
||||
};
|
@ -1,155 +0,0 @@
|
||||
class CfgMagazines {
|
||||
class CA_Magazine;
|
||||
class ATMine_Range_Mag:CA_Magazine{
|
||||
AGM_Placeable = 1;
|
||||
useAction = 0;
|
||||
AGM_SetupObject = "AGM_Explosives_Place_ATMine"; // CfgVehicle class for setup object.
|
||||
AGM_DelayTime = 2.5;
|
||||
class AGM_Triggers {
|
||||
AGM_Triggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSBoundingMine_Range_Mag:ATMine_Range_Mag{
|
||||
AGM_SetupObject = "AGM_Explosives_Place_APERSBoundingMine";
|
||||
class AGM_Triggers {
|
||||
AGM_Triggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.075;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSMine_Range_Mag:ATMine_Range_Mag{
|
||||
AGM_SetupObject = "AGM_Explosives_Place_APERSMine";
|
||||
class AGM_Triggers {
|
||||
AGM_Triggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.05;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSTripMine_Wire_Mag:ATMine_Range_Mag{
|
||||
AGM_SetupObject = "AGM_Explosives_Place_APERSTripwireMine";
|
||||
class AGM_Triggers {
|
||||
AGM_Triggers[] = {"Tripwire"};
|
||||
class Tripwire;
|
||||
};
|
||||
};
|
||||
|
||||
class ClaymoreDirectionalMine_Remote_Mag:CA_Magazine{
|
||||
AGM_Placeable = 1;
|
||||
useAction = 0;
|
||||
AGM_SetupObject = "AGM_Explosives_Place_Claymore"; // CfgVehicle class for setup object.
|
||||
AGM_DelayTime = 1.5;
|
||||
class AGM_Triggers {
|
||||
AGM_Triggers[] = {"Command"};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class SatchelCharge_Remote_Mag:CA_Magazine{
|
||||
AGM_Placeable = 1;
|
||||
useAction = 0;
|
||||
AGM_SetupObject = "AGM_Explosives_Place_SatchelCharge"; // CfgVehicle class for setup object.
|
||||
AGM_DelayTime = 1;
|
||||
class AGM_Triggers {
|
||||
AGM_Triggers[] = {"Timer","Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
class Timer {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class MK16_Transmitter:Command{};
|
||||
class DeadmanSwitch:Command{};
|
||||
};
|
||||
};
|
||||
class DemoCharge_Remote_Mag:SatchelCharge_Remote_Mag{
|
||||
AGM_SetupObject = "AGM_Explosives_Place_DemoCharge"; // CfgVehicle class for setup object.
|
||||
model = "\A3\Weapons_F\explosives\c4_charge_small_d";
|
||||
};
|
||||
|
||||
class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag{
|
||||
AGM_SetupObject = "AGM_Explosives_Place_SLAM";
|
||||
class AGM_Triggers {
|
||||
AGM_Triggers[] = {"IRSensor","PressurePlate","Timer","Command"};
|
||||
class PressurePlate{
|
||||
displayName = $STR_AGM_Explosives_SLAME_Magnetic;
|
||||
digDistance = 0;
|
||||
ammo = "SLAMDirectionalMine_Magnetic_Ammo";
|
||||
pitch = 90;
|
||||
};
|
||||
class IRSensor{
|
||||
displayName = $STR_AGM_Explosives_SLAME_IRSensor;
|
||||
};
|
||||
class Timer {
|
||||
ammo = "SLAMDirectionalMine_Timer_Ammo";
|
||||
};
|
||||
class Command {
|
||||
ammo = "SLAMDirectionalMine_Command_Ammo";
|
||||
fuseTime = 0.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgAGM_Triggers {
|
||||
/* onPlace parameters:
|
||||
0: OBJECT - unit placing
|
||||
1: OBJECT - Placed explosive
|
||||
2: STRING - Magazine classname
|
||||
3: ARRAY - vars
|
||||
Last Index: CfgAGM_Triggers config of trigger type.
|
||||
onSetup parameters:
|
||||
0: STRING - Magazine Classname
|
||||
*/
|
||||
class Command {
|
||||
displayName = $STR_AGM_Explosives_clacker_displayName;
|
||||
picture = "\AGM_Explosives\Data\UI\Clacker.paa";
|
||||
onPlace = "_this call AGM_Explosives_fnc_AddClacker;false";
|
||||
requires[] = {"AGM_Clacker"};
|
||||
};
|
||||
class MK16_Transmitter:Command {
|
||||
displayName = $STR_AGM_Explosives_MK16_displayName;
|
||||
picture = "\AGM_Explosives\Data\UI\MK16_Reciever_ca.paa";
|
||||
requires[] = {"AGM_M26_Clacker"};
|
||||
};
|
||||
class DeadManSwitch:Command {
|
||||
displayName = $STR_AGM_Explosives_DeadManSwitch_displayName;
|
||||
picture = "\AGM_Explosives\Data\UI\DeadmanSwitch.paa";
|
||||
requires[] = {"AGM_DeadManSwitch"};
|
||||
};
|
||||
class PressurePlate {
|
||||
displayName = $STR_AGM_Explosives_PressurePlate;
|
||||
picture = "AGM_Explosives\data\UI\Pressure_plate.paa";
|
||||
onPlace = "_dist=GetNumber(ConfigFile >> 'CfgMagazines' >> (_this select 2) >> 'AGM_Triggers' >> 'PressurePlate' >> 'digDistance');_ex=_this select 1;_ex setPosATL ((getPosATL _ex) vectorDiff ((VectorUp _ex) vectorCrossProduct [0,0,_dist]));false";
|
||||
};
|
||||
class IRSensor {
|
||||
displayName = $STR_AGM_Explosives_IRSensor;
|
||||
picture = "AGM_Explosives\data\UI\Pressure_plate.paa";
|
||||
onPlace = "false";
|
||||
};
|
||||
class Timer {
|
||||
displayName = $STR_AGM_Explosives_timerName;
|
||||
picture = "AGM_Explosives\data\UI\Timer.paa";
|
||||
onPlace = "[_this select 1, (_this select 3) select 0] call AGM_Explosives_fnc_startTimer;false";
|
||||
onSetup = "_this call AGM_Explosives_fnc_openTimerSetUI;true";
|
||||
};
|
||||
class Tripwire {
|
||||
displayName = $STR_AGM_Explosives_TripWire;
|
||||
picture = "AGM_Explosives\data\UI\Tripwire.paa";
|
||||
onPlace = "false";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgMineTriggers {
|
||||
class RangeTrigger;
|
||||
class MagneticTrigger: RangeTrigger {
|
||||
mineMagnetic = 1;
|
||||
mineTriggerRange = 1;
|
||||
};
|
||||
};
|
@ -1,65 +0,0 @@
|
||||
//class thingX;
|
||||
class Items_base_F;
|
||||
class AGM_Explosives_Place: Items_base_F {
|
||||
author = "AGM";
|
||||
_generalMacro = "AGM_Explosives_Place";
|
||||
displayName = "Multi-meter";
|
||||
mapSize = 0.2;
|
||||
icon = "iconObject_1x2";
|
||||
model = "\A3\Structures_F\Items\Tools\MultiMeter_F.p3d";
|
||||
scope = 2;
|
||||
scopeCurator = 1;
|
||||
vehicleClass = "Cargo";
|
||||
AGM_offset[] = {0,0,0};
|
||||
};
|
||||
|
||||
class AGM_Explosives_Place_DemoCharge:AGM_Explosives_Place {
|
||||
displayName = "Demo Charge";
|
||||
model = "\A3\Weapons_F\explosives\c4_charge_small_d";
|
||||
};
|
||||
class AGM_Explosives_Place_APERSBoundingMine:AGM_Explosives_Place {
|
||||
displayName = "APERS Bounding Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_bouncing";
|
||||
};
|
||||
class AGM_Explosives_Place_APERSMine:AGM_Explosives_Place {
|
||||
displayName = "APERS Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_ap";
|
||||
};
|
||||
class AGM_Explosives_Place_APERSTripwireMine:AGM_Explosives_Place {
|
||||
displayName = "APERS Tripwire Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_tripwire";
|
||||
AGM_offset[] = {1,0,0};
|
||||
};
|
||||
|
||||
class AGM_Explosives_Place_ATMine:AGM_Explosives_Place {
|
||||
displayName = "AT Mine";
|
||||
model = "\A3\Weapons_f\Explosives\mine_at";
|
||||
};
|
||||
|
||||
class AGM_Explosives_Place_Claymore:AGM_Explosives_Place {
|
||||
displayName = "Claymore";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore";
|
||||
};
|
||||
|
||||
class AGM_Explosives_Place_SatchelCharge:AGM_Explosives_Place {
|
||||
displayName = "Satchel Charge";
|
||||
model = "\A3\Weapons_F\Explosives\satchel";
|
||||
};
|
||||
|
||||
class AGM_Explosives_Place_SLAM:AGM_Explosives_Place {
|
||||
displayName = "SLAM";
|
||||
model = "\A3\Weapons_F\Explosives\mine_SLAM_directional";
|
||||
};
|
||||
/*
|
||||
class AGM_Explosives_Place_NavalMine:AGM_Explosives_Place {
|
||||
displayName = "Naval Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_naval";
|
||||
};
|
||||
class AGM_Explosives_Place_NavalABMine:AGM_Explosives_Place {
|
||||
displayName = "Naval Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_naval2";
|
||||
};
|
||||
class AGM_Explosives_Place_NavalPDMMine:AGM_Explosives_Place {
|
||||
displayName = "Naval Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_naval3";
|
||||
};*/
|
@ -1,55 +0,0 @@
|
||||
class CfgWeapons {
|
||||
class AGM_ItemCore;
|
||||
class InventoryItem_Base_f;
|
||||
|
||||
class AGM_ExplosiveItem: InventoryItem_Base_f {
|
||||
allowedSlots[] = {801,701,901};
|
||||
//type = 201;
|
||||
};
|
||||
|
||||
class AGM_Clacker: AGM_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_AGM_Explosives_clacker_displayName;
|
||||
descriptionShort = $STR_AGM_Explosives_clacker_description;
|
||||
picture = "\AGM_Explosives\Data\UI\Clacker.paa";
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
AGM_range = 250;
|
||||
AGM_Detonator = 1;
|
||||
|
||||
class ItemInfo: AGM_ExplosiveItem {
|
||||
mass = 3;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
class AGM_M26_Clacker: AGM_Clacker {
|
||||
displayName = $STR_AGM_Explosives_M26_displayName;
|
||||
picture = "\AGM_Explosives\Data\UI\MK26_Transmitter_ca.paa";
|
||||
AGM_range = 5000;
|
||||
};
|
||||
class AGM_DefusalKit: AGM_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_AGM_Explosives_DefusalKit_displayName;
|
||||
descriptionShort = $STR_AGM_Explosives_DefusalKit_description;
|
||||
picture = "\AGM_Explosives\Data\UI\pliers.paa";
|
||||
model = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
|
||||
|
||||
class ItemInfo: AGM_ExplosiveItem {
|
||||
mass = 5;
|
||||
uniformModel = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
|
||||
};
|
||||
};
|
||||
class AGM_DeadManSwitch: AGM_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_AGM_Explosives_DeadManSwitch_displayName;
|
||||
descriptionShort = $STR_AGM_Explosives_DeadManSwitch_description;
|
||||
picture = "\AGM_Explosives\Data\UI\DeadmanSwitch.paa";
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
AGM_range = 100;
|
||||
AGM_Detonator = 1;
|
||||
|
||||
class ItemInfo: AGM_ExplosiveItem {
|
||||
mass = 2;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
};
|
@ -1,74 +0,0 @@
|
||||
#define GUI_GRID_X (0)
|
||||
#define GUI_GRID_Y (0)
|
||||
#define GUI_GRID_W (0.025)
|
||||
#define GUI_GRID_H (0.04)
|
||||
|
||||
#define ST_CENTER 0x02
|
||||
|
||||
class RscText;
|
||||
class RscButton;
|
||||
|
||||
#define X_OFFSET 0.25
|
||||
|
||||
class RscXSliderH;
|
||||
class IGUIBack;
|
||||
|
||||
class Rsc_AGM_Timer_Slider:RscXSliderH{
|
||||
x = 0.4;
|
||||
y = 0.2;
|
||||
w = 0.3;
|
||||
h = "1*((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
colorBackground[] = {0,0,0,0.5};
|
||||
};
|
||||
|
||||
class RscAGM_SelectTimeUI
|
||||
{
|
||||
idd = 8854;
|
||||
movingEnable = 0;
|
||||
class controls {
|
||||
class back:IGUIBack {
|
||||
x = X_OFFSET;
|
||||
y = 0;
|
||||
w = 0.5;
|
||||
h = 0.2;
|
||||
colorBackground[] = {0, 0, 0, 0.5};
|
||||
};
|
||||
class header: RscText{
|
||||
idc = 8870;
|
||||
x = X_OFFSET + 0.005;
|
||||
y = 0.005;
|
||||
w = 0.49;
|
||||
h = 0.05;
|
||||
style = ST_CENTER;
|
||||
text = "";
|
||||
};
|
||||
class slider: Rsc_AGM_Timer_Slider {
|
||||
idc = 8845;
|
||||
x = X_OFFSET + 0.005;
|
||||
y = 0.06;
|
||||
w = 0.49;
|
||||
h = 0.025;
|
||||
onSliderPosChanged = "private ['_mins', '_secs'];_mins = floor((_this select 1)/60);_secs=floor((_this select 1) - (_mins*60));ctrlSetText [8870, format[localize 'STR_AGM_Explosives_TimerMenu',_mins, _secs]];";
|
||||
};
|
||||
class cancelBtn: RscButton {
|
||||
idc = 8855;
|
||||
x = X_OFFSET + 0.005;
|
||||
w = 0.15;
|
||||
h = 0.1;
|
||||
y = 0.09;
|
||||
style = ST_CENTER;
|
||||
text = $STR_AGM_Explosives_Cancel;
|
||||
action = "closeDialog 0;";
|
||||
};
|
||||
class approveBtn: RscButton {
|
||||
idc = 8860;
|
||||
x = X_OFFSET + 0.345;
|
||||
y = 0.09;
|
||||
h = 0.1;
|
||||
w = 0.15;
|
||||
style = ST_CENTER;
|
||||
text = $STR_AGM_Explosives_SetTime;
|
||||
action = "closeDialog 0;";
|
||||
};
|
||||
};
|
||||
};
|
@ -1,46 +0,0 @@
|
||||
class Module_F;
|
||||
class AGM_ModuleExplosive: Module_F {
|
||||
author = "AGM Team";
|
||||
category = "AGM";
|
||||
displayName = "Explosive System";
|
||||
function = "AGM_Explosives_fnc_module";
|
||||
scope = 2;
|
||||
isGlobal = 1;
|
||||
icon = "\AGM_Explosives\UI\IconExplosives_ca.paa";
|
||||
class Arguments {
|
||||
class RequireSpecialist {
|
||||
displayName = "Require specialists?";
|
||||
//description = "Require explosive specialists to plant/disable explosives? Default: No";
|
||||
// The above distinction is commented out due to the explanation in fn_SetupExplosive.sqf
|
||||
description = "Require explosive specialists to disable explosives? Default: No";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {
|
||||
name = "Yes";
|
||||
value = 1;
|
||||
};
|
||||
class No {
|
||||
default = 1;
|
||||
name = "No";
|
||||
value = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class PunishNonSpecialists {
|
||||
displayName = "Punish non-specialists?";
|
||||
description = "Increase the time it takes to complete actions for non-specialists? Default: Yes";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {
|
||||
default = 1;
|
||||
name = "Yes";
|
||||
value = 1;
|
||||
};
|
||||
class No {
|
||||
name = "No";
|
||||
value = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,300 +0,0 @@
|
||||
class CfgPatches {
|
||||
class AGM_Explosives {
|
||||
units[] = {};
|
||||
weapons[] = {"AGM_Clacker", "AGM_DefusalKit", "AGM_M26_Clacker", "AGM_DeadManSwitch"};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core, AGM_Interaction};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"Garth 'L-H' de Wet"};
|
||||
authorUrl = "https://github.com/corruptedheart/";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_Explosives {
|
||||
class Explosives {
|
||||
file="AGM_Explosives\functions";
|
||||
|
||||
class AddClacker;
|
||||
class CanDefuse;
|
||||
class DefuseExplosive;
|
||||
class DetonateExplosive;
|
||||
class HandleScrollWheel;
|
||||
|
||||
class hasExplosives;
|
||||
class hasPlacedExplosives;
|
||||
|
||||
class getDetonators;
|
||||
class getPlacedExplosives;
|
||||
|
||||
class initialise{postInit=1;};
|
||||
//class JammerInit;
|
||||
|
||||
class openDetonateUI;
|
||||
class openPlaceUI;
|
||||
class openTransmitterUI;
|
||||
class openTimerSetUI;
|
||||
class openTriggerSelectionUI;
|
||||
|
||||
class Place_Approve;
|
||||
class Place_Cancel;
|
||||
class PlaceExplosive;
|
||||
|
||||
class SelectTrigger;
|
||||
class SetupExplosive;
|
||||
class SetPos;
|
||||
class StartDefuse;
|
||||
class StartTimer;
|
||||
|
||||
class TriggerType;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
|
||||
name = #ITEM; \
|
||||
count = COUNT; \
|
||||
};
|
||||
|
||||
#define MACRO_DETONATEACTION class AGM_SelfActions { \
|
||||
class AGM_Explosives { \
|
||||
displayName = $STR_AGM_Explosives_Menu;\
|
||||
condition = "true";\
|
||||
statement = "";\
|
||||
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
|
||||
showDisabled = 1;\
|
||||
priority = 4;\
|
||||
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; \
|
||||
subMenu[] = {"AGM_Explosives", 1};\
|
||||
hotkey = "X";\
|
||||
class AGM_Detonate {\
|
||||
displayName = $STR_AGM_Explosives_Detonate;\
|
||||
condition = "[_player] call AGM_Explosives_fnc_hasPlacedExplosives and {count ([_player] call AGM_Explosives_fnc_getDetonators) > 0}";\
|
||||
statement = "[_player] call AGM_Explosives_fnc_openTransmitterUI;";\
|
||||
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
|
||||
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; \
|
||||
showDisabled = 1;\
|
||||
priority = 2;\
|
||||
hotkey = "T";\
|
||||
};\
|
||||
};\
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
|
||||
class CAManBase: Man {
|
||||
class AGM_SelfActions {
|
||||
class AGM_Explosives {
|
||||
displayName = $STR_AGM_Explosives_Menu;
|
||||
condition = "!(_player getVariable ['AGM_PlantingExplosive', false])";
|
||||
statement = "";
|
||||
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
|
||||
showDisabled = 1;
|
||||
priority = 4;
|
||||
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa";
|
||||
subMenu[] = {"AGM_Explosives", 1};
|
||||
hotkey = "X";
|
||||
//Sub-menu items
|
||||
class AGM_Detonate {
|
||||
displayName = $STR_AGM_Explosives_Detonate;
|
||||
condition = "[_player] call AGM_Explosives_fnc_hasPlacedExplosives and {count ([_player] call AGM_Explosives_fnc_getDetonators) > 0}";
|
||||
statement = "[_player] call AGM_Explosives_fnc_openTransmitterUI;";
|
||||
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
|
||||
showDisabled = 1;
|
||||
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa";
|
||||
priority = 2;
|
||||
hotkey = "T";
|
||||
};
|
||||
class AGM_Place {
|
||||
displayName = $STR_AGM_Explosives_Place;
|
||||
condition = "(vehicle _player == _player) and {[_player] call AGM_Explosives_fnc_hasExplosives}";
|
||||
statement = "[_player] call AGM_Explosives_fnc_openPlaceUI;";
|
||||
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
|
||||
showDisabled = 1;
|
||||
icon = "AGM_Explosives\UI\Place_Explosive_ca.paa";
|
||||
priority = 1;
|
||||
hotkey = "P";
|
||||
};
|
||||
class AGM_Defuse {
|
||||
displayName = $STR_AGM_Explosives_Defuse;
|
||||
condition = "[_player] call AGM_Explosives_fnc_CanDefuse";
|
||||
statement = "[_player, AGM_Interaction_Target] call AGM_Explosives_fnc_StartDefuse;";
|
||||
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
|
||||
showDisabled = 0;
|
||||
icon = "AGM_Explosives\UI\defuse_ca.paa";
|
||||
priority = 0.8;
|
||||
hotkey = "F";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgVehicles.hpp"
|
||||
|
||||
class NATO_Box_Base;
|
||||
class EAST_Box_Base;
|
||||
class IND_Box_Base;
|
||||
class FIA_Box_Base_F;
|
||||
class Box_NATO_Support_F;
|
||||
|
||||
class Box_NATO_AmmoOrd_F: NATO_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_Clacker,12)
|
||||
MACRO_ADDITEM(AGM_M26_Clacker,6)
|
||||
MACRO_ADDITEM(AGM_DefusalKit,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_East_AmmoOrd_F: EAST_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_Clacker,12)
|
||||
MACRO_ADDITEM(AGM_M26_Clacker,6)
|
||||
MACRO_ADDITEM(AGM_DefusalKit,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_IND_AmmoOrd_F: IND_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_Clacker,12)
|
||||
MACRO_ADDITEM(AGM_M26_Clacker,6)
|
||||
MACRO_ADDITEM(AGM_DefusalKit,12)
|
||||
MACRO_ADDITEM(AGM_Deadmanswitch,2)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_FIA_Ammo_F: FIA_Box_Base_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_Clacker,2)
|
||||
MACRO_ADDITEM(AGM_M26_Clacker,2)
|
||||
MACRO_ADDITEM(AGM_DefusalKit,2)
|
||||
MACRO_ADDITEM(AGM_Deadmanswitch,1)
|
||||
};
|
||||
};
|
||||
|
||||
class AGM_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_Clacker,12)
|
||||
MACRO_ADDITEM(AGM_M26_Clacker,6)
|
||||
MACRO_ADDITEM(AGM_DefusalKit,12)
|
||||
MACRO_ADDITEM(AGM_Deadmanswitch,6)
|
||||
};
|
||||
};
|
||||
|
||||
class B_Kitbag_rgr;
|
||||
class B_Kitbag_rgr_Exp: B_Kitbag_rgr {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit { // xXToOlKiT420mLgXx
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_ocamo;
|
||||
class B_Carryall_ocamo_Exp: B_Carryall_ocamo {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_oucamo;
|
||||
class B_Carryall_oucamo_Exp: B_Carryall_oucamo {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_oli;
|
||||
class G_Carryall_Exp: B_Carryall_oli {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class I_Carryall_oli_Exp: B_Carryall_oli {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "Module.hpp"
|
||||
|
||||
// Add AGM_Clacker and AGM_DefusalKit to every explosive unit.
|
||||
#define MACRO_ADDMINEKIT \
|
||||
items[] = {"FirstAidKit", "AGM_Clacker", "AGM_DefusalKit"}; \
|
||||
respawnitems[] = {"FirstAidKit", "AGM_Clacker", "AGM_DefusalKit"};
|
||||
|
||||
class B_Soldier_base_F; class B_soldier_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_03_f; class B_engineer_F:B_Soldier_03_f {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_diver_base_F; class B_diver_exp_F:B_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_recon_base; class B_recon_exp_F:B_Soldier_recon_base {MACRO_ADDMINEKIT};
|
||||
class B_CTRG_soldier_engineer_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_base_F; class I_G_engineer_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_exp_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
|
||||
class O_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
|
||||
class B_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
|
||||
class O_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_02_F; class I_Soldier_exp_F:I_Soldier_02_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_base_F; class I_engineer_F:I_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_diver_base_F; class I_diver_exp_F:I_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_base_F; class O_soldier_exp_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_engineer_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_diver_base_F; class O_diver_exp_F:O_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_recon_base; class O_recon_exp_F:O_Soldier_recon_base {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_Urban_base; class O_soldierU_exp_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT};
|
||||
class O_engineer_U_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT};
|
||||
class B_Protagonist_VR_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Protagonist_VR_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_Protagonist_VR_F:I_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_F; class b_soldier_universal_f:B_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class B_G_Soldier_F; class b_g_soldier_universal_f:B_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_F; class o_soldier_universal_f:O_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class O_G_Soldier_F; class o_g_soldier_universal_f:O_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class I_soldier_F; class i_soldier_universal_f:I_soldier_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_F; class i_g_soldier_universal_f:I_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
|
||||
// Add AGM_Clacker to snipers and spotters for setting off Claymores
|
||||
#define MACRO_ADDCLAYMOREKIT \
|
||||
items[] = {"FirstAidKit","AGM_Clacker"}; \
|
||||
respawnitems[] = {"FirstAidKit","AGM_Clacker"};
|
||||
|
||||
class B_Soldier_sniper_base_F;
|
||||
class B_sniper_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class B_spotter_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class I_Soldier_sniper_base_F;
|
||||
class I_Sniper_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class I_Spotter_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class O_Soldier_sniper_base_F;
|
||||
class O_sniper_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class O_spotter_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
|
||||
};
|
||||
|
||||
#include "CfgAmmo.hpp"
|
||||
#include "CfgMagazines.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
|
||||
#include "ExplosivesUI.hpp"
|
||||
|
||||
class CfgActions {
|
||||
class None;
|
||||
class Deactivate:None {
|
||||
show = 0;
|
||||
};
|
||||
class DeactivateMine:None {
|
||||
show = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class AGM_Parameters_Boolean {
|
||||
// Boolean Parameters (0/1)
|
||||
AGM_Explosives_RequireSpecialist = 0;
|
||||
AGM_Explosives_PunishNonSpecialists = 1;
|
||||
};
|
@ -1,45 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_AddClacker
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Adds an explosive as a clacker item to the passed unit if the unit has a AGM_Clacker item.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
1: OBJECT - Explosive
|
||||
2: STRING - Magazine
|
||||
3: ARRAY - Extra vars
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[_unit, _explosive, "SatchelCharge_Remote_Mag", [ConfigFile >> "CfgAGM_Triggers" >> "Command"]] call AGM_Explosives_fnc_AddClacker;
|
||||
*/
|
||||
private ["_unit", "_explosive", "_clacker", "_config", "_magazineClass", "_requiredItems", "_hasRequired"];
|
||||
_unit = _this select 0;
|
||||
_explosive = _this select 1;
|
||||
_magazineClass = _this select 2;
|
||||
// Config is the last item in the list of passed in items.
|
||||
_config = (_this select 3) select (count (_this select 3) - 1);
|
||||
|
||||
_requiredItems = getArray(_config >> "requires");
|
||||
_hasRequired = true;
|
||||
_detonators = [AGM_player] call AGM_Explosives_fnc_getDetonators;
|
||||
{
|
||||
if !(_x in _detonators) exitWith{
|
||||
_hasRequired = false;
|
||||
};
|
||||
} count _requiredItems;
|
||||
|
||||
if !(_hasRequired) exitWith {};
|
||||
_config = ConfigFile >> "CfgMagazines" >> _magazineClass >> "AGM_Triggers" >> configName _config;
|
||||
|
||||
_clacker = _unit getVariable ["AGM_Clacker", []];
|
||||
AGM_Explosives_PlacedCount = AGM_Explosives_PlacedCount + 1;
|
||||
_clacker pushBack [_explosive, getNumber(_config >> "FuseTime"), format [localize "STR_AGM_Explosives_DetonateCode", AGM_Explosives_PlacedCount], _magazineClass, configName ((_this select 3) select (count (_this select 3) - 1))];
|
||||
_unit setVariable ["AGM_Clacker", _clacker, true];
|
||||
_unit sideChat format [localize "STR_AGM_Explosives_DetonateCode", AGM_Explosives_PlacedCount];
|
@ -1,39 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_CanDefuse
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Checks if a unit can defuse an explosive
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player] call AGM_Explosives_fnc_CanDefuse;
|
||||
*/
|
||||
private "_unit";
|
||||
_unit = _this select 0;
|
||||
if (vehicle _unit != _unit || {!("AGM_DefusalKit" in (items _unit))}) exitWith {false};
|
||||
_isSpecialist = ([_unit] call AGM_Core_fnc_isEOD);
|
||||
|
||||
if (AGM_Explosives_RequireSpecialist && {!_isSpecialist}) exitWith {false};
|
||||
|
||||
_timeBombCore = nearestObject [_unit, "TimeBombCore"];
|
||||
_mineBase = nearestObject [_unit, "MineBase"];
|
||||
|
||||
_distCore = _unit distance _timeBombCore;
|
||||
_distBase = _unit distance _mineBase;
|
||||
_distance = 10;
|
||||
if (_distCore < _distBase) then {
|
||||
_distance = _distCore;
|
||||
AGM_Interaction_Target = _timeBombCore;
|
||||
}else{
|
||||
_distance = _distBase;
|
||||
AGM_Interaction_Target = _mineBase;
|
||||
};
|
||||
if (isNil "_distance") exitWith {false};
|
||||
_distance < 4
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_DetonateExplosive
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Detonates a remote Explosive.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - Unit detonating explosive
|
||||
1: NUMBER - Max range (-1 to ignore)
|
||||
2: ARRAY - Explosive
|
||||
0: OBJECT - Explosive
|
||||
1: NUMBER - Fuse Time
|
||||
3: BOOLEAN - Ignore Jammer
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
// Clacker
|
||||
[player, 100, [Explosive, 1], false] call AGM_Explosives_fnc_DetonateExplosive;
|
||||
*/
|
||||
private ["_item","_result", "_ignoreRange", "_ignoreJammer", "_unit", "_range"];
|
||||
_unit = _this select 0;
|
||||
_range = _this select 1;
|
||||
_item = _this select 2;
|
||||
_ignoreRange = (_range == -1);
|
||||
_ignoreJammer = true;//(_this select 4); // disabled while jammers aren't in place.
|
||||
_result = true;
|
||||
|
||||
if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {false};
|
||||
|
||||
if (!_ignoreJammer) then {
|
||||
{
|
||||
if (((_x select 2) getVariable ["AGM_JammerEnabled",false]) and {(_x select 0) distance (_item select 0) <= (_x select 1)}) exitWith {
|
||||
_result = false;
|
||||
};
|
||||
} count AGM_Explosives_Jammers;
|
||||
};
|
||||
if (!_result) exitWith{};
|
||||
|
||||
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then {
|
||||
private ["_exp", "_previousExp"];
|
||||
_previousExp = _item select 0;
|
||||
_exp = getText (ConfigFile >> "CfgAmmo" >> typeof (_previousExp) >> "AGM_Explosive");
|
||||
if (_exp != "") then {
|
||||
_exp = createVehicle [_exp, [0,0,15001], [], 0, "NONE"];
|
||||
_exp setDir (getDir _previousExp);
|
||||
_item set [0, _exp];
|
||||
_pos = getPosASL _previousExp;
|
||||
deleteVehicle _previousExp;
|
||||
_exp setPosASL _pos;
|
||||
};
|
||||
};
|
||||
_item spawn {
|
||||
sleep (_this select 1);
|
||||
(_this select 0) setDamage 1;
|
||||
};
|
||||
_result
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_HandleScrollWheel
|
||||
|
||||
Author(s):
|
||||
L-H
|
||||
|
||||
Description:
|
||||
Handles rotating of Explosives
|
||||
|
||||
Parameters:
|
||||
Number: Scroll amount
|
||||
|
||||
Returns:
|
||||
Boolean: Handled or not.
|
||||
|
||||
Example:
|
||||
1.2 call AGM_Explosives_fnc_HandleScrollWheel;
|
||||
*/
|
||||
private ["_obj"];
|
||||
if (isNull(AGM_Explosives_Setup) || {AGM_Modifier == 0} || !AGM_Explosives_pfeh_running) exitWith {false};
|
||||
|
||||
AGM_Explosives_Setup setDir ((getDir AGM_Explosives_Setup) + (_this*5));
|
||||
AGM_Explosives_TweakedAngle = AGM_Explosives_TweakedAngle + _this*5;
|
||||
|
||||
true
|
@ -1,42 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_JammerInit
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
|
||||
|
||||
Parameters:
|
||||
0:OBJECT - unit carrying
|
||||
1:OBJECT - Jammer
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player,JammerObject] call AGM_Explosives_fnc_JammerInit;
|
||||
*/
|
||||
if (isClass (configFile >> "CfgVehicles" >> (typeof (_this select 1))) and {getNumber(configFile >> "CfgVehicles" >> (typeof (_this select 1)) >> "AGM_JammerRange") > 0}) then {
|
||||
private ["_found"];
|
||||
_found = false;
|
||||
{
|
||||
if ((_x select 2) == (_this select 1)) exitWith {
|
||||
_x set [0, (_this select 0)];
|
||||
_found = true;
|
||||
};
|
||||
} count AGM_Explosives_Jammers;
|
||||
if !(_found) then {
|
||||
AGM_Explosives_Jammers pushBack [(_this select 0), getNumber(configFile >> "CfgVehicles" >> (typeof (_this select 1)) >> "AGM_JammerRange"),(_this select 1)];
|
||||
};
|
||||
publicVariable "AGM_Explosives_Jammers";
|
||||
private "_check";
|
||||
_check = (_this select 1) getVariable "AGM_JammerCharge";
|
||||
if (isNil "_check") then {
|
||||
(_this select 1) setVariable ["AGM_JammerCharge", getNumber(configFile >> "CfgVehicles" >> (typeof (_this select 1)) >> "AGM_JammerMaxCharge"), true];
|
||||
};
|
||||
_check = (_this select 1) getVariable "AGM_JammerEnabled";
|
||||
if (isNil "_check") then {
|
||||
(_this select 1) setVariable ["AGM_JammerEnabled", false, true];
|
||||
};
|
||||
};
|
@ -1,59 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_PlaceExplosive
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Places an explosive at the requested position
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
1: POSITION - Position to place explosive
|
||||
2: NUMBER - Rotation
|
||||
3: STRING - Magazine class
|
||||
4: Config - Config of trigger
|
||||
5: ARRAY - variables required for the trigger type
|
||||
|
||||
Returns:
|
||||
OBJECT: Placed explosive
|
||||
|
||||
Example:
|
||||
_explosive = [player, player modelToWorld [0,0.5, 0.1], 134, "SatchelCharge_Remote_Mag", "Command", []] call AGM_Explosives_fnc_PlaceExplosive;
|
||||
*/
|
||||
private ["_pos", "_dir", "_magazineClass", "_ammo", "_triggerSpecificVars", "_unit", "_triggerConfig", "_explosive"];
|
||||
_unit = _this select 0;
|
||||
_pos = _this select 1;
|
||||
_dir = _this select 2;
|
||||
_magazineClass = _this select 3;
|
||||
_triggerConfig = _this select 4;
|
||||
_triggerSpecificVars = _this select 5;
|
||||
_setDir = true;
|
||||
if (count _this > 6) then {
|
||||
_setDir = _this select 6;
|
||||
};
|
||||
|
||||
if (isNil "_triggerConfig") exitWith {
|
||||
diag_log format ["AGM_Explosives: Error config not passed to PlaceExplosive: %1", _this];
|
||||
objNull
|
||||
};
|
||||
|
||||
_magazineTrigger = ConfigFile >> "CfgMagazines" >> _magazineClass >> "AGM_Triggers" >> _triggerConfig;
|
||||
_triggerConfig = ConfigFile >> "CfgAGM_Triggers" >> _triggerConfig;
|
||||
|
||||
if (isNil "_triggerConfig") exitWith {
|
||||
diag_log format ["AGM_Explosives: Error config not found in PlaceExplosive: %1", _this];
|
||||
objNull
|
||||
};
|
||||
|
||||
_ammo = getText(ConfigFile >> "CfgMagazines" >> _magazineClass >> "ammo");
|
||||
if (isText(_magazineTrigger >> "ammo")) then {
|
||||
_ammo = getText (_magazineTrigger >> "ammo");
|
||||
};
|
||||
_triggerSpecificVars pushBack _triggerConfig;
|
||||
_explosive = createVehicle [_ammo, _pos, [], 0, "NONE"];
|
||||
if (isText(_triggerConfig >> "onPlace") && {[_unit,_explosive,_magazineClass,_triggerSpecificVars] call compile (getText (_triggerConfig >> "onPlace"))}) exitWith {_explosive};
|
||||
if (_setDir) then {
|
||||
[[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], "AGM_Explosives_fnc_setPos"] call AGM_Core_fnc_execRemoteFnc;
|
||||
};
|
||||
_explosive
|
@ -1,106 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_Place_Approve
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Approves placement of the explosive, releases the placement object for it to settle in a location suitable for the explosive to be created.
|
||||
|
||||
Parameters:
|
||||
Nothing
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
call AGM_Explosives_fnc_Place_Approve;
|
||||
*/
|
||||
if (AGM_Explosives_pfeh_running) then {
|
||||
["AGM_Explosives_Placement","OnEachFrame"] call BIS_fnc_removeStackedEventHandler;
|
||||
AGM_Explosives_pfeh_running = false;
|
||||
};
|
||||
private ["_mag", "_setup", "_player"];
|
||||
_setup = AGM_Explosives_Setup;
|
||||
AGM_Explosives_Setup = objNull;
|
||||
[AGM_Explosives_placer, "AGM_Explosives", false] call AGM_Core_fnc_setForceWalkStatus;
|
||||
AGM_Explosives_placer = objNull;
|
||||
_player = AGM_player;
|
||||
[_player, "DefaultAction", _player getVariable ["AGM_Explosive_Place", -1]] call AGM_Core_fnc_removeActionEventHandler;
|
||||
[_player, "MenuBack", _player getVariable ["AGM_Explosive_Cancel", -1]] call AGM_Core_fnc_removeActionEventHandler;
|
||||
call AGM_Interaction_fnc_hideMouseHint;
|
||||
if ((_setup getVariable ["AGM_Class", ""]) != "") then {
|
||||
_dir = (getDir _setup);
|
||||
if (_dir > 180) then {
|
||||
_dir = _dir - 180;
|
||||
} else {
|
||||
_dir = 180 + _dir;
|
||||
};
|
||||
_setup setVariable ["AGM_Dir", _dir];
|
||||
_player setVariable ["AGM_PlantingExplosive", true];
|
||||
_setup addEventHandler ["EpeContactStart", {
|
||||
if (!((_this select 0) getVariable ["AGM_Handled", false])) then {
|
||||
private ["_player", "_pos", "_attachTo"];
|
||||
_player = AGM_player;
|
||||
_pos = getPosATL (_this select 0);
|
||||
(_this select 0) enableSimulationGlobal false;
|
||||
if (surfaceIsWater _pos) then {
|
||||
_pos = getPosASL (_this select 0);
|
||||
(_this select 0) setPosASL _pos;
|
||||
}else{
|
||||
(_this select 0) setPosATL _pos;
|
||||
};
|
||||
(_this select 0) setVariable ["AGM_Handled", true];
|
||||
_player setVariable ["AGM_PlantingExplosive", false];
|
||||
_attachTo = objNull;
|
||||
if (!isNull (_this select 1) && {(_this select 1) isKindOf "AllVehicles"}) then {
|
||||
_attachTo = (_this select 1);
|
||||
};
|
||||
[(_this select 0),_attachTo, _pos] spawn {
|
||||
private ["_mag", "_setup", "_dir", "_player"];
|
||||
_setup = _this select 0;
|
||||
_player = AGM_player;
|
||||
_mag = _setup getVariable ["AGM_Class", ""];
|
||||
_dir = _setup getVariable ["AGM_Dir", 0];
|
||||
|
||||
sleep getNumber(ConfigFile >> "CfgMagazines" >> _mag >> "AGM_DelayTime");
|
||||
_explosive = [_player, _this select 2, _dir, _mag, _setup getVariable "AGM_Trigger", [_setup getVariable "AGM_Timer"], isNull (_this select 1)] call AGM_Explosives_fnc_PlaceExplosive;
|
||||
deleteVehicle _setup;
|
||||
if (!isNull(_explosive)) then {
|
||||
_player RemoveMagazine _mag;
|
||||
sleep 0.2;
|
||||
if (!isNull (_this select 1)) then {
|
||||
_explosive attachTo [(_this select 1)];
|
||||
_dir = _dir - (getDir (_this select 1));
|
||||
[[_explosive, _dir, 0], "AGM_Explosives_fnc_setPos"] call AGM_Core_fnc_execRemoteFnc;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
_setup enableSimulationGlobal true;
|
||||
_player playActionNow "MedicOther";
|
||||
[_setup] spawn {
|
||||
private ["_setup", "_player"];
|
||||
_setup = _this select 0;
|
||||
_player = AGM_player;
|
||||
sleep 5;
|
||||
if (!isNull _setup) then {
|
||||
private ["_mag", "_dir", "_delayTime"];
|
||||
_mag = _setup getVariable ["AGM_Class", ""];
|
||||
_dir = _setup getVariable ["AGM_Dir", 0];
|
||||
_delayTime = (getNumber(ConfigFile >> "CfgMagazines" >> _mag >> "AGM_DelayTime")) - 5;
|
||||
if (_delayTime > 0) then {
|
||||
sleep _delayTime;
|
||||
};
|
||||
if (!isNull _setup) then {
|
||||
[_player, GetPosATL _setup, _dir, _mag, _setup getVariable "AGM_Trigger", [_setup getVariable "AGM_Timer"], true] call AGM_Explosives_fnc_PlaceExplosive;
|
||||
deleteVehicle _setup;
|
||||
_player RemoveMagazine _mag;
|
||||
_player setVariable ["AGM_PlantingExplosive", false];
|
||||
};
|
||||
};
|
||||
};
|
||||
}else{
|
||||
deleteVehicle _setup;
|
||||
};
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_Place_Cancel
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Cancels placement of the explosive
|
||||
|
||||
Parameters:
|
||||
Nothing
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
call AGM_Explosives_fnc_Place_Cancel;
|
||||
*/
|
||||
if (AGM_Explosives_pfeh_running) then {
|
||||
["AGM_Explosives_Placement","OnEachFrame"] call BIS_fnc_removeStackedEventHandler;
|
||||
AGM_Explosives_pfeh_running = false;
|
||||
};
|
||||
if (!isNull (AGM_Explosives_Setup)) then {
|
||||
deleteVehicle AGM_Explosives_Setup;
|
||||
};
|
||||
AGM_Explosives_Setup = objNull;
|
||||
if (isNil {AGM_Explosives_placer}) then {
|
||||
AGM_Explosives_placer = objNull;
|
||||
};
|
||||
[AGM_Explosives_placer, "AGM_Explosives", false] call AGM_Core_fnc_setForceWalkStatus;
|
||||
AGM_Explosives_placer = objNull;
|
||||
call AGM_Interaction_fnc_hideMouseHint;
|
||||
[AGM_player, "DefaultAction", AGM_player getVariable ["AGM_Explosive_Place", -1]] call AGM_Core_fnc_removeActionEventHandler;
|
||||
[AGM_player, "MenuBack", AGM_player getVariable ["AGM_Explosive_Cancel", -1]] call AGM_Core_fnc_removeActionEventHandler;
|
@ -1,65 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_SetupExplosive
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Starts the setup process for the passed explosive.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - Unit placing explosive.
|
||||
1: STRING - Classname of explosive to place. (CfgMagazine class)
|
||||
2: Config - Trigger Config
|
||||
3: NUMBER - (optional) timer
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player, "SatchelCharge_Remote_Mag", "Command"] call AGM_Explosives_fnc_SetupExplosive;
|
||||
*/
|
||||
_this spawn {
|
||||
private ["_unit", "_class", "_config", "_timer"];
|
||||
_unit = _this select 0;
|
||||
_class = _this select 1;
|
||||
_config = _this select 2;
|
||||
_timer = _this select 3;
|
||||
AGM_Explosives_placer = _unit;
|
||||
// Commented out due to the fact there is a distinction between who can deactivate mines and who can plant them in standard configs.
|
||||
// Would require custom config entries (AGM_ExplosiveSpecialist/AGM_Specialist) which excludes custom mods.
|
||||
//if (AGM_Explosives_RequireSpecialist && {!([_unit] call AGM_Core_fnc_isEOD)}) exitWith {};
|
||||
if (isNil "_config") then {
|
||||
_config = getArray(ConfigFile >> "CfgMagazines" >> _class >> "AGM_Triggers" >> "AGM_Triggers") select 0;
|
||||
};
|
||||
|
||||
AGM_Explosives_Setup = getText(ConfigFile >> "CfgMagazines" >> _class >> "AGM_SetupObject") createVehicleLocal [0,0,-10000];
|
||||
|
||||
AGM_Explosives_Setup enableSimulationGlobal false;
|
||||
AGM_Explosives_Setup setVariable ["AGM_Class", _class];
|
||||
AGM_Explosives_Setup setVariable ["AGM_Trigger", _config];
|
||||
//AGM_Explosives_Setup setVariable ["AGM_Offset", GetArray(ConfigFile >> "CfgVehicles" >> typeof AGM_Explosives_Setup >> "AGM_Offset")];
|
||||
if (!isNil "_timer") then {
|
||||
AGM_Explosives_Setup setVariable ["AGM_Timer", _timer];
|
||||
};
|
||||
|
||||
[_unit, "AGM_Explosives", true] call AGM_Core_fnc_setForceWalkStatus;
|
||||
AGM_Explosives_TweakedAngle = 180;
|
||||
["AGM_Explosives_Placement","OnEachFrame", {
|
||||
private "_player";
|
||||
_player = AGM_player;
|
||||
if (AGM_Explosives_placer != _player) exitWith {
|
||||
call AGM_Explosives_fnc_Place_Cancel;
|
||||
};
|
||||
AGM_Explosives_pfeh_running = true;
|
||||
_pos = (ASLtoATL eyePos _player) vectorAdd (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]);
|
||||
//_pos = _pos vectorAdd ((VectorDir AGM_Explosives_setup) vectorCrossProduct (AGM_Explosives_setup getVariable ["AGM_Offset", [0,0,0]]));
|
||||
AGM_Explosives_Setup setPosATL _pos;
|
||||
if (AGM_Modifier == 0) then {
|
||||
AGM_Explosives_Setup setDir (AGM_Explosives_TweakedAngle + getDir _player);
|
||||
};
|
||||
}] call BIS_fnc_addStackedEventHandler;
|
||||
[localize "STR_AGM_Explosives_PlaceAction", localize "STR_AGM_Explosives_CancelAction",localize "STR_AGM_Explosives_ScrollAction"] call AGM_Interaction_fnc_showMouseHint;
|
||||
_unit setVariable ["AGM_Explosive_Place", [_unit, "DefaultAction", {AGM_Explosives_pfeh_running AND !isNull (AGM_Explosives_setup)}, {call AGM_Explosives_fnc_Place_Approve;}] call AGM_Core_fnc_AddActionEventHandler];
|
||||
_unit setVariable ["AGM_Explosive_Cancel", [_unit, "MenuBack", {AGM_Explosives_pfeh_running AND !isNull (AGM_Explosives_setup)}, {call AGM_Explosives_fnc_Place_Cancel;}] call AGM_Core_fnc_AddActionEventHandler];
|
||||
};
|
@ -1,65 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_StartDefuse
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Starts defusing an explosive
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - Unit to defuse explosive
|
||||
1: OBJECT - Target explosive
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player, AGM_Interaction_Target] call AGM_Explosives_fnc_StartDefuse;
|
||||
*/
|
||||
private ["_unit","_target"];
|
||||
_unit = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
// [_specialist, _target] call _fnc_DefuseTime;
|
||||
_fnc_DefuseTime = {
|
||||
_target = _this select 1;
|
||||
|
||||
_defuseTime = 5;
|
||||
if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "AGM_DefuseTime")) then {
|
||||
_defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "AGM_DefuseTime");
|
||||
};
|
||||
if (!(_this select 0) && {AGM_Explosives_PunishNonSpecialists}) then {
|
||||
_defuseTime = _defuseTime * 1.5;
|
||||
};
|
||||
_defuseTime
|
||||
};
|
||||
_actionToPlay = "MedicOther";
|
||||
if (STANCE _unit == "Prone") then {
|
||||
_actionToPlay = "PutDown";
|
||||
};
|
||||
|
||||
if (AGM_player != _unit) then {
|
||||
// If the unit is a player, call the function on the player.
|
||||
if (isPlayer _unit) then {
|
||||
[[_unit, _target], "AGM_Explosives_fnc_StartDefuse", _unit] call AGM_Core_fnc_execRemoteFnc;
|
||||
} else {
|
||||
[_unit, _target, [[_unit] call AGM_Core_fnc_isEOD, _target] call _fnc_DefuseTime] spawn {
|
||||
(_this select 0) playActionNow _actionToPlay;
|
||||
(_this select 0) disableAI "MOVE";
|
||||
(_this select 0) disableAI "TARGET";
|
||||
sleep (_this select 2);
|
||||
[(_this select 0), (_this select 1)] call AGM_Explosives_fnc_DefuseExplosive;
|
||||
(_this select 0) enableAI "MOVE";
|
||||
(_this select 0) enableAI "TARGET";
|
||||
};
|
||||
};
|
||||
} else {
|
||||
_unit playActionNow _actionToPlay;
|
||||
if (AGM_Explosives_RequireSpecialist) then {
|
||||
if ([_unit] call AGM_Core_fnc_isEOD) then {
|
||||
[[true, _target] call _fnc_DefuseTime, [_unit,_target], "AGM_Explosives_fnc_DefuseExplosive", localize "STR_AGM_Explosives_DefusingExplosive"] call AGM_Core_fnc_progressBar;
|
||||
};
|
||||
} else {
|
||||
[[([_unit] call AGM_Core_fnc_isEOD), _target] call _fnc_DefuseTime, [_unit,_target], "AGM_Explosives_fnc_DefuseExplosive", localize "STR_AGM_Explosives_DefusingExplosive"] call AGM_Core_fnc_progressBar;
|
||||
};
|
||||
};
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_startTimer
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Starts a timer for an explosive.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - Explosive
|
||||
1: NUMBER - time till detonation
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[_explosive, 10] call AGM_Explosives_fnc_startTimer;
|
||||
*/
|
||||
_this spawn {
|
||||
private ["_explosive", "_timer"];
|
||||
_explosive = _this select 0;
|
||||
_timer = _this select 1;
|
||||
|
||||
sleep _timer;
|
||||
if (!isNull _explosive) then {
|
||||
[_explosive, -1, [_explosive, 0], true] call AGM_Explosives_fnc_DetonateExplosive;
|
||||
};
|
||||
};
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_TriggerType
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Gets the types of triggers associated with the explosive
|
||||
|
||||
Parameters:
|
||||
0: String - Explosive magazine
|
||||
|
||||
Returns:
|
||||
ARRAY
|
||||
|
||||
Example:
|
||||
_supports = ["SatchelCharge_Remote_Mag"] call AGM_Explosives_fnc_TriggerType;
|
||||
*/
|
||||
private "_result";
|
||||
_result = [];
|
||||
_config = getArray (ConfigFile >> "CfgMagazines" >> (_this select 0) >> "AGM_Triggers" >> "AGM_Triggers");
|
||||
_count = count _config;
|
||||
|
||||
for "_index" from 0 to (_count - 1) do {
|
||||
_result set [_index, ConfigFile >> "CfgAGM_Triggers" >> (_config select _index)];
|
||||
};
|
||||
_result
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_DefuseExplosive
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Defuses an Explosive
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
1: OBJECT - Explosive
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player, AGM_Interaction_Target] call AGM_Explosives_fnc_DefuseExplosive;
|
||||
*/
|
||||
private ["_unit", "_explosive"];
|
||||
_unit = _this select 0;
|
||||
_explosive = _this select 1;
|
||||
|
||||
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof _explosive >> "AGM_explodeOnDefuse") == 1) exitWith {
|
||||
[_unit, -1, [_explosive, 1], true] call AGM_Explosives_fnc_DetonateExplosive;
|
||||
};
|
||||
|
||||
_unit action ["Deactivate", _unit, _explosive];
|
@ -1,31 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_getDetonators
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Gets all the detonators of a specific unit
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - Unit to get detonators of
|
||||
|
||||
Returns:
|
||||
ARRAY - Configs of all detonators.
|
||||
|
||||
Example:
|
||||
_detonators = [player] call AGM_Explosives_fnc_getDetonators;
|
||||
*/
|
||||
private ["_unit", "_items", "_result", "_config"];
|
||||
_unit = _this select 0;
|
||||
_items = (items _unit);
|
||||
_result = [];
|
||||
|
||||
{
|
||||
_config = ConfigFile >> "CfgWeapons" >> _x;
|
||||
if (getNumber (_config >> "AGM_Detonator") == 1) then {
|
||||
_result pushBack _x;
|
||||
};
|
||||
} forEach _items;
|
||||
|
||||
_result
|
@ -1,49 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_getPlacedExplosives
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Gets all placed explosives, whether Clacker based or not.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
1: STRING - (OPTIONAL) Trigger classname for filter.
|
||||
|
||||
Returns:
|
||||
Array: Explosives.
|
||||
|
||||
Example:
|
||||
_allExplosives = [player] call AGM_Explosives_fnc_getPlacedExplosives;
|
||||
_deadmanExplosives = [player, "DeadManSwitch"] call AGM_Explosives_fnc_getPlacedExplosives;
|
||||
*/
|
||||
private ["_unit", "_clackerList", "_adjustedList", "_list", "_filter"];
|
||||
_unit = _this select 0;
|
||||
_filter = nil;
|
||||
if (count _this > 1) then {
|
||||
_filter = ConfigFile >> "CfgAGM_Triggers" >> (_this select 1);
|
||||
};
|
||||
_clackerList = [];
|
||||
_adjustedList = false;
|
||||
_clackerList = _unit getVariable ["AGM_Clacker", []];
|
||||
_list = [];
|
||||
{
|
||||
if isNull (_x select 0) then {
|
||||
_clackerList set [_foreachIndex, "X"];
|
||||
_adjustedList = true;
|
||||
} else {
|
||||
if (isNil "_filter" || {(ConfigFile >> "CfgAGM_Triggers" >> (_x select 4)) == _filter}) then {
|
||||
_list pushBack _x;
|
||||
};
|
||||
};
|
||||
} foreach _clackerList;
|
||||
if (_adjustedList) then {
|
||||
_clackerList = _clackerList - ["X"];
|
||||
if (count _clackerList == 0) then {
|
||||
_unit SetVariable ["AGM_Clacker", nil, true];
|
||||
} else {
|
||||
_unit SetVariable ["AGM_Clacker", _clackerList, true];
|
||||
};
|
||||
};
|
||||
|
||||
_list
|
@ -1,28 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_hasExplosives
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Whether the passed unit has any explosives on them.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
|
||||
Returns:
|
||||
BOOLEAN - True if the unit has explosives.
|
||||
|
||||
Example:
|
||||
_hasExplosives = [player] call AGM_Explosives_fnc_hasExplosives;
|
||||
*/
|
||||
private ["_unit", "_result", "_magazines"];
|
||||
_result = false;
|
||||
_unit = _this select 0;
|
||||
_magazines = magazines _unit;
|
||||
{
|
||||
if (getNumber (ConfigFile >> "CfgMagazines" >> _x >> "AGM_Placeable") == 1) exitWith {
|
||||
_result = true;
|
||||
};
|
||||
} count _magazines;
|
||||
|
||||
_result
|
@ -1,18 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_hasPlacedExplosives
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Whether the passed unit has placed any explosives or has a clacker that was used when explosives were placed.
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
|
||||
Returns:
|
||||
BOOLEAN - True if the unit has explosives.
|
||||
|
||||
Example:
|
||||
_hasPLacedExplosives = [player] call AGM_Explosives_fnc_hasPlacedExplosives;
|
||||
*/
|
||||
(count (_this call AGM_Explosives_fnc_getPlacedExplosives) > 0)
|
@ -1,73 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_Initialise
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Initialises explosive behaviour.
|
||||
|
||||
Parameters:
|
||||
None
|
||||
|
||||
Returns:
|
||||
None
|
||||
|
||||
Example:
|
||||
None
|
||||
*/
|
||||
if !(hasInterface) exitWith {};
|
||||
AGM_Explosives_PlacedCount = 0;
|
||||
AGM_Explosives_Setup = objNull;
|
||||
AGM_Explosives_pfeh_running = false;
|
||||
AGM_Explosives_null = [] spawn {
|
||||
waitUntil {sleep 0.356;!isNull(player)};
|
||||
[{(_this select 0) call AGM_Explosives_fnc_HandleScrollWheel;}] call AGM_Core_fnc_addScrollWheelEventHandler;
|
||||
player addEventHandler ["Respawn", {
|
||||
[(_this select 0)] call AGM_Explosives_fnc_initialiseUnit;
|
||||
}];
|
||||
player addEventHandler ["Killed", {
|
||||
private "_deadman";
|
||||
call AGM_Explosives_fnc_Place_Cancel;
|
||||
_deadman = [(_this select 0), "DeadManSwitch"] call AGM_Explosives_fnc_getPlacedExplosives;
|
||||
{
|
||||
[(_this select 0), -1, _x, true] call AGM_Explosives_fnc_DetonateExplosive;
|
||||
} count _deadman;
|
||||
}];
|
||||
player addEventHandler ["Take", {
|
||||
private ["_item", "_getter", "_giver", "_config"];
|
||||
_item = _this select 2;
|
||||
_getter = _this select 0;
|
||||
_giver = _this select 1;
|
||||
|
||||
_config = ConfigFile >> "CfgWeapons" >> _item;
|
||||
if (isClass _config && {getNumber(_config >> "AGM_Detonator") == 1}) then {
|
||||
private ["_clackerItems"];
|
||||
_clackerItems = _giver getVariable ["AGM_Clacker", []];
|
||||
_getter SetVariable ["AGM_Clacker", (_getter getVariable ["AGM_Clacker", []]) + _clackerItems, true];
|
||||
|
||||
_detonators = [_giver] call AGM_Explosives_fnc_getDetonators;
|
||||
if (count _detonators == 0) then {
|
||||
_giver setVariable ["AGM_Clacker", nil, true];
|
||||
};
|
||||
};
|
||||
}];
|
||||
player addEventHandler ["Put", {
|
||||
private ["_item", "_getter", "_giver", "_config"];
|
||||
_item = _this select 2;
|
||||
_getter = _this select 1;
|
||||
_giver = _this select 0;
|
||||
|
||||
_config = ConfigFile >> "CfgWeapons" >> _item;
|
||||
if (isClass _config && {getNumber(_config >> "AGM_Detonator") == 1}) then {
|
||||
private ["_clackerItems"];
|
||||
_clackerItems = _giver getVariable ["AGM_Clacker", []];
|
||||
_getter SetVariable ["AGM_Clacker", (_getter getVariable ["AGM_Clacker", []]) + _clackerItems, true];
|
||||
|
||||
_detonators = [_giver] call AGM_Explosives_fnc_getDetonators;
|
||||
if (count _detonators == 0) then {
|
||||
_giver setVariable ["AGM_Clacker", nil, true];
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_isSpecialist
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Checks whether the passed unit is an explosive specialist.
|
||||
Either through config entry: "canDeactivateMines"
|
||||
or
|
||||
unit setVariable ["AGM_isEOD", true]
|
||||
|
||||
Parameters:
|
||||
OBJECT - Unit to check if is a specialist
|
||||
|
||||
Returns:
|
||||
BOOLEAN
|
||||
|
||||
Example:
|
||||
_isSpecialist = player call AGM_Explosives_fnc_isSpecialist;
|
||||
*/
|
||||
private "_isSpecialist";
|
||||
_isSpecialist = _this getVariable "AGM_isEOD";
|
||||
if (isNil "_isSpecialist") then {
|
||||
_isSpecialist = getNumber(ConfigFile >> "CfgVehicles" >> typeof _this >> "canDeactivateMines") == 1;
|
||||
};
|
||||
_isSpecialist
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_module
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Initialises the explosives module
|
||||
|
||||
Parameters:
|
||||
Things
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
|
||||
*/
|
||||
if !(isServer) exitWith {};
|
||||
_logic = _this select 0;
|
||||
_activated = _this select 2;
|
||||
|
||||
if !(_activated) exitWith {};
|
||||
|
||||
[_logic, "AGM_Explosives_RequireSpecialist", "RequireSpecialist" ] call AGM_Core_fnc_readBooleanParameterFromModule;
|
||||
[_logic, "AGM_Explosives_PunishNonSpecialists", "PunishNonSpecialists" ] call AGM_Core_fnc_readBooleanParameterFromModule;
|
||||
|
||||
diag_log text "[AGM]: Explosive Module Initialized.";
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_openDetonateUI
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Opens the UI for explosive detonation selection
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
0: STRING - Classname of detonator
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player, "AGM_M26_Clacker"] call AGM_Explosives_fnc_openDetonateUI;
|
||||
*/
|
||||
private ["_unit","_result", "_item"];
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
_unit = _this select 0;
|
||||
_detonator = _this select 1;
|
||||
_range = GetNumber (ConfigFile >> "CfgWeapons" >> _detonator >> "AGM_Range");
|
||||
|
||||
_result = [_unit] call AGM_Explosives_fnc_getPlacedExplosives;
|
||||
_actions = [localize "STR_AGM_Explosives_DetonateMenu", localize "STR_AGM_Explosives_Detonate"] call AGM_Interaction_fnc_prepareSelectMenu;
|
||||
_count = 0;
|
||||
{
|
||||
if (!isNull(_x select 0)) then {
|
||||
_required = getArray (ConfigFile >> "CfgAGM_Triggers" >> (_x select 4) >> "requires");
|
||||
if (_detonator in _required) then {
|
||||
_item = ConfigFile >> "CfgMagazines" >> (_x select 3);
|
||||
_actions = [
|
||||
_actions,
|
||||
_x select 2,
|
||||
getText(_item >> "picture"),
|
||||
[_foreachIndex, _range]
|
||||
] call AGM_Interaction_fnc_AddSelectableItem;
|
||||
_count = _count + 1;
|
||||
};
|
||||
};
|
||||
} foreach _result;
|
||||
if (_count > 0) then {
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[
|
||||
AGM_player,
|
||||
[_this select 1] call AGM_Core_fnc_toNumber,
|
||||
(AGM_player getVariable ["AGM_Clacker", []]) select ([_this select 0] call AGM_Core_fnc_toNumber),
|
||||
false
|
||||
] call AGM_Explosives_fnc_DetonateExplosive;
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
},
|
||||
{[AGM_player] call AGM_Explosives_fnc_openTransmitterUI;}
|
||||
] call AGM_Interaction_fnc_openSelectMenu;
|
||||
}else{
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
[AGM_player] call AGM_Explosives_fnc_openTransmitterUI;
|
||||
[localize "STR_AGM_Explosives_NoExplosivesAvailable"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_openPlaceUI
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Opens the UI for explosive placement selection
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player] call AGM_Explosives_fnc_openPlaceUI;
|
||||
*/
|
||||
private ["_unit","_mags", "_item", "_index", "_actions"];
|
||||
_unit = _this select 0;
|
||||
call AGM_Explosives_fnc_Place_Cancel;
|
||||
|
||||
_mags = magazines _unit;
|
||||
_list = [];
|
||||
_itemCount = [];
|
||||
{
|
||||
_item = ConfigFile >> "CfgMagazines" >> _x;
|
||||
if (getNumber(_item >> "AGM_Placeable") == 1) then {
|
||||
_index = _list find _item;
|
||||
if (_index != -1) then {
|
||||
_itemCount set [_index, (_itemCount select _index) + 1];
|
||||
} else {
|
||||
_list pushBack _item;
|
||||
_itemCount pushBack 1;
|
||||
};
|
||||
};
|
||||
} forEach _mags;
|
||||
_actions = [localize "STR_AGM_Explosives_PlaceMenu", localize "STR_AGM_Explosives_Place"] call AGM_Interaction_fnc_prepareSelectMenu;
|
||||
{
|
||||
_actions = [
|
||||
_actions,
|
||||
format [getText(_x >> "displayName") + " (%1)", _itemCount select _foreachIndex],
|
||||
getText(_x >> "picture"),
|
||||
configName _x
|
||||
] call AGM_Interaction_fnc_AddSelectableItem;
|
||||
} foreach _list;
|
||||
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[_this] call AGM_Explosives_fnc_openTriggerSelectionUI;
|
||||
},
|
||||
{
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {
|
||||
"AGM_Explosives" call AGM_Interaction_fnc_openMenuSelf;
|
||||
};
|
||||
}
|
||||
] call AGM_Interaction_fnc_openSelectMenu;
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_openTimerSetUI
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Opens the UI for timer setting of an explosive
|
||||
|
||||
Parameters:
|
||||
0: String - Magazine
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player] call AGM_Explosives_fnc_openTimerSetUI;
|
||||
*/
|
||||
private ["_mag"];
|
||||
_mag = _this select 0;
|
||||
createDialog "RscAGM_SelectTimeUI";
|
||||
sliderSetRange [8845, 5, 900]; // 5seconds - 15minutes
|
||||
sliderSetPosition [8845, 30];
|
||||
|
||||
buttonSetAction [8860, format["[AGM_player, '%1', 'Timer', floor(sliderPosition 8845)] call AGM_Explosives_fnc_SetupExplosive;closeDialog 0;", _mag]];
|
||||
buttonSetAction [8855, format["['%1'] call AGM_Explosives_fnc_openTriggerSelectionUI;", _mag]];
|
||||
|
||||
ctrlSetText [8870, format[localize "STR_AGM_Explosives_TimerMenu",0, 30]];
|
@ -1,51 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_openTransmitterUI
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Opens the UI for selecting the transmitter
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - Unit
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[player] call AGM_Explosives_fnc_openTransmitterUI;
|
||||
*/
|
||||
private ["_items", "_unit", "_count", "_actions", "_config"];
|
||||
_unit = _this select 0;
|
||||
_items = (items _unit);
|
||||
|
||||
_actions = [localize "STR_AGM_Explosives_TriggerMenu", localize "STR_AGM_Explosives_SelectTrigger"] call AGM_Interaction_fnc_prepareSelectMenu;
|
||||
_detonators = [_unit] call AGM_Explosives_fnc_getDetonators;
|
||||
{
|
||||
_config = ConfigFile >> "CfgWeapons" >> _x;
|
||||
_actions = [
|
||||
_actions,
|
||||
getText(_config >> "displayName"),
|
||||
getText(_config >> "picture"),
|
||||
_x
|
||||
] call AGM_Interaction_fnc_AddSelectableItem;
|
||||
} count _detonators;
|
||||
|
||||
if (count _detonators == 0) then {
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
"AGM_Explosives" call AGM_Interaction_fnc_openMenuSelf;
|
||||
[format[localize "STR_AGM_Explosives_NoTriggersAvailable", "player"]] call AGM_Core_fnc_displayTextStructured;
|
||||
}else{
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[AGM_player, _this] call AGM_Explosives_fnc_openDetonateUI;
|
||||
},
|
||||
{
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {
|
||||
"AGM_Explosives" call AGM_Interaction_fnc_openMenuSelf;
|
||||
};
|
||||
}
|
||||
] call AGM_Interaction_fnc_openSelectMenu;
|
||||
};
|
@ -1,56 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_openTriggerSelectionUI
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Opens the UI for explosive trigger selection
|
||||
|
||||
Parameters:
|
||||
0: String - explosive magazine
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[lbData [8866, lbCurSel 8866]] call AGM_Explosives_fnc_openTriggerSelectionUI;
|
||||
*/
|
||||
private ["_magazine", "_hasRequiredItems","_triggerTypes", "_actions", "_detonators", "_required", "_magTriggers"];
|
||||
_magazine = _this select 0;
|
||||
_detonators = [AGM_player] call AGM_Explosives_fnc_getDetonators;
|
||||
|
||||
_triggerTypes = [_magazine] call AGM_Explosives_fnc_TriggerType;
|
||||
_magTriggers = ConfigFile >> "CfgMagazines" >> _magazine >> "AGM_Triggers";
|
||||
_actions = [localize "STR_AGM_Explosives_TriggerMenu", localize "STR_AGM_Explosives_SelectTrigger"] call AGM_Interaction_fnc_prepareSelectMenu;
|
||||
_count = 0;
|
||||
{
|
||||
_required = getArray (_x >> "requires");
|
||||
_hasRequiredItems = true;
|
||||
{
|
||||
if !(_x in _detonators) exitWith {
|
||||
_hasRequiredItems = false;
|
||||
};
|
||||
} count _required;
|
||||
if (_hasRequiredItems) then {
|
||||
_actions = [
|
||||
_actions,
|
||||
if(isText(_magTriggers >> configName _x >> "displayName"))then{getText(_magTriggers >> configName _x >> "displayName")}else{getText(_x >> "displayName")},
|
||||
if(isText(_magTriggers >> configName _x >> "picture"))then{getText(_magTriggers >> configName _x >> "picture")}else{getText(_x >> "picture")},
|
||||
[configName _x, _magazine]
|
||||
] call AGM_Interaction_fnc_AddSelectableItem;
|
||||
_count = _count + 1;
|
||||
};
|
||||
} count _triggerTypes;
|
||||
|
||||
if (_count == 0) then {
|
||||
[AGM_player] call AGM_Explosives_fnc_openPlaceUI;
|
||||
[format[localize "STR_AGM_Explosives_NoTriggersAvailable", getText(configFile >> "CfgMagazines" >> _magazine >> "DisplayName")]] call AGM_Core_fnc_displayTextStructured;
|
||||
}else{
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[_this select 1, _this select 0] call AGM_Explosives_fnc_selectTrigger;
|
||||
},
|
||||
{[AGM_player] call AGM_Explosives_fnc_openPlaceUI;}
|
||||
] call AGM_Interaction_fnc_openSelectMenu;
|
||||
};
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_selectTrigger
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Selects a trigger for an explosive.
|
||||
|
||||
Parameters:
|
||||
0: String - Magazine
|
||||
1: String - trigger index in AGM_triggers of magazine class
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
["SatchelCharge_Remote_Mag","Timer"] call AGM_Explosives_fnc_selectTrigger;
|
||||
*/
|
||||
private ["_magazine","_trigger"];
|
||||
closeDialog 0;
|
||||
_magazine = _this select 0;
|
||||
_trigger = _this select 1;
|
||||
_config = ConfigFile >> "CfgAGM_Triggers" >> _trigger;
|
||||
call AGM_Interaction_fnc_hideMenu;
|
||||
|
||||
// If the onSetup function returns true, it is handled elsewhere
|
||||
if (isText(_config >> "onSetup") && {[_magazine] call compile getText (_config >> "onSetup")}) exitWith {};
|
||||
|
||||
[AGM_player, _magazine, _trigger] call AGM_Explosives_fnc_SetupExplosive;
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Explosives_fnc_SetPos
|
||||
|
||||
Author(s):
|
||||
Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Sets the Dir and pitch
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - Object
|
||||
1: NUMBER - Direction
|
||||
2: NUMBER - Pitch
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
Example:
|
||||
[_explosive, 150, 90] call AGM_Explosives_fnc_SetPos;
|
||||
*/
|
||||
private "_ex";
|
||||
_ex=_this select 0;
|
||||
_ex setDir (_this select 1);
|
||||
if ((_this select 2) != 0) then {
|
||||
[_ex, _this select 2, 0] call BIS_fnc_setPitchBank;
|
||||
};
|
||||
//_ex setVectorUp (surfaceNormal _pos);
|
@ -1,494 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-16 -->
|
||||
<Project name="AGM">
|
||||
<Package name="Explosives">
|
||||
<Key ID="STR_AGM_Explosives_Menu">
|
||||
<English>Explosives >></English>
|
||||
<German>Sprengstoffe >></German>
|
||||
<Spanish>Explosivos >></Spanish>
|
||||
<Polish>Ładunki wybuchowe >></Polish>
|
||||
<French>Explosifs >></French>
|
||||
<Czech>Výbušniny >></Czech>
|
||||
<Italian>Esplosivi >></Italian>
|
||||
<Hungarian>Robbanóanyagok >></Hungarian>
|
||||
<Portuguese>Explosivos >></Portuguese>
|
||||
<Russian>Взрывчатка >></Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Place">
|
||||
<English>Place >></English>
|
||||
<German>Platzieren >></German>
|
||||
<Spanish>Colocar >></Spanish>
|
||||
<Polish>Umieść >></Polish>
|
||||
<French>Placer >></French>
|
||||
<Czech>Položit >></Czech>
|
||||
<Italian>Piazza >></Italian>
|
||||
<Hungarian>Lerakás >></Hungarian>
|
||||
<Portuguese>Colocar >></Portuguese>
|
||||
<Russian>Установить >></Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Detonate">
|
||||
<English>Detonate >></English>
|
||||
<German>Zünden >></German>
|
||||
<Spanish>Detonar >></Spanish>
|
||||
<Polish>Detonuj >></Polish>
|
||||
<French>Mise à feu >></French>
|
||||
<Czech>Odpálit >></Czech>
|
||||
<Italian>Detona >></Italian>
|
||||
<Hungarian>Robbantás >></Hungarian>
|
||||
<Portuguese>Detonar >></Portuguese>
|
||||
<Russian>Подрыв >></Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_DetonateCode">
|
||||
<English>Explosive code: %1</English>
|
||||
<German>Sprengstoffcode: %1</German>
|
||||
<Spanish>Código del explosivo: %1</Spanish>
|
||||
<Polish>Kod ładunku: %1</Polish>
|
||||
<French>Code explosif: %1</French>
|
||||
<Czech>Kód výbušniny: %1</Czech>
|
||||
<Italian>Codice dell'esplosivo : %1</Italian>
|
||||
<Hungarian>Robbanóanyag kódja: %1</Hungarian>
|
||||
<Portuguese>Código do explosivo: %1</Portuguese>
|
||||
<Russian>Взрывная код: %1</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_PlaceAction">
|
||||
<English>Place</English>
|
||||
<German>Platzieren</German>
|
||||
<Spanish>Colocar</Spanish>
|
||||
<Polish>Umieść</Polish>
|
||||
<French>Placer</French>
|
||||
<Czech>Položit</Czech>
|
||||
<Italian>Piazza</Italian>
|
||||
<Hungarian>Elhelyezés</Hungarian>
|
||||
<Portuguese>Colocar</Portuguese>
|
||||
<Russian>Положить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_CancelAction">
|
||||
<English>Cancel</English>
|
||||
<German>Abbrechen</German>
|
||||
<Spanish>Cancelar</Spanish>
|
||||
<Polish>Anuluj</Polish>
|
||||
<French>Annuler</French>
|
||||
<Czech>Zrušit</Czech>
|
||||
<Italian>Annulla</Italian>
|
||||
<Hungarian>Mégsem</Hungarian>
|
||||
<Portuguese>Cancelar</Portuguese>
|
||||
<Russian>Отмена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_ScrollAction">
|
||||
<English>+ Modifier, rotates</English>
|
||||
<German>+ Modifikator, drehen</German>
|
||||
<Spanish>+ Modificador, girar</Spanish>
|
||||
<French>+ Modificateur, tourner</French>
|
||||
<Italian>+ Modificatore, rotazione</Italian>
|
||||
<Czech>+ Otočit</Czech>
|
||||
<Hungarian>+ Változtatás, forgatás</Hungarian>
|
||||
<Polish>+ modyfikator, obracanie</Polish>
|
||||
<Portuguese>+ Modificador, rotaciona</Portuguese>
|
||||
<Russian>+ Bращать</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Jammer_TurnOn">
|
||||
<English>Turn On Thor III</English>
|
||||
<German>Thor III aktivieren</German>
|
||||
<Spanish>Encender Thor III</Spanish>
|
||||
<Polish>Włącz Thor III</Polish>
|
||||
<French>Allumer Thor III</French>
|
||||
<Czech>Zapnout Thor III</Czech>
|
||||
<Italian>Accendi Thor III</Italian>
|
||||
<Hungarian>Thor III bekapcsolása</Hungarian>
|
||||
<Portuguese>Ativar Thor III</Portuguese>
|
||||
<Russian>Активировать Thor III</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Jammer_TurnOff">
|
||||
<English>Turn Off Thor III</English>
|
||||
<German>Thor III deaktivieren</German>
|
||||
<Spanish>Apagar Thor III</Spanish>
|
||||
<Polish>Wyłącz Thor III</Polish>
|
||||
<French>Éteindre Thor III</French>
|
||||
<Czech>Vypnout Thor III</Czech>
|
||||
<Italian>Spegni Thor III</Italian>
|
||||
<Hungarian>Thor III kikapcsolása</Hungarian>
|
||||
<Portuguese>Desativar Thor III</Portuguese>
|
||||
<Russian>Деактивировать Thor III</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_cellphone_displayName">
|
||||
<English>Cellphone</English>
|
||||
<German>Mobiltelefon</German>
|
||||
<Spanish>Télefono móvil</Spanish>
|
||||
<Polish>Telefon komórkowy</Polish>
|
||||
<French>Téléphone Portable</French>
|
||||
<Czech>Telefon</Czech>
|
||||
<Italian>Cellulare</Italian>
|
||||
<Hungarian>Mobil</Hungarian>
|
||||
<Portuguese>Celular</Portuguese>
|
||||
<Russian>Сотовый телефон</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_cellphone_description">
|
||||
<English>Used to remotely trigger explosives</English>
|
||||
<German>Wird benutzt um Sprengstoffe fernzuzünden</German>
|
||||
<Spanish>Usado para detonar remotamente explosivos</Spanish>
|
||||
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
|
||||
<French>Utilisé pour déclencher des explosifs à distance</French>
|
||||
<Czech>Používaný ke vzdálenému odpalování výbušnin</Czech>
|
||||
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
|
||||
<Russian>Используется для удаленного запуска взрывчатку</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_clacker_displayName">
|
||||
<English>M57 Firing Device</English>
|
||||
<German>M57 Zündvorrichtung</German>
|
||||
<Spanish>Dispositivo de detonación M57</Spanish>
|
||||
<Polish>Zapalnik M57</Polish>
|
||||
<French>M57 Dispositif de mise à feu</French>
|
||||
<Czech>M57 Odpalovací Zařízení</Czech>
|
||||
<Italian>Detonatore M57</Italian>
|
||||
<Hungarian>M57 Detonátor</Hungarian>
|
||||
<Portuguese>M57 Dispositivo de Detonação</Portuguese>
|
||||
<Russian>Взрыватель M57</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_clacker_description">
|
||||
<English>Used to remotely trigger explosives</English>
|
||||
<German>Wird benutzt um Sprengstoffe fernzuzünden</German>
|
||||
<Spanish>Usado para detonar remotamente explosivos</Spanish>
|
||||
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
|
||||
<French>Utilisé pour déclencher des explosifs à distance</French>
|
||||
<Czech>Použévané ke vzdálenému odpalování výbušnin</Czech>
|
||||
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
|
||||
<Russian>Используется для удаленного запуска взрывчатку</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_M26_displayName">
|
||||
<English>M26 Firing Device</English>
|
||||
<German>M26 Zündvorrichtung</German>
|
||||
<Spanish>Dispositivo de detonación MK26</Spanish>
|
||||
<Polish>Zapalnik M26</Polish>
|
||||
<French>M26 Dispositif de mise à feu</French>
|
||||
<Czech>M26 Odpalovací Zařízení</Czech>
|
||||
<Italian>Detonatore M26</Italian>
|
||||
<Hungarian>M26 Detonátor</Hungarian>
|
||||
<Portuguese>M26 Dispositivo de Detonação</Portuguese>
|
||||
<Russian>Взрыватель M26</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_MK16_displayName">
|
||||
<English>M152 RAMS</English>
|
||||
<German>M152 RAMS</German>
|
||||
<Czech>M152 RAMS</Czech>
|
||||
<French>M152 RAMS</French>
|
||||
<Hungarian>M152 RAMS</Hungarian>
|
||||
<Polish>M152 RAMS</Polish>
|
||||
<Portuguese>M152 RAMS</Portuguese>
|
||||
<Russian>M152 RAMS</Russian>
|
||||
<Spanish>M152 RAMS</Spanish>
|
||||
<Italian>M152 RAMS</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_DefusalKit_displayName">
|
||||
<English>Defusal Kit</English>
|
||||
<German>Entschärfungskit</German>
|
||||
<Spanish>Kit de desactivación</Spanish>
|
||||
<Polish>Zestaw do rozbrajania</Polish>
|
||||
<French>Kit de désamorçage</French>
|
||||
<Czech>Zneškodňovací sada</Czech>
|
||||
<Italian>Kit E.O.D.</Italian>
|
||||
<Hungarian>Hatástalanító felszerelés</Hungarian>
|
||||
<Portuguese>Kit de desarme</Portuguese>
|
||||
<Russian>Разминирование комплект</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_DefusalKit_description">
|
||||
<English>Allows defusing of explosives</English>
|
||||
<German>Erlaubt die Entschärfung von Sprengstoffen</German>
|
||||
<Spanish>Permite desactivar explosivos</Spanish>
|
||||
<Polish>Umożliwia rozbrajanie ładunków wybuchowych</Polish>
|
||||
<French>Permet de désamorçer des explosifs</French>
|
||||
<Czech>Dovoluje zneškodňování výbušnin</Czech>
|
||||
<Italian>Consente la disattivazione degli ordigni esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok hatástalanításához</Hungarian>
|
||||
<Portuguese>Permite o desarme de explosivos</Portuguese>
|
||||
<Russian>Allows defusing of explosives</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Phone_AddToSpeedDial">
|
||||
<English>Add to Speed Dial</English>
|
||||
<German>Zur Schnellauswahl hinzufügen</German>
|
||||
<Spanish>Agregar a marcado rápido</Spanish>
|
||||
<Polish>Dodaj do szybkiego wybierania</Polish>
|
||||
<French>Ajouter à la composition rapide</French>
|
||||
<Czech>Přidat jako rychlou volbu</Czech>
|
||||
<Italian>Aggiungi alla selezione rapida</Italian>
|
||||
<Hungarian>Hozzáadás gyorshíváshoz</Hungarian>
|
||||
<Portuguese>Adicionar à ligação rápida</Portuguese>
|
||||
<Russian>Добавить в ускоренный набор</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Clear">
|
||||
<English>Clear</English>
|
||||
<German>Löschen</German>
|
||||
<Spanish>Borrar</Spanish>
|
||||
<Polish>Usuń</Polish>
|
||||
<French>Désamorçé</French>
|
||||
<Czech>Čistý</Czech>
|
||||
<Italian>Libera</Italian>
|
||||
<Hungarian>Törlés</Hungarian>
|
||||
<Portuguese>Limpar</Portuguese>
|
||||
<Russian>Pассеиваться</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Phone_Dial">
|
||||
<English>Dial</English>
|
||||
<German>Wählen</German>
|
||||
<Spanish>Marcar</Spanish>
|
||||
<Polish>Wybierz mumer</Polish>
|
||||
<French>Composer</French>
|
||||
<Czech>Vytočit</Czech>
|
||||
<Italian>Composizione numero</Italian>
|
||||
<Hungarian>Tárcsázás</Hungarian>
|
||||
<Portuguese>Discar</Portuguese>
|
||||
<Russian>Hабрать</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Phone_Up">
|
||||
<English>Up</English>
|
||||
<German>Hoch</German>
|
||||
<Spanish>Arriba</Spanish>
|
||||
<Polish>W górę</Polish>
|
||||
<French>Haut</French>
|
||||
<Czech>Nahoru</Czech>
|
||||
<Italian>Sopra</Italian>
|
||||
<Hungarian>Fel</Hungarian>
|
||||
<Portuguese>Cima</Portuguese>
|
||||
<Russian>Поднять</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Phone_Down">
|
||||
<English>Down</English>
|
||||
<German>Runter</German>
|
||||
<Spanish>Abajo</Spanish>
|
||||
<Polish>W dół</Polish>
|
||||
<French>Bas</French>
|
||||
<Czech>Dolu</Czech>
|
||||
<Italian>Sotto</Italian>
|
||||
<Hungarian>Le</Hungarian>
|
||||
<Portuguese>Baixo</Portuguese>
|
||||
<Russian>Опустить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Cancel">
|
||||
<English>Cancel</English>
|
||||
<German>Abbrechen</German>
|
||||
<Spanish>Cancelar</Spanish>
|
||||
<Polish>Anuluj</Polish>
|
||||
<French>Annuler</French>
|
||||
<Czech>Zrušit</Czech>
|
||||
<Italian>Annulla</Italian>
|
||||
<Hungarian>Mégsem</Hungarian>
|
||||
<Portuguese>Cancelar</Portuguese>
|
||||
<Russian>Отмена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_DetonateMenu">
|
||||
<English>Detonate Menu</English>
|
||||
<German>"Zünden"-Menü</German>
|
||||
<Spanish>Menú de detonación</Spanish>
|
||||
<Polish>Menu detonowania</Polish>
|
||||
<French>Menu de mise à feu</French>
|
||||
<Czech>Menu Detonace</Czech>
|
||||
<Italian>Menù di detonazione</Italian>
|
||||
<Hungarian>Robbantás menü</Hungarian>
|
||||
<Portuguese>Menu de detonação</Portuguese>
|
||||
<Russian>Меню Подрыв</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_PlaceMenu">
|
||||
<English>Place Menu</English>
|
||||
<German>"Platzieren"-Menü</German>
|
||||
<Spanish>Menú de colocación</Spanish>
|
||||
<Polish>Menu umieszczania</Polish>
|
||||
<French>Menu Placement</French>
|
||||
<Czech>Menu Umístění</Czech>
|
||||
<Italian>Menù di collocamento</Italian>
|
||||
<Hungarian>Lerakás menü</Hungarian>
|
||||
<Portuguese>Menu de posicionamento</Portuguese>
|
||||
<Russian>Меню Установить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_Defuse">
|
||||
<English>Defuse</English>
|
||||
<German>Entschärfen</German>
|
||||
<Spanish>Desactivar</Spanish>
|
||||
<Polish>Rozbrój</Polish>
|
||||
<French>Désamorçer</French>
|
||||
<Czech>Zneškodnit</Czech>
|
||||
<Italian>Disinnesca</Italian>
|
||||
<Hungarian>Hatástalanítás</Hungarian>
|
||||
<Portuguese>Desarmar</Portuguese>
|
||||
<Russian>Обезвредить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_DefusingExplosive">
|
||||
<English>Defusing Explosive...</English>
|
||||
<German>Entschärfe Sprengstoff...</German>
|
||||
<Spanish>Desactivando explosivo...</Spanish>
|
||||
<Polish>Rozbrajanie ładunku...</Polish>
|
||||
<French>Désamorçage des explosifs...</French>
|
||||
<Czech>Zneškodňuji Výbušninu...</Czech>
|
||||
<Italian>Esposivo in fase di disattivazione...</Italian>
|
||||
<Hungarian>Robbanóanyag hatástalaníása...</Hungarian>
|
||||
<Portuguese>Desarmando Explosivo...</Portuguese>
|
||||
<Russian>Обезвреживание...</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_timerName">
|
||||
<English>Timer</English>
|
||||
<German>Zeitzünder</German>
|
||||
<Spanish>Temporizador</Spanish>
|
||||
<Polish>Czasomierz</Polish>
|
||||
<French>Retard</French>
|
||||
<Czech>Časovač</Czech>
|
||||
<Italian>Cronometro</Italian>
|
||||
<Hungarian>Időzített</Hungarian>
|
||||
<Portuguese>Timer</Portuguese>
|
||||
<Russian>Временной</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_TimerMenu">
|
||||
<English>Time: %1m %2s</English>
|
||||
<German>Zeit: %1m %2s</German>
|
||||
<Spanish>Tiempo: %1m %2s</Spanish>
|
||||
<Polish>Czas: %1m %2s</Polish>
|
||||
<French>Temps : %1m %2s</French>
|
||||
<Czech>Čas: %1m %2s</Czech>
|
||||
<Italian>Tempo : %1m %2s</Italian>
|
||||
<Hungarian>Idő: %1m %2s</Hungarian>
|
||||
<Portuguese>Tempo: %1m %2s</Portuguese>
|
||||
<Russian>Tемп: %1m %2c</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_SetTime">
|
||||
<English>Set Time</English>
|
||||
<German>Zeit einstellen</German>
|
||||
<Spanish>Configurar tiempo</Spanish>
|
||||
<Polish>Ustaw czas</Polish>
|
||||
<French>Régler retard</French>
|
||||
<Czech>Nastavit Čas</Czech>
|
||||
<Italian>Modifica il conto alla rovescia</Italian>
|
||||
<Hungarian>Idő állítása</Hungarian>
|
||||
<Portuguese>Configurar Tempo</Portuguese>
|
||||
<Russian>Xронометр</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_TriggerMenu">
|
||||
<English>Select a Trigger</English>
|
||||
<German>Wähle einen Zünder</German>
|
||||
<Spanish>Seleccionar un disparador</Spanish>
|
||||
<Polish>Wybierz zapalnik</Polish>
|
||||
<French>Sélectionner une mise à feu</French>
|
||||
<Czech>Zvolit Detonátor</Czech>
|
||||
<Italian>Seleziona un Attivatore</Italian>
|
||||
<Hungarian>Detonátor kiválasztása</Hungarian>
|
||||
<Portuguese>Selecionar um Gatilho</Portuguese>
|
||||
<Russian>Выберите</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_SelectTrigger">
|
||||
<English>Select</English>
|
||||
<German>Wählen</German>
|
||||
<Spanish>Seleccionar</Spanish>
|
||||
<Polish>Wybierz</Polish>
|
||||
<French>Sélectionner</French>
|
||||
<Czech>Zvolit</Czech>
|
||||
<Italian>Seleziona</Italian>
|
||||
<Hungarian>Kiválasztás</Hungarian>
|
||||
<Portuguese>Selecionar</Portuguese>
|
||||
<Russian>Выбрать защелка</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_PressurePlate">
|
||||
<English>Pressure Plate</English>
|
||||
<Polish>Płyta naciskowa</Polish>
|
||||
<Spanish>Placa de presión</Spanish>
|
||||
<German>Druckplatte</German>
|
||||
<French>Plaque de pression</French>
|
||||
<Czech>Nášlapná nástraha</Czech>
|
||||
<Italian>Piastra a Pressione</Italian>
|
||||
<Hungarian>Nyomólap</Hungarian>
|
||||
<Portuguese>Placa de pressão</Portuguese>
|
||||
<Russian>Давление</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_TripWire">
|
||||
<English>Tripwire</English>
|
||||
<Polish>Linka naciągu</Polish>
|
||||
<Spanish>Cable trampa</Spanish>
|
||||
<German>Stolperdraht</German>
|
||||
<French>Fil de butée</French>
|
||||
<Czech>Nástražný drát</Czech>
|
||||
<Italian>Filo a Inciampo</Italian>
|
||||
<Hungarian>Botlódrót</Hungarian>
|
||||
<Portuguese>Linha de tração</Portuguese>
|
||||
<Russian>Натяжной</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_IRSensor">
|
||||
<English>IR Sensor</English>
|
||||
<Polish>Czujnik podczerwieni</Polish>
|
||||
<Spanish>Sensor IR</Spanish>
|
||||
<German>Infrarotsensor</German>
|
||||
<French>Capteur IR</French>
|
||||
<Czech>IR Značkovač</Czech>
|
||||
<Italian>Sensore IR</Italian>
|
||||
<Hungarian>IR szenzor</Hungarian>
|
||||
<Portuguese>Sensor IV</Portuguese>
|
||||
<Russian>ИК</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_NoTriggersAvailable">
|
||||
<English>No triggers available for %1</English>
|
||||
<Polish>Brak dostępnych zapalników dla %1</Polish>
|
||||
<Spanish>No hay detonadores disponibles para %1</Spanish>
|
||||
<German>Keine Auslöser vorhanden für %1</German>
|
||||
<French>Pas de mise à feu disponible pour %1</French>
|
||||
<Czech>Žádný detonátor k dispozici pro %1</Czech>
|
||||
<Italian>Nessun attivatore disponibile per %1</Italian>
|
||||
<Hungarian>Nincs detonátor a %1</Hungarian>
|
||||
<Portuguese>Nenhum gatilho disponível para %1</Portuguese>
|
||||
<Russian>Нет защелка доступны для %1</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_SLAME_IRSensor">
|
||||
<English>IR Sensor (Side Attack)</English>
|
||||
<Polish>Czujnik podczerwieni (wybuch na bok)</Polish>
|
||||
<Spanish>Sensor IR (ataque lateral)</Spanish>
|
||||
<German>Infrarotsensor (Seitenangriff)</German>
|
||||
<French>Capteur IR (de flanc)</French>
|
||||
<Czech>IR Značkovač (Výbuch stranou)</Czech>
|
||||
<Italian>Sensore IR (Attacco laterale)</Italian>
|
||||
<Hungarian>IR Sensor (Side Attack)</Hungarian>
|
||||
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
|
||||
<Russian>ИК (боковая атака)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_SLAME_Magnetic">
|
||||
<English>Magnetic Influence Sensor (Bottom Attack)</English>
|
||||
<Polish>Czujnik magnetyczny (wybuch w górę)</Polish>
|
||||
<Spanish>Sensor IM (ataque inferior)</Spanish>
|
||||
<German>Magnetfeldsensor (Bodenangriff)</German>
|
||||
<French>Capteur Magnétique (par le bas)</French>
|
||||
<Czech>Magnetický Senzor (Výbuch ze spoda)</Czech>
|
||||
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
|
||||
<Hungarian>Mágneses (Bottom Attack)</Hungarian>
|
||||
<Portuguese>Influência magnética (ataque inferior)</Portuguese>
|
||||
<Russian>Магнитный (дно атака)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_NoExplosivesAvailable">
|
||||
<English>No explosives on trigger.</English>
|
||||
<German>Keine Sprengladungen auf diesem Auslöser.</German>
|
||||
<Spanish>Ningún explosivo en el detonador.</Spanish>
|
||||
<French>Pas d'explosif à mettre à feu.</French>
|
||||
<Italian>Nessun esplosivo sul sensore.</Italian>
|
||||
<Czech>Žádná výbušnina k odpálení.</Czech>
|
||||
<Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian>
|
||||
<Polish>Brak ładunków na zapalnik.</Polish>
|
||||
<Portuguese>Nenhum explosivo no gatilho.</Portuguese>
|
||||
<Russian>Нет взрывчатки на курок.</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_DeadManSwitch_displayName">
|
||||
<English>Dead Man's Switch</English>
|
||||
<German>Totmannschalter</German>
|
||||
<French>Mise à feu par relâchement de pression</French>
|
||||
<Czech>Spínač mrtvého muže</Czech>
|
||||
<Polish>Czuwak</Polish>
|
||||
<Spanish>Detonador de hombre muerto</Spanish>
|
||||
<Hungarian>Dead Man's Switch</Hungarian>
|
||||
<Russian>Кнопка мертвеца</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_Explosives_DeadManSwitch_description">
|
||||
<English>Used to remotely trigger explosives when released.</English>
|
||||
<German>Zündet Sprengladungen wenn losgelassen.</German>
|
||||
<French>Déclenche la mise à feu d'un explosif lorsqu'il est libéré.</French>
|
||||
<Czech>Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny</Czech>
|
||||
<Polish>Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity.</Polish>
|
||||
<Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -1,257 +0,0 @@
|
||||
|
||||
#define MACRO_RANGERFINDER \
|
||||
class CA_Distance; \
|
||||
class AGM_CA_Distance: CA_Distance { \
|
||||
idc = 1713151; \
|
||||
text = "----"; \
|
||||
}; \
|
||||
class AGM_Rangehelper: RscMapControl { \
|
||||
onDraw = "((ctrlParent (_this select 0)) displayCtrl 1713151) ctrlShow (cameraView == 'GUNNER');"; \
|
||||
w = 0; \
|
||||
h = 0; \
|
||||
};
|
||||
|
||||
class RscControlsGroup;
|
||||
class RscMapControl;
|
||||
|
||||
class RscInGameUI {
|
||||
class RscUnitInfo;
|
||||
class RscUnitInfo_AH64D_gunner {
|
||||
onLoad = "";
|
||||
controls[] = {"CA_Distance", "AGM_CA_Distance"};
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
class RscWeaponRangeFinder {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
controls[] = {"CA_Distance", "AGM_CA_Distance"};
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
//class RscWeaponRangeArtillery
|
||||
//class RscWeaponRangeArtilleryAuto
|
||||
|
||||
class RscWeaponRangeFinderPAS13 {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
class RscOptics_Rangefinder: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_LaserDesignator {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscWeaponRangeFinderMAAWS {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscWeaponRangeFinderAbramsCom {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
controls[] = {"CA_Distance", "AGM_CA_Distance"};
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
class RscWeaponRangeFinderAbramsGun {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
controls[] = {"CA_Distance", "AGM_CA_Distance"};
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
class RscWeaponRangeFinderStrykerMGSGun {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
controls[] = {"CA_Distance", "AGM_CA_Distance"};
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
class RscOptics_crows: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_strider_commander {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RscWeaponRangeZeroing: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
controls[] = {"CA_Zeroing", "CA_DistanceText", "CA_Distance", "AGM_CA_Distance", "AGM_Rangehelper"};
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
class RscOptics_sos: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_nightstalker: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_tws: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_punisher {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_tws_sniper: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_SDV_periscope {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_Heli_Attack_02_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_Heli_Attack_01_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_UAV_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_UGV_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Tracked_01_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Tracked_03_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Wheeled_01_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Wheeled_03_commander: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Wheeled_03_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_01_commander: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_01_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_02_commander: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_02_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_03_gunner: RscUnitInfo {
|
||||
onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGERFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,3 +0,0 @@
|
||||
AGM_FCSEnabled = true;
|
||||
AGM_FCSTime = -1;
|
||||
AGM_FCSPosition = [0,0,0];
|
@ -1,899 +0,0 @@
|
||||
class CfgPatches {
|
||||
class AGM_FireControlSystem {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core, AGM_Interaction};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"KoffeinFlummi","BadGuy (simon84)"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
};
|
||||
};
|
||||
|
||||
// @todo: clean up inheritance and remove old code
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_FCS {
|
||||
class AGM_FCS {
|
||||
file = "AGM_FireControlSystem\functions";
|
||||
class adjustRange;
|
||||
class canUseFCS;
|
||||
class canUseRangefinder;
|
||||
class firedEH;
|
||||
class getAngle;
|
||||
class getImpactPoint;
|
||||
class getRange;
|
||||
class keyDown;
|
||||
class keyUp;
|
||||
class reset;
|
||||
class vehicleInit;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class AGM_FCS {
|
||||
clientInit = "call compile preprocessFileLineNumbers '\AGM_FireControlSystem\clientInit.sqf'";
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Init_EventHandlers {
|
||||
class AllVehicles {
|
||||
class AGM_FCS {
|
||||
clientInit = "_this call AGM_FCS_fnc_vehicleInit";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class AGM_Core_Default_Keys {
|
||||
class laseTarget {
|
||||
displayName = "$STR_AGM_FireControlSystem_LaseTarget";
|
||||
condition = "call AGM_FCS_fnc_canUseRangefinder || AGM_FCS_fnc_canUseFCS";
|
||||
statement = "_range = call AGM_FCS_fnc_getRange; if (call AGM_FCS_fnc_canUseFCS) then {[_vehicle, _range] call AGM_FCS_fnc_keyDown};";
|
||||
conditionUp = "AGM_FCSEnabled && AGM_FCS_fnc_canUseFCS";
|
||||
statementUp = "_range = call AGM_FCS_fnc_getRange; if (AGM_FCSEnabled && AGM_FCS_fnc_canUseFCS) then {[_vehicle, _range] call AGM_FCS_fnc_keyUp};";
|
||||
key = 15;
|
||||
shift = 0;
|
||||
control = 0;
|
||||
alt = 0;
|
||||
};
|
||||
class adjustRangeUp {
|
||||
displayName = "$STR_AGM_FireControlSystem_AdjustRangeUp";
|
||||
condition = "player == gunner _vehicle && {getNumber (configFile >> 'CfgVehicles' >> (typeOf _vehicle) >> 'AGM_FCSEnabled') == 1}";
|
||||
statement = "[_vehicle, 50] call AGM_FCS_fnc_adjustRange";
|
||||
key = 201;
|
||||
shift = 0;
|
||||
control = 0;
|
||||
alt = 0;
|
||||
allowHolding = 1;
|
||||
};
|
||||
class adjustRangeDown: adjustRangeUp {
|
||||
displayName = "$STR_AGM_FireControlSystem_AdjustRangeDown";
|
||||
statement = "[_vehicle, -50] call AGM_FCS_fnc_adjustRange";
|
||||
key = 209;
|
||||
};
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
class All {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class AllVehicles: All {
|
||||
AGM_FCSEnabled = 0;
|
||||
AGM_FCSMinDistance = 200;
|
||||
AGM_FCSMaxDistance = 9990;
|
||||
AGM_FCSDistanceInterval = 5;
|
||||
class NewTurret {
|
||||
class Turrets;
|
||||
};
|
||||
class CargoTurret;
|
||||
};
|
||||
|
||||
class Land: AllVehicles {};
|
||||
|
||||
class LandVehicle: Land {
|
||||
class CommanderOptics;
|
||||
};
|
||||
|
||||
class Car: LandVehicle {
|
||||
class AGM_SelfActions {
|
||||
class AGM_ResetFCS {
|
||||
displayName = "$STR_AGM_FireControlSystem_ResetFCS";
|
||||
condition = "(count (vehicle _player getVariable ['AGM_FCSMagazines', []]) > 1) and (_player == gunner (vehicle _player))";
|
||||
statement = "[vehicle _player] call AGM_FCS_fnc_reset;";
|
||||
showDisabled = 0;
|
||||
priority = -1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Tank: LandVehicle {
|
||||
AGM_FCSEnabled = 1; // all tracked vehicles get one by default
|
||||
class AGM_SelfActions {
|
||||
class AGM_ResetFCS {
|
||||
displayName = "$STR_AGM_FireControlSystem_ResetFCS";
|
||||
enableInside = 1;
|
||||
condition = "(count (_vehicle getVariable ['AGM_FCSMagazines', []]) > 1) and (_player == gunner _vehicle)";
|
||||
statement = "[vehicle _player] call AGM_FCS_fnc_reset;";
|
||||
showDisabled = 0;
|
||||
priority = 1;
|
||||
icon = "";
|
||||
};
|
||||
};
|
||||
class Turrets {
|
||||
class MainTurret: NewTurret {
|
||||
class Turrets {
|
||||
class CommanderOptics;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC: Tank {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Air: AllVehicles {};
|
||||
|
||||
class Helicopter: Air {
|
||||
class Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Plane: Air {};
|
||||
|
||||
class Ship: AllVehicles {
|
||||
class Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Helicopter_Base_F: Helicopter {
|
||||
class Turrets: Turrets {
|
||||
class CopilotTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Helicopter_Base_H: Helicopter_Base_F {
|
||||
class Turrets: Turrets {
|
||||
class CopilotTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Heli_Light_01_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_Heli_Light_01_F: Heli_Light_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
class CargoTurret_03: CargoTurret_02 {};
|
||||
class CargoTurret_04: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Light_01_armed_base_F: Heli_Light_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Light_02_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Plane_Base_F: Plane {
|
||||
class Turrets {
|
||||
class CopilotTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
AGM_FCSEnabled = 1;
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Heli_Attack_02_base_F: Helicopter_Base_F {
|
||||
AGM_FCSEnabled = 1;
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Heli_Transport_01_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
class MainTurret: MainTurret {};
|
||||
class RightDoorGun: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Transport_02_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class I_Heli_light_03_base_F: Helicopter_Base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class I_Heli_light_03_F: I_Heli_light_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Plane_CAS_01_base_F: Plane_Base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class Plane_CAS_02_base_F: Plane_Base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class Plane_Fighter_03_base_F: Plane_Base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class Tank_F: Tank {
|
||||
class Turrets {
|
||||
class MainTurret: NewTurret {
|
||||
class Turrets {
|
||||
class CommanderOptics;//: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Car_F: Car {
|
||||
class Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Wheeled_APC_F: Car_F {
|
||||
class Turrets {
|
||||
class MainTurret: NewTurret {
|
||||
class Turrets {
|
||||
class CommanderOptics;//: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Tracked_01_base_F: Tank_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets;
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F {
|
||||
AGM_FCSEnabled = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F {
|
||||
AGM_FCSEnabled = 0;
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
magazines[] += {"AGM_120Rnd_35mm_ABM_shells_Tracer_Red"};
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Tracked_02_base_F: Tank_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_APC_Tracked_02_base_F: APC_Tracked_02_base_F {};
|
||||
|
||||
class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
magazines[] += {"AGM_120Rnd_35mm_ABM_shells_Tracer_Green"};
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Tracked_03_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_03_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_01_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class B_MBT_01_base_F: MBT_01_base_F {};
|
||||
|
||||
class B_MBT_01_cannon_F: B_MBT_01_base_F {};
|
||||
|
||||
class MBT_01_arty_base_F: MBT_01_base_F {
|
||||
AGM_FCSEnabled = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class MBT_01_mlrs_base_F: MBT_01_base_F {
|
||||
AGM_FCSEnabled = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets;
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class MBT_02_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_02_arty_base_F: MBT_02_base_F {
|
||||
AGM_FCSEnabled = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Ship_F: Ship {};
|
||||
|
||||
class Boat_F: Ship_F {};
|
||||
|
||||
class Boat_Armed_01_base_F: Boat_F {
|
||||
class Turrets: Turrets {
|
||||
class FrontTurret;
|
||||
class RearTurret: FrontTurret {};
|
||||
};
|
||||
};
|
||||
|
||||
/*class Boat_Armed_01_minigun_base_F: Boat_Armed_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class FrontTurret: FrontTurret {};
|
||||
class RearTurret: RearTurret {};
|
||||
};
|
||||
};*/
|
||||
|
||||
class Truck_F: Car_F {
|
||||
//class Turrets: Turrets {};
|
||||
};
|
||||
|
||||
class MRAP_01_base_F: Car_F {};
|
||||
|
||||
class MRAP_01_gmg_base_F: MRAP_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_MRAP_01_F: MRAP_01_base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class MRAP_02_base_F: Car_F {};
|
||||
|
||||
class MRAP_02_hmg_base_F: MRAP_02_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_MRAP_02_F: MRAP_02_base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class Offroad_01_base_F: Car_F {};
|
||||
|
||||
class C_Offroad_01_F: Offroad_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
class CargoTurret_03: CargoTurret_01 {};
|
||||
class CargoTurret_04: CargoTurret_03 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Offroad_01_repair_base_F: Offroad_01_base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class I_G_Offroad_01_F: Offroad_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
class CargoTurret_03: CargoTurret_01 {};
|
||||
class CargoTurret_04: CargoTurret_03 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Offroad_01_armed_base_F: Offroad_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class M2_Turret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class MRAP_03_base_F: Car_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class MRAP_03_hmg_base_F: MRAP_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
class CommanderTurret: CommanderTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
class CommanderTurret: CommanderTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Truck_01_base_F: Truck_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class B_Truck_01_transport_F: Truck_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Truck_02_base_F: Truck_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class O_Truck_02_covered_F: Truck_02_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_Truck_02_transport_F: Truck_02_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class I_Truck_02_covered_F: Truck_02_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class I_Truck_02_transport_F: Truck_02_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Truck_03_base_F: Truck_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class O_Truck_03_transport_F: Truck_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_Truck_03_covered_F: Truck_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Hatchback_01_base_F: Car_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class SUV_01_base_F: Car_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class B_Truck_01_mover_F: B_Truck_01_transport_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class Van_01_base_F: Truck_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class C_Van_01_transport_F: Van_01_base_F {
|
||||
//class Turrets: Turrets {};
|
||||
};
|
||||
|
||||
class I_G_Van_01_transport_F: Van_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CargoTurret_L1: CargoTurret {};
|
||||
class CargoTurret_L2: CargoTurret_L1 {};
|
||||
class CargoTurret_L3: CargoTurret_L1 {};
|
||||
class CargoTurret_L4: CargoTurret_L1 {};
|
||||
class CargoTurret_L5: CargoTurret_L1 {};
|
||||
|
||||
class CargoTurret_R1: CargoTurret_L1 {};
|
||||
class CargoTurret_R2: CargoTurret_L1 {};
|
||||
class CargoTurret_R3: CargoTurret_L1 {};
|
||||
class CargoTurret_R4: CargoTurret_L1 {};
|
||||
class CargoTurret_R5: CargoTurret_L1 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Kart_01_Base_F: Car_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class B_Heli_Transport_03_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
class MainTurret: MainTurret {};
|
||||
class RightDoorGun: MainTurret {};
|
||||
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_Heli_Transport_03_unarmed_base_F: B_Heli_Transport_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
class MainTurret: MainTurret {};
|
||||
class RightDoorGun: MainTurret {};
|
||||
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Transport_04_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
class LoadmasterTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_Heli_Transport_04_bench_F: Heli_Transport_04_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
class LoadmasterTurret: LoadmasterTurret {};
|
||||
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
class CargoTurret_03: CargoTurret_01 {};
|
||||
class CargoTurret_04: CargoTurret_01 {};
|
||||
class CargoTurret_05: CargoTurret_01 {};
|
||||
class CargoTurret_06: CargoTurret_05 {};
|
||||
class CargoTurret_07: CargoTurret_05 {};
|
||||
class CargoTurret_08: CargoTurret_05 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_Heli_Transport_04_covered_F: Heli_Transport_04_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
class LoadmasterTurret: LoadmasterTurret {};
|
||||
|
||||
class CargoTurret_01: CargoTurret {};
|
||||
class CargoTurret_02: CargoTurret_01 {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class APC_Wheeled_01_base_F: Wheeled_APC_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F {};
|
||||
|
||||
class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F {
|
||||
AGM_FCSEnabled = 1;
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Wheeled_02_base_F: Wheeled_APC_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_MBT_01_TUSK_F: B_MBT_01_cannon_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Wheeled_03_base_F: Wheeled_APC_F {
|
||||
AGM_FCSEnabled = 1;
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class I_APC_Wheeled_03_base_F: APC_Wheeled_03_base_F {};
|
||||
|
||||
class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
|
||||
// disable locking, so it doesn't interfere with our system
|
||||
class CfgWeapons {
|
||||
class CannonCore;
|
||||
class cannon_120mm: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class autocannon_Base_F: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class autocannon_35mm: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
magazines[] += {"AGM_120Rnd_35mm_ABM_shells","AGM_120Rnd_35mm_ABM_shells_Tracer_Red","AGM_120Rnd_35mm_ABM_shells_Tracer_Green","AGM_120Rnd_35mm_ABM_shells_Tracer_Yellow"};
|
||||
};
|
||||
/*class Cannon_30mm_Plane_CAS_02_F: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};*/
|
||||
|
||||
/*class gatling_20mm: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class gatling_25mm: CannonCore {
|
||||
canLock = 0;
|
||||
};
|
||||
class gatling_30mm: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class Gatling_30mm_Plane_CAS_01_F: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};*/
|
||||
|
||||
/*class MGunCore;
|
||||
class M134_minigun: MGunCore {
|
||||
canLock = 0;
|
||||
};
|
||||
|
||||
class MGun: MGunCore {};
|
||||
class LMG_RCWS: MGun {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class HMG_127: LMG_RCWS {
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class GMG_F: MGun {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};*/
|
||||
|
||||
// fix mrco having an invisible rangefinder
|
||||
class ItemCore;
|
||||
class optic_MRCO: ItemCore {
|
||||
weaponInfoType = "RscWeaponZeroing";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgMagazines {
|
||||
class 680Rnd_35mm_AA_shells;
|
||||
class 680Rnd_35mm_AA_shells_Tracer_Red;
|
||||
class 680Rnd_35mm_AA_shells_Tracer_Green;
|
||||
class 680Rnd_35mm_AA_shells_Tracer_Yellow;
|
||||
|
||||
class AGM_120Rnd_35mm_ABM_shells: 680Rnd_35mm_AA_shells {
|
||||
ammo = "AGM_B_35mm_ABM";
|
||||
count = 120;
|
||||
displayName = "35mm ABM Shells";
|
||||
displayNameShort = "35mm ABM";
|
||||
};
|
||||
class AGM_120Rnd_35mm_ABM_shells_Tracer_Red: 680Rnd_35mm_AA_shells_Tracer_Red {
|
||||
ammo = "AGM_B_35mm_ABM_Tracer_Red";
|
||||
count = 120;
|
||||
displayName = "35mm ABM Shells";
|
||||
displayNameShort = "35mm ABM-T";
|
||||
};
|
||||
class AGM_120Rnd_35mm_ABM_shells_Tracer_Green: 680Rnd_35mm_AA_shells_Tracer_Green {
|
||||
ammo = "AGM_B_35mm_ABM_Tracer_Green";
|
||||
count = 120;
|
||||
displayName = "35mm ABM Shells";
|
||||
displayNameShort = "35mm ABM-T";
|
||||
};
|
||||
class AGM_120Rnd_35mm_ABM_shells_Tracer_Yellow: 680Rnd_35mm_AA_shells_Tracer_Yellow {
|
||||
ammo = "AGM_B_35mm_ABM_Tracer_Yellow";
|
||||
count = 120;
|
||||
displayName = "35mm ABM Shells";
|
||||
displayNameShort = "35mm ABM-T";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgAmmo {
|
||||
class B_35mm_AA;
|
||||
class B_35mm_AA_Tracer_Red;
|
||||
class B_35mm_AA_Tracer_Green;
|
||||
class B_35mm_AA_Tracer_Yellow;
|
||||
|
||||
class AGM_B_35mm_ABM: B_35mm_AA {
|
||||
AGM_Airburst = 1;
|
||||
deflecting = 0;
|
||||
};
|
||||
class AGM_B_35mm_ABM_Tracer_Red: B_35mm_AA_Tracer_Red {
|
||||
AGM_Airburst = 1;
|
||||
deflecting = 0;
|
||||
};
|
||||
class AGM_B_35mm_ABM_Tracer_Green: B_35mm_AA_Tracer_Green {
|
||||
AGM_Airburst = 1;
|
||||
deflecting = 0;
|
||||
};
|
||||
class AGM_B_35mm_ABM_Tracer_Yellow: B_35mm_AA_Tracer_Yellow {
|
||||
AGM_Airburst = 1;
|
||||
deflecting = 0;
|
||||
};
|
||||
|
||||
class AGM_B_35mm_ABM_Helper: B_35mm_AA {
|
||||
indirectHitRange = 6;
|
||||
simulation = "shotRocket";
|
||||
timeToLive = 0;
|
||||
};
|
||||
};
|
||||
|
||||
#include <Optics.hpp>
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Adjusts the currently zeroed distance.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The vehicle in question
|
||||
* 1: The amount to add to the distance (can be negative)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*/
|
||||
|
||||
private ["_vehicle", "_delta", "_min", "_max", "_distance"];
|
||||
|
||||
_vehicle = _this select 0;
|
||||
_delta = _this select 1;
|
||||
|
||||
_min = getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "AGM_FCSMinDistance");
|
||||
_max = getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "AGM_FCSMaxDistance");
|
||||
_distance = _vehicle getVariable ["AGM_FCSDistance", _min];
|
||||
|
||||
_distance = _distance + _delta;
|
||||
_distance = _distance min _max;
|
||||
_distance = _distance max _min;
|
||||
|
||||
[_vehicle, 0, _distance] call AGM_FCS_fnc_keyUp;
|
@ -1,14 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Called from config. Returns true if the player is a gunner and the players current vehicle has a FCS.
|
||||
*
|
||||
* Argument:
|
||||
* Nothing
|
||||
*
|
||||
* Return value:
|
||||
* Boolean (Bool)
|
||||
*/
|
||||
|
||||
_player == gunner _vehicle && {getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSEnabled") == 1}
|
||||
&& {cameraView == "GUNNER"}
|
@ -1,14 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Returns true if the laser distance measurement can be read from the engine.
|
||||
*
|
||||
* Argument:
|
||||
* Nothing
|
||||
*
|
||||
* Return value:
|
||||
* Boolean (Bool)
|
||||
*/
|
||||
|
||||
!isNull ((uiNamespace getVariable ["AGM_dlgRangefinder", displayNull]) displayCtrl 1713151)
|
||||
&& {cameraView == "GUNNER"}
|
@ -1,59 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Adjusts the direction of a shell.
|
||||
*
|
||||
* Arguments:
|
||||
* -> arguments of the FiredBIS EH
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*/
|
||||
|
||||
private ["_unit", "_weaponType", "_ammoType", "_magazineType", "_round", "_FCSMagazines", "_FCSElevation", "_offset"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_weaponType = _this select 1;
|
||||
_ammoType = _this select 4;
|
||||
_magazineType = _this select 5;
|
||||
_round = _this select 6;
|
||||
|
||||
_FCSMagazines = _unit getVariable "AGM_FCSMagazines";
|
||||
_FCSElevation = _unit getVariable "AGM_FCSElevation";
|
||||
|
||||
if (AGM_player != gunner _unit) exitWith {};
|
||||
if !(_magazineType in _FCSMagazines) exitWith {};
|
||||
|
||||
// GET ELEVATION OFFSET OF CURRENT MAGAZINE
|
||||
_offset = 0;
|
||||
{
|
||||
if (_x == _magazineType) exitWith {
|
||||
_offset = _FCSElevation select _forEachIndex;
|
||||
};
|
||||
} forEach _FCSMagazines;
|
||||
|
||||
[_round, (_unit getVariable "AGM_FCSAzimuth"), _offset, 0] call AGM_Core_fnc_changeProjectileDirection;
|
||||
|
||||
// Air burst missile
|
||||
if (getNumber (configFile >> "CfgAmmo" >> _ammoType >> "AGM_Airburst") == 1) then {
|
||||
_this spawn {
|
||||
_vehicle = _this select 0;
|
||||
_projectile = _this select 6;
|
||||
|
||||
_distance = _vehicle getVariable ["AGM_FCSDistance", currentZeroing _vehicle];
|
||||
|
||||
if (_distance < 50) exitWith {};
|
||||
if (_distance > 1500) exitWith {};
|
||||
|
||||
waitUntil {_projectile distance _vehicle > _distance || {!alive _projectile}};
|
||||
if (!alive _projectile) exitWith {};
|
||||
|
||||
_position = getPosATL _projectile;
|
||||
|
||||
_subMunition = createVehicle ["AGM_B_35mm_ABM_Helper", _position, [], 0, "FLY"];
|
||||
_subMunition setPosATL _position;
|
||||
_subMunition setVelocity [0, 0, -10];
|
||||
|
||||
deleteVehicle _projectile;
|
||||
};
|
||||
};
|
@ -1,90 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Calculates the angle offset necessary to hit the current target.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: distance to target in meters
|
||||
* 1: current angle of the turret
|
||||
* 2: maximum elevation of the turret
|
||||
* 3: initSpeed of the projectile
|
||||
* 4: airFriction of the projectile
|
||||
* 5: maximum timeToLive of the projectile
|
||||
* 6: simulationStep of the projectile
|
||||
*
|
||||
* Return Value:
|
||||
* offset from the current angle necessary to hit the target
|
||||
*/
|
||||
|
||||
#define PRECISION 0.1
|
||||
|
||||
private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude"];
|
||||
|
||||
_distance = _this select 0;
|
||||
_angleTarget = _this select 1;
|
||||
_maxElev = _this select 2;
|
||||
_initSpeed = _this select 3;
|
||||
_airFriction = _this select 4;
|
||||
_timeToLive = _this select 5;
|
||||
_simulationStep = _this select 6;
|
||||
|
||||
if (_simulationStep == 0) exitWith {_angleTarget};
|
||||
|
||||
AGM_FCS_traceBullet = {
|
||||
private ["_distance", "_angleTarget", "_maxElev", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_angle", "_posTargetX", "_posTargetY", "_posX", "_posY", "_velocityX", "_velocityY", "_velocityMagnitude"];
|
||||
|
||||
_distance = _this select 0;
|
||||
_angleTarget = _this select 1;
|
||||
_maxElev = _this select 2;
|
||||
_initSpeed = _this select 3;
|
||||
_airFriction = _this select 4;
|
||||
_timeToLive = _this select 5;
|
||||
_simulationStep = _this select 6;
|
||||
_angle = _this select 7;
|
||||
|
||||
_angle = _angle - _angleTarget;
|
||||
_angleTarget = 0;
|
||||
|
||||
_posTargetX = (cos _angleTarget) * _distance;
|
||||
_posTargetY = (sin _angleTarget) * _distance;
|
||||
|
||||
_posX = 0;
|
||||
_posY = 0;
|
||||
|
||||
_velocityX = (cos _angle) * _initSpeed;
|
||||
_velocityY = (sin _angle) * _initSpeed;
|
||||
|
||||
// trace the path of the bullet
|
||||
for "_i" from 1 to ((floor (_timeToLive / _simulationStep)) + 1) do {
|
||||
_velocityMagnitude = sqrt (_velocityX^2 + _velocityY^2);
|
||||
_velocityX = _velocityX + _simulationStep * (_velocityX * _velocityMagnitude * _airFriction);
|
||||
_velocityY = _velocityY + _simulationStep * (_velocityY * _velocityMagnitude * _airFriction - 9.81);
|
||||
_posX = _posX + _velocityX * _simulationStep;
|
||||
_posY = _posY + _velocityY * _simulationStep;
|
||||
if (_posX >= _posTargetX) exitWith {}; // bullet passed the target
|
||||
};
|
||||
|
||||
_posY - _posTargetY
|
||||
};
|
||||
|
||||
if ((_this + [_maxElev]) call AGM_FCS_traceBullet < 0) exitWith {_maxElev - _angleTarget};
|
||||
|
||||
// Newton Method / Secand Method
|
||||
_angle1 = _angleTarget;
|
||||
_angle2 = _maxElev;
|
||||
_it2 = 0;
|
||||
_f1 = (_this + [_angle1]) call AGM_FCS_traceBullet;
|
||||
|
||||
if ((abs _f1) <= PRECISION) exitWith {0};
|
||||
while {(abs _f1) > PRECISION} do {
|
||||
_f2 = (_this + [_angle2]) call AGM_FCS_traceBullet;
|
||||
_temp = _angle2-_f2*(_angle2-_angle1)/(_f2-_f1);
|
||||
_angle1 = _angle2;
|
||||
_angle2 = _temp;
|
||||
_f1 = _f2;
|
||||
_it2 = _it2+1;
|
||||
};
|
||||
//player globalChat format ["it1: %1 | _angle1: %2 | it2: %3 | _angle2: %4",_it1, _angle-_angleTarget, _it2, _angle2-_angleTarget];
|
||||
|
||||
_angle=_angle2;
|
||||
_angle - _angleTarget
|
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Gets the impact point if the given bomb were to be dropped at the
|
||||
* the current time from the given vehicle.
|
||||
*
|
||||
* !!! Experimental !!!
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle
|
||||
* 1: Classname of bomb
|
||||
*
|
||||
* Return Value:
|
||||
* Coordinates of hit in ATL
|
||||
*/
|
||||
|
||||
_vehicle = _this select 0;
|
||||
_projectile = _this select 1;
|
||||
|
||||
_velocity = velocity (_vehicle);
|
||||
_position = getPosASL _vehicle;
|
||||
|
||||
_airFriction = getNumber (configFile >> "CfgAmmo" >> _projectile >> "airFriction");
|
||||
_simulationStep = getNumber (configFile >> "CfgAmmo" >> _projectile >> "simulationStep");
|
||||
_timeToLive = getNumber (configFile >> "CfgAmmo" >> _projectile >> "timeToLive");
|
||||
|
||||
_time = 0;
|
||||
while {_time < _timeToLive and (ASLToATL _position) select 2 > 0} do {
|
||||
_position = _position vectorAdd (_velocity vectorMultiply _simulationStep);
|
||||
_velMag = vectorMagnitude _velocity;
|
||||
_velocity = _velocity vectorAdd (_velocity vectorMultiply (_simulationStep * _velMag * _airFriction));
|
||||
_velocity set [2, (_velocity select 2) - 9.81 * _simulationStep];
|
||||
_time = _time + _simulationStep;
|
||||
};
|
||||
|
||||
_position
|
@ -1,21 +0,0 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Read laser distance measurement from engine and update compatible info elements.
|
||||
*
|
||||
* Argument:
|
||||
* Nothing
|
||||
*
|
||||
* Return value:
|
||||
* Measured distance (Number)
|
||||
*/
|
||||
|
||||
private ["_dlgRangefinder", "_range"];
|
||||
|
||||
disableSerialization;
|
||||
_dlgRangefinder = uiNamespace getVariable ["AGM_dlgRangefinder", displayNull];
|
||||
|
||||
_range = ctrlText (_dlgRangefinder displayCtrl 151);
|
||||
(_dlgRangefinder displayCtrl 1713151) ctrlSetText _range;
|
||||
|
||||
parseNumber _range
|
@ -1,31 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Starts watching the target for sideways correction.
|
||||
*
|
||||
* Arguments:
|
||||
* none
|
||||
*
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
|
||||
private ["_vehicle", "_distance", "_weaponDirection"];
|
||||
|
||||
_vehicle = _this select 0;
|
||||
_distance = _this select 1;
|
||||
|
||||
AGM_FCSEnabled = true;
|
||||
AGM_FCSTime = time;
|
||||
|
||||
if (_distance == 0) then {
|
||||
_distance = [5, 5000, 0] call AGM_Core_fnc_getTargetDistance; // maximum distance: 5000m, 5m precision
|
||||
};
|
||||
|
||||
_weaponDirection = _vehicle weaponDirection currentWeapon _vehicle;
|
||||
|
||||
AGM_FCSPosition = [
|
||||
(getPos _vehicle select 0) + _distance * (_weaponDirection select 0),
|
||||
(getPos _vehicle select 1) + _distance * (_weaponDirection select 1),
|
||||
(getPos _vehicle select 2) + _distance * (_weaponDirection select 2)
|
||||
];
|
@ -1,160 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Calculates the offsets for all weapons needed to hit the current target.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The vehicle
|
||||
* 1: Range Override (Optional)
|
||||
*
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
|
||||
private ["_ammoType", "_viewDiff", "_posArrival", "_airFriction", "_timeToLive", "_maxElev", "_vehicle", "_posTarget", "_distance", "_simulationStep", "_posX", "_velocityMagnitude", "_magazines", "_movingAzimuth", "_FCSElevation", "_velocityX", "_velocityY", "_weaponDirection", "_velocityTarget", "_FCSAzimuth", "_FCSMagazines", "_dirArrival", "_i", "_magazineType", "_angleTarget", "_offset", "_timeToTarget", "_initSpeed"];
|
||||
|
||||
_vehicle = _this select 0;
|
||||
_distance = _this select 1;
|
||||
|
||||
_magazines = magazines _vehicle;
|
||||
|
||||
if (_distance == 0) then {
|
||||
_distance = [
|
||||
getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSDistanceInterval"),
|
||||
getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSMaxDistance"),
|
||||
getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSMinDistance")
|
||||
] call AGM_Core_fnc_getTargetDistance; // maximum distance: 5000m, 5m precision
|
||||
};
|
||||
|
||||
_weaponDirection = _vehicle weaponDirection currentWeapon _vehicle;
|
||||
_angleTarget = asin (_weaponDirection select 2);
|
||||
|
||||
if (count _this > 2) then {
|
||||
_distance = _this select 2;
|
||||
};
|
||||
|
||||
if (!(isNil "AGM_FCS_backgroundCalculation") and {!(scriptDone AGM_FCS_backgroundCalculation)}) then {
|
||||
terminate AGM_FCS_backgroundCalculation;
|
||||
};
|
||||
|
||||
// MOVING TARGETS
|
||||
_movingAzimuth = 0;
|
||||
if (time - AGM_FCSTime > 1 and AGM_FCSTime != -1 and count _this < 3) then {
|
||||
// calculate speed of target
|
||||
_posTarget = [
|
||||
(getPos _vehicle select 0) + _distance * (_weaponDirection select 0),
|
||||
(getPos _vehicle select 1) + _distance * (_weaponDirection select 1),
|
||||
(getPos _vehicle select 2) + _distance * (_weaponDirection select 2)
|
||||
];
|
||||
_velocityTarget = [
|
||||
((_posTarget select 0) - (AGM_FCSPosition select 0)) / (time - AGM_FCSTime),
|
||||
((_posTarget select 1) - (AGM_FCSPosition select 1)) / (time - AGM_FCSTime),
|
||||
((_posTarget select 2) - (AGM_FCSPosition select 2)) / (time - AGM_FCSTime)
|
||||
];
|
||||
|
||||
// estimate time to target
|
||||
_magazineType = currentMagazine _vehicle;
|
||||
_ammoType = getText (configFile >> "CfgMagazines" >> _magazineType >> "ammo");
|
||||
_initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineType >> "initSpeed");
|
||||
_airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction");
|
||||
_timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive");
|
||||
_simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep");
|
||||
|
||||
if (_simulationStep != 0) then {
|
||||
_posX = 0;
|
||||
_velocityX = _initSpeed;
|
||||
_velocityY = 0;
|
||||
_timeToTarget = 0;
|
||||
for "_i" from 1 to ((floor (_timeToLive / _simulationStep)) + 1) do {
|
||||
_posX = _posX + _velocityX * _simulationStep;
|
||||
if (_posX >= _distance) exitWith { // bullet passed the target
|
||||
_timeToTarget = _i * _simulationStep;
|
||||
};
|
||||
_velocityMagnitude = sqrt (_velocityX^2 + _velocityY^2);
|
||||
_velocityX = _velocityX + _velocityX * _velocityMagnitude * _airFriction * _simulationStep;
|
||||
_velocityY = _velocityY + _velocityY * _velocityMagnitude * _airFriction * _simulationStep - 9.81 * _simulationStep;
|
||||
};
|
||||
|
||||
// calculate offsets
|
||||
_posArrival = [
|
||||
(_posTarget select 0) + (_velocityTarget select 0) * _timeToTarget,
|
||||
(_posTarget select 1) + (_velocityTarget select 1) * _timeToTarget,
|
||||
(_posTarget select 2) + (_velocityTarget select 2) * _timeToTarget
|
||||
];
|
||||
_dirArrival = [
|
||||
((_posArrival select 0) - (getPos _vehicle select 0)) / (_posArrival distance (getPos _vehicle)),
|
||||
((_posArrival select 1) - (getPos _vehicle select 1)) / (_posArrival distance (getPos _vehicle)),
|
||||
((_posArrival select 2) - (getPos _vehicle select 2)) / (_posArrival distance (getPos _vehicle))
|
||||
];
|
||||
|
||||
_movingAzimuth = ((_dirArrival select 0) atan2 (_dirArrival select 1)) - ((_weaponDirection select 0) atan2 (_weaponDirection select 1));
|
||||
_angleTarget = asin (_dirArrival select 2);
|
||||
_distance = floor (_posArrival distance (getPos _vehicle));
|
||||
};
|
||||
};
|
||||
AGM_FCSEnabled = false;
|
||||
AGM_FCSTime = -1;
|
||||
|
||||
// CALCULATE AZIMUTH CORRECTION
|
||||
_viewDiff = _vehicle getVariable "AGM_FCSViewDiff";
|
||||
_FCSAzimuth = _movingAzimuth;
|
||||
if (_viewDiff != 0) then {
|
||||
_FCSAzimuth = (atan (_distance / _viewDiff) - (abs _viewDiff / _viewDiff) * 90) + _movingAzimuth;
|
||||
};
|
||||
|
||||
// CALCULATE OFFSET FOR CURRENT WEAPON
|
||||
_FCSMagazines = [];
|
||||
_FCSElevation = [];
|
||||
|
||||
_magazineType = currentMagazine _vehicle;
|
||||
_ammoType = getText (configFile >> "CfgMagazines" >> _magazineType >> "ammo");
|
||||
if !(getText (configFile >> "CfgAmmo" >> _ammoType >> "simulation") == "shotMissile") then {
|
||||
_maxElev = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "maxElev");
|
||||
_initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineType >> "initSpeed");
|
||||
_airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction");
|
||||
_timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive");
|
||||
_simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep");
|
||||
|
||||
_offset = [_distance, _angleTarget, _maxElev, _initSpeed, _airFriction, _timeToLive, _simulationStep] call AGM_FCS_fnc_getAngle;
|
||||
|
||||
_FCSMagazines = _FCSMagazines + [_magazineType];
|
||||
_FCSElevation = _FCSElevation + [_offset];
|
||||
};
|
||||
|
||||
_vehicle setVariable ["AGM_FCSDistance", _distance, true];
|
||||
_vehicle setVariable ["AGM_FCSMagazines", _FCSMagazines, true];
|
||||
_vehicle setVariable ["AGM_FCSElevation", _FCSElevation, true];
|
||||
_vehicle setVariable ["AGM_FCSAzimuth", _FCSAzimuth, true];
|
||||
|
||||
// CALCULATE OFFSETS FOR OTHER WEAPONS IN THE BACKGROUND
|
||||
AGM_FCS_backgroundCalculation = [_vehicle, _magazines, _distance, _angleTarget, _FCSMagazines, _FCSElevation] spawn {
|
||||
_vehicle = _this select 0;
|
||||
_magazines = _this select 1;
|
||||
_distance = _this select 2;
|
||||
_angleTarget = _this select 3;
|
||||
_FCSMagazines = _this select 4;
|
||||
_FCSElevation = _this select 5;
|
||||
|
||||
{
|
||||
if !(_x in _FCSMagazines) then {
|
||||
_ammoType = getText (configFile >> "CfgMagazines" >> _x >> "ammo");
|
||||
if !(getText (configFile >> "CfgAmmo" >> _ammoType >> "simulation") == "shotMissile") then {
|
||||
_maxElev = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "maxElev");
|
||||
_initSpeed = getNumber (configFile >> "CfgMagazines" >> _x >> "initSpeed");
|
||||
_airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction");
|
||||
_timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive");
|
||||
_simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep");
|
||||
|
||||
_offset = [_distance, _angleTarget, _maxElev, _initSpeed, _airFriction, _timeToLive, _simulationStep] call AGM_FCS_fnc_getAngle;
|
||||
|
||||
_FCSMagazines = _FCSMagazines + [_x];
|
||||
_FCSElevation = _FCSElevation + [_offset];
|
||||
};
|
||||
};
|
||||
} forEach _magazines;
|
||||
|
||||
_vehicle setVariable ["AGM_FCSMagazines", _FCSMagazines, true];
|
||||
_vehicle setVariable ["AGM_FCSElevation", _FCSElevation, true];
|
||||
};
|
||||
|
||||
[format ["%1: %2", localize "STR_AGM_FireControlSystem_ZeroedTo", _distance]] call AGM_Core_fnc_displayTextStructured;
|
@ -1,22 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Resets the FCS to default.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle
|
||||
*
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
|
||||
private ["_vehicle"];
|
||||
|
||||
_vehicle = _this select 0;
|
||||
|
||||
_vehicle setVariable ["AGM_FCSDistance", 0, true];
|
||||
_vehicle setVariable ["AGM_FCSMagazines", [], true];
|
||||
_vehicle setVariable ["AGM_FCSElevation", 0, true];
|
||||
_vehicle setVariable ["AGM_FCSAzimuth", 0, true];
|
||||
|
||||
[localize "STR_AGM_FireControlSystem_HasBeenReset"] call AGM_Core_fnc_displayTextStructured;
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Checks if a vehicle is equipped with an FCS and if so, adds the fired event handler
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle
|
||||
*
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
|
||||
private ["_gunBeg", "_gunnerView", "_gunBegPos", "_gunnerViewPos", "_viewDiff"];
|
||||
|
||||
if (getNumber (configFile >> "CfgVehicles" >> (typeOf (_this select 0)) >> "AGM_FCSEnabled") == 1) then {
|
||||
(_this select 0) addEventHandler ["Fired", {_this call AGM_FCS_fnc_firedEH}];
|
||||
|
||||
(_this select 0) setVariable ["AGM_FCSDistance", 0, true];
|
||||
(_this select 0) setVariable ["AGM_FCSMagazines", [], true];
|
||||
(_this select 0) setVariable ["AGM_FCSElevation", [], true];
|
||||
(_this select 0) setVariable ["AGM_FCSAzimuth", 0, true];
|
||||
|
||||
// calculate offset between gunner camera and muzzle position
|
||||
if !((_this select 0) isKindOf "Air") then {
|
||||
_gunBeg = getText (configFile >> "CfgVehicles" >> (typeOf (_this select 0)) >> "Turrets" >> "MainTurret" >> "gunBeg");
|
||||
_gunnerView = getText (configFile >> "CfgVehicles" >> (typeOf (_this select 0)) >> "Turrets" >> "MainTurret" >> "memoryPointGunnerOptics");
|
||||
_gunBegPos = ((_this select 0) selectionPosition _gunBeg) select 0;
|
||||
_gunnerViewPos = ((_this select 0) selectionPosition _gunnerView) select 0;
|
||||
_viewDiff = _gunBegPos - _gunnerViewPos;
|
||||
(_this select 0) setVariable ["AGM_FCSViewDiff", _viewDiff, true];
|
||||
} else {
|
||||
(_this select 0) setVariable ["AGM_FCSViewDiff", 0, true];
|
||||
};
|
||||
};
|
@ -1,81 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-19 -->
|
||||
<Project name="AGM">
|
||||
<Package name="FireControlSystem">
|
||||
<Key ID="STR_AGM_FireControlSystem_LaseTarget">
|
||||
<English>Lase Target / Measure Distance</English>
|
||||
<German>Ziel anlasern / Entfernung Messen</German>
|
||||
<French>Télémétrer la cible</French>
|
||||
<Polish>Naświetl cel / Zmierz odległość</Polish>
|
||||
<Czech>Označit cíl / Změřit vzdálenost</Czech>
|
||||
<Spanish>Iluminar objetivo / Medir distancia</Spanish>
|
||||
<!-- Outdated
|
||||
<Russian>Установить зероинг</Russian>
|
||||
<Hungarian>Lézeres célmegjelölés</Hungarian>
|
||||
<Portuguese>Marcar Alvo</Portuguese>
|
||||
<Italian>Designatore Laser</Italian>
|
||||
-->
|
||||
<Russian>Подсветить цель / Измерить расстояние</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_FireControlSystem_ZeroedTo">
|
||||
<English>Zeroed To</English>
|
||||
<German>Haltepunkt</German>
|
||||
<Spanish>Fijado a</Spanish>
|
||||
<Polish>Wyzerowany na</Polish>
|
||||
<Czech>Nastaveno na</Czech>
|
||||
<French>Zéroté à</French>
|
||||
<Russian>Зероинг</Russian>
|
||||
<Hungarian>Nullázás</Hungarian>
|
||||
<Portuguese>Fixado em</Portuguese>
|
||||
<Italian>Azzeramento a</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_FireControlSystem_AdjustRangeUp">
|
||||
<English>Adjust FCS Range (Up)</English>
|
||||
<German>Entfernung des FLS erhöhen</German>
|
||||
<Polish>Zwiększ zasięg FCS</Polish>
|
||||
<Spanish>Ajustar distancia del FCS (arriba)</Spanish>
|
||||
<Czech>Nastavit FCS Náměr (nahoru)</Czech>
|
||||
<French>Augmenter la distance du SCT</French>
|
||||
<Hungarian>FCS tartomány állítása (Fel)</Hungarian>
|
||||
<Portuguese>Ajustar distância do FCS (Acima)</Portuguese>
|
||||
<Italian>Aumentare la distanza dell'FCS</Italian>
|
||||
<Russian>Диапазон СУО (Выше)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_FireControlSystem_AdjustRangeDown">
|
||||
<English>Adjust FCS Range (Down)</English>
|
||||
<German>Entfernung des FLS verringern</German>
|
||||
<Polish>Zmniejsz zasięg FCS</Polish>
|
||||
<Spanish>Ajustar distancia del FCS (abajo)</Spanish>
|
||||
<Czech>Nastavit FCS Náměr (dolů)</Czech>
|
||||
<French>Réduire la distance du SCT</French>
|
||||
<Hungarian>FCS tartomány állítása (Le)</Hungarian>
|
||||
<Portuguese>Ajustar distância do FCS (Abaixo)</Portuguese>
|
||||
<Italian>Ridurre la distanza dell'FCS</Italian>
|
||||
<Russian>Диапазон СУО (Ниже)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_FireControlSystem_ResetFCS">
|
||||
<English>Reset FCS</English>
|
||||
<German>FLS zurücksetzen</German>
|
||||
<Spanish>Reiniciar FCS</Spanish>
|
||||
<French>Réinitialiser le SCT</French>
|
||||
<Polish>Resetuj FCS</Polish>
|
||||
<Czech>Resetovat FCS</Czech>
|
||||
<Hungarian>FCS visszaállítása</Hungarian>
|
||||
<Portuguese>Reiniciar FCS</Portuguese>
|
||||
<Italian>Azzeramento dell'FCS</Italian>
|
||||
<Russian>Обнулить СУО</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_AGM_FireControlSystem_HasBeenReset">
|
||||
<English>FCS has been reset.</English>
|
||||
<German>FLS wurde zurückgesetzt.</German>
|
||||
<Spanish>FCS reiniciado</Spanish>
|
||||
<French>SCT réinitialisé.</French>
|
||||
<Polish>FCS został zresetowany.</Polish>
|
||||
<Czech>FCS byl resetován.</Czech>
|
||||
<Hungarian>Az FCS visszaállítva</Hungarian>
|
||||
<Portuguese>FCS reiniciado.</Portuguese>
|
||||
<Italian>L'FCS è stato azzerato</Italian>
|
||||
<Russian>СУО обнулен</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -1,94 +0,0 @@
|
||||
#define AVERAGEDURATION 6
|
||||
#define INTERVAL 0.25
|
||||
#define MAXVIRTUALG 5.4
|
||||
|
||||
if !(hasInterface) exitWith {};
|
||||
|
||||
AGM_GForces = [];
|
||||
AGM_GForces_Index = 0;
|
||||
|
||||
AGM_GForces_CC = ppEffectCreate ["ColorCorrections", 4215];
|
||||
AGM_GForces_CC ppEffectEnable true;
|
||||
AGM_GForces_CC ppEffectForceInNVG true;
|
||||
AGM_GForces_CC ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[10,10,0,0,0,0.1,0.5]];
|
||||
AGM_GForces_CC ppEffectCommit 0.4;
|
||||
|
||||
0 spawn {
|
||||
while {True} do {
|
||||
_player = AGM_player;
|
||||
|
||||
if !((vehicle _player isKindOf "Air") or ((getPos _player select 2) > 5)) then {
|
||||
AGM_GForces = [];
|
||||
AGM_GForces_Index = 0;
|
||||
waitUntil {sleep 5; (vehicle _player isKindOf "Air") or ((getPos _player select 2) > 5)};
|
||||
};
|
||||
|
||||
_oldVel = velocity (vehicle _player);
|
||||
sleep INTERVAL;
|
||||
_newVel = velocity (vehicle _player);
|
||||
|
||||
_accel = ((_newVel vectorDiff _oldVel) vectorMultiply (1 / INTERVAL)) vectorAdd [0, 0, 9.8];
|
||||
AGM_GForce_Current = (_accel vectorDotProduct vectorUp (vehicle _player)) / 9.8;
|
||||
|
||||
// Cap maximum G's to +- 10 to avoid g-effects when the update is low fps.
|
||||
AGM_GForce_Current = (AGM_GForce_Current max -10) min 10;
|
||||
|
||||
AGM_GForces set [AGM_GForces_Index, AGM_GForce_Current];
|
||||
AGM_GForces_Index = (AGM_GForces_Index + 1) % round (AVERAGEDURATION / INTERVAL);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* source: http://en.wikipedia.org/wiki/G-LOC
|
||||
* untrained persons without gsuit will fall unconscious between 4 and 6G
|
||||
* pilots in gsuits will sustain up to 9G
|
||||
* a person is for average 12 seconds unconscious
|
||||
* after being unconscious, a person is unable to do simple tasks for average 15 seconds
|
||||
*
|
||||
* _upTolerance converts the effective 9G of a pilot to virtual 5.4G (= 0.8*0.75*9G)
|
||||
* pilots with gsuit will get unconscious at an _average of 9G
|
||||
* normal men without gsuit will get unconscious at an _average of 5.4G
|
||||
*/
|
||||
|
||||
0 spawn {
|
||||
while {True} do {
|
||||
sleep INTERVAL;
|
||||
_player = AGM_player;
|
||||
|
||||
_average = 0;
|
||||
if (count AGM_GForces > 0) then {
|
||||
_sum = 0;
|
||||
{
|
||||
_sum = _sum + _x;
|
||||
} forEach AGM_GForces;
|
||||
_average = _sum / (count AGM_GForces);
|
||||
};
|
||||
|
||||
_downTolerance = _player getVariable ["AGM_GForceCoef",
|
||||
getNumber (configFile >> "CfgVehicles" >> (typeOf _player) >> "AGM_GForceCoef")];
|
||||
_upTolerance = _downTolerance * getNumber (configFile >> "CfgWeapons" >> (uniform _player) >> "AGM_GForceCoef");
|
||||
|
||||
["GForces", [_average, _upTolerance], {format ["_g _avgG _avgG*_upTol: %1, %2, %3", AGM_GForce_Current, _this select 0, (_this select 0) * (_this select 1)]}] call AGM_Debug_fnc_log;
|
||||
|
||||
if (((_average * _upTolerance) > MAXVIRTUALG) and {isClass (configFile >> "CfgPatches" >> "AGM_Medical") and {!(_player getVariable ["AGM_isUnconscious", false])}}) then {
|
||||
[_player, (10 + floor(random 5))] call AGM_Medical_fnc_knockOut;
|
||||
};
|
||||
|
||||
if ((abs _average > 2) and !(_player getVariable ["AGM_isUnconscious", false])) then {
|
||||
if (_average > 0) then {
|
||||
_strength = 1.2 - (((_average - 2) * _upTolerance) / (MAXVIRTUALG - 2));
|
||||
AGM_GForces_CC ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[_strength,_strength,0,0,0,0.1,0.5]];
|
||||
addCamShake [((abs _average) - 2) / 3, 1, 15];
|
||||
} else {
|
||||
_strength = 1.2 - ((((-1 * _average) - 2) * _downTolerance) / (MAXVIRTUALG - 2));
|
||||
AGM_GForces_CC ppEffectAdjust [1,1,0,[1,0.2,0.2,1],[0,0,0,0],[1,1,1,1],[_strength,_strength,0,0,0,0.1,0.5]];
|
||||
addCamShake [((abs _average) - 2) / 5, 1, 15];
|
||||
};
|
||||
} else {
|
||||
AGM_GForces_CC ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[10,10,0,0,0,0.1,0.5]];
|
||||
};
|
||||
|
||||
AGM_GForces_CC ppEffectCommit INTERVAL;
|
||||
};
|
||||
};
|
@ -1,56 +0,0 @@
|
||||
class CfgPatches {
|
||||
class AGM_GForces {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"KoffeinFlummi"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class AGM_GForces {
|
||||
clientInit = "call compile preprocessFileLineNumbers '\AGM_GForces\clientInit.sqf'";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgWeapons {
|
||||
class ItemCore;
|
||||
class Uniform_Base: ItemCore {
|
||||
AGM_GForceCoef = 1;
|
||||
};
|
||||
|
||||
class U_B_PilotCoveralls: Uniform_Base {
|
||||
AGM_GForceCoef = 0.8;
|
||||
};
|
||||
class U_I_pilotCoveralls: Uniform_Base {
|
||||
AGM_GForceCoef = 0.8;
|
||||
};
|
||||
class U_O_PilotCoveralls: Uniform_Base {
|
||||
AGM_GForceCoef = 0.8;
|
||||
};
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
AGM_GForceCoef = 1;
|
||||
};
|
||||
|
||||
class B_Soldier_05_f;
|
||||
class B_Pilot_F: B_Soldier_05_f {
|
||||
AGM_GForceCoef = 0.75;
|
||||
};
|
||||
class I_Soldier_04_F;
|
||||
class I_pilot_F: I_Soldier_04_F {
|
||||
AGM_GForceCoef = 0.75;
|
||||
};
|
||||
class O_helipilot_F;
|
||||
class O_Pilot_F: O_helipilot_F {
|
||||
AGM_GForceCoef = 0.75;
|
||||
};
|
||||
};
|
@ -1,25 +0,0 @@
|
||||
class CfgFunctions{
|
||||
class AGM_Goggles{
|
||||
class AGM_Goggles{
|
||||
file="AGM_Goggles\functions";
|
||||
class Init{postInit = 1;};
|
||||
class ApplyGlassesEffect;
|
||||
class RemoveGlassesEffect;
|
||||
class ApplyDirtEffect;
|
||||
class RemoveDirtEffect;
|
||||
class isGogglesVisible;
|
||||
class isDivingGoggles;
|
||||
class ClearGlasses;
|
||||
class CheckGoggles;
|
||||
class GetExplosionIndex;
|
||||
class RainEffect;
|
||||
class RemoveRainEffect;
|
||||
class DustHandler;
|
||||
class ExternalCamera;
|
||||
class isInRotorWash;
|
||||
class OnEachFrame;
|
||||
class ApplyDust;
|
||||
class RemoveDustEffect;
|
||||
};
|
||||
};
|
||||
};
|
@ -1,42 +0,0 @@
|
||||
class RscTitles{
|
||||
#include "define.hpp"
|
||||
|
||||
class RscAGM_Goggles_BaseTitle{
|
||||
idd = -1;
|
||||
onLoad = "uiNamespace setVariable ['AGM_Goggles_Display', _this select 0]";
|
||||
onUnload = "uiNamespace setVariable ['AGM_Goggles_Display', displayNull]";
|
||||
fadeIn=0.5;
|
||||
fadeOut=0.5;
|
||||
movingEnable = false;
|
||||
duration = 10e10;
|
||||
name = "RscAGM_Goggles_BaseTitle";
|
||||
class controls;
|
||||
};
|
||||
|
||||
class RscAGM_Goggles:RscAGM_Goggles_BaseTitle{
|
||||
idd = 1044;
|
||||
name = "RscAGM_Goggles";
|
||||
class controls{
|
||||
class gogglesImage: RscPicture{
|
||||
idc = 10650;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RscAGM_GogglesEffects:RscAGM_Goggles_BaseTitle{
|
||||
idd = 1045;
|
||||
onLoad = "uiNamespace setVariable ['AGM_Goggles_DisplayEffects', _this select 0]";
|
||||
onUnload = "uiNamespace setVariable ['AGM_Goggles_DisplayEffects', displayNull]";
|
||||
name = "RscAGM_GogglesEffects";
|
||||
fadeIn=0;
|
||||
fadeOut=0.5;
|
||||
class controls{
|
||||
class dirtImage: RscPicture {
|
||||
idc = 10660;
|
||||
};
|
||||
class dustImage: RscPicture {
|
||||
idc = 10662;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,295 +0,0 @@
|
||||
#define COLOUR 8.0
|
||||
class CfgPatches {
|
||||
class AGM_Goggles {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"Garth 'L-H' de Wet"};
|
||||
authorUrl = "https://github.com/CorruptedHeart";
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgFunctions.hpp"
|
||||
#define COMBAT_GOGGLES AGM_Overlay="AGM_Goggles\textures\HUD\CombatGoggles.paa"; \
|
||||
AGM_OverlayCracked = "AGM_Goggles\textures\HUD\CombatGogglesCracked.paa"; \
|
||||
AGM_Resistance = 2; \
|
||||
AGM_Protection = 1;
|
||||
|
||||
class CfgGlasses {
|
||||
class None {
|
||||
AGM_Color[] = {0,0,0};
|
||||
AGM_TintAmount=0;
|
||||
AGM_Overlay = "";
|
||||
AGM_OverlayDirt = "A3\Ui_f\data\igui\rsctitles\HealthTextures\dust_upper_ca.paa";
|
||||
AGM_OverlayCracked = "AGM_Goggles\textures\HUD\Cracked.paa";
|
||||
AGM_Resistance = 0;
|
||||
AGM_Protection = 0;
|
||||
AGM_DustPath = "AGM_Goggles\textures\fx\dust\%1.paa";
|
||||
};
|
||||
|
||||
class G_Combat:None {
|
||||
COMBAT_GOGGLES
|
||||
};
|
||||
|
||||
class G_Diving {
|
||||
AGM_Overlay="AGM_Goggles\textures\HUD\DivingGoggles.paa";
|
||||
AGM_OverlayCracked = "AGM_Goggles\textures\HUD\DivingGogglesCracked.paa";
|
||||
AGM_Resistance = 2;
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
|
||||
class G_Lowprofile:None {
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 2;
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
|
||||
class G_Shades_Black:None {
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Shades_Blue:None{
|
||||
AGM_Color[] = {0,0,1};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Shades_Green:None{
|
||||
AGM_Color[] = {0,1,0};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Shades_Red:None{
|
||||
AGM_Color[] = {1,0,0};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Spectacles:None{
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Spectacles_Tinted:None{
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Sport_Blackred:None{
|
||||
AGM_Color[] = {1,0,0};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Sport_BlackWhite:None{
|
||||
AGM_Color[] = {0,0,1};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Sport_Blackyellow:None{
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Sport_Checkered:None{
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Sport_Greenblack:None{
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Sport_Red:None{
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Color[] = {0,0,0};
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Squares:None{
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Squares_Tinted:None{
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Tactical_Black:None{
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Color[] = {0,0,-1.5};
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Tactical_Clear:None{
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Color[] = {0,0,-1};
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Aviator:None{
|
||||
AGM_Color[] = {0,0,-1};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Lady_Blue:None{
|
||||
AGM_Color[] = {0,0,1};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Lady_Red:None{
|
||||
AGM_Color[] = {1,0,0};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Lady_Dark:None{
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class G_Lady_Mirror:None{
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
};
|
||||
|
||||
class AV_ESS_blk:None{
|
||||
COMBAT_GOGGLES
|
||||
};
|
||||
|
||||
class G_Balaclava_blk;
|
||||
|
||||
class G_Balaclava_combat:G_Balaclava_blk {
|
||||
COMBAT_GOGGLES
|
||||
};
|
||||
|
||||
class G_Balaclava_lowprofile:G_Balaclava_blk {
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 2;
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
|
||||
class G_Bandanna_blk;
|
||||
class G_Bandanna_shades:G_Bandanna_blk {
|
||||
AGM_TintAmount=COLOUR*2;
|
||||
AGM_Resistance = 1;
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
class G_Bandanna_sport:G_Bandanna_blk {
|
||||
AGM_Color[] = {1,0,0};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
class G_Bandanna_aviator:G_Bandanna_blk {
|
||||
AGM_Color[] = {0,0,-1};
|
||||
AGM_TintAmount=COLOUR;
|
||||
AGM_Resistance = 1;
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
};
|
||||
|
||||
#include "RscTitles.hpp"
|
||||
|
||||
class CfgMovesBasic
|
||||
{
|
||||
class ManActions
|
||||
{
|
||||
GestureWipeFace[] = {"GestureWipeFace", "gesture"};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgGesturesMale
|
||||
{
|
||||
class States
|
||||
{
|
||||
class GestureFreezeStand;
|
||||
class GestureWipeFace: GestureFreezeStand
|
||||
{
|
||||
file = "\AGM_Goggles\anim\WipeGlasses.rtm";
|
||||
canPullTrigger = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgWeapons{
|
||||
class H_HelmetB;
|
||||
|
||||
class H_CrewHelmetHeli_B:H_HelmetB {
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
class H_PilotHelmetHeli_B:H_HelmetB {
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
class H_PilotHelmetFighter_B:H_HelmetB {
|
||||
AGM_Protection = 1;
|
||||
};
|
||||
};
|
||||
|
||||
class RifleAssaultCloud {
|
||||
AGM_Goggles_BulletCount = 4;
|
||||
};
|
||||
class MachineGunCloud {
|
||||
AGM_Goggles_BulletCount = 3;
|
||||
};
|
||||
class SniperCloud {
|
||||
AGM_Goggles_BulletCount = 1;
|
||||
};
|
||||
|
||||
class AGM_Core_Default_Keys {
|
||||
class wipeGlasses {
|
||||
displayName = $STR_AGM_Goggles_WipeGlasses;
|
||||
condition = "!(player getVariable['AGM_isUnconscious', false])";
|
||||
statement = "call AGM_Goggles_fnc_ClearGlasses;";
|
||||
key = 20; // T
|
||||
shift = 1;
|
||||
control = 1;
|
||||
alt = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class AGM_Core_Options {
|
||||
class showInThirdPerson {
|
||||
displayName = $STR_AGM_Goggles_ShowInThirdPerson;
|
||||
default = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class CfgCloudlets {
|
||||
class Default;
|
||||
class AGMRainEffect:Default {
|
||||
interval = 0.001;
|
||||
particleShape = "\A3\data_f\ParticleEffects\Universal\Refract";
|
||||
particleFSNtieth = 1;
|
||||
particleFSIndex = 0;
|
||||
particleFSFrameCount = 1;
|
||||
particleFSLoop = 1;
|
||||
|
||||
particleType = "Billboard";
|
||||
lifeTime = 0.5;
|
||||
rotationVelocity = 1;
|
||||
weight = 100;
|
||||
volume = 0.000;
|
||||
rubbing = 1.7;
|
||||
size[] = {0.1};
|
||||
color[] = {{1,1,1,1}};
|
||||
animationSpeed[] = {0,1};
|
||||
randomDirectionPeriod = 0.2;
|
||||
randomDirectionIntensity = 1.2;
|
||||
positionVar[] = {2, 2, 2.5};
|
||||
sizeVar = 0.01;
|
||||
colorVar[] = {0, 0, 0, 0.1};
|
||||
destroyOnWaterSurface = 1;
|
||||
};
|
||||
};
|
@ -1,27 +0,0 @@
|
||||
// Control types
|
||||
#define CT_STATIC 0
|
||||
#define ST_PICTURE 0x30
|
||||
|
||||
////////////////
|
||||
//Base Classes//
|
||||
////////////////
|
||||
|
||||
class RscPicture
|
||||
{
|
||||
access = 0;
|
||||
idc = -1;
|
||||
type = CT_STATIC;
|
||||
style = ST_PICTURE;
|
||||
colorBackground[] = {0,0,0,0};
|
||||
colorText[] = {1,1,1,1};
|
||||
font = "puristaMedium";
|
||||
sizeEx = 0;
|
||||
lineSpacing = 0;
|
||||
fixedWidth = 0;
|
||||
shadow = 0;
|
||||
text = "";
|
||||
x = safezoneX;
|
||||
y = safezoneY;
|
||||
w = safezoneW;
|
||||
h = safezoneH;
|
||||
};
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
Name: AGM_Goggles_fnc_ApplyDirtEffect
|
||||
|
||||
Author: Garth de Wet (LH)
|
||||
|
||||
Description:
|
||||
Adds dirt effect to the glasses.
|
||||
|
||||
Parameters:
|
||||
Nothing
|
||||
|
||||
Returns:
|
||||
BOOLEAN - True if succeeded false if not
|
||||
|
||||
Example:
|
||||
call AGM_Goggles_fnc_ApplyDirtEffect;
|
||||
*/
|
||||
#include "\AGM_Goggles\script.sqf"
|
||||
|
||||
if (cameraOn != player || call AGM_Goggles_fnc_ExternalCamera) exitWith{false};
|
||||
private "_dirtImage";
|
||||
AGM_Goggles_Effects set [DIRT, true];
|
||||
|
||||
if (player call AGM_Goggles_fnc_isGogglesVisible) then{
|
||||
_dirtImage = getText(ConfigFile >> "CfgGlasses" >> goggles player >> "AGM_OverlayDirt");
|
||||
if (_dirtImage != "") then {
|
||||
100 cutRsc["RscAGM_GogglesEffects", "PLAIN",0.1, false];
|
||||
(uiNamespace getVariable ["AGM_Goggles_DisplayEffects", displayNull] displayCtrl 10660) ctrlSetText _dirtImage;
|
||||
};
|
||||
};
|
||||
|
||||
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