mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into medical-focus-feature
Conflicts: addons/medical/functions/fnc_treatmentAdvanced_CPR.sqf
This commit is contained in:
commit
7d063d4dee
37
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
37
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Before reporting
|
## Before reporting
|
||||||
|
|
||||||
If you have found an issue with ACE3 please make sure that ACE3 is really the cause of the problem. To do this try to reproduce the issue with using only `@CBA_A3` and `@ace` on a newly created mission.
|
If you have found an issue with ACE3 please make sure that ACE3 really is the cause of the problem. To do this try to reproduce the issue with using only `@CBA_A3` and `@ace` on a newly created mission.
|
||||||
|
|
||||||
Indicate if the issue appears on stable or development version. In case it is the development version, please also include the commit SHA-1 hash.
|
Indicate if the issue appears on stable or development version. In case it is the development version, please also include the commit SHA-1 hash.
|
||||||
|
|
||||||
@ -14,38 +14,10 @@ Indicate if the issue appears on stable or development version. In case it is th
|
|||||||
|
|
||||||
## Reporting the issue
|
## Reporting the issue
|
||||||
|
|
||||||
Head over to the [ACE3 GitHub issue tracker](https://github.com/acemod/ACE3/issues) and press the [New issue](https://github.com/acemod/ACE3/issues/new) button in the top right corner. Add a descriptive title and copy the following issue template in to the text area:
|
Head over to the [ACE3 GitHub issue tracker](https://github.com/acemod/ACE3/issues) and press the [New issue](https://github.com/acemod/ACE3/issues/new) button in the top right corner. Add a descriptive title and complete the issue template.
|
||||||
|
|
||||||
```
|
|
||||||
ACE3 Version: 3.x.x
|
|
||||||
(indicate if stable or dev, if dev indicate the commit the version is based on)
|
|
||||||
|
|
||||||
**Mods:**
|
|
||||||
* `@CBA_A3`
|
|
||||||
* `@ace`
|
|
||||||
|
|
||||||
**Placed ACE3 Modules:**
|
|
||||||
* *Add the list of modules you have placed on the map. Use 'None' if the error occurs without using any modules.*
|
|
||||||
* You can also press the `Debug to` button in the ACE3 option menu (escape -> ACE3 options -> Debug to) and add a link (pastebin.com) to the results.
|
|
||||||
|
|
||||||
**Description:**
|
|
||||||
* Add a detailed description of the error. This makes it easier for us to fix the issue.*
|
|
||||||
|
|
||||||
**Steps to reproduce:**
|
|
||||||
* *Add the steps needed to reproduce the issue.*
|
|
||||||
|
|
||||||
**Where did the issue occur?**
|
|
||||||
* A possible answer might be "Multiplayer", "Editor" or "Singleplayer"*
|
|
||||||
|
|
||||||
**RPT log file:**
|
|
||||||
* Add a link (pastebin.com) to the client or server RPT file.*
|
|
||||||
```
|
|
||||||
|
|
||||||
A video of the issue might be helpful in resolving it faster.
|
A video of the issue might be helpful in resolving it faster.
|
||||||
|
|
||||||
GitHub uses [Markdown](http://daringfireball.net/projects/markdown/syntax) to style the output. If you want to know more about it (e.g. how to [turn text bold](https://help.github.com/articles/markdown-basics/#styling-text), how to denote [code blocks](https://help.github.com/articles/markdown-basics/#inline-formats) or [inline code](https://help.github.com/articles/markdown-basics/#multiple-lines)) have a look at the [GitHub Markdown Documentation](https://help.github.com/articles/github-flavored-markdown).
|
|
||||||
|
|
||||||
|
|
||||||
# Feature Requests
|
# Feature Requests
|
||||||
|
|
||||||
## Background
|
## Background
|
||||||
@ -57,8 +29,3 @@ Please refrain from making requests for any planned or existing features from ei
|
|||||||
In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
|
In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
|
||||||
|
|
||||||
Following their approval, feature requests may be moved by moderators to a separate issue for further discussion.
|
Following their approval, feature requests may be moved by moderators to a separate issue for further discussion.
|
||||||
|
|
||||||
# Regarding Pull Requests (PRs)
|
|
||||||
- You want to help but don't know where to start? Check the wiki entry for [setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html)
|
|
||||||
- [Make sure to respect the file structure](http://ace3mod.com/wiki/development/modularity-and-pbo-structure.html)
|
|
||||||
- [Make sure to respect the coding guidelines](http://ace3mod.com/wiki/development/coding-guidelines.html)
|
|
25
.github/ISSUE_TEMPLATE.md
vendored
Normal file
25
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
**Arma 3 Version:** `x.xx`
|
||||||
|
*(indicate if stable, rc or dev*)
|
||||||
|
|
||||||
|
**ACE3 Version:** `3.x.x`
|
||||||
|
*(indicate if stable or dev, if dev indicate the commit the version is based on)*
|
||||||
|
|
||||||
|
**Mods:**
|
||||||
|
* `@CBA_A3`
|
||||||
|
* `@ace`
|
||||||
|
* ...
|
||||||
|
|
||||||
|
**Placed Modules:**
|
||||||
|
* *Add the list of modules you have placed on the map. Use 'None' if the error occurs without using any modules.*
|
||||||
|
|
||||||
|
**Description:**
|
||||||
|
* *Add a detailed description of the error. This makes it easier for us to fix the issue.*
|
||||||
|
|
||||||
|
**Steps to reproduce:**
|
||||||
|
* *Add the steps needed to reproduce the issue.*
|
||||||
|
|
||||||
|
**Where did the issue occur?**
|
||||||
|
* *A possible answer might be "Dedicated Server", "Local Multiplayer", "Editor", or "Singleplayer"*
|
||||||
|
|
||||||
|
**RPT log file:**
|
||||||
|
* *Add a link (pastebin.com) to the client and/or server RPT file. An instruction to find your RPT files can be [found here](https://community.bistudio.com/wiki/Crash_Files#Arma_3)*
|
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
### When merged this pull request will:
|
||||||
|
|
||||||
|
1. *Describe what this pull request will do*
|
||||||
|
2. *Each change in a seperate line*
|
||||||
|
|
||||||
|
---
|
||||||
|
*Delete this line and everything below*
|
||||||
|
|
||||||
|
- [Make sure to respect the file structure](http://ace3mod.com/wiki/development/modularity-and-pbo-structure.html)
|
||||||
|
- [Make sure to respect the coding guidelines](http://ace3mod.com/wiki/development/coding-guidelines.html)
|
@ -39,6 +39,7 @@ Alganthe <alganthe@live.fr>
|
|||||||
Anthariel <Contact@storm-simulation.com>
|
Anthariel <Contact@storm-simulation.com>
|
||||||
Arkhir <wonsz666@gmail.com >
|
Arkhir <wonsz666@gmail.com >
|
||||||
Asgar Serran <piechottaf@web.de>
|
Asgar Serran <piechottaf@web.de>
|
||||||
|
BaerMitUmlaut
|
||||||
Bamse <bamsis@gmail.com>
|
Bamse <bamsis@gmail.com>
|
||||||
Bla1337
|
Bla1337
|
||||||
BlackPixxel <blackpixxel96@gmail.com>
|
BlackPixxel <blackpixxel96@gmail.com>
|
||||||
|
@ -64,7 +64,6 @@ The mod is **built modularly**, so almost any included PBO can be easily removed
|
|||||||
- Magazine repacking
|
- Magazine repacking
|
||||||
- Realistic weapon overheating mechanic
|
- Realistic weapon overheating mechanic
|
||||||
- Combat deafness (temporary loss of hearing) simulation
|
- Combat deafness (temporary loss of hearing) simulation
|
||||||
- Improved ragdoll physics
|
|
||||||
- Improved interactions for AARs and ammo bearers
|
- Improved interactions for AARs and ammo bearers
|
||||||
- Adjustable sniper scopes
|
- Adjustable sniper scopes
|
||||||
- No idle animation with lowered weapon
|
- No idle animation with lowered weapon
|
||||||
|
BIN
ace_medical.dll
BIN
ace_medical.dll
Binary file not shown.
@ -36,3 +36,7 @@ if (!hasInterface) exitWith {};
|
|||||||
[] call FUNC(updateTrajectoryPFH);
|
[] call FUNC(updateTrajectoryPFH);
|
||||||
|
|
||||||
}] call EFUNC(common,addEventHandler);
|
}] call EFUNC(common,addEventHandler);
|
||||||
|
|
||||||
|
#ifdef DEBUG_MODE_FULL
|
||||||
|
call FUNC(diagnoseWeapons);
|
||||||
|
#endif
|
@ -7,6 +7,7 @@ PREP(calculateAtmosphericCorrection);
|
|||||||
PREP(calculateBarrelLengthVelocityShift);
|
PREP(calculateBarrelLengthVelocityShift);
|
||||||
PREP(calculateRetardation);
|
PREP(calculateRetardation);
|
||||||
PREP(calculateStabilityFactor);
|
PREP(calculateStabilityFactor);
|
||||||
|
PREP(diagnoseWeapons);
|
||||||
PREP(displayProtractor);
|
PREP(displayProtractor);
|
||||||
PREP(handleFired);
|
PREP(handleFired);
|
||||||
PREP(initializeTerrainExtension);
|
PREP(initializeTerrainExtension);
|
||||||
|
@ -22,6 +22,7 @@ private ["_muzzleVelocityTableCount", "_barrelLengthTableCount", "_lowerDataInde
|
|||||||
"_upperDataIndex", "_lowerBarrelLength", "_upperBarrelLength", "_lowerMuzzleVelocity",
|
"_upperDataIndex", "_lowerBarrelLength", "_upperBarrelLength", "_lowerMuzzleVelocity",
|
||||||
"_upperMuzzleVelocity", "_interpolationRatio"];
|
"_upperMuzzleVelocity", "_interpolationRatio"];
|
||||||
params ["_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity"];
|
params ["_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity"];
|
||||||
|
TRACE_4("params",_barrelLength,_muzzleVelocityTable,_barrelLengthTable,_muzzleVelocity);
|
||||||
|
|
||||||
// If barrel length is not defined, then there is no point in calculating muzzle velocity
|
// If barrel length is not defined, then there is no point in calculating muzzle velocity
|
||||||
if (_barrelLength == 0) exitWith { 0 };
|
if (_barrelLength == 0) exitWith { 0 };
|
||||||
|
59
addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf
Normal file
59
addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Author: esteldunedain
|
||||||
|
*
|
||||||
|
* This function diagnoses all primary weapons to find cases in which the initial
|
||||||
|
* velocity of shots with and without AB significantly mismatch
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None. Parameters inherited from EFUNC(common,firedEH)
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
#define DEBUG_MODE_FULL
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private _cfgWeapons = configFile >> "CfgWeapons";
|
||||||
|
for "_i" from 0 to (count _cfgWeapons)-1 do {
|
||||||
|
private _weaponConfig = _cfgWeapons select _i;
|
||||||
|
if (isClass _weaponConfig) then {
|
||||||
|
private _weapon = configName _weaponConfig;
|
||||||
|
private _weaponType = getNumber (_weaponConfig >> "Type");
|
||||||
|
if (_weaponType == 1) then {
|
||||||
|
// The weapon is a primary weapon
|
||||||
|
|
||||||
|
private _weaponInitSpeed = getNumber (_weaponConfig >> "initSpeed");
|
||||||
|
private _magazines = getArray (_weaponConfig >> "magazines");
|
||||||
|
{
|
||||||
|
private _magazine = _x;
|
||||||
|
private _magazineInitSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed");
|
||||||
|
private _ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||||
|
|
||||||
|
// Vanilla initial speed --------------------------
|
||||||
|
private _vanillaInitialSpeed = _magazineInitSpeed;
|
||||||
|
if (_weaponInitSpeed > 0) then {
|
||||||
|
_vanillaInitialSpeed = _weaponInitSpeed;
|
||||||
|
} else {
|
||||||
|
if (_weaponInitSpeed < 0) then {
|
||||||
|
_vanillaInitialSpeed = _vanillaInitialSpeed * (-_weaponInitSpeed);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
// --------------------------------------------------
|
||||||
|
|
||||||
|
// AB initial speed --------------------------------
|
||||||
|
// Get Weapon and Ammo Configurations
|
||||||
|
private _AmmoCacheEntry = _ammo call FUNC(readAmmoDataFromConfig);
|
||||||
|
private _WeaponCacheEntry = _weapon call FUNC(readWeaponDataFromConfig);
|
||||||
|
_AmmoCacheEntry params ["_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable"];
|
||||||
|
_WeaponCacheEntry params ["_barrelTwist", "_twistDirection", "_barrelLength"];
|
||||||
|
|
||||||
|
private _barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _vanillaInitialSpeed] call FUNC(calculateBarrelLengthVelocityShift);
|
||||||
|
private _abInitialSpeed = _vanillaInitialSpeed + _barrelVelocityShift;
|
||||||
|
// --------------------------------------------------
|
||||||
|
diag_log text format ["ABDiagnose,%1,%2,%3,%4,%5,%6,%7",_weapon,_magazine,_ammo,_magazineInitSpeed,_weaponInitSpeed,_vanillaInitialSpeed,_abInitialSpeed];
|
||||||
|
} forEach _magazines;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
TRACE_1("Reading Ammo Config",_this);
|
||||||
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
||||||
_ammoConfig = configFile >> "CfgAmmo" >> _this;
|
_ammoConfig = configFile >> "CfgAmmo" >> _this;
|
||||||
|
|
||||||
@ -49,6 +50,42 @@ _ammoTempMuzzleVelocityShifts = getArray(_ammoConfig >> "ACE_ammoTempMuzzleVeloc
|
|||||||
_muzzleVelocityTable = getArray(_ammoConfig >> "ACE_muzzleVelocities");
|
_muzzleVelocityTable = getArray(_ammoConfig >> "ACE_muzzleVelocities");
|
||||||
_barrelLengthTable = getArray(_ammoConfig >> "ACE_barrelLengths");
|
_barrelLengthTable = getArray(_ammoConfig >> "ACE_barrelLengths");
|
||||||
|
|
||||||
|
//Handle subsonic ammo that would have a huge muzzle velocity shift (when ballistic configs not explicitly defined)
|
||||||
|
private _typicalSpeed = getNumber (_ammoConfig >> "typicalSpeed");
|
||||||
|
if ((_typicalSpeed > 0) && {_typicalSpeed < 360}) then {
|
||||||
|
private _inheritedBarrelConfig = (!(_muzzleVelocityTable isEqualTo [])) && {(configProperties [_ammoConfig, "(configName _x) == 'ACE_muzzleVelocities'", false]) isEqualTo []};
|
||||||
|
private _inheritedTempConfig = (!(_ammoTempMuzzleVelocityShifts isEqualTo [])) && {(configProperties [_ammoConfig, "(configName _x) == 'ACE_ammoTempMuzzleVelocityShifts'", false]) isEqualTo []};
|
||||||
|
TRACE_3("subsonic",_typicalSpeed,_inheritedBarrelConfig,_inheritedTempConfig);
|
||||||
|
if (_inheritedBarrelConfig || _inheritedTempConfig) then {
|
||||||
|
private _parentConfig = inheritsFrom _ammoConfig;
|
||||||
|
private _parentSpeed = getNumber (_parentConfig >> "typicalSpeed");
|
||||||
|
ACE_LOGWARNING_4("Subsonic Ammo %1 (%2 m/s) missing `ACE_muzzleVelocities` or `ACE_ammoTempMuzzleVelocityShifts` configs, attempting to use parent %3 (%4m/s)",_this,_typicalSpeed,configName _parentConfig, _parentSpeed);
|
||||||
|
if (_parentSpeed <= 0) exitWith {//Handle weird or null parent
|
||||||
|
_muzzleVelocityTable = [];
|
||||||
|
_ammoTempMuzzleVelocityShifts = [];
|
||||||
|
};
|
||||||
|
private _linearMuliplier = _typicalSpeed / _parentSpeed;
|
||||||
|
if (_inheritedBarrelConfig) then {
|
||||||
|
if (!((configProperties [_parentConfig, "(configName _x) == 'ACE_muzzleVelocities'", false]) isEqualTo [])) then {
|
||||||
|
TRACE_2("Parent Has Defined Barrel MV",_linearMuliplier,_muzzleVelocityTable);
|
||||||
|
{ _muzzleVelocityTable set [_forEachIndex, (_x * _linearMuliplier)]; } forEach _muzzleVelocityTable;
|
||||||
|
} else {
|
||||||
|
TRACE_2("Parent DOES NOT Have Defined Barrel MV",_linearMuliplier,_muzzleVelocityTable);
|
||||||
|
_muzzleVelocityTable = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if (_inheritedTempConfig) then {
|
||||||
|
if (!((configProperties [_parentConfig, "(configName _x) == 'ACE_ammoTempMuzzleVelocityShifts'", false]) isEqualTo [])) then {
|
||||||
|
TRACE_2("Parent Has Defined Ammo Temp Shifts",_linearMuliplier,_muzzleVelocityTable);
|
||||||
|
{ _ammoTempMuzzleVelocityShifts set [_forEachIndex, (_x * _linearMuliplier)]; } forEach _ammoTempMuzzleVelocityShifts;
|
||||||
|
} else {
|
||||||
|
TRACE_2("Parent DOES NOT Have Defined Ammo Temp Shifts",_linearMuliplier,_muzzleVelocityTable);
|
||||||
|
_ammoTempMuzzleVelocityShifts = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
|
_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
|
||||||
|
|
||||||
uiNamespace setVariable [format[QGVAR(%1), _this], _result];
|
uiNamespace setVariable [format[QGVAR(%1), _this], _result];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Advanced_Ballistics">
|
<Package name="Advanced_Ballistics">
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_WindInfoKey">
|
<Key ID="STR_ACE_Advanced_Ballistics_WindInfoKey">
|
||||||
@ -35,6 +35,7 @@
|
|||||||
<French>Balistique avancée</French>
|
<French>Balistique avancée</French>
|
||||||
<Hungarian>Fejlett ballisztika</Hungarian>
|
<Hungarian>Fejlett ballisztika</Hungarian>
|
||||||
<Russian>Продвинутая баллистика</Russian>
|
<Russian>Продвинутая баллистика</Russian>
|
||||||
|
<Italian>Balistica Avanzata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
|
||||||
<English>Advanced Ballistics</English>
|
<English>Advanced Ballistics</English>
|
||||||
@ -46,6 +47,7 @@
|
|||||||
<French>Balistique avancée</French>
|
<French>Balistique avancée</French>
|
||||||
<Hungarian>Fejlett ballisztika</Hungarian>
|
<Hungarian>Fejlett ballisztika</Hungarian>
|
||||||
<Russian>Продвинутая баллистика</Russian>
|
<Russian>Продвинутая баллистика</Russian>
|
||||||
|
<Italian>Balistica Avanzata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
|
||||||
<English>Enables advanced ballistics</English>
|
<English>Enables advanced ballistics</English>
|
||||||
@ -57,6 +59,7 @@
|
|||||||
<French>Activer la balistique avancée</French>
|
<French>Activer la balistique avancée</French>
|
||||||
<Hungarian>Engedélyezi a fejlett ballisztikát</Hungarian>
|
<Hungarian>Engedélyezi a fejlett ballisztikát</Hungarian>
|
||||||
<Russian>Включает продвинутую баллистику</Russian>
|
<Russian>Включает продвинутую баллистику</Russian>
|
||||||
|
<Italian>Abilita Balistica Avanzata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName">
|
||||||
<English>Enabled For Snipers</English>
|
<English>Enabled For Snipers</English>
|
||||||
@ -68,6 +71,7 @@
|
|||||||
<French>Activer pour les snipers</French>
|
<French>Activer pour les snipers</French>
|
||||||
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
|
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
|
||||||
<Russian>Включена для снайперов</Russian>
|
<Russian>Включена для снайперов</Russian>
|
||||||
|
<Italian>Abilita per Tiratori Scelti</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description">
|
||||||
<English>Enables advanced ballistics for non local snipers (when using high power optics)</English>
|
<English>Enables advanced ballistics for non local snipers (when using high power optics)</English>
|
||||||
@ -79,6 +83,7 @@
|
|||||||
<French>Active la balistique avancée pour les snipers non locaux (en utilisant les optiques avancées)</French>
|
<French>Active la balistique avancée pour les snipers non locaux (en utilisant les optiques avancées)</French>
|
||||||
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi mesterlövészeknek (nagy-teljesítményű optika használatakor)</Hungarian>
|
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi mesterlövészeknek (nagy-teljesítményű optika használatakor)</Hungarian>
|
||||||
<Russian>Включает продвинутую баллистику для нелокальных снайперов (при использовании мощной оптики)</Russian>
|
<Russian>Включает продвинутую баллистику для нелокальных снайперов (при использовании мощной оптики)</Russian>
|
||||||
|
<Italian>Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName">
|
||||||
<English>Enabled For Group Members</English>
|
<English>Enabled For Group Members</English>
|
||||||
@ -90,6 +95,7 @@
|
|||||||
<French>Activer pour les membres groupés</French>
|
<French>Activer pour les membres groupés</French>
|
||||||
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
||||||
<Russian>Включена для группы</Russian>
|
<Russian>Включена для группы</Russian>
|
||||||
|
<Italian>Abilita per Membri del Gruppo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description">
|
||||||
<English>Enables advanced ballistics for non local group members</English>
|
<English>Enables advanced ballistics for non local group members</English>
|
||||||
@ -101,6 +107,7 @@
|
|||||||
<French>Active la balistique avancée pour les membres groupés non locaux</French>
|
<French>Active la balistique avancée pour les membres groupés non locaux</French>
|
||||||
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
|
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
|
||||||
<Russian>Включает продвинутую баллистику для нелокальных членов группы</Russian>
|
<Russian>Включает продвинутую баллистику для нелокальных членов группы</Russian>
|
||||||
|
<Italian>Abilita Balistica Avanzata per Membri non locali del Gruppo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName">
|
||||||
<English>Enabled For Everyone</English>
|
<English>Enabled For Everyone</English>
|
||||||
@ -112,6 +119,7 @@
|
|||||||
<French>Activer pour tout le monde</French>
|
<French>Activer pour tout le monde</French>
|
||||||
<Hungarian>Mindenkinek engedélyezve</Hungarian>
|
<Hungarian>Mindenkinek engedélyezve</Hungarian>
|
||||||
<Russian>Включена для всех</Russian>
|
<Russian>Включена для всех</Russian>
|
||||||
|
<Italian>Abilita per tutti</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_Description">
|
||||||
<English>Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)</English>
|
<English>Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)</English>
|
||||||
@ -123,6 +131,7 @@
|
|||||||
<French>Active la balistique avancé pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
<French>Active la balistique avancé pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
||||||
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
|
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
|
||||||
<Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian>
|
<Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian>
|
||||||
|
<Italian>Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe degradare le prestazioni durante scontri intensi in multiplayer)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName">
|
||||||
<English>Always Enabled For Group Members</English>
|
<English>Always Enabled For Group Members</English>
|
||||||
@ -134,6 +143,7 @@
|
|||||||
<French>Toujours activer pour les membres groupés</French>
|
<French>Toujours activer pour les membres groupés</French>
|
||||||
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
|
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
|
||||||
<Russian>Всегда включена для членов группы</Russian>
|
<Russian>Всегда включена для членов группы</Russian>
|
||||||
|
<Italian>Sempre abilitato per Membri del Gruppo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description">
|
||||||
<English>Always enables advanced ballistics when a group member fires</English>
|
<English>Always enables advanced ballistics when a group member fires</English>
|
||||||
@ -145,6 +155,7 @@
|
|||||||
<French>Active tout le temps la balistique avancée quand un membre du groupe ouvre le feu</French>
|
<French>Active tout le temps la balistique avancée quand un membre du groupe ouvre le feu</French>
|
||||||
<Hungarian>Mindig engedélyezi a fejlett ballisztikát, ha egy csoporttag tüzel</Hungarian>
|
<Hungarian>Mindig engedélyezi a fejlett ballisztikát, ha egy csoporttag tüzel</Hungarian>
|
||||||
<Russian>Всегда включает продвинутую баллистику когда стреляет член группы</Russian>
|
<Russian>Всегда включает продвинутую баллистику когда стреляет член группы</Russian>
|
||||||
|
<Italian>Abilita sempre Balistica Avanzata quando un Membro del Gruppo spara</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName">
|
||||||
<English>Disabled In FullAuto Mode</English>
|
<English>Disabled In FullAuto Mode</English>
|
||||||
@ -156,6 +167,7 @@
|
|||||||
<French>Désactiver en mode rafale libre</French>
|
<French>Désactiver en mode rafale libre</French>
|
||||||
<Hungarian>Automata módban letiltva</Hungarian>
|
<Hungarian>Automata módban letiltva</Hungarian>
|
||||||
<Russian>Выкл. для автомат. режима</Russian>
|
<Russian>Выкл. для автомат. режима</Russian>
|
||||||
|
<Italian>Disabilita in modalità di fuoco automatico</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description">
|
||||||
<English>Disables the advanced ballistics during full auto fire</English>
|
<English>Disables the advanced ballistics during full auto fire</English>
|
||||||
@ -167,6 +179,7 @@
|
|||||||
<French>Désactive la balistique avancée pour les tirs en rafale libre</French>
|
<French>Désactive la balistique avancée pour les tirs en rafale libre</French>
|
||||||
<Hungarian>Letiltja a fejlett ballisztikát automata tüzelés folyamán</Hungarian>
|
<Hungarian>Letiltja a fejlett ballisztikát automata tüzelés folyamán</Hungarian>
|
||||||
<Russian>Выключает продвинутую баллистику при стрельбе в полностью автоматическом режиме</Russian>
|
<Russian>Выключает продвинутую баллистику при стрельбе в полностью автоматическом режиме</Russian>
|
||||||
|
<Italian>Disabilita Balistica Avanzata durante fuoco automatico</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
|
||||||
<English>Enable Ammo Temperature Simulation</English>
|
<English>Enable Ammo Temperature Simulation</English>
|
||||||
@ -178,6 +191,7 @@
|
|||||||
<French>Activer la simulation de la température</French>
|
<French>Activer la simulation de la température</French>
|
||||||
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
|
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
|
||||||
<Russian>Симуляция температуры для боеприпасов</Russian>
|
<Russian>Симуляция температуры для боеприпасов</Russian>
|
||||||
|
<Italian>Abilita simulazione della temperatura delle munizioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description">
|
||||||
<English>Muzzle velocity varies with ammo temperature</English>
|
<English>Muzzle velocity varies with ammo temperature</English>
|
||||||
@ -189,6 +203,7 @@
|
|||||||
<French>La température de la munition influe sur la vélocité intiale</French>
|
<French>La température de la munition influe sur la vélocité intiale</French>
|
||||||
<Hungarian>A kezdősebesség a lőszer hőmérsékletétől függően változó</Hungarian>
|
<Hungarian>A kezdősebesség a lőszer hőmérsékletétől függően változó</Hungarian>
|
||||||
<Russian>Начальная скорость пули зависит от температуры</Russian>
|
<Russian>Начальная скорость пули зависит от температуры</Russian>
|
||||||
|
<Italian>Velocità alla volata varia con la temperatura delle munizioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName">
|
||||||
<English>Enable Barrel Length Simulation</English>
|
<English>Enable Barrel Length Simulation</English>
|
||||||
@ -200,6 +215,7 @@
|
|||||||
<French>Activer la simulation de la longueur de canon</French>
|
<French>Activer la simulation de la longueur de canon</French>
|
||||||
<Hungarian>Csőhossz-szimuláció engedélyezése</Hungarian>
|
<Hungarian>Csőhossz-szimuláció engedélyezése</Hungarian>
|
||||||
<Russian>Симуляция длины ствола</Russian>
|
<Russian>Симуляция длины ствола</Russian>
|
||||||
|
<Italian>Abilita simulazione della lunghezza della canna</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description">
|
||||||
<English>Muzzle velocity varies with barrel length</English>
|
<English>Muzzle velocity varies with barrel length</English>
|
||||||
@ -211,6 +227,7 @@
|
|||||||
<French>La longueur du canon influe sur la vélocité initale</French>
|
<French>La longueur du canon influe sur la vélocité initale</French>
|
||||||
<Hungarian>A kezdősebesség a cső hosszától függően változó</Hungarian>
|
<Hungarian>A kezdősebesség a cső hosszától függően változó</Hungarian>
|
||||||
<Russian>Начальная скорость пули зависит от длины ствола</Russian>
|
<Russian>Начальная скорость пули зависит от длины ствола</Russian>
|
||||||
|
<Italian>Velocità alla volata varia con la lunghezza della canna</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName">
|
||||||
<English>Enable Bullet Trace Effect</English>
|
<English>Enable Bullet Trace Effect</English>
|
||||||
@ -222,6 +239,7 @@
|
|||||||
<French>Activer l'effet traçante</French>
|
<French>Activer l'effet traçante</French>
|
||||||
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
||||||
<Russian>Следы пуль</Russian>
|
<Russian>Следы пуль</Russian>
|
||||||
|
<Italian>Abilita effetto di tracciatura dei proiettili</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_Description">
|
||||||
<English>Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)</English>
|
<English>Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)</English>
|
||||||
@ -233,6 +251,7 @@
|
|||||||
<French>Active une tracante pour les munitions de gros calibre (seulement visible en utilisant des optiques avancées)</French>
|
<French>Active une tracante pour les munitions de gros calibre (seulement visible en utilisant des optiques avancées)</French>
|
||||||
<Hungarian>Engedélyezi a nagy kaliberű lövedékek nyomának vizuális követését (csak nagy teljesítményű optikán keresztül látható)</Hungarian>
|
<Hungarian>Engedélyezi a nagy kaliberű lövedékek nyomának vizuális követését (csak nagy teljesítményű optikán keresztül látható)</Hungarian>
|
||||||
<Russian>Включает эффект следов пуль для больших калибров (видны только через мощную оптику)</Russian>
|
<Russian>Включает эффект следов пуль для больших калибров (видны только через мощную оптику)</Russian>
|
||||||
|
<Italian>Abilita effetto di tracciatura per proiettili di alto calibro (visibile solo attraverso ottiche ad alto potenziale)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
|
||||||
<English>Simulation Interval</English>
|
<English>Simulation Interval</English>
|
||||||
@ -244,6 +263,7 @@
|
|||||||
<French>Intervalle de simulation</French>
|
<French>Intervalle de simulation</French>
|
||||||
<Hungarian>Szimuláció intervalluma</Hungarian>
|
<Hungarian>Szimuláció intervalluma</Hungarian>
|
||||||
<Russian>Интервал симуляции</Russian>
|
<Russian>Интервал симуляции</Russian>
|
||||||
|
<Italian>Intervallo Simulazione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description">
|
||||||
<English>Defines the interval between every calculation step</English>
|
<English>Defines the interval between every calculation step</English>
|
||||||
@ -255,6 +275,7 @@
|
|||||||
<French>Défini un intervalle de calcul entre deux simulations</French>
|
<French>Défini un intervalle de calcul entre deux simulations</French>
|
||||||
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
|
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
|
||||||
<Russian>Определяет временной интервал между вычислениями</Russian>
|
<Russian>Определяет временной интервал между вычислениями</Russian>
|
||||||
|
<Italian>Definisce l'intervallo tra ogni step di calcolo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
|
||||||
<English>Simulation Radius</English>
|
<English>Simulation Radius</English>
|
||||||
@ -266,6 +287,7 @@
|
|||||||
<French>Rayon de simulation</French>
|
<French>Rayon de simulation</French>
|
||||||
<Hungarian>Szimuláció hatóköre</Hungarian>
|
<Hungarian>Szimuláció hatóköre</Hungarian>
|
||||||
<Russian>Радиус симуляции</Russian>
|
<Russian>Радиус симуляции</Russian>
|
||||||
|
<Italian>Raggio Simulazione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_Description">
|
||||||
<English>Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles</English>
|
<English>Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles</English>
|
||||||
@ -277,9 +299,11 @@
|
|||||||
<French>Défini le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
|
<French>Défini le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
|
||||||
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
|
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
|
||||||
<Russian>Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам</Russian>
|
<Russian>Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам</Russian>
|
||||||
|
<Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Advanced_Ballistics_Description">
|
<Key ID="STR_ACE_Advanced_Ballistics_Description">
|
||||||
<English>This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired.</English>
|
<English>This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired.</English>
|
||||||
|
<German>Dieses Modul aktiviert die Erweiterte Ballisitk. Die Flugbahn eines Geschosses wird nun von Einflüssen wie z.B Temperatur, Luftdruck, Luftfeuchtigkeit, Schwerkraft, Geschossart sowie der Waffe aus dem es gefeuert wird, beeinflusst.</German>
|
||||||
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
|
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
|
||||||
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
||||||
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
||||||
@ -287,6 +311,7 @@
|
|||||||
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
||||||
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
|
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
|
||||||
<Spanish>Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.</Spanish>
|
<Spanish>Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.</Spanish>
|
||||||
|
<Italian>Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Attach">
|
<Package name="Attach">
|
||||||
<Key ID="STR_ACE_Attach_AttachDetach">
|
<Key ID="STR_ACE_Attach_AttachDetach">
|
||||||
|
@ -30,7 +30,7 @@ private _sounds = [
|
|||||||
private _position = AGLToASL (_target modelToWorldVisual (_target selectionPosition "Spine3"));
|
private _position = AGLToASL (_target modelToWorldVisual (_target selectionPosition "Spine3"));
|
||||||
|
|
||||||
playSound3D [
|
playSound3D [
|
||||||
_sounds select floor random count _sounds,
|
selectRandom _sounds,
|
||||||
objNull,
|
objNull,
|
||||||
false,
|
false,
|
||||||
_position,
|
_position,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Ballistics">
|
<Package name="Ballistics">
|
||||||
<!-- MX -->
|
<!-- MX -->
|
||||||
@ -1602,6 +1602,7 @@
|
|||||||
<French>[ACE] Caisse de munitions</French>
|
<French>[ACE] Caisse de munitions</French>
|
||||||
<Hungarian>[ACE] Lőszeres láda</Hungarian>
|
<Hungarian>[ACE] Lőszeres láda</Hungarian>
|
||||||
<Russian>[ACE] Ящик с боеприпасами</Russian>
|
<Russian>[ACE] Ящик с боеприпасами</Russian>
|
||||||
|
<Italian>[ACE] Cassa munizioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -34,3 +34,10 @@ if (!hasInterface) exitWith {};
|
|||||||
["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition);
|
["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition);
|
||||||
["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),false))}] call EFUNC(common,addCanInteractWithCondition);
|
["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),false))}] call EFUNC(common,addCanInteractWithCondition);
|
||||||
["isNotSurrendering", {!(GETVAR(_this select 0,GVAR(isSurrendering),false))}] call EFUNC(common,addCanInteractWithCondition);
|
["isNotSurrendering", {!(GETVAR(_this select 0,GVAR(isSurrendering),false))}] call EFUNC(common,addCanInteractWithCondition);
|
||||||
|
|
||||||
|
["SettingsInitialized", {
|
||||||
|
// Hold on a little bit longer to ensure anims will work
|
||||||
|
[{
|
||||||
|
GVAR(captivityEnabled) = true;
|
||||||
|
}, [], 0.05] call EFUNC(common,waitAndExecute);
|
||||||
|
}] call EFUNC(common,addEventHandler);
|
||||||
|
@ -32,4 +32,6 @@ PREP(setSurrendered);
|
|||||||
PREP(vehicleCaptiveMoveIn);
|
PREP(vehicleCaptiveMoveIn);
|
||||||
PREP(vehicleCaptiveMoveOut);
|
PREP(vehicleCaptiveMoveOut);
|
||||||
|
|
||||||
|
GVAR(captivityEnabled) = false;
|
||||||
|
|
||||||
ADDON = true;
|
ADDON = true;
|
||||||
|
@ -22,6 +22,18 @@ TRACE_2("params",_unit,_state);
|
|||||||
if (!local _unit) exitWith {
|
if (!local _unit) exitWith {
|
||||||
ERROR("running setHandcuffed on remote unit");
|
ERROR("running setHandcuffed on remote unit");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
||||||
|
// It's to soon to call this function, delay it
|
||||||
|
if (EGVAR(common,settingsInitFinished)) then {
|
||||||
|
// Settings are already initialized, but the small wait isn't over
|
||||||
|
[DFUNC(setHandCuffed), _this, 0.05] call EFUNC(common,waitAndExecute);
|
||||||
|
} else {
|
||||||
|
// Settings are not initialized yet
|
||||||
|
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
if ((_unit getVariable [QGVAR(isHandcuffed), false]) isEqualTo _state) exitWith {
|
if ((_unit getVariable [QGVAR(isHandcuffed), false]) isEqualTo _state) exitWith {
|
||||||
ERROR("setHandcuffed: current state same as new");
|
ERROR("setHandcuffed: current state same as new");
|
||||||
};
|
};
|
||||||
|
@ -23,6 +23,17 @@ if (!local _unit) exitWith {
|
|||||||
ERROR("running surrender on remote unit");
|
ERROR("running surrender on remote unit");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
||||||
|
// It's to soon to call this function, delay it
|
||||||
|
if (EGVAR(common,settingsInitFinished)) then {
|
||||||
|
// Settings are already initialized, but the small wait isn't over
|
||||||
|
[DFUNC(setSurrendered), _this, 0.05] call EFUNC(common,waitAndExecute);
|
||||||
|
} else {
|
||||||
|
// Settings are not initialized yet
|
||||||
|
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
if ((_unit getVariable [QGVAR(isSurrendering), false]) isEqualTo _state) exitWith {
|
if ((_unit getVariable [QGVAR(isSurrendering), false]) isEqualTo _state) exitWith {
|
||||||
ERROR("Surrender: current state same as new");
|
ERROR("Surrender: current state same as new");
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Captives">
|
<Package name="Captives">
|
||||||
<Key ID="STR_ACE_Captives_SetCaptive">
|
<Key ID="STR_ACE_Captives_SetCaptive">
|
||||||
@ -167,6 +167,7 @@
|
|||||||
<French>Faire capituler l'unité</French>
|
<French>Faire capituler l'unité</French>
|
||||||
<Hungarian>Egység kapitulálása</Hungarian>
|
<Hungarian>Egység kapitulálása</Hungarian>
|
||||||
<Russian>Заставить юнита сдаться</Russian>
|
<Russian>Заставить юнита сдаться</Russian>
|
||||||
|
<Italian>Fai arrendere l'unità</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSurrender_Description">
|
<Key ID="STR_ACE_Captives_ModuleSurrender_Description">
|
||||||
<English>Sync a unit to make them surrender.<br />Source: ace_captives</English>
|
<English>Sync a unit to make them surrender.<br />Source: ace_captives</English>
|
||||||
@ -178,20 +179,25 @@
|
|||||||
<French>Synchronise une unité pour la rendre captive. <br/>Source: ace_captives</French>
|
<French>Synchronise une unité pour la rendre captive. <br/>Source: ace_captives</French>
|
||||||
<Hungarian>Egység szinkronizálása, hogy kapituláljon.<br />Forrás: ace_captives</Hungarian>
|
<Hungarian>Egység szinkronizálása, hogy kapituláljon.<br />Forrás: ace_captives</Hungarian>
|
||||||
<Russian>Синхронизируйте с юнитами, чтобы заставить их сдаться в плен.<br />Источник: ace_captives</Russian>
|
<Russian>Синхронизируйте с юнитами, чтобы заставить их сдаться в плен.<br />Источник: ace_captives</Russian>
|
||||||
|
<Italian>Sincronizza una unità per farla arrendere.<br/>Fonte: ace_captives</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleHandcuffed_DisplayName">
|
<Key ID="STR_ACE_Captives_ModuleHandcuffed_DisplayName">
|
||||||
<English>Make Unit Handcuffed</English>
|
<English>Make Unit Handcuffed</English>
|
||||||
|
<German>Einheit in Handschellen legen</German>
|
||||||
<Polish>Skuj jednostkę</Polish>
|
<Polish>Skuj jednostkę</Polish>
|
||||||
<Portuguese>Fazer unidade algemada</Portuguese>
|
<Portuguese>Fazer unidade algemada</Portuguese>
|
||||||
<Russian>Связать юнита</Russian>
|
<Russian>Связать юнита</Russian>
|
||||||
<Czech>Spoutat jednotku</Czech>
|
<Czech>Spoutat jednotku</Czech>
|
||||||
|
<Italian>Metti manette all'unità</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleHandcuffed_Description">
|
<Key ID="STR_ACE_Captives_ModuleHandcuffed_Description">
|
||||||
<English>Sync a unit to make them handcuffed.<br />Source: ace_captives</English>
|
<English>Sync a unit to make them handcuffed.<br />Source: ace_captives</English>
|
||||||
|
<German>Synchronisiere eine Einheit um sie in Handschellen zu legen.<br />Quelle: ace_captives</German>
|
||||||
<Polish>Zsynchronizuj z jednostką, aby została skuta.<br />Źródło: ace_captives</Polish>
|
<Polish>Zsynchronizuj z jednostką, aby została skuta.<br />Źródło: ace_captives</Polish>
|
||||||
<Portuguese>Sincronizar uma unidade para deixá-la algemada.<br/>Source: ace_captives</Portuguese>
|
<Portuguese>Sincronizar uma unidade para deixá-la algemada.<br/>Source: ace_captives</Portuguese>
|
||||||
<Russian>Синхронизируйте с юнитами, чтобы сделать их связанными.<br />Источник: ace_captives</Russian>
|
<Russian>Синхронизируйте с юнитами, чтобы сделать их связанными.<br />Источник: ace_captives</Russian>
|
||||||
<Czech>Synchronizovat s jednotkou, která má být v poutech.<br />Zdroj: ace_captives</Czech>
|
<Czech>Synchronizovat s jednotkou, která má být v poutech.<br />Zdroj: ace_captives</Czech>
|
||||||
|
<Italian>Sincronizza un'unità per metterle le manette.<br/>Fonte: ace_captives</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
|
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
|
||||||
<English>Captives Settings</English>
|
<English>Captives Settings</English>
|
||||||
@ -203,6 +209,7 @@
|
|||||||
<French>Options de capitulation</French>
|
<French>Options de capitulation</French>
|
||||||
<Hungarian>Fogoly-beállítások</Hungarian>
|
<Hungarian>Fogoly-beállítások</Hungarian>
|
||||||
<Russian>Настройки пленения</Russian>
|
<Russian>Настройки пленения</Russian>
|
||||||
|
<Italian>Impostazioni Prigionieri</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_Description">
|
<Key ID="STR_ACE_Captives_ModuleSettings_Description">
|
||||||
<English>Controls settings for surrender and cable ties</English>
|
<English>Controls settings for surrender and cable ties</English>
|
||||||
@ -214,6 +221,7 @@
|
|||||||
<French>Contrôle les paramètres de la rédition et des Serflex</French>
|
<French>Contrôle les paramètres de la rédition et des Serflex</French>
|
||||||
<Hungarian>Szabályozza a kapituláció és bilincselés beállításait</Hungarian>
|
<Hungarian>Szabályozza a kapituláció és bilincselés beállításait</Hungarian>
|
||||||
<Russian>Управляет настройками сдачи в плен и связывания</Russian>
|
<Russian>Управляет настройками сдачи в плен и связывания</Russian>
|
||||||
|
<Italian>Controlla le impostazioni per la resa e le manette</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_name">
|
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_name">
|
||||||
<English>Can handcuff own side</English>
|
<English>Can handcuff own side</English>
|
||||||
@ -225,6 +233,7 @@
|
|||||||
<French>Peut libérer sa propre faction</French>
|
<French>Peut libérer sa propre faction</French>
|
||||||
<Hungarian>Saját oldal megbilincselhető</Hungarian>
|
<Hungarian>Saját oldal megbilincselhető</Hungarian>
|
||||||
<Russian>Связать союзника</Russian>
|
<Russian>Связать союзника</Russian>
|
||||||
|
<Italian>Puoi ammanettare unità alleate</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_description">
|
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_description">
|
||||||
<English>Can players cabletie units on their own side</English>
|
<English>Can players cabletie units on their own side</English>
|
||||||
@ -236,6 +245,7 @@
|
|||||||
<French>Les joueurs peuvent utiliser les Serflex sur leur propre camp</French>
|
<French>Les joueurs peuvent utiliser les Serflex sur leur propre camp</French>
|
||||||
<Hungarian>A játékosok megkötözhetik-e a saját oldalukon lévő egységeket</Hungarian>
|
<Hungarian>A játékosok megkötözhetik-e a saját oldalukon lévő egységeket</Hungarian>
|
||||||
<Russian>Разрешить игрокам связывать юнитов своей стороны</Russian>
|
<Russian>Разрешить игрокам связывать юнитов своей стороны</Russian>
|
||||||
|
<Italian>I giocatori possono ammanettare unità alleate</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_name">
|
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_name">
|
||||||
<English>Allow surrendering</English>
|
<English>Allow surrendering</English>
|
||||||
@ -247,6 +257,7 @@
|
|||||||
<French>Permettre la capitulation</French>
|
<French>Permettre la capitulation</French>
|
||||||
<Hungarian>Kapituláció engedélyezése</Hungarian>
|
<Hungarian>Kapituláció engedélyezése</Hungarian>
|
||||||
<Russian>Сдаться в плен</Russian>
|
<Russian>Сдаться в плен</Russian>
|
||||||
|
<Italian>Permetti Resa</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_description">
|
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_description">
|
||||||
<English>Players can surrender after holstering their weapon</English>
|
<English>Players can surrender after holstering their weapon</English>
|
||||||
@ -258,6 +269,7 @@
|
|||||||
<French>Les joueurs peuvent se rendre après avoir rangé leur arme</French>
|
<French>Les joueurs peuvent se rendre après avoir rangé leur arme</French>
|
||||||
<Hungarian>A játékosok megadhatják magukat a fegyverük elrakása után</Hungarian>
|
<Hungarian>A játékosok megadhatják magukat a fegyverük elrakása után</Hungarian>
|
||||||
<Russian>Игроки могут сдаться в плен после того, как уберут оружие</Russian>
|
<Russian>Игроки могут сдаться в плен после того, как уберут оружие</Russian>
|
||||||
|
<Italian>I giocatori possono arrendersi dopo aver messo via le proprie armi</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_name">
|
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_name">
|
||||||
<English>Require surrendering</English>
|
<English>Require surrendering</English>
|
||||||
@ -267,6 +279,7 @@
|
|||||||
<Russian>Требовать пленения</Russian>
|
<Russian>Требовать пленения</Russian>
|
||||||
<Spanish>Requiere rendición</Spanish>
|
<Spanish>Requiere rendición</Spanish>
|
||||||
<Czech>Vzdávání vyžadováno</Czech>
|
<Czech>Vzdávání vyžadováno</Czech>
|
||||||
|
<Italian>Richiedi Resa</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_description">
|
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_description">
|
||||||
<English>Require Players to surrender before they can be arrested</English>
|
<English>Require Players to surrender before they can be arrested</English>
|
||||||
@ -276,6 +289,7 @@
|
|||||||
<Russian>Требуется, чтобы игрок сдался в плен прежде, чем его можно будет связать</Russian>
|
<Russian>Требуется, чтобы игрок сдался в плен прежде, чем его можно будет связать</Russian>
|
||||||
<Spanish>Requiere que los Jugadores se rindan antes de arrestarlos</Spanish>
|
<Spanish>Requiere que los Jugadores se rindan antes de arrestarlos</Spanish>
|
||||||
<Czech>Vyžaduje, aby se hráč nejdříve vzdal, poté může být spoután</Czech>
|
<Czech>Vyžaduje, aby se hráč nejdříve vzdal, poté může být spoután</Czech>
|
||||||
|
<Italian>I giocatori devono arrendersi prima che possano essere arrestati</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_SurrenderOnly">
|
<Key ID="STR_ACE_Captives_SurrenderOnly">
|
||||||
<English>Surrendering only</English>
|
<English>Surrendering only</English>
|
||||||
@ -285,6 +299,7 @@
|
|||||||
<Russian>Только сдавшийся в плен</Russian>
|
<Russian>Только сдавшийся в плен</Russian>
|
||||||
<Spanish>Solo rendición</Spanish>
|
<Spanish>Solo rendición</Spanish>
|
||||||
<Czech>Pouze vzdávání</Czech>
|
<Czech>Pouze vzdávání</Czech>
|
||||||
|
<Italian>Solo Resa</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_SurrenderOrNoWeapon">
|
<Key ID="STR_ACE_Captives_SurrenderOrNoWeapon">
|
||||||
<English>Surrendering or No weapon</English>
|
<English>Surrendering or No weapon</English>
|
||||||
@ -294,6 +309,7 @@
|
|||||||
<Russian>Сдавшийся или безоружный</Russian>
|
<Russian>Сдавшийся или безоружный</Russian>
|
||||||
<Spanish>Rendición o desarme</Spanish>
|
<Spanish>Rendición o desarme</Spanish>
|
||||||
<Czech>Vzdávání nebo beze zbraně</Czech>
|
<Czech>Vzdávání nebo beze zbraně</Czech>
|
||||||
|
<Italian>Resa o senza armi</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -95,4 +95,9 @@ class Extended_InitPost_EventHandlers {
|
|||||||
init = QUOTE(_this call DFUNC(initObject));
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
class Land_PortableLight_single_F {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -268,6 +268,13 @@ class CfgVehicles {
|
|||||||
GVAR(size) = 6;
|
GVAR(size) = 6;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Slingload_base_F: ReammoBox_F {};
|
||||||
|
class CargoNet_01_base_F: Slingload_base_F { //Slingload pallets
|
||||||
|
GVAR(size) = 6;
|
||||||
|
};
|
||||||
|
class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers
|
||||||
|
GVAR(canLoad) = 0;
|
||||||
|
};
|
||||||
// objects
|
// objects
|
||||||
class RoadCone_F: ThingX {
|
class RoadCone_F: ThingX {
|
||||||
GVAR(size) = 1;
|
GVAR(size) = 1;
|
||||||
@ -485,4 +492,10 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Lamps_base_F;
|
||||||
|
class Land_PortableLight_single_F: Lamps_base_F {
|
||||||
|
GVAR(size) = 1;
|
||||||
|
GVAR(canLoad) = 1;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Cargo">
|
<Package name="Cargo">
|
||||||
<Key ID="STR_ACE_Cargo_loadObject">
|
<Key ID="STR_ACE_Cargo_loadObject">
|
||||||
@ -9,6 +9,7 @@
|
|||||||
<Russian>Загрузить</Russian>
|
<Russian>Загрузить</Russian>
|
||||||
<Czech>Naložit</Czech>
|
<Czech>Naložit</Czech>
|
||||||
<Spanish>Cargar</Spanish>
|
<Spanish>Cargar</Spanish>
|
||||||
|
<Italian>Carica</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_unloadObject">
|
<Key ID="STR_ACE_Cargo_unloadObject">
|
||||||
<English>Unload</English>
|
<English>Unload</English>
|
||||||
@ -18,6 +19,7 @@
|
|||||||
<Russian>Выгрузить</Russian>
|
<Russian>Выгрузить</Russian>
|
||||||
<Czech>Vyložit</Czech>
|
<Czech>Vyložit</Czech>
|
||||||
<Spanish>Descargar</Spanish>
|
<Spanish>Descargar</Spanish>
|
||||||
|
<Italian>Scarica</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_openMenu">
|
<Key ID="STR_ACE_Cargo_openMenu">
|
||||||
<English>Cargo</English>
|
<English>Cargo</English>
|
||||||
@ -27,6 +29,7 @@
|
|||||||
<Russian>Грузовой отсек</Russian>
|
<Russian>Грузовой отсек</Russian>
|
||||||
<Czech>Náklad</Czech>
|
<Czech>Náklad</Czech>
|
||||||
<Spanish>Carga</Spanish>
|
<Spanish>Carga</Spanish>
|
||||||
|
<Italian>Cargo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_cargoMenu">
|
<Key ID="STR_ACE_Cargo_cargoMenu">
|
||||||
<English>Cargo Menu</English>
|
<English>Cargo Menu</English>
|
||||||
@ -36,6 +39,7 @@
|
|||||||
<Russian>Грузовой отсек</Russian>
|
<Russian>Грузовой отсек</Russian>
|
||||||
<Czech>Menu nákladu</Czech>
|
<Czech>Menu nákladu</Czech>
|
||||||
<Spanish>Menu de carga</Spanish>
|
<Spanish>Menu de carga</Spanish>
|
||||||
|
<Italian>Menù Cargo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_labelSpace">
|
<Key ID="STR_ACE_Cargo_labelSpace">
|
||||||
<English>Cargo space left: %1</English>
|
<English>Cargo space left: %1</English>
|
||||||
@ -45,6 +49,7 @@
|
|||||||
<Russian>Осталось мест: %1</Russian>
|
<Russian>Осталось мест: %1</Russian>
|
||||||
<Czech>Zbývající prostor: %1</Czech>
|
<Czech>Zbývající prostor: %1</Czech>
|
||||||
<Spanish>Espacio de carga restante: %1</Spanish>
|
<Spanish>Espacio de carga restante: %1</Spanish>
|
||||||
|
<Italian>Spazio cargo rimanente: %1</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enable">
|
<Key ID="STR_ACE_Cargo_ModuleSettings_enable">
|
||||||
<English>Enable Cargo</English>
|
<English>Enable Cargo</English>
|
||||||
@ -54,6 +59,7 @@
|
|||||||
<Russian>Включить модуль перевозки грузов</Russian>
|
<Russian>Включить модуль перевозки грузов</Russian>
|
||||||
<Czech>Povolit náklad</Czech>
|
<Czech>Povolit náklad</Czech>
|
||||||
<Spanish>Habilitar carga</Spanish>
|
<Spanish>Habilitar carga</Spanish>
|
||||||
|
<Italian>Abilita Cargo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
|
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
|
||||||
<English>Enable the load in cargo module</English>
|
<English>Enable the load in cargo module</English>
|
||||||
@ -63,6 +69,7 @@
|
|||||||
<Russian>Включает модуль погрузки и перевозки грузов</Russian>
|
<Russian>Включает модуль погрузки и перевозки грузов</Russian>
|
||||||
<Spanish>Habilitar la carga en el módulo de carga</Spanish>
|
<Spanish>Habilitar la carga en el módulo de carga</Spanish>
|
||||||
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
||||||
|
<Italian>Abilita il modulo di caricamento in cargo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
|
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
|
||||||
<English>Cargo Settings</English>
|
<English>Cargo Settings</English>
|
||||||
@ -72,6 +79,7 @@
|
|||||||
<Russian>Перевозка грузов</Russian>
|
<Russian>Перевозка грузов</Russian>
|
||||||
<Czech>Nastavení nákladu</Czech>
|
<Czech>Nastavení nákladu</Czech>
|
||||||
<Spanish>Ajustes de carga</Spanish>
|
<Spanish>Ajustes de carga</Spanish>
|
||||||
|
<Italian>Impostazioni Cargo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
|
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
|
||||||
<English>Configure the cargo module settings</English>
|
<English>Configure the cargo module settings</English>
|
||||||
@ -81,6 +89,7 @@
|
|||||||
<Russian>Конфигурирует настройки модуля перевозки грузов</Russian>
|
<Russian>Конфигурирует настройки модуля перевозки грузов</Russian>
|
||||||
<Spanish>Configure los ajustes del módulo de carga</Spanish>
|
<Spanish>Configure los ajustes del módulo de carga</Spanish>
|
||||||
<Czech>Konfigurace nákladního modulu</Czech>
|
<Czech>Konfigurace nákladního modulu</Czech>
|
||||||
|
<Italian>Configura le impostazioni del modulo cargo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_LoadedItem">
|
<Key ID="STR_ACE_Cargo_LoadedItem">
|
||||||
<English>%1<br/>loaded into<br/>%2</English>
|
<English>%1<br/>loaded into<br/>%2</English>
|
||||||
@ -108,40 +117,56 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_LoadingItem">
|
<Key ID="STR_ACE_Cargo_LoadingItem">
|
||||||
<English>Loading Cargo</English>
|
<English>Loading Cargo</English>
|
||||||
|
<German>Belade</German>
|
||||||
<Portuguese>Carregando carga</Portuguese>
|
<Portuguese>Carregando carga</Portuguese>
|
||||||
<Polish>Ładowanie cargo</Polish>
|
<Polish>Ładowanie cargo</Polish>
|
||||||
<Czech>Nakládám</Czech>
|
<Czech>Nakládám</Czech>
|
||||||
<Russian>Погрузка</Russian>
|
<Russian>Погрузка</Russian>
|
||||||
|
<Italian>Caricando</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_UnloadingItem">
|
<Key ID="STR_ACE_Cargo_UnloadingItem">
|
||||||
<English>Unloading Cargo</English>
|
<English>Unloading Cargo</English>
|
||||||
|
<German>Entlade</German>
|
||||||
<Portuguese>Descarregando carga</Portuguese>
|
<Portuguese>Descarregando carga</Portuguese>
|
||||||
<Polish>Rozładowywanie cargo</Polish>
|
<Polish>Rozładowywanie cargo</Polish>
|
||||||
<Czech>Vykládám</Czech>
|
<Czech>Vykládám</Czech>
|
||||||
<Russian>Выгрузка</Russian>
|
<Russian>Выгрузка</Russian>
|
||||||
|
<Italian>Scaricando</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_LoadingFailed">
|
<Key ID="STR_ACE_Cargo_LoadingFailed">
|
||||||
<English>%1<br/>could not be loaded</English>
|
<English>%1<br/>could not be loaded</English>
|
||||||
|
<German>%1<br/>konnte nicht eingeladen werden</German>
|
||||||
<Portuguese>%1<br/>não pode ser carregado</Portuguese>
|
<Portuguese>%1<br/>não pode ser carregado</Portuguese>
|
||||||
<Polish>%1<br/>nie mógł zostać załadowany</Polish>
|
<Polish>%1<br/>nie mógł zostać załadowany</Polish>
|
||||||
<Czech>%1<br/>nemůže být naloženo</Czech>
|
<Czech>%1<br/>nemůže být naloženo</Czech>
|
||||||
<Russian>%1<br/>не может быть погружен</Russian>
|
<Russian>%1<br/>не может быть погружен</Russian>
|
||||||
|
<Italian>%1<br/>non può essere caricato</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_UnloadingFailed">
|
<Key ID="STR_ACE_Cargo_UnloadingFailed">
|
||||||
<English>%1<br/>could not be unloaded</English>
|
<English>%1<br/>could not be unloaded</English>
|
||||||
|
<German>%1<br/>konnte nicht entladen werden</German>
|
||||||
<Portuguese>%1<br/>não pode ser descarregado</Portuguese>
|
<Portuguese>%1<br/>não pode ser descarregado</Portuguese>
|
||||||
<Polish>%1<br/>nie mógł zostać rozładowany</Polish>
|
<Polish>%1<br/>nie mógł zostać rozładowany</Polish>
|
||||||
<Czech>%1<br/>nemůže být vyloženo</Czech>
|
<Czech>%1<br/>nemůže být vyloženo</Czech>
|
||||||
<Russian>%1<br/>не может быть выгружен</Russian>
|
<Russian>%1<br/>не может быть выгружен</Russian>
|
||||||
|
<Italian>%1<br/>non può essere scaricato</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_displayName">
|
<Key ID="STR_ACE_Cargo_makeLoadable_displayName">
|
||||||
<English>Make Object Loadable</English>
|
<English>Make Object Loadable</English>
|
||||||
|
<German>Füge Objekt zum Frachtsystem hinzu</German>
|
||||||
|
<Polish>Ustaw jako ładowalny</Polish>
|
||||||
|
<Italian>Rendi oggetto caricabile</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_description">
|
<Key ID="STR_ACE_Cargo_makeLoadable_description">
|
||||||
<English>Sets the synced object as loadable by the cargo system.</English>
|
<English>Sets the synced object as loadable by the cargo system.</English>
|
||||||
|
<German>Das synchronisierte Objekt wird dem Frachtsystem hinzugefügt und ist be- und entladbar.</German>
|
||||||
|
<Polish>Ustawia zsynchronizowany obiekt jako możliwy do załadowania poprzez system cargo</Polish>
|
||||||
|
<Italian>Imposta l'oggetto sincronizzato come caricabile dal sistema cargo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
|
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
|
||||||
<English>Object's Size</English>
|
<English>Object's Size</English>
|
||||||
|
<Polish>Rozmiar obiektu</Polish>
|
||||||
|
<Italian>Dimensioni dell'oggetto</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
11
addons/common/CfgEden.hpp
Normal file
11
addons/common/CfgEden.hpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
class Cfg3DEN {
|
||||||
|
class Object {
|
||||||
|
class AttributeCategories {
|
||||||
|
class ace_attributes {
|
||||||
|
displayName = CSTRING(Options);
|
||||||
|
collapsed = 1;
|
||||||
|
class Attributes {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -13,7 +13,7 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class ACE_FakePrimaryWeapon: Rifle_Base_F {
|
class ACE_FakePrimaryWeapon: Rifle_Base_F {
|
||||||
scope = 2;
|
scope = 1;
|
||||||
scopeCurator = 1;
|
scopeCurator = 1;
|
||||||
scopeArsenal = 1;
|
scopeArsenal = 1;
|
||||||
displayName = "";
|
displayName = "";
|
||||||
|
@ -476,6 +476,8 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
|
|||||||
};
|
};
|
||||||
}] call FUNC(addEventhandler);
|
}] call FUNC(addEventhandler);
|
||||||
|
|
||||||
|
["useItem", DFUNC(useItem)] call FUNC(addEventHandler);
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
// Add various canInteractWith conditions
|
// Add various canInteractWith conditions
|
||||||
|
@ -21,7 +21,6 @@ PREP(changeProjectileDirection);
|
|||||||
PREP(checkFiles);
|
PREP(checkFiles);
|
||||||
PREP(checkPBOs);
|
PREP(checkPBOs);
|
||||||
PREP(claim);
|
PREP(claim);
|
||||||
PREP(codeToLetter);
|
|
||||||
PREP(codeToString);
|
PREP(codeToString);
|
||||||
PREP(createOrthonormalReference);
|
PREP(createOrthonormalReference);
|
||||||
PREP(currentChannel);
|
PREP(currentChannel);
|
||||||
@ -102,12 +101,9 @@ PREP(hasItem);
|
|||||||
PREP(hasMagazine);
|
PREP(hasMagazine);
|
||||||
PREP(headBugFix);
|
PREP(headBugFix);
|
||||||
PREP(hideUnit);
|
PREP(hideUnit);
|
||||||
PREP(inheritsFrom);
|
|
||||||
PREP(insertionSort);
|
PREP(insertionSort);
|
||||||
PREP(interpolateFromArray);
|
PREP(interpolateFromArray);
|
||||||
PREP(inTransitionAnim);
|
PREP(inTransitionAnim);
|
||||||
PREP(inWater);
|
|
||||||
PREP(isAlive);
|
|
||||||
PREP(isAutoWind);
|
PREP(isAutoWind);
|
||||||
PREP(isAwake);
|
PREP(isAwake);
|
||||||
PREP(isEngineer);
|
PREP(isEngineer);
|
||||||
@ -116,9 +112,7 @@ PREP(isFeatureCameraActive);
|
|||||||
PREP(isInBuilding);
|
PREP(isInBuilding);
|
||||||
PREP(isModLoaded);
|
PREP(isModLoaded);
|
||||||
PREP(isPlayer);
|
PREP(isPlayer);
|
||||||
PREP(isTurnedOut);
|
|
||||||
PREP(isUnderwater);
|
PREP(isUnderwater);
|
||||||
PREP(letterToCode);
|
|
||||||
PREP(lightIntensityFromObject);
|
PREP(lightIntensityFromObject);
|
||||||
PREP(loadPerson);
|
PREP(loadPerson);
|
||||||
PREP(loadPersonLocal);
|
PREP(loadPersonLocal);
|
||||||
@ -170,7 +164,6 @@ PREP(setSettingFromConfig);
|
|||||||
PREP(setVariableJIP);
|
PREP(setVariableJIP);
|
||||||
PREP(setVariablePublic);
|
PREP(setVariablePublic);
|
||||||
PREP(setVolume);
|
PREP(setVolume);
|
||||||
PREP(sortAlphabeticallyBy);
|
|
||||||
PREP(showHud);
|
PREP(showHud);
|
||||||
PREP(statusEffect_addType);
|
PREP(statusEffect_addType);
|
||||||
PREP(statusEffect_get);
|
PREP(statusEffect_get);
|
||||||
@ -190,7 +183,6 @@ PREP(toHex);
|
|||||||
PREP(toNumber);
|
PREP(toNumber);
|
||||||
PREP(unhideUnit);
|
PREP(unhideUnit);
|
||||||
PREP(uniqueElements);
|
PREP(uniqueElements);
|
||||||
PREP(uniqueElementsOnly);
|
|
||||||
PREP(unloadPerson);
|
PREP(unloadPerson);
|
||||||
PREP(unloadPersonLocal);
|
PREP(unloadPersonLocal);
|
||||||
PREP(unmuteUnit);
|
PREP(unmuteUnit);
|
||||||
@ -217,8 +209,6 @@ PREP(getWeaponMuzzles);
|
|||||||
PREP(getConfigTypeObject);
|
PREP(getConfigTypeObject);
|
||||||
PREP(getConfigGunner);
|
PREP(getConfigGunner);
|
||||||
PREP(getConfigCommander);
|
PREP(getConfigCommander);
|
||||||
PREP(getHitPoints);
|
|
||||||
PREP(getHitPointsWithSelections);
|
|
||||||
PREP(getSelectionsWithoutHitPoints);
|
PREP(getSelectionsWithoutHitPoints);
|
||||||
PREP(getReflectorsWithSelections);
|
PREP(getReflectorsWithSelections);
|
||||||
PREP(getLightProperties);
|
PREP(getLightProperties);
|
||||||
@ -257,7 +247,8 @@ PREP(addCuratorUnloadEventhandler);
|
|||||||
PREP(fixCrateContent);
|
PREP(fixCrateContent);
|
||||||
|
|
||||||
//ACE events global variables
|
//ACE events global variables
|
||||||
GVAR(events) = [[],[]];
|
GVAR(eventsLocation) = createLocation ["ACE_HashLocation", [-10000,-10000,-10000], 0, 0];
|
||||||
|
GVAR(eventsLocation) setText QGVAR(eventsLocation);
|
||||||
|
|
||||||
PREP(globalEvent);
|
PREP(globalEvent);
|
||||||
PREP(_handleNetEvent);
|
PREP(_handleNetEvent);
|
||||||
|
@ -24,6 +24,7 @@ class CfgPatches {
|
|||||||
#include "CfgMoves.hpp"
|
#include "CfgMoves.hpp"
|
||||||
#include "CfgVoice.hpp"
|
#include "CfgVoice.hpp"
|
||||||
#include "CfgUnitInsignia.hpp"
|
#include "CfgUnitInsignia.hpp"
|
||||||
|
#include "CfgEden.hpp"
|
||||||
|
|
||||||
class ACE_Rsc_Display_Base {
|
class ACE_Rsc_Display_Base {
|
||||||
idd = -1;
|
idd = -1;
|
||||||
|
@ -16,12 +16,9 @@ params ["_eventType", "_event"];
|
|||||||
|
|
||||||
if (_eventType == "ACEg") then {
|
if (_eventType == "ACEg") then {
|
||||||
_event params ["_eventName", "_eventArgs"];
|
_event params ["_eventName", "_eventArgs"];
|
||||||
GVAR(events) params ["_eventNames"];
|
|
||||||
|
|
||||||
private _eventIndex = _eventNames find _eventName;
|
private _eventFunctions = GVAR(eventsLocation) getVariable _eventName;
|
||||||
|
if (!isNil "_eventFunctions") then {
|
||||||
if (_eventIndex != -1) then {
|
|
||||||
private _events = (GVAR(events) select 1) select _eventIndex;
|
|
||||||
|
|
||||||
#ifdef DEBUG_EVENTS
|
#ifdef DEBUG_EVENTS
|
||||||
ACE_LOGINFO_1("* Net Event %1",_eventName);
|
ACE_LOGINFO_1("* Net Event %1",_eventName);
|
||||||
@ -35,7 +32,7 @@ if (_eventType == "ACEg") then {
|
|||||||
ACE_LOGINFO_1(" ID: %1",_forEachIndex);
|
ACE_LOGINFO_1(" ID: %1",_forEachIndex);
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
} forEach _events;
|
} forEach _eventFunctions;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -15,18 +15,11 @@
|
|||||||
|
|
||||||
params ["_eventName", "_eventCode"];
|
params ["_eventName", "_eventCode"];
|
||||||
|
|
||||||
GVAR(events) params ["_eventNames"];
|
private _eventFunctions = GVAR(eventsLocation) getVariable _eventName;
|
||||||
|
|
||||||
private _eventFunctions = [];
|
if (isNil "_eventFunctions") then {
|
||||||
private _eventIndex = _eventNames find _eventName;
|
_eventFunctions = [];
|
||||||
|
GVAR(eventsLocation) setVariable [_eventName, _eventFunctions];
|
||||||
if (_eventIndex != -1) then {
|
|
||||||
_eventFunctions = (GVAR(events) select 1) select _eventIndex;
|
|
||||||
} else {
|
|
||||||
private _eventNameCount = count _eventNames;
|
|
||||||
|
|
||||||
_eventNames set [_eventNameCount, _eventName];
|
|
||||||
(GVAR(events) select 1) set [_eventNameCount, _eventFunctions];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_eventFunctions pushBack _eventCode // Return event function count
|
_eventFunctions pushBack _eventCode // Return event function count
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
params ["_unit", "_target", ["_exceptions", []]];
|
params ["_unit", "_target", ["_exceptions", []]];
|
||||||
|
|
||||||
_exceptions = [_exceptions, {toLower _this}] call FUNC(map);
|
_exceptions = _exceptions apply {toLower _x};
|
||||||
|
|
||||||
private _owner = _target getVariable [QGVAR(owner), objNull];
|
private _owner = _target getVariable [QGVAR(owner), objNull];
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ ACE_LOGINFO_1("ACE is version %1.",_version);
|
|||||||
|
|
||||||
//private _addons = activatedAddons; // broken with High-Command module, see #2134
|
//private _addons = activatedAddons; // broken with High-Command module, see #2134
|
||||||
private _addons = "true" configClasses (configFile >> "CfgPatches");//
|
private _addons = "true" configClasses (configFile >> "CfgPatches");//
|
||||||
_addons = [_addons, {toLower configName _this}] call FUNC(map);//
|
_addons = _addons apply {toLower configName _x};//
|
||||||
_addons = [_addons, {_this find "ace_" == 0}] call FUNC(filter);
|
_addons = _addons select {_x find "ace_" == 0};
|
||||||
|
|
||||||
{
|
{
|
||||||
if (getText (configFile >> "CfgPatches" >> _x >> "versionStr") != _version) then {
|
if (getText (configFile >> "CfgPatches" >> _x >> "versionStr") != _version) then {
|
||||||
@ -63,7 +63,7 @@ _addons = [_addons, {_this find "ace_" == 0}] call FUNC(filter);
|
|||||||
///////////////
|
///////////////
|
||||||
if (isMultiplayer) then {
|
if (isMultiplayer) then {
|
||||||
// don't check optional addons
|
// don't check optional addons
|
||||||
_addons = [_addons, {getNumber (configFile >> "CfgPatches" >> _this >> "ACE_isOptional") != 1}] call FUNC(filter);
|
_addons = _addons select {getNumber (configFile >> "CfgPatches" >> _x >> "ACE_isOptional") != 1};
|
||||||
|
|
||||||
if (isServer) then {
|
if (isServer) then {
|
||||||
// send servers version of ACE to all clients
|
// send servers version of ACE to all clients
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: commy2
|
|
||||||
* Converts some keys to an Arma Dik Code.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: Key <STRING>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* Dik Code <NUMBER>
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_codeToLetter","3.5.0","-");
|
|
||||||
|
|
||||||
["", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] select ([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38, 50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 44, 21] find (_this select 0)) + 1
|
|
@ -17,6 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
ACE_DEPRECATED("ace_common_fnc_execPersistentFnc","3.7.0","ace_common_fnc_globalEvent");
|
||||||
|
|
||||||
GVAR(remoteFnc) = _this;
|
GVAR(remoteFnc) = _this;
|
||||||
|
|
||||||
params ["_arguments", "_function", "_unit", "_name"];
|
params ["_arguments", "_function", "_unit", "_name"];
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
ACE_DEPRECATED("ace_common_fnc_execRemoteFnc","3.7.0","ace_common_fnc_globalEvent");
|
||||||
|
|
||||||
GVAR(remoteFnc) = _this;
|
GVAR(remoteFnc) = _this;
|
||||||
|
|
||||||
params ["_arguments", "_function", ["_unit", 2]];
|
params ["_arguments", "_function", ["_unit", 2]];
|
||||||
|
@ -9,15 +9,16 @@
|
|||||||
* Return Value:
|
* Return Value:
|
||||||
* Final array
|
* Final array
|
||||||
*
|
*
|
||||||
* Usage:
|
|
||||||
* [[0,1,2,3,4], {_this > 2}] call FUNC(filter) ==> [3,4]
|
|
||||||
*
|
|
||||||
* Public: Yes
|
* Public: Yes
|
||||||
|
*
|
||||||
|
* Deprecated
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
params [["_array", [], [[]]], ["_code", {}, [{}]]];
|
params [["_array", [], [[]]], ["_code", {}, [{}]]];
|
||||||
|
|
||||||
|
ACE_DEPRECATED("ace_common_fnc_filter","3.7.0","select CODE");
|
||||||
|
|
||||||
private _result = [];
|
private _result = [];
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -16,4 +16,4 @@ params ["_name", "_cfgClass"];
|
|||||||
|
|
||||||
private _classes = format ["configName inheritsFrom _x == '%1'", _name] configClasses (configFile >> _cfgClass);
|
private _classes = format ["configName inheritsFrom _x == '%1'", _name] configClasses (configFile >> _cfgClass);
|
||||||
|
|
||||||
[_classes, {configName _this}] call FUNC(map) // return
|
_classes apply {configName _x} // return
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: commy2
|
|
||||||
* Returns all hitpoints and their selections of any vehicle. Might contain duplicates if the turrets contain non unique hitpoints with different selection names.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: Vehicle <OBJECT>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* Hitpoints <ARRAY>
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_getHitPoints","3.5.0","getAllHitPointsDamage");
|
|
||||||
|
|
||||||
params ["_vehicle"];
|
|
||||||
|
|
||||||
private _hitPointsWithSelections = getAllHitPointsDamage _vehicle;
|
|
||||||
|
|
||||||
// get correct format on vehicles without any hitpoints
|
|
||||||
if (_hitPointsWithSelections isEqualTo []) then {
|
|
||||||
_hitPointsWithSelections = [[],[],[]];
|
|
||||||
};
|
|
||||||
|
|
||||||
(_hitPointsWithSelections select 0) - [""]
|
|
@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: commy2
|
|
||||||
* Returns all hitpoints and their respective selections of any vehicle. Might contain duplicates for non unique hitpoints in turrets.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: Vehicle <OBJECT>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* 0: Hitpoints <ARRAY>
|
|
||||||
* 1: Selections <ARRAY>
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_getHitPointsWithSelections","3.5.0","getAllHitPointsDamage");
|
|
||||||
|
|
||||||
params ["_vehicle"];
|
|
||||||
|
|
||||||
private _hitPointsWithSelections = getAllHitPointsDamage _vehicle;
|
|
||||||
|
|
||||||
// get correct format on vehicles without any hitpoints
|
|
||||||
if (_hitPointsWithSelections isEqualTo []) then {
|
|
||||||
_hitPointsWithSelections = [[],[],[]];
|
|
||||||
};
|
|
||||||
|
|
||||||
_hitPointsWithSelections resize 2;
|
|
||||||
|
|
||||||
_hitPointsWithSelections
|
|
@ -14,4 +14,4 @@
|
|||||||
|
|
||||||
params [["_vehicle", objNull, [objNull]]];
|
params [["_vehicle", objNull, [objNull]]];
|
||||||
|
|
||||||
[crew _vehicle, {getText (configFile >> "CfgVehicles" >> typeOf _this >> "simulation") == "UAVPilot"}] call FUNC(filter) // return
|
crew _vehicle select {getText (configFile >> "CfgVehicles" >> typeOf _x >> "simulation") == "UAVPilot"} // return
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: Glowbal
|
|
||||||
* Check if unit's head is underwater
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: Unit <OBJECT>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* If unit's head is underwater <BOOL>
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_inWater","3.5.0","ace_common_fnc_isUnderwater");
|
|
||||||
|
|
||||||
_this call FUNC(isUnderwater)
|
|
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: Ruthberg
|
|
||||||
* Checks whether a given configuration name appears in the inheritance tree of a specific configuration entry.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: configEntry (CONFIG)
|
|
||||||
* 1: configname (STING)
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* BOOLEAN
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Note: Not to be confused with the inheritsFrom scripting command.
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_inheritsFrom","3.5.0","inheritsFrom ARRAY");
|
|
||||||
|
|
||||||
params ["_configEntry", "_configMatch"];
|
|
||||||
|
|
||||||
if (configName _configEntry == _configMatch) exitWith {true};
|
|
||||||
if (configName _configEntry == ",") exitWith {false};
|
|
||||||
|
|
||||||
private _match = false;
|
|
||||||
|
|
||||||
while {configName _configEntry != ""} do {
|
|
||||||
if (configName _configEntry == _configMatch) exitWith {
|
|
||||||
_match = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
_configEntry = inheritsFrom _configEntry;
|
|
||||||
};
|
|
||||||
|
|
||||||
_match
|
|
@ -1,21 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: commy2
|
|
||||||
* Check if the object still exists and is alive. This function exists because 'alive objNull' actually returns true.
|
|
||||||
*
|
|
||||||
* Argument:
|
|
||||||
* 0: Any object <OBJECT>
|
|
||||||
*
|
|
||||||
* Return value:
|
|
||||||
* The object exists and is alive <BOOL>.
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_isAlive","3.5.0","alive");
|
|
||||||
|
|
||||||
params ["_unit"];
|
|
||||||
|
|
||||||
!isNull _unit && {alive _unit} // return
|
|
@ -1,21 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: commy2
|
|
||||||
* Check if the unit is in a vehicle and turned out.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: Unit, not the vehicle <OBJECT>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* Is the unit turned out or not? Will return false if there is no option to turn out in the first place. <BOOL>
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_isTurnedOut","3.5.0","isTurnedOut");
|
|
||||||
|
|
||||||
params ["_unit"];
|
|
||||||
|
|
||||||
isTurnedOut _unit // return
|
|
@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: commy2
|
|
||||||
* Converts some Arma Dik Codes to a key.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: Dik Code <NUMBER>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* Key <STRING>
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_letterToCode","3.5.0","-");
|
|
||||||
|
|
||||||
[-1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38, 50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 44, 21] select (["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] find toUpper (_this select 0)) + 1
|
|
@ -15,12 +15,9 @@
|
|||||||
|
|
||||||
params ["_eventName", "_eventArgs"];
|
params ["_eventName", "_eventArgs"];
|
||||||
|
|
||||||
GVAR(events) params ["_eventNames", "_eventArray"];
|
private _eventFunctions = GVAR(eventsLocation) getVariable _eventName;
|
||||||
|
|
||||||
private _eventIndex = _eventNames find _eventName;
|
if (!isNil "_eventFunctions") then {
|
||||||
|
|
||||||
if (_eventIndex != -1) then {
|
|
||||||
private _events = _eventArray select _eventIndex;
|
|
||||||
|
|
||||||
#ifdef DEBUG_EVENTS
|
#ifdef DEBUG_EVENTS
|
||||||
ACE_LOGINFO_1("* Local Event: %1",_eventName);
|
ACE_LOGINFO_1("* Local Event: %1",_eventName);
|
||||||
@ -35,5 +32,5 @@ if (_eventIndex != -1) then {
|
|||||||
ACE_LOGINFO_1(" ID: %1",_forEachIndex);
|
ACE_LOGINFO_1(" ID: %1",_forEachIndex);
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
} forEach _events;
|
} forEach _eventFunctions;
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Author: KoffeinFlummi, commy2
|
* Author: KoffeinFlummi, commy2
|
||||||
* Applies given code to every element in an array, LIKE SOMETHING SQF SHOULD HAVE BY DEFAULT.
|
* Applies given code to every element in an array, LIKE SOMETHING SQF SHOULD HAVE BY DEFAULT. <- :kappa:
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Array to be thingied.
|
* 0: Array to be thingied.
|
||||||
@ -9,15 +9,16 @@
|
|||||||
* Return Value:
|
* Return Value:
|
||||||
* Final array
|
* Final array
|
||||||
*
|
*
|
||||||
* Usage:
|
|
||||||
* [["2", "gobblecock", "25"], {parseNumber _this}] call FUNC(map) ==> [2, 0, 25]
|
|
||||||
*
|
|
||||||
* Public: Yes
|
* Public: Yes
|
||||||
|
*
|
||||||
|
* Deprecated
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
params [["_array", [], [[]]], ["_code", {}, [{}]]];
|
params [["_array", [], [[]]], ["_code", {}, [{}]]];
|
||||||
|
|
||||||
|
ACE_DEPRECATED("ace_common_fnc_map","3.7.0","apply");
|
||||||
|
|
||||||
// copy array to not alter the original one
|
// copy array to not alter the original one
|
||||||
_array = + _array;
|
_array = + _array;
|
||||||
|
|
||||||
|
@ -14,11 +14,4 @@
|
|||||||
|
|
||||||
params ["_eventName"];
|
params ["_eventName"];
|
||||||
|
|
||||||
GVAR(events) params ["_eventNames", "_events"];
|
GVAR(eventsLocation) setVariable [_eventName, nil];
|
||||||
|
|
||||||
private _eventFunctions = [];
|
|
||||||
private _eventIndex = _eventNames find _eventName;
|
|
||||||
|
|
||||||
if (_eventIndex != -1) then {
|
|
||||||
_events set [_eventIndex, []];
|
|
||||||
};
|
|
||||||
|
@ -15,12 +15,9 @@
|
|||||||
|
|
||||||
params ["_eventName", "_eventCodeIndex"];
|
params ["_eventName", "_eventCodeIndex"];
|
||||||
|
|
||||||
GVAR(events) params ["_eventNames", "_events"];
|
private _eventFunctions = GVAR(eventsLocation) getVariable _eventName;
|
||||||
|
|
||||||
private _eventFunctions = [];
|
if (isNil "_eventFunctions") exitWith {TRACE_1("eventName not found",_eventName);};
|
||||||
private _eventIndex = _eventNames find _eventName;
|
if ((_eventCodeIndex < 0) || {(count _eventFunctions) <= _eventCodeIndex}) exitWith {TRACE_2("index out of bounds",_eventName,_eventCodeIndex);};
|
||||||
|
|
||||||
if (_eventIndex != -1) then {
|
|
||||||
_eventFunctions = _events select _eventIndex;
|
|
||||||
_eventFunctions set [_eventCodeIndex, nil];
|
_eventFunctions set [_eventCodeIndex, nil];
|
||||||
};
|
|
||||||
|
@ -19,7 +19,7 @@ params [["_unit", objNull, [objNull]], ["_magazineType", "", [""]], ["_ammoCount
|
|||||||
private _isRemoved = false;
|
private _isRemoved = false;
|
||||||
|
|
||||||
// Check uniform
|
// Check uniform
|
||||||
private _magazines = [magazinesAmmoCargo uniformContainer _unit, {_this select 0 == _magazineType}] call FUNC(filter);
|
private _magazines = magazinesAmmoCargo uniformContainer _unit select {_x select 0 == _magazineType};
|
||||||
private _index = _magazines find [_magazineType, _ammoCount];
|
private _index = _magazines find [_magazineType, _ammoCount];
|
||||||
|
|
||||||
if (_index > -1) exitWith {
|
if (_index > -1) exitWith {
|
||||||
@ -39,7 +39,7 @@ if (_index > -1) exitWith {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Check vest
|
// Check vest
|
||||||
_magazines = [magazinesAmmoCargo vestContainer _unit, {_this select 0 == _magazineType}] call FUNC(filter);
|
_magazines = magazinesAmmoCargo vestContainer _unit select {_x select 0 == _magazineType};
|
||||||
_index = _magazines find [_magazineType, _ammoCount];
|
_index = _magazines find [_magazineType, _ammoCount];
|
||||||
|
|
||||||
if (_index > -1) exitWith {
|
if (_index > -1) exitWith {
|
||||||
@ -59,7 +59,7 @@ if (_index > -1) exitWith {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Check backpack
|
// Check backpack
|
||||||
_magazines = [magazinesAmmoCargo backpackContainer _unit, {_this select 0 == _magazineType}] call FUNC(filter);
|
_magazines = magazinesAmmoCargo backpackContainer _unit select {_x select 0 == _magazineType};
|
||||||
_index = _magazines find [_magazineType, _ammoCount];
|
_index = _magazines find [_magazineType, _ammoCount];
|
||||||
|
|
||||||
if (_index > -1) exitWith {
|
if (_index > -1) exitWith {
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: Glowbal
|
|
||||||
* ?
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* ?
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* ?
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_sortAlphabeticallyBy","3.5.0","sort");
|
|
||||||
|
|
||||||
params ["_array", "_elementN"];
|
|
||||||
|
|
||||||
private _indices = [];
|
|
||||||
private _elements = [];
|
|
||||||
|
|
||||||
{
|
|
||||||
private _theElement = toArray (_x select _elementN);
|
|
||||||
_indices pushBack _forEachIndex;
|
|
||||||
_elements pushBack _theElement;
|
|
||||||
} forEach _array;
|
|
||||||
|
|
||||||
for "_i" from 1 to (count _elements) - 1 do {
|
|
||||||
private _tmp = _elements select _i;
|
|
||||||
private _tempIndex = _indices select _i;
|
|
||||||
_j = _i;
|
|
||||||
while {_j >= 1 && {_tmp < _elements select (_j - 1)}} do {
|
|
||||||
_elements set [_j, _elements select (_j - 1)];
|
|
||||||
_indices set [_j, _indices select (_j - 1)];
|
|
||||||
_j = _j - 1;
|
|
||||||
};
|
|
||||||
_elements set[_j, _tmp];
|
|
||||||
_indices set [_j, _tempIndex];
|
|
||||||
};
|
|
||||||
|
|
||||||
private _returnArray = [];
|
|
||||||
|
|
||||||
{
|
|
||||||
_returnArray pushBack (_array select _x);
|
|
||||||
} forEach _indices;
|
|
||||||
|
|
||||||
_returnArray
|
|
@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* Author: Glowbal
|
|
||||||
* Make a copy of an array with only the unique elements.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: array <ARRAY>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* Copy of original array <ARRAY>
|
|
||||||
*
|
|
||||||
* Public: Yes
|
|
||||||
*
|
|
||||||
* Deprecated
|
|
||||||
*/
|
|
||||||
#include "script_component.hpp"
|
|
||||||
|
|
||||||
ACE_DEPRECATED("ace_common_fnc_uniqueElementsOnly","3.5.0","ace_common_fnc_uniqueElements");
|
|
||||||
|
|
||||||
_this call FUNC(uniqueElements)
|
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Common">
|
<Package name="Common">
|
||||||
<Key ID="STR_ACE_Common_ACETeam">
|
<Key ID="STR_ACE_Common_ACETeam">
|
||||||
@ -480,6 +480,7 @@
|
|||||||
<French>Vérifier les PBOs</French>
|
<French>Vérifier les PBOs</French>
|
||||||
<Hungarian>PBO-k ellenőrzése</Hungarian>
|
<Hungarian>PBO-k ellenőrzése</Hungarian>
|
||||||
<Russian>Проверка аддонов</Russian>
|
<Russian>Проверка аддонов</Russian>
|
||||||
|
<Italian>Controlla PBO</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Description">
|
<Key ID="STR_ACE_Common_CheckPBO_Description">
|
||||||
<English>Check addon integrity with server and do selected action if an addon is missing.</English>
|
<English>Check addon integrity with server and do selected action if an addon is missing.</English>
|
||||||
@ -490,6 +491,7 @@
|
|||||||
<Portuguese>Este módulo verifica a integridade dos addons quando iniciamos a simulação</Portuguese>
|
<Portuguese>Este módulo verifica a integridade dos addons quando iniciamos a simulação</Portuguese>
|
||||||
<Russian>Выполняет проверку версий аддонов ACE у подключаемых игроков</Russian>
|
<Russian>Выполняет проверку версий аддонов ACE у подключаемых игроков</Russian>
|
||||||
<French>Ce module contrôle si les PBOs de chaque joueur sont corrects</French>
|
<French>Ce module contrôle si les PBOs de chaque joueur sont corrects</French>
|
||||||
|
<Italian>Controlla l'integrità degli addon con il server ed esegui l'azione selezionata se un addon è mancante</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Action_DisplayName">
|
<Key ID="STR_ACE_Common_CheckPBO_Action_DisplayName">
|
||||||
<English>Action</English>
|
<English>Action</English>
|
||||||
@ -501,6 +503,7 @@
|
|||||||
<French>Action</French>
|
<French>Action</French>
|
||||||
<Hungarian>Cselekvés</Hungarian>
|
<Hungarian>Cselekvés</Hungarian>
|
||||||
<Russian>Действие</Russian>
|
<Russian>Действие</Russian>
|
||||||
|
<Italian>Azione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Action_Description">
|
<Key ID="STR_ACE_Common_CheckPBO_Action_Description">
|
||||||
<English>What to do with people who do not have the right PBOs?</English>
|
<English>What to do with people who do not have the right PBOs?</English>
|
||||||
@ -512,6 +515,7 @@
|
|||||||
<French>Que faire avec les personnes n'ayant pas les bon PBOs</French>
|
<French>Que faire avec les personnes n'ayant pas les bon PBOs</French>
|
||||||
<Hungarian>Mi legyen azokkal a személyekkel, akiknek nincsenek meg a helyes PBO-k?</Hungarian>
|
<Hungarian>Mi legyen azokkal a személyekkel, akiknek nincsenek meg a helyes PBO-k?</Hungarian>
|
||||||
<Russian>Что делать с игроками с неправильными аддонами?</Russian>
|
<Russian>Что делать с игроками с неправильными аддонами?</Russian>
|
||||||
|
<Italian>Cosa fare con giocatori che non hanno i PBO corretti?</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnOnce">
|
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnOnce">
|
||||||
<English>Warn once</English>
|
<English>Warn once</English>
|
||||||
@ -523,6 +527,7 @@
|
|||||||
<French>Avertir une fois</French>
|
<French>Avertir une fois</French>
|
||||||
<Hungarian>Egyszeri figyelmeztetés</Hungarian>
|
<Hungarian>Egyszeri figyelmeztetés</Hungarian>
|
||||||
<Russian>Предупредить один раз</Russian>
|
<Russian>Предупредить один раз</Russian>
|
||||||
|
<Italian>Avverti una volta</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnPerm">
|
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnPerm">
|
||||||
<English>Warn (permanent)</English>
|
<English>Warn (permanent)</English>
|
||||||
@ -534,6 +539,7 @@
|
|||||||
<French>Avertir (permanent)</French>
|
<French>Avertir (permanent)</French>
|
||||||
<Hungarian>Figyelmeztetés (tartós)</Hungarian>
|
<Hungarian>Figyelmeztetés (tartós)</Hungarian>
|
||||||
<Russian>Предупреждать (постоянно)</Russian>
|
<Russian>Предупреждать (постоянно)</Russian>
|
||||||
|
<Italian>Avverti (permanente)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Action_Kick">
|
<Key ID="STR_ACE_Common_CheckPBO_Action_Kick">
|
||||||
<English>Kick</English>
|
<English>Kick</English>
|
||||||
@ -545,6 +551,7 @@
|
|||||||
<French>Ejecter</French>
|
<French>Ejecter</French>
|
||||||
<Hungarian>Kirúgás</Hungarian>
|
<Hungarian>Kirúgás</Hungarian>
|
||||||
<Russian>Кикнуть</Russian>
|
<Russian>Кикнуть</Russian>
|
||||||
|
<Italian>Kick</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_DisplayName">
|
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_DisplayName">
|
||||||
<English>Check all addons</English>
|
<English>Check all addons</English>
|
||||||
@ -556,6 +563,7 @@
|
|||||||
<French>Vérifier tous les addons</French>
|
<French>Vérifier tous les addons</French>
|
||||||
<Hungarian>Összes bővítmény ellenőrzése</Hungarian>
|
<Hungarian>Összes bővítmény ellenőrzése</Hungarian>
|
||||||
<Russian>Проверять все аддоны</Russian>
|
<Russian>Проверять все аддоны</Russian>
|
||||||
|
<Italian>Controlla tutti gli addon</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_Description">
|
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_Description">
|
||||||
<English>Check all addons instead of only those of ACE?</English>
|
<English>Check all addons instead of only those of ACE?</English>
|
||||||
@ -567,6 +575,7 @@
|
|||||||
<French>Vérifie tous les addons, même ceux qui ne sont pas liés à ACE</French>
|
<French>Vérifie tous les addons, même ceux qui ne sont pas liés à ACE</French>
|
||||||
<Hungarian>Az összes bővítmény ellenőrzése, csak az ACE helyett?</Hungarian>
|
<Hungarian>Az összes bővítmény ellenőrzése, csak az ACE helyett?</Hungarian>
|
||||||
<Russian>Проверять все аддоны, а не только ACE?</Russian>
|
<Russian>Проверять все аддоны, а не только ACE?</Russian>
|
||||||
|
<Italian>Controlla tutti gli addon invece dei soli addon ACE?</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_DisplayName">
|
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_DisplayName">
|
||||||
<English>Whitelist</English>
|
<English>Whitelist</English>
|
||||||
@ -578,6 +587,7 @@
|
|||||||
<French>Liste blanche</French>
|
<French>Liste blanche</French>
|
||||||
<Hungarian>Fehérlista</Hungarian>
|
<Hungarian>Fehérlista</Hungarian>
|
||||||
<Russian>Вайтлист доп. аддонов</Russian>
|
<Russian>Вайтлист доп. аддонов</Russian>
|
||||||
|
<Italian>Lista Bianca</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_Description">
|
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_Description">
|
||||||
<English>What addons are allowed regardless?</English>
|
<English>What addons are allowed regardless?</English>
|
||||||
@ -589,6 +599,7 @@
|
|||||||
<French>Quels addons sont tolérés</French>
|
<French>Quels addons sont tolérés</French>
|
||||||
<Hungarian>Milyen bővítmények vannak feltétlenül engedélyezve?</Hungarian>
|
<Hungarian>Milyen bővítmények vannak feltétlenül engedélyezve?</Hungarian>
|
||||||
<Russian>Какие аддоны дополнительно разрешены?</Russian>
|
<Russian>Какие аддоны дополнительно разрешены?</Russian>
|
||||||
|
<Italian>Quali addon sono permessi in ogni caso?</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_LSDVehicles_DisplayName">
|
<Key ID="STR_ACE_Common_LSDVehicles_DisplayName">
|
||||||
<English>LSD Vehicles</English>
|
<English>LSD Vehicles</English>
|
||||||
@ -600,6 +611,7 @@
|
|||||||
<French>LSD - Véhicules</French>
|
<French>LSD - Véhicules</French>
|
||||||
<Hungarian>LSD járművek</Hungarian>
|
<Hungarian>LSD járművek</Hungarian>
|
||||||
<Russian>Транспорт под LSD</Russian>
|
<Russian>Транспорт под LSD</Russian>
|
||||||
|
<Italian>Veicoli LSD</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_LSDVehicles_Description">
|
<Key ID="STR_ACE_Common_LSDVehicles_Description">
|
||||||
<English>Adds LSD effect to synchronized vehicle</English>
|
<English>Adds LSD effect to synchronized vehicle</English>
|
||||||
@ -611,6 +623,7 @@
|
|||||||
<French>Ajoute l'effet LSD aux véhicules synchronisés</French>
|
<French>Ajoute l'effet LSD aux véhicules synchronisés</French>
|
||||||
<Hungarian>LSD-effekt hozzáadása a szinkronizált járművekhez</Hungarian>
|
<Hungarian>LSD-effekt hozzáadása a szinkronizált járművekhez</Hungarian>
|
||||||
<Russian>Добавляет эффект LSD (мигание всеми цветами радуги) синхронизированным транспортным средствам</Russian>
|
<Russian>Добавляет эффект LSD (мигание всеми цветами радуги) синхронизированным транспортным средствам</Russian>
|
||||||
|
<Italian>Aggiunge effetti LSD ai veicoli sincronizzati</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_toggleHandheldDevice">
|
<Key ID="STR_ACE_Common_toggleHandheldDevice">
|
||||||
<English>Toggle Handheld Device</English>
|
<English>Toggle Handheld Device</English>
|
||||||
@ -622,6 +635,7 @@
|
|||||||
<French>Allumer l'ordinateur de poche</French>
|
<French>Allumer l'ordinateur de poche</French>
|
||||||
<Hungarian>Kézi eszköz kapcsolása</Hungarian>
|
<Hungarian>Kézi eszköz kapcsolása</Hungarian>
|
||||||
<Russian>Включить портативное устройство</Russian>
|
<Russian>Включить портативное устройство</Russian>
|
||||||
|
<Italian>Apri dispositivo palmare</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_closeHandheldDevice">
|
<Key ID="STR_ACE_Common_closeHandheldDevice">
|
||||||
<English>Close Handheld Device</English>
|
<English>Close Handheld Device</English>
|
||||||
@ -633,6 +647,7 @@
|
|||||||
<French>Fermer l'ordinateur de poche</French>
|
<French>Fermer l'ordinateur de poche</French>
|
||||||
<Hungarian>Kézi eszköz bezárása</Hungarian>
|
<Hungarian>Kézi eszköz bezárása</Hungarian>
|
||||||
<Russian>Закрыть портативное устройство</Russian>
|
<Russian>Закрыть портативное устройство</Russian>
|
||||||
|
<Italian>Chiudi dispositivo palmare</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_cycleHandheldDevices">
|
<Key ID="STR_ACE_Common_cycleHandheldDevices">
|
||||||
<English>Cycle Handheld Devices</English>
|
<English>Cycle Handheld Devices</English>
|
||||||
@ -644,6 +659,7 @@
|
|||||||
<French>Changer (cycle) d'ordinateur de poche</French>
|
<French>Changer (cycle) d'ordinateur de poche</French>
|
||||||
<Hungarian>Kézi eszköz váltása</Hungarian>
|
<Hungarian>Kézi eszköz váltása</Hungarian>
|
||||||
<Russian>Следующее портативное устройство</Russian>
|
<Russian>Следующее портативное устройство</Russian>
|
||||||
|
<Italian>Cicla tra dispositivi palmari</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_Disabled">
|
<Key ID="STR_ACE_Common_Disabled">
|
||||||
<English>Disabled</English>
|
<English>Disabled</English>
|
||||||
@ -699,6 +715,7 @@
|
|||||||
<Russian>Только в транспорте</Russian>
|
<Russian>Только в транспорте</Russian>
|
||||||
<Czech>Pouze vozidla</Czech>
|
<Czech>Pouze vozidla</Czech>
|
||||||
<Spanish>Solo vehículos</Spanish>
|
<Spanish>Solo vehículos</Spanish>
|
||||||
|
<Italian>Solo veicoli</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_DoNotForce">
|
<Key ID="STR_ACE_Common_DoNotForce">
|
||||||
<English>Do Not Force</English>
|
<English>Do Not Force</English>
|
||||||
@ -708,6 +725,7 @@
|
|||||||
<Czech>Nevynucovat</Czech>
|
<Czech>Nevynucovat</Czech>
|
||||||
<Portuguese>Não forçar</Portuguese>
|
<Portuguese>Não forçar</Portuguese>
|
||||||
<Russian>Не обязывать</Russian>
|
<Russian>Не обязывать</Russian>
|
||||||
|
<Italian>Non forzare</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_ACEKeybindCategoryEquipment">
|
<Key ID="STR_ACE_Common_ACEKeybindCategoryEquipment">
|
||||||
<English>ACE3 Equipment</English>
|
<English>ACE3 Equipment</English>
|
||||||
@ -716,6 +734,7 @@
|
|||||||
<Russian>ACE3 Снаряжение</Russian>
|
<Russian>ACE3 Снаряжение</Russian>
|
||||||
<Czech>ACE3 Vybavení</Czech>
|
<Czech>ACE3 Vybavení</Czech>
|
||||||
<Spanish>ACE3 Equipo</Spanish>
|
<Spanish>ACE3 Equipo</Spanish>
|
||||||
|
<Italian>Equipaggiamento ACE3</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_ACEKeybindCategoryCommon">
|
<Key ID="STR_ACE_Common_ACEKeybindCategoryCommon">
|
||||||
<English>ACE3 Common</English>
|
<English>ACE3 Common</English>
|
||||||
@ -725,6 +744,7 @@
|
|||||||
<Russian>ACE3 Общие</Russian>
|
<Russian>ACE3 Общие</Russian>
|
||||||
<Spanish>ACE3 Común</Spanish>
|
<Spanish>ACE3 Común</Spanish>
|
||||||
<Czech>ACE3 Obecné</Czech>
|
<Czech>ACE3 Obecné</Czech>
|
||||||
|
<Italian>Comune ACE3</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_ACEKeybindCategoryWeapons">
|
<Key ID="STR_ACE_Common_ACEKeybindCategoryWeapons">
|
||||||
<English>ACE3 Weapons</English>
|
<English>ACE3 Weapons</English>
|
||||||
@ -734,6 +754,7 @@
|
|||||||
<Russian>ACE3 Оружие</Russian>
|
<Russian>ACE3 Оружие</Russian>
|
||||||
<Czech>ACE3 Zbraně</Czech>
|
<Czech>ACE3 Zbraně</Czech>
|
||||||
<Spanish>ACE3 Armas</Spanish>
|
<Spanish>ACE3 Armas</Spanish>
|
||||||
|
<Italian>Armi ACE3</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_ACEKeybindCategoryMovement">
|
<Key ID="STR_ACE_Common_ACEKeybindCategoryMovement">
|
||||||
<English>ACE3 Movement</English>
|
<English>ACE3 Movement</English>
|
||||||
@ -743,6 +764,7 @@
|
|||||||
<Russian>ACE3 Перемещение</Russian>
|
<Russian>ACE3 Перемещение</Russian>
|
||||||
<Spanish>ACE3 Movimiento</Spanish>
|
<Spanish>ACE3 Movimiento</Spanish>
|
||||||
<Czech>ACE3 Pohyb</Czech>
|
<Czech>ACE3 Pohyb</Czech>
|
||||||
|
<Italian>Movimento ACE3</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_ACEKeybindCategoryScopeAdjustment">
|
<Key ID="STR_ACE_Common_ACEKeybindCategoryScopeAdjustment">
|
||||||
<English>ACE3 Scope Adjustment</English>
|
<English>ACE3 Scope Adjustment</English>
|
||||||
@ -752,6 +774,7 @@
|
|||||||
<Russian>ACE3 Прицелы</Russian>
|
<Russian>ACE3 Прицелы</Russian>
|
||||||
<Czech>ACE3 Nastavení optiky</Czech>
|
<Czech>ACE3 Nastavení optiky</Czech>
|
||||||
<Spanish>ACE3 Ajuste de miras</Spanish>
|
<Spanish>ACE3 Ajuste de miras</Spanish>
|
||||||
|
<Italian>Regolazione Ottiche ACE3</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_ACEKeybindCategoryVehicles">
|
<Key ID="STR_ACE_Common_ACEKeybindCategoryVehicles">
|
||||||
<English>ACE3 Vehicles</English>
|
<English>ACE3 Vehicles</English>
|
||||||
@ -761,9 +784,13 @@
|
|||||||
<Russian>ACE3 Транспорт</Russian>
|
<Russian>ACE3 Транспорт</Russian>
|
||||||
<Czech>ACE3 Vozidla</Czech>
|
<Czech>ACE3 Vozidla</Czech>
|
||||||
<Spanish>ACE3 Vehículos</Spanish>
|
<Spanish>ACE3 Vehículos</Spanish>
|
||||||
|
<Italian>Veicoli ACE3</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Common_NoRoomToUnload">
|
<Key ID="STR_ACE_Common_NoRoomToUnload">
|
||||||
<English>No Room to unload</English>
|
<English>No Room to unload</English>
|
||||||
|
<German>Kein Platz zum Entladen</German>
|
||||||
|
<Polish>Brak miejsca na rozładunek</Polish>
|
||||||
|
<Italian>Non c'è spazio per scaricare</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
1
addons/common/tests/script_component.hpp
Normal file
1
addons/common/tests/script_component.hpp
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "\z\ace\addons\common\script_component.hpp"
|
78
addons/common/tests/test_eventHandlers.sqf
Normal file
78
addons/common/tests/test_eventHandlers.sqf
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
#define DEBUG_MODE_FULL
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
#ifndef TEST_DEFINED_AND_OP
|
||||||
|
if (true) exitWith {};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
LOG('Testing EventHandlers');
|
||||||
|
|
||||||
|
TEST_DEFINED(QFUNC(_handleNetEvent),"");
|
||||||
|
TEST_DEFINED(QFUNC(addEventHandler),"");
|
||||||
|
TEST_DEFINED(QFUNC(localEvent),"");
|
||||||
|
TEST_DEFINED(QFUNC(targetEvent),"");
|
||||||
|
TEST_DEFINED(QFUNC(globalEvent),"");
|
||||||
|
TEST_DEFINED(QFUNC(serverEvent),"");
|
||||||
|
TEST_DEFINED(QFUNC(removeAllEventHandlers),"");
|
||||||
|
TEST_DEFINED(QFUNC(removeEventHandler),"");
|
||||||
|
|
||||||
|
private _result = ["A", {}] call ace_common_fnc_addEventHandler;
|
||||||
|
private _expected = 0;
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Adding first A EH");
|
||||||
|
|
||||||
|
_result = ["A", {GVAR(test_A2) = _this}] call ace_common_fnc_addEventHandler;
|
||||||
|
_expected = 1;
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Adding second A EH");
|
||||||
|
|
||||||
|
_result = ["A", {GVAR(test_A3) = _this}] call ace_common_fnc_addEventHandler;
|
||||||
|
_expected = 2;
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Adding third A EH");
|
||||||
|
|
||||||
|
GVAR(test_A2) = -1;
|
||||||
|
["A", 11] call FUNC(localEvent);
|
||||||
|
_expected = 11;
|
||||||
|
_result = GVAR(test_A2);
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Test Local Event");
|
||||||
|
|
||||||
|
//Remove 2nd EH
|
||||||
|
["A", 1] call FUNC(removeEventHandler);
|
||||||
|
|
||||||
|
GVAR(test_A2) = -1;
|
||||||
|
GVAR(test_A3) = -1;
|
||||||
|
["A", 22] call FUNC(localEvent);
|
||||||
|
_expected = -1;
|
||||||
|
_result = GVAR(test_A2);
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Test 2nd (removed) EH");
|
||||||
|
_expected = 22;
|
||||||
|
_result = GVAR(test_A3);
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Test 3rd Event");
|
||||||
|
|
||||||
|
//Remove All EH:
|
||||||
|
["A"] call FUNC(removeAllEventHandlers);
|
||||||
|
|
||||||
|
GVAR(test_A3) = -1;
|
||||||
|
["A", 77] call FUNC(localEvent);
|
||||||
|
_expected = -1;
|
||||||
|
_result = GVAR(test_A3);
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Test 3rd is removed after removeAll");
|
||||||
|
|
||||||
|
//Much harder to test network events
|
||||||
|
TRACE_2("testing network events",isServer,isDedicated);
|
||||||
|
|
||||||
|
["B", {GVAR(test_B) = _this}] call ace_common_fnc_addEventHandler;
|
||||||
|
|
||||||
|
GVAR(test_B) = -1;
|
||||||
|
["B", 33] call FUNC(globalEvent);
|
||||||
|
_expected = 33;
|
||||||
|
_result = GVAR(test_B);
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Test globalEvent");
|
||||||
|
|
||||||
|
GVAR(test_B) = -1;
|
||||||
|
["B", 44] call FUNC(serverEvent);
|
||||||
|
_expected = if (isServer) then {44} else {-1};
|
||||||
|
_result = GVAR(test_B);
|
||||||
|
TEST_DEFINED_AND_OP(_result,==,_expected,"Test serverEvent");
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="concertina_wire">
|
<Package name="concertina_wire">
|
||||||
<Key ID="STR_ACE_CONCERTINA_WIRE">
|
<Key ID="STR_ACE_CONCERTINA_WIRE">
|
||||||
@ -9,7 +9,7 @@
|
|||||||
<Spanish>Alambre de espino</Spanish>
|
<Spanish>Alambre de espino</Spanish>
|
||||||
<French>Fill barbelé</French>
|
<French>Fill barbelé</French>
|
||||||
<Czech>Ostnatý drát</Czech>
|
<Czech>Ostnatý drát</Czech>
|
||||||
<Italian>Concertina wire</Italian>
|
<Italian>Filo spinato di concertina</Italian>
|
||||||
<Hungarian>Concertina wire</Hungarian>
|
<Hungarian>Concertina wire</Hungarian>
|
||||||
<Portuguese>Arame farpado</Portuguese>
|
<Portuguese>Arame farpado</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<Spanish>Bobina de alambre de espino</Spanish>
|
<Spanish>Bobina de alambre de espino</Spanish>
|
||||||
<French>Bobine de fil barbelé</French>
|
<French>Bobine de fil barbelé</French>
|
||||||
<Czech>Svitek ostnatého drátu</Czech>
|
<Czech>Svitek ostnatého drátu</Czech>
|
||||||
<Italian>Concertina wire coil</Italian>
|
<Italian>Bobina di concertina</Italian>
|
||||||
<Hungarian>Concertina wire coil</Hungarian>
|
<Hungarian>Concertina wire coil</Hungarian>
|
||||||
<Portuguese>Bobina de arame farpado</Portuguese>
|
<Portuguese>Bobina de arame farpado</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<Spanish>Desmontar alambre de espino</Spanish>
|
<Spanish>Desmontar alambre de espino</Spanish>
|
||||||
<French>Descendre le fil barbelé</French>
|
<French>Descendre le fil barbelé</French>
|
||||||
<Czech>Svinout ostnatý drát</Czech>
|
<Czech>Svinout ostnatý drát</Czech>
|
||||||
<Italian>Dismount Concertina wire</Italian>
|
<Italian>Smonta la concertina</Italian>
|
||||||
<Hungarian>Dismount Concertina wire</Hungarian>
|
<Hungarian>Dismount Concertina wire</Hungarian>
|
||||||
<Portuguese>Desmontar arame farpado</Portuguese>
|
<Portuguese>Desmontar arame farpado</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<Spanish>Desplegar alambre de espino</Spanish>
|
<Spanish>Desplegar alambre de espino</Spanish>
|
||||||
<French>Mettre en place le fil barbelé</French>
|
<French>Mettre en place le fil barbelé</French>
|
||||||
<Czech>Rozvinout ostnatý drát</Czech>
|
<Czech>Rozvinout ostnatý drát</Czech>
|
||||||
<Italian>Deploy Concertina wire</Italian>
|
<Italian>Posa il filo di concertina</Italian>
|
||||||
<Hungarian>Deploy Concertina wire</Hungarian>
|
<Hungarian>Deploy Concertina wire</Hungarian>
|
||||||
<Portuguese>Colocar arame farpado</Portuguese>
|
<Portuguese>Colocar arame farpado</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="DAGR">
|
<Package name="DAGR">
|
||||||
<Key ID="STR_ACE_DAGR_Name">
|
<Key ID="STR_ACE_DAGR_Name">
|
||||||
@ -9,6 +9,7 @@
|
|||||||
<Russian>DAGR</Russian>
|
<Russian>DAGR</Russian>
|
||||||
<Portuguese>DAGR</Portuguese>
|
<Portuguese>DAGR</Portuguese>
|
||||||
<Czech>DAGR</Czech>
|
<Czech>DAGR</Czech>
|
||||||
|
<Italian>DAGR</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_DAGR_ConfigureDAGR">
|
<Key ID="STR_ACE_DAGR_ConfigureDAGR">
|
||||||
<English>Configure DAGR</English>
|
<English>Configure DAGR</English>
|
||||||
@ -18,6 +19,7 @@
|
|||||||
<Russian>Настроить DAGR</Russian>
|
<Russian>Настроить DAGR</Russian>
|
||||||
<Portuguese>Configurar DAGR</Portuguese>
|
<Portuguese>Configurar DAGR</Portuguese>
|
||||||
<Czech>Konfigurovat DAGR</Czech>
|
<Czech>Konfigurovat DAGR</Czech>
|
||||||
|
<Italian>Configura DAGR</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_DAGR_ToggleDAGR">
|
<Key ID="STR_ACE_DAGR_ToggleDAGR">
|
||||||
<English>Toggle DAGR</English>
|
<English>Toggle DAGR</English>
|
||||||
@ -27,6 +29,7 @@
|
|||||||
<Russian>Вкл./выкл. DAGR</Russian>
|
<Russian>Вкл./выкл. DAGR</Russian>
|
||||||
<Portuguese>Mostrar DAGR</Portuguese>
|
<Portuguese>Mostrar DAGR</Portuguese>
|
||||||
<Czech>Přepnout DAGR</Czech>
|
<Czech>Přepnout DAGR</Czech>
|
||||||
|
<Italian>Apri DAGR</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_DAGR_Description">
|
<Key ID="STR_ACE_DAGR_Description">
|
||||||
<English>Defense Advanced GPS Receiver</English>
|
<English>Defense Advanced GPS Receiver</English>
|
||||||
@ -36,6 +39,7 @@
|
|||||||
<Russian>Военный многофункциональный GPS-приёмник</Russian>
|
<Russian>Военный многофункциональный GPS-приёмник</Russian>
|
||||||
<Portuguese>Defense Advanced GPS Receiver</Portuguese>
|
<Portuguese>Defense Advanced GPS Receiver</Portuguese>
|
||||||
<Czech>Defense Advanced GPS Receiver</Czech>
|
<Czech>Defense Advanced GPS Receiver</Czech>
|
||||||
|
<Italian>Defense Advanced GPS Receiver</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Disposable">
|
<Package name="Disposable">
|
||||||
<Key ID="STR_ACE_Disposable_UsedTube">
|
<Key ID="STR_ACE_Disposable_UsedTube">
|
||||||
|
@ -27,6 +27,11 @@ class Extended_Init_EventHandlers {
|
|||||||
init = QUOTE(_this call DFUNC(initObject));
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
class Land_PortableLight_single_F {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class Extended_Killed_EventHandlers {
|
class Extended_Killed_EventHandlers {
|
||||||
|
@ -32,7 +32,6 @@ class CfgVehicles {
|
|||||||
// ammo boxes
|
// ammo boxes
|
||||||
class ThingX;
|
class ThingX;
|
||||||
class ReammoBox_F: ThingX {
|
class ReammoBox_F: ThingX {
|
||||||
XEH_ENABLED;
|
|
||||||
GVAR(canCarry) = 0;
|
GVAR(canCarry) = 0;
|
||||||
GVAR(carryPosition[]) = {0,1,1};
|
GVAR(carryPosition[]) = {0,1,1};
|
||||||
GVAR(carryDirection) = 0;
|
GVAR(carryDirection) = 0;
|
||||||
@ -113,4 +112,15 @@ class CfgVehicles {
|
|||||||
GVAR(carryPosition[]) = {0,1,1};
|
GVAR(carryPosition[]) = {0,1,1};
|
||||||
GVAR(carryDirection) = 0;
|
GVAR(carryDirection) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Lamps_base_F;
|
||||||
|
class Land_PortableLight_single_F: Lamps_base_F {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition[]) = {0,1.2,0};
|
||||||
|
GVAR(carryDirection) = 180;
|
||||||
|
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragPosition[]) = {0,1.2,0};
|
||||||
|
GVAR(dragDirection) = 180;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Dragging">
|
<Package name="Dragging">
|
||||||
<Key ID="STR_ACE_Dragging_Drag">
|
<Key ID="STR_ACE_Dragging_Drag">
|
||||||
@ -56,6 +56,7 @@
|
|||||||
<Portuguese>Levantar/Abaixar</Portuguese>
|
<Portuguese>Levantar/Abaixar</Portuguese>
|
||||||
<Russian>Поднять/Опустить</Russian>
|
<Russian>Поднять/Опустить</Russian>
|
||||||
<Czech>Zvýšit/Snížit</Czech>
|
<Czech>Zvýšit/Snížit</Czech>
|
||||||
|
<Italian>Alza/Abbassa</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -51,7 +51,7 @@ _explosivesList = [];
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
} forEach _result;
|
} forEach _result;
|
||||||
|
if (_detonator != "ACE_DeadManSwitch") then {
|
||||||
// Add action to detonate all explosives tied to the detonator
|
// Add action to detonate all explosives tied to the detonator
|
||||||
if (count _explosivesList > 0) then {
|
if (count _explosivesList > 0) then {
|
||||||
_children pushBack [
|
_children pushBack [
|
||||||
@ -68,5 +68,86 @@ if (count _explosivesList > 0) then {
|
|||||||
_unit
|
_unit
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
//Add action to detonate all explosives (including the inventory explosive):
|
||||||
|
_children pushBack [
|
||||||
|
[
|
||||||
|
"Explosive_All_Deadman",
|
||||||
|
localize LSTRING(DetonateAll),
|
||||||
|
getText(ConfigFile >> "CfgWeapons" >> _detonator >> "picture"),
|
||||||
|
{[_player] call FUNC(onIncapacitated)},
|
||||||
|
{true}
|
||||||
|
] call EFUNC(interact_menu,createAction),
|
||||||
|
[],
|
||||||
|
_unit
|
||||||
|
];
|
||||||
|
|
||||||
|
//Adds actions for the explosives you can connect to the deadman switch.
|
||||||
|
private _connectedInventoryExplosive = _unit getVariable [QGVAR(deadmanInvExplosive), ""];
|
||||||
|
if ((_connectedInventoryExplosive != "") && {!(_connectedInventoryExplosive in (magazines _unit))}) then {
|
||||||
|
TRACE_1("set, but missing in inventory",_connectedInventoryExplosive);
|
||||||
|
_unit setVariable [QGVAR(deadmanInvExplosive), "", true];
|
||||||
|
};
|
||||||
|
|
||||||
|
_connectedInventoryExplosive = _unit getVariable [QGVAR(deadmanInvExplosive), ""];
|
||||||
|
if (_connectedInventoryExplosive != "") then {
|
||||||
|
//Add the disconect action
|
||||||
|
private _magConfig = configFile >> "CfgMagazines" >> _connectedInventoryExplosive;
|
||||||
|
private _name = if ((getText (_magConfig >> "displayNameShort")) != "") then {
|
||||||
|
getText (_magConfig >> "displayNameShort")
|
||||||
|
} else {
|
||||||
|
getText(_magConfig >> "displayName")
|
||||||
|
};
|
||||||
|
private _picture = getText (_magConfig >> "picture");
|
||||||
|
|
||||||
|
_children pushBack [
|
||||||
|
([
|
||||||
|
"Deadman_disconnect",
|
||||||
|
format ["%1 %2", localize "str_disp_disconnect", _name],
|
||||||
|
_picture,
|
||||||
|
{
|
||||||
|
params ["_player"];
|
||||||
|
TRACE_1("clear",_player);
|
||||||
|
_player setVariable [QGVAR(deadmanInvExplosive), "", true];
|
||||||
|
},
|
||||||
|
{true}
|
||||||
|
] call EFUNC(interact_menu,createAction)), [], _unit];
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//Add all magazines that would work with the deadman switch
|
||||||
|
private _procressedMags = [];
|
||||||
|
{
|
||||||
|
private _mag = _x;
|
||||||
|
if (!(_mag in _procressedMags)) then {
|
||||||
|
_procressedMags pushBack _x;
|
||||||
|
private _magConfig = configFile >> "CfgMagazines" >> _mag;
|
||||||
|
private _supportedTriggers = getArray (_magConfig >> "ACE_Triggers" >> "SupportedTriggers");
|
||||||
|
if (({_x == "DeadmanSwitch"} count _supportedTriggers) == 1) then { //case insensitive search
|
||||||
|
private _name = if ((getText (_magConfig >> "displayNameShort")) != "") then {
|
||||||
|
getText (_magConfig >> "displayNameShort")
|
||||||
|
} else {
|
||||||
|
getText(_magConfig >> "displayName")
|
||||||
|
};
|
||||||
|
private _picture = getText (_magConfig >> "picture");
|
||||||
|
|
||||||
|
_children pushBack [
|
||||||
|
([
|
||||||
|
format ["Deadman_exp_%1", _mag],
|
||||||
|
format [localize LSTRING(connectInventoryExplosiveToDeadman), _name],
|
||||||
|
_picture,
|
||||||
|
{
|
||||||
|
params ["_player", "", "_mag"];
|
||||||
|
TRACE_2("set new",_player,_mag);
|
||||||
|
_player setVariable [QGVAR(deadmanInvExplosive), _mag, true];
|
||||||
|
},
|
||||||
|
{(_this select 2) in (magazines _player)},
|
||||||
|
{},
|
||||||
|
(_mag)
|
||||||
|
] call EFUNC(interact_menu,createAction)), [], _unit];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} forEach (magazines _unit);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
_children
|
_children
|
||||||
|
@ -19,16 +19,7 @@
|
|||||||
params ["_unit"];
|
params ["_unit"];
|
||||||
TRACE_1("params",_unit);
|
TRACE_1("params",_unit);
|
||||||
|
|
||||||
private ["_items", "_result", "_config"];
|
private _result = (items _unit) select {getNumber (ConfigFile >> "CfgWeapons" >> _x >> QGVAR(Detonator)) == 1};
|
||||||
|
_result = _result arrayIntersect _result;
|
||||||
_items = (items _unit);
|
|
||||||
_result = [];
|
|
||||||
|
|
||||||
{
|
|
||||||
_config = ConfigFile >> "CfgWeapons" >> _x;
|
|
||||||
if (getNumber (_config >> QGVAR(Detonator)) == 1 && {!(_x in _result)}) then {
|
|
||||||
_result pushBack _x;
|
|
||||||
};
|
|
||||||
} forEach _items;
|
|
||||||
|
|
||||||
_result
|
_result
|
||||||
|
@ -25,3 +25,24 @@ _deadman = [_unit, "DeadManSwitch"] call FUNC(getPlacedExplosives);
|
|||||||
{
|
{
|
||||||
[_unit, -1, _x, true] call FUNC(detonateExplosive);
|
[_unit, -1, _x, true] call FUNC(detonateExplosive);
|
||||||
} forEach _deadman;
|
} forEach _deadman;
|
||||||
|
|
||||||
|
//Handle deadman connected to explosive in inventory
|
||||||
|
private _connectedInventoryExplosive = _unit getVariable [QGVAR(deadmanInvExplosive), ""];
|
||||||
|
if (_connectedInventoryExplosive != "") then {
|
||||||
|
if (!(_connectedInventoryExplosive in (magazines _unit))) exitWith {};
|
||||||
|
|
||||||
|
//Remove mag and reset variable
|
||||||
|
_unit removeMagazine _connectedInventoryExplosive;
|
||||||
|
_unit setVariable [QGVAR(deadmanInvExplosive), "", true];
|
||||||
|
|
||||||
|
private _ammo = getText (configFile >> "CfgMagazines" >> _connectedInventoryExplosive >> "ammo");
|
||||||
|
TRACE_2("deadman inventory",_connectedInventoryExplosive,_ammo);
|
||||||
|
private _magazineTrigger = configFile >> "CfgMagazines" >> _connectedInventoryExplosive >> "ACE_Triggers" >> "DeadmanSwitch";
|
||||||
|
if (isText (_magazineTrigger >> "ammo")) then {
|
||||||
|
_ammo = getText (_magazineTrigger >> "ammo");
|
||||||
|
};
|
||||||
|
|
||||||
|
private _explosive = createVehicle [_ammo, (getPos _unit), [], 0, "NONE"];
|
||||||
|
_explosive setPosASL (getPosASL _unit);
|
||||||
|
[_unit, -1, [_explosive, -1]] call FUNC(detonateExplosive); //Explode, ignoring range, with a random 0-1 second delay
|
||||||
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Explosives">
|
<Package name="Explosives">
|
||||||
<Key ID="STR_ACE_Explosives_Menu">
|
<Key ID="STR_ACE_Explosives_Menu">
|
||||||
@ -43,6 +43,8 @@
|
|||||||
<Spanish>Detonar Todo</Spanish>
|
<Spanish>Detonar Todo</Spanish>
|
||||||
<Russian>Подрыв всех</Russian>
|
<Russian>Подрыв всех</Russian>
|
||||||
<Czech>Odpálit VŠE</Czech>
|
<Czech>Odpálit VŠE</Czech>
|
||||||
|
<Polish>Detonuj wszystkie</Polish>
|
||||||
|
<Italian>Detona Tutti</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_DetonateCode">
|
<Key ID="STR_ACE_Explosives_DetonateCode">
|
||||||
<English>Explosive code: %1</English>
|
<English>Explosive code: %1</English>
|
||||||
@ -87,6 +89,7 @@
|
|||||||
<Russian>Заблокировано</Russian>
|
<Russian>Заблокировано</Russian>
|
||||||
<Czech>Blokováno</Czech>
|
<Czech>Blokováno</Czech>
|
||||||
<Polish>Zablokowany</Polish>
|
<Polish>Zablokowany</Polish>
|
||||||
|
<Italian>Bloccato</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_CancelAction">
|
<Key ID="STR_ACE_Explosives_CancelAction">
|
||||||
<English>Cancel</English>
|
<English>Cancel</English>
|
||||||
@ -542,6 +545,7 @@
|
|||||||
<French>Module explosifs</French>
|
<French>Module explosifs</French>
|
||||||
<Hungarian>Robbanóanyag-rendszer</Hungarian>
|
<Hungarian>Robbanóanyag-rendszer</Hungarian>
|
||||||
<Russian>Взрывные устройства</Russian>
|
<Russian>Взрывные устройства</Russian>
|
||||||
|
<Italian>Sistema Esplosivi</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_RequireSpecialist_DisplayName">
|
<Key ID="STR_ACE_Explosives_RequireSpecialist_DisplayName">
|
||||||
<English>Require specialists?</English>
|
<English>Require specialists?</English>
|
||||||
@ -553,6 +557,7 @@
|
|||||||
<French>Requiert un spécialiste?</French>
|
<French>Requiert un spécialiste?</French>
|
||||||
<Hungarian>Specialisták igénylése?</Hungarian>
|
<Hungarian>Specialisták igénylése?</Hungarian>
|
||||||
<Russian>Требуется специалист?</Russian>
|
<Russian>Требуется специалист?</Russian>
|
||||||
|
<Italian>Richiedi specialisti?</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_RequireSpecialist_Description">
|
<Key ID="STR_ACE_Explosives_RequireSpecialist_Description">
|
||||||
<English>Require explosive specialists to disable explosives? Default: No</English>
|
<English>Require explosive specialists to disable explosives? Default: No</English>
|
||||||
@ -564,6 +569,7 @@
|
|||||||
<French>Le désarmoçage d'explosif requiert un spécialiste? Défaut: non</French>
|
<French>Le désarmoçage d'explosif requiert un spécialiste? Défaut: non</French>
|
||||||
<Hungarian>Szükséges-e egy specialista a robbanóanyagok hatástalanításához? Alapértelmezett: Nem</Hungarian>
|
<Hungarian>Szükséges-e egy specialista a robbanóanyagok hatástalanításához? Alapértelmezett: Nem</Hungarian>
|
||||||
<Russian>Требуется ли специалист по минному делу для обезвреживания взрывчатки? По-умолчанию: Нет</Russian>
|
<Russian>Требуется ли специалист по минному делу для обезвреживания взрывчатки? По-умолчанию: Нет</Russian>
|
||||||
|
<Italian>Richiedi specialisti esplosivi per disabilitare esplosivi? Default: No</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_DisplayName">
|
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_DisplayName">
|
||||||
<English>Punish non-specialists?</English>
|
<English>Punish non-specialists?</English>
|
||||||
@ -575,6 +581,7 @@
|
|||||||
<French>Punir les non-spécialistes?</French>
|
<French>Punir les non-spécialistes?</French>
|
||||||
<Hungarian>Nem-specialisták büntetése?</Hungarian>
|
<Hungarian>Nem-specialisták büntetése?</Hungarian>
|
||||||
<Russian>Штраф не-специалистам?</Russian>
|
<Russian>Штраф не-специалистам?</Russian>
|
||||||
|
<Italian>Punisci non-specialisti?</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_Description">
|
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_Description">
|
||||||
<English>Increase the time it takes to complete actions for non-specialists? Default: Yes</English>
|
<English>Increase the time it takes to complete actions for non-specialists? Default: Yes</English>
|
||||||
@ -586,6 +593,7 @@
|
|||||||
<French>Augmenter le temps nécessaire au désarmoçage pour les non-spécialistes? Défaut: oui</French>
|
<French>Augmenter le temps nécessaire au désarmoçage pour les non-spécialistes? Défaut: oui</French>
|
||||||
<Hungarian>Nem-specialisták esetén több ideig tartson a cselekvés befejezése? Alapértelmezett: Igen</Hungarian>
|
<Hungarian>Nem-specialisták esetén több ideig tartson a cselekvés befejezése? Alapértelmezett: Igen</Hungarian>
|
||||||
<Russian>Увеличивать время завершения действий для не-специалистов? По-умолчанию: Нет</Russian>
|
<Russian>Увеличивать время завершения действий для не-специалистов? По-умолчанию: Нет</Russian>
|
||||||
|
<Italian>Aumenta il tempo richiesto per completare azioni per non-specialisti? Default: Si</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_DisplayName">
|
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_DisplayName">
|
||||||
<English>Explode on defusal?</English>
|
<English>Explode on defusal?</English>
|
||||||
@ -597,6 +605,7 @@
|
|||||||
<French>Explosion si désamorçage?</French>
|
<French>Explosion si désamorçage?</French>
|
||||||
<Hungarian>Robbanás hatástalanításkor?</Hungarian>
|
<Hungarian>Robbanás hatástalanításkor?</Hungarian>
|
||||||
<Russian>Взрыв при разминир.?</Russian>
|
<Russian>Взрыв при разминир.?</Russian>
|
||||||
|
<Italian>Fai esplodere quando disarmato?</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_Description">
|
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_Description">
|
||||||
<English>Enable certain explosives to explode on defusal? Default: Yes</English>
|
<English>Enable certain explosives to explode on defusal? Default: Yes</English>
|
||||||
@ -608,6 +617,7 @@
|
|||||||
<French>Permet à certains explosifs d'exploser au désamorçage? Défaut: oui</French>
|
<French>Permet à certains explosifs d'exploser au désamorçage? Défaut: oui</French>
|
||||||
<Hungarian>Meghatározott robbanóanyagok felrobbanjanak-e hatástalanításkor? Alapértelmezett: Igen</Hungarian>
|
<Hungarian>Meghatározott robbanóanyagok felrobbanjanak-e hatástalanításkor? Alapértelmezett: Igen</Hungarian>
|
||||||
<Russian>Разрешить определенным взрывным устройствам взрываться при разминировании? По-умолчанию: Да</Russian>
|
<Russian>Разрешить определенным взрывным устройствам взрываться при разминировании? По-умолчанию: Да</Russian>
|
||||||
|
<Italian>Abilita alcuni esplosivi per esplosione al disarmo? Default: Si</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_Description">
|
<Key ID="STR_ACE_Explosives_Module_Description">
|
||||||
<English>This module adjusts the settings related to explosives.</English>
|
<English>This module adjusts the settings related to explosives.</English>
|
||||||
@ -619,6 +629,7 @@
|
|||||||
<Hungarian>Ez a modul a robbanóanyagokhoz kötött beállításokat szabályozza.</Hungarian>
|
<Hungarian>Ez a modul a robbanóanyagokhoz kötött beállításokat szabályozza.</Hungarian>
|
||||||
<Russian>Этот модуль управляет настройками, связанными со взрывными устройствами</Russian>
|
<Russian>Этот модуль управляет настройками, связанными со взрывными устройствами</Russian>
|
||||||
<Spanish>Este módulo ajusta las configuraciones relacionadas con explosivos.</Spanish>
|
<Spanish>Este módulo ajusta las configuraciones relacionadas con explosivos.</Spanish>
|
||||||
|
<Italian>Questo modulo cambia le impostazioni relative agli esplosivi</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_SLAMBottomAttack_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_SLAMBottomAttack_DisplayName">
|
||||||
<English>M6 SLAM Mine (Bottom Attack)</English>
|
<English>M6 SLAM Mine (Bottom Attack)</English>
|
||||||
@ -630,6 +641,7 @@
|
|||||||
<!-- <Portuguese>Mina SLAM M6</Portuguese> -->
|
<!-- <Portuguese>Mina SLAM M6</Portuguese> -->
|
||||||
<!-- <Russian>ПТ-мина M6 SLAM</Russian> -->
|
<!-- <Russian>ПТ-мина M6 SLAM</Russian> -->
|
||||||
<!-- <Spanish>Mina M6 SLAM</Spanish> -->
|
<!-- <Spanish>Mina M6 SLAM</Spanish> -->
|
||||||
|
<Polish>Mina M6 SLAM (atak od dołu)</Polish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_SLAMSideAttack_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_SLAMSideAttack_DisplayName">
|
||||||
<English>M6 SLAM Mine (Side Attack)</English>
|
<English>M6 SLAM Mine (Side Attack)</English>
|
||||||
@ -641,6 +653,7 @@
|
|||||||
<!-- <Portuguese>Mina SLAM M6</Portuguese> -->
|
<!-- <Portuguese>Mina SLAM M6</Portuguese> -->
|
||||||
<!-- <Russian>ПТ-мина M6 SLAM</Russian> -->
|
<!-- <Russian>ПТ-мина M6 SLAM</Russian> -->
|
||||||
<!-- <Spanish>Mina M6 SLAM</Spanish> -->
|
<!-- <Spanish>Mina M6 SLAM</Spanish> -->
|
||||||
|
<Polish>Mina M6 SLAM (atak od boku)</Polish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDUrbanBig_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDUrbanBig_Range_DisplayName">
|
||||||
<English>Large IED (Urban, Pressure Plate)</English>
|
<English>Large IED (Urban, Pressure Plate)</English>
|
||||||
@ -652,6 +665,7 @@
|
|||||||
<!-- <Portuguese>AEI grande (urbano)</Portuguese> -->
|
<!-- <Portuguese>AEI grande (urbano)</Portuguese> -->
|
||||||
<!-- <Russian>Большое СВУ (городское)</Russian> -->
|
<!-- <Russian>Большое СВУ (городское)</Russian> -->
|
||||||
<!-- <Spanish>IED grande (Urbano)</Spanish> -->
|
<!-- <Spanish>IED grande (Urbano)</Spanish> -->
|
||||||
|
<Polish>Duży IED (miejski, płyta naciskowa)</Polish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDLandBig_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDLandBig_Range_DisplayName">
|
||||||
<English>Large IED (Dug-in, Pressure Plate)</English>
|
<English>Large IED (Dug-in, Pressure Plate)</English>
|
||||||
@ -663,6 +677,7 @@
|
|||||||
<!-- <Portuguese>AEI grande (entrincheirado)</Portuguese> -->
|
<!-- <Portuguese>AEI grande (entrincheirado)</Portuguese> -->
|
||||||
<!-- <Russian>Большое СВУ (зарытое)</Russian> -->
|
<!-- <Russian>Большое СВУ (зарытое)</Russian> -->
|
||||||
<!-- <Spanish>IED grande (Enterrado)</Spanish> -->
|
<!-- <Spanish>IED grande (Enterrado)</Spanish> -->
|
||||||
|
<Polish>Duży IED (zakopany, płyta naciskowa)</Polish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDUrbanSmall_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDUrbanSmall_Range_DisplayName">
|
||||||
<English>Small IED (Urban, Pressure Plate)</English>
|
<English>Small IED (Urban, Pressure Plate)</English>
|
||||||
@ -674,6 +689,7 @@
|
|||||||
<!-- <Portuguese>AEI pequeno (urbano)</Portuguese> -->
|
<!-- <Portuguese>AEI pequeno (urbano)</Portuguese> -->
|
||||||
<!-- <Russian>Малое СВУ (городское)</Russian> -->
|
<!-- <Russian>Малое СВУ (городское)</Russian> -->
|
||||||
<!-- <Spanish>IED pequeño (Urbano)</Spanish> -->
|
<!-- <Spanish>IED pequeño (Urbano)</Spanish> -->
|
||||||
|
<Polish>Mały IED (miejski, płyta naciskowa)</Polish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDLandSmall_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDLandSmall_Range_DisplayName">
|
||||||
<English>Small IED (Dug-in, Pressure Plate)</English>
|
<English>Small IED (Dug-in, Pressure Plate)</English>
|
||||||
@ -685,6 +701,19 @@
|
|||||||
<!-- <Portuguese>AEI pequeno (entrincheirado)</Portuguese> -->
|
<!-- <Portuguese>AEI pequeno (entrincheirado)</Portuguese> -->
|
||||||
<!-- <Russian>Малое СВУ (зарытое)</Russian> -->
|
<!-- <Russian>Малое СВУ (зарытое)</Russian> -->
|
||||||
<!-- <Spanish>IED pequeño (Enterrado)</Spanish> -->
|
<!-- <Spanish>IED pequeño (Enterrado)</Spanish> -->
|
||||||
|
<Polish>Mały IED (zakopany, płyta naciskowa)</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Explosives_connectInventoryExplosiveToDeadman">
|
||||||
|
<English>Connect to %1</English>
|
||||||
|
<Spanish>Conectar a %1</Spanish>
|
||||||
|
<Russian>Подключиться к %1</Russian>
|
||||||
|
<German>Verbinde mit %1</German>
|
||||||
|
<Czech>Připojit k %1</Czech>
|
||||||
|
<Polish>Podłącz do %1</Polish>
|
||||||
|
<French>Connecter %1</French>
|
||||||
|
<Hungarian>Csatlakozás %1</Hungarian>
|
||||||
|
<Italian>Collega a %1</Italian>
|
||||||
|
<Portuguese>Conectar à %1</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -43,10 +43,7 @@ private _turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _turret
|
|||||||
} count _muzzles;
|
} count _muzzles;
|
||||||
|
|
||||||
// Fix the `in` operator being case sensitive and BI fucking up the spelling of their own classnames
|
// Fix the `in` operator being case sensitive and BI fucking up the spelling of their own classnames
|
||||||
private _weaponMagazinesCheck = [];
|
private _weaponMagazinesCheck = _weaponMagazines apply {toLower _x};
|
||||||
{
|
|
||||||
_weaponMagazinesCheck pushBack (toLower _x);
|
|
||||||
} forEach _weaponMagazines;
|
|
||||||
|
|
||||||
// Another BIS fix: ShotBullet simulation uses weapon initSpeed, others ignore it
|
// Another BIS fix: ShotBullet simulation uses weapon initSpeed, others ignore it
|
||||||
if (toLower _magazine in _weaponMagazinesCheck && {_bulletSimulation == "shotBullet"}) exitWith {
|
if (toLower _magazine in _weaponMagazinesCheck && {_bulletSimulation == "shotBullet"}) exitWith {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="FCS">
|
<Package name="FCS">
|
||||||
<Key ID="STR_ACE_FCS_LaseTarget">
|
<Key ID="STR_ACE_FCS_LaseTarget">
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="finger">
|
<Package name="finger">
|
||||||
<Key ID="STR_ACE_finger_indicatorForSelf_name">
|
<Key ID="STR_ACE_finger_indicatorForSelf_name">
|
||||||
@ -10,6 +10,7 @@
|
|||||||
<Portuguese>Mostrar indicador para si mesmo</Portuguese>
|
<Portuguese>Mostrar indicador para si mesmo</Portuguese>
|
||||||
<Spanish>Mostrar el indicador de señalado a uno mismo</Spanish>
|
<Spanish>Mostrar el indicador de señalado a uno mismo</Spanish>
|
||||||
<Czech>Zobrazit ukázání směru pro sebe</Czech>
|
<Czech>Zobrazit ukázání směru pro sebe</Czech>
|
||||||
|
<Italian>Mostra puntatore per te stesso</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_indicatorForSelf_description">
|
<Key ID="STR_ACE_finger_indicatorForSelf_description">
|
||||||
<English>Render the indicator for the pointing player. This option doesn't affect whether the other players would see the indicator</English>
|
<English>Render the indicator for the pointing player. This option doesn't affect whether the other players would see the indicator</English>
|
||||||
@ -20,6 +21,7 @@
|
|||||||
<Portuguese>Renderizar o indicador para o jogador que está apontando. Esta opção não afeta se os outros jogadores verão ou não o indicador</Portuguese>
|
<Portuguese>Renderizar o indicador para o jogador que está apontando. Esta opção não afeta se os outros jogadores verão ou não o indicador</Portuguese>
|
||||||
<Spanish>Muestra el indicador para el jugador que apunta. Esta opción no afecta si los otros jugadores verían el indicador</Spanish>
|
<Spanish>Muestra el indicador para el jugador que apunta. Esta opción no afecta si los otros jugadores verían el indicador</Spanish>
|
||||||
<Czech>Zobrazit infikátor, když ukážete prstem. Tato volba nemá vliv, zda ostatní hráči uvidí indikátor nebo ne.</Czech>
|
<Czech>Zobrazit infikátor, když ukážete prstem. Tato volba nemá vliv, zda ostatní hráči uvidí indikátor nebo ne.</Czech>
|
||||||
|
<Italian>Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_indicatorColor_name">
|
<Key ID="STR_ACE_finger_indicatorColor_name">
|
||||||
<English>Pointing indicator</English>
|
<English>Pointing indicator</English>
|
||||||
@ -30,6 +32,7 @@
|
|||||||
<Portuguese>Indicador de apontamento</Portuguese>
|
<Portuguese>Indicador de apontamento</Portuguese>
|
||||||
<Spanish>Indicador de señalado</Spanish>
|
<Spanish>Indicador de señalado</Spanish>
|
||||||
<Czech>Ukazování směru</Czech>
|
<Czech>Ukazování směru</Czech>
|
||||||
|
<Italian>Indicatore di puntamento</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_indicatorColor_description">
|
<Key ID="STR_ACE_finger_indicatorColor_description">
|
||||||
<English>Color of the pointing indicator circle</English>
|
<English>Color of the pointing indicator circle</English>
|
||||||
@ -40,6 +43,7 @@
|
|||||||
<Portuguese>Cor do círculo de indicação</Portuguese>
|
<Portuguese>Cor do círculo de indicação</Portuguese>
|
||||||
<Spanish>Color del círculo indicador que señala</Spanish>
|
<Spanish>Color del círculo indicador que señala</Spanish>
|
||||||
<Czech>Barva kruhu pro ukázání směru</Czech>
|
<Czech>Barva kruhu pro ukázání směru</Czech>
|
||||||
|
<Italian>Colore del cerchio dell'indicatore di puntamento</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_keyComb">
|
<Key ID="STR_ACE_finger_keyComb">
|
||||||
<English>Action "point a finger at"</English>
|
<English>Action "point a finger at"</English>
|
||||||
@ -50,6 +54,7 @@
|
|||||||
<Portuguese>Ação "Apontar um dedo para"</Portuguese>
|
<Portuguese>Ação "Apontar um dedo para"</Portuguese>
|
||||||
<Spanish>Acción "apuntar con el dedo a"</Spanish>
|
<Spanish>Acción "apuntar con el dedo a"</Spanish>
|
||||||
<Czech>Akce "ukázat prstem na"</Czech>
|
<Czech>Akce "ukázat prstem na"</Czech>
|
||||||
|
<Italian>Azione "punta il dito a"</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_keyComb_description">
|
<Key ID="STR_ACE_finger_keyComb_description">
|
||||||
<English>Points, and shows a virtual marker of where you are looking to nearby units. Can be held down.</English>
|
<English>Points, and shows a virtual marker of where you are looking to nearby units. Can be held down.</English>
|
||||||
@ -60,6 +65,7 @@
|
|||||||
<Russian>Показывает пальцем и рисует виртуальный маркер в направлении взгляда ближайшим игрокам. Можно удерживать.</Russian>
|
<Russian>Показывает пальцем и рисует виртуальный маркер в направлении взгляда ближайшим игрокам. Можно удерживать.</Russian>
|
||||||
<Spanish>Señala y muestra un marcador virtual donde ustás apuntando para las unidades cercanas. Puede ser mantenido.</Spanish>
|
<Spanish>Señala y muestra un marcador virtual donde ustás apuntando para las unidades cercanas. Puede ser mantenido.</Spanish>
|
||||||
<Czech>Ukazuje virtuální značku kruhu ve směru, kterým se díváte pro všechny blízké jednotky.</Czech>
|
<Czech>Ukazuje virtuální značku kruhu ve směru, kterým se díváte pro všechny blízké jednotky.</Czech>
|
||||||
|
<Italian>Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_moduleSettings_displayName">
|
<Key ID="STR_ACE_finger_moduleSettings_displayName">
|
||||||
<English>Pointing Settings</English>
|
<English>Pointing Settings</English>
|
||||||
@ -70,6 +76,7 @@
|
|||||||
<Russian>Настройки указания пальцем</Russian>
|
<Russian>Настройки указания пальцем</Russian>
|
||||||
<Spanish>Ajustes de señalado</Spanish>
|
<Spanish>Ajustes de señalado</Spanish>
|
||||||
<Czech>Nastavení ukázování směru</Czech>
|
<Czech>Nastavení ukázování směru</Czech>
|
||||||
|
<Italian>Impostazioni puntamento</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_enabled_displayName">
|
<Key ID="STR_ACE_finger_enabled_displayName">
|
||||||
<English>Pointing Enabled</English>
|
<English>Pointing Enabled</English>
|
||||||
@ -80,6 +87,7 @@
|
|||||||
<Russian>Указание пальцем включено</Russian>
|
<Russian>Указание пальцем включено</Russian>
|
||||||
<Spanish>Señalado habilitado</Spanish>
|
<Spanish>Señalado habilitado</Spanish>
|
||||||
<Czech>Ukazování povoleno</Czech>
|
<Czech>Ukazování povoleno</Czech>
|
||||||
|
<Italian>Puntamento abilitato</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_maxRange_displayName">
|
<Key ID="STR_ACE_finger_maxRange_displayName">
|
||||||
<English>Pointing Max Range</English>
|
<English>Pointing Max Range</English>
|
||||||
@ -90,6 +98,7 @@
|
|||||||
<Russian>Макс. дальность</Russian>
|
<Russian>Макс. дальность</Russian>
|
||||||
<Spanish>Distancia máxima de señalado</Spanish>
|
<Spanish>Distancia máxima de señalado</Spanish>
|
||||||
<Czech>Maximální dosah pro ukazování směru</Czech>
|
<Czech>Maximální dosah pro ukazování směru</Czech>
|
||||||
|
<Italian>Raggio massimo puntamento</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_finger_maxRange_description">
|
<Key ID="STR_ACE_finger_maxRange_description">
|
||||||
<English>Max range between players to show the pointing indicator [default: 4 meters]</English>
|
<English>Max range between players to show the pointing indicator [default: 4 meters]</English>
|
||||||
@ -100,6 +109,7 @@
|
|||||||
<Russian>Максимальная дальность между игроками для отображения индикатора указания пальцем [по-умолчанию: 4 метра]</Russian>
|
<Russian>Максимальная дальность между игроками для отображения индикатора указания пальцем [по-умолчанию: 4 метра]</Russian>
|
||||||
<Spanish>Distancia máxima entre los jugadores para mostrar el indicador que señala [por defecto: 4 metros]</Spanish>
|
<Spanish>Distancia máxima entre los jugadores para mostrar el indicador que señala [por defecto: 4 metros]</Spanish>
|
||||||
<Czech>Maximální vzdálenost mezi hráči pro ukázání směru [výchozí: 4 metry]</Czech>
|
<Czech>Maximální vzdálenost mezi hráči pro ukázání směru [výchozí: 4 metry]</Czech>
|
||||||
|
<Italian>Distanza massima tra giocatori per mostrare l'indicatore di puntamento [default: 4 metri]</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,53 +1,65 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Flashlights">
|
<Package name="Flashlights">
|
||||||
<Key ID="STR_ACE_Flashlights_MX991_DisplayName">
|
<Key ID="STR_ACE_Flashlights_MX991_DisplayName">
|
||||||
<English>Fulton MX-991</English>
|
<English>Fulton MX-991</English>
|
||||||
|
<German>Fulton MX-991</German>
|
||||||
<Polish>Fulton MX-991</Polish>
|
<Polish>Fulton MX-991</Polish>
|
||||||
<Portuguese>Fulton MX-991</Portuguese>
|
<Portuguese>Fulton MX-991</Portuguese>
|
||||||
<Russian>Fulton MX-991</Russian>
|
<Russian>Fulton MX-991</Russian>
|
||||||
<Czech>Fulton MX-991</Czech>
|
<Czech>Fulton MX-991</Czech>
|
||||||
<Spanish>Fulton MX-991</Spanish>
|
<Spanish>Fulton MX-991</Spanish>
|
||||||
|
<Italian>Fulton MX-991</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Flashlights_MX991_Description">
|
<Key ID="STR_ACE_Flashlights_MX991_Description">
|
||||||
<English>Flashlight with red filter. For use on map.</English>
|
<English>Flashlight with red filter. For use on map.</English>
|
||||||
|
<German>Taschenlampe mit rotem Filter zum Kartenlesen.</German>
|
||||||
<Polish>Latarka z czerwonym filtrem. Używana do podświetlania mapy.</Polish>
|
<Polish>Latarka z czerwonym filtrem. Używana do podświetlania mapy.</Polish>
|
||||||
<Portuguese>Lanterna com filtro vermelho. Para uso no mapa.</Portuguese>
|
<Portuguese>Lanterna com filtro vermelho. Para uso no mapa.</Portuguese>
|
||||||
<Russian>Фонарь с красным светофильтром. Для использования на карте.</Russian>
|
<Russian>Фонарь с красным светофильтром. Для использования на карте.</Russian>
|
||||||
<Czech>Svítilna s červeným filtrem. Pro nahlédnutí do mapy.</Czech>
|
<Czech>Svítilna s červeným filtrem. Pro nahlédnutí do mapy.</Czech>
|
||||||
<Spanish>Linterna con filtro rojo. Para su uso en el mapa.</Spanish>
|
<Spanish>Linterna con filtro rojo. Para su uso en el mapa.</Spanish>
|
||||||
|
<Italian>Torcia con filtro rosso. Da usare in mappa.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Flashlights_XL50_DisplayName">
|
<Key ID="STR_ACE_Flashlights_XL50_DisplayName">
|
||||||
<English>Maglite XL50</English>
|
<English>Maglite XL50</English>
|
||||||
|
<German>Maglite XL50</German>
|
||||||
<Polish>Maglite XL50</Polish>
|
<Polish>Maglite XL50</Polish>
|
||||||
<Portuguese>Maglite XL50</Portuguese>
|
<Portuguese>Maglite XL50</Portuguese>
|
||||||
<Russian>Maglite XL50</Russian>
|
<Russian>Maglite XL50</Russian>
|
||||||
<Czech>Maglite XL50</Czech>
|
<Czech>Maglite XL50</Czech>
|
||||||
<Spanish>Maglite XL50</Spanish>
|
<Spanish>Maglite XL50</Spanish>
|
||||||
|
<Italian>Maglite XL50</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Flashlights_XL50_Description">
|
<Key ID="STR_ACE_Flashlights_XL50_Description">
|
||||||
<English>White mini flashlight. For use on map.</English>
|
<English>White mini flashlight. For use on map.</English>
|
||||||
|
<German>Mini-Taschenlampe mit weißem Licht zum Kartenlesen.</German>
|
||||||
<Polish>Mini latarka. Światło białe. Używana do podświetlania mapy.</Polish>
|
<Polish>Mini latarka. Światło białe. Używana do podświetlania mapy.</Polish>
|
||||||
<Portuguese>Mini lanterna branca. Para uso no mapa.</Portuguese>
|
<Portuguese>Mini lanterna branca. Para uso no mapa.</Portuguese>
|
||||||
<Russian>Небольшой фонарик белого света. Для использования на карте.</Russian>
|
<Russian>Небольшой фонарик белого света. Для использования на карте.</Russian>
|
||||||
<Czech>Bílá mini svítilna. Pro nahlédnutí do mapy.</Czech>
|
<Czech>Bílá mini svítilna. Pro nahlédnutí do mapy.</Czech>
|
||||||
<Spanish>Mini linterna blanca. Para su uso en el mapa.</Spanish>
|
<Spanish>Mini linterna blanca. Para su uso en el mapa.</Spanish>
|
||||||
|
<Italian>Mini-torcia bianca. Da usare in mappa.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Flashlights_KSF1_DisplayName">
|
<Key ID="STR_ACE_Flashlights_KSF1_DisplayName">
|
||||||
<English>KSF-1</English>
|
<English>KSF-1</English>
|
||||||
|
<German>KSF-1</German>
|
||||||
<Polish>KSF-1</Polish>
|
<Polish>KSF-1</Polish>
|
||||||
<Portuguese>KSF-1</Portuguese>
|
<Portuguese>KSF-1</Portuguese>
|
||||||
<Russian>KSF-1</Russian>
|
<Russian>KSF-1</Russian>
|
||||||
<Czech>KSF-1</Czech>
|
<Czech>KSF-1</Czech>
|
||||||
<Spanish>KSF-1</Spanish>
|
<Spanish>KSF-1</Spanish>
|
||||||
|
<Italian>KSF-1</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Flashlights_KSF1_Description">
|
<Key ID="STR_ACE_Flashlights_KSF1_Description">
|
||||||
<English>Flashlight with red filter. For use on map.</English>
|
<English>Flashlight with red filter. For use on map.</English>
|
||||||
|
<German>Tachenlampe mit rotem Filter zum Kartenlesen.</German>
|
||||||
<Polish>Latarka z czerwonym filtrem. Używana do podświetlania mapy.</Polish>
|
<Polish>Latarka z czerwonym filtrem. Używana do podświetlania mapy.</Polish>
|
||||||
<Portuguese>Lanterna com filtro vermelho. Para uso no mapa.</Portuguese>
|
<Portuguese>Lanterna com filtro vermelho. Para uso no mapa.</Portuguese>
|
||||||
<Russian>Фонарь с красным светофильтром. Для использования на карте.</Russian>
|
<Russian>Фонарь с красным светофильтром. Для использования на карте.</Russian>
|
||||||
<Czech>Svítilna s červeným filtrem. Pro nahlédnutí do mapy.</Czech>
|
<Czech>Svítilna s červeným filtrem. Pro nahlédnutí do mapy.</Czech>
|
||||||
<Spanish>Linterna con filtro rojo. Para su uso en el mapa.</Spanish>
|
<Spanish>Linterna con filtro rojo. Para su uso en el mapa.</Spanish>
|
||||||
|
<Italian>Torcia con filtro rosso. Da usare in mappa.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="FlashSuppressors">
|
<Package name="FlashSuppressors">
|
||||||
<Key ID="STR_ACE_FlashSuppressors_muzzle_mzls_H">
|
<Key ID="STR_ACE_FlashSuppressors_muzzle_mzls_H">
|
||||||
|
@ -1,23 +1,34 @@
|
|||||||
class ACE_Settings {
|
class ACE_Settings {
|
||||||
class GVAR(Enabled) {
|
class GVAR(Enabled) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
displayName = CSTRING(EnableFrag);
|
displayName = CSTRING(EnableFrag);
|
||||||
description = CSTRING(EnableFrag_Desc);
|
description = CSTRING(EnableFrag_Desc);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 1;
|
value = 1;
|
||||||
};
|
};
|
||||||
class GVAR(SpallEnabled) {
|
class GVAR(SpallEnabled) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
displayName = CSTRING(EnableSpall);
|
displayName = CSTRING(EnableSpall);
|
||||||
description = CSTRING(EnableSpall_Desc);
|
description = CSTRING(EnableSpall_Desc);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
value = 0;
|
value = 0;
|
||||||
};
|
};
|
||||||
|
class GVAR(ReflectionsEnabled) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
|
displayName = CSTRING(EnableReflections);
|
||||||
|
description = CSTRING(EnableReflections_Desc);
|
||||||
|
typeName = "BOOL";
|
||||||
|
value = 0;
|
||||||
|
};
|
||||||
class GVAR(maxTrack) {
|
class GVAR(maxTrack) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
displayName = CSTRING(MaxTrack);
|
displayName = CSTRING(MaxTrack);
|
||||||
description = CSTRING(MaxTrack_Desc);
|
description = CSTRING(MaxTrack_Desc);
|
||||||
typeName = "SCALAR";
|
typeName = "SCALAR";
|
||||||
value = 500;
|
value = 500;
|
||||||
};
|
};
|
||||||
class GVAR(MaxTrackPerFrame) {
|
class GVAR(MaxTrackPerFrame) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
displayName = CSTRING(MaxTrackPerFrame);
|
displayName = CSTRING(MaxTrackPerFrame);
|
||||||
description = CSTRING(MaxTrackPerFrame_Desc);
|
description = CSTRING(MaxTrackPerFrame_Desc);
|
||||||
typeName = "SCALAR";
|
typeName = "SCALAR";
|
||||||
@ -25,6 +36,7 @@ class ACE_Settings {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class GVAR(EnableDebugTrace) {
|
class GVAR(EnableDebugTrace) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
displayName = CSTRING(EnableDebugTrace);
|
displayName = CSTRING(EnableDebugTrace);
|
||||||
description = CSTRING(EnableDebugTrace_Desc);
|
description = CSTRING(EnableDebugTrace_Desc);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
private ["_split", "_radi", "_params", "_pos", "_explosiveInfo", "_los", "_nlos", "_zIndex", "_depth", "_indirectHitRange", "_indirectHit", "_distanceCount", "_lastPos", "_test", "_vec", "_testPos", "_buckets", "_excludes", "_bucketIndex", "_bucketPos", "_bucketList", "_c", "_index", "_blist", "_avgX", "_avgY", "_avgZ", "_bpos", "_distance", "_hitFactor", "_hit", "_range", "_refExp", "_rand", "_i", "_x", "_res", "_forEachIndex", "_explosions", "_can", "_dirvec", "_zAng"];
|
private ["_split", "_radi", "_params", "_pos", "_explosiveInfo", "_los", "_nlos", "_zIndex", "_depth", "_indirectHitRange", "_indirectHit", "_distanceCount", "_lastPos", "_test", "_vec", "_testPos", "_buckets", "_excludes", "_bucketIndex", "_bucketPos", "_bucketList", "_c", "_index", "_blist", "_avgX", "_avgY", "_avgZ", "_bpos", "_distance", "_hitFactor", "_hit", "_range", "_refExp", "_rand", "_i", "_x", "_res", "_forEachIndex", "_explosions", "_can", "_dirvec", "_zAng"];
|
||||||
|
|
||||||
|
BEGIN_COUNTER(fnc_findReflections);
|
||||||
_params = _this select 0;
|
_params = _this select 0;
|
||||||
_pos = _params select 0;
|
_pos = _params select 0;
|
||||||
_explosiveInfo = _params select 1;
|
_explosiveInfo = _params select 1;
|
||||||
@ -124,3 +125,4 @@ if(_zIndex < 5) then {
|
|||||||
[DFUNC(doExplosions), 0, [_explosions, 0]] call CBA_fnc_addPerFrameHandler;
|
[DFUNC(doExplosions), 0, [_explosions, 0]] call CBA_fnc_addPerFrameHandler;
|
||||||
[(_this select 1)] call CBA_fnc_removePerFrameHandler;
|
[(_this select 1)] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
END_COUNTER(fnc_findReflections);
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
if(!isServer) exitWith { };
|
if(!isServer) exitWith { };
|
||||||
|
|
||||||
|
BEGIN_COUNTER(frago);
|
||||||
// _startTime = ACE_diagTime;
|
// _startTime = ACE_diagTime;
|
||||||
|
|
||||||
private ["_startTime", "_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "_warn", "_atlPos", "_isArmed", "_fuseDist", "_indirectHitRange", "_fragRange", "_c", "_m", "_k", "_gC", "_fragPower", "_fragPowerRandom", "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_boundingBox", "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", "_currentCount", "_count", "_vecVar", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", "_sectorSize", "_sectorOffset", "_i", "_randomDir", "_endTime", "_target"];
|
private ["_startTime", "_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "_warn", "_atlPos", "_isArmed", "_fuseDist", "_indirectHitRange", "_fragRange", "_c", "_m", "_k", "_gC", "_fragPower", "_fragPowerRandom", "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_boundingBox", "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", "_currentCount", "_count", "_vecVar", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", "_sectorSize", "_sectorOffset", "_i", "_randomDir", "_endTime", "_target"];
|
||||||
@ -108,7 +109,9 @@ _fragArcs set[360, 0];
|
|||||||
#endif
|
#endif
|
||||||
_doRandom = true;
|
_doRandom = true;
|
||||||
if(_isArmed && (count _objects) > 0) then {
|
if(_isArmed && (count _objects) > 0) then {
|
||||||
|
if (GVAR(ReflectionsEnabled)) then {
|
||||||
[_lastPos, _shellType] call FUNC(doReflections);
|
[_lastPos, _shellType] call FUNC(doReflections);
|
||||||
|
};
|
||||||
{
|
{
|
||||||
//if(random(1) > 0.5) then {
|
//if(random(1) > 0.5) then {
|
||||||
_target = _x;
|
_target = _x;
|
||||||
@ -212,3 +215,4 @@ if(_isArmed && (count _objects) > 0) then {
|
|||||||
// ACE_player sideChat format["tracks: %1", (count GVAR(trackedObjects))];
|
// ACE_player sideChat format["tracks: %1", (count GVAR(trackedObjects))];
|
||||||
// #endif
|
// #endif
|
||||||
// _endTime = ACE_diagTime;
|
// _endTime = ACE_diagTime;
|
||||||
|
END_COUNTER(frago);
|
@ -1,6 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Frag">
|
<Package name="Frag">
|
||||||
|
<Key ID="STR_ACE_Frag_Module_DisplayName">
|
||||||
|
<English>Fragmentation Simulation</English>
|
||||||
|
<Polish>Symulacja fragmentacji</Polish>
|
||||||
|
<Spanish>Simulación de fragmentación</Spanish>
|
||||||
|
<German>Splittersimulation</German>
|
||||||
|
<Czech>Simulace fragmentů</Czech>
|
||||||
|
<Portuguese>Simulação de fragmentação</Portuguese>
|
||||||
|
<French>Simulation de la fragmentation</French>
|
||||||
|
<Hungarian>Repesz-szimuláció</Hungarian>
|
||||||
|
<Russian>Симуляция осколков</Russian>
|
||||||
|
<Italian>Simulazione Frammentazione</Italian>
|
||||||
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_EnableFrag">
|
<Key ID="STR_ACE_Frag_EnableFrag">
|
||||||
<English>Fragmentation Simulation</English>
|
<English>Fragmentation Simulation</English>
|
||||||
<Polish>Symulacja fragmentacji</Polish>
|
<Polish>Symulacja fragmentacji</Polish>
|
||||||
@ -11,6 +23,7 @@
|
|||||||
<French>Simulation de la fragmentation</French>
|
<French>Simulation de la fragmentation</French>
|
||||||
<Hungarian>Repesz-szimuláció</Hungarian>
|
<Hungarian>Repesz-szimuláció</Hungarian>
|
||||||
<Russian>Симуляция осколков</Russian>
|
<Russian>Симуляция осколков</Russian>
|
||||||
|
<Italian>Simulazione Frammentazione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_EnableFrag_Desc">
|
<Key ID="STR_ACE_Frag_EnableFrag_Desc">
|
||||||
<English>Enable the ACE Fragmentation Simulation</English>
|
<English>Enable the ACE Fragmentation Simulation</English>
|
||||||
@ -22,6 +35,7 @@
|
|||||||
<French>Active la simulation ACE de la fragmentation</French>
|
<French>Active la simulation ACE de la fragmentation</French>
|
||||||
<Hungarian>Az ACE repesz-szimuláció engedélyezése</Hungarian>
|
<Hungarian>Az ACE repesz-szimuláció engedélyezése</Hungarian>
|
||||||
<Russian>Включить симуляцию осколков ACE</Russian>
|
<Russian>Включить симуляцию осколков ACE</Russian>
|
||||||
|
<Italian>Abilita la Simulazione Frammentazione di ACE</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_EnableSpall">
|
<Key ID="STR_ACE_Frag_EnableSpall">
|
||||||
<English>Spalling Simulation</English>
|
<English>Spalling Simulation</English>
|
||||||
@ -33,6 +47,7 @@
|
|||||||
<French>Simulation d'éclat</French>
|
<French>Simulation d'éclat</French>
|
||||||
<Hungarian>Pattogzás-szimuláció</Hungarian>
|
<Hungarian>Pattogzás-szimuláció</Hungarian>
|
||||||
<Russian>Симуляция обломков</Russian>
|
<Russian>Симуляция обломков</Russian>
|
||||||
|
<Italian>Simulazione Spalling</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_EnableSpall_Desc">
|
<Key ID="STR_ACE_Frag_EnableSpall_Desc">
|
||||||
<English>Enable the ACE Spalling Simulation</English>
|
<English>Enable the ACE Spalling Simulation</English>
|
||||||
@ -44,6 +59,17 @@
|
|||||||
<French>Active la simulation d'éclat ACE</French>
|
<French>Active la simulation d'éclat ACE</French>
|
||||||
<Hungarian>Az ACE pattogzás-szimuláció engedélyezése</Hungarian>
|
<Hungarian>Az ACE pattogzás-szimuláció engedélyezése</Hungarian>
|
||||||
<Russian>Включить симуляцию обломков ACE</Russian>
|
<Russian>Включить симуляцию обломков ACE</Russian>
|
||||||
|
<Italian>Abilita la Simulazione Spalling di ACE</Italian>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Frag_EnableReflections">
|
||||||
|
<English>Explosion Reflections Simulation</English>
|
||||||
|
<Polish>Symulacja odbicia eksplozji</Polish>
|
||||||
|
<Italian>Simulazione Riflessi Esplosioni</Italian>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Frag_EnableReflections_Desc">
|
||||||
|
<English>Enable the ACE Explosion Reflection Simulation</English>
|
||||||
|
<Polish>Włącz symulację odbicia eksplozji ACE</Polish>
|
||||||
|
<Italian>Abilita la Simulazione Riflessi Esplosioni di ACE</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_MaxTrack">
|
<Key ID="STR_ACE_Frag_MaxTrack">
|
||||||
<English>Maximum Projectiles Tracked</English>
|
<English>Maximum Projectiles Tracked</English>
|
||||||
@ -55,6 +81,7 @@
|
|||||||
<French>Nombre maximum de projectile suivis</French>
|
<French>Nombre maximum de projectile suivis</French>
|
||||||
<Hungarian>Maximum követett repeszek</Hungarian>
|
<Hungarian>Maximum követett repeszek</Hungarian>
|
||||||
<Russian>Макс. количество отслеживаемых снарядов</Russian>
|
<Russian>Макс. количество отслеживаемых снарядов</Russian>
|
||||||
|
<Italian>Numero massimo di Proiettili Tracciati</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_MaxTrack_Desc">
|
<Key ID="STR_ACE_Frag_MaxTrack_Desc">
|
||||||
<English>This setting controls the maximum amount of projectiles the fragmentation and spalling system will track at any given time. If more projectiles are fired, they will not be tracked. Lower this setting if you do not want FPS drops at high-count projectile scenarios ( >200 rounds in the air at once)</English>
|
<English>This setting controls the maximum amount of projectiles the fragmentation and spalling system will track at any given time. If more projectiles are fired, they will not be tracked. Lower this setting if you do not want FPS drops at high-count projectile scenarios ( >200 rounds in the air at once)</English>
|
||||||
@ -66,6 +93,7 @@
|
|||||||
<French>Cette option controle le nombre maximum de projectile et d'éclat résultant de la fragmentation que le système suivra à un moment T. Si plus de projectiles sont générés, ils ne seront pas pris en compte. Baisser cette option si vous ne voulez pas de baisse de FPS en cas d'un nombre important de projectiles (>200 éclats en même temps)</French>
|
<French>Cette option controle le nombre maximum de projectile et d'éclat résultant de la fragmentation que le système suivra à un moment T. Si plus de projectiles sont générés, ils ne seront pas pris en compte. Baisser cette option si vous ne voulez pas de baisse de FPS en cas d'un nombre important de projectiles (>200 éclats en même temps)</French>
|
||||||
<Hungarian>Ez a beállítás szabályozza a repeszeződés és pattogzás által kilőtt objektumok követett számát. Ha több ez a szám, ezek az objektumok nem lesznek követve. Csökkentsd ezt a beállítást, ha nem akarsz lassulásokat magas-törmelékmennyiségű helyzetekben (200+ repesz a levegőben egyszerre)</Hungarian>
|
<Hungarian>Ez a beállítás szabályozza a repeszeződés és pattogzás által kilőtt objektumok követett számát. Ha több ez a szám, ezek az objektumok nem lesznek követve. Csökkentsd ezt a beállítást, ha nem akarsz lassulásokat magas-törmelékmennyiségű helyzetekben (200+ repesz a levegőben egyszerre)</Hungarian>
|
||||||
<Russian>Эта настройка контролирует максимальное количество снарядов, которок отслеживает система осколков и обломков в каждый момент времени. Снаряды, выстреленные сверх этого числа, отслеживаться не будут. Уменьшите это значение, если вы не хотите падения FPS при большом количестве снарядов в одной перестрелке (> 200 одновременно летящих снарядов)</Russian>
|
<Russian>Эта настройка контролирует максимальное количество снарядов, которок отслеживает система осколков и обломков в каждый момент времени. Снаряды, выстреленные сверх этого числа, отслеживаться не будут. Уменьшите это значение, если вы не хотите падения FPS при большом количестве снарядов в одной перестрелке (> 200 одновременно летящих снарядов)</Russian>
|
||||||
|
<Italian>Questo parametro controlla il numero massimo di proiettili che la frammentazione e il sistema di spalling tracciano in ogni momento. Se più proiettili sono sparati, non verranno tracciati. Abbassa questo parametro se non vuoi cali di FPS in scenari con molti proiettili (>200 proiettili in aria contemporaneamente)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_MaxTrackPerFrame">
|
<Key ID="STR_ACE_Frag_MaxTrackPerFrame">
|
||||||
<English>Maximum Projectiles Per Frame</English>
|
<English>Maximum Projectiles Per Frame</English>
|
||||||
@ -77,6 +105,7 @@
|
|||||||
<French>Nombre maximal de projectile par image</French>
|
<French>Nombre maximal de projectile par image</French>
|
||||||
<Hungarian>Maximum repesz/képkocka</Hungarian>
|
<Hungarian>Maximum repesz/képkocka</Hungarian>
|
||||||
<Russian>Макс. количество снарядов за кадр</Russian>
|
<Russian>Макс. количество снарядов за кадр</Russian>
|
||||||
|
<Italian>Numero massimo di proiettili per Frame</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_MaxTrackPerFrame_Desc">
|
<Key ID="STR_ACE_Frag_MaxTrackPerFrame_Desc">
|
||||||
<English>The number of spall track calculations to perform in any given frame. This helps spread the FPS impact of tracking spall rounds across multiple frames, limiting its impact even further.</English>
|
<English>The number of spall track calculations to perform in any given frame. This helps spread the FPS impact of tracking spall rounds across multiple frames, limiting its impact even further.</English>
|
||||||
@ -88,6 +117,7 @@
|
|||||||
<French>Le nombre d'éclat à calculer dans chaque images. Ceci permet de diffuser l'impact sur les FPS dans de multiples images, le limitant d'autant plus.</French>
|
<French>Le nombre d'éclat à calculer dans chaque images. Ceci permet de diffuser l'impact sur les FPS dans de multiples images, le limitant d'autant plus.</French>
|
||||||
<Hungarian>A lepattogzási útvonalak számításának darabjai képkockánként. Ez eloszlatja az FPS-megszakadást több képkockára, ezzel csökkentve a súlyosságát.</Hungarian>
|
<Hungarian>A lepattogzási útvonalak számításának darabjai képkockánként. Ez eloszlatja az FPS-megszakadást több képkockára, ezzel csökkentve a súlyosságát.</Hungarian>
|
||||||
<Russian>Число обрабатываемых осколков за кадр. Это позволяет распределить нагрузку по отслеживанию осколков между несколькими кадрами, чтобы предотвратить падение FPS.</Russian>
|
<Russian>Число обрабатываемых осколков за кадр. Это позволяет распределить нагрузку по отслеживанию осколков между несколькими кадрами, чтобы предотвратить падение FPS.</Russian>
|
||||||
|
<Italian>Il numero di calcoli per tracciamento di spalling ad ogni frame. Questo aiuta a distribuire l'impatto del tracciamento dello spalling su più frame, limitando ancora di più l'impatto.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_EnableDebugTrace">
|
<Key ID="STR_ACE_Frag_EnableDebugTrace">
|
||||||
<English>(SP Only) Frag/Spall Debug Tracing</English>
|
<English>(SP Only) Frag/Spall Debug Tracing</English>
|
||||||
@ -99,6 +129,7 @@
|
|||||||
<French>(SP uniquement) Fragmentation/éclat debug</French>
|
<French>(SP uniquement) Fragmentation/éclat debug</French>
|
||||||
<Hungarian>(Csak SP) Repesz/Pattogzás debug követés</Hungarian>
|
<Hungarian>(Csak SP) Repesz/Pattogzás debug követés</Hungarian>
|
||||||
<Russian>(Только для одиночной игры) Отслеживаение/отладка осколков</Russian>
|
<Russian>(Только для одиночной игры) Отслеживаение/отладка осколков</Russian>
|
||||||
|
<Italian>(Solo SP) Debug Tracciamento Frag/Spall</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Frag_EnableDebugTrace_Desc">
|
<Key ID="STR_ACE_Frag_EnableDebugTrace_Desc">
|
||||||
<English>(SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only.</English>
|
<English>(SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only.</English>
|
||||||
@ -110,6 +141,7 @@
|
|||||||
<French>(SP seulement) Requiert un redémarrage de mission ou de l'éditeur. Active les traceurs visuels de fragmentation et d'éclats en mode solo seulement</French>
|
<French>(SP seulement) Requiert un redémarrage de mission ou de l'éditeur. Active les traceurs visuels de fragmentation et d'éclats en mode solo seulement</French>
|
||||||
<Hungarian>(Csak SP) Küldetés/Editor újraindítás szükséges. Engedélyezi a repeszek és pattogzó lövedékek vizuális nyomkövetését, csak egyjátékos módok alatt.</Hungarian>
|
<Hungarian>(Csak SP) Küldetés/Editor újraindítás szükséges. Engedélyezi a repeszek és pattogzó lövedékek vizuális nyomkövetését, csak egyjátékos módok alatt.</Hungarian>
|
||||||
<Russian>(Только для одиночной игры) Требует перезапуска миссии/редактора. Включает визуальные следы от осколков и обломков в режиме одиночной игры.</Russian>
|
<Russian>(Только для одиночной игры) Требует перезапуска миссии/редактора. Включает визуальные следы от осколков и обломков в режиме одиночной игры.</Russian>
|
||||||
|
<Italian>(Solo SP) Richiede un restart editor/missione. Abilita il tracciamento visivo di schegge da frammentazione/spalling in modalità Giocatore Singolo.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Gestures">
|
<Package name="Gestures">
|
||||||
<Key ID="STR_ACE_Gestures_Name">
|
<Key ID="STR_ACE_Gestures_Name">
|
||||||
@ -113,11 +113,12 @@
|
|||||||
<Key ID="STR_ACE_Gestures_stop">
|
<Key ID="STR_ACE_Gestures_stop">
|
||||||
<English>Stop</English>
|
<English>Stop</English>
|
||||||
<French>Stop</French>
|
<French>Stop</French>
|
||||||
<German>Stop</German>
|
<German>Halt</German>
|
||||||
<Polish>Stop</Polish>
|
<Polish>Stop</Polish>
|
||||||
<Russian>Стоп</Russian>
|
<Russian>Стоп</Russian>
|
||||||
<Portuguese>Parar</Portuguese>
|
<Portuguese>Parar</Portuguese>
|
||||||
<Czech>Stop</Czech>
|
<Czech>Stop</Czech>
|
||||||
|
<Italian>Stop</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<!-- COVER -->
|
<!-- COVER -->
|
||||||
<Key ID="STR_ACE_Gestures_cover">
|
<Key ID="STR_ACE_Gestures_cover">
|
||||||
@ -141,6 +142,7 @@
|
|||||||
<Russian>Собраться</Russian>
|
<Russian>Собраться</Russian>
|
||||||
<Portuguese>Reagrupar</Portuguese>
|
<Portuguese>Reagrupar</Portuguese>
|
||||||
<Czech>Přeskupit</Czech>
|
<Czech>Přeskupit</Czech>
|
||||||
|
<Italian>Raggruppare</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<!-- FORWARD -->
|
<!-- FORWARD -->
|
||||||
<Key ID="STR_ACE_Gestures_forward">
|
<Key ID="STR_ACE_Gestures_forward">
|
||||||
@ -151,15 +153,18 @@
|
|||||||
<Russian>Вперед</Russian>
|
<Russian>Вперед</Russian>
|
||||||
<Portuguese>Mover em frente</Portuguese>
|
<Portuguese>Mover em frente</Portuguese>
|
||||||
<Czech>Kupředu</Czech>
|
<Czech>Kupředu</Czech>
|
||||||
|
<Italian>Muovere avanti</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<!-- ENGAGE -->
|
<!-- ENGAGE -->
|
||||||
<Key ID="STR_ACE_Gestures_engage">
|
<Key ID="STR_ACE_Gestures_engage">
|
||||||
<English>Engage</English>
|
<English>Engage</English>
|
||||||
|
<German>Angriff</German>
|
||||||
<French>Engager</French>
|
<French>Engager</French>
|
||||||
<Polish>Atak</Polish>
|
<Polish>Atak</Polish>
|
||||||
<Russian>Открыть огонь</Russian>
|
<Russian>Открыть огонь</Russian>
|
||||||
<Portuguese>Engajar</Portuguese>
|
<Portuguese>Engajar</Portuguese>
|
||||||
<Czech>Útok</Czech>
|
<Czech>Útok</Czech>
|
||||||
|
<Italian>Ingaggiare</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<!-- POINT -->
|
<!-- POINT -->
|
||||||
<Key ID="STR_ACE_Gestures_point">
|
<Key ID="STR_ACE_Gestures_point">
|
||||||
@ -170,6 +175,7 @@
|
|||||||
<Russian>Показать направление</Russian>
|
<Russian>Показать направление</Russian>
|
||||||
<Portuguese>Ponta</Portuguese>
|
<Portuguese>Ponta</Portuguese>
|
||||||
<Czech>Ukázat</Czech>
|
<Czech>Ukázat</Czech>
|
||||||
|
<Italian>Puntare</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<!-- HOLD -->
|
<!-- HOLD -->
|
||||||
<Key ID="STR_ACE_Gestures_hold">
|
<Key ID="STR_ACE_Gestures_hold">
|
||||||
@ -180,6 +186,7 @@
|
|||||||
<Russian>Ждать</Russian>
|
<Russian>Ждать</Russian>
|
||||||
<Portuguese>Esperar</Portuguese>
|
<Portuguese>Esperar</Portuguese>
|
||||||
<Czech>Čekej</Czech>
|
<Czech>Čekej</Czech>
|
||||||
|
<Italian>Mantenere</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<!-- WARNING -->
|
<!-- WARNING -->
|
||||||
<Key ID="STR_ACE_Gestures_warning">
|
<Key ID="STR_ACE_Gestures_warning">
|
||||||
@ -190,6 +197,7 @@
|
|||||||
<Russian>Внимание</Russian>
|
<Russian>Внимание</Russian>
|
||||||
<Portuguese>Aviso</Portuguese>
|
<Portuguese>Aviso</Portuguese>
|
||||||
<Czech>Pozor</Czech>
|
<Czech>Pozor</Czech>
|
||||||
|
<Italian>Attenzione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Gestures_Hi">
|
<Key ID="STR_ACE_Gestures_Hi">
|
||||||
<English>Hi</English>
|
<English>Hi</English>
|
||||||
@ -217,19 +225,31 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Gestures_showOnInteractionMenu_displayName">
|
<Key ID="STR_ACE_Gestures_showOnInteractionMenu_displayName">
|
||||||
<English>Show Gestures On Interaction Menu</English>
|
<English>Show Gestures On Interaction Menu</English>
|
||||||
|
<German>Zeige Gesten im Interaktionsmenü</German>
|
||||||
<Czech>Zobrazit posunky v interakčním menu</Czech>
|
<Czech>Zobrazit posunky v interakčním menu</Czech>
|
||||||
|
<Polish>Pokaż gesty w menu interakcji</Polish>
|
||||||
|
<Italian>Mostra Gesti su Menù Interazione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Gestures_showOnInteractionMenu_description">
|
<Key ID="STR_ACE_Gestures_showOnInteractionMenu_description">
|
||||||
<English>Show gestures on the self interaction menu, or just use keybinds, or disable completely</English>
|
<English>Show gestures on the self interaction menu, or just use keybinds, or disable completely</English>
|
||||||
|
<German>Zeige Gesten im Selbst-Interkationsmenü, lege sie auf Schnelltasten, oder deaktiviere sie vollständig.</German>
|
||||||
<Czech>Zobrazit posunky pro vlastní interakční menu, nebo prostě použít klávesové zkratky, nebo to zakázat úplně</Czech>
|
<Czech>Zobrazit posunky pro vlastní interakční menu, nebo prostě použít klávesové zkratky, nebo to zakázat úplně</Czech>
|
||||||
|
<Polish>Pokaż listę gestów w menu własnej interakcji, użyj tylko skrótów na klawiaturze lub wyłącz całkowicie</Polish>
|
||||||
|
<Italian>Mostra Gesti nel Menù Interazione Personale, o usa solamente Hotkey, o disabilita completamente</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Gestures_justKeybinds">
|
<Key ID="STR_ACE_Gestures_justKeybinds">
|
||||||
<English>Just Keybinds</English>
|
<English>Just Keybinds</English>
|
||||||
|
<German>Nur Schnelltasten</German>
|
||||||
<Czech>Pouze klávesové zkratky</Czech>
|
<Czech>Pouze klávesové zkratky</Czech>
|
||||||
|
<Polish>Tylko skróty klaw.</Polish>
|
||||||
|
<Italian>Solo Hotkey</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Gestures_keysAndInteractionMenu">
|
<Key ID="STR_ACE_Gestures_keysAndInteractionMenu">
|
||||||
<English>Keybinds + Interaction Menu</English>
|
<English>Keybinds + Interaction Menu</English>
|
||||||
|
<German>Schnelltasten+ Interaktionsmenü</German>
|
||||||
<Czech>Klávesové zkratky + interakční menu</Czech>
|
<Czech>Klávesové zkratky + interakční menu</Czech>
|
||||||
|
<Polish>Skróty klaw. + menu interakcji</Polish>
|
||||||
|
<Italian>Hotkey + Menù Interazione</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Goggles">
|
<Package name="Goggles">
|
||||||
<Key ID="STR_ACE_Goggles_ShowInThirdPerson">
|
<Key ID="STR_ACE_Goggles_ShowInThirdPerson">
|
||||||
|
@ -18,21 +18,46 @@
|
|||||||
params ["_grenadePosASL"];
|
params ["_grenadePosASL"];
|
||||||
TRACE_1("params",_grenadePosASL);
|
TRACE_1("params",_grenadePosASL);
|
||||||
|
|
||||||
private _affected = (ASLtoAGL _grenadePosASL) nearEntities ["CAManBase", 20];
|
// Create flash to illuminate environment
|
||||||
|
if (hasInterface) then {
|
||||||
|
private _light = "#lightpoint" createVehicleLocal ASLtoAGL _grenadePosASL;
|
||||||
|
_light setPosASL _grenadePosASL;
|
||||||
|
|
||||||
|
_light setLightBrightness 20;
|
||||||
|
_light setLightAmbient [1,1,1];
|
||||||
|
_light setLightColor [1,1,1];
|
||||||
|
_light setLightDayLight true;
|
||||||
|
|
||||||
|
// Reduce the light after 0.1 seconds
|
||||||
|
[{
|
||||||
|
params ["_light"];
|
||||||
|
_light setLightBrightness 5;
|
||||||
|
// Delete the light after 0.2 more seconds
|
||||||
|
[{
|
||||||
|
params ["_light"];
|
||||||
|
deleteVehicle _light;
|
||||||
|
}, [_light], 0.2] call EFUNC(common,waitAndExecute);
|
||||||
|
}, [_light], 0.1] call EFUNC(common,waitAndExecute);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Affect local AI
|
||||||
|
// @todo: Affect units in static weapons, turned out, etc
|
||||||
|
private _affected = (ASLtoAGL _grenadePosASL) nearEntities ["CAManBase", 20];
|
||||||
|
_affected = _affected - [ACE_player];
|
||||||
{
|
{
|
||||||
if (local _x && {alive _x}) then {
|
if (local _x && {alive _x}) then {
|
||||||
|
private _strength = 1 - (((getPosASL _x) vectorDistance _grenadePosASL) min 20) / 20;
|
||||||
private _strength = 1 - (((getPosASL _x) vectorDistance _grenadePosASL) min 15) / 15;
|
|
||||||
|
|
||||||
TRACE_3("FlashBangEffect Start",_x,((getPosASL _x) vectorDistance _grenadePosASL),_strength);
|
TRACE_3("FlashBangEffect Start",_x,((getPosASL _x) vectorDistance _grenadePosASL),_strength);
|
||||||
|
|
||||||
if (_x != ACE_player) then {
|
|
||||||
//must be AI
|
|
||||||
[_x, true] call EFUNC(common,disableAI);
|
[_x, true] call EFUNC(common,disableAI);
|
||||||
|
|
||||||
_x setSkill (skill _x / 50);
|
_x setSkill (skill _x / 50);
|
||||||
|
|
||||||
|
if (_strength > 0.2) then {
|
||||||
|
_x setVectorDir ((getPosASL _x) vectorDiff _grenadePosASL);
|
||||||
|
};
|
||||||
|
|
||||||
[{
|
[{
|
||||||
params ["_unit"];
|
params ["_unit"];
|
||||||
|
|
||||||
@ -43,62 +68,54 @@ private _affected = (ASLtoAGL _grenadePosASL) nearEntities ["CAManBase", 20];
|
|||||||
|
|
||||||
_unit setSkill (skill _unit * 50);
|
_unit setSkill (skill _unit * 50);
|
||||||
}, [_x], 7 * _strength] call EFUNC(common,waitAndExecute);
|
}, [_x], 7 * _strength] call EFUNC(common,waitAndExecute);
|
||||||
} else {
|
};
|
||||||
|
} count _affected;
|
||||||
|
|
||||||
|
// Affect local player, independently of distance
|
||||||
|
if (hasInterface && {!isNull ACE_player} && {alive ACE_player}) then {
|
||||||
// Do effects for player
|
// Do effects for player
|
||||||
// is there line of sight to the grenade?
|
// is there line of sight to the grenade?
|
||||||
private _eyePos = eyePos ACE_player; //PositionASL
|
private _eyePos = eyePos ACE_player; //PositionASL
|
||||||
_posGrenade set [2, (_posGrenade select 2) + 0.2]; // compensate for grenade glitching into ground
|
_grenadePosASL set [2, (_grenadePosASL select 2) + 0.2]; // compensate for grenade glitching into ground
|
||||||
|
|
||||||
|
private _strength = 1 - ((_eyePos vectorDistance _grenadePosASL) min 20) / 20;
|
||||||
|
|
||||||
// Check for line of sight (check 4 points in case grenade is stuck in an object or underground)
|
// Check for line of sight (check 4 points in case grenade is stuck in an object or underground)
|
||||||
|
private _losCoefficient = 1;
|
||||||
private _losCount = {
|
private _losCount = {
|
||||||
!lineIntersects [_grenadePosASL vectorAdd _x, _eyePos, ACE_player]
|
!lineIntersects [_grenadePosASL vectorAdd _x, _eyePos, ACE_player]
|
||||||
} count [[0,0,0], [0,0,0.2], [0.1, 0.1, 0.1], [-0.1, -0.1, 0.1]];
|
} count [[0,0,0], [0,0,0.2], [0.1, 0.1, 0.1], [-0.1, -0.1, 0.1]];
|
||||||
|
|
||||||
TRACE_1("Line of sight count (out of 4)",_losCount);
|
TRACE_1("Line of sight count (out of 4)",_losCount);
|
||||||
if (_losCount <= 1) then {
|
if (_losCount <= 1) then {
|
||||||
_strength = _strength / 10;
|
_losCoefficient = 0.1;
|
||||||
};
|
};
|
||||||
|
_strength = _strength * _losCoefficient;
|
||||||
|
|
||||||
// add ace_hearing ear ringing sound effect
|
// Add ace_hearing ear ringing sound effect
|
||||||
if (isClass (configFile >> "CfgPatches" >> "ACE_Hearing") && {_strength > 0}) then {
|
if (isClass (configFile >> "CfgPatches" >> "ACE_Hearing") && {_strength > 0}) then {
|
||||||
[_x, 20 * _strength] call EFUNC(hearing,earRinging);
|
[40 * _strength] call EFUNC(hearing,earRinging);
|
||||||
};
|
};
|
||||||
|
|
||||||
// account for people looking away by slightly
|
|
||||||
// reducing the effect for visual effects.
|
|
||||||
private _eyeDir = (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]);
|
|
||||||
private _dirToUnitVector = _eyePos vectorFromTo _posGrenade;
|
|
||||||
private _angleDiff = acos (_eyeDir vectorDotProduct _dirToUnitVector);
|
|
||||||
|
|
||||||
// from 0-45deg, full effect
|
|
||||||
if (_angleDiff > 45) then {
|
|
||||||
_strength = _strength - _strength * ((_angleDiff - 45) / 120);
|
|
||||||
};
|
|
||||||
|
|
||||||
TRACE_1("Final strength for player",_strength);
|
|
||||||
|
|
||||||
// add ace_medical pain effect:
|
// add ace_medical pain effect:
|
||||||
if (isClass (configFile >> "CfgPatches" >> "ACE_Medical") && {_strength > 0.1}) then {
|
if (isClass (configFile >> "CfgPatches" >> "ACE_Medical") && {_strength > 0.1}) then {
|
||||||
[ACE_player, _strength / 2] call EFUNC(medical,adjustPainLevel);
|
[ACE_player, _strength / 2] call EFUNC(medical,adjustPainLevel);
|
||||||
};
|
};
|
||||||
|
|
||||||
// create flash to illuminate environment
|
// Effect on vision has a wider range, with a higher falloff
|
||||||
private _light = "#lightpoint" createVehicleLocal _grenadePosASL;
|
_strength = 1 - (((_eyePos vectorDistance _grenadePosASL) min 25) / 25) ^ 0.4;
|
||||||
_light setPosASL _grenadePosASL;
|
_strength = _strength * _losCoefficient;
|
||||||
|
// Account for people looking away by slightly reducing the effect for visual effects.
|
||||||
|
private _eyeDir = ((AGLtoASL positionCameraToWorld [0,0,1]) vectorDiff (AGLtoASL positionCameraToWorld [0,0,0]));
|
||||||
|
private _dirToUnitVector = _eyePos vectorFromTo _grenadePosASL;
|
||||||
|
private _angleDiff = acos (_eyeDir vectorDotProduct _dirToUnitVector);
|
||||||
|
TRACE_2("",_angleDiff,((1 - (_angleDiff - 45) / (120 - 45)) max 0));
|
||||||
|
// from 0-45deg, full effect
|
||||||
|
if (_angleDiff > 45) then {
|
||||||
|
_strength = _strength * ((1 - (_angleDiff - 45) / (120 - 45)) max 0);
|
||||||
|
};
|
||||||
|
|
||||||
_light setLightBrightness 200;
|
// Blind player
|
||||||
_light setLightAmbient [1,1,1];
|
if (_strength > 0.1) then {
|
||||||
_light setLightColor [1,1,1];
|
|
||||||
_light setLightDayLight true;
|
|
||||||
|
|
||||||
// delete the light after 0.1 seconds
|
|
||||||
[{
|
|
||||||
params ["_light"];
|
|
||||||
deleteVehicle _light;
|
|
||||||
}, [_light], 0.1] call EFUNC(common,waitAndExecute);
|
|
||||||
|
|
||||||
// blind player
|
|
||||||
if (hasInterface && {_strength > 0.1}) then {
|
|
||||||
GVAR(flashbangPPEffectCC) ppEffectEnable true;
|
GVAR(flashbangPPEffectCC) ppEffectEnable true;
|
||||||
GVAR(flashbangPPEffectCC) ppEffectAdjust [1,1,(0.8 + _strength) min 1,[1,1,1,0],[0,0,0,1],[0,0,0,0]];
|
GVAR(flashbangPPEffectCC) ppEffectAdjust [1,1,(0.8 + _strength) min 1,[1,1,1,0],[0,0,0,1],[0,0,0,0]];
|
||||||
GVAR(flashbangPPEffectCC) ppEffectCommit 0.01;
|
GVAR(flashbangPPEffectCC) ppEffectCommit 0.01;
|
||||||
@ -116,7 +133,9 @@ private _affected = (ASLtoAGL _grenadePosASL) nearEntities ["CAManBase", 20];
|
|||||||
GVAR(flashbangPPEffectCC) ppEffectEnable false;
|
GVAR(flashbangPPEffectCC) ppEffectEnable false;
|
||||||
}, [], 17 * _strength] call EFUNC(common,waitAndExecute);
|
}, [], 17 * _strength] call EFUNC(common,waitAndExecute);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (_strength > 0.2) then {
|
||||||
|
ACE_player setVectorDir (_eyePos vectorDiff _grenadePosASL);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
true
|
true
|
||||||
} count _affected;
|
|
||||||
|
@ -21,8 +21,5 @@ TRACE_1("params",_projectile);
|
|||||||
if (alive _projectile) then {
|
if (alive _projectile) then {
|
||||||
playSound3D ["A3\Sounds_F\weapons\Explosion\explosion_mine_1.wss", _projectile, false, getPosASL _projectile, 5, 1.2, 400];
|
playSound3D ["A3\Sounds_F\weapons\Explosion\explosion_mine_1.wss", _projectile, false, getPosASL _projectile, 5, 1.2, 400];
|
||||||
|
|
||||||
private _affected = _projectile nearEntities ["CAManBase", 20];
|
["flashbangExplosion", [getPosASL _projectile]] call EFUNC(common,globalEvent);
|
||||||
TRACE_2("people hit",_affected,getPosASL _projectile);
|
|
||||||
|
|
||||||
["flashbangExplosion", _affected, [getPosASL _projectile]] call EFUNC(common,targetEvent);
|
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Grenades">
|
<Package name="Grenades">
|
||||||
<Key ID="STR_ACE_Grenades_SwitchGrenadeMode">
|
<Key ID="STR_ACE_Grenades_SwitchGrenadeMode">
|
||||||
|
@ -1,33 +1,47 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Headless">
|
<Package name="Headless">
|
||||||
<Key ID="STR_ACE_Headless_Module">
|
<Key ID="STR_ACE_Headless_Module">
|
||||||
<English>Headless</English>
|
<English>Headless</English>
|
||||||
<German>Headless</German>
|
<German>Headless</German>
|
||||||
|
<Polish>Headless</Polish>
|
||||||
|
<Italian>Headless</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Headless_ModuleDesc">
|
<Key ID="STR_ACE_Headless_ModuleDesc">
|
||||||
<English>This module allows you to setup automatic transferring of AI to Headless Clients. (Default: No)</English>
|
<English>This module allows you to setup automatic transferring of AI to Headless Clients. (Default: No)</English>
|
||||||
<German>Dieses Modul erlaubt es dir, die KI automatisch auf einen Headless Client zu transferieren. (Standard: Nein) </German>
|
<German>Dieses Modul erlaubt es dir, die KI automatisch auf einen Headless Client zu transferieren. (Standard: Nein) </German>
|
||||||
|
<Polish>Moduł ten pozwala ustawić automatyczne przenoszenie AI do Headless Clientów. (Domyślnie: Nie)</Polish>
|
||||||
|
<Italian>Questo modulo ti consente di impostare il trasferimento automatico di IA all'Headless Client (Default: No)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Headless_EnabledDesc">
|
<Key ID="STR_ACE_Headless_EnabledDesc">
|
||||||
<English>Enables transferring of AI to Headless Clients.</English>
|
<English>Enables transferring of AI to Headless Clients.</English>
|
||||||
<German>Aktiviert den Transfer der KI auf Headless Clients.</German>
|
<German>Aktiviert den Transfer der KI auf Headless Clients.</German>
|
||||||
|
<Polish>Aktywuje przenoszenie AI do Headless Clientów</Polish>
|
||||||
|
<Italian>Abilita trasferimento di IA a Headless Client</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Headless_Delay">
|
<Key ID="STR_ACE_Headless_Delay">
|
||||||
<English>Delay</English>
|
<English>Delay</English>
|
||||||
<German>Verzögerung</German>
|
<German>Verzögerung</German>
|
||||||
|
<Polish>Opóźnienie</Polish>
|
||||||
|
<Italian>Ritardo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Headless_DelayDesc">
|
<Key ID="STR_ACE_Headless_DelayDesc">
|
||||||
<English>Minimal delay between transfers, in seconds. (Default: 15)</English>
|
<English>Minimal delay between transfers, in seconds. (Default: 15)</English>
|
||||||
<German>Minimale Verzögerung zwischen Transfers in Sekunden. (Standard: 15)</German>
|
<German>Minimale Verzögerung zwischen Transfers in Sekunden. (Standard: 15)</German>
|
||||||
|
<Polish>Minimalne opóźnienie w sekundach pomiędzy transferami. (Domyślnie: 15)</Polish>
|
||||||
|
<Italian>Ritardo minimo tra trasferimenti, in secondi. (Default: 15)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Headless_Log">
|
<Key ID="STR_ACE_Headless_Log">
|
||||||
<English>Log</English>
|
<English>Log</English>
|
||||||
<German>Protokolldatei anlegen</German>
|
<German>Protokolldatei anlegen</German>
|
||||||
|
<Polish>Dziennik</Polish>
|
||||||
|
<Italian>Log</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Headless_LogDesc">
|
<Key ID="STR_ACE_Headless_LogDesc">
|
||||||
<English>Log transfer statistics and Headless Client (dis)connections to RPT. (Default: No)</English>
|
<English>Log transfer statistics and Headless Client (dis)connections to RPT. (Default: No)</English>
|
||||||
<German>Zeichnet Transferstatistiken, Verbindungen und Verbindungsabbrüche in einer RPT-Datei auf. (Standard: Nein)</German>
|
<German>Zeichnet Transferstatistiken, Verbindungen und Verbindungsabbrüche in einer RPT-Datei auf. (Standard: Nein)</German>
|
||||||
|
<Polish>Zapisuj statystyki transferów oraz status Headless Clienta do RPT. (Domyślnie: Nie)</Polish>
|
||||||
|
<Italian>Logga statistiche trasferimenti e (dis)connessioni di Headless Client su RPT. (Default: No)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,31 +1,38 @@
|
|||||||
class ACE_Settings {
|
class ACE_Settings {
|
||||||
class GVAR(EnableCombatDeafness) {
|
class GVAR(EnableCombatDeafness) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
value = 1;
|
value = 1;
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
displayName = CSTRING(CombatDeafness_DisplayName);
|
displayName = CSTRING(EnableCombatDeafness_DisplayName);
|
||||||
description = CSTRING(CombatDeafness_Description);
|
description = CSTRING(EnableCombatDeafness_Description);
|
||||||
};
|
};
|
||||||
class GVAR(EarplugsVolume) {
|
class GVAR(EarplugsVolume) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
value = 0.5;
|
value = 0.5;
|
||||||
typeName = "SCALAR";
|
typeName = "SCALAR";
|
||||||
};
|
};
|
||||||
class GVAR(UnconsciousnessVolume) {
|
class GVAR(UnconsciousnessVolume) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
value = 0.4;
|
value = 0.4;
|
||||||
typeName = "SCALAR";
|
typeName = "SCALAR";
|
||||||
};
|
};
|
||||||
class GVAR(DisableEarRinging) {
|
class GVAR(DisableEarRinging) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
value = 0;
|
value = 0;
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
isClientSettable = 1;
|
isClientSettable = 1;
|
||||||
displayName = CSTRING(DisableEarRinging);
|
displayName = CSTRING(DisableEarRinging_DisplayName);
|
||||||
|
description = CSTRING(DisableEarRinging_Description);
|
||||||
};
|
};
|
||||||
class GVAR(enabledForZeusUnits) {
|
class GVAR(enabledForZeusUnits) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
value = 1;
|
value = 1;
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
displayName = CSTRING(enabledForZeusUnits_DisplayName);
|
displayName = CSTRING(enabledForZeusUnits_DisplayName);
|
||||||
description = CSTRING(enabledForZeusUnits_Description);
|
description = CSTRING(enabledForZeusUnits_Description);
|
||||||
};
|
};
|
||||||
class GVAR(autoAddEarplugsToUnits) {
|
class GVAR(autoAddEarplugsToUnits) {
|
||||||
|
category = CSTRING(Module_DisplayName);
|
||||||
value = 1;
|
value = 1;
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
displayName = CSTRING(autoAddEarplugsToUnits_DisplayName);
|
displayName = CSTRING(autoAddEarplugsToUnits_DisplayName);
|
||||||
|
@ -11,9 +11,21 @@ class CfgSounds {
|
|||||||
sound[] = {QUOTE(PATHTOF(sounds\ACE_earringing_heavy.wav)),8,1.7};
|
sound[] = {QUOTE(PATHTOF(sounds\ACE_earringing_heavy.wav)),8,1.7};
|
||||||
titles[] = {};
|
titles[] = {};
|
||||||
};
|
};
|
||||||
class ACE_Combat_Deafness {
|
class ACE_Combat_Deafness_Heavy {
|
||||||
|
sound[] = {QUOTE(PATHTOF(sounds\deafness.ogg)),8,1};
|
||||||
|
titles[] = {};
|
||||||
|
};
|
||||||
|
class ACE_Combat_Deafness_Medium {
|
||||||
sound[] = {QUOTE(PATHTOF(sounds\deafness.ogg)),3,1};
|
sound[] = {QUOTE(PATHTOF(sounds\deafness.ogg)),3,1};
|
||||||
titles[] = {};
|
titles[] = {};
|
||||||
|
};
|
||||||
|
class ACE_Combat_Deafness_Heavy_NoRing {
|
||||||
|
sound[] = {QUOTE(PATHTOF(sounds\deafness_noring.ogg)),8,1};
|
||||||
|
titles[] = {};
|
||||||
|
};
|
||||||
|
class ACE_Combat_Deafness_Medium_NoRing {
|
||||||
|
sound[] = {QUOTE(PATHTOF(sounds\deafness_noring.ogg)),3,1};
|
||||||
|
titles[] = {};
|
||||||
};
|
};
|
||||||
class ACE_Ring_Backblast {
|
class ACE_Ring_Backblast {
|
||||||
sound[] = {QUOTE(PATHTOF(sounds\backblast_ring.ogg)),1,1};
|
sound[] = {QUOTE(PATHTOF(sounds\backblast_ring.ogg)),1,1};
|
||||||
|
@ -103,13 +103,14 @@ class CfgVehicles {
|
|||||||
icon = PATHTOF(UI\Icon_Module_Hearing_ca.paa);
|
icon = PATHTOF(UI\Icon_Module_Hearing_ca.paa);
|
||||||
class Arguments {
|
class Arguments {
|
||||||
class EnableCombatDeafness {
|
class EnableCombatDeafness {
|
||||||
displayName = CSTRING(CombatDeafness_DisplayName);
|
displayName = CSTRING(EnableCombatDeafness_DisplayName);
|
||||||
description = CSTRING(CombatDeafness_Description);
|
description = CSTRING(EnableCombatDeafness_Description);
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
defaultValue = 1;
|
defaultValue = 1;
|
||||||
};
|
};
|
||||||
class DisableEarRinging {
|
class DisableEarRinging {
|
||||||
displayName = CSTRING(DisableEarRinging);
|
displayName = CSTRING(DisableEarRinging_DisplayName);
|
||||||
|
description = CSTRING(DisableEarRinging_Description);
|
||||||
typeName = "NUMBER";
|
typeName = "NUMBER";
|
||||||
class values {
|
class values {
|
||||||
class DoNotForce {
|
class DoNotForce {
|
||||||
|
@ -2,24 +2,26 @@
|
|||||||
|
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
GVAR(cacheAmmoLoudness) = createLocation ["ACE_HashLocation", [-10000,-10000,-10000], 0, 0];
|
GVAR(cacheAmmoLoudness) = call CBA_fnc_createNamespace;
|
||||||
GVAR(cacheAmmoLoudness) setText QGVAR(cacheAmmoLoudness);
|
|
||||||
|
|
||||||
GVAR(deafnessDV) = 0;
|
GVAR(deafnessDV) = 0;
|
||||||
GVAR(deafnessPrior) = 0;
|
GVAR(deafnessPrior) = 0;
|
||||||
GVAR(volume) = 1;
|
GVAR(volume) = 1;
|
||||||
GVAR(playerVehAttenuation) = 1;
|
GVAR(playerVehAttenuation) = 1;
|
||||||
|
|
||||||
GVAR(beep) = false;
|
|
||||||
GVAR(beep2) = false;
|
|
||||||
GVAR(time2) = 0;
|
|
||||||
GVAR(time3) = 0;
|
GVAR(time3) = 0;
|
||||||
GVAR(time4) = 0;
|
GVAR(damageCoefficent) = 1;
|
||||||
|
GVAR(volumeAttenuation) = 1;
|
||||||
|
|
||||||
["SettingsInitialized", {
|
["SettingsInitialized", {
|
||||||
|
TRACE_1("settingInit",GVAR(EnableCombatDeafness));
|
||||||
|
// Only run PFEH and install event handlers if combat deafness is enabled
|
||||||
|
if (!GVAR(EnableCombatDeafness)) exitWith {};
|
||||||
|
|
||||||
|
// Update hearing protection now:
|
||||||
|
[] call FUNC(updateHearingProtection);
|
||||||
|
|
||||||
// Spawn volume updating process
|
// Spawn volume updating process
|
||||||
[FUNC(updateVolume), 1, [false]] call CBA_fnc_addPerFrameHandler;
|
[FUNC(updateVolume), 1, [false]] call CBA_fnc_addPerFrameHandler;
|
||||||
}] call EFUNC(common,addEventHandler);
|
|
||||||
|
|
||||||
// Update veh attunation when player veh changes
|
// Update veh attunation when player veh changes
|
||||||
["playerVehicleChanged", {_this call FUNC(updatePlayerVehAttenuation);}] call EFUNC(common,addEventHandler);
|
["playerVehicleChanged", {_this call FUNC(updatePlayerVehAttenuation);}] call EFUNC(common,addEventHandler);
|
||||||
@ -30,10 +32,10 @@ GVAR(time4) = 0;
|
|||||||
GVAR(deafnessDV) = 0;
|
GVAR(deafnessDV) = 0;
|
||||||
GVAR(deafnessPrior) = 0;
|
GVAR(deafnessPrior) = 0;
|
||||||
ACE_player setVariable [QGVAR(deaf), false];
|
ACE_player setVariable [QGVAR(deaf), false];
|
||||||
|
|
||||||
GVAR(beep) = false;
|
|
||||||
GVAR(beep2) = false;
|
|
||||||
GVAR(time2) = 0;
|
|
||||||
GVAR(time3) = 0;
|
GVAR(time3) = 0;
|
||||||
GVAR(time4) = 0;
|
[] call FUNC(updateHearingProtection);
|
||||||
}] call EFUNC(common,addEventhandler);
|
}] call EFUNC(common,addEventhandler);
|
||||||
|
|
||||||
|
// Update protection on possible helmet change
|
||||||
|
["playerInventoryChanged", {[] call FUNC(updateHearingProtection);}] call EFUNC(common,addEventhandler);
|
||||||
|
}] call EFUNC(common,addEventHandler);
|
||||||
|
@ -11,6 +11,7 @@ PREP(hasEarPlugsIn);
|
|||||||
PREP(moduleHearing);
|
PREP(moduleHearing);
|
||||||
PREP(putInEarPlugs);
|
PREP(putInEarPlugs);
|
||||||
PREP(removeEarPlugs);
|
PREP(removeEarPlugs);
|
||||||
|
PREP(updateHearingProtection);
|
||||||
PREP(updatePlayerVehAttenuation);
|
PREP(updatePlayerVehAttenuation);
|
||||||
PREP(updateVolume);
|
PREP(updateVolume);
|
||||||
|
|
||||||
|
@ -1,39 +1,25 @@
|
|||||||
/*
|
/*
|
||||||
* Author: KoffeinFlummi, commy2, Rocko, Rommel, Ruthberg
|
* Author: KoffeinFlummi, commy2, Rocko, Rommel, Ruthberg
|
||||||
* Ear ringing PFH
|
* Handle new sound souce near ace_player and apply hearing damage
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: unit <OBJECT>
|
* 0: strength of ear ringing <NUMBER>
|
||||||
* 1: strength of ear ringing (Number between 0 and 1) <NUMBER>
|
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [_unit, _strength] call ace_hearing_fnc_earRinging
|
* [_strength] call ace_hearing_fnc_earRinging
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
params ["_unit", "_strength"];
|
params ["_strength"];
|
||||||
|
|
||||||
if (_unit != ACE_player) exitWith {};
|
|
||||||
if (_strength < 0.05) exitWith {};
|
if (_strength < 0.05) exitWith {};
|
||||||
if (!isNull curatorCamera) exitWith {};
|
if (!isNull curatorCamera) exitWith {};
|
||||||
if ((!GVAR(enabledForZeusUnits)) && {player != ACE_player}) exitWith {};
|
if ((!GVAR(enabledForZeusUnits)) && {player != ACE_player}) exitWith {};
|
||||||
|
|
||||||
if (_unit getVariable ["ACE_hasEarPlugsin", false]) then {
|
TRACE_2("adding",_strength * GVAR(damageCoefficent),GVAR(deafnessDV));
|
||||||
_strength = _strength / 4;
|
|
||||||
};
|
|
||||||
|
|
||||||
//headgear hearing protection
|
GVAR(deafnessDV) = GVAR(deafnessDV) + (_strength * GVAR(damageCoefficent));
|
||||||
if(headgear _unit != "") then {
|
|
||||||
private _protection = (getNumber (configFile >> "CfgWeapons" >> (headgear _unit) >> QGVAR(protection))) min 1;
|
|
||||||
if(_protection > 0) then {
|
|
||||||
_strength = _strength * (1 - _protection);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
TRACE_2("adding",_strength,GVAR(deafnessDV));
|
|
||||||
|
|
||||||
GVAR(deafnessDV) = GVAR(deafnessDV) + _strength;
|
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
//Only run if deafness or ear ringing is enabled:
|
// Only run if combat deafness is enabled
|
||||||
if ((!GVAR(enableCombatDeafness)) && GVAR(DisableEarRinging)) exitWith {};
|
if (!GVAR(EnableCombatDeafness)) exitWith {};
|
||||||
|
|
||||||
params ["_unit", "_damage"];
|
params ["_unit", "_damage"];
|
||||||
|
|
||||||
@ -29,4 +29,5 @@ private ["_strength"];
|
|||||||
_strength = (0 max _damage) * 30;
|
_strength = (0 max _damage) * 30;
|
||||||
if (_strength < 0.01) exitWith {};
|
if (_strength < 0.01) exitWith {};
|
||||||
|
|
||||||
[{_this call FUNC(earRinging)}, [_unit, _strength], 0.2] call EFUNC(common,waitAndExecute);
|
// Call inmediately, as it will get pick up later anyway by the update thread
|
||||||
|
[_strength] call FUNC(earRinging);
|
||||||
|
@ -22,8 +22,8 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
//Only run if deafness or ear ringing is enabled:
|
// Only run if combat deafness is enabled
|
||||||
if ((!GVAR(enableCombatDeafness)) && GVAR(DisableEarRinging)) exitWith {};
|
if (!GVAR(EnableCombatDeafness)) exitWith {};
|
||||||
|
|
||||||
params ["_object", "_firer", "_distance", "_weapon", "", "", "_ammo"];
|
params ["_object", "_firer", "_distance", "_weapon", "", "", "_ammo"];
|
||||||
|
|
||||||
@ -97,4 +97,5 @@ TRACE_1("result",_strength);
|
|||||||
|
|
||||||
if (_strength < 0.01) exitWith {};
|
if (_strength < 0.01) exitWith {};
|
||||||
|
|
||||||
[{_this call FUNC(earRinging)}, [ACE_player, _strength], 0.2] call EFUNC(common,waitAndExecute);
|
// Call inmediately, as it will get pick up later anyway by the update thread
|
||||||
|
[_strength] call FUNC(earRinging);
|
||||||
|
@ -12,13 +12,12 @@
|
|||||||
|
|
||||||
params ["_logic"];
|
params ["_logic"];
|
||||||
|
|
||||||
[_logic, QGVAR(enableCombatDeafness), "EnableCombatDeafness"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(EnableCombatDeafness), "EnableCombatDeafness"] call EFUNC(common,readSettingFromModule);
|
||||||
|
|
||||||
// Do Not Force - read module setting only non-default is set due to using SCALAR
|
// Do Not Force - read module setting only non-default is set due to using SCALAR
|
||||||
if ((_logic getVariable "DisableEarRinging") != -1) then {
|
if ((_logic getVariable "DisableEarRinging") != -1) then {
|
||||||
[_logic, QGVAR(DisableEarRinging), "DisableEarRinging"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(DisableEarRinging), "DisableEarRinging"] call EFUNC(common,readSettingFromModule);
|
||||||
};
|
};
|
||||||
|
|
||||||
[_logic, QGVAR(enabledForZeusUnits), "enabledForZeusUnits"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(enabledForZeusUnits), "enabledForZeusUnits"] call EFUNC(common,readSettingFromModule);
|
||||||
[_logic, QGVAR(autoAddEarplugsToUnits), "autoAddEarplugsToUnits"] call EFUNC(common,readSettingFromModule);
|
[_logic, QGVAR(autoAddEarplugsToUnits), "autoAddEarplugsToUnits"] call EFUNC(common,readSettingFromModule);
|
||||||
ACE_LOGINFO("Hearing Module Initialized.");
|
ACE_LOGINFO("Hearing Module Initialized.");
|
||||||
|
@ -29,3 +29,5 @@ _player setVariable ["ACE_hasEarPlugsIn", true, true];
|
|||||||
|
|
||||||
/*// No Earplugs in inventory, telling user
|
/*// No Earplugs in inventory, telling user
|
||||||
[localize LSTRING(NoPlugs)] call EFUNC(common,displayTextStructured);*/
|
[localize LSTRING(NoPlugs)] call EFUNC(common,displayTextStructured);*/
|
||||||
|
|
||||||
|
[] call FUNC(updateHearingProtection);
|
||||||
|
@ -30,3 +30,5 @@ _player setVariable ["ACE_hasEarPlugsIn", false, true];
|
|||||||
|
|
||||||
//Force an immediate fast volume update:
|
//Force an immediate fast volume update:
|
||||||
[[true]] call FUNC(updateVolume);
|
[[true]] call FUNC(updateVolume);
|
||||||
|
|
||||||
|
[] call FUNC(updateHearingProtection);
|
||||||
|
36
addons/hearing/functions/fnc_updateHearingProtection.sqf
Normal file
36
addons/hearing/functions/fnc_updateHearingProtection.sqf
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* Author: PabstMirror
|
||||||
|
* Updates the hearing protection and volume attenuation for player on earbuds/helmet change
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [] call ace_hearing_fnc_updateHearingProtection
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
TRACE_1("params",_this);
|
||||||
|
|
||||||
|
if (isNull ACE_player) exitWith {
|
||||||
|
GVAR(damageCoefficent) = 0;
|
||||||
|
GVAR(volumeAttenuation) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Handle Earplugs
|
||||||
|
private _hasEarPlugsIn = [ACE_player] call FUNC(hasEarPlugsIn);
|
||||||
|
GVAR(damageCoefficent) = [1, 0.25] select _hasEarPlugsIn;
|
||||||
|
GVAR(volumeAttenuation) = [1, GVAR(EarplugsVolume)] select _hasEarPlugsIn;
|
||||||
|
|
||||||
|
// Handle Headgear
|
||||||
|
if (headgear ACE_player != "") then {
|
||||||
|
private _protection = (getNumber (configFile >> "CfgWeapons" >> (headgear ACE_player) >> QGVAR(protection))) min 1;
|
||||||
|
GVAR(damageCoefficent) = GVAR(damageCoefficent) * (1 - _protection);
|
||||||
|
private _attenuation = (getNumber (configFile >> "CfgWeapons" >> (headgear ACE_player) >> QGVAR(lowerVolume))) min 1;
|
||||||
|
GVAR(volumeAttenuation) = GVAR(volumeAttenuation) * (1 - _attenuation);
|
||||||
|
};
|
@ -16,75 +16,38 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
//Only run if deafness or ear ringing is enabled:
|
|
||||||
if ((!GVAR(enableCombatDeafness)) && GVAR(DisableEarRinging)) exitWith {};
|
|
||||||
|
|
||||||
(_this select 0) params ["_justUpdateVolume"];
|
(_this select 0) params ["_justUpdateVolume"];
|
||||||
|
|
||||||
|
|
||||||
GVAR(deafnessDV) = (GVAR(deafnessDV) min 20) max 0;
|
GVAR(deafnessDV) = (GVAR(deafnessDV) min 20) max 0;
|
||||||
GVAR(volume) = (1 - (GVAR(deafnessDV) / 20)) max 0;
|
GVAR(volume) = (1 - (GVAR(deafnessDV) / 20)) max 0.05;
|
||||||
|
TRACE_3("",GVAR(volume),GVAR(deafnessDV),GVAR(deafnessDV) - GVAR(deafnessPrior));
|
||||||
|
|
||||||
if (!_justUpdateVolume) then {
|
if (!_justUpdateVolume) then {
|
||||||
//If we got a big increase in the last second:
|
// Ring if we got a big increase in the last second or enough accumulated damage
|
||||||
if ((GVAR(deafnessDV) - GVAR(deafnessPrior)) > 2) then {
|
if (GVAR(deafnessDV) - GVAR(deafnessPrior) > 1 ||
|
||||||
if (ACE_time > GVAR(time3)) then {
|
GVAR(deafnessDV) > 10) then {
|
||||||
GVAR(beep2) = false;
|
|
||||||
};
|
|
||||||
if ((!GVAR(DisableEarRinging)) && {!GVAR(beep2)}) then {
|
|
||||||
playSound "ACE_Combat_Deafness";
|
|
||||||
GVAR(beep2) = true;
|
|
||||||
GVAR(time3) = ACE_time + 5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
GVAR(deafnessPrior) = GVAR(deafnessDV);
|
if (ACE_time - GVAR(time3) < 3) exitWith {};
|
||||||
|
GVAR(time3) = ACE_time;
|
||||||
|
|
||||||
if (GVAR(deafnessDV) > 19.75) then {
|
if (GVAR(deafnessDV) > 19.75) then {
|
||||||
ACE_player setVariable [QGVAR(deaf), true];
|
playSound (["ACE_Combat_Deafness_Heavy", "ACE_Combat_Deafness_Heavy_NoRing"] select GVAR(DisableEarRinging));
|
||||||
if ((!GVAR(DisableEarRinging)) && {ACE_time > GVAR(time4)}) then {
|
|
||||||
playSound "ACE_Combat_Deafness";
|
|
||||||
GVAR(beep2) = true;
|
|
||||||
GVAR(time3) = ACE_time + 10;
|
|
||||||
GVAR(time4) = ACE_time + 30;
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
ACE_player setVariable [QGVAR(deaf), false];
|
playSound (["ACE_Combat_Deafness_Medium", "ACE_Combat_Deafness_Medium_NoRing"] select GVAR(DisableEarRinging));
|
||||||
};
|
|
||||||
|
|
||||||
if (GVAR(deafnessDV) > 10) then {
|
|
||||||
//check if the ringing is already being played
|
|
||||||
if (ACE_time > GVAR(time2)) then {
|
|
||||||
GVAR(beep) = false;
|
|
||||||
};
|
|
||||||
if ((!GVAR(DisableEarRinging)) && {!GVAR(beep)}) then {
|
|
||||||
playSound "ACE_Ring_Backblast";
|
|
||||||
GVAR(time2) = ACE_time + 22;
|
|
||||||
GVAR(beep) = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
GVAR(deafnessPrior) = GVAR(deafnessDV);
|
||||||
|
|
||||||
// Hearing takes longer to return to normal after it hits rock bottom
|
// Hearing takes longer to return to normal after it hits rock bottom
|
||||||
GVAR(deafnessDV) = (GVAR(deafnessDV) - (0.5 * (GVAR(volume) max 0.1))) max 0;
|
GVAR(deafnessDV) = (GVAR(deafnessDV) - (0.5 * (GVAR(volume) max 0.1))) max 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false]) || {!GVAR(enableCombatDeafness)}) exitWith {};
|
if (missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false]) exitWith {};
|
||||||
|
|
||||||
private _volume = GVAR(volume);
|
private _volume = GVAR(volume);
|
||||||
|
|
||||||
// Earplugs reduce hearing 50%
|
// Earplugs and headgear can attenuate hearing
|
||||||
if ([ACE_player] call FUNC(hasEarPlugsIn)) then {
|
_volume = _volume min GVAR(volumeAttenuation);
|
||||||
_volume = _volume min GVAR(EarplugsVolume);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Headgear can reduce hearing
|
|
||||||
if(headgear ACE_player != "") then {
|
|
||||||
private ["_lowerVolume"];
|
|
||||||
_lowerVolume = (getNumber (configFile >> "CfgWeapons" >> (headgear ACE_player) >> QGVAR(lowerVolume))) min 1;
|
|
||||||
if(_lowerVolume > 0) then {
|
|
||||||
_volume = _volume min (1 - _lowerVolume);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
// Reduce volume if player is unconscious
|
// Reduce volume if player is unconscious
|
||||||
if (ACE_player getVariable ["ACE_isUnconscious", false]) then {
|
if (ACE_player getVariable ["ACE_isUnconscious", false]) then {
|
||||||
|
BIN
addons/hearing/sounds/deafness_noring.ogg
Normal file
BIN
addons/hearing/sounds/deafness_noring.ogg
Normal file
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Hearing">
|
<Package name="Hearing">
|
||||||
<Key ID="STR_ACE_Hearing_EarPlugs_Name">
|
<Key ID="STR_ACE_Hearing_EarPlugs_Name">
|
||||||
@ -97,7 +97,7 @@
|
|||||||
<Hungarian>Nincs több hely</Hungarian>
|
<Hungarian>Nincs több hely</Hungarian>
|
||||||
<Russian>Нет места в инвентаре</Russian>
|
<Russian>Нет места в инвентаре</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_DisableEarRinging">
|
<Key ID="STR_ACE_Hearing_DisableEarRinging_DisplayName">
|
||||||
<English>Disable ear ringing</English>
|
<English>Disable ear ringing</English>
|
||||||
<French>Désactiver le bourdonnement</French>
|
<French>Désactiver le bourdonnement</French>
|
||||||
<Spanish>Desactivar zumbido de oídos</Spanish>
|
<Spanish>Desactivar zumbido de oídos</Spanish>
|
||||||
@ -109,6 +109,9 @@
|
|||||||
<Italian>Disabilita i fischi nelle orecchie</Italian>
|
<Italian>Disabilita i fischi nelle orecchie</Italian>
|
||||||
<Portuguese>Desabilitar zumbido de ouvidos</Portuguese>
|
<Portuguese>Desabilitar zumbido de ouvidos</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Hearing_DisableEarRinging_Description">
|
||||||
|
<English>Remove tinnitus effect when the player takes hearing damage</English>
|
||||||
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_Module_DisplayName">
|
<Key ID="STR_ACE_Hearing_Module_DisplayName">
|
||||||
<English>Hearing</English>
|
<English>Hearing</English>
|
||||||
<Polish>Słuch</Polish>
|
<Polish>Słuch</Polish>
|
||||||
@ -119,26 +122,29 @@
|
|||||||
<French>Audition</French>
|
<French>Audition</French>
|
||||||
<Hungarian>Hallás</Hungarian>
|
<Hungarian>Hallás</Hungarian>
|
||||||
<Russian>Слух</Russian>
|
<Russian>Слух</Russian>
|
||||||
|
<Italian>Udito</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_CombatDeafness_DisplayName">
|
<Key ID="STR_ACE_Hearing_EnableCombatDeafness_DisplayName">
|
||||||
<English>Combat Deafness</English>
|
<English>Enable Combat Deafness</English>
|
||||||
<Polish>Wł. głuchotę bojową</Polish>
|
<Polish>Wł. głuchotę bojową</Polish>
|
||||||
<Spanish>¿Habilitar sordera de combate?</Spanish>
|
<Spanish>Habilitar sordera de combate</Spanish>
|
||||||
<German>Aktiviere Taubheit im Gefecht?</German>
|
<German>Aktiviere Taubheit im Gefecht?</German>
|
||||||
<Czech>Povolit ztrátu sluchu?</Czech>
|
<Czech>Povolit ztrátu sluchu?</Czech>
|
||||||
<Portuguese>Ativar surdez em combate?</Portuguese>
|
<Portuguese>Ativar surdez em combate?</Portuguese>
|
||||||
<French>Activer la surdité au combat?</French>
|
<French>Activer la surdité au combat?</French>
|
||||||
<Hungarian>Harci süketség engedélyezése?</Hungarian>
|
<Hungarian>Harci süketség engedélyezése?</Hungarian>
|
||||||
<Russian>Оглушение</Russian>
|
<Russian>Оглушение</Russian>
|
||||||
|
<Italian>Sordità da combattimento</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_CombatDeafness_Description">
|
<Key ID="STR_ACE_Hearing_EnableCombatDeafness_Description">
|
||||||
<English>Reduces the hearing ability as the player takes hearing damage</English>
|
<English>Reduces the hearing ability as the player takes hearing damage</English>
|
||||||
<Polish>Możliwość chwilowej utraty słuchu przy głośnych wystrzałach i jednoczesnym braku włożonych stoperów</Polish>
|
<Polish>Możliwość chwilowej utraty słuchu przy głośnych wystrzałach i jednoczesnym braku włożonych stoperów</Polish>
|
||||||
<Spanish>Habilita la sordera de combate</Spanish>
|
<Spanish>Habilita la sordera de combate</Spanish>
|
||||||
<German>Aktiviere Taubheit im Gefecht?</German>
|
<German>Verringert das Hörvermögen wenn der Spieler einen Hörschaden davonträg</German>
|
||||||
<Czech>Snižuje schopnost sluchu pokud dojde k jeho poškození hlasitou a blízkou střelbou</Czech>
|
<Czech>Snižuje schopnost sluchu pokud dojde k jeho poškození hlasitou a blízkou střelbou</Czech>
|
||||||
<Portuguese>Ativar surdez em combate?</Portuguese>
|
<Portuguese>Ativar surdez em combate?</Portuguese>
|
||||||
<Russian>Уменьшает возможность игрока слышать звуки при повреждении органов слуха</Russian>
|
<Russian>Уменьшает возможность игрока слышать звуки при повреждении органов слуха</Russian>
|
||||||
|
<Italian>Riduci l'abilità uditiva quando il giocatore riceve danno uditivo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_Module_Description">
|
<Key ID="STR_ACE_Hearing_Module_Description">
|
||||||
<English>Controls combat deafness and ear ringing. When activated, players can be deafened when a gun is fired in their vicinity or an explosion takes place without hearing protection</English>
|
<English>Controls combat deafness and ear ringing. When activated, players can be deafened when a gun is fired in their vicinity or an explosion takes place without hearing protection</English>
|
||||||
@ -150,6 +156,7 @@
|
|||||||
<Portuguese>Este módulo ativa / desativa surdez em combate. Quando ativado, os jogadores podem ficar surdos quando uma arma é disparada ao seu redor ou uma explosão ocorre sem proteção auditiva.</Portuguese>
|
<Portuguese>Este módulo ativa / desativa surdez em combate. Quando ativado, os jogadores podem ficar surdos quando uma arma é disparada ao seu redor ou uma explosão ocorre sem proteção auditiva.</Portuguese>
|
||||||
<French>Ce module active / désactivé la surdité au combat. Si active, des joueurs peuvent devenir sourds sans protection d'oreille, si une arme est utilisée ou une explosion a lieu à proximité</French>
|
<French>Ce module active / désactivé la surdité au combat. Si active, des joueurs peuvent devenir sourds sans protection d'oreille, si une arme est utilisée ou une explosion a lieu à proximité</French>
|
||||||
<Spanish>Controles de sordera de combate y zumbido en los oídos. Al activarlo, los jugadores pueden ser ensordecidos cuando un arma se dispara cerca o una explosión tiene lugar sin protección auditiva</Spanish>
|
<Spanish>Controles de sordera de combate y zumbido en los oídos. Al activarlo, los jugadores pueden ser ensordecidos cuando un arma se dispara cerca o una explosión tiene lugar sin protección auditiva</Spanish>
|
||||||
|
<Italian>Controlla la sordità da combattimento e fischio alle orecchie. Quando attivato, i giocatori possono essere assordati quando un'arma spara vicino o avviene un'esplosione senza protezione uditiva</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_enabledForZeusUnits_DisplayName">
|
<Key ID="STR_ACE_Hearing_enabledForZeusUnits_DisplayName">
|
||||||
<English>Effect Zeus RC</English>
|
<English>Effect Zeus RC</English>
|
||||||
@ -159,6 +166,7 @@
|
|||||||
<Portuguese>Afeta Zeus CR</Portuguese>
|
<Portuguese>Afeta Zeus CR</Portuguese>
|
||||||
<Spanish>Efecto Zeus RC</Spanish>
|
<Spanish>Efecto Zeus RC</Spanish>
|
||||||
<Czech>Vliv na Zeus RC</Czech>
|
<Czech>Vliv na Zeus RC</Czech>
|
||||||
|
<Italian>Effetto Zeus RC</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_enabledForZeusUnits_Description">
|
<Key ID="STR_ACE_Hearing_enabledForZeusUnits_Description">
|
||||||
<English>Allow zeus remote controlled units to be able to take hearing damage.</English>
|
<English>Allow zeus remote controlled units to be able to take hearing damage.</English>
|
||||||
@ -168,20 +176,25 @@
|
|||||||
<Portuguese>Permite que unidades remotamente controladas pelo Zeus sejam atingidas por danos auditivos.</Portuguese>
|
<Portuguese>Permite que unidades remotamente controladas pelo Zeus sejam atingidas por danos auditivos.</Portuguese>
|
||||||
<Spanish>Permitir a las unidades por control remoto de zeus que puedan tener daños auditivos.</Spanish>
|
<Spanish>Permitir a las unidades por control remoto de zeus que puedan tener daños auditivos.</Spanish>
|
||||||
<Czech>Aktivovat efekt ztráty sluchu pro vzdáleně ovládané jednotky.</Czech>
|
<Czech>Aktivovat efekt ztráty sluchu pro vzdáleně ovládané jednotky.</Czech>
|
||||||
|
<Italian>Consenti alle unità controllate in remoto da Zeus di ricevere danni all'udito.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_autoAddEarplugsToUnits_DisplayName">
|
<Key ID="STR_ACE_Hearing_autoAddEarplugsToUnits_DisplayName">
|
||||||
<English>Add earplugs to units</English>
|
<English>Add earplugs to units</English>
|
||||||
|
<German>Füge Ohrenstöpsel zu Einheiten hinzu</German>
|
||||||
<Polish>Dodaj stopery dla jednostek</Polish>
|
<Polish>Dodaj stopery dla jednostek</Polish>
|
||||||
<Russian>Добавлять юнитам беруши</Russian>
|
<Russian>Добавлять юнитам беруши</Russian>
|
||||||
<Portuguese>Adiciona protetores de ouvido as unidades</Portuguese>
|
<Portuguese>Adiciona protetores de ouvido as unidades</Portuguese>
|
||||||
<Czech>Přidat špunty jednotce</Czech>
|
<Czech>Přidat špunty jednotce</Czech>
|
||||||
|
<Italian>Aggiungi Tappi per Orecchie alle unità</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hearing_autoAddEarplugsToUnits_Description">
|
<Key ID="STR_ACE_Hearing_autoAddEarplugsToUnits_Description">
|
||||||
<English>Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts.</English>
|
<English>Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts.</English>
|
||||||
|
<German>Fügt die "ACE_EarPlugs" zu allen Einheiten mit lauten Waffen hinzu. Wird deaktiviert wenn eine eigene Inventarkonfiguration vorgenommen wurde.</German>
|
||||||
<Polish>Dodaje `ACE_EarPlugs` - stopery - do wszystkich jednostek, które posiadają głośną broń. Można wyłaczyć w przypadku korzystania z niestandardowych loadoutów.</Polish>
|
<Polish>Dodaje `ACE_EarPlugs` - stopery - do wszystkich jednostek, które posiadają głośną broń. Można wyłaczyć w przypadku korzystania z niestandardowych loadoutów.</Polish>
|
||||||
<Russian>Добавляет предмет `ACE_EarPlugs` всем юнитам, которые имеют громкое оружие. Можно отключить при ручной настройке снаряжения.</Russian>
|
<Russian>Добавляет предмет `ACE_EarPlugs` всем юнитам, которые имеют громкое оружие. Можно отключить при ручной настройке снаряжения.</Russian>
|
||||||
<Portuguese>Adicionar o item `ACE_EarPlugs` a todas as unidades que tenham armas barulhentas. Pode ser desabilitado com carregamentos customizados.</Portuguese>
|
<Portuguese>Adicionar o item `ACE_EarPlugs` a todas as unidades que tenham armas barulhentas. Pode ser desabilitado com carregamentos customizados.</Portuguese>
|
||||||
<Czech>Přidat `ACE_EarPlugs` všem jednotkám které mají zbraň. Můžete vypnout, pokud používáte vlastní výbavu.</Czech>
|
<Czech>Přidat `ACE_EarPlugs` všem jednotkám které mají zbraň. Můžete vypnout, pokud používáte vlastní výbavu.</Czech>
|
||||||
|
<Italian>Aggiungi l'oggetto 'ACE_EarPlugs' a tutte le unità che hanno armi rumorose. Può essere disabilitato se vengono usati loadout personalizzati.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="HuntIR">
|
<Package name="HuntIR">
|
||||||
<Key ID="STR_DN_ACE_HUNTIRBOX">
|
<Key ID="STR_DN_ACE_HUNTIRBOX">
|
||||||
@ -171,7 +171,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_HUNTIR_HELP_RES">
|
<Key ID="STR_ACE_HUNTIR_HELP_RES">
|
||||||
<English>R - Reset camera</English>
|
<English>R - Reset camera</English>
|
||||||
<German>R - Reset</German>
|
<German>R - Kamera zurücksetzen</German>
|
||||||
<Spanish>R - Reiniciar camara</Spanish>
|
<Spanish>R - Reiniciar camara</Spanish>
|
||||||
<Czech>R - Reset kamery</Czech>
|
<Czech>R - Reset kamery</Czech>
|
||||||
<Russian>R - Сбросить настройки камеры</Russian>
|
<Russian>R - Сбросить настройки камеры</Russian>
|
||||||
|
@ -76,28 +76,3 @@ GVAR(ParsedTextCached) = [];
|
|||||||
if (GVAR(menuBackground)==1) then {[QGVAR(menuBackground), false] call EFUNC(common,blurScreen);};
|
if (GVAR(menuBackground)==1) then {[QGVAR(menuBackground), false] call EFUNC(common,blurScreen);};
|
||||||
if (GVAR(menuBackground)==2) then {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;};
|
if (GVAR(menuBackground)==2) then {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;};
|
||||||
}] call EFUNC(common,addEventHandler);
|
}] call EFUNC(common,addEventHandler);
|
||||||
|
|
||||||
//Debug to help end users identify mods that break CBA's XEH
|
|
||||||
[{
|
|
||||||
private _badClassnames = [];
|
|
||||||
{
|
|
||||||
//Only check Land objects (WeaponHolderSimulated show up in `vehicles` for some reason)
|
|
||||||
if ((_x isKindOf "Land") && {(isNil (format [QGVAR(Act_%1), typeOf _x])) || {isNil (format [QGVAR(SelfAct_%1), typeOf _x])}}) then {
|
|
||||||
if (!((typeOf _x) in _badClassnames)) then {
|
|
||||||
_badClassnames pushBack (typeOf _x);
|
|
||||||
ACE_LOGERROR_3("Compile checks bad for (classname: %1)(addon: %2) %3", (typeOf _x), (unitAddons (typeOf _x)), _x);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
} forEach (allUnits + allDeadMen + vehicles);
|
|
||||||
if ((count _badClassnames) == 0) then {
|
|
||||||
ACE_LOGINFO("All compile checks passed");
|
|
||||||
} else {
|
|
||||||
ACE_LOGERROR_1("%1 Classnames failed compile check!!! (bad XEH / missing cba_enable_auto_xeh.pbo)", (count _badClassnames));
|
|
||||||
|
|
||||||
//Only show visual error if they are actually missing the pbo:
|
|
||||||
#define SUPMON configFile>>"CfgSettings">>"CBA">>"XEH">>"supportMonitor"
|
|
||||||
if ((!isNumber(SUPMON)) || {getNumber(SUPMON) != 1}) then {
|
|
||||||
["ACE Interaction failed to compile for some units (try adding cba_enable_auto_xeh.pbo)"] call BIS_fnc_error;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}, [], 5] call EFUNC(common,waitAndExecute); //ensure CBASupMon has time to run first
|
|
||||||
|
@ -41,8 +41,8 @@ if ((GVAR(openedMenuType) == 0) && {vehicle ACE_player == ACE_player} && {isNull
|
|||||||
|
|
||||||
if (_distanceToBasePoint > _distance) exitWith {true};
|
if (_distanceToBasePoint > _distance) exitWith {true};
|
||||||
|
|
||||||
if ((_distanceToBasePoint > 1.5) && {!(_params select 4)}) exitWith {
|
if ((_distanceToBasePoint > 1.2) && {!(_params select 4)}) exitWith {
|
||||||
// If distance to action is greater than 1.5 m and check isn't disabled in params, check LOS
|
// If distance to action is greater than 1.2 m and check isn't disabled in params, check LOS
|
||||||
lineIntersects [AGLtoASL _headPos, AGLtoASL _pos, _object, ACE_player]
|
lineIntersects [AGLtoASL _headPos, AGLtoASL _pos, _object, ACE_player]
|
||||||
};
|
};
|
||||||
false
|
false
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project name="ACE">
|
<Project name="ACE">
|
||||||
<Package name="Interact_Menu">
|
<Package name="Interact_Menu">
|
||||||
<Key ID="STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction">
|
<Key ID="STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction">
|
||||||
<English>Always display cursor for self interaction</English>
|
<English>Always display cursor for self interaction</English>
|
||||||
<German>Immer den Cursor für Selbst-Interaktionen anzeigen.</German>
|
<German>Immer den Mauszeiger für Selbst-Interaktionen anzeigen.</German>
|
||||||
<Spanish>Mostrar siempre el cursor para la interacción propia</Spanish>
|
<Spanish>Mostrar siempre el cursor para la interacción propia</Spanish>
|
||||||
<Russian>Показывать курсор (взаимодействия с собой)</Russian>
|
<Russian>Показывать курсор (взаимодействия с собой)</Russian>
|
||||||
<Czech>Zobrazit kurzor v menu pro vlastní interakci</Czech>
|
<Czech>Zobrazit kurzor v menu pro vlastní interakci</Czech>
|
||||||
<Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish>
|
<Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish>
|
||||||
<French>Toujours afficher le curseur pour les interactions sur soi-même</French>
|
<French>Toujours afficher le curseur pour les interactions sur soi-même</French>
|
||||||
<Hungarian>Mindig legyen a saját cselekvés kurzorja látható</Hungarian>
|
<Hungarian>Mindig legyen a saját cselekvés kurzorja látható</Hungarian>
|
||||||
<Italian>Mostra sempre il cursore per le interazioni su se stessi</Italian>
|
<Italian>Mostra sempre il cursore delle autointerazioni</Italian>
|
||||||
<Portuguese>Sempre mostrar cursor para interação pessoal</Portuguese>
|
<Portuguese>Sempre mostrar cursor para interação pessoal</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_AlwaysUseCursorInteraction">
|
<Key ID="STR_ACE_Interact_Menu_AlwaysUseCursorInteraction">
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<Polish>Zawsze wyświetlaj kursor dla interakcji</Polish>
|
<Polish>Zawsze wyświetlaj kursor dla interakcji</Polish>
|
||||||
<Russian>Показывать курсор (взаимодействие)</Russian>
|
<Russian>Показывать курсор (взаимодействие)</Russian>
|
||||||
<Czech>Zobrazit kurzor v menu pro interakci</Czech>
|
<Czech>Zobrazit kurzor v menu pro interakci</Czech>
|
||||||
<German>Immer den Cursor für Fremd-Interaktionen anzeigen</German>
|
<German>Immer den Mauszeiger für Fremd-Interaktionen anzeigen</German>
|
||||||
<Hungarian>Mindig legyen a cselekvés kurzorja látható</Hungarian>
|
<Hungarian>Mindig legyen a cselekvés kurzorja látható</Hungarian>
|
||||||
<Portuguese>Sempre mostrar cursor para interação</Portuguese>
|
<Portuguese>Sempre mostrar cursor para interação</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
@ -87,6 +87,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_ZeusActionsRoot">
|
<Key ID="STR_ACE_Interact_Menu_ZeusActionsRoot">
|
||||||
<English>Zeus Actions</English>
|
<English>Zeus Actions</English>
|
||||||
|
<German>Zeus-Aktionen</German>
|
||||||
<Polish>Akcje Zeusa</Polish>
|
<Polish>Akcje Zeusa</Polish>
|
||||||
<Czech>Akce Zeuse</Czech>
|
<Czech>Akce Zeuse</Czech>
|
||||||
<Spanish>Acciones Zeus</Spanish>
|
<Spanish>Acciones Zeus</Spanish>
|
||||||
@ -94,6 +95,7 @@
|
|||||||
<Hungarian>Zeus cselekvések</Hungarian>
|
<Hungarian>Zeus cselekvések</Hungarian>
|
||||||
<Portuguese>Ações do Zeus</Portuguese>
|
<Portuguese>Ações do Zeus</Portuguese>
|
||||||
<Russian>Действия Зевса</Russian>
|
<Russian>Действия Зевса</Russian>
|
||||||
|
<Italian>Azioni Zeus</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_ColorTextMax">
|
<Key ID="STR_ACE_Interact_Menu_ColorTextMax">
|
||||||
<English>Interaction - Text Max</English>
|
<English>Interaction - Text Max</English>
|
||||||
@ -147,7 +149,7 @@
|
|||||||
<English>Keep cursor centered</English>
|
<English>Keep cursor centered</English>
|
||||||
<French>Garder le curseur au centre</French>
|
<French>Garder le curseur au centre</French>
|
||||||
<Russian>Центрировать курсор</Russian>
|
<Russian>Центрировать курсор</Russian>
|
||||||
<German>Cursor zentriert halten</German>
|
<German>Mauszeiger zentriert halten</German>
|
||||||
<Hungarian>Kurzor középen tartása</Hungarian>
|
<Hungarian>Kurzor középen tartása</Hungarian>
|
||||||
<Polish>Utrzymaj kursor wyśrodkowany</Polish>
|
<Polish>Utrzymaj kursor wyśrodkowany</Polish>
|
||||||
<Spanish>Mantener el cursor centrado</Spanish>
|
<Spanish>Mantener el cursor centrado</Spanish>
|
||||||
@ -160,7 +162,7 @@
|
|||||||
<Czech>Udržuje kurzor na středu. Užitečné, pokud je velikost obrazovky omezena.</Czech>
|
<Czech>Udržuje kurzor na středu. Užitečné, pokud je velikost obrazovky omezena.</Czech>
|
||||||
<French>Garde le curseur au milieu et dispose le menu des options autour. Utile si la taille de l'écran est limitée.</French>
|
<French>Garde le curseur au milieu et dispose le menu des options autour. Utile si la taille de l'écran est limitée.</French>
|
||||||
<Russian>Центрирует курсор и двигает само меню опций. Полезно при ограниченном размере экрана.</Russian>
|
<Russian>Центрирует курсор и двигает само меню опций. Полезно при ограниченном размере экрана.</Russian>
|
||||||
<German>Hält den Cursor zentriert und verschiebt das Menü beim Bewegen. Nützlich bei kleinen Bildschirmen.</German>
|
<German>Hält den Mauszeiger zentriert und verschiebt das Menü beim Bewegen. Nützlich bei kleinen Bildschirmen.</German>
|
||||||
<Hungarian>Középen tartja a kurzort, és a menüelemeket mozgatja. Hasznos lehetőség korlátozott képméretnél.</Hungarian>
|
<Hungarian>Középen tartja a kurzort, és a menüelemeket mozgatja. Hasznos lehetőség korlátozott képméretnél.</Hungarian>
|
||||||
<Polish>Utrzymuje kursor na środku ekranu, zamiast tego ruch myszą powoduje przesuwanie menu interakcji. Użyteczne w przypadku kiedy rozmiar ekranu jest ograniczony.</Polish>
|
<Polish>Utrzymuje kursor na środku ekranu, zamiast tego ruch myszą powoduje przesuwanie menu interakcji. Użyteczne w przypadku kiedy rozmiar ekranu jest ograniczony.</Polish>
|
||||||
<Spanish>Mantiene el cursor centrado y despliega los menús alrededor. Útil si el tamaño de la pantalla es limitado.</Spanish>
|
<Spanish>Mantiene el cursor centrado y despliega los menús alrededor. Útil si el tamaño de la pantalla es limitado.</Spanish>
|
||||||
@ -237,6 +239,7 @@
|
|||||||
<French>Arrière plan du menu d'interaction</French>
|
<French>Arrière plan du menu d'interaction</French>
|
||||||
<Hungarian>Cselekvő menü háttere</Hungarian>
|
<Hungarian>Cselekvő menü háttere</Hungarian>
|
||||||
<Russian>Фон меню взаимодействия</Russian>
|
<Russian>Фон меню взаимодействия</Russian>
|
||||||
|
<Italian>Sfondo Menù Interazioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_blurScreenDesc">
|
<Key ID="STR_ACE_Interact_Menu_blurScreenDesc">
|
||||||
<English>Blur the background while the interaction menu is open.</English>
|
<English>Blur the background while the interaction menu is open.</English>
|
||||||
@ -248,6 +251,7 @@
|
|||||||
<French>Flouter l'arrière plan durant l'ouverture du menu d'interaction</French>
|
<French>Flouter l'arrière plan durant l'ouverture du menu d'interaction</French>
|
||||||
<Hungarian>A háttér elmosása a cselekvő menü használata alatt.</Hungarian>
|
<Hungarian>A háttér elmosása a cselekvő menü használata alatt.</Hungarian>
|
||||||
<Russian>Размыть фон, пока открыто меню взаимодействия.</Russian>
|
<Russian>Размыть фон, пока открыто меню взаимодействия.</Russian>
|
||||||
|
<Italian>Sfoca lo sfondo mentre il Menù Interazioni è aperto.</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_backgroundBlur">
|
<Key ID="STR_ACE_Interact_Menu_backgroundBlur">
|
||||||
<English>Blur screen</English>
|
<English>Blur screen</English>
|
||||||
@ -259,6 +263,7 @@
|
|||||||
<French>Flouter l'écran</French>
|
<French>Flouter l'écran</French>
|
||||||
<Hungarian>Kép elmosása</Hungarian>
|
<Hungarian>Kép elmosása</Hungarian>
|
||||||
<Russian>Размытый</Russian>
|
<Russian>Размытый</Russian>
|
||||||
|
<Italian>Sfoca schermo</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_backgroundBlack">
|
<Key ID="STR_ACE_Interact_Menu_backgroundBlack">
|
||||||
<English>Black</English>
|
<English>Black</English>
|
||||||
@ -270,9 +275,11 @@
|
|||||||
<French>Noir</French>
|
<French>Noir</French>
|
||||||
<Hungarian>Fekete</Hungarian>
|
<Hungarian>Fekete</Hungarian>
|
||||||
<Russian>Черный</Russian>
|
<Russian>Черный</Russian>
|
||||||
|
<Italian>Nero</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_addBuildingActions">
|
<Key ID="STR_ACE_Interact_Menu_addBuildingActions">
|
||||||
<English>Show actions for buildings</English>
|
<English>Show actions for buildings</English>
|
||||||
|
<German>Zeige Aktionen für Gebäude</German>
|
||||||
<Polish>Pokazuj akcje dla budynków</Polish>
|
<Polish>Pokazuj akcje dla budynków</Polish>
|
||||||
<Czech>Zobrazit akci pro budovy</Czech>
|
<Czech>Zobrazit akci pro budovy</Czech>
|
||||||
<Spanish>Mostrar acciones para edificios</Spanish>
|
<Spanish>Mostrar acciones para edificios</Spanish>
|
||||||
@ -280,9 +287,11 @@
|
|||||||
<Hungarian>Cselekvések mutatása épületeknél</Hungarian>
|
<Hungarian>Cselekvések mutatása épületeknél</Hungarian>
|
||||||
<Portuguese>Mostrar ações para edifícios</Portuguese>
|
<Portuguese>Mostrar ações para edifícios</Portuguese>
|
||||||
<Russian>Показывать действия для зданий</Russian>
|
<Russian>Показывать действия для зданий</Russian>
|
||||||
|
<Italian>Mostra azioni per edifici</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_addBuildingActionsDescription">
|
<Key ID="STR_ACE_Interact_Menu_addBuildingActionsDescription">
|
||||||
<English>Adds interaction actions for opening doors and mounting ladders on buildings. (Note: There is a performance cost when opening interaction menu, especially in towns)</English>
|
<English>Adds interaction actions for opening doors and mounting ladders on buildings. (Note: There is a performance cost when opening interaction menu, especially in towns)</English>
|
||||||
|
<German>Fügt Aktionen zum Türöffnen oder für eine Leiter zum Besteigen von Gebäuden hinzu. (Hinweis: Verschlechtert die Leistung wenn das Interaktionsmenü geöffnet wird. Insbesondere in Städten) </German>
|
||||||
<Polish>Dodaje opcje interakcji dla otwierania drzwi oraz wchodzenia po drabinach do budynków. Uwaga: Użycie tej opcji może spowodować spadek wydajności menu interakcji, szczególnie w dużych miastach.</Polish>
|
<Polish>Dodaje opcje interakcji dla otwierania drzwi oraz wchodzenia po drabinach do budynków. Uwaga: Użycie tej opcji może spowodować spadek wydajności menu interakcji, szczególnie w dużych miastach.</Polish>
|
||||||
<Czech>Přidá možnost interakce pro otevření dvěří a umistňovat žebříky na budovy. (Poznámka: Použití této možnosti snižuje výkon při otevírání pomocí interakčního menu, zejména ve velkých městech.) </Czech>
|
<Czech>Přidá možnost interakce pro otevření dvěří a umistňovat žebříky na budovy. (Poznámka: Použití této možnosti snižuje výkon při otevírání pomocí interakčního menu, zejména ve velkých městech.) </Czech>
|
||||||
<Spanish>Añade las acciones de interacción para la apertura de puertas y montaje de escaleras en los edificios. (Nota: Hay un coste de rendimiento al abrir el menú de interacción, especialmente en las ciudades)</Spanish>
|
<Spanish>Añade las acciones de interacción para la apertura de puertas y montaje de escaleras en los edificios. (Nota: Hay un coste de rendimiento al abrir el menú de interacción, especialmente en las ciudades)</Spanish>
|
||||||
@ -290,28 +299,35 @@
|
|||||||
<Hungarian>Cselekvéseket engedélyez ajtók kinyitására és létrák mászására. (Figyelem: ez teljesítményvesztéssel járhat a menü megnyitásakor, főleg városokban)</Hungarian>
|
<Hungarian>Cselekvéseket engedélyez ajtók kinyitására és létrák mászására. (Figyelem: ez teljesítményvesztéssel járhat a menü megnyitásakor, főleg városokban)</Hungarian>
|
||||||
<Portuguese>Adiciona ações de interações para abrir portas e montar escadas em edifícios. (Nota: Existe um custo de performance quando aberto o menu de interação, especialmente em cidades)</Portuguese>
|
<Portuguese>Adiciona ações de interações para abrir portas e montar escadas em edifícios. (Nota: Existe um custo de performance quando aberto o menu de interação, especialmente em cidades)</Portuguese>
|
||||||
<Russian>Добавляет действия открывания дверей и залезания на лестницы для зданий. (Примечание: возможно падение производительности при открытии меню взаимодействия, особенно в городах)</Russian>
|
<Russian>Добавляет действия открывания дверей и залезания на лестницы для зданий. (Примечание: возможно падение производительности при открытии меню взаимодействия, особенно в городах)</Russian>
|
||||||
|
<Italian>Aggiunge azioni interattive per l'apertura delle porte e piazzamento scale su edifici. (Nota: C'è un costo in performance quando si apre il Menù Interazioni, soprattutto in città)</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_Category_InteractionMenu">
|
<Key ID="STR_ACE_Interact_Menu_Category_InteractionMenu">
|
||||||
<English>Interaction Menu</English>
|
<English>Interaction Menu</English>
|
||||||
|
<German>Interaktionsmenü</German>
|
||||||
<Polish>Menu interakcji</Polish>
|
<Polish>Menu interakcji</Polish>
|
||||||
<Portuguese>Menu de interação</Portuguese>
|
<Portuguese>Menu de interação</Portuguese>
|
||||||
<Russian>Меню взаимодействия</Russian>
|
<Russian>Меню взаимодействия</Russian>
|
||||||
<Czech>Menu interakce</Czech>
|
<Czech>Menu interakce</Czech>
|
||||||
<Spanish>Menú de interacción</Spanish>
|
<Spanish>Menú de interacción</Spanish>
|
||||||
|
<Italian>Menù Interazioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_menuAnimationSpeed">
|
<Key ID="STR_ACE_Interact_Menu_menuAnimationSpeed">
|
||||||
<English>Interaction Animation Speed</English>
|
<English>Interaction Animation Speed</English>
|
||||||
|
<German>Interaktionsmenü Animationsgeschwindigkeit</German>
|
||||||
<Polish>Szybkość animacji interakcji</Polish>
|
<Polish>Szybkość animacji interakcji</Polish>
|
||||||
<Russian>Скорость анимации меню взаимодействия</Russian>
|
<Russian>Скорость анимации меню взаимодействия</Russian>
|
||||||
<Portuguese>Velocidade da animação de interação</Portuguese>
|
<Portuguese>Velocidade da animação de interação</Portuguese>
|
||||||
<Czech>Rychlost animace interakce</Czech>
|
<Czech>Rychlost animace interakce</Czech>
|
||||||
|
<Italian>Velocità Animazioni Interazioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_menuAnimationSpeed_Description">
|
<Key ID="STR_ACE_Interact_Menu_menuAnimationSpeed_Description">
|
||||||
<English>Makes menu animations faster and decreases the time needed to hover to show sub actions</English>
|
<English>Makes menu animations faster and decreases the time needed to hover to show sub actions</English>
|
||||||
|
<German>Beschleunigt die Menüanmimationen und folglich das Öffnen eines Submenüs. </German>
|
||||||
<Polish>Przyśpiesza animacje menu interakcji oraz czas wymagany do pokazania podmenu</Polish>
|
<Polish>Przyśpiesza animacje menu interakcji oraz czas wymagany do pokazania podmenu</Polish>
|
||||||
<Russian>Ускоряет анимацию меню и уменьшает задержку при наведении мыши для раскрытия подменю</Russian>
|
<Russian>Ускоряет анимацию меню и уменьшает задержку при наведении мыши для раскрытия подменю</Russian>
|
||||||
<Portuguese>Faz com que as animações do menu de interação sejam mais rápidas, dimiuindo a necessidade de esperar para mostrar as ações</Portuguese>
|
<Portuguese>Faz com que as animações do menu de interação sejam mais rápidas, dimiuindo a necessidade de esperar para mostrar as ações</Portuguese>
|
||||||
<Czech>Zrychlí animaci menu a sníží tak čas potřebný pro plné zobrazení podmenu</Czech>
|
<Czech>Zrychlí animaci menu a sníží tak čas potřebný pro plné zobrazení podmenu</Czech>
|
||||||
|
<Italian>Rende le animazioni Menù più veloci e diminuisce il tempo richiesto per mostrare sotto-azioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
class CfgVehicles {
|
class CfgVehicles {
|
||||||
class ACE_Module;
|
class ACE_Module;
|
||||||
class ACE_ModuleInteraction: ACE_Module {
|
class ACE_ModuleInteraction: ACE_Module {
|
||||||
@ -10,7 +9,6 @@ class CfgVehicles {
|
|||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
isSingular = 1;
|
isSingular = 1;
|
||||||
icon = PATHTOF(UI\Icon_Module_Interaction_ca.paa);
|
icon = PATHTOF(UI\Icon_Module_Interaction_ca.paa);
|
||||||
|
|
||||||
class Arguments {
|
class Arguments {
|
||||||
class EnableTeamManagement {
|
class EnableTeamManagement {
|
||||||
displayName = CSTRING(EnableTeamManagement_DisplayName);
|
displayName = CSTRING(EnableTeamManagement_DisplayName);
|
||||||
@ -19,7 +17,6 @@ class CfgVehicles {
|
|||||||
defaultValue = 1;
|
defaultValue = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class ModuleDescription {
|
class ModuleDescription {
|
||||||
description = CSTRING(Module_Description);
|
description = CSTRING(Module_Description);
|
||||||
};
|
};
|
||||||
@ -289,6 +286,7 @@ class CfgVehicles {
|
|||||||
icon = PATHTOF(UI\team\team_management_ca.paa);
|
icon = PATHTOF(UI\team\team_management_ca.paa);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class ACE_Equipment {
|
class ACE_Equipment {
|
||||||
displayName = CSTRING(Equipment);
|
displayName = CSTRING(Equipment);
|
||||||
condition = QUOTE(true);
|
condition = QUOTE(true);
|
||||||
@ -539,6 +537,41 @@ class CfgVehicles {
|
|||||||
class ACE_SelfActions {};
|
class ACE_SelfActions {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Lamps_base_F;
|
||||||
|
class Land_PortableLight_single_F: Lamps_base_F {
|
||||||
|
scope = 2;
|
||||||
|
XEH_ENABLED;
|
||||||
|
class ACE_Actions {
|
||||||
|
class ACE_MainActions {
|
||||||
|
displayName = CSTRING(MainAction);
|
||||||
|
selection = "";
|
||||||
|
distance = 2;
|
||||||
|
condition = "true";
|
||||||
|
class ACE_LampTurnOn {
|
||||||
|
displayName = CSTRING(TurnOn);
|
||||||
|
condition = QUOTE(alive _target && !(_target getVariable [ARR_2('ACE_lampOn',true)]));
|
||||||
|
statement = QUOTE(_target call DFUNC(switchLamp));
|
||||||
|
selection = "";
|
||||||
|
distance = 2;
|
||||||
|
};
|
||||||
|
class ACE_LampTurnOff {
|
||||||
|
displayName = CSTRING(TurnOff);
|
||||||
|
condition = QUOTE(alive _target && _target getVariable [ARR_2('ACE_lampOn',true)]);
|
||||||
|
statement = QUOTE(_target call DFUNC(switchLamp));
|
||||||
|
selection = "";
|
||||||
|
distance = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class Land_PortableLight_single_off_F: Land_PortableLight_single_F {
|
||||||
|
scope = 1;
|
||||||
|
};
|
||||||
|
class Land_PortableLight_double_F: Land_PortableLight_single_F {};
|
||||||
|
class Land_PortableLight_double_off_F: Land_PortableLight_double_F {
|
||||||
|
scope = 1;
|
||||||
|
};
|
||||||
|
|
||||||
class RoadCone_F: ThingX {
|
class RoadCone_F: ThingX {
|
||||||
class ACE_Actions {
|
class ACE_Actions {
|
||||||
class ACE_MainActions {
|
class ACE_MainActions {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user