Merge tag 'v3.10.2' into armake

This commit is contained in:
KoffeinFlummi 2017-09-19 02:13:24 +02:00
commit fa02d0d993
1323 changed files with 16636 additions and 5810 deletions

View File

@ -3,8 +3,10 @@
**ACE3 Version:** `3.x.x` (stable / dev + commit hash) **ACE3 Version:** `3.x.x` (stable / dev + commit hash)
**Mods:** **Mods:**
- `@CBA_A3` ```
- `@ace` - CBA_A3
- ace
```
**Description:** **Description:**
- Add a detailed description of the error. This makes it easier for us to fix the issue. - Add a detailed description of the error. This makes it easier for us to fix the issue.

View File

@ -1,4 +1,4 @@
# ACE3 CONTRIBUTOR LIST # ACE3 CONTRIBUTOR LIST
# If you contributed, but are not listed here, contact me: # If you contributed, but are not listed here, contact me:
# koffeinflummi@gmail.com # koffeinflummi@gmail.com
# #
@ -38,6 +38,7 @@ Aggr094 <bastards4glory@gmail.com>
alef <alefor@gmail.com> alef <alefor@gmail.com>
Aleksey EpMAK Yermakov <epmak777@gmail.com> Aleksey EpMAK Yermakov <epmak777@gmail.com>
Alganthe <alganthe@live.fr> Alganthe <alganthe@live.fr>
Andrea "AtixNeon" Verano <veranoandrea88@gmail.com>
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>
@ -83,6 +84,7 @@ Harakhti <shadowdragonphd@gmail.com>
havena <silveredenis@gmail.com> havena <silveredenis@gmail.com>
Hawkins Hawkins
Head <brobergsebastian@gmail.com> Head <brobergsebastian@gmail.com>
Hybrid V
Karneck <dschultz26@hotmail.com> Karneck <dschultz26@hotmail.com>
Kavinsky <nmunozfernandez@gmail.com> Kavinsky <nmunozfernandez@gmail.com>
Kllrt <kllrtik@gmail.com> Kllrt <kllrtik@gmail.com>
@ -102,6 +104,7 @@ nomisum <nomisum@gmail.com>
OnkelDisMaster <onkeldismaster@gmail.com> OnkelDisMaster <onkeldismaster@gmail.com>
oscarmolinadev oscarmolinadev
PaxJaromeMalues <seemax1991@gmail.com> PaxJaromeMalues <seemax1991@gmail.com>
Phyma <sethramstrom@gmail.com>
pokertour pokertour
Professor <lukas.trneny@wo.cz> Professor <lukas.trneny@wo.cz>
rakowozz rakowozz

View File

@ -4,7 +4,7 @@
<p align="center"> <p align="center">
<a href="https://github.com/acemod/ACE3/releases/latest"> <a href="https://github.com/acemod/ACE3/releases/latest">
<img src="https://img.shields.io/badge/Version-3.8.3-blue.svg?style=flat-square" alt="ACE3 Version"> <img src="https://img.shields.io/badge/Version-3.10.2-blue.svg?style=flat-square" alt="ACE3 Version">
</a> </a>
<a href="https://github.com/acemod/ACE3/issues"> <a href="https://github.com/acemod/ACE3/issues">
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues"> <img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">

Binary file not shown.

Binary file not shown.

View File

@ -10,6 +10,9 @@
* Return Value: * Return Value:
* muzzle velocity shift - m/s <NUMBER> * muzzle velocity shift - m/s <NUMBER>
* *
* Example:
* [[], 5] call ace_advanced_ballistics_fnc_calcilateAmmoTemperatureVelocityShift
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -13,6 +13,9 @@
* Return Value: * Return Value:
* corrected ballistic coefficient <NUMBER> * corrected ballistic coefficient <NUMBER>
* *
* Example:
* [2, 5, 5, 0.5, "ASM"] call ace_advanced_ballistics_fnc_calculateAtmosphericCorrection
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -4,7 +4,7 @@
* Calculates the muzzle velocity shift caused by different barrel lengths * Calculates the muzzle velocity shift caused by different barrel lengths
* *
* Arguments: * Arguments:
* 0: barrel length - mm * 0: barrel length - mm <NUMBER>
* 1: muzzle velocity lookup table - m/s <ARRAY> * 1: muzzle velocity lookup table - m/s <ARRAY>
* 2: barrel length lookup table - mm <ARRAY> * 2: barrel length lookup table - mm <ARRAY>
* 3: muzzle velocity - m/s <NUMBER> * 3: muzzle velocity - m/s <NUMBER>
@ -12,6 +12,9 @@
* Return Value: * Return Value:
* muzzle velocity shift - m/s <NUMBER> * muzzle velocity shift - m/s <NUMBER>
* *
* Example:
* [5, [0,5], [0,5], 5] call ace_advanced_ballistics_fnc_calculateBarrelLengthVelocityShift
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -11,6 +11,9 @@
* Return Value: * Return Value:
* retardation - m/(s^2) <NUMBER> * retardation - m/(s^2) <NUMBER>
* *
* Example:
* [5, 20, 10] call ace_advanced_ballistics_fnc_calculateRetardation
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -15,6 +15,9 @@
* Return Value: * Return Value:
* stability factor <NUMBER> * stability factor <NUMBER>
* *
* Example:
* [1, 2, 3, 4, 5, 6, 7] call ace_advanced_ballistics_fnc_calculateStabilityFactor
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -10,6 +10,9 @@
* Return Value: * Return Value:
* None * None
* *
* Example:
* [] call ace_advanced_ballistics_fnc_diagnoseWeapons
*
* Public: No * Public: No
*/ */
#define DEBUG_MODE_FULL #define DEBUG_MODE_FULL

View File

@ -9,6 +9,9 @@
* Return Value: * Return Value:
* None * None
* *
* Example:
* [] call ace_advanced_ballistics_fnc_displayProtractor
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -8,6 +8,9 @@
* Return Value: * Return Value:
* None * None
* *
* Example:
* [] call ace_advanced_ballistics_fnc_handleFirePFH
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -9,6 +9,9 @@
* Return Value: * Return Value:
* None * None
* *
* Example:
* [] call ace_advanced_ballistics_fnc_handleFired
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -10,6 +10,9 @@
* Return Value: * Return Value:
* None * None
* *
* Example:
* [LOGIC, [bob, kevin], true] call ace_advanced_ballistics_fnc_initModuleSettings
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -8,6 +8,9 @@
* Return Value: * Return Value:
* None * None
* *
* Example:
* [] call ace_advanced_ballistics_fnc_initializeTerrainExtension
*
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -7,18 +7,21 @@
* ammo - classname <STRING> * ammo - classname <STRING>
* *
* Return Value: * Return Value:
* 0: _airFriction * 0: _airFriction <NUMBER>
* 1: _caliber * 1: _caliber <NUMBER>
* 2: _bulletLength * 2: _bulletLength <NUMBER>
* 3: _bulletMass * 3: _bulletMass <NUMBER>
* 4: _transonicStabilityCoef * 4: _transonicStabilityCoef <NUMBER>
* 5: _dragModel * 5: _dragModel <NUMBER>
* 6: _ballisticCoefficients * 6: _ballisticCoefficients <NUMBER>
* 7: _velocityBoundaries * 7: _velocityBoundaries <NUMBER>
* 8: _atmosphereModel * 8: _atmosphereModel <NUMBER>
* 9: _ammoTempMuzzleVelocityShifts * 9: _ammoTempMuzzleVelocityShifts <NUMBER>
* 10: _muzzleVelocityTable * 10: _muzzleVelocityTable <NUMBER>
* 11: _barrelLengthTable * 11: _barrelLengthTable <NUMBER>
*
* Example:
* ["ammo"] call ace_advanced_ballistics_fnc_readAmmoDataFromConfig
* *
* Public: No * Public: No
*/ */
@ -26,7 +29,7 @@
TRACE_1("Reading Ammo Config",_this); 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; private _ammoConfig = configFile >> "CfgAmmo" >> _this;
_airFriction = getNumber(_ammoConfig >> "airFriction"); _airFriction = getNumber(_ammoConfig >> "airFriction");
_caliber = getNumber(_ammoConfig >> "ACE_caliber"); _caliber = getNumber(_ammoConfig >> "ACE_caliber");

View File

@ -7,9 +7,12 @@
* weapon - classname <STRING> * weapon - classname <STRING>
* *
* Return Value: * Return Value:
* 0: _barrelTwist * 0: _barrelTwist <NUMBER>
* 1: _twistDirection * 1: _twistDirection <NUMBER>
* 2: _barrelLength * 2: _barrelLength <NUMBER>
*
* Example:
* ["weapon"] call ace_advanced_ballistics_fnc_readWeaponDataFromConfig
* *
* Public: No * Public: No
*/ */
@ -30,6 +33,6 @@ private _barrelLength = getNumber(_weaponConfig >> "ACE_barrelLength");
private _result = [_barrelTwist, _twistDirection, _barrelLength]; private _result = [_barrelTwist, _twistDirection, _barrelLength];
uiNamespace setVariable [format[QGVAR(%1), _weapon], _result]; uiNamespace setVariable [format[QGVAR(%1), _this], _result];
_result _result

View File

@ -14,6 +14,8 @@
<Portuguese>Mostrar Informação do Vento</Portuguese> <Portuguese>Mostrar Informação do Vento</Portuguese>
<Japanese>風の情報を表示</Japanese> <Japanese>風の情報を表示</Japanese>
<Korean>바람의 정보를 표시</Korean> <Korean>바람의 정보를 표시</Korean>
<Chinese>顯示風況</Chinese>
<Chinesesimp>显示风况</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_ProtractorKey"> <Key ID="STR_ACE_Advanced_Ballistics_ProtractorKey">
<English>Show Protractor</English> <English>Show Protractor</English>
@ -28,6 +30,8 @@
<Portuguese>Mostrar Transferidor</Portuguese> <Portuguese>Mostrar Transferidor</Portuguese>
<Japanese>分度器を表示</Japanese> <Japanese>分度器を表示</Japanese>
<Korean>각도기 표시</Korean> <Korean>각도기 표시</Korean>
<Chinese>顯示量角器</Chinese>
<Chinesesimp>显示量角器</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_DisplayName">
<English>Advanced Ballistics</English> <English>Advanced Ballistics</English>
@ -42,6 +46,8 @@
<Italian>Balistica Avanzata</Italian> <Italian>Balistica Avanzata</Italian>
<Japanese>アドバンスド バリスティックス</Japanese> <Japanese>アドバンスド バリスティックス</Japanese>
<Korean>고급 탄도학</Korean> <Korean>고급 탄도학</Korean>
<Chinese>先進彈道系統</Chinese>
<Chinesesimp>先进弹道系统</Chinesesimp>
</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>
@ -56,6 +62,8 @@
<Italian>Balistica Avanzata</Italian> <Italian>Balistica Avanzata</Italian>
<Japanese>アドバンスド バリスティックス</Japanese> <Japanese>アドバンスド バリスティックス</Japanese>
<Korean>고급 탄도학</Korean> <Korean>고급 탄도학</Korean>
<Chinese>先進彈道系統</Chinese>
<Chinesesimp>先进弹道系统</Chinesesimp>
</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>
@ -70,6 +78,8 @@
<Italian>Abilita Balistica Avanzata</Italian> <Italian>Abilita Balistica Avanzata</Italian>
<Japanese>アドバンスド バリスティックスを有効化</Japanese> <Japanese>アドバンスド バリスティックスを有効化</Japanese>
<Korean>고급 탄도학을 적용합니다</Korean> <Korean>고급 탄도학을 적용합니다</Korean>
<Chinese>啟用先進彈道系統</Chinese>
<Chinesesimp>启用先进弹道系统</Chinesesimp>
</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>
@ -84,6 +94,8 @@
<Italian>Abilita per Tiratori Scelti</Italian> <Italian>Abilita per Tiratori Scelti</Italian>
<Japanese>狙撃手へ有効化</Japanese> <Japanese>狙撃手へ有効化</Japanese>
<Korean>저격수만 적용</Korean> <Korean>저격수만 적용</Korean>
<Chinese>啟用給狙擊手</Chinese>
<Chinesesimp>启用给狙击手</Chinesesimp>
</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>
@ -98,6 +110,8 @@
<Italian>Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale)</Italian> <Italian>Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale)</Italian>
<Japanese>非ローカルの狙撃手 (高倍率スコープを使っている場合)へアドバンスド バリスティックスを有効化します</Japanese> <Japanese>非ローカルの狙撃手 (高倍率スコープを使っている場合)へアドバンスド バリスティックスを有効化します</Japanese>
<Korean>고급 탄도학을 비-저격수 인원에게도 적용합니다(고성능 조준경을 사용시)</Korean> <Korean>고급 탄도학을 비-저격수 인원에게도 적용합니다(고성능 조준경을 사용시)</Korean>
<Chinese>啟用先進彈道系統給非本地狙擊手(當使用高倍率光學瞄鏡時)</Chinese>
<Chinesesimp>启用先进弹道系统给非本地狙击手(当使用高倍率光学瞄镜时)</Chinesesimp>
</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>
@ -112,6 +126,8 @@
<Italian>Abilita per Membri del Gruppo</Italian> <Italian>Abilita per Membri del Gruppo</Italian>
<Japanese>グループ メンバーへ有効化</Japanese> <Japanese>グループ メンバーへ有効化</Japanese>
<Korean>그룹 멤버도 적용</Korean> <Korean>그룹 멤버도 적용</Korean>
<Chinese>啟用給小隊成員</Chinese>
<Chinesesimp>启用给小队成员</Chinesesimp>
</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>
@ -126,6 +142,8 @@
<Italian>Abilita Balistica Avanzata per Membri non locali del Gruppo</Italian> <Italian>Abilita Balistica Avanzata per Membri non locali del Gruppo</Italian>
<Japanese>非ローカルのグループ メンバーへアドバンスド バリスティックスを有効化します</Japanese> <Japanese>非ローカルのグループ メンバーへアドバンスド バリスティックスを有効化します</Japanese>
<Korean>고급 탄도학을 비-그룹멤버에게도 적용합니다</Korean> <Korean>고급 탄도학을 비-그룹멤버에게도 적용합니다</Korean>
<Chinese>啟用先進彈道系統給非本地小隊成員</Chinese>
<Chinesesimp>启用先进弹道系统给非本地小队成员</Chinesesimp>
</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>
@ -140,6 +158,8 @@
<Italian>Abilita per tutti</Italian> <Italian>Abilita per tutti</Italian>
<Japanese>全員に有効化</Japanese> <Japanese>全員に有効化</Japanese>
<Korean>모두에게 적용</Korean> <Korean>모두에게 적용</Korean>
<Chinese>啟用給所有人</Chinese>
<Chinesesimp>启用给所有人</Chinesesimp>
</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>
@ -151,9 +171,11 @@
<French>Active la balistique avancée pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French> <French>Active la balistique avancée pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian> <Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
<Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian> <Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian>
<Italian>Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe degradare le prestazioni durante scontri intensi in multiplayer)</Italian> <Italian>Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe ridurre le prestazioni durante scontri intensi in multiplayer)</Italian>
<Japanese>非ローカルの全プレイヤーへアドバンスド バリスティックスを有効化します (マルチプレイで大規模な銃撃戦がおこなわれると、動作の低下を招きます)</Japanese> <Japanese>非ローカルの全プレイヤーへアドバンスド バリスティックスを有効化します (マルチプレイで大規模な銃撃戦がおこなわれると、動作の低下を招きます)</Japanese>
<Korean>고급 탄도학을 모든 비-로컬그룹에게도 적용합니다(적용 후 대규모 전투시 성능하락을 유발할 수 있습니다)</Korean> <Korean>고급 탄도학을 모든 비-로컬그룹에게도 적용합니다(적용 후 대규모 전투시 성능하락을 유발할 수 있습니다)</Korean>
<Chinese>啟用先進彈道系統給所有非本地玩家 (啟用此功能後,在多人連線大量交火時可能會降低效能)</Chinese>
<Chinesesimp>启用先进弹道系统给所有非本地玩家 (启用此功能后,在多人连线大量交火时可能会降低效能)</Chinesesimp>
</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>
@ -168,6 +190,8 @@
<Italian>Sempre abilitato per Membri del Gruppo</Italian> <Italian>Sempre abilitato per Membri del Gruppo</Italian>
<Japanese>常にグループ メンバーへ有効化</Japanese> <Japanese>常にグループ メンバーへ有効化</Japanese>
<Korean>그룹 멤버에게 항상 적용</Korean> <Korean>그룹 멤버에게 항상 적용</Korean>
<Chinese>永遠啟用給小隊成員</Chinese>
<Chinesesimp>永远启用给小队成员</Chinesesimp>
</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>
@ -179,9 +203,11 @@
<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> <Italian>Abilita sempre Balistica Avanzata quando un membro del gruppo spara</Italian>
<Japanese>グループ メンバーが射撃した時、常にアドバンスド バリスティックスを有効化します</Japanese> <Japanese>グループ メンバーが射撃した時、常にアドバンスド バリスティックスを有効化します</Japanese>
<Korean>그룹 멤버가 발사시 항상 고급 탄도학을 적용합니다</Korean> <Korean>그룹 멤버가 발사시 항상 고급 탄도학을 적용합니다</Korean>
<Chinese>當小隊成員開火時,永遠啟用先進彈道系統</Chinese>
<Chinesesimp>当小队成员开火时,永远启用先进弹道系统</Chinesesimp>
</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>
@ -196,6 +222,8 @@
<Italian>Disabilita in modalità di fuoco automatico</Italian> <Italian>Disabilita in modalità di fuoco automatico</Italian>
<Japanese>フルオートでは無効化</Japanese> <Japanese>フルオートでは無効化</Japanese>
<Korean>조정간 자동시 비활성화</Korean> <Korean>조정간 자동시 비활성화</Korean>
<Chinese>在全自動模式時關閉</Chinese>
<Chinesesimp>在全自动模式时关闭</Chinesesimp>
</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>
@ -210,6 +238,8 @@
<Italian>Disabilita Balistica Avanzata durante fuoco automatico</Italian> <Italian>Disabilita Balistica Avanzata durante fuoco automatico</Italian>
<Japanese>フルオートで射撃中ではアドバンスド バリスティックスを無効化します</Japanese> <Japanese>フルオートで射撃中ではアドバンスド バリスティックスを無効化します</Japanese>
<Korean>조정간 자동시 고급 탄도학을 비활성화 합니다</Korean> <Korean>조정간 자동시 고급 탄도학을 비활성화 합니다</Korean>
<Chinese>在全自動模式開火時,關閉先進彈道系統</Chinese>
<Chinesesimp>在全自动模式开火时,关闭先进弹道系统</Chinesesimp>
</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>
@ -224,6 +254,8 @@
<Italian>Abilita simulazione della temperatura delle munizioni</Italian> <Italian>Abilita simulazione della temperatura delle munizioni</Italian>
<Japanese>弾薬の温度シミュレーションを有効化</Japanese> <Japanese>弾薬の温度シミュレーションを有効化</Japanese>
<Korean>탄약 온도 구현 적용</Korean> <Korean>탄약 온도 구현 적용</Korean>
<Chinese>啟用彈藥溫度模擬系統</Chinese>
<Chinesesimp>启用弹药温度模拟系统</Chinesesimp>
</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>
@ -235,9 +267,11 @@
<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> <Italian>La velocità dello sparo varia a seconda della temperatura delle munizioni</Italian>
<Japanese>弾薬の温度により初速値を変化させます</Japanese> <Japanese>弾薬の温度により初速値を変化させます</Japanese>
<Korean>탄약 온도에 비례해 총구 속도가 달라집니다</Korean> <Korean>탄약 온도에 비례해 총구 속도가 달라집니다</Korean>
<Chinese>子彈初速將隨彈藥溫度而有所變化</Chinese>
<Chinesesimp>子弹初速将随弹药温度而有所变化</Chinesesimp>
</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>
@ -252,6 +286,8 @@
<Italian>Abilita simulazione della lunghezza della canna</Italian> <Italian>Abilita simulazione della lunghezza della canna</Italian>
<Japanese>銃身長のシミュレーションを有効化</Japanese> <Japanese>銃身長のシミュレーションを有効化</Japanese>
<Korean>총열 길이 구현 적용</Korean> <Korean>총열 길이 구현 적용</Korean>
<Chinese>啟用槍管長度模擬系統</Chinese>
<Chinesesimp>启用枪管长度模拟系统</Chinesesimp>
</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>
@ -263,9 +299,11 @@
<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> <Italian>La velocità di sparo varia a seconda della lunghezza della canna</Italian>
<Japanese>銃身長により初速値を変化させます</Japanese> <Japanese>銃身長により初速値を変化させます</Japanese>
<Korean>총구 속도가 총열에 비례해 달라집니다</Korean> <Korean>총구 속도가 총열에 비례해 달라집니다</Korean>
<Chinese>子彈初速將隨槍管長度而有所變化</Chinese>
<Chinesesimp>子弹初速将随枪管长度而有所变化</Chinesesimp>
</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>
@ -277,9 +315,11 @@
<French>Activer l'effet balle traçante</French> <French>Activer l'effet balle 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> <Italian>Abilita effetto dei Proiettili Traccianti</Italian>
<Japanese>弾丸の痕跡表示を有効化</Japanese> <Japanese>弾丸の痕跡表示を有効化</Japanese>
<Korean>예광탄 효과 적용</Korean> <Korean>예광탄 효과 적용</Korean>
<Chinese>啟用曳光彈效果</Chinese>
<Chinesesimp>启用曳光弹效果</Chinesesimp>
</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>
@ -291,9 +331,11 @@
<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> <Italian>Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale)</Italian>
<Japanese>大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません)</Japanese> <Japanese>大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません)</Japanese>
<Korean>대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다)</Korean> <Korean>대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다)</Korean>
<Chinese>啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到)</Chinese>
<Chinesesimp>启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到)</Chinesesimp>
</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>
@ -308,6 +350,8 @@
<Italian>Intervallo Simulazione</Italian> <Italian>Intervallo Simulazione</Italian>
<Japanese>シミュレーション間隔</Japanese> <Japanese>シミュレーション間隔</Japanese>
<Korean>구현 간격</Korean> <Korean>구현 간격</Korean>
<Chinese>模擬間隔</Chinese>
<Chinesesimp>模拟间隔</Chinesesimp>
</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>
@ -322,6 +366,8 @@
<Italian>Definisce l'intervallo tra ogni step di calcolo</Italian> <Italian>Definisce l'intervallo tra ogni step di calcolo</Italian>
<Japanese>各計算ごとの間隔を定義します</Japanese> <Japanese>各計算ごとの間隔を定義します</Japanese>
<Korean>각 계산 단위의 간격을 정의합니다</Korean> <Korean>각 계산 단위의 간격을 정의합니다</Korean>
<Chinese>定義每個模擬計算之間的時間間隔</Chinese>
<Chinesesimp>定义每个模拟计算之间的时间间隔</Chinesesimp>
</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>
@ -336,6 +382,8 @@
<Italian>Raggio Simulazione</Italian> <Italian>Raggio Simulazione</Italian>
<Japanese>シミュレーションの適用範囲</Japanese> <Japanese>シミュレーションの適用範囲</Japanese>
<Korean>구현 범위</Korean> <Korean>구현 범위</Korean>
<Chinese>模擬半徑</Chinese>
<Chinesesimp>模拟半径</Chinesesimp>
</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>
@ -350,6 +398,8 @@
<Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian> <Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian>
<Japanese>プレイヤーの周囲にアドバンスド バリスティックスによる弾道を適用させる範囲を半径で定義します (メートル)</Japanese> <Japanese>プレイヤーの周囲にアドバンスド バリスティックスによる弾道を適用させる範囲を半径で定義します (メートル)</Japanese>
<Korean>플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터)</Korean> <Korean>플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터)</Korean>
<Chinese>以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍</Chinese>
<Chinesesimp>以玩家的半径距离(公尺)定义先进弹道系统启用范围</Chinesesimp>
</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>
@ -364,6 +414,8 @@
<Italian>Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata</Italian> <Italian>Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata</Italian>
<Japanese>このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。</Japanese> <Japanese>このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。</Japanese>
<Korean>이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다.</Korean> <Korean>이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다.</Korean>
<Chinese>該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響.</Chinese>
<Chinesesimp>该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响.</Chinesesimp>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -14,12 +14,15 @@ if (!hasInterface) exitWith {};
// - GVAR updating and initialization ----------------------------------------- // - GVAR updating and initialization -----------------------------------------
["unit", FUNC(handlePlayerChanged), true] call CBA_fnc_addPlayerEventHandler; ["unit", FUNC(handlePlayerChanged), true] call CBA_fnc_addPlayerEventHandler;
private _fnc_showStaminaBar = { ["visibleMap", {
params ["", "_visibleMap"]; // command visibleMap is updated one frame later
private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
_staminaBarContainer ctrlShow ((!_visibleMap) && {(vehicle ACE_player) == ACE_player});
}, true] call CBA_fnc_addPlayerEventHandler;
["vehicle", {
private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
_staminaBarContainer ctrlShow ((!visibleMap) && {(vehicle ACE_player) == ACE_player}); _staminaBarContainer ctrlShow ((!visibleMap) && {(vehicle ACE_player) == ACE_player});
}; }, true] call CBA_fnc_addPlayerEventHandler;
["visibleMap", _fnc_showStaminaBar, true] call CBA_fnc_addPlayerEventHandler;
["vehicle", _fnc_showStaminaBar, true] call CBA_fnc_addPlayerEventHandler;
// - Duty factors ------------------------------------------------------------- // - Duty factors -------------------------------------------------------------
if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then { if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then {

View File

@ -8,6 +8,11 @@
* *
* Return Value: * Return Value:
* None * None
*
* Example:
* ["ID", 5] call ace_advanced_fatigue_fnc_addDutyFactor
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params [["_id", "", [""]], ["_factor", 1, [0, {}]]]; params [["_id", "", [""]], ["_factor", 1, [0, {}]]];

View File

@ -7,6 +7,11 @@
* *
* Return Value: * Return Value:
* None * None
*
* Example:
* [DISPLAY] call ace_advanced_fatigue_fnc_createStaminaBar
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_display"]; params ["_display"];

View File

@ -21,6 +21,7 @@ private _duty = 1;
private _animType = _animName select [1, 3]; private _animType = _animName select [1, 3];
GVAR(isSwimming) = false; GVAR(isSwimming) = false;
GVAR(isProne) = (stance _unit) == "PRONE";
if (_animType in ["idl", "mov", "adj"]) then { if (_animType in ["idl", "mov", "adj"]) then {
switch (_animName select [5, 3]) do { switch (_animName select [5, 3]) do {
@ -29,6 +30,7 @@ if (_animType in ["idl", "mov", "adj"]) then {
}; };
case ("pne"): { case ("pne"): {
_duty = 10; _duty = 10;
GVAR(isProne) = true; // #4880 - Unarmed sprint->prone has wrong `stance`
}; };
default { default {
_duty = 1; _duty = 1;

View File

@ -18,18 +18,8 @@
#include "script_component.hpp" #include "script_component.hpp"
params ["_unit", "_velocity"]; params ["_unit", "_velocity"];
private _virtualLoad = 0; private _gearMass = ((_unit getVariable [QEGVAR(movement,totalLoad), loadAbs _unit]) / 22.046) * GVAR(loadFactor);
{
_virtualLoad = _virtualLoad + (_x getVariable [QEGVAR(movement,vLoad), 0]);
} forEach [
_unit,
uniformContainer _unit,
vestContainer _unit,
backpackContainer _unit
];
private _gearMass = ((loadAbs _unit + _virtualLoad) * 0.1 / 2.2046) * GVAR(loadFactor);
private _terrainFactor = 1;
private _terrainAngle = asin (1 - ((surfaceNormal getPosASL _unit) select 2)); private _terrainAngle = asin (1 - ((surfaceNormal getPosASL _unit) select 2));
private _terrainGradient = (_terrainAngle / 45 min 1) * 5 * GVAR(terrainGradientFactor); private _terrainGradient = (_terrainAngle / 45 min 1) * 5 * GVAR(terrainGradientFactor);
private _duty = GVAR(animDuty); private _duty = GVAR(animDuty);
@ -50,12 +40,12 @@ if (_velocity > 2) then {
( (
2.10 * SIM_BODYMASS 2.10 * SIM_BODYMASS
+ 4 * (SIM_BODYMASS + _gearMass) * ((_gearMass / SIM_BODYMASS) ^ 2) + 4 * (SIM_BODYMASS + _gearMass) * ((_gearMass / SIM_BODYMASS) ^ 2)
+ _terrainFactor * (SIM_BODYMASS + _gearMass) * (0.90 * (_velocity ^ 2) + 0.66 * _velocity * _terrainGradient) + (SIM_BODYMASS + _gearMass) * (0.90 * (_velocity ^ 2) + 0.66 * _velocity * _terrainGradient)
) * 0.23 * _duty ) * 0.23 * _duty
} else { } else {
( (
1.05 * SIM_BODYMASS 1.05 * SIM_BODYMASS
+ 4 * (SIM_BODYMASS + _gearMass) * ((_gearMass / SIM_BODYMASS) ^ 2) + 4 * (SIM_BODYMASS + _gearMass) * ((_gearMass / SIM_BODYMASS) ^ 2)
+ _terrainFactor * (SIM_BODYMASS + _gearMass) * (1.15 * (_velocity ^ 2) + 0.66 * _velocity * _terrainGradient) + (SIM_BODYMASS + _gearMass) * (1.15 * (_velocity ^ 2) + 0.66 * _velocity * _terrainGradient)
) * 0.23 * _duty ) * 0.23 * _duty
}; };

View File

@ -8,6 +8,11 @@
* *
* Return Value: * Return Value:
* None * None
*
* Example:
* [newbob, oldbob] call ace_advanced_fatigue_fnc_handlePlayerChanged
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_newUnit", "_oldUnit"]; params ["_newUnit", "_oldUnit"];
@ -54,7 +59,6 @@ GVAR(peakPower) = VO2MAX_STRENGTH * GVAR(VO2MaxPower);
GVAR(ae1PathwayPower) = GVAR(peakPower) / (13.3 + 16.7 + 113.3) * 13.3 * ANTPERCENT ^ 1.28 * 1.362; GVAR(ae1PathwayPower) = GVAR(peakPower) / (13.3 + 16.7 + 113.3) * 13.3 * ANTPERCENT ^ 1.28 * 1.362;
GVAR(ae2PathwayPower) = GVAR(peakPower) / (13.3 + 16.7 + 113.3) * 16.7 * ANTPERCENT ^ 1.28 * 1.362; GVAR(ae2PathwayPower) = GVAR(peakPower) / (13.3 + 16.7 + 113.3) * 16.7 * ANTPERCENT ^ 1.28 * 1.362;
GVAR(anPathwayPower) = GVAR(peakPower) - _ae1PathwayPower - _ae2PathwayPower;
GVAR(ppeBlackoutLast) = 100; GVAR(ppeBlackoutLast) = 100;
GVAR(lastBreath) = 0; GVAR(lastBreath) = 0;

View File

@ -7,6 +7,11 @@
* *
* Return Value: * Return Value:
* None * None
*
* Example:
* [0.5] call ace_advanced_fatigue_fnc_handleStaminaBar
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_stamina"]; params ["_stamina"];

View File

@ -7,6 +7,11 @@
* *
* Return Value: * Return Value:
* None * None
*
* Example:
* [] call ace_advanced_fatigue_fnc_mainLoop
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
if (!alive ACE_player) exitWith { // Dead people don't breath, Will also handle null (Map intros) if (!alive ACE_player) exitWith { // Dead people don't breath, Will also handle null (Map intros)
@ -20,7 +25,7 @@ private _currentWork = REE;
private _currentSpeed = (vectorMagnitude (velocity ACE_player)) min 6; private _currentSpeed = (vectorMagnitude (velocity ACE_player)) min 6;
// fix #4481. Diving to the ground is recorded as PRONE stance with running speed velocity. Cap maximum speed to fix. // fix #4481. Diving to the ground is recorded as PRONE stance with running speed velocity. Cap maximum speed to fix.
if (stance ACE_player == "PRONE") then { if (GVAR(isProne)) then {
_currentSpeed = _currentSpeed min 1.5; _currentSpeed = _currentSpeed min 1.5;
}; };
@ -32,11 +37,11 @@ if ((vehicle ACE_player == ACE_player) && {_currentSpeed > 0.1} && {isTouchingGr
// Calculate muscle damage increase // Calculate muscle damage increase
// Note: Muscle damage recovery is ignored as it takes multiple days // Note: Muscle damage recovery is ignored as it takes multiple days
GVAR(muscleDamage) = GVAR(muscleDamage) + (_currentWork / GVAR(peakPower)) ^ 3.2 * 0.00004; GVAR(muscleDamage) = GVAR(muscleDamage) + (_currentWork / GVAR(peakPower)) ^ 3.2 * 0.00004;
private _muscleIntegrity = 1 - GVAR(muscleDamage); private _muscleIntegritySqrt = sqrt (1 - GVAR(muscleDamage));
// Calculate available power // Calculate available power
private _ae1PathwayPowerFatigued = GVAR(ae1PathwayPower) * sqrt (GVAR(ae1Reserve) / AE1_MAXRESERVE) * OXYGEN * sqrt _muscleIntegrity; private _ae1PathwayPowerFatigued = GVAR(ae1PathwayPower) * sqrt (GVAR(ae1Reserve) / AE1_MAXRESERVE) * OXYGEN * _muscleIntegritySqrt;
private _ae2PathwayPowerFatigued = GVAR(ae2PathwayPower) * sqrt (GVAR(ae2Reserve) / AE2_MAXRESERVE) * OXYGEN * sqrt _muscleIntegrity; private _ae2PathwayPowerFatigued = GVAR(ae2PathwayPower) * sqrt (GVAR(ae2Reserve) / AE2_MAXRESERVE) * OXYGEN * _muscleIntegritySqrt;
// Calculate how much power is consumed from each reserve // Calculate how much power is consumed from each reserve
private _ae1Power = _currentWork min _ae1PathwayPowerFatigued; private _ae1Power = _currentWork min _ae1PathwayPowerFatigued;

View File

@ -7,6 +7,11 @@
* *
* Return Value: * Return Value:
* None * None
*
* Example:
* [MODULE] call ace_advanced_fatigue_fnc_moduleSettings
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_logic"]; params ["_logic"];

View File

@ -7,6 +7,11 @@
* *
* Return Value: * Return Value:
* None * None
*
* Example:
* ["ID"] call ace_advanced_fatigue_fnc_removeDutyFactor
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params [["_id", "", [""]]]; params [["_id", "", [""]]];

View File

@ -7,6 +7,10 @@
<Japanese>パフォーマンス要因</Japanese> <Japanese>パフォーマンス要因</Japanese>
<Polish>Współczynnik wydolności</Polish> <Polish>Współczynnik wydolności</Polish>
<Korean>성능 요인</Korean> <Korean>성능 요인</Korean>
<French>Facteur de performance</French>
<Italian>Fattore Prestazione</Italian>
<Chinese>體力值</Chinese>
<Chinesesimp>体力值</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_Description"> <Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_Description">
<English>Influences the overall performance of all players with no custom factor. Higher means better.</English> <English>Influences the overall performance of all players with no custom factor. Higher means better.</English>
@ -14,6 +18,10 @@
<Japanese>非カスタム要因をもつ全プレイヤーへ全体的に動作を影響させます。高いほど影響がでます。</Japanese> <Japanese>非カスタム要因をもつ全プレイヤーへ全体的に動作を影響させます。高いほど影響がでます。</Japanese>
<Polish>Wpływa na ogólną wydolność organizmu u wszystkich graczy bez ustawionego niestandardowego współczynnika. Więcej znaczy lepiej.</Polish> <Polish>Wpływa na ogólną wydolność organizmu u wszystkich graczy bez ustawionego niestandardowego współczynnika. Więcej znaczy lepiej.</Polish>
<Korean>모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean> <Korean>모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean>
<French>Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances.</French>
<Italian>Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore.</Italian>
<Chinese>影響所有玩家的體力表現. 值越高代表體力越好.</Chinese>
<Chinesesimp>影响所有玩家的体力表现. 值越高代表体力越好.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_EdenDescription"> <Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_EdenDescription">
<English>Influences the overall performance of this unit. Higher means better.</English> <English>Influences the overall performance of this unit. Higher means better.</English>
@ -21,6 +29,10 @@
<Japanese>非カスタム要因をもつ全プレイヤーへ全体的に動作を影響させます。高いほど影響がでます。</Japanese> <Japanese>非カスタム要因をもつ全プレイヤーへ全体的に動作を影響させます。高いほど影響がでます。</Japanese>
<Polish>Wpływa na ogólną wydolność tej jednostki. Więcej znaczy lepiej.</Polish> <Polish>Wpływa na ogólną wydolność tej jednostki. Więcej znaczy lepiej.</Polish>
<Korean>모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean> <Korean>모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean>
<French>Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances.</French>
<Italian>Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore.</Italian>
<Chinese>影響這個單位的體力表現. 值越高代表體力越好.</Chinese>
<Chinesesimp>影响这个单位的体力表现. 值越高代表体力越好.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor"> <Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor">
<English>Recovery Factor</English> <English>Recovery Factor</English>
@ -28,6 +40,10 @@
<Japanese>回復要因</Japanese> <Japanese>回復要因</Japanese>
<Polish>Współczynnik regeneracji</Polish> <Polish>Współczynnik regeneracji</Polish>
<Korean>회복 요인</Korean> <Korean>회복 요인</Korean>
<French>Facteur de récupération</French>
<Italian>Fattore Recupero</Italian>
<Chinese>回復值</Chinese>
<Chinesesimp>回复值</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor_Description"> <Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor_Description">
<English>Changes how fast the player recovers when resting. Higher is faster.</English> <English>Changes how fast the player recovers when resting. Higher is faster.</English>
@ -35,6 +51,10 @@
<Japanese>休憩時は、プレイヤーが早く回復します。高いほど早くなります。</Japanese> <Japanese>休憩時は、プレイヤーが早く回復します。高いほど早くなります。</Japanese>
<Polish>Wpływa na czas regeneracji podczas postoju. Więcej znaczy szybciej.</Polish> <Polish>Wpływa na czas regeneracji podczas postoju. Więcej znaczy szybciej.</Polish>
<Korean>얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean> <Korean>얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean>
<French>Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide.</French>
<Italian>Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore.</Italian>
<Chinese>決定玩家休息多久就能回復體力. 值越高恢復越快.</Chinese>
<Chinesesimp>决定玩家休息多久就能回复体力. 值越高恢复越快.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor"> <Key ID="STR_ACE_Advanced_Fatigue_LoadFactor">
<English>Load Factor</English> <English>Load Factor</English>
@ -42,6 +62,10 @@
<Japanese>負荷要因</Japanese> <Japanese>負荷要因</Japanese>
<Polish>Współczynnik masy ekwipunku</Polish> <Polish>Współczynnik masy ekwipunku</Polish>
<Korean>부담 요인</Korean> <Korean>부담 요인</Korean>
<French>Facteur d'encombrement</French>
<Italian>Fattore Caricamento</Italian>
<Chinese>負重量</Chinese>
<Chinesesimp>负重量</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor_Description"> <Key ID="STR_ACE_Advanced_Fatigue_LoadFactor_Description">
<English>Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence.</English> <English>Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence.</English>
@ -49,6 +73,10 @@
<Japanese>重量によりプレイヤーの動作への影響下増加したり、低下します。装備を持っていない場合、影響はしません。</Japanese> <Japanese>重量によりプレイヤーの動作への影響下増加したり、低下します。装備を持っていない場合、影響はしません。</Japanese>
<Polish>Zmniejsza lub zwiększa wpływ ciężaru ekwipunku na wydolność gracza. Zero oznacza kompletny brak wpływu na wydolność.</Polish> <Polish>Zmniejsza lub zwiększa wpływ ciężaru ekwipunku na wydolność gracza. Zero oznacza kompletny brak wpływu na wydolność.</Polish>
<Korean>플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다.</Korean> <Korean>플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다.</Korean>
<French>Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances.</French>
<Italian>Incrementa o decrementa quanto il peso influenza le prestazioni dei giocatori. Zero significa che il peso dell'equipaggiamento non ha alcuna influenza nelle prestazioni.</Italian>
<Chinese>增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現.</Chinese>
<Chinesesimp>增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor"> <Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor">
<English>Terrain Gradient Factor</English> <English>Terrain Gradient Factor</English>
@ -56,6 +84,10 @@
<Japanese>地形の勾配による要因</Japanese> <Japanese>地形の勾配による要因</Japanese>
<Polish>Współczynnik terenu</Polish> <Polish>Współczynnik terenu</Polish>
<Korean>지형 경사도 요인</Korean> <Korean>지형 경사도 요인</Korean>
<French>Facteur d'inclinaison du terrain</French>
<Italian>Fattore Pendenza Terreno</Italian>
<Chinese>地形陡峭影響值</Chinese>
<Chinesesimp>地形陡峭影响值</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor_Description"> <Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor_Description">
<English>Sets how much steep terrain increases stamina loss. Higher means higher stamina loss.</English> <English>Sets how much steep terrain increases stamina loss. Higher means higher stamina loss.</English>
@ -63,6 +95,10 @@
<Japanese>地形によって影響する体力の消費量を決定します。高数値ではより体力を消費します。</Japanese> <Japanese>地形によって影響する体力の消費量を決定します。高数値ではより体力を消費します。</Japanese>
<Polish>Wpływa na to w jakim stopniu stromy teren wpływa na utratę wytrzymałości. Więcej oznacza szybszą utratę wytrzymałości.</Polish> <Polish>Wpływa na to w jakim stopniu stromy teren wpływa na utratę wytrzymałości. Więcej oznacza szybszą utratę wytrzymałości.</Polish>
<Korean>경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다.</Korean> <Korean>경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다.</Korean>
<French>Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante.</French>
<Italian>Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa.</Italian>
<Chinese>設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快.</Chinese>
<Chinesesimp>设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled"> <Key ID="STR_ACE_Advanced_Fatigue_Enabled">
<English>Enabled</English> <English>Enabled</English>
@ -70,6 +106,10 @@
<Japanese>有効化</Japanese> <Japanese>有効化</Japanese>
<Polish>Włączone</Polish> <Polish>Włączone</Polish>
<Korean>활성화</Korean> <Korean>활성화</Korean>
<French>Activé</French>
<Italian>Abilitato</Italian>
<Chinese>啟用</Chinese>
<Chinesesimp>启用</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled_Description"> <Key ID="STR_ACE_Advanced_Fatigue_Enabled_Description">
<English>Enables/disables Advanced Fatigue.</English> <English>Enables/disables Advanced Fatigue.</English>
@ -77,6 +117,10 @@
<Japanese>アドバンスド疲労の有効化と無効化</Japanese> <Japanese>アドバンスド疲労の有効化と無効化</Japanese>
<Polish>Włącza/wyłącza zaawansowaną wytrzymałość</Polish> <Polish>Włącza/wyłącza zaawansowaną wytrzymałość</Polish>
<Korean>고급 피로도 활성화/비활성화</Korean> <Korean>고급 피로도 활성화/비활성화</Korean>
<French>Active/désactive la fatigue avancée.</French>
<Italian>Abilita/disabilita la Fatica Avanzata.</Italian>
<Chinese>啟用/關閉進階體力.</Chinese>
<Chinesesimp>启用/关闭进阶体力.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar"> <Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar">
<English>Show stamina bar</English> <English>Show stamina bar</English>
@ -84,6 +128,10 @@
<Japanese>体力バーを表示</Japanese> <Japanese>体力バーを表示</Japanese>
<Polish>Pokaż pasek wytrzymałości</Polish> <Polish>Pokaż pasek wytrzymałości</Polish>
<Korean>피로도 막대</Korean> <Korean>피로도 막대</Korean>
<French>Afficher la barre d'endurance</French>
<Italian>Mostra barra stamina</Italian>
<Chinese>顯示體力條</Chinese>
<Chinesesimp>显示体力条</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar_Description"> <Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar_Description">
<English>Shows the stamina bar.</English> <English>Shows the stamina bar.</English>
@ -91,6 +139,10 @@
<Japanese>体力バーを表示します。</Japanese> <Japanese>体力バーを表示します。</Japanese>
<Polish>Pokazuje pasek wytrzymałości.</Polish> <Polish>Pokazuje pasek wytrzymałości.</Polish>
<Korean>피로도 막대를 보여줍니다.</Korean> <Korean>피로도 막대를 보여줍니다.</Korean>
<French>Affiche la barre d'endurance.</French>
<Italian>Mostra la barra della stamina.</Italian>
<Chinese>顯示體力條.</Chinese>
<Chinesesimp>显示体力条.</Chinesesimp>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -21,6 +21,7 @@ GVAR(ammoMagLookup) = call CBA_fnc_createNamespace;
["ACE3 Weapons", QGVAR(prepare), localize LSTRING(Prepare), { ["ACE3 Weapons", QGVAR(prepare), localize LSTRING(Prepare), {
// Condition // Condition
if (!([ACE_player] call FUNC(canPrepare))) exitWith {false}; if (!([ACE_player] call FUNC(canPrepare))) exitWith {false};
if (EGVAR(common,isReloading)) exitWith {true};
// Statement // Statement
[ACE_player] call FUNC(prepare); [ACE_player] call FUNC(prepare);
@ -67,7 +68,8 @@ GVAR(ammoMagLookup) = call CBA_fnc_createNamespace;
}] call CBA_fnc_addPlayerEventhandler; }] call CBA_fnc_addPlayerEventhandler;
["visibleMap", { ["visibleMap", {
if (visibleMap && {ACE_player getVariable [QGVAR(inHand), false]}) then { params ["", "_visibleMap"]; // command visibleMap is updated one frame later
if (_visibleMap && {ACE_player getVariable [QGVAR(inHand), false]}) then {
[ACE_player, "Opened Map"] call FUNC(exitThrowMode); [ACE_player, "Opened Map"] call FUNC(exitThrowMode);
}; };
}] call CBA_fnc_addPlayerEventhandler; }] call CBA_fnc_addPlayerEventhandler;
@ -92,6 +94,7 @@ GVAR(ammoMagLookup) = call CBA_fnc_createNamespace;
// Set last thrown time on Vanilla Throwing and Advanced Throwing // Set last thrown time on Vanilla Throwing and Advanced Throwing
["ace_firedPlayer", { ["ace_firedPlayer", {
//IGNORE_PRIVATE_WARNING ["_unit", "_weapon"];
if (_weapon == "Throw") then { if (_weapon == "Throw") then {
_unit setVariable [QGVAR(lastThrownTime), CBA_missionTime]; _unit setVariable [QGVAR(lastThrownTime), CBA_missionTime];
}; };
@ -114,8 +117,7 @@ addMissionEventHandler ["Draw3D", { // Blue is predicted before throw, red is re
drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [0,0,1,1], _newTrajAGL, 1, 1, 0, "", 2]; drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [0,0,1,1], _newTrajAGL, 1, 1, 0, "", 2];
} forEach GVAR(predictedPath); } forEach GVAR(predictedPath);
{ {
_newTrajAGL = _x; drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [1,0,0,1], _x, 1, 1, 0, "", 2];
drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [1,0,0,1], _newTrajAGL, 1, 1, 0, "", 2];
} forEach GVAR(flightPath) } forEach GVAR(flightPath)
}]; }];
#endif #endif

View File

@ -32,6 +32,5 @@ GVAR(enabled) &&
#endif #endif
{!(call EFUNC(common,isFeatureCameraActive))} && {!(call EFUNC(common,isFeatureCameraActive))} &&
{!EGVAR(common,isReloading)} &&
{[_unit, objNull, ["isNotInside", "isNotSitting"/*, "isNotOnLadder"*/]] call EFUNC(common,canInteractWith)} && // Ladder needs positioning fixes on throw {[_unit, objNull, ["isNotInside", "isNotSitting"/*, "isNotOnLadder"*/]] call EFUNC(common,canInteractWith)} && // Ladder needs positioning fixes on throw
{_unit call CBA_fnc_canUseWeapon} // Disable in non-FFV seats due to surface detection issues {_unit call CBA_fnc_canUseWeapon} // Disable in non-FFV seats due to surface detection issues

View File

@ -36,6 +36,11 @@ if (_throwable isEqualTo [] && {!_primed}) exitWith {
private _throwableMag = _throwable param [0, "#none"]; private _throwableMag = _throwable param [0, "#none"];
// If not primed, double check we actually have the magazine in inventory
if ((!_primed) && {!((_throwableMag in (uniformItems ACE_player)) || {_throwableMag in (vestItems ACE_player)} || {_throwableMag in (backpackItems ACE_player)})}) exitWith {
[ACE_player, "No valid throwable (glitched currentThrowable)"] call FUNC(exitThrowMode);
};
// Get correct throw power for primed grenade // Get correct throw power for primed grenade
if (_primed) then { if (_primed) then {
private _ammoType = typeOf _activeThrowable; private _ammoType = typeOf _activeThrowable;

View File

@ -32,6 +32,10 @@ if !(_unit getVariable [QGVAR(primed), false]) then {
_unit setVariable [QGVAR(lastThrownTime), CBA_missionTime]; _unit setVariable [QGVAR(lastThrownTime), CBA_missionTime];
// Fix floating for throwables without proper physics (eg. IR Grenade) // Fix floating for throwables without proper physics (eg. IR Grenade)
_activeThrowable setVelocity [0, 0, -0.1]; _activeThrowable setVelocity [0, 0, -0.1];
// Set thrower
private _instigator = (getShotParents _activeThrowable) param [1, _unit]; // getShotParents could be [] on replaced grenades (like IR chemlight)
[QEGVAR(common,setShotParents), [_activeThrowable, _unit, _instigator]] call CBA_fnc_serverEvent;
}; };
// Restore muzzle ammo (setAmmo 1 has no impact if no appliccable throwable in inventory) // Restore muzzle ammo (setAmmo 1 has no impact if no appliccable throwable in inventory)

View File

@ -13,8 +13,7 @@
* Example: * Example:
* [logic, [unit1, unit2], true] call ace_advanced_throwing_fnc_moduleInit * [logic, [unit1, unit2], true] call ace_advanced_throwing_fnc_moduleInit
* *
* Public: * Public: No
* No
*/ */
#include "script_component.hpp" #include "script_component.hpp"

View File

@ -54,6 +54,9 @@ deleteVehicle _activeThrowableOld;
_activeThrowable // projectile _activeThrowable // projectile
]] call CBA_fnc_globalEvent; ]] call CBA_fnc_globalEvent;
// Set prime instigator
[QEGVAR(common,setShotParents), [_activeThrowable, _unit, _unit]] call CBA_fnc_serverEvent;
if (_showHint) then { if (_showHint) then {
// Show primed hint // Show primed hint
private _displayNameShort = getText (configFile >> "CfgMagazines" >> _throwableMag >> "displayNameShort"); private _displayNameShort = getText (configFile >> "CfgMagazines" >> _throwableMag >> "displayNameShort");

View File

@ -7,7 +7,7 @@
* None * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_advanced_throwing_fnc_renderPickUpInteraction * call ace_advanced_throwing_fnc_renderPickUpInteraction

View File

@ -8,6 +8,10 @@
<Polish>Zaawansowane rzucanie</Polish> <Polish>Zaawansowane rzucanie</Polish>
<German>Erweitertes Wurfsystem</German> <German>Erweitertes Wurfsystem</German>
<Korean>고급 투척</Korean> <Korean>고급 투척</Korean>
<French>Lancé amélioré</French>
<Italian>Lancio Avanzato</Italian>
<Chinese>進階投擲</Chinese>
<Chinesesimp>进阶投掷</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Module_Description"> <Key ID="STR_ACE_Advanced_Throwing_Module_Description">
<English>Allows changing advanced throwing behaviour.</English> <English>Allows changing advanced throwing behaviour.</English>
@ -16,6 +20,10 @@
<Polish>Zezwala na zmianę zachowania zaawansowanego trybu rzucania.</Polish> <Polish>Zezwala na zmianę zachowania zaawansowanego trybu rzucania.</Polish>
<German>Erlaubt es, das Verhalten des erweiterten Wurfsystems zu ändern.</German> <German>Erlaubt es, das Verhalten des erweiterten Wurfsystems zu ändern.</German>
<Korean>고급 투척 행위를 허가합니다</Korean> <Korean>고급 투척 행위를 허가합니다</Korean>
<French>Permet de changer la configuration du lancé amélioré.</French>
<Italian>Permette il cambiamento della modalità di tiro.</Italian>
<Chinese>允許使用更多不同的投擲方式.</Chinese>
<Chinesesimp>允许使用更多不同的投掷方式.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_DisplayName"> <Key ID="STR_ACE_Advanced_Throwing_Enable_DisplayName">
<English>Enable Advanced Throwing</English> <English>Enable Advanced Throwing</English>
@ -24,6 +32,10 @@
<Polish>Aktywuj zaawansowane rzucanie</Polish> <Polish>Aktywuj zaawansowane rzucanie</Polish>
<German>Aktiviere erweitertes Wurfsystem</German> <German>Aktiviere erweitertes Wurfsystem</German>
<Korean>고급 투척 활성화 </Korean> <Korean>고급 투척 활성화 </Korean>
<French>Active le lancé amélioré</French>
<Italian>Abilita Lancio Avanzato</Italian>
<Chinese>啟用進階投擲</Chinese>
<Chinesesimp>启用进阶投掷</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_Description"> <Key ID="STR_ACE_Advanced_Throwing_Enable_Description">
<English>Enables advanced throwing system.</English> <English>Enables advanced throwing system.</English>
@ -32,6 +44,10 @@
<Polish>Aktywuje system zaawansowanego rzucania.</Polish> <Polish>Aktywuje system zaawansowanego rzucania.</Polish>
<German>Aktiviert das erweiterte Wurfsystem.</German> <German>Aktiviert das erweiterte Wurfsystem.</German>
<Korean>고급 투척을 활성화 합니다</Korean> <Korean>고급 투척을 활성화 합니다</Korean>
<French>Active le système de lancé amélioré.</French>
<Italian>Abilita il sistema di lancio avanzato.</Italian>
<Chinese>啟用進階投擲系統.</Chinese>
<Chinesesimp>启用进阶投掷系统.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_DisplayName"> <Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_DisplayName">
<English>Show Throw Arc</English> <English>Show Throw Arc</English>
@ -40,6 +56,10 @@
<Polish>Pokaż trasę lotu</Polish> <Polish>Pokaż trasę lotu</Polish>
<German>Zeige Wurfbogen</German> <German>Zeige Wurfbogen</German>
<Korean>투척 궤적 표시</Korean> <Korean>투척 궤적 표시</Korean>
<French>Afficher l'arc de lancé</French>
<Italian>Mostra Arco di Tiro</Italian>
<Chinese>顯示投擲軌道</Chinese>
<Chinesesimp>显示投掷轨道</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_Description"> <Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_Description">
<English>Enables visualization of the throw arc (where throwable will fly).</English> <English>Enables visualization of the throw arc (where throwable will fly).</English>
@ -48,6 +68,10 @@
<Polish>Wyświetla wizualizację trasy przelotu granatu.</Polish> <Polish>Wyświetla wizualizację trasy przelotu granatu.</Polish>
<German>Aktiviert die Visualisierung des Wurfbogens (wohin das Objekt geworfen werden wird).</German> <German>Aktiviert die Visualisierung des Wurfbogens (wohin das Objekt geworfen werden wird).</German>
<Korean>투척 궤도를 시각화 합니다(투척물이 어디로 갈지)</Korean> <Korean>투척 궤도를 시각화 합니다(투척물이 어디로 갈지)</Korean>
<French>Active la visualisation de l'arc de lancé (où l'objet lancé va atterrir).</French>
<Italian>Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà).</Italian>
<Chinese>顯示投擲軌道幫助投擲.</Chinese>
<Chinesesimp>显示投掷轨道帮助投掷.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_DisplayName"> <Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_DisplayName">
<English>Show Throwing Mouse Controls</English> <English>Show Throwing Mouse Controls</English>
@ -56,6 +80,10 @@
<Polish>Pokaż podpowiedzi sterowania myszą</Polish> <Polish>Pokaż podpowiedzi sterowania myszą</Polish>
<German>Zeige Maussteuerung beim Werfen</German> <German>Zeige Maussteuerung beim Werfen</German>
<Korean>마우스 조작 표시</Korean> <Korean>마우스 조작 표시</Korean>
<French>Afficher les contrôles à la souris du lancé</French>
<Italian>Mostra Comandi Mouse Lancio</Italian>
<Chinese>顯示滑鼠投擲控制提示</Chinese>
<Chinesesimp>显示滑鼠投掷控制提示</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_Description"> <Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_Description">
<English>Enables visual cues for mouse controls when throwable is prepared.</English> <English>Enables visual cues for mouse controls when throwable is prepared.</English>
@ -64,6 +92,10 @@
<Polish>Wyświetla podpowiedzi sterowania myszą kiedy obiekt miotany jest w ręku.</Polish> <Polish>Wyświetla podpowiedzi sterowania myszą kiedy obiekt miotany jest w ręku.</Polish>
<German>Aktiviert visuelle Hinweise zur Maussteuerung, wenn ein Objekt zum Werfen vorbereitet wird.</German> <German>Aktiviert visuelle Hinweise zur Maussteuerung, wenn ein Objekt zum Werfen vorbereitet wird.</German>
<Korean>투척물을 준비시 마우스 조작을 시각화해서 보여줍니다</Korean> <Korean>투척물을 준비시 마우스 조작을 시각화해서 보여줍니다</Korean>
<French>Active les aides visuels pour les controles à la souris lorsqu'un lancé est préparé.</French>
<Italian>Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto.</Italian>
<Chinese>開啟後會在準備投擲時, 顯示滑鼠相關操作.</Chinese>
<Chinesesimp>开启后会在准备投掷时, 显示滑鼠相关操作.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_DisplayName"> <Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_DisplayName">
<English>Enable Throwables Pick Up</English> <English>Enable Throwables Pick Up</English>
@ -72,6 +104,10 @@
<Polish>Zezwól na podnoszenie obiektów miotanych</Polish> <Polish>Zezwól na podnoszenie obiektów miotanych</Polish>
<German>Aktiviere Aufheben von Wurfobjekten</German> <German>Aktiviere Aufheben von Wurfobjekten</German>
<Korean>투척물 줍기 활성화</Korean> <Korean>투척물 줍기 활성화</Korean>
<French>Active la récupération des objets lancés</French>
<Italian>Abilita Raccogli Oggetti</Italian>
<Chinese>啟用可撿取地面投擲物</Chinese>
<Chinesesimp>启用可捡取地面投掷物</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_Description"> <Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_Description">
<English>Enables ability to pick up throwables from the ground.</English> <English>Enables ability to pick up throwables from the ground.</English>
@ -80,6 +116,10 @@
<Polish>Umożliwia podnoszenie obiektów miotanych z ziemi.</Polish> <Polish>Umożliwia podnoszenie obiektów miotanych z ziemi.</Polish>
<German>Aktiviert die Möglichkeit, geworfene Objekte wieder vom Boden aufzuheben.</German> <German>Aktiviert die Möglichkeit, geworfene Objekte wieder vom Boden aufzuheben.</German>
<Korean>땅에 떨어진 투척물을 주울 수 있게 해줍니다.</Korean> <Korean>땅에 떨어진 투척물을 주울 수 있게 해줍니다.</Korean>
<French>Active la capacité de récupérer les objets lancés sur le sol.</French>
<Italian>Abilita la possibilità di raccogliere un oggetto lanciabile da terra.</Italian>
<Chinese>啟用後, 可撿取地面上的投擲物.</Chinese>
<Chinesesimp>启用后, 可捡取地面上的投掷物.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_DisplayName"> <Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_DisplayName">
<English>Enable Attached Throwables Pick Up</English> <English>Enable Attached Throwables Pick Up</English>
@ -88,6 +128,10 @@
<Polish>Zezwól na podnoszenie przyczepionych obiektów miotanych</Polish> <Polish>Zezwól na podnoszenie przyczepionych obiektów miotanych</Polish>
<German>Aktiviere erneute Aufnahme befestigter Wurfobjekte</German> <German>Aktiviere erneute Aufnahme befestigter Wurfobjekte</German>
<Korean>부착 투척물 줍기 활성화</Korean> <Korean>부착 투척물 줍기 활성화</Korean>
<French>Active le ramassage d'objets lançables attachés</French>
<Italian>Abilita Raccogli Oggetti Lanciabili da altri Oggetti</Italian>
<Chinese>啟用可撿取附著投擲物</Chinese>
<Chinesesimp>启用可捡取附着投掷物</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_Description"> <Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_Description">
<English>Enables ability to pick up throwables from attached objects.</English> <English>Enables ability to pick up throwables from attached objects.</English>
@ -96,6 +140,10 @@
<Polish>Umożliwia podnoszenie obiektów miotanych przyczepionych do innych obiektów.</Polish> <Polish>Umożliwia podnoszenie obiektów miotanych przyczepionych do innych obiektów.</Polish>
<German>Aktiviert die Möglichkeit, befestigte Wurfobjekte erneut aufzunehmen.</German> <German>Aktiviert die Möglichkeit, befestigte Wurfobjekte erneut aufzunehmen.</German>
<Korean>부착된 투척물을 주울 수 있게 해줍니다.</Korean> <Korean>부착된 투척물을 주울 수 있게 해줍니다.</Korean>
<French>Active la capacité à ramasser les objets lançables attaché à d'autres objets.</French>
<Italian>Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. </Italian>
<Chinese>啟用後, 可撿取附著在物件上的投擲物.</Chinese>
<Chinesesimp>启用后, 可捡取附着在物件上的投掷物.</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Prepare"> <Key ID="STR_ACE_Advanced_Throwing_Prepare">
<English>Prepare/Change Throwable</English> <English>Prepare/Change Throwable</English>
@ -104,6 +152,10 @@
<Polish>Przygotuj/zmień ob. miotany</Polish> <Polish>Przygotuj/zmień ob. miotany</Polish>
<German>Wurfobjekt vorbereiten/wechseln</German> <German>Wurfobjekt vorbereiten/wechseln</German>
<Korean>투척물 준비/변경</Korean> <Korean>투척물 준비/변경</Korean>
<French>Préparer/changer d'objet</French>
<Italian>Prepara/Cambia Oggetto lanciabile</Italian>
<Chinese>準備/變更投擲物</Chinese>
<Chinesesimp>准备/变更投掷物</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_dropModeHold"> <Key ID="STR_ACE_Advanced_Throwing_dropModeHold">
<English>Throwable Drop Mode (Hold)</English> <English>Throwable Drop Mode (Hold)</English>
@ -112,6 +164,10 @@
<Polish>Tryb upuszczania ob. miotanego (przytrzymaj)</Polish> <Polish>Tryb upuszczania ob. miotanego (przytrzymaj)</Polish>
<German>Wurfobjekt Fallmodus (halten)</German> <German>Wurfobjekt Fallmodus (halten)</German>
<Korean>투척물 떨어뜨리기 모드(꾹눌러서)</Korean> <Korean>투척물 떨어뜨리기 모드(꾹눌러서)</Korean>
<French>Mode de lancé de l'objet (Tenir)</French>
<Italian>Modalità Oggetto Gettabile (Mantenere)</Italian>
<Chinese>投擲模式 (按住)</Chinese>
<Chinesesimp>投掷模式 (按住)</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_DropModeToggle"> <Key ID="STR_ACE_Advanced_Throwing_DropModeToggle">
<English>Throwable Drop Mode (Toggle)</English> <English>Throwable Drop Mode (Toggle)</English>
@ -120,6 +176,10 @@
<Polish>Tryb upuszczania ob. miotanego (przełącz)</Polish> <Polish>Tryb upuszczania ob. miotanego (przełącz)</Polish>
<German>Wurfobjekt Fallmodus (umschalten)</German> <German>Wurfobjekt Fallmodus (umschalten)</German>
<Korean>투척물 떨어뜨리기 모드(토글)</Korean> <Korean>투척물 떨어뜨리기 모드(토글)</Korean>
<French>Mode de lancé de l'objet (Basculer)</French>
<Italian>Modalità Oggetto lanciabile Gettabile (Interruttore)</Italian>
<Chinese>投擲模式 (切換)</Chinese>
<Chinesesimp>投掷模式 (切换)</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Primed"> <Key ID="STR_ACE_Advanced_Throwing_Primed">
<English>Primed</English> <English>Primed</English>
@ -128,6 +188,10 @@
<Polish>Odbezpieczony</Polish> <Polish>Odbezpieczony</Polish>
<German>Scharf gemacht</German> <German>Scharf gemacht</German>
<Korean>뇌관 작동</Korean> <Korean>뇌관 작동</Korean>
<French>Amorcer</French>
<Italian>Armato</Italian>
<Chinese>引信開始燃燒</Chinese>
<Chinesesimp>引信开始燃烧</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Throw"> <Key ID="STR_ACE_Advanced_Throwing_Throw">
<English>Throw</English> <English>Throw</English>
@ -136,6 +200,10 @@
<Polish>Rzuć</Polish> <Polish>Rzuć</Polish>
<German>Werfen</German> <German>Werfen</German>
<Korean>던지기</Korean> <Korean>던지기</Korean>
<French>Lancer</French>
<Italian>Lanciare</Italian>
<Chinese>投擲</Chinese>
<Chinesesimp>投掷</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_ChangeMode"> <Key ID="STR_ACE_Advanced_Throwing_ChangeMode">
<English>(Scroll) Change Mode</English> <English>(Scroll) Change Mode</English>
@ -144,6 +212,10 @@
<Polish>(Kółko m.) zmień tryb</Polish> <Polish>(Kółko m.) zmień tryb</Polish>
<German>(Scrollen) Modus wechseln</German> <German>(Scrollen) Modus wechseln</German>
<Korean>(마우스 휠) 모드 변경</Korean> <Korean>(마우스 휠) 모드 변경</Korean>
<French>(Molette souris) Changer de mode</French>
<Italian>(Scorrere) Cambio Modalità</Italian>
<Chinese>(滾輪) 變更模式</Chinese>
<Chinesesimp>(滚轮) 变更模式</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Extend"> <Key ID="STR_ACE_Advanced_Throwing_Extend">
<English>(Scroll) Extend</English> <English>(Scroll) Extend</English>
@ -152,6 +224,10 @@
<Polish>(Kółko m.) przedłuż</Polish> <Polish>(Kółko m.) przedłuż</Polish>
<German>(Scrollen) Erweitern</German> <German>(Scrollen) Erweitern</German>
<Korean>(마우스 휠) 연장</Korean> <Korean>(마우스 휠) 연장</Korean>
<French>(Molette souris) Etendre</French>
<Italian>(Scorrere) Estendere</Italian>
<Chinese>(滾輪) 延長</Chinese>
<Chinesesimp>(滚轮) 延长</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Cook"> <Key ID="STR_ACE_Advanced_Throwing_Cook">
<English>(Click) Cook</English> <English>(Click) Cook</English>
@ -160,6 +236,10 @@
<Polish>(Kliknięcie) Odbezpiecz</Polish> <Polish>(Kliknięcie) Odbezpiecz</Polish>
<German>(Klicken) Abkochen</German> <German>(Klicken) Abkochen</German>
<Korean>(클릭) 예열</Korean> <Korean>(클릭) 예열</Korean>
<French>(Clique) Dégoupiller</French>
<Italian>(Click) Arma</Italian>
<Chinese>(點擊) 提早拉開引信</Chinese>
<Chinesesimp>(点击) 提早拉开引信</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_PickUp"> <Key ID="STR_ACE_Advanced_Throwing_PickUp">
<English>Pick Up</English> <English>Pick Up</English>
@ -168,6 +248,10 @@
<Polish>Podnieś</Polish> <Polish>Podnieś</Polish>
<German>Aufheben</German> <German>Aufheben</German>
<Korean>줍기</Korean> <Korean>줍기</Korean>
<French>Ramasser</French>
<Italian>Raccogli</Italian>
<Chinese>撿取</Chinese>
<Chinesesimp>捡取</Chinesesimp>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,28 +0,0 @@
/*
* Documentation:
* https://community.bistudio.com/wiki/AI_Sub-skills
*
* The idea here is to reduce the AI's godlike aiming
* capabilties while retaining it's high intelligence.
* The AI should be smart enough to move through a town,
* but also be 'human' in their reaction time and aim.
*
* Note: All these values can still be adjusted via
* scripts, these arrays just change what 0 & 1
* are for setSkill.
*/
class CfgAISkill {
aimingAccuracy[] = {0,0, 1,0.8}; // {0,0,1,1}; v1.26 defaults
aimingShake[] = {0,0, 1,0.6}; // {0,0,1,1};
aimingSpeed[] = {0,0, 1,0.7}; // {0,0.5,1,1};
commanding[] = {0,0, 1,0.8}; // {0,0,1,1};
courage[] = {0,0, 1,0.7}; // {0,0,1,1};
endurance[] = {0,0, 1,0.7}; // {0,0,1,1};
general[] = {0,0, 1,0.9}; // {0,0,1,1};
// apparently breaks rapid firing in single fire mode for players
//reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1};
spotDistance[] = {0,0, 1,0.9}; // {0,0.2,1,0.4};
spotTime[] = {0,0, 1,0.7}; // {0,0,1,0.7};
};

View File

@ -1,7 +1,7 @@
ace_ai ace_ai
====== ======
Minor changes of AI skill and overhaul of AI firing modes of vanilla weapons, encouraging the AI to use full-auto and bursts more often. Overhaul of AI firing modes of vanilla weapons, encouraging the AI to use full-auto and bursts more often.
## Maintainers ## Maintainers

View File

@ -14,5 +14,4 @@ class CfgPatches {
}; };
}; };
#include "CfgAISkill.hpp"
#include "CfgWeapons.hpp" #include "CfgWeapons.hpp"

View File

@ -39,29 +39,20 @@ class CfgAmmo {
// also adjust tracer, "muh lightshow"; also adjust splash damage radius // also adjust tracer, "muh lightshow"; also adjust splash damage radius
class Gatling_30mm_HE_Plane_CAS_01_F: BulletBase { class Gatling_30mm_HE_Plane_CAS_01_F: BulletBase {
hit = 80; hit = 80; // default: 180
indirectHit = 12; indirectHit = 12; // default: 4
indirectHitRange = 3; //2; indirectHitRange = 3; // default: 3
caliber = 1.4; caliber = 1.4; // default: 5
deflecting = 3; deflecting = 3; // default: 5
fuseDistance = 3; fuseDistance = 3; // default: 10
tracerStartTime = 0.02; tracerStartTime = 0.02; // default: 0.1
timeToLive = 40; timeToLive = 40; // default: 6
}; };
// helper projectiles to simulate a rof > fps
class ACE_Gatling_30mm_HE_Plane_CAS_01_Deploy: Gatling_30mm_HE_Plane_CAS_01_F {
simulation = "shotSubmunitions";
triggerTime = 0;
submunitionAmmo = "ACE_Gatling_30mm_HE_Plane_CAS_01_Sub";
submunitionConeType[] = {"custom", {{0,0}, {0,0}, {0,0}} };
};
class ACE_Gatling_30mm_HE_Plane_CAS_01_Sub: Gatling_30mm_HE_Plane_CAS_01_F {};
// adjust damage and splash damage, closer to bluefor gatling with same caliber // adjust damage and splash damage, closer to bluefor gatling with same caliber
class Cannon_30mm_HE_Plane_CAS_02_F: Gatling_30mm_HE_Plane_CAS_01_F { class Cannon_30mm_HE_Plane_CAS_02_F: Gatling_30mm_HE_Plane_CAS_01_F {
hit = 70; //40; hit = 70; // default: 150
indirectHit = 11; //14; indirectHit = 11; // default: 4
indirectHitRange = 3; indirectHitRange = 3; // default: 3
}; };
}; };

View File

@ -2,7 +2,6 @@ class CfgMagazines {
// shoot helper object to tripple rof // shoot helper object to tripple rof
class VehicleMagazine; class VehicleMagazine;
class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine {
ammo = "ACE_Gatling_30mm_HE_Plane_CAS_01_Deploy";
count = 1170; count = 1170;
}; };

View File

@ -33,12 +33,10 @@ class CfgVehicles {
class Turrets: Turrets { class Turrets: Turrets {
class CopilotTurret; class CopilotTurret;
}; };
//class UserActions;
}; };
class Heli_Light_01_base_F: Helicopter_Base_H { class Heli_Light_01_base_F: Helicopter_Base_H {
lockDetectionSystem = 0; incomingMissileDetectionSystem = 16; // Vanilla: 0
incomingMissileDetectionSystem = 16;
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
@ -49,16 +47,8 @@ class CfgVehicles {
}; };
}; };
class Heli_Light_01_unarmed_base_F: Heli_Light_01_base_F {};
class B_Heli_Light_01_F: Heli_Light_01_unarmed_base_F {
/*class Turrets: Turrets {
class CopilotTurret: CopilotTurret {};
};*/
};
class Heli_Light_01_armed_base_F: Heli_Light_01_base_F { class Heli_Light_01_armed_base_F: Heli_Light_01_base_F {
lockDetectionSystem = 0; incomingMissileDetectionSystem = 16; // Vanilla: 0
incomingMissileDetectionSystem = 16;
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
@ -67,13 +57,10 @@ class CfgVehicles {
}; };
}; };
}; };
class B_Heli_Light_01_armed_F: Heli_Light_01_armed_base_F {};
class Heli_Light_02_base_F: Helicopter_Base_H { class Heli_Light_02_base_F: Helicopter_Base_H {
driverCanEject = 1; driverCanEject = 1;
lockDetectionSystem = 12; incomingMissileDetectionSystem = 16; // Vanilla: 24
incomingMissileDetectionSystem = 16; magazines[] = {"2000Rnd_762x51_Belt_T_Green", "12Rnd_PG_missiles", "168Rnd_CMFlare_Chaff_Magazine"}; // Switch gun magazine to 7.62mm from 6.5mm
magazines[] = {"2000Rnd_762x51_Belt_T_Green", "12Rnd_PG_missiles", "168Rnd_CMFlare_Chaff_Magazine"};
class Turrets: Turrets { class Turrets: Turrets {
class CopilotTurret: CopilotTurret { class CopilotTurret: CopilotTurret {
@ -91,10 +78,8 @@ class CfgVehicles {
#include "Heli_Attack_01_base_F.hpp" #include "Heli_Attack_01_base_F.hpp"
class B_Heli_Attack_01_F: Heli_Attack_01_base_F {};
class Heli_Attack_02_base_F: Helicopter_Base_F { class Heli_Attack_02_base_F: Helicopter_Base_F {
lockDetectionSystem = 12; incomingMissileDetectionSystem = 16; // Vanilla: 24
incomingMissileDetectionSystem = 16;
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
@ -105,8 +90,7 @@ class CfgVehicles {
}; };
class Heli_Transport_01_base_F: Helicopter_Base_H { class Heli_Transport_01_base_F: Helicopter_Base_H {
lockDetectionSystem = 12; incomingMissileDetectionSystem = 16; // Vanilla: 24
incomingMissileDetectionSystem = 16;
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
@ -116,35 +100,19 @@ class CfgVehicles {
}; };
class MainTurret: MainTurret { class MainTurret: MainTurret {
magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; // Switch gun magazine to 7.62mm from 6.5mm
canEject = 1; canEject = 1;
}; };
class RightDoorGun: MainTurret { class RightDoorGun: MainTurret {
magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; // Switch gun magazine to 7.62mm from 6.5mm
canEject = 1; canEject = 1;
}; };
}; };
/*class UserActions {
class DoorL1_Open {
available = 1;
condition = "((this doorPhase 'door_L') == 0) AND Alive(this) AND driver this != player AND gunner this != player";
};
class DoorR1_Open: DoorL1_Open {
condition = "((this doorPhase 'door_R') == 0) AND Alive(this) AND driver this != player AND gunner this != player";
};
class DoorL1_Close: DoorL1_Open {
condition = "((this doorPhase 'door_L') > 0) AND Alive(this) AND driver this != player AND gunner this != player";
};
class DoorR1_Close: DoorL1_Close {
condition = "((this doorPhase 'door_R') > 0) AND Alive(this) AND driver this != player AND gunner this != player";
};
};*/
}; };
class Heli_Transport_02_base_F: Helicopter_Base_H { class Heli_Transport_02_base_F: Helicopter_Base_H {
lockDetectionSystem = 12; incomingMissileDetectionSystem = 16; // Vanilla: 24
incomingMissileDetectionSystem = 16;
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
@ -153,121 +121,51 @@ class CfgVehicles {
showHMD = 1; showHMD = 1;
}; };
}; };
/*class UserActions: UserActions {
class DoorL1_Open {
available = 1;
condition = "this animationPhase ""door_back_L"" < 0.5 AND Alive(this)";
};
class DoorR1_Open: DoorL1_Open {
condition = "this animationPhase ""door_back_R"" < 0.5 AND Alive(this)";
};
class DoorL1_Close: DoorL1_Open {
condition = "this animationPhase ""door_back_L"" > 0.5 AND Alive(this)";
};
class DoorR1_Close: DoorL1_Close {
condition = "this animationPhase ""door_back_R"" > 0.5 AND Alive(this)";
};
class CargoRamp_Open: DoorL1_Open {
userActionID = 52;
displayName = CSTRING(OpenCargoRamp);
textToolTip = CSTRING(OpenCargoRamp);
position = "action_cargoramp";
radius = 3.0;
condition = "this animationPhase ""cargoramp_open"" < 0.5 AND Alive(this)";
statement = "this animateDoor ['cargoramp_open', 1]";
};
class CargoRamp_Close: DoorL1_Close {
userActionID = 55;
displayName = CSTRING(CloseCargoRamp);
textToolTip = CSTRING(CloseCargoRamp);
position = "action_cargoramp";
radius = 3.0;
condition = "this animationPhase ""cargoramp_open"" > 0.5 AND Alive(this)";
statement = "this animateDoor ['cargoramp_open', 0]";
};
};*/
}; };
class Heli_light_03_base_F: Helicopter_Base_F { class Heli_light_03_base_F: Helicopter_Base_F {
lockDetectionSystem = 0; // Vanilla: 12
incomingMissileDetectionSystem = 16; // Vanilla: 24
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
class MainTurret: MainTurret { class MainTurret: MainTurret {
canEject = 1; canEject = 1;
};
};
};
class I_Heli_light_03_F: Heli_light_03_base_F {
lockDetectionSystem = 0;
incomingMissileDetectionSystem = 16;
weapons[] = {"M134_minigun", "missiles_DAR", "CMFlareLauncher", "ACE_AIR_SAFETY" };
magazines[] = {"5000Rnd_762x51_Yellow_Belt", "24Rnd_missiles", "168Rnd_CMFlare_Chaff_Magazine"};
class Turrets: Turrets {
class MainTurret: MainTurret {
showHMD = 1; showHMD = 1;
gunBeg = "commanderview"; weapons[] = {"Laserdesignator_mounted"}; // Add Laser Designator
gunEnd = "laserstart";
memoryPointGun = "laserstart";
stabilizedInAxes = 3;
weapons[] = {"Laserdesignator_mounted"};
soundServo[] = {"", 0.01, 1, 30};
magazines[] = {"Laserbatteries"}; magazines[] = {"Laserbatteries"};
inGunnerMayFire = 1;
}; };
}; };
}; };
class Heli_light_03_unarmed_base_F: Heli_light_03_base_F {};
class I_Heli_light_03_unarmed_F: Heli_light_03_unarmed_base_F {};
class Plane_CAS_01_base_F: Plane_Base_F {
lockDetectionSystem = 12;
incomingMissileDetectionSystem = 16;
class Turrets;
#include <flightmodel_thunderbolt.hpp> class Plane_CAS_01_base_F: Plane_Base_F {
lockDetectionSystem = 12; // Vanilla: 8
incomingMissileDetectionSystem = 16; // Vanilla: 24
}; };
class Plane_CAS_02_base_F: Plane_Base_F { class Plane_CAS_02_base_F: Plane_Base_F {
lockDetectionSystem = 12; lockDetectionSystem = 12; // Vanilla: 8
incomingMissileDetectionSystem = 16; incomingMissileDetectionSystem = 16; // Vanilla: 24
class Turrets;
#include <flightmodel_yak.hpp>
}; };
class Plane_Fighter_03_base_F: Plane_Base_F { class Plane_Fighter_03_base_F: Plane_Base_F {
lockDetectionSystem = 12; lockDetectionSystem = 12; // Vanilla: 8
incomingMissileDetectionSystem = 16; incomingMissileDetectionSystem = 16; // Vanilla: 24
class Turrets;
#include <flightmodel_alca.hpp>
};
class UAV_01_base_F: Helicopter_Base_F {
/*class Turrets: Turrets {
class MainTurret: MainTurret {};
};*/
}; };
class UAV_02_base_F: UAV { class UAV_02_base_F: UAV {
weapons[] = {}; weapons[] = {}; // Remove flare launcher
magazines[] = {}; magazines[] = {};
class Turrets {
class MainTurret;
};
}; };
class UAV_02_CAS_base_F: UAV_02_base_F { class UAV_02_CAS_base_F: UAV_02_base_F {
weapons[] = {}; weapons[] = {}; // Remove flare launcher
magazines[] = {}; magazines[] = {};
/*class Turrets: Turrets {
class MainTurret: MainTurret {};
};*/
}; };
class Heli_Transport_03_base_F: Helicopter_Base_H { class Heli_Transport_03_base_F: Helicopter_Base_H {
incomingMissileDetectionSystem = 16; // Vanilla: 24
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
@ -276,14 +174,8 @@ class CfgVehicles {
}; };
}; };
}; };
class B_Heli_Transport_03_F: Heli_Transport_03_base_F {
lockDetectionSystem = 12;
incomingMissileDetectionSystem = 16;
};
class Heli_Transport_04_base_F: Helicopter_Base_H { class Heli_Transport_04_base_F: Helicopter_Base_H {
lockDetectionSystem = 12; incomingMissileDetectionSystem = 16; // Vanilla: 24
incomingMissileDetectionSystem = 16;
driverCanEject = 1; driverCanEject = 1;
class Turrets: Turrets { class Turrets: Turrets {
@ -296,28 +188,4 @@ class CfgVehicles {
}; };
}; };
}; };
class O_Heli_Transport_04_bench_F: Heli_Transport_04_base_F {
class Turrets: Turrets {
class CopilotTurret: CopilotTurret {
canEject = 1;
};
class LoadmasterTurret: LoadmasterTurret {
canEject = 1;
};
};
};
class O_Heli_Transport_04_covered_F: Heli_Transport_04_base_F {
class Turrets: Turrets {
class CopilotTurret: CopilotTurret {
canEject = 1;
};
class LoadmasterTurret: LoadmasterTurret {
canEject = 1;
};
};
};
}; };

View File

@ -1,5 +1,3 @@
class Mode_SemiAuto;
class Mode_Burst;
class Mode_FullAuto; class Mode_FullAuto;
class CfgWeapons { class CfgWeapons {
@ -18,20 +16,6 @@ class CfgWeapons {
magazineReloadTime = 0.1; magazineReloadTime = 0.1;
}; };
// Manual Switching Of Flare Mode
class SmokeLauncher;
class CMFlareLauncher: SmokeLauncher {
modes[] = {"Single", "Burst", "AIBurst"};
class Single: Mode_SemiAuto {
reloadTime = 0.1;
};
class Burst: Mode_Burst {
displayName = CSTRING(CMFlareLauncher_Burst_Name);
};
};
// bigger mag for comanche // bigger mag for comanche
class CannonCore; class CannonCore;
class gatling_20mm: CannonCore { class gatling_20mm: CannonCore {
@ -127,22 +111,4 @@ class CfgWeapons {
class medium: LowROF {}; class medium: LowROF {};
class far: medium {}; class far: medium {};
}; };
class Gatling_30mm_Plane_CAS_01_F: CannonCore {
autoFire = 1;
burst = 1;
class LowROF: Mode_FullAuto {
autoFire = 0;
burst = 22; //65;
reloadTime = 0.0462; //0.0154; //0.034;
multiplier = 3;
};
class close: LowROF {};
class near: close {};
class short: close {};
class medium: close {};
class far: close {};
};
}; };

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
ace_aircraft ace_aircraft
============ ============
Changes to air weaponry, flight models and HUDs. Changes to air weaponry, ejection and HUDs.
- Contributions by Kimi (geraldbolso1899) for HUD updates - Contributions by Kimi (geraldbolso1899) for HUD updates

View File

@ -1,23 +0,0 @@
acceleration = 300;
maxSpeed = 936;
irScanRangeMin = 500;
irScanRangeMax = 5000;
aileronSensitivity = 0.64;
elevatorSensitivity = 0.682;
rudderInfluence = 0.001;
aileronControlsSensitivityCoef = 3;
elevatorControlsSensitivity = 2;
rudderControlsSensitivityoef = 4;
elevatorCoef[] = {0.6, 0.73, 0.62, 0.52, 0.39, 0.33, 0.28};
aileronCoef[] = {0.5, 0.68, 0.75, 0.86, 0.92, 0.96, 1};
rudderCoef[] = {0.9, 0.75, 0.58, 0.45, 0.38, 0.35, 0.3};
envelope[] = {0, 0.06, 1.2, 3, 3.6, 3.75, 3.65, 3.45, 3.3, 2.8, 2.4, 1.9, 1.5};
angleOfIndicence = 0.0523599; //determines velocity vector behaviour, how quickly it catches up with where your nose is pointing, I think
draconicForceXCoef = 7.5; //max angle of attack, lower value gives higher aoa
draconicForceYCoef = 0.2198; //Something to do with bleed off of speed, low values seem to increase bleed off
draconicForceZCoef = 5.12; //????
draconicTorqueXCoef = 0.18; //resistance to elevator input, also impacts speed degradation
draconicTorqueYCoef = 0.000017;
thrustCoef[] = {1.3, 1.27, 1.24, 1.2, 1.17, 1.15, 1.13, 1.1, 1.06, 1, 0.94, 0.72, 0.51, 0.4, 0.25, 0};
gunAimDown = 0.029;
flapsFrictionCoef = 0.32;

View File

@ -1,21 +0,0 @@
maxSpeed = 736;
aileronSensitivity = 0.85;
elevatorSensitivity = 0.75;
rudderInfluence = 0.001;
aileronControlsSensitivityCoef = 3;
elevatorControlsSensitivity = 2;
rudderControlsSensitivityoef = 4;
elevatorCoef[] = {0.7, 0.75, 0.75, 0.65, 0.55, 0.45, 0.35};
aileronCoef[] = {0.6, 0.85, 0.88, 0.92, 0.95, 0.97, 1};
rudderCoef[] = {0.8, 0.75, 0.65, 0.5, 0.4, 0.33, 0.3};
flapsFrictionCoef = 0.35;
angleOfIndicence = 0.0523599;
draconicForceXCoef = 9.5;
draconicForceYCoef = 0.56;
draconicForceZCoef = 0.1;
draconicTorqueXCoef = 0.58;
draconicTorqueYCoef = 0.00013;
envelope[] = {0, 0, 0.75, 2.4, 3.6, 3.8, 3.7, 3.2, 2.2, 1.7, 0.9};
thrustCoef[] = {1, 1.2, 1.3, 1.25, 1.06, 1.01, 1, 0.92, 0.75, 0.65, 0.5, 0.25, 0};
acceleration = 265;
landingSpeed = 220;

View File

@ -1,20 +0,0 @@
maxSpeed = 1059;
acceleration = 300;
aileronSensitivity = 0.635;
elevatorSensitivity = 0.814;
rudderInfluence = 0.001;
aileronControlsSensitivityCoef = 3;
elevatorControlsSensitivity = 2;
rudderControlsSensitivityoef = 4;
elevatorCoef[] = {0.6, 0.76, 0.7, 0.65, 0.58, 0.47, 0.43};
aileronCoef[] = {0.5, 0.85, 0.87, 0.89, 0.92, 0.95, 1};
rudderCoef[] = {0.8, 0.7, 0.6, 0.5, 0.4, 0.32, 0.27};
angleOfIndicence = 0.0523599;
draconicForceXCoef = 7.6;
draconicForceYCoef = 0.75;
draconicForceZCoef = 0.085;
draconicTorqueXCoef = 0.815;
draconicTorqueYCoef = 0.000152;
envelope[] = {0, 0.446, 1.5, 3.9, 5.2, 4.8, 4.2, 3.5, 2, 1, 0.5};
thrustCoef[] = {1, 1.2, 1.7, 1.7, 1.65, 1.54, 1.32, 1.1, 0.95, 0.75, 0.5, 0.35, 0};
flapsFrictionCoef = 0.32;

View File

@ -1,20 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project name="ACE"> <Project name="ACE">
<Package name="Aircraft"> <Package name="Aircraft">
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
<English>Burst</English>
<German>Feuerstoß</German>
<Spanish>Ráfaga</Spanish>
<Polish>Seria</Polish>
<Czech>Dávka</Czech>
<French>Rafale</French>
<Russian>Очередь</Russian>
<Hungarian>Sorozat</Hungarian>
<Portuguese>Rajada</Portuguese>
<Italian>Raffica</Italian>
<Japanese>バースト</Japanese>
<Korean>점사</Korean>
</Key>
<Key ID="STR_ACE_Aircraft_gatling_20mm_Name"> <Key ID="STR_ACE_Aircraft_gatling_20mm_Name">
<English>XM301</English> <English>XM301</English>
<German>XM301</German> <German>XM301</German>
@ -28,6 +14,8 @@
<Italian>XM301</Italian> <Italian>XM301</Italian>
<Japanese>XM301</Japanese> <Japanese>XM301</Japanese>
<Korean>XM301</Korean> <Korean>XM301</Korean>
<Chinese>XM301</Chinese>
<Chinesesimp>XM301</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Aircraft_OpenCargoRamp"> <Key ID="STR_ACE_Aircraft_OpenCargoRamp">
<English>Open Cargo Door</English> <English>Open Cargo Door</English>
@ -42,6 +30,8 @@
<Portuguese>Abrir porta de carga</Portuguese> <Portuguese>Abrir porta de carga</Portuguese>
<Japanese>カーゴ ドアを開く</Japanese> <Japanese>カーゴ ドアを開く</Japanese>
<Korean>화물칸 개방</Korean> <Korean>화물칸 개방</Korean>
<Chinese>開啟貨艙門</Chinese>
<Chinesesimp>开启货舱门</Chinesesimp>
</Key> </Key>
<Key ID="STR_ACE_Aircraft_CloseCargoRamp"> <Key ID="STR_ACE_Aircraft_CloseCargoRamp">
<English>Close Cargo Door</English> <English>Close Cargo Door</English>
@ -56,6 +46,8 @@
<Portuguese>Fechar porta de carga</Portuguese> <Portuguese>Fechar porta de carga</Portuguese>
<Japanese>カーゴ ドアを閉じる</Japanese> <Japanese>カーゴ ドアを閉じる</Japanese>
<Korean>화물칸 폐쇄</Korean> <Korean>화물칸 폐쇄</Korean>
<Chinese>關閉貨艙門</Chinese>
<Chinesesimp>关闭货舱门</Chinesesimp>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -24,6 +24,7 @@ PREP(cycle_target_speed_direction);
PREP(delete_gun); PREP(delete_gun);
PREP(evaluate_option_menu_input); PREP(evaluate_option_menu_input);
PREP(init); PREP(init);
PREP(initGunList);
PREP(insert_c1_ballistic_coefficient_data); PREP(insert_c1_ballistic_coefficient_data);
PREP(insert_muzzle_velocity_data); PREP(insert_muzzle_velocity_data);
PREP(parse_input); PREP(parse_input);

View File

@ -2,62 +2,7 @@
#include "initKeybinds.sqf" #include "initKeybinds.sqf"
if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) == ATRAGMX_PROFILE_NAMESPACE_VERSION && count (profileNamespace getVariable ["ACE_ATragMX_gunList", []]) > 0) then { GVAR(active) = false;
GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList"; GVAR(initialised) = false;
} else {
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation, Persistent
GVAR(gunList) = [["12.7x108mm" , 812, 100, 0.0666557, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" , [[-15,793],[0,800],[10,807],[15,812],[25,826],[30,835],[35,846]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["12.7x99mm AMAX" , 852, 100, 0.0615965, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" , [[-15,833],[0,840],[10,847],[15,852],[25,866],[30,875],[35,886]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["12.7x99mm" , 892, 100, 0.0588284, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" , [[-15,873],[0,880],[10,887],[15,892],[25,906],[30,915],[35,926]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["12.7x54mm" , 299, 100, 0.3406920, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" , [[-15,297],[0,298],[10,299],[15,299],[25,301],[30,302],[35,303]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".50 Beowulf" , 562, 100, 0.1262000, -0.00202645, 3.81, 0, 2, 10, 120, 0, 0, 21.71, 12.7, 50.80, 0.210, 1, "ASM" , [[-15,560],[0,561],[10,562],[15,562],[25,564],[30,565],[35,566]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".408 CheyTac 305gr", 1059, 100, 0.0482146, -0.00063655, 3.81, 0, 2, 10, 120, 0, 0, 19.76, 10.4, 33.02, 0.569, 1, "ICAO", [[-15,1040],[0,1047],[10,1054],[15,1059],[25,1073],[30,1082],[35,1093]], [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".408 CheyTac 419gr", 859, 100, 0.0611842, -0.00044958, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.866, 1, "ICAO", [[-15,840],[0,847],[10,854],[15,859],[25,873],[30,882],[35,893]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["9.3×64mm" , 862, 100, 0.0627652, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" , [[-15,843],[0,850],[10,857],[15,862],[25,876],[30,885],[35,896]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".338LM 250gr" , 872, 100, 0.0604821, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.645, 1, "ICAO", [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".338LM 300gr" , 792, 100, 0.0685883, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.759, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".338LM API526" , 872, 100, 0.0602535, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.760, 1, "ICAO", [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".300WM Mk248 Mod0" , 857, 100, 0.0621425, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 12.31, 7.80, 25.40, 0.537, 1, "ICAO", [[-15,838],[0,845],[10,852],[15,857],[25,871],[30,880],[35,891]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".300WM Mk248 Mod1" , 839, 100, 0.0637038, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.619, 1, "ICAO", [[-15,820],[0,827],[10,834],[15,839],[25,853],[30,862],[35,873]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".300WM Berger OTM" , 792, 100, 0.0686968, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.715, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x54mmR" , 812, 100, 0.0678441, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO", [[-15,793],[0,800],[10,807],[15,812],[25,826],[30,835],[35,846]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm M80" , 802, 100, 0.0690229, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.461, 7.82, 25.40, 0.398, 1, "ICAO", [[-15,783],[0,790],[10,797],[15,802],[25,816],[30,825],[35,836]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm M118LR" , 757, 100, 0.0739989, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.482, 1, "ICAO", [[-15,738],[0,745],[10,752],[15,757],[25,771],[30,780],[35,791]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm Mk316" , 781, 100, 0.0709422, -0.00082029, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.483, 1, "ICAO", [[-15,777],[0,778],[10,779],[15,781],[25,783],[30,785],[35,787]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm Mk319" , 900, 100, 0.0593025, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO", [[-15,898],[0,899],[10,900],[15,900],[25,902],[30,903],[35,904]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm M993" , 912, 100, 0.0585007, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO", [[-15,893],[0,900],[10,907],[15,912],[25,926],[30,935],[35,946]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm Subsonic", 314, 100, 0.3168140, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.502, 1, "ICAO", [[-15,312],[0,313],[10,314],[15,314],[25,316],[30,317],[35,318]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x39mm" , 708, 100, 0.0846559, -0.00151621, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 7.82, 25.40, 0.275, 1, "ICAO", [[-15,689],[0,696],[10,703],[15,708],[25,722],[30,731],[35,742]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["6.5x39mm" , 766, 100, 0.0725986, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.524, 1, "ICAO", [[-15,747],[0,754],[10,761],[15,766],[25,780],[30,789],[35,800]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["6.5x47mm Lapua" , 767, 100, 0.0722256, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.577, 1, "ICAO", [[-15,748],[0,755],[10,762],[15,767],[25,781],[30,790],[35,801]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["6.5mm Creedmor" , 822, 100, 0.0655022, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.632, 1, "ICAO", [[-15,803],[0,810],[10,817],[15,822],[25,836],[30,845],[35,856]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.8x42mm DBP87" , 942, 100, 0.0566639, -0.00117956, 3.81, 0, 2, 10, 120, 0, 0, 4.150, 5.99, 24.40, 0.313, 1, "ICAO", [[-15,923],[0,930],[10,937],[15,942],[25,956],[30,965],[35,976]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm M855" , 862, 100, 0.0635456, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.302, 1, "ASM" , [[-15,843],[0,849],[10,857],[15,862],[25,876],[30,885],[35,898]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm Mk262" , 812, 100, 0.0682606, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" , [[-15,793],[0,800],[10,807],[15,812],[25,826],[30,835],[35,846]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm Mk318" , 872, 100, 0.0624569, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" , [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm M995" , 861, 100, 0.0635355, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" , [[-15,842],[0,849],[10,856],[15,861],[25,875],[30,884],[35,895]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.45x39mm 7N6M" , 727, 100, 0.0801269, -0.00116278, 3.81, 0, 2, 10, 120, 0, 0, 3.428, 5.59, 16.00, 0.336, 1, "ICAO", [[-15,708],[0,715],[10,722],[15,727],[25,741],[30,750],[35,761]], [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true]];
[] call FUNC(clear_user_data);
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
};
[] call FUNC(init);
[] call FUNC(restore_user_data);
[] call FUNC(read_gun_list_entries_from_config);
[QEGVAR(vector,rangefinderData), {_this call FUNC(sord)}] call CBA_fnc_addEventHandler; [QEGVAR(vector,rangefinderData), {_this call FUNC(sord)}] call CBA_fnc_addEventHandler;

View File

@ -6,7 +6,7 @@
* Nothing * Nothing
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_add_new_gun * call ace_atragmx_fnc_add_new_gun

View File

@ -3,10 +3,10 @@
* Calculates distance at which the bullet velocity drops below the threshold velocity * Calculates distance at which the bullet velocity drops below the threshold velocity
* *
* Arguments: * Arguments:
* theshold velocity <number> * theshold velocity <NUMBER>
* *
* Return Value: * Return Value:
* distance <number * distance <NUMBER>
* *
* Example: * Example:
* 403 call ace_atragmx_fnc_calculate_distance_at_velocity * 403 call ace_atragmx_fnc_calculate_distance_at_velocity

View File

@ -3,10 +3,10 @@
* Calculates the range card output based on the current data set * Calculates the range card output based on the current data set
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_calculate_range_card * call ace_atragmx_fnc_calculate_range_card

View File

@ -3,10 +3,10 @@
* Calculates the target range and updates the output fields * Calculates the target range and updates the output fields
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_calculate_target_range_assist * call ace_atragmx_fnc_calculate_target_range_assist
@ -74,7 +74,7 @@ switch (_this) do {
if (_estRange > 0) then { if (_estRange > 0) then {
_imageSize = atan(_targetSize / _estRange); _imageSize = atan(_targetSize / _estRange);
}; };
switch (GVAR(rangeAssistImageSizeUnit)) do { switch (GVAR(rangeAssistImageSizeUnit)) do {
case 0: { case 0: {
_imageSize = _imageSize * 6400 / 360; _imageSize = _imageSize * 6400 / 360;
@ -93,7 +93,7 @@ switch (_this) do {
if (tan(_imageSize) != 0) then { if (tan(_imageSize) != 0) then {
_estRange = _targetSize / tan(_imageSize); _estRange = _targetSize / tan(_imageSize);
}; };
ctrlSetText [7013, Str(Round(_estRange))]; ctrlSetText [7013, Str(Round(_estRange))];
}; };
}; };

View File

@ -3,10 +3,10 @@
* Calculates the fireing solution and updates the result input/output fields * Calculates the fireing solution and updates the result input/output fields
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_calculate_target_solution * call ace_atragmx_fnc_calculate_target_solution

View File

@ -3,10 +3,10 @@
* Calculates the target speed and updates the output fields * Calculates the target speed and updates the output fields
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_calculate_target_speed_assist * call ace_atragmx_fnc_calculate_target_speed_assist

View File

@ -6,7 +6,7 @@
* parse input <BOOL> * parse input <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_calculate_truing_drop * call ace_atragmx_fnc_calculate_truing_drop
@ -33,7 +33,7 @@ if (_parseInput) then {
_subsonicRange = Round(_subsonicRange); _subsonicRange = Round(_subsonicRange);
_subsonicRange = _transonicRange max _subsonicRange; _subsonicRange = _transonicRange max _subsonicRange;
_transonicDrop = -100 max parseNumber(ctrlText 18013) min 100; _transonicDrop = -100 max parseNumber(ctrlText 18013) min 100;
_subsonicDrop = -100 max parseNumber(ctrlText 18014) min 100; _subsonicDrop = -100 max parseNumber(ctrlText 18014) min 100;
private _dropUnit = GVAR(currentScopeUnit); private _dropUnit = GVAR(currentScopeUnit);
@ -56,7 +56,7 @@ if (_parseInput) then {
}; };
_transonicDrop = Round(_transonicDrop * 100) / 100; _transonicDrop = Round(_transonicDrop * 100) / 100;
_subsonicDrop = Round(_subsonicDrop * 100) / 100; _subsonicDrop = Round(_subsonicDrop * 100) / 100;
_subsonicDrop = _transonicDrop max _subsonicDrop; _subsonicDrop = _transonicDrop max _subsonicDrop;
}; };
@ -65,7 +65,7 @@ if ((GVAR(truingDropDropData) select 0) == 0 || {!([_transonicRange, _subsonicRa
call FUNC(calculate_target_solution); call FUNC(calculate_target_solution);
}; };
private _solutionInput = +GVAR(targetSolutionInput); private _solutionInput = +GVAR(targetSolutionInput);
if (_transonicRange == 0) then { if (_transonicRange == 0) then {
_transonicRange = Round(403 call FUNC(calculate_distance_at_velocity)); _transonicRange = Round(403 call FUNC(calculate_distance_at_velocity));
}; };

View File

@ -3,7 +3,7 @@
* Tests if the ATragMX dialog can be shown * Tests if the ATragMX dialog can be shown
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* can_show <BOOL> * can_show <BOOL>

View File

@ -8,7 +8,7 @@
* update display <BOOL> * update display <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_change_gun * call ace_atragmx_fnc_change_gun

View File

@ -6,7 +6,7 @@
* target <NUMBER> * target <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* 2 call ace_atragmx_fnc_change_target_slot * 2 call ace_atragmx_fnc_change_target_slot

View File

@ -3,10 +3,10 @@
* Clears the c1 ballistic coefficient data fields * Clears the c1 ballistic coefficient data fields
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_clear_c1_ballistic_coefficient_data * call ace_atragmx_fnc_clear_c1_ballistic_coefficient_data

View File

@ -3,10 +3,10 @@
* Clears the muzzle velocity data fields * Clears the muzzle velocity data fields
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_clear_muzzle_velocity_data * call ace_atragmx_fnc_clear_muzzle_velocity_data

View File

@ -3,10 +3,10 @@
* Removes all user data from the profileNamespace * Removes all user data from the profileNamespace
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_clear_user_data * call ace_atragmx_fnc_clear_user_data
@ -43,4 +43,4 @@ profileNamespace setVariable ["ACE_ATragMX_targetRange", nil];
profileNamespace setVariable ["ACE_ATragMX_rangeCardStartRange", nil]; profileNamespace setVariable ["ACE_ATragMX_rangeCardStartRange", nil];
profileNamespace setVariable ["ACE_ATragMX_rangeCardEndRange", nil]; profileNamespace setVariable ["ACE_ATragMX_rangeCardEndRange", nil];
profileNamespace setVariable ["ACE_ATragMX_rangeCardIncrement", nil]; profileNamespace setVariable ["ACE_ATragMX_rangeCardIncrement", nil];
profileNamespace setVariable ["ACE_ATragMX_rangeCardCurrentColumn", nil]; profileNamespace setVariable ["ACE_ATragMX_rangeCardCurrentColumn", nil];

View File

@ -3,10 +3,10 @@
* Creates the ATragMX dialog * Creates the ATragMX dialog
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_create_dialog * call ace_atragmx_fnc_create_dialog
@ -18,6 +18,16 @@
#define __dsp (uiNamespace getVariable "ATragMX_Display") #define __dsp (uiNamespace getVariable "ATragMX_Display")
#define __ctrlBackground (__dsp displayCtrl 720000) #define __ctrlBackground (__dsp displayCtrl 720000)
// Do all initialisation now
if (!GVAR(initialised)) then {
[] call FUNC(initGunList);
[] call FUNC(init);
[] call FUNC(restore_user_data);
[] call FUNC(read_gun_list_entries_from_config);
GVAR(initialised) = true;
TRACE_1("",GVAR(initialised));
};
if (GVAR(active)) exitWith { false }; if (GVAR(active)) exitWith { false };
if (underwater ACE_player) exitWith { false }; if (underwater ACE_player) exitWith { false };
if (!("ACE_ATragMX" in (uniformItems ACE_player)) && !("ACE_ATragMX" in (vestItems ACE_player))) exitWith { false }; if (!("ACE_ATragMX" in (uniformItems ACE_player)) && !("ACE_ATragMX" in (vestItems ACE_player))) exitWith { false };

View File

@ -6,7 +6,7 @@
* step <NUMBER> * step <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_cycle_scope_unit * call ace_atragmx_fnc_cycle_scope_unit

View File

@ -6,7 +6,7 @@
* step <NUMBER> * step <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_cycle_image_size_units * call ace_atragmx_fnc_cycle_image_size_units

View File

@ -6,7 +6,7 @@
* step <NUMBER> * step <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_cycle_num_ticks_units * call ace_atragmx_fnc_cycle_num_ticks_units

View File

@ -3,10 +3,10 @@
* Cycles through the range card columns * Cycles through the range card columns
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_cycle_range_card_columns * call ace_atragmx_fnc_cycle_range_card_columns

View File

@ -3,10 +3,10 @@
* Cycles through the scope units * Cycles through the scope units
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_cycle_scope_unit * call ace_atragmx_fnc_cycle_scope_unit

View File

@ -6,7 +6,7 @@
* step <NUMBER> * step <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_cycle_target_size_units * call ace_atragmx_fnc_cycle_target_size_units

View File

@ -3,10 +3,10 @@
* Cycles through the target directions left/right * Cycles through the target directions left/right
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_cycle_target_direction * call ace_atragmx_fnc_cycle_target_direction

View File

@ -3,10 +3,10 @@
* Deletes the currently selected gun profile from the profileNamespace * Deletes the currently selected gun profile from the profileNamespace
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_delete_gun * call ace_atragmx_fnc_delete_gun

View File

@ -6,7 +6,7 @@
* option menu id <number> * option menu id <number>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* 1 call ace_atragmx_fnc_evaluate_option_menu_input * 1 call ace_atragmx_fnc_evaluate_option_menu_input

View File

@ -3,10 +3,10 @@
* Inits all global variables with the default values * Inits all global variables with the default values
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_init * call ace_atragmx_fnc_init
@ -15,7 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(active) = false;
GVAR(workingMemory) = +(GVAR(gunList) select 0); GVAR(workingMemory) = +(GVAR(gunList) select 0);

View File

@ -0,0 +1,83 @@
/*
* Author: Ruthberg
* Inits the gun list from user profile
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* call ace_atragmx_fnc_initGunList
*
* Public: No
*/
#include "script_component.hpp"
LOG_2("Trying to load gunlist from profile [Version: %1][Count: %2]", profileNamespace getVariable [ARR_2(QGVAR(profileNamespaceVersion), 'none')], count (profileNamespace getVariable [ARR_2(QGVAR(gunList), [])]));
private _resetGunList = true;
if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) == ATRAGMX_PROFILE_NAMESPACE_VERSION && {count (profileNamespace getVariable ["ACE_ATragMX_gunList", []]) > 0}) then {
GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList";
_resetGunList = false;
{
// Verify each gun has correct param type
if (!(_x isEqualTypeArray ["", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", [], [], false])) exitWith {
_resetGunList = true;
};
} forEach GVAR(gunList);
};
if (_resetGunList) then {
WARNING("Reseting Profile Gunlist");
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation, Persistent
GVAR(gunList) = [["12.7x108mm" , 812, 100, 0.0666557, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" , [[-15,793],[0,800],[10,807],[15,812],[25,826],[30,835],[35,846]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["12.7x99mm AMAX" , 852, 100, 0.0615965, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" , [[-15,833],[0,840],[10,847],[15,852],[25,866],[30,875],[35,886]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["12.7x99mm" , 892, 100, 0.0588284, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" , [[-15,873],[0,880],[10,887],[15,892],[25,906],[30,915],[35,926]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["12.7x54mm" , 299, 100, 0.3406920, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" , [[-15,297],[0,298],[10,299],[15,299],[25,301],[30,302],[35,303]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".50 Beowulf" , 562, 100, 0.1262000, -0.00202645, 3.81, 0, 2, 10, 120, 0, 0, 21.71, 12.7, 50.80, 0.210, 1, "ASM" , [[-15,560],[0,561],[10,562],[15,562],[25,564],[30,565],[35,566]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".408 CheyTac 305gr", 1059, 100, 0.0482146, -0.00063655, 3.81, 0, 2, 10, 120, 0, 0, 19.76, 10.4, 33.02, 0.569, 1, "ICAO", [[-15,1040],[0,1047],[10,1054],[15,1059],[25,1073],[30,1082],[35,1093]], [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".408 CheyTac 419gr", 859, 100, 0.0611842, -0.00044958, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.866, 1, "ICAO", [[-15,840],[0,847],[10,854],[15,859],[25,873],[30,882],[35,893]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["9.3×64mm" , 862, 100, 0.0627652, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" , [[-15,843],[0,850],[10,857],[15,862],[25,876],[30,885],[35,896]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".338LM 250gr" , 872, 100, 0.0604821, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.645, 1, "ICAO", [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".338LM 300gr" , 792, 100, 0.0685883, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.759, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".338LM API526" , 872, 100, 0.0602535, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.580, 1, "ICAO", [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".300WM Mk248 Mod0" , 857, 100, 0.0621425, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 12.31, 7.80, 25.40, 0.537, 1, "ICAO", [[-15,838],[0,845],[10,852],[15,857],[25,871],[30,880],[35,891]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".300WM Mk248 Mod1" , 839, 100, 0.0637038, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.619, 1, "ICAO", [[-15,820],[0,827],[10,834],[15,839],[25,853],[30,862],[35,873]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
[".300WM Berger OTM" , 792, 100, 0.0686968, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.715, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x54mmR" , 812, 100, 0.0678441, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO", [[-15,793],[0,800],[10,807],[15,812],[25,826],[30,835],[35,846]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm M80" , 802, 100, 0.0690229, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.461, 7.82, 25.40, 0.398, 1, "ICAO", [[-15,783],[0,790],[10,797],[15,802],[25,816],[30,825],[35,836]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm M118LR" , 757, 100, 0.0739989, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.482, 1, "ICAO", [[-15,738],[0,745],[10,752],[15,757],[25,771],[30,780],[35,791]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm Mk316" , 781, 100, 0.0709422, -0.00082029, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.483, 1, "ICAO", [[-15,777],[0,778],[10,779],[15,781],[25,783],[30,785],[35,787]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm Mk319" , 900, 100, 0.0593025, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO", [[-15,898],[0,899],[10,900],[15,900],[25,902],[30,903],[35,904]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm M993" , 912, 100, 0.0585007, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO", [[-15,893],[0,900],[10,907],[15,912],[25,926],[30,935],[35,946]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm Subsonic", 314, 100, 0.3168140, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.502, 1, "ICAO", [[-15,312],[0,313],[10,314],[15,314],[25,316],[30,317],[35,318]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x39mm" , 708, 100, 0.0846559, -0.00151621, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 7.82, 25.40, 0.275, 1, "ICAO", [[-15,689],[0,696],[10,703],[15,708],[25,722],[30,731],[35,742]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["6.5x39mm" , 766, 100, 0.0725986, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.524, 1, "ICAO", [[-15,747],[0,754],[10,761],[15,766],[25,780],[30,789],[35,800]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["6.5x47mm Lapua" , 767, 100, 0.0722256, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.577, 1, "ICAO", [[-15,748],[0,755],[10,762],[15,767],[25,781],[30,790],[35,801]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["6.5mm Creedmor" , 822, 100, 0.0655022, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.632, 1, "ICAO", [[-15,803],[0,810],[10,817],[15,822],[25,836],[30,845],[35,856]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.8x42mm DBP87" , 942, 100, 0.0566639, -0.00117956, 3.81, 0, 2, 10, 120, 0, 0, 4.150, 5.99, 24.40, 0.313, 1, "ICAO", [[-15,923],[0,930],[10,937],[15,942],[25,956],[30,965],[35,976]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm M855" , 862, 100, 0.0635456, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.302, 1, "ASM" , [[-15,843],[0,849],[10,857],[15,862],[25,876],[30,885],[35,898]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm Mk262" , 812, 100, 0.0682606, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" , [[-15,793],[0,800],[10,807],[15,812],[25,826],[30,835],[35,846]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm Mk318" , 872, 100, 0.0624569, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" , [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm M995" , 861, 100, 0.0635355, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" , [[-15,842],[0,849],[10,856],[15,861],[25,875],[30,884],[35,895]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.45x39mm 7N6M" , 727, 100, 0.0801269, -0.00116278, 3.81, 0, 2, 10, 120, 0, 0, 3.428, 5.59, 16.00, 0.336, 1, "ICAO", [[-15,708],[0,715],[10,722],[15,727],[25,741],[30,750],[35,761]], [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true]];
[] call FUNC(clear_user_data);
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
};

View File

@ -8,7 +8,7 @@
* c1 ballistic coefficient - <NUMBER> * c1 ballistic coefficient - <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* [800, 0.485] call ace_atragmx_fnc_insert_c1_ballistic_coefficient_data * [800, 0.485] call ace_atragmx_fnc_insert_c1_ballistic_coefficient_data

View File

@ -7,7 +7,7 @@
* muzzle velocity - <NUMBER> * muzzle velocity - <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* [10, 800] call ace_atragmx_fnc_insert_muzzle_velocity_data * [10, 800] call ace_atragmx_fnc_insert_muzzle_velocity_data

View File

@ -1,5 +1,21 @@
/*
* Author: ACE-Team
* On close Dialog
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* call ace_atragmx_fnc_on_close_dialog
*
* Public: No
*/
#include "script_component.hpp" #include "script_component.hpp"
uiNamespace setVariable ['ATragMX_Display', nil]; uiNamespace setVariable ['ATragMX_Display', nil];
GVAR(active) = false; GVAR(active) = false;
[GVAR(DialogPFH)] call CBA_fnc_removePerFrameHandler; [GVAR(DialogPFH)] call CBA_fnc_removePerFrameHandler;

View File

@ -3,10 +3,10 @@
* Parses all input fields in the gun-, atmosphere- and target column, the result input fields and the muzzle velocity data input fields * Parses all input fields in the gun-, atmosphere- and target column, the result input fields and the muzzle velocity data input fields
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_parse_input * call ace_atragmx_fnc_parse_input

View File

@ -3,10 +3,10 @@
* Reads gun list entries from the config and appends them to the gun list * Reads gun list entries from the config and appends them to the gun list
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_read_gun_list_entries_from_config * call ace_atragmx_fnc_read_gun_list_entries_from_config
@ -110,10 +110,10 @@ private _validate_preset = {
{ {
private _preset = _x >> "preset"; private _preset = _x >> "preset";
if (isArray(_preset)) then { if (isArray(_preset)) then {
private _gun = getArray _preset; private _gun = getArray _preset;
if (_gun call _validate_preset) then { if (_gun call _validate_preset) then {
_gun set [0, (_gun select 0) select [0, 14]]; _gun set [0, (_gun select 0) select [0, 14]];
_gun set [20, false]; _gun set [20, false];

View File

@ -7,7 +7,7 @@
* update display <BOOL> * update display <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_recalculate_c1_ballistic_coefficient * call ace_atragmx_fnc_recalculate_c1_ballistic_coefficient

View File

@ -7,7 +7,7 @@
* update display <BOOL> * update display <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_recalculate_muzzle_velocity * call ace_atragmx_fnc_recalculate_muzzle_velocity

View File

@ -3,10 +3,10 @@
* Resets the relative click memory and updates the result input/output fields * Resets the relative click memory and updates the result input/output fields
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_reset_relative_click_memory * call ace_atragmx_fnc_reset_relative_click_memory

View File

@ -3,10 +3,10 @@
* Restores the atmospheric data defaults * Restores the atmospheric data defaults
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_restore_atmo_default * call ace_atragmx_fnc_restore_atmo_default

View File

@ -6,7 +6,7 @@
* update display <BOOL> * update display <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_restore_truing_drop * call ace_atragmx_fnc_restore_truing_drop

View File

@ -3,10 +3,10 @@
* Reads user data from profileNamespace * Reads user data from profileNamespace
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_restore_user_data * call ace_atragmx_fnc_restore_user_data

View File

@ -3,10 +3,10 @@
* Saves the currently select gun profile into the profileNamespace * Saves the currently select gun profile into the profileNamespace
* *
* Arguments: * Arguments:
* Nothing * None
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_save_gun * call ace_atragmx_fnc_save_gun

View File

@ -6,7 +6,7 @@
* ballistic coefficient - <NUMBER> * ballistic coefficient - <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* 10 call ace_atragmx_fnc_shift_c1_ballistic_coefficient_data * 10 call ace_atragmx_fnc_shift_c1_ballistic_coefficient_data

View File

@ -6,7 +6,7 @@
* velocity - <NUMBER> * velocity - <NUMBER>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* 10 call ace_atragmx_fnc_shift_muzzle_velocity_data * 10 call ace_atragmx_fnc_shift_muzzle_velocity_data

View File

@ -6,10 +6,10 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_show_add_new_gun * false call ace_atragmx_fnc_show_add_new_gun
* *
* Public: No * Public: No
*/ */

View File

@ -6,7 +6,7 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* false call ace_atragmx_fnc_show_atmo_env_data * false call ace_atragmx_fnc_show_atmo_env_data

View File

@ -6,7 +6,7 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* false call ace_atragmx_fnc_show_c1_ballistic_coefficient_data * false call ace_atragmx_fnc_show_c1_ballistic_coefficient_data

View File

@ -6,7 +6,7 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* false call ace_atragmx_fnc_show_gun_ammo_data * false call ace_atragmx_fnc_show_gun_ammo_data

View File

@ -6,10 +6,10 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_show_gun_list * false call ace_atragmx_fnc_show_gun_list
* *
* Public: No * Public: No
*/ */

View File

@ -6,10 +6,10 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_show_main_page * false call ace_atragmx_fnc_show_main_page
* *
* Public: No * Public: No
*/ */

View File

@ -6,7 +6,7 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* false call ace_atragmx_fnc_show_muzzle_velocity_data * false call ace_atragmx_fnc_show_muzzle_velocity_data

View File

@ -6,10 +6,10 @@
* visible - <BOOL> * visible - <BOOL>
* *
* Return Value: * Return Value:
* Nothing * None
* *
* Example: * Example:
* call ace_atragmx_fnc_show_range_card * false call ace_atragmx_fnc_show_range_card
* *
* Public: No * Public: No
*/ */

Some files were not shown because too many files have changed in this diff Show More