manual merge

This commit is contained in:
commy2 2016-05-18 11:48:27 +02:00
commit da70854568
542 changed files with 6156 additions and 4291 deletions

View File

@ -6,11 +6,9 @@ If you have found an issue with ACE3 please make sure that ACE3 really is the ca
Indicate if the issue appears on stable or development version. In case it is the development version, please also include the commit SHA-1 hash. Indicate if the issue appears on stable or development version. In case it is the development version, please also include the commit SHA-1 hash.
<div class="panel callout"> **Please note:**
<h5>Please note:</h5> - It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.
<p>It's not a valid to simply remove <code>@ace</code> from the mod list to confirm that ACE3 is the culprit.</p> - If the error happens when using a <b>third-party mod</b> contact the author of the appropriate mod and report the issue there.
<p>If the error happens when using a <b>third-party mod</b> contact the author of the appropriate mod and report the issue there.</p>
</div>
## Reporting the issue ## Reporting the issue
@ -26,6 +24,6 @@ ACE2, AGM and CSE had a lot of features implemented or planned. All of them are
Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite. Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite.
## Requesting a feature ## Requesting a feature
In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/3594). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
Following their approval, feature requests may be moved by moderators to a separate issue for further discussion. Following their approval, feature requests may be moved by moderators to a separate issue for further discussion.

View File

@ -1,25 +1,23 @@
**Arma 3 Version:** `x.xx` **Arma 3 Version:** `x.xx` (stable / rc / dev)
*(indicate if stable, rc or dev*) **CBA Version:** `2.x.x` (stable / dev + commit hash)
**ACE3 Version:** `3.x.x` (stable / dev + commit hash)
**ACE3 Version:** `3.x.x`
*(indicate if stable or dev, if dev indicate the commit the version is based on)*
**Mods:** **Mods:**
* `@CBA_A3` - `@CBA_A3`
* `@ace` - `@ace`
* ...
**Placed Modules:**
* *Add the list of modules you have placed on the map. Use 'None' if the error occurs without using any modules.*
**Description:** **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.
**Steps to reproduce:** **Steps to reproduce:**
* *Add the steps needed to reproduce the issue.* - Add the steps needed to reproduce the issue.
**Where did the issue occur?** **Where did the issue occur?**
* *A possible answer might be "Dedicated Server", "Local Multiplayer", "Editor", or "Singleplayer"* - Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal
**Placed Modules:**
- Add the list of modules you have placed on the map. Use 'None' if the error occurs without any modules.
**RPT log file:** **RPT log file:**
* *Add a link (pastebin.com) to the client and/or server RPT file. An instruction to find your RPT files can be [found here](https://community.bistudio.com/wiki/Crash_Files#Arma_3)* - Add a link ([gist](https://gist.github.com) or [pastebin](http://pastebin.com)) to the client and/or server RPT file. An instruction to find your RPT files can be found [here](https://community.bistudio.com/wiki/Crash_Files#Arma_3).
- If possible at the time the bug is encountered, go to ACE Options and select "Debug To Clipboard", this will print extensive debug information to the RPT file.

View File

@ -1,10 +1,4 @@
### When merged this pull request will: **When merged this pull request will:**
- Describe what this pull request will do
1. *Describe what this pull request will do* - Each change in a separate line
2. *Each change in a seperate line* - Respect the [Development Guidelines](http://ace3mod.com/wiki/development/)
---
*Delete this line and everything below*
- [Make sure to respect the file structure](http://ace3mod.com/wiki/development/modularity-and-pbo-structure.html)
- [Make sure to respect the coding guidelines](http://ace3mod.com/wiki/development/coding-guidelines.html)

View File

@ -12,6 +12,7 @@ before_script:
fi fi
script: script:
- python3 tools/sqf_validator.py - python3 tools/sqf_validator.py
- python3 tools/config_style_checker.py
- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then - if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
python3 tools/deploy.py; python3 tools/deploy.py;
fi fi

View File

@ -65,6 +65,7 @@ F3 Project <alanr@ferstaberinde.com>
Falke75 Falke75
Ferenczi Ferenczi
Ferenzi Ferenzi
FFAAMOD <modffaa@gmail.com>
Filip Basara <filip.basara93@googlemail.com> Filip Basara <filip.basara93@googlemail.com>
fr89k <kaschitoku@web.de> fr89k <kaschitoku@web.de>
FreeZbe <freeseb@gmail.com> FreeZbe <freeseb@gmail.com>
@ -74,6 +75,7 @@ Gianmarco Varriale (TeamNuke) <admin@forhost.org>
GieNkoV <gienkov.grzegorz@gmail.com> GieNkoV <gienkov.grzegorz@gmail.com>
GitHawk <githawk@gmx.net> GitHawk <githawk@gmx.net>
gpgpgpgp gpgpgpgp
Grey-Soldierman <gungamer101@hotmail.com>
Grzegorz Grzegorz
Hamburger SV Hamburger SV
Harakhti <shadowdragonphd@gmail.com> Harakhti <shadowdragonphd@gmail.com>
@ -110,6 +112,7 @@ Sniperwolf572 <tenga6@gmail.com>
System98 System98
SzwedzikPL <szwedzikpl@gmail.com> SzwedzikPL <szwedzikpl@gmail.com>
Tachi <zaveruha007@gmail.com> Tachi <zaveruha007@gmail.com>
Tessa Elieff <Fastroping Sound - CreativeCommons Attributions 3.0>
Toaster <jonathan.pereira@gmail.com> Toaster <jonathan.pereira@gmail.com>
Tonic Tonic
Tourorist <tourorist@gmail.com> Tourorist <tourorist@gmail.com>
@ -118,4 +121,3 @@ voiper
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com> VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
Winter <simon@agius-muscat.net> Winter <simon@agius-muscat.net>
zGuba zGuba
Grey-Soldierman <gungamer101@hotmail.com>

View File

@ -26,6 +26,8 @@ Some folders of this project may contain a separate LICENSE file. Should
that be the case, everything in that folder and all subfolders is subject that be the case, everything in that folder and all subfolders is subject
to that license instead. to that license instead.
- ARMA PUBLIC LICENSE (\addons\apl)
- CreativeCommons Attributions 3.0 (\addons\fastroping\data\sounds)
============================================================================ ============================================================================
Full GNU General Public License Text Full GNU General Public License Text

View File

@ -3,15 +3,15 @@
</p> </p>
<p align="center"> <p align="center">
<a href="https://github.com/acemod/ACE3/releases"> <a href="https://github.com/acemod/ACE3/releases/latest">
<img src="https://img.shields.io/badge/Version-3.5.0-blue.svg?style=flat-square" alt="ACE3 Version"> <img src="https://img.shields.io/badge/Version-3.5.1-blue.svg?style=flat-square" alt="ACE3 Version">
</a>
<a href="https://github.com/acemod/ACE3/releases/download/v3.5.0/ace3_3.5.0.zip">
<img src="https://img.shields.io/badge/Download-72.6_MB-green.svg?style=flat-square" alt="ACE3 Download">
</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">
</a> </a>
<a href="https://github.com/acemod/ACE3/releases">
<img src="https://img.shields.io/github/downloads/acemod/ACE3/total.svg?style=flat-square&label=Downloads" alt="ACE3 Downloads">
</a>
<a href="https://forums.bistudio.com/topic/181341-ace3-a-collaborative-merger-between-agm-cse-and-ace/?p=2859670"> <a href="https://forums.bistudio.com/topic/181341-ace3-a-collaborative-merger-between-agm-cse-and-ace/?p=2859670">
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square" alt="BIF Thread"> <img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square" alt="BIF Thread">
</a> </a>

View File

@ -1,29 +1,34 @@
class ACE_Settings { class ACE_Settings {
class GVAR(enabled) { class GVAR(enabled) {
category = CSTRING(DisplayName);
displayName = CSTRING(enabled_DisplayName); displayName = CSTRING(enabled_DisplayName);
description = CSTRING(enabled_Description); description = CSTRING(enabled_Description);
typeName = "BOOL"; typeName = "BOOL";
value = 0; value = 0;
}; };
class GVAR(simulateForSnipers) { class GVAR(simulateForSnipers) {
category = CSTRING(DisplayName);
displayName = CSTRING(simulateForSnipers_DisplayName); displayName = CSTRING(simulateForSnipers_DisplayName);
description = CSTRING(simulateForSnipers_Description); description = CSTRING(simulateForSnipers_Description);
typeName = "BOOL"; typeName = "BOOL";
value = 1; value = 1;
}; };
class GVAR(simulateForGroupMembers) { class GVAR(simulateForGroupMembers) {
category = CSTRING(DisplayName);
displayName = CSTRING(simulateForGroupMembers_DisplayName); displayName = CSTRING(simulateForGroupMembers_DisplayName);
description = CSTRING(simulateForGroupMembers_Description); description = CSTRING(simulateForGroupMembers_Description);
typeName = "BOOL"; typeName = "BOOL";
value = 0; value = 0;
}; };
class GVAR(simulateForEveryone) { class GVAR(simulateForEveryone) {
category = CSTRING(DisplayName);
displayName = CSTRING(simulateForEveryone_DisplayName); displayName = CSTRING(simulateForEveryone_DisplayName);
description = CSTRING(simulateForEveryone_Description); description = CSTRING(simulateForEveryone_Description);
typeName = "BOOL"; typeName = "BOOL";
value = 0; value = 0;
}; };
class GVAR(disabledInFullAutoMode) { class GVAR(disabledInFullAutoMode) {
category = CSTRING(DisplayName);
displayName = CSTRING(disabledInFullAutoMod_DisplayName); displayName = CSTRING(disabledInFullAutoMod_DisplayName);
description = CSTRING(disabledInFullAutoMod_Description); description = CSTRING(disabledInFullAutoMod_Description);
typeName = "BOOL"; typeName = "BOOL";
@ -31,6 +36,7 @@ class ACE_Settings {
}; };
/* // TODO: We currently do not have firedEHs on vehicles /* // TODO: We currently do not have firedEHs on vehicles
class GVAR(vehicleGunnerEnabled) { class GVAR(vehicleGunnerEnabled) {
category = CSTRING(DisplayName);
displayName = "Enabled For Vehicle Gunners"; displayName = "Enabled For Vehicle Gunners";
description = "Enables advanced ballistics for vehicle gunners"; description = "Enables advanced ballistics for vehicle gunners";
typeName = "BOOL"; typeName = "BOOL";
@ -38,30 +44,35 @@ class ACE_Settings {
}; };
*/ */
class GVAR(ammoTemperatureEnabled) { class GVAR(ammoTemperatureEnabled) {
category = CSTRING(DisplayName);
displayName = CSTRING(ammoTemperatureEnabled_DisplayName); displayName = CSTRING(ammoTemperatureEnabled_DisplayName);
description = CSTRING(ammoTemperatureEnabled_Description); description = CSTRING(ammoTemperatureEnabled_Description);
typeName = "BOOL"; typeName = "BOOL";
value = 1; value = 1;
}; };
class GVAR(barrelLengthInfluenceEnabled) { class GVAR(barrelLengthInfluenceEnabled) {
category = CSTRING(DisplayName);
displayName = CSTRING(barrelLengthInfluenceEnabled_DisplayName); displayName = CSTRING(barrelLengthInfluenceEnabled_DisplayName);
description = CSTRING(barrelLengthInfluenceEnabled_Description); description = CSTRING(barrelLengthInfluenceEnabled_Description);
typeName = "BOOL"; typeName = "BOOL";
value = 1; value = 1;
}; };
class GVAR(bulletTraceEnabled) { class GVAR(bulletTraceEnabled) {
category = CSTRING(DisplayName);
displayName = CSTRING(bulletTraceEnabled_DisplayName); displayName = CSTRING(bulletTraceEnabled_DisplayName);
description = CSTRING(bulletTraceEnabled_Description); description = CSTRING(bulletTraceEnabled_Description);
typeName = "BOOL"; typeName = "BOOL";
value = 1; value = 1;
}; };
class GVAR(simulationInterval) { class GVAR(simulationInterval) {
category = CSTRING(DisplayName);
displayName = CSTRING(simulationInterval_DisplayName); displayName = CSTRING(simulationInterval_DisplayName);
description = CSTRING(simulationInterval_Description); description = CSTRING(simulationInterval_Description);
typeName = "SCALAR"; typeName = "SCALAR";
value = 0.0; value = 0.0;
}; };
class GVAR(simulationRadius) { class GVAR(simulationRadius) {
category = CSTRING(DisplayName);
displayName = CSTRING(simulationRadius_DisplayName); displayName = CSTRING(simulationRadius_DisplayName);
description = CSTRING(simulationRadius_Description); description = CSTRING(simulationRadius_Description);
typeName = "SCALAR"; typeName = "SCALAR";

View File

@ -21,7 +21,6 @@ if (!GVAR(extensionAvailable)) exitWith {
}; };
}; };
*/ */
[] call FUNC(initializeTerrainExtension);
if (!hasInterface) exitWith {}; if (!hasInterface) exitWith {};
@ -29,10 +28,28 @@ if (!hasInterface) exitWith {};
//If not enabled, dont't add PFEH //If not enabled, dont't add PFEH
if (!GVAR(enabled)) exitWith {}; if (!GVAR(enabled)) exitWith {};
//Run the terrain processor
[] call FUNC(initializeTerrainExtension);
// Register fire event handler // Register fire event handler
["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler); ["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
["firedPlayerNonLocal", DFUNC(handleFired)] call EFUNC(common,addEventHandler); ["firedPlayerNonLocal", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
//Add warnings for missing compat PBOs (only if AB is on)
{
_x params ["_modPBO", "_compatPBO"];
if ((isClass (configFile >> "CfgPatches" >> _modPBO)) && {!isClass (configFile >> "CfgPatches" >> _compatPBO)}) then {
ACE_LOGWARNING_2("Weapon Mod [%1] missing ace compat pbo [%2] (from @ace\optionals)",_modPBO,_compatPBO);
};
} forEach [
["RH_acc","ace_compat_rh_acc"],
["RH_de_cfg","ace_compat_rh_de"],
["RH_m4_cfg","ace_compat_rh_m4"],
["RH_PDW","ace_compat_rh_pdw"],
["RKSL_PMII","ace_compat_rksl_pm_ii"],
["iansky_opt","ace_compat_sma3_iansky"],
["R3F_Armes","ace_compat_r3f"]
];
}] call EFUNC(common,addEventHandler); }] call EFUNC(common,addEventHandler);
#ifdef DEBUG_MODE_FULL #ifdef DEBUG_MODE_FULL

View File

@ -47,7 +47,7 @@ GVAR(Protractor) = true;
__ctrl1 ctrlSetTextColor [1, 1, 1, 1]; __ctrl1 ctrlSetTextColor [1, 1, 1, 1];
__ctrl2 ctrlSetScale 1; __ctrl2 ctrlSetScale 1;
__ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY + 0.001 - 0.0012 * (-58 max (asin((ACE_player weaponDirection currentWeapon ACE_player) select 2)) min 58), 0.2, 0.2 * 4/3]; __ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY - 0.001 - 0.1074 * (-0.86 max ((ACE_player weaponDirection currentWeapon ACE_player) select 2) min 0.86), 0.2, 0.2 * 4/3];
__ctrl2 ctrlCommit 0; __ctrl2 ctrlCommit 0;
__ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa)); __ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
__ctrl2 ctrlSetTextColor [1, 1, 1, 1]; __ctrl2 ctrlSetTextColor [1, 1, 1, 1];

View File

@ -88,7 +88,7 @@ if (GVAR(ammoTemperatureEnabled) || GVAR(barrelLengthInfluenceEnabled)) then {
_bulletTraceVisible = false; _bulletTraceVisible = false;
if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then { if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then {
if (currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]) then { if (currentWeapon ACE_player == binocular ACE_player) then {
_bulletTraceVisible = true; _bulletTraceVisible = true;
} else { } else {
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then { if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {

View File

@ -24,7 +24,7 @@ _mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith { if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
#ifdef DEBUG_MODE_FULL #ifdef DEBUG_MODE_FULL
systemChat "AdvancedBallistics: Terrain already initialized"; systemChat "AdvancedBallistics: Terrain already initialized";
#endIf #endif
}; };
_mapGrids = ceil(_mapSize / 50) + 1; _mapGrids = ceil(_mapSize / 50) + 1;

View File

@ -11,7 +11,7 @@ class CfgAmmo {
explosive = 1.8; explosive = 1.8;
tracersEvery = 3; tracersEvery = 3;
tracerEndTime = 3.5; tracerEndTime = 3.5;
CraterEffects = "ExploAmmoCrater"; CraterEffects = "ExploAmmoCrater";
explosionEffects = "ExploAmmoExplosion"; explosionEffects = "ExploAmmoExplosion";
model = "\A3\Weapons_f\Data\bullettracer\tracer_red"; model = "\A3\Weapons_f\Data\bullettracer\tracer_red";

View File

@ -860,12 +860,12 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
helmetDown[] = {0,-0.07,0}; helmetDown[] = {0,-0.07,0};
}; };
}; };
class Turrets: Turrets { class Turrets: Turrets {
class MainTurret: MainTurret { class MainTurret: MainTurret {
weapons[] = {"ACE_gatling_20mm_Comanche","missiles_DAGR","missiles_ASRAAM", "ACE_AIR_SAFETY"}; weapons[] = {"ACE_gatling_20mm_Comanche","missiles_DAGR","missiles_ASRAAM", "ACE_AIR_SAFETY"};
magazines[] = {"ACE_500Rnd_20mm_shells_Comanche","4Rnd_AAA_missiles","24Rnd_PG_missiles"}; magazines[] = {"ACE_500Rnd_20mm_shells_Comanche","4Rnd_AAA_missiles","24Rnd_PG_missiles"};
outGunnerMayFire = 1; outGunnerMayFire = 1;
commanding = -1; commanding = -1;
primaryGunner = 1; primaryGunner = 1;
@ -888,13 +888,13 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
minTurn = -120; minTurn = -120;
maxTurn = 120; maxTurn = 120;
initTurn = 0; initTurn = 0;
class OpticsIn class OpticsIn
{ {
delete Narrow; delete Narrow;
delete Medium; delete Medium;
delete Wide; delete Wide;
class ACE_WideUnstabilized { class ACE_WideUnstabilized {
opticsDisplayName = "W NS"; opticsDisplayName = "W NS";
initAngleX = 0; initAngleX = 0;
@ -994,4 +994,4 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
weapon = "ACE_gatling_20mm_Comanche"; weapon = "ACE_gatling_20mm_Comanche";
}; };
}; };
}; };

View File

@ -230,7 +230,7 @@ class ATragMX_Display {
idc=-1; idc=-1;
x=0.55*safezoneW+safezoneX+0.315; x=0.55*safezoneW+safezoneX+0.315;
}; };
class TEXT_GUN_FRAME: ATragMX_RscText { class TEXT_GUN_FRAME: ATragMX_RscText {
idc=1001; idc=1001;
style=64; style=64;
@ -610,7 +610,7 @@ class ATragMX_Display {
x=0.550*safezoneW+safezoneX+0.27; x=0.550*safezoneW+safezoneX+0.27;
text="4"; text="4";
action=QUOTE(call FUNC(toggle_solution_setup)); action=QUOTE(call FUNC(toggle_solution_setup));
}; };
class TEXT_CALCULATE: TEXT_SCOPE_UNIT { class TEXT_CALCULATE: TEXT_SCOPE_UNIT {
idc=3000; idc=3000;
style=ST_RIGHT; style=ST_RIGHT;
@ -1059,7 +1059,7 @@ class ATragMX_Display {
text="Cancel"; text="Cancel";
action=QUOTE(false call FUNC(show_add_new_gun); true call FUNC(show_gun_list)); action=QUOTE(false call FUNC(show_add_new_gun); true call FUNC(show_gun_list));
}; };
class TEXT_GUN_AMMO_DATA_BORE_HEIGHT: TEXT_BORE_HEIGHT { class TEXT_GUN_AMMO_DATA_BORE_HEIGHT: TEXT_BORE_HEIGHT {
idc=12000; idc=12000;
w=0.22; w=0.22;
@ -1147,7 +1147,7 @@ class ATragMX_Display {
class TEXT_GUN_AMMO_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT { class TEXT_GUN_AMMO_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
idc=12011; idc=12011;
}; };
class TEXT_ATMO_ENV_DATA_DEFAULT: TEXT_LEAD { class TEXT_ATMO_ENV_DATA_DEFAULT: TEXT_LEAD {
idc=13000; idc=13000;
w=0.08; w=0.08;
@ -1231,7 +1231,7 @@ class ATragMX_Display {
y=0.265*safezoneH+safezoneY+0.29; y=0.265*safezoneH+safezoneY+0.29;
text="Calc Method"; text="Calc Method";
}; };
class TEXT_TARGET_DATA_LATITUDE: TEXT_BORE_HEIGHT { class TEXT_TARGET_DATA_LATITUDE: TEXT_BORE_HEIGHT {
idc=14000; idc=14000;
w=0.22; w=0.22;
@ -1379,7 +1379,7 @@ class ATragMX_Display {
class TEXT_TARGET_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT { class TEXT_TARGET_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
idc=14011; idc=14011;
}; };
class TEXT_SOLUTION_SETUP_SHOW_RESULT_IN: TEXT_GUN_AMMO_DATA_BORE_HEIGHT { class TEXT_SOLUTION_SETUP_SHOW_RESULT_IN: TEXT_GUN_AMMO_DATA_BORE_HEIGHT {
idc=15000; idc=15000;
style=64; style=64;
@ -1469,4 +1469,4 @@ class ATragMX_Display {
action=QUOTE(0 call FUNC(toggle_solution_setup)); action=QUOTE(0 call FUNC(toggle_solution_setup));
}; };
}; };
}; };

View File

@ -7,41 +7,41 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
} else { } 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 // 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
GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ], GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ], ["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ], ["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ], ["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
[".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ], [".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ], ["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
[".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"], [".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
[".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"], [".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
[".338LM API526" , 895, 100, 0.0588865, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ], [".338LM API526" , 895, 100, 0.0588865, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
[".300WM Mk248 Mod 0", 900, 100, 0.0584442, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"], [".300WM Mk248 Mod 0", 900, 100, 0.0584442, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
[".300WM Mk248 Mod 1", 867, 100, 0.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"], [".300WM Mk248 Mod 1", 867, 100, 0.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
[".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"], [".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"], ["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"], ["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"], ["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"], ["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"], ["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"], ["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"], ["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"], ["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"], ["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ], ["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ], ["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ], ["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]]; ["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
[] call FUNC(clear_user_data); [] call FUNC(clear_user_data);
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)]; profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
}; };

View File

@ -42,31 +42,14 @@
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params [
private ["_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed1", "_windSpeed2", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_drag", "_bc", "_dragModel", "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude", "_directionOfFire"]; "_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity",
_scopeBaseAngle = _this select 0; "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed",
_bulletMass = _this select 1; "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_bc", "_dragModel",
_boreHeight = _this select 2; "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude",
_airFriction = _this select 3; "_directionOfFire"
_muzzleVelocity = _this select 4; ];
_temperature = _this select 5; _windSpeed params ["_windSpeed1", "_windSpeed2"];
_barometricPressure = _this select 6;
_relativeHumidity = _this select 7;
_simSteps = _this select 8;
_windSpeed1 = (_this select 9) select 0;
_windSpeed2 = (_this select 9) select 1;
_windDirection = _this select 10;
_inclinationAngle = _this select 11;
_targetSpeed = _this select 12;
_targetRange = _this select 13;
_bc = _this select 14;
_dragModel = _this select 15;
_atmosphereModel = _this select 16;
_storeRangeCardData = _this select 17;
_stabilityFactor = _this select 18;
_twistDirection = _this select 19;
_latitude = _this select 20;
_directionOfFire = _this select 21;
private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_bulletSpeed", "_gravity", "_deltaT"]; private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_bulletSpeed", "_gravity", "_deltaT"];
_bulletPos = [0, 0, 0]; _bulletPos = [0, 0, 0];
@ -133,7 +116,7 @@ _bulletVelocity set [2, Sin(_scopeBaseAngle) * _muzzleVelocity];
while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do { while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
_bulletSpeed = vectorMagnitude _bulletVelocity; _bulletSpeed = vectorMagnitude _bulletVelocity;
_speedTotal = _speedTotal + _bulletSpeed; _speedTotal = _speedTotal + _bulletSpeed;
_stepsTotal = _stepsTotal + 1; _stepsTotal = _stepsTotal + 1;
_speedAverage = (_speedTotal / _stepsTotal); _speedAverage = (_speedTotal / _stepsTotal);
@ -142,7 +125,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
_trueSpeed = vectorMagnitude _trueVelocity; _trueSpeed = vectorMagnitude _trueVelocity;
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
_drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then { private _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed])) parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed]))
} else { } else {
([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation)) ([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation))
@ -173,7 +156,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
}; };
_kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2)); _kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2));
_kineticEnergy = _kineticEnergy * 0.737562149; _kineticEnergy = _kineticEnergy * 0.737562149;
if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then { if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then {
// Coriolis // Coriolis
_horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage; _horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage;
@ -190,7 +173,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
_windage1 = _windage1 + _spinDrift; _windage1 = _windage1 + _spinDrift;
_windage2 = _windage2 + _spinDrift; _windage2 = _windage2 + _spinDrift;
}; };
GVAR(rangeCardData) set [_n, [_range, _elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy]]; GVAR(rangeCardData) set [_n, [_range, _elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy]];
_n = _n + 1; _n = _n + 1;
}; };

View File

@ -17,10 +17,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_gunID", "_restoreMemory", "_updateDisplay"]; params ["_gunID", "_restoreMemory", "_updateDisplay"];
_gunID = _this select 0;
_restoreMemory = _this select 1;
_updateDisplay = _this select 2;
if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {}; if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {};

View File

@ -39,7 +39,7 @@ if (GVAR(showRangeCard)) then {
}; };
GVAR(showRangeCardSetup) call FUNC(show_range_card_setup); GVAR(showRangeCardSetup) call FUNC(show_range_card_setup);
GVAR(showSolutionSetup) call FUNC(show_solution_setup); GVAR(showSolutionSetup) call FUNC(show_solution_setup);
GVAR(showTargetData) call FUNC(show_target_data); GVAR(showTargetData) call FUNC(show_target_data);
GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist); GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist);
GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist); GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist);
GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer); GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);

View File

@ -21,6 +21,5 @@ GVAR(showGunList) = _this;
if (_this) then { if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 6002); ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 6002);
lbSetCurSel [6000, GVAR(currentGun)]; lbSetCurSel [6000, GVAR(currentGun)];
}; };

View File

@ -21,7 +21,7 @@ GVAR(showRangeCardSetup) = _this;
if (_this) then { if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 10006); ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 10006);
ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))]; ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))];
ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))]; ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))];
ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))]; ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))];

View File

@ -21,7 +21,6 @@ GVAR(showTargetRangeAssist) = _this;
if (_this) then { if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 7018); ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 7018);
ctrlSetText [7012, Str(parseNumber(ctrlText 320))]; ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
ctrlSetText [7013, Str(parseNumber(ctrlText 340))]; ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
@ -30,4 +29,4 @@ if (_this) then {
} else { } else {
ctrlSetText [7016, "Meters"]; ctrlSetText [7016, "Meters"];
}; };
}; };

View File

@ -21,7 +21,7 @@ GVAR(showTargetSpeedAssist) = _this;
if (_this) then { if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 8012); ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 8012);
ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))]; ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))];
if (GVAR(currentUnit) == 1) then { if (GVAR(currentUnit) == 1) then {
@ -29,7 +29,7 @@ if (_this) then {
} else { } else {
ctrlSetText [8008, "Meters"]; ctrlSetText [8008, "Meters"];
}; };
if (GVAR(currentUnit) == 2) then { if (GVAR(currentUnit) == 2) then {
ctrlSetText [8011, "m/s"]; ctrlSetText [8011, "m/s"];
} else { } else {

View File

@ -17,10 +17,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_slopeDistance", "_azimuth", "_inclination"]; params ["_slopeDistance", "_azimuth", "_inclination"];
_slopeDistance = _this select 0;
_azimuth = _this select 1;
_inclination = _this select 2;
GVAR(inclinationAngle) set [GVAR(currentTarget), round(_inclination)]; GVAR(inclinationAngle) set [GVAR(currentTarget), round(_inclination)];
GVAR(directionOfFire) set [GVAR(currentTarget), round(_azimuth)]; GVAR(directionOfFire) set [GVAR(currentTarget), round(_azimuth)];

View File

@ -21,26 +21,26 @@ if !(ctrlVisible 9000) then {
true call FUNC(show_target_speed_assist_timer); true call FUNC(show_target_speed_assist_timer);
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 9002); ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 9002);
[{ [{
private ["_args", "_startTime"]; private ["_args", "_startTime"];
_args = _this select 0; _args = _this select 0;
_startTime = _args select 0; _startTime = _args select 0;
if (!(GVAR(speedAssistTimer))) exitWith { if (!(GVAR(speedAssistTimer))) exitWith {
GVAR(speedAssistTimer) = true; GVAR(speedAssistTimer) = true;
ctrlSetText [8006, Str(Round((CBA_missionTime - _startTime) * 10) / 10)]; ctrlSetText [8006, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
[] call FUNC(calculate_target_speed_assist); [] call FUNC(calculate_target_speed_assist);
false call FUNC(show_target_speed_assist_timer); false call FUNC(show_target_speed_assist_timer);
true call FUNC(show_target_speed_assist); true call FUNC(show_target_speed_assist);
[_this select 1] call CBA_fnc_removePerFrameHandler; [_this select 1] call CBA_fnc_removePerFrameHandler;
}; };
ctrlSetText [9001, Str(Round((CBA_missionTime - _startTime) * 10) / 10)]; ctrlSetText [9001, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
}, 0.1, [CBA_missionTime]] call CBA_fnc_addPerFrameHandler; }, 0.1, [CBA_missionTime]] call CBA_fnc_addPerFrameHandler;
}; };

View File

@ -18,7 +18,7 @@
if (ctrlVisible 13000) then { if (ctrlVisible 13000) then {
false call FUNC(show_atmo_env_data); false call FUNC(show_atmo_env_data);
true call FUNC(show_main_page); true call FUNC(show_main_page);
if (_this == 1) then { if (_this == 1) then {
call FUNC(calculate_target_solution); call FUNC(calculate_target_solution);
}; };

View File

@ -18,7 +18,7 @@
if (ctrlVisible 12000) then { if (ctrlVisible 12000) then {
false call FUNC(show_gun_ammo_data); false call FUNC(show_gun_ammo_data);
true call FUNC(show_main_page); true call FUNC(show_main_page);
if (_this == 1) then { if (_this == 1) then {
call FUNC(update_zero_range); call FUNC(update_zero_range);
call FUNC(calculate_target_solution); call FUNC(calculate_target_solution);

View File

@ -18,7 +18,7 @@
if (ctrlVisible 6000) then { if (ctrlVisible 6000) then {
false call FUNC(show_gun_list); false call FUNC(show_gun_list);
true call FUNC(show_main_page); true call FUNC(show_main_page);
if (_this) then { if (_this) then {
[lbCurSel 6000, true, true] call FUNC(change_gun); [lbCurSel 6000, true, true] call FUNC(change_gun);
}; };

View File

@ -21,9 +21,9 @@ if (ctrlVisible 5006) then {
} else { } else {
false call FUNC(show_main_page); false call FUNC(show_main_page);
true call FUNC(show_range_card); true call FUNC(show_range_card);
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 5001); ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 5001);
[] call FUNC(calculate_range_card); [] call FUNC(calculate_range_card);
[] call FUNC(update_range_card); [] call FUNC(update_range_card);
}; };

View File

@ -18,12 +18,12 @@
if (ctrlVisible 10000) then { if (ctrlVisible 10000) then {
false call FUNC(show_range_card_setup); false call FUNC(show_range_card_setup);
true call FUNC(show_range_card); true call FUNC(show_range_card);
if (_this == 1) then { if (_this == 1) then {
GVAR(rangeCardStartRange) = 0 max Round(parseNumber(ctrlText 10003)) min 3000; GVAR(rangeCardStartRange) = 0 max Round(parseNumber(ctrlText 10003)) min 3000;
GVAR(rangeCardEndRange) = 0 max Round(parseNumber(ctrlText 10004)) min 3000; GVAR(rangeCardEndRange) = 0 max Round(parseNumber(ctrlText 10004)) min 3000;
GVAR(rangeCardIncrement) = 1 max Round(parseNumber(ctrlText 10005)) min 3000; GVAR(rangeCardIncrement) = 1 max Round(parseNumber(ctrlText 10005)) min 3000;
[] call FUNC(calculate_range_card); [] call FUNC(calculate_range_card);
[] call FUNC(update_range_card); [] call FUNC(update_range_card);
}; };

View File

@ -18,7 +18,7 @@
if (ctrlVisible 15000) then { if (ctrlVisible 15000) then {
false call FUNC(show_solution_setup); false call FUNC(show_solution_setup);
true call FUNC(show_main_page); true call FUNC(show_main_page);
if (_this == 1) then { if (_this == 1) then {
GVAR(currentScopeClickUnit) = GVAR(currentScopeClickUnitTemp); GVAR(currentScopeClickUnit) = GVAR(currentScopeClickUnitTemp);
GVAR(currentScopeClickNumber) = GVAR(currentScopeClickNumberTemp); GVAR(currentScopeClickNumber) = GVAR(currentScopeClickNumberTemp);
@ -30,9 +30,9 @@ if (ctrlVisible 15000) then {
} else { } else {
true call FUNC(show_solution_setup); true call FUNC(show_solution_setup);
false call FUNC(show_main_page); false call FUNC(show_main_page);
GVAR(currentScopeClickUnitTemp) = GVAR(currentScopeClickUnit); GVAR(currentScopeClickUnitTemp) = GVAR(currentScopeClickUnit);
GVAR(currentScopeClickNumberTemp) = GVAR(currentScopeClickNumber); GVAR(currentScopeClickNumberTemp) = GVAR(currentScopeClickNumber);
[] call FUNC(update_solution_setup); [] call FUNC(update_solution_setup);
}; };

View File

@ -18,7 +18,7 @@
if (ctrlVisible 14000) then { if (ctrlVisible 14000) then {
false call FUNC(show_target_data); false call FUNC(show_target_data);
true call FUNC(show_main_page); true call FUNC(show_main_page);
if (_this == 1) then { if (_this == 1) then {
call FUNC(calculate_target_solution); call FUNC(calculate_target_solution);
}; };

View File

@ -18,7 +18,7 @@
if (ctrlVisible 7000) then { if (ctrlVisible 7000) then {
false call FUNC(show_target_range_assist); false call FUNC(show_target_range_assist);
true call FUNC(show_main_page); true call FUNC(show_main_page);
if (_this == 1) then { if (_this == 1) then {
ctrlSetText [320, Str(parseNumber(ctrlText 7012))]; ctrlSetText [320, Str(parseNumber(ctrlText 7012))];
ctrlSetText [140040, Str(parseNumber(ctrlText 7012))]; ctrlSetText [140040, Str(parseNumber(ctrlText 7012))];

View File

@ -18,7 +18,7 @@
if (ctrlVisible 8000) then { if (ctrlVisible 8000) then {
false call FUNC(show_target_speed_assist); false call FUNC(show_target_speed_assist);
true call FUNC(show_main_page); true call FUNC(show_main_page);
if (_this == 1) then { if (_this == 1) then {
[] call FUNC(calculate_target_speed_assist); [] call FUNC(calculate_target_speed_assist);
private ["_targetSpeed"]; private ["_targetSpeed"];

View File

@ -43,7 +43,7 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
_TOF = _x select 4; _TOF = _x select 4;
_velocity = _x select 5; _velocity = _x select 5;
_kineticEnergy = _x select 6; _kineticEnergy = _x select 6;
switch (GVAR(currentScopeUnit)) do { switch (GVAR(currentScopeUnit)) do {
case 0: { case 0: {
_elevation = _elevation / 3.38; _elevation = _elevation / 3.38;
@ -63,25 +63,25 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
}; };
_clickNumber = GVAR(workingMemory) select 8; _clickNumber = GVAR(workingMemory) select 8;
_clickInterval = _clickSize / _clickNumber; _clickInterval = _clickSize / _clickNumber;
_elevation = Round(_elevation / _clickInterval); _elevation = Round(_elevation / _clickInterval);
_windage1 = Round(_windage1 / _clickInterval); _windage1 = Round(_windage1 / _clickInterval);
_windage2 = Round(_windage2 / _clickInterval); _windage2 = Round(_windage2 / _clickInterval);
}; };
}; };
_elevationOutput = Str(Round(_elevation * 100) / 100); _elevationOutput = Str(Round(_elevation * 100) / 100);
_windageOutput = Str(Round(_windage1 * 100) / 100); _windageOutput = Str(Round(_windage1 * 100) / 100);
_rangeOutput = Str(_range); _rangeOutput = Str(_range);
if (_velocity < _speedOfSound) then { if (_velocity < _speedOfSound) then {
_rangeOutput = _rangeOutput + "*"; _rangeOutput = _rangeOutput + "*";
}; };
if (GVAR(currentUnit) == 1) then { if (GVAR(currentUnit) == 1) then {
_velocity = _velocity * 3.2808399; _velocity = _velocity * 3.2808399;
}; };
switch (GVAR(rangeCardCurrentColumn)) do { switch (GVAR(rangeCardCurrentColumn)) do {
case 0: { case 0: {
if (GVAR(showWind2)) then { if (GVAR(showWind2)) then {
@ -100,6 +100,6 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
_lastColumnOutput = Str(Round(_TOF * 100) / 100); _lastColumnOutput = Str(Round(_TOF * 100) / 100);
} }
}; };
lnbAddRow [5007, [_rangeOutput, _elevationOutput, _windageOutput, _lastColumnOutput]]; lnbAddRow [5007, [_rangeOutput, _elevationOutput, _windageOutput, _lastColumnOutput]];
} forEach GVAR(rangeCardData); } forEach GVAR(rangeCardData);

View File

@ -33,24 +33,24 @@ switch (GVAR(currentScopeUnit)) do {
case 0: { case 0: {
_elevationAbs = _elevationAbs / 3.38; _elevationAbs = _elevationAbs / 3.38;
_windageAbs = _windageAbs / 3.38; _windageAbs = _windageAbs / 3.38;
_wind2 = _wind2 / 3.38; _wind2 = _wind2 / 3.38;
_elevationRel = _elevationRel / 3.38; _elevationRel = _elevationRel / 3.38;
_windageRel = _windageRel / 3.38; _windageRel = _windageRel / 3.38;
_elevationCur = _elevationCur / 3.38; _elevationCur = _elevationCur / 3.38;
_windageCur = _windageCur / 3.38; _windageCur = _windageCur / 3.38;
}; };
case 2: { case 2: {
_elevationAbs = _elevationAbs * 1.047; _elevationAbs = _elevationAbs * 1.047;
_windageAbs = _windageAbs * 1.047; _windageAbs = _windageAbs * 1.047;
_wind2 = _wind2 / 1.047; _wind2 = _wind2 / 1.047;
_elevationRel = _elevationRel * 1.047; _elevationRel = _elevationRel * 1.047;
_windageRel = _windageRel * 1.047; _windageRel = _windageRel * 1.047;
_elevationCur = _elevationCur * 1.047; _elevationCur = _elevationCur * 1.047;
_windageCur = _windageCur * 1.047; _windageCur = _windageCur * 1.047;
}; };
@ -62,15 +62,15 @@ switch (GVAR(currentScopeUnit)) do {
}; };
_clickNumber = GVAR(workingMemory) select 8; _clickNumber = GVAR(workingMemory) select 8;
_clickInterval = _clickSize / _clickNumber; _clickInterval = _clickSize / _clickNumber;
_elevationAbs = Round(_elevationAbs / _clickInterval); _elevationAbs = Round(_elevationAbs / _clickInterval);
_windageAbs = Round(_windageAbs / _clickInterval); _windageAbs = Round(_windageAbs / _clickInterval);
_wind2 = Round(_wind2 / _clickInterval); _wind2 = Round(_wind2 / _clickInterval);
_elevationRel = Round(_elevationRel / _clickInterval); _elevationRel = Round(_elevationRel / _clickInterval);
_windageRel = Round(_windageRel / _clickInterval); _windageRel = Round(_windageRel / _clickInterval);
_elevationCur = Round(_elevationCur / _clickInterval); _elevationCur = Round(_elevationCur / _clickInterval);
_windageCur = Round(_windageCur / _clickInterval); _windageCur = Round(_windageCur / _clickInterval);
}; };
@ -166,4 +166,4 @@ if (GVAR(showWind2)) then {
} else { } else {
ctrlSetText [420, "0.0"]; ctrlSetText [420, "0.0"];
}; };
}; };

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project name="ACE"> <Project name="ACE">
<Package name="ATragMX"> <Package name="ATragMX">
<Key ID="STR_ACE_ATragMX_Name"> <Key ID="STR_ACE_ATragMX_Name">

View File

@ -12,7 +12,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params [["_backpack", objNull, [objNull]]]; params [["_backpack", objNull, [objNull, ""]]];
if (_backpack isEqualType objNull) then { if (_backpack isEqualType objNull) then {
_backpack = typeOf _backpack; _backpack = typeOf _backpack;

View File

@ -83,7 +83,7 @@ class CfgMagazines {
descriptionShort = CSTRING(30Rnd_556x45_mag_Tracer_DimDescription); descriptionShort = CSTRING(30Rnd_556x45_mag_Tracer_DimDescription);
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa"; picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
}; };
class 20Rnd_762x51_Mag: CA_Magazine { class 20Rnd_762x51_Mag: CA_Magazine {
initSpeed = 833; initSpeed = 833;
}; };
@ -121,7 +121,7 @@ class CfgMagazines {
descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription); descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription);
initSpeed = 325; initSpeed = 325;
}; };
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag { class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag {
author = ECSTRING(common,ACETeam); author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_M118LR"; ammo = "ACE_762x51_Ball_M118LR";
@ -247,7 +247,7 @@ class CfgMagazines {
descriptionShort = CSTRING(10Rnd_338_API526_Mag_Description); descriptionShort = CSTRING(10Rnd_338_API526_Mag_Description);
initSpeed = 880; initSpeed = 880;
}; };
class 5Rnd_127x108_Mag; class 5Rnd_127x108_Mag;
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag { class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
author = ECSTRING(common,ACETeam); author = ECSTRING(common,ACETeam);
@ -273,8 +273,8 @@ class CfgMagazines {
descriptionShort = CSTRING(5Rnd_127x99_AMAX_Mag_Description); descriptionShort = CSTRING(5Rnd_127x99_AMAX_Mag_Description);
initSpeed = 860; initSpeed = 860;
}; };
class 30Rnd_9x21_Mag: CA_Magazine { class 30Rnd_9x21_Mag: CA_Magazine {
initSpeed = 450; initSpeed = 450;
}; };
@ -286,27 +286,27 @@ class CfgMagazines {
descriptionShort = CSTRING(30Rnd_9x19_mag_Description); descriptionShort = CSTRING(30Rnd_9x19_mag_Description);
initSpeed = 370; initSpeed = 370;
}; };
class 11Rnd_45ACP_Mag: CA_Magazine { class 11Rnd_45ACP_Mag: CA_Magazine {
initSpeed = 250; initSpeed = 250;
}; };
class 6Rnd_45ACP_Cylinder : 11Rnd_45ACP_Mag { class 6Rnd_45ACP_Cylinder : 11Rnd_45ACP_Mag {
initSpeed = 250; initSpeed = 250;
}; };
class 30Rnd_45ACP_Mag_SMG_01: 30Rnd_9x21_Mag { class 30Rnd_45ACP_Mag_SMG_01: 30Rnd_9x21_Mag {
initSpeed = 250; initSpeed = 250;
}; };
class 9Rnd_45ACP_Mag: 30Rnd_45ACP_Mag_SMG_01 { class 9Rnd_45ACP_Mag: 30Rnd_45ACP_Mag_SMG_01 {
initSpeed = 250; initSpeed = 250;
}; };
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 { class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 {
initSpeed = 250; initSpeed = 250;
}; };
class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag { class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag {
initSpeed = 450; initSpeed = 450;
}; };
@ -318,7 +318,7 @@ class CfgMagazines {
descriptionShort = CSTRING(16Rnd_9x19_mag_Description); descriptionShort = CSTRING(16Rnd_9x19_mag_Description);
initSpeed = 370; initSpeed = 370;
}; };
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag { class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
initSpeed = 800; initSpeed = 800;
}; };
@ -331,15 +331,15 @@ class CfgMagazines {
initSpeed = 800; initSpeed = 800;
tracersEvery = 1; tracersEvery = 1;
}; };
class 150Rnd_762x54_Box: 150Rnd_762x51_Box { class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
initSpeed = 750; initSpeed = 750;
}; };
class 150Rnd_93x64_Mag: CA_Magazine { class 150Rnd_93x64_Mag: CA_Magazine {
initSpeed = 860; initSpeed = 860;
}; };
class 10Rnd_127x54_Mag: CA_Magazine { class 10Rnd_127x54_Mag: CA_Magazine {
initSpeed = 300; initSpeed = 300;
}; };

View File

@ -15,81 +15,81 @@ class CfgWeapons {
class Rifle_Base_F; class Rifle_Base_F;
class Rifle_Long_Base_F; class Rifle_Long_Base_F;
class MuzzleSlot; class MuzzleSlot;
/* Long Rifles */ /* Long Rifles */
class GM6_base_F: Rifle_Long_Base_F { class GM6_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
}; };
class LRR_base_F: Rifle_Long_Base_F { class LRR_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.00020; // radians. Equal to 0.70 MOA. dispersion = 0.00020; // radians. Equal to 0.70 MOA.
}; };
}; };
class DMR_06_base_F: Rifle_Long_Base_F { class DMR_06_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
class FullAuto: Mode_FullAuto { class FullAuto: Mode_FullAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
}; };
class DMR_05_base_F: Rifle_Long_Base_F { class DMR_05_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
class FullAuto: Mode_FullAuto { class FullAuto: Mode_FullAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
}; };
class DMR_04_base_F: Rifle_Long_Base_F { class DMR_04_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
}; };
class DMR_03_base_F: Rifle_Long_Base_F { class DMR_03_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.00032; // radians. Equal to 1.10 MOA. dispersion = 0.00032; // radians. Equal to 1.10 MOA.
}; };
class FullAuto: Mode_FullAuto { class FullAuto: Mode_FullAuto {
dispersion = 0.00032; // radians. Equal to 1.10 MOA. dispersion = 0.00032; // radians. Equal to 1.10 MOA.
}; };
}; };
class DMR_02_base_F: Rifle_Long_Base_F { class DMR_02_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.000262; // radians. Equal to 0.90 MOA. dispersion = 0.000262; // radians. Equal to 0.90 MOA.
}; };
}; };
class DMR_01_base_F: Rifle_Long_Base_F { class DMR_01_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.0004; // radians. Equal to 1.375 MOA. dispersion = 0.0004; // radians. Equal to 1.375 MOA.
}; };
}; };
class EBR_base_F: Rifle_Long_Base_F { class EBR_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto { class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
class FullAuto: Mode_FullAuto { class FullAuto: Mode_FullAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA. dispersion = 0.00029; // radians. Equal to 1.00 MOA.
}; };
}; };
/* MX */ /* MX */
class arifle_MX_Base_F: Rifle_Base_F {}; class arifle_MX_Base_F: Rifle_Base_F {};
class arifle_MX_SW_F: arifle_MX_Base_F { class arifle_MX_SW_F: arifle_MX_Base_F {
magazines[] = { magazines[] = {
@ -158,7 +158,7 @@ class CfgWeapons {
class Burst: Mode_Burst { class Burst: Mode_Burst {
dispersion = 0.0008727; // radians. Equal to 3 MOA. dispersion = 0.0008727; // radians. Equal to 3 MOA.
}; };
class FullAuto: Mode_FullAuto { class FullAuto: Mode_FullAuto {
dispersion = 0.0008727; // radians. Equal to 3 MOA. dispersion = 0.0008727; // radians. Equal to 3 MOA.
}; };
@ -285,6 +285,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green", "30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow", "30Rnd_556x45_Stanag_Tracer_Yellow",
"30Rnd_556x45_Stanag_red",
"30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag", "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag", "ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Mk318_mag",
@ -305,6 +307,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green", "30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow", "30Rnd_556x45_Stanag_Tracer_Yellow",
"30Rnd_556x45_Stanag_red",
"30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag", "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag", "ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Mk318_mag",
@ -320,6 +324,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green", "30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow", "30Rnd_556x45_Stanag_Tracer_Yellow",
"30Rnd_556x45_Stanag_red",
"30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag", "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag", "ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Mk318_mag",
@ -335,6 +341,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green", "30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow", "30Rnd_556x45_Stanag_Tracer_Yellow",
"30Rnd_556x45_Stanag_red",
"30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag", "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag", "ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Mk318_mag",
@ -356,6 +364,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green", "30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow", "30Rnd_556x45_Stanag_Tracer_Yellow",
"30Rnd_556x45_Stanag_red",
"30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag", "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag", "ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Mk318_mag",
@ -371,6 +381,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green", "30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow", "30Rnd_556x45_Stanag_Tracer_Yellow",
"30Rnd_556x45_Stanag_red",
"30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag", "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag", "ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Mk318_mag",
@ -386,6 +398,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green", "30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow", "30Rnd_556x45_Stanag_Tracer_Yellow",
"30Rnd_556x45_Stanag_red",
"30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag", "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag", "ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Mk318_mag",
@ -511,7 +525,7 @@ class CfgWeapons {
ACE_barrelTwist=234.95; ACE_barrelTwist=234.95;
ACE_barrelLength=609.6; ACE_barrelLength=609.6;
}; };
class HMG_127 : LMG_RCWS { class HMG_127 : LMG_RCWS {
}; };
class HMG_01: HMG_127 { class HMG_01: HMG_127 {
@ -521,7 +535,7 @@ class CfgWeapons {
ACE_barrelTwist=304.8; ACE_barrelTwist=304.8;
ACE_barrelLength=1143.0; ACE_barrelLength=1143.0;
}; };
/* Silencers */ /* Silencers */
class ItemCore; class ItemCore;

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project name="ACE"> <Project name="ACE">
<Package name="Ballistics"> <Package name="Ballistics">
<!-- MX --> <!-- MX -->

View File

@ -1,5 +1,11 @@
#include "script_component.hpp" #include "script_component.hpp"
["SettingsInitialized", {
// Hold on a little bit longer to ensure anims will work
[{
GVAR(captivityEnabled) = true;
}, [], 0.05] call EFUNC(common,waitAndExecute);
}] call EFUNC(common,addEventHandler);
//Handles when someone starts escorting and then disconnects, leaving the captive attached //Handles when someone starts escorting and then disconnects, leaving the captive attached
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC //This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
@ -33,10 +39,3 @@ if (!hasInterface) exitWith {};
["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition); ["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition);
["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),false))}] call EFUNC(common,addCanInteractWithCondition); ["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),false))}] call EFUNC(common,addCanInteractWithCondition);
["isNotSurrendering", {!(GETVAR(_this select 0,GVAR(isSurrendering),false))}] call EFUNC(common,addCanInteractWithCondition); ["isNotSurrendering", {!(GETVAR(_this select 0,GVAR(isSurrendering),false))}] call EFUNC(common,addCanInteractWithCondition);
["SettingsInitialized", {
// Hold on a little bit longer to ensure anims will work
[{
GVAR(captivityEnabled) = true;
}, [], 0.05] call EFUNC(common,waitAndExecute);
}] call EFUNC(common,addEventHandler);

View File

@ -37,7 +37,7 @@ if (_state) then {
[{ [{
params ["_args", "_pfID"]; params ["_args", "_pfID"];
_args params ["_unit", "_target", "_actionID"]; _args params ["_unit", "_target", "_actionID"];
if (_unit getVariable [QGVAR(isEscorting), false]) then { if (_unit getVariable [QGVAR(isEscorting), false]) then {
if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then { if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then {
_unit setVariable [QGVAR(isEscorting), false, true]; _unit setVariable [QGVAR(isEscorting), false, true];

View File

@ -27,27 +27,7 @@ class Extended_Killed_EventHandlers {
//Need initPost or we have problems with setVariable with 'ACE_Cargo' //Need initPost or we have problems with setVariable with 'ACE_Cargo'
class Extended_InitPost_EventHandlers { class Extended_InitPost_EventHandlers {
class StaticWeapon { class ThingX {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
};
};
class ReammoBox_F {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
};
};
class Cargo_base_F {
class ADDON {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
};
};
class CargoNet_01_box_F {
class ADDON {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
};
};
class Land_CargoBox_V1_F {
class ADDON { class ADDON {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle)); init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
}; };
@ -57,27 +37,17 @@ class Extended_InitPost_EventHandlers {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle)); init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
}; };
}; };
class RoadCone_F { class PlasticCase_01_base_F {
class ADDON { class ADDON {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle)); init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
}; };
}; };
class Car { class LandVehicle {
class ADDON { class ADDON {
init = QUOTE(_this call DFUNC(initVehicle)); init = QUOTE(_this call DFUNC(initVehicle));
}; };
}; };
class Tank { class Air {
class ADDON {
init = QUOTE(_this call DFUNC(initVehicle));
};
};
class Helicopter {
class ADDON {
init = QUOTE(_this call DFUNC(initVehicle));
};
};
class Plane {
class ADDON { class ADDON {
init = QUOTE(_this call DFUNC(initVehicle)); init = QUOTE(_this call DFUNC(initVehicle));
}; };
@ -87,16 +57,6 @@ class Extended_InitPost_EventHandlers {
init = QUOTE(_this call DFUNC(initVehicle)); init = QUOTE(_this call DFUNC(initVehicle));
}; };
}; };
class ACE_RepairItem_Base {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
};
};
class ACE_bodyBagObject {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
};
};
class ACE_ConcertinaWireCoil { class ACE_ConcertinaWireCoil {
class ADDON { class ADDON {
init = QUOTE(_this call DFUNC(initObject)); init = QUOTE(_this call DFUNC(initObject));

View File

@ -194,12 +194,69 @@ class CfgVehicles {
GVAR(hasCargo) = 1; GVAR(hasCargo) = 1;
}; };
class Heli_Transport_02_base_F; class Helicopter_Base_H;
class I_Heli_Transport_02_F: Heli_Transport_02_base_F { class Heli_Light_01_base_F: Helicopter_Base_H {
GVAR(space) = 0;
GVAR(hasCargo) = 0;
};
class Heli_Light_02_base_F: Helicopter_Base_H {
GVAR(space) = 4;
};
class Helicopter_Base_F;
class Heli_light_03_base_F: Helicopter_Base_F {
GVAR(space) = 4;
};
class Heli_Transport_01_base_F: Helicopter_Base_H {
GVAR(space) = 8;
};
class Heli_Transport_02_base_F: Helicopter_Base_H {
GVAR(space) = 20;
};
class Heli_Transport_03_base_F: Helicopter_Base_H {
GVAR(space) = 40;
};
class Heli_Transport_04_base_F: Helicopter_Base_H {
GVAR(space) = 0;
GVAR(hasCargo) = 0;
};
class O_Heli_Transport_04_box_F: Heli_Transport_04_base_F {
GVAR(space) = 20; GVAR(space) = 20;
GVAR(hasCargo) = 1; GVAR(hasCargo) = 1;
}; };
class O_Heli_Transport_04_repair_F: Heli_Transport_04_base_F {
GVAR(space) = 12;
GVAR(hasCargo) = 1;
};
class O_Heli_Transport_04_ammo_F: Heli_Transport_04_base_F {
GVAR(space) = 8;
GVAR(hasCargo) = 1;
};
class O_Heli_Transport_04_fuel_F: Heli_Transport_04_base_F {};
class O_Heli_Transport_04_medevac_F: Heli_Transport_04_base_F {
GVAR(space) = 8;
GVAR(hasCargo) = 1;
};
class Heli_Attack_01_base_F: Helicopter_Base_F {
GVAR(space) = 0;
GVAR(hasCargo) = 0;
};
class Heli_Attack_02_base_F: Helicopter_Base_F {
GVAR(space) = 4;
};
// jets // jets
class Plane: Air { class Plane: Air {
GVAR(space) = 0; GVAR(space) = 0;
@ -207,7 +264,6 @@ class CfgVehicles {
}; };
// autonomus // autonomus
class Helicopter_Base_F;
class UAV_01_base_F: Helicopter_Base_F { class UAV_01_base_F: Helicopter_Base_F {
GVAR(space) = 0; GVAR(space) = 0;
GVAR(hasCargo) = 0; GVAR(hasCargo) = 0;
@ -248,6 +304,25 @@ class CfgVehicles {
GVAR(canLoad) = 1; GVAR(canLoad) = 1;
}; };
// Taru pods
class Pod_Heli_Transport_04_base_F;
class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F {
GVAR(space) = 8;
GVAR(hasCargo) = 1;
};
class Land_Pod_Heli_Transport_04_box_F: Pod_Heli_Transport_04_base_F {
GVAR(space) = 20;
GVAR(hasCargo) = 1;
};
class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_base_F {
GVAR(space) = 8;
GVAR(hasCargo) = 1;
};
class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F {
GVAR(space) = 12;
GVAR(hasCargo) = 1;
};
class StaticMortar; class StaticMortar;
class Mortar_01_base_F: StaticMortar { class Mortar_01_base_F: StaticMortar {
GVAR(size) = 2; // 1 = small, 2 = large GVAR(size) = 2; // 1 = small, 2 = large
@ -256,6 +331,7 @@ class CfgVehicles {
// Ammo boxes // Ammo boxes
class ThingX; class ThingX;
class Items_base_F;
class ReammoBox_F: ThingX { class ReammoBox_F: ThingX {
GVAR(size) = 2; // 1 = small, 2 = large GVAR(size) = 2; // 1 = small, 2 = large
GVAR(canLoad) = 1; GVAR(canLoad) = 1;
@ -278,6 +354,23 @@ class CfgVehicles {
class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers
GVAR(canLoad) = 0; GVAR(canLoad) = 0;
}; };
//Plastic and metal case
class PlasticCase_01_base_F: Items_base_F {
GVAR(size) = 1; // 1 = small, 2 = large
GVAR(canLoad) = 1;
};
class Land_PlasticCase_01_large_F: PlasticCase_01_base_F {
GVAR(size) = 2; // 1 = small, 2 = large
};
class MetalCase_01_base_F: Items_base_F {
GVAR(size) = 1; // 1 = small, 2 = large
GVAR(canLoad) = 1;
};
class Land_MetalCase_01_large_F: MetalCase_01_base_F {
GVAR(size) = 2; // 1 = small, 2 = large
};
// objects // objects
class RoadCone_F: ThingX { class RoadCone_F: ThingX {
GVAR(size) = 1; GVAR(size) = 1;

View File

@ -20,6 +20,8 @@ TRACE_1("params", _vehicle);
private _type = typeOf _vehicle; private _type = typeOf _vehicle;
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
if (isServer) then { if (isServer) then {
{ {
if (isClass _x) then { if (isClass _x) then {
@ -38,7 +40,6 @@ if (_type in GVAR(initializedVehicleClasses)) exitWith {};
GVAR(initializedVehicleClasses) pushBack _type; GVAR(initializedVehicleClasses) pushBack _type;
if (!hasInterface) exitWith {}; if (!hasInterface) exitWith {};
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
TRACE_1("Adding unload cargo action to class", _type); TRACE_1("Adding unload cargo action to class", _type);

View File

@ -175,6 +175,7 @@
<Italian>Rendi oggetto caricabile</Italian> <Italian>Rendi oggetto caricabile</Italian>
<Spanish>Hacer objeto cargable</Spanish> <Spanish>Hacer objeto cargable</Spanish>
<French>Rendre l'objet chargeable</French> <French>Rendre l'objet chargeable</French>
<Czech>Vytvořit objekt nakladatelným</Czech>
</Key> </Key>
<Key ID="STR_ACE_Cargo_makeLoadable_description"> <Key ID="STR_ACE_Cargo_makeLoadable_description">
<English>Sets the synced object as loadable by the cargo system.</English> <English>Sets the synced object as loadable by the cargo system.</English>
@ -183,6 +184,7 @@
<Italian>Imposta l'oggetto sincronizzato come caricabile dal sistema cargo</Italian> <Italian>Imposta l'oggetto sincronizzato come caricabile dal sistema cargo</Italian>
<Spanish>Sincronizar un objecto para hacerlo cargable.</Spanish> <Spanish>Sincronizar un objecto para hacerlo cargable.</Spanish>
<French>Rend l'objet synchronisé comme chargeable par le système de cargaison.</French> <French>Rend l'objet synchronisé comme chargeable par le système de cargaison.</French>
<Czech>Nastaví synchronizované objekty nakladatelnými za pomocí Nákladního systému.</Czech>
</Key> </Key>
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName"> <Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
<English>Object's Size</English> <English>Object's Size</English>
@ -191,6 +193,7 @@
<Italian>Dimensioni dell'oggetto</Italian> <Italian>Dimensioni dell'oggetto</Italian>
<Spanish>Tamaño del objeto</Spanish> <Spanish>Tamaño del objeto</Spanish>
<French>Taille de l'objet</French> <French>Taille de l'objet</French>
<Czech>Velikost objektu</Czech>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -49,7 +49,7 @@ class ACE_Settings {
description = CSTRING(SettingFeedbackIconsDesc); description = CSTRING(SettingFeedbackIconsDesc);
values[] = {ECSTRING(optionsmenu,Hide), ECSTRING(optionsmenu,TopRightDown), ECSTRING(optionsmenu,TopRightLeft), ECSTRING(optionsmenu,TopLeftDown), ECSTRING(optionsmenu,TopLeftRight)}; values[] = {ECSTRING(optionsmenu,Hide), ECSTRING(optionsmenu,TopRightDown), ECSTRING(optionsmenu,TopRightLeft), ECSTRING(optionsmenu,TopLeftDown), ECSTRING(optionsmenu,TopLeftRight)};
}; };
class GVAR(SettingProgressBarLocation) { class GVAR(settingProgressBarLocation) {
value = 0; value = 0;
typeName = "SCALAR"; typeName = "SCALAR";
force = 0; force = 0;

View File

@ -33,7 +33,7 @@ class Extended_InitPost_EventHandlers {
}; };
class CAManBase { class CAManBase {
class GVAR(setName) { class GVAR(setName) {
init = QUOTE(if (local (_this select 0)) then {_this call FUNC(setName)};); init = QUOTE(if (local (_this select 0)) then {[ARR_2(FUNC(setName),_this)] call FUNC(execNextFrame)};);
}; };
class GVAR(muteUnit) { class GVAR(muteUnit) {
init = QUOTE(_this call FUNC(muteUnitHandleInitPost)); init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
@ -76,3 +76,9 @@ class Extended_FiredBIS_EventHandlers {
ADDON = QUOTE(_this call FUNC(firedEH)); ADDON = QUOTE(_this call FUNC(firedEH));
}; };
}; };
class Extended_Engine_EventHandlers {
class All {
ADDON = QUOTE(_this call FUNC(handleEngine));
};
};

View File

@ -15,7 +15,7 @@ class RscInGameUI {
class RscUnitInfoTank: RscUnitInfo { class RscUnitInfoTank: RscUnitInfo {
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent);); onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent););
}; };
class RscUnitInfoAirNoWeapon: RscUnitInfo { class RscUnitInfoAirNoWeapon: RscUnitInfo {
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent);); onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
}; };

View File

@ -87,6 +87,7 @@ PREP(getWindDirection);
PREP(getZoom); PREP(getZoom);
PREP(goKneeling); PREP(goKneeling);
PREP(hadamardProduct); PREP(hadamardProduct);
PREP(handleEngine);
PREP(handleModifierKey); PREP(handleModifierKey);
PREP(handleModifierKeyUp); PREP(handleModifierKeyUp);
PREP(handleScrollWheel); PREP(handleScrollWheel);

View File

@ -64,6 +64,7 @@
["blockSprint", false, []] call FUNC(statusEffect_addType); ["blockSprint", false, []] call FUNC(statusEffect_addType);
["setCaptive", true, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), QEGVAR(medical,unconscious)]] call FUNC(statusEffect_addType); ["setCaptive", true, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), QEGVAR(medical,unconscious)]] call FUNC(statusEffect_addType);
["blockDamage", false, ["fixCollision"]] call FUNC(statusEffect_addType); ["blockDamage", false, ["fixCollision"]] call FUNC(statusEffect_addType);
["blockEngine", false, ["ACE_Refuel"]] call FUNC(statusEffect_addType);
["forceWalk", { ["forceWalk", {
params ["_object", "_set"]; params ["_object", "_set"];
@ -90,6 +91,11 @@
_object allowDamage (_set == 0); _object allowDamage (_set == 0);
}; };
}] call FUNC(addEventHandler); }] call FUNC(addEventHandler);
["blockEngine", {
params ["_vehicle", "_set"];
_vehicle setVariable [QGVAR(blockEngine), _set > 0, true];
_vehicle engineOn false;
}] call FUNC(addEventHandler);
//Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit //Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit
//This variable is used for isPlayer checks //This variable is used for isPlayer checks
@ -133,6 +139,7 @@ if (isServer) then {
["fixFloating", FUNC(fixFloating)] call FUNC(addEventhandler); ["fixFloating", FUNC(fixFloating)] call FUNC(addEventhandler);
["fixPosition", FUNC(fixPosition)] call FUNC(addEventhandler); ["fixPosition", FUNC(fixPosition)] call FUNC(addEventhandler);
["loadPersonEvent", FUNC(loadPersonLocal)] call FUNC(addEventhandler);
["unloadPersonEvent", FUNC(unloadPersonLocal)] call FUNC(addEventhandler); ["unloadPersonEvent", FUNC(unloadPersonLocal)] call FUNC(addEventhandler);
["lockVehicle", { ["lockVehicle", {
@ -146,12 +153,15 @@ if (isServer) then {
["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler); ["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler);
["setFuel", {(_this select 0) setFuel (_this select 1)}] call FUNC(addEventhandler); ["setFuel", {(_this select 0) setFuel (_this select 1)}] call FUNC(addEventhandler);
["engineOn", {(_this select 0) engineOn (_this select 1)}] call FUNC(addEventhandler);
["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler); ["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler);
["selectLeader", {(_this select 0) selectLeader (_this select 1)}] call FUNC(addEventHandler); ["selectLeader", {(_this select 0) selectLeader (_this select 1)}] call FUNC(addEventHandler);
["setVelocity", {(_this select 0) setVelocity (_this select 1)}] call FUNC(addEventHandler); ["setVelocity", {(_this select 0) setVelocity (_this select 1)}] call FUNC(addEventHandler);
["playMove", {(_this select 0) playMove (_this select 1)}] call FUNC(addEventHandler); ["playMove", {(_this select 0) playMove (_this select 1)}] call FUNC(addEventHandler);
["playMoveNow", {(_this select 0) playMoveNow (_this select 1)}] call FUNC(addEventHandler); ["playMoveNow", {(_this select 0) playMoveNow (_this select 1)}] call FUNC(addEventHandler);
["switchMove", {(_this select 0) switchMove (_this select 1)}] call FUNC(addEventHandler); ["switchMove", {(_this select 0) switchMove (_this select 1)}] call FUNC(addEventHandler);
["setVectorDirAndUp", {(_this select 0) setVectorDirAndUp (_this select 1)}] call FUNC(addEventHandler);
["setVanillaHitPointDamage", {(_this select 0) setHitPointDamage (_this select 1)}] call FUNC(addEventHandler);
if (isServer) then { if (isServer) then {
["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler); ["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler);
@ -323,19 +333,13 @@ enableCamShake true;
GVAR(OldPlayerVehicle) = vehicle objNull; GVAR(OldPlayerVehicle) = vehicle objNull;
GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex); GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex);
GVAR(OldPlayerWeapon) = currentWeapon objNull; GVAR(OldPlayerWeapon) = currentWeapon objNull;
GVAR(OldPlayerInventory) = [objNull] call FUNC(getAllGear); GVAR(OldPlayerInventory) = [];
GVAR(OldPlayerVisionMode) = currentVisionMode objNull; GVAR(OldPlayerVisionMode) = currentVisionMode objNull;
GVAR(OldCameraView) = ""; GVAR(OldCameraView) = "";
GVAR(OldVisibleMap) = false; GVAR(OldVisibleMap) = false;
GVAR(OldInventoryDisplayIsOpen) = nil; //@todo check this GVAR(OldInventoryDisplayIsOpen) = nil; //@todo check this
GVAR(OldIsCamera) = false; GVAR(OldIsCamera) = false;
// clean up playerChanged eventhandler from preinit and put it in the same PFH as the other events to reduce overhead and guarantee advantageous execution order
if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
[GVAR(PreInit_playerChanged_PFHID)] call CBA_fnc_removePerFrameHandler;
GVAR(PreInit_playerChanged_PFHID) = nil;
};
// PFH to raise varios events // PFH to raise varios events
[{ [{
BEGIN_COUNTER(stateChecker); BEGIN_COUNTER(stateChecker);
@ -377,11 +381,11 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
}; };
// "playerInventoryChanged" event // "playerInventoryChanged" event
_data = [ACE_player] call FUNC(getAllGear); _data = getUnitLoadout ACE_player;
if !(_data isEqualTo GVAR(OldPlayerInventory)) then { if !(_data isEqualTo GVAR(OldPlayerInventory)) then {
// Raise ACE event locally // Raise ACE event locally
GVAR(OldPlayerInventory) = _data; GVAR(OldPlayerInventory) = _data;
["playerInventoryChanged", [ACE_player, _data]] call FUNC(localEvent); ["playerInventoryChanged", [ACE_player, [ACE_player, false] call FUNC(getAllGear) ]] call FUNC(localEvent);
}; };
// "playerVisionModeChanged" event // "playerVisionModeChanged" event
@ -442,6 +446,11 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
// Add various canInteractWith conditions // Add various canInteractWith conditions
////////////////////////////////////////////////// //////////////////////////////////////////////////
["isNotDead", {
params ["_unit", "_target"];
alive _unit
}] call FUNC(addCanInteractWithCondition);
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition); ["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
["isNotInside", { ["isNotInside", {

View File

@ -47,7 +47,7 @@ GVAR(statusEffect_Names) = [];
GVAR(statusEffect_isGlobal) = []; GVAR(statusEffect_isGlobal) = [];
////////////////////////////////////////////////// //////////////////////////////////////////////////
// Set up PlayerChanged eventhandler for pre init // Set up PlayerChanged eventhandler for pre init (EH is installed in postInit)
////////////////////////////////////////////////// //////////////////////////////////////////////////
ACE_player = objNull; ACE_player = objNull;

View File

@ -23,7 +23,7 @@ if (isServer) then {
params ["_eventName", "_client"]; params ["_eventName", "_client"];
if (!HASH_HASKEY(GVAR(syncedEvents),_eventName)) exitWith { if (!HASH_HASKEY(GVAR(syncedEvents),_eventName)) exitWith {
ACE_LOGERROR("Request for synced event - key not found."); ACE_LOGERROR_1("Request for synced event - key [%1] not found.", _eventName);
false false
}; };

View File

@ -17,7 +17,7 @@
params ["_name", "_args", "_ttl"]; params ["_name", "_args", "_ttl"];
if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith { if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
ACE_LOGERROR("Synced event key not found."); ACE_LOGERROR_1("Synced event key [%1] not found (_handleSyncedEvent).", _name);
false false
}; };

View File

@ -45,7 +45,7 @@ if (_actionID == -1) then {
private _addAction = call compile format [ private _addAction = call compile format [
"[ "[
'', '',
{if (inputAction '%1' == 0) exitWith {}; {if (_this call (_x select 0)) then {_this call (_x select 1)}} forEach (((_this select 0) getVariable '%2') select 1 select 2)}, {[{if (inputAction '%1' == 0) exitWith {}; {if (_this call (_x select 0)) then {_this call (_x select 1)}} forEach (((_this select 0) getVariable '%2') select 1 select 2)}, _this] call CBA_fnc_directCall},
nil, nil,
-1, -1,
false, false,

View File

@ -52,7 +52,7 @@ _actionIDs pushBack _id;
private _addAction = call compile format [ private _addAction = call compile format [
"[ "[
'%2', '%2',
{if (inputAction '%1' == 0) then {if (_this call (%3 select 2)) then {_this call (%3 select 3)}} else {_this call (%3 select 1)}}, {[{if (inputAction '%1' == 0) then {if (_this call (%3 select 2)) then {_this call (%3 select 3)}} else {_this call (%3 select 1)}}, _this] call CBA_fnc_directCall},
nil, nil,
%4, %4,
false, false,

View File

@ -15,6 +15,8 @@
params ["_statement"]; params ["_statement"];
ACE_DEPRECATED("ace_common_fnc_addScrollWheelEventHandler", "3.8.0", "'MouseZChanged' Display EventHandler");
if (_statement isEqualType "") then { if (_statement isEqualType "") then {
_statement = compile _statement; _statement = compile _statement;
}; };

View File

@ -10,6 +10,9 @@
* Return Value: * Return Value:
* Boolean of success <BOOL> * Boolean of success <BOOL>
* *
* Example:
* ["myEvent", {_this call x}, 0] call ace_common_fnc_addSyncedEventHandler
*
* Public: Yes * Public: Yes
*/ */
#include "script_component.hpp" #include "script_component.hpp"
@ -17,7 +20,7 @@
params ["_name", "_handler", ["_ttl", 0]]; params ["_name", "_handler", ["_ttl", 0]];
if (HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith { if (HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
ACE_LOGERROR("Duplicate synced event creation."); ACE_LOGERROR_1("Duplicate synced event [%1] creation.",_name);
false false
}; };

View File

@ -29,39 +29,17 @@ GVAR(AssignedItemsShownItems) = [
]; ];
["playerInventoryChanged", { ["playerInventoryChanged", {
params ["_unit", "_assignedItems"]; params ["_unit"];
_assignedItems = _assignedItems select 17; private _assignedItems = getUnitLoadout _unit param [9, ["","","","","",""]]; // ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"]
GVAR(AssignedItemsShownItems) = [true, true, true, true, true]; GVAR(AssignedItemsShownItems) = [
!((_assignedItems select 0) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 0 >> "ACE_hideItemType") != "map"},
{ !((_assignedItems select 3) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 3 >> "ACE_hideItemType") != "compass"},
if !(_x in GVAR(AssignedItems)) then { !((_assignedItems select 4) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 4 >> "ACE_hideItemType") != "watch"},
GVAR(AssignedItems) pushBack _x; !((_assignedItems select 2) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 2 >> "ACE_hideItemType") != "radio"},
GVAR(AssignedItemsInfo) pushBack toLower getText (configFile >> "CfgWeapons" >> _x >> "ACE_hideItemType"); !((_assignedItems select 1) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 1 >> "ACE_hideItemType") != "gps"}
}; ];
switch (GVAR(AssignedItemsInfo) select (GVAR(AssignedItems) find _x)) do {
case ("map"): {
GVAR(AssignedItemsShownItems) set [0, false];
};
case ("compass"): {
GVAR(AssignedItemsShownItems) set [1, false];
};
case ("watch"): {
GVAR(AssignedItemsShownItems) set [2, false];
};
case ("radio"): {
GVAR(AssignedItemsShownItems) set [3, false];
};
case ("gps"): {
GVAR(AssignedItemsShownItems) set [4, false];
};
};
false
} count _assignedItems;
//systemChat str GVAR(AssignedItemsShownItems);
GVAR(AssignedItemsShownItems) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"]; GVAR(AssignedItemsShownItems) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"];

View File

@ -19,6 +19,18 @@ private _version = getText (configFile >> "CfgPatches" >> "ace_main" >> "version
ACE_LOGINFO_1("ACE is version %1.",_version); ACE_LOGINFO_1("ACE is version %1.",_version);
//CBA Versioning check - close main display if using incompatible version
private _cbaVersionAr = getArray (configFile >> "CfgPatches" >> "cba_main" >> "versionAr");
private _cbaRequiredAr = (getArray (configFile >> "CfgSettings" >> "CBA" >> "Versioning" >> "ACE" >> "dependencies" >> "CBA")) select 1;
ACE_LOGINFO_2("CBA is version %1 [min required %2]",_cbaVersionAr,_cbaRequiredAr);
if ([_cbaRequiredAr, _cbaVersionAr] call cba_versioning_fnc_version_compare) then {
private _errorMsg = format ["CBA Version [%1] is outdated [required %2]", _cbaVersionAr, _cbaRequiredAr];
ACE_LOGERROR(_errorMsg);
if (hasInterface) then {
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
};
};
//private _addons = activatedAddons; // broken with High-Command module, see #2134 //private _addons = activatedAddons; // broken with High-Command module, see #2134
private _addons = "true" configClasses (configFile >> "CfgPatches");// private _addons = "true" configClasses (configFile >> "CfgPatches");//
_addons = _addons apply {toLower configName _x};// _addons = _addons apply {toLower configName _x};//

View File

@ -12,12 +12,11 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_function"]; params ["_code"];
if (_code isEqualType "") exitWith {_code};
if (_function isEqualType "") exitWith {_function}; _code = str(_code);
_code = _code select [1, count _code - 2];
_function = toArray str _function; _code
_function deleteAt 0;
_function deleteAt (count _function - 1);
toString _function // return

View File

@ -21,7 +21,7 @@ if (!isNil "ACE_PFH_COUNTER") then {
private _isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)}; private _isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)};
diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2]; diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2];
false false
} count ACE_PFH_COUNTER; } count ACE_PFH_COUNTER;
}; };
@ -42,7 +42,7 @@ diag_log text format ["-------------------------------------------"];
if (_iter > 2) then { if (_iter > 2) then {
_count = _count + 1; _count = _count + 1;
private _delta = (_x select 1) - (_x select 0); private _delta = (_x select 1) - (_x select 0);
_total = _total + _delta; _total = _total + _delta;
}; };
@ -54,7 +54,7 @@ diag_log text format ["-------------------------------------------"];
_averageResult = (_total / _count) * 1000; _averageResult = (_total / _count) * 1000;
// dump results // dump results
diag_log text format ["%1: Average: %2s / %3 = %4ms", _counterEntry select 0, _total, _count, _averageResult]; diag_log text format ["%1: Average: %2s / %3 = %4ms", _counterEntry select 0, _total, _count, _averageResult];
} else { } else {
diag_log text format ["%1: No results", _counterEntry select 0]; diag_log text format ["%1: No results", _counterEntry select 0];
}; };
@ -68,7 +68,7 @@ diag_log text format["-------------------------------------------"];
{ {
private _delay = _x select 2; private _delay = _x select 2;
//if(_delay > 0) then { _delay = _delay / 1000; }; //if(_delay > 0) then { _delay = _delay / 1000; };
diag_log text format["%1: %2s, delay=%3, handle=%4",(_x select 0), _delay, (_x select 3), (_x select 4)]; diag_log text format["%1: %2s, delay=%3, handle=%4",(_x select 0), _delay, (_x select 3), (_x select 4)];
} forEach ACE_PERFORMANCE_EXCESSIVE_STEP_TRACKER; } forEach ACE_PERFORMANCE_EXCESSIVE_STEP_TRACKER;

View File

@ -92,6 +92,15 @@ while {_rangeToCheck < _maxDistance} do {
private _point1ASL = (AGLtoASL _roundAGL) vectorAdd [_radiusOfItem * cos _angle, _radiusOfItem * sin _angle, 0.1]; private _point1ASL = (AGLtoASL _roundAGL) vectorAdd [_radiusOfItem * cos _angle, _radiusOfItem * sin _angle, 0.1];
private _point2ASL = (AGLtoASL _roundAGL) vectorAdd [-_radiusOfItem * cos _angle, -_radiusOfItem * sin _angle, (_radiusOfItem + 0.5)]; private _point2ASL = (AGLtoASL _roundAGL) vectorAdd [-_radiusOfItem * cos _angle, -_radiusOfItem * sin _angle, (_radiusOfItem + 0.5)];
private _testIntersections = lineIntersectsSurfaces [_point1ASL, _point2ASL]; private _testIntersections = lineIntersectsSurfaces [_point1ASL, _point2ASL];
if (((count _testIntersections) == 1) && {isNull ((_testIntersections select 0) select 2)}) then {
private _hitGroundASL = (_testIntersections select 0) select 0;
private _hitHeightOffset = ((AGLtoASL _roundAGL) select 2) - (_hitGroundASL select 2);
private _hit2dOffset = _roundAGL distance2D _hitGroundASL;
private _slope = _hitHeightOffset atan2 _hit2dOffset;
if (_slope < 25) then { //Ignore ground hit if slope is reasonable
_testIntersections = [];
};
};
if (!(_testIntersections isEqualTo [])) exitWith { if (!(_testIntersections isEqualTo [])) exitWith {
TRACE_2("collision low/high",_roundAGL,_testIntersections); TRACE_2("collision low/high",_roundAGL,_testIntersections);
_roundPointIsValid = false; _roundPointIsValid = false;

View File

@ -16,6 +16,16 @@
// setVectorUp requires local object // setVectorUp requires local object
if (!local _this) exitWith {}; if (!local _this) exitWith {};
if ((getText (configFile >> "CfgVehicles" >> (typeOf _this) >> "simulation")) == "house") then {
//Houses don't have gravity/physics, so make sure they are not floating
private _posAbove = (getPos _this) select 2;
TRACE_2("house",_this,_posAbove);
if (_posAbove > 0.1) then {
private _newPosASL = (getPosASL _this) vectorDiff [0,0,_posAbove];
_this setPosASL _newPosASL;
};
};
private _position = getPos _this; private _position = getPos _this;
// don't place the object below the ground // don't place the object below the ground

View File

@ -33,7 +33,11 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_unit"]; params ["_unit", ["_showDeprecated", true]];
if (_showDeprecated) then {
ACE_DEPRECATED("ace_common_fnc_getAllGear","3.7.0","getUnitLoadout");
};
if (isNull _unit) exitWith {[ if (isNull _unit) exitWith {[
"", "",

View File

@ -22,27 +22,81 @@ private _long = getNumber (configFile >> "CfgWorlds" >> _map >> "longitude");
private _lat = getNumber (configFile >> "CfgWorlds" >> _map >> "latitude"); private _lat = getNumber (configFile >> "CfgWorlds" >> _map >> "latitude");
private _altitude = getNumber (configFile >> "CfgWorlds" >> _map >> "elevationOffset"); private _altitude = getNumber (configFile >> "CfgWorlds" >> _map >> "elevationOffset");
if (_map in ["Chernarus", "Bootcamp_ACR", "Woodland_ACR", "utes"]) then { _lat = 50; _altitude = 0; }; _map = toLower _map;
if (_map in ["Altis", "Stratis"]) then { _lat = 40; _altitude = 0; }; if (_map in ["abbottabad"]) then { _lat = 34; _altitude = 1256; }; //Abbottabad elevation 1256m (Wikipedia)
if (_map in ["Takistan", "Zargabad", "Mountains_ACR"]) then { _lat = 35; _altitude = 2000; }; if (_map in ["abramia"]) then { _lat = 60; _altitude = 0; };
if (_map in ["Shapur_BAF", "ProvingGrounds_PMC"]) then { _lat = 35; _altitude = 100; }; if (_map in ["af_kandahar_province"]) then { _lat = 42; _altitude = 0; };
if (_map in ["altis"]) then { _lat = 40; _altitude = 0; };
if (_map in ["angel"]) then { _lat = 38; _altitude = 0; };
if (_map in ["anim_helvantis_v2"]) then { _lat = 50; _altitude = 0; };
if (_map in ["australia"]) then { _lat = -25; _altitude = 0; };
if (_map in ["bootcamp_acr"]) then { _lat = 50; _altitude = 0; };
if (_map in ["bornholm"]) then { _lat = 55; _altitude = 0; };
if (_map in ["bozcaada"]) then { _lat = 40; _altitude = 0; };
if (_map in ["caribou"]) then { _lat = 68; _altitude = 0; };
if (_map in ["catalina"]) then { _lat = 33; _altitude = 0; };
if (_map in ["chernarus", "chernarus_summer", "chernarus_winter"]) then { _lat = 50; _altitude = 0; };
if (_map in ["chernobylzone", "chernobylzonea2"]) then { _lat = 51; _altitude = 0; };
if (_map in ["clafghan"]) then { _lat = 34; _altitude = 640; };
if (_map in ["dakrong"]) then { _lat = 17; _altitude = 0; }; //Unsung Mod
if (_map in ["desert_e"]) then { _lat = 40; _altitude = 800; };
if (_map in ["dya"]) then { _lat = 34; _altitude = 110; }; //Diyala Iraq - default elevationOffset
if (_map in ["esseker"]) then { _lat = 43; _altitude = 2000; };
if (_map in ["evergreen"]) then { _lat = 41; _altitude = 0; }; //Burgazada, Turkey - default elevationOffset
if (_map in ["fallujah"]) then { _lat = 33; _altitude = 0; }; if (_map in ["fallujah"]) then { _lat = 33; _altitude = 0; };
if (_map in ["fata", "Abbottabad"]) then { _lat = 30; _altitude = 1000; }; if (_map in ["fata"]) then { _lat = 33; _altitude = 1347; };
if (_map in ["sfp_wamako"]) then { _lat = 14; _altitude = 0; }; if (_map in ["gorgona"]) then { _lat = 43; _altitude = 0; };
if (_map in ["sfp_sturko"]) then { _lat = 56; _altitude = 0; }; if (_map in ["hellskitchen", "hellskitchens"]) then { _lat = 32; _altitude = 900; }; //Sangin summer, Sangin winter - Sangin elevation 888m (Wikipedia)
if (_map in ["Bornholm"]) then { _lat = 55; _altitude = 0; }; if (_map in ["hindukush"]) then { _lat = 36; _altitude = 0; };
if (_map in ["Imrali"]) then { _lat = 40; _altitude = 0; }; if (_map in ["imrali", "imralispring"]) then { _lat = 40; _altitude = 0; };
if (_map in ["Caribou"]) then { _lat = 68; _altitude = 0; }; if (_map in ["intro"]) then { _lat = 40; _altitude = 0; };
if (_map in ["Namalsk"]) then { _lat = 65; _altitude = 0; }; if (_map in ["isladuala3"]) then { _lat = -19; _altitude = 0; };
if (_map in ["MCN_Aliabad"]) then { _lat = 36; _altitude = 0; }; if (_map in ["jacobi"]) then { _lat = 34; _altitude = 2000; }; //default elevationOffset
if (_map in ["Clafghan"]) then { _lat = 34; _altitude = 640; }; if (_map in ["kapaulio"]) then { _lat = 0; _altitude = 0; };
if (_map in ["Sangin", "hellskitchen"]) then { _lat = 32; _altitude = 0; }; if (_map in ["kerama"]) then { _lat = 26; _altitude = 0; }; //Kerama Islands, Japan - default elevationOffset
if (_map in ["Sara"]) then { _lat = 40; _altitude = 0; }; if (_map in ["kholm"]) then { _lat = 36; _altitude = 0; };
if (_map in ["koplic"]) then { _lat = 42; _altitude = 0; };
if (_map in ["kunduz"]) then { _lat = 37; _altitude = 0; };
if (_map in ["lingor", "lingor3"]) then { _lat = -4; _altitude = 0; };
if (_map in ["lost", "lostw"]) then { _lat = 60; _altitude = 0; };
if (_map in ["mcn_aliabad"]) then { _lat = 36; _altitude = 0; };
if (_map in ["malvinas"]) then { _lat = -52; _altitude = 0; };
if (_map in ["namalsk"]) then { _lat = 65; _altitude = 0; };
if (_map in ["mef_alaska"]) then { _lat = 60; _altitude = 5; };
if (_map in ["mountains_acr"]) then { _lat = 35; _altitude = 2000; };
if (_map in ["napf", "napfwinter"]) then { _lat = 47; _altitude = 0; };
if (_map in ["panthera3"]) then { _lat = 46; _altitude = 0; };
if (_map in ["pianosa_aut"]) then { _lat = 43; _altitude = 0; }; //Pianosa, Italy - default elevationOffset
if (_map in ["pja305"]) then { _lat = 0; _altitude = 0; }; //G.O.S N'Ziwasogo
if (_map in ["pja306"]) then { _lat = 35; _altitude = 0; }; //G.O.S Kalu Khan
if (_map in ["pja307"]) then { _lat = 17; _altitude = 0; }; //F.S.F Daryah
if (_map in ["pja308"]) then { _lat = 36; _altitude = 0; }; //G.O.S Gunkizli
if (_map in ["pja310"]) then { _lat = 36; _altitude = 0; }; //G.O.S Al Rayak
if (_map in ["pja312"]) then { _lat = 16; _altitude = 0; }; //G.O.S Song Bin Tanh
if (_map in ["porquerolles"]) then { _lat = 43; _altitude = 0; };
if (_map in ["porto"]) then { _lat = 40; _altitude = 0; };
if (_map in ["provinggrounds_pmc"]) then { _lat = 35; _altitude = 100; };
if (_map in ["reshmaan"]) then { _lat = 35; _altitude = 2000; }; if (_map in ["reshmaan"]) then { _lat = 35; _altitude = 2000; };
if (_map in ["Thirsk"]) then { _lat = 65; _altitude = 0; }; if (_map in ["sara", "sara_dbe1"]) then { _lat = 40; _altitude = 0; };
if (_map in ["lingor"]) then { _lat = -4; _altitude = 0; }; if (_map in ["saralite"]) then { _lat = 40; _altitude = 0; };
if (_map in ["Panthera3"]) then { _lat = 46; _altitude = 0; }; if (_map in ["sb3"]) then { _lat = 53; _altitude = 25; }; //TrpUebPl Einfelde Nord (Munster North Training Area, Germany) - default elevationOffset
if (_map in ["Kunduz"]) then { _lat = 37; _altitude = 400; }; if (_map in ["shapur_baf"]) then { _lat = 35; _altitude = 100; };
if (_map in ["sfp_sturko"]) then { _lat = 56; _altitude = 0; };
if (_map in ["sfp_wamako"]) then { _lat = 14; _altitude = 0; };
if (_map in ["stratis"]) then { _lat = 40; _altitude = 0; };
if (_map in ["sugarlake"]) then { _lat = 29; _altitude = 0; };
if (_map in ["takistan"]) then { _lat = 35; _altitude = 2000; };
if (_map in ["thirsk"]) then { _lat = 65; _altitude = 0; };
if (_map in ["tilos"]) then { _lat = 36; _altitude = 0; };
if (_map in ["utes"]) then { _lat = 50; _altitude = 0; };
if (_map in ["vt5"]) then { _lat = 61; _altitude = 100; }; //Vt5, Suomi Finland - default elevationOffset
if (_map in ["wake"]) then { _lat = 19; _altitude = 0; };
if (_map in ["waziristan"]) then { _lat = 33; _altitude = 0; };
if (_map in ["wintermap"]) then { _lat = 61; _altitude = 0; }; //Nordkvingo - default elevationOffset
if (_map in ["wintertown", "wintertowna3"]) then { _lat = 39; _altitude = 600; }; //U.S. state Kansas mean elevation 610m (Wikipedia)
if (_map in ["woodland_acr"]) then { _lat = 50; _altitude = 0; };
if (_map in ["xcam_prototype"]) then { _lat = 35; _altitude = 0; };
if (_map in ["zargabad"]) then { _lat = 35; _altitude = 2000; };
private _UTM = [_long,_lat] call BIS_fnc_posDegToUTM; private _UTM = [_long,_lat] call BIS_fnc_posDegToUTM;
private _easting = _UTM select 0; private _easting = _UTM select 0;

View File

@ -18,7 +18,7 @@ private _muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles")
{ {
if (_x == "this") then { if (_x == "this") then {
_muzzles set [_forEachIndex, _weapon]; _muzzles set [_forEachIndex, configName (configFile >> "CfgWeapons" >> _weapon)];
}; };
} forEach _muzzles; } forEach _muzzles;

View File

@ -4,7 +4,7 @@
* *
* Arguments: * Arguments:
* 0: unit <OBJECT> * 0: unit <OBJECT>
* 1: weapon <STRING> * 1: weapon (optional, default: units current weapon) <STRING>
* *
* Return Value: * Return Value:
* 0: Attachements <ARRAY> * 0: Attachements <ARRAY>
@ -16,21 +16,19 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_unit", "_weapon"]; params [["_unit", objNull, [objNull]], ["_weapon", nil, [""]]];
if (isNil "_weapon") then {
_weapon = currentWeapon _unit;
};
private _attachments = [_unit weaponAccessories _weapon] param [0, ["","","",""]];
private _muzzles = _weapon call FUNC(getWeaponMuzzles); private _muzzles = _weapon call FUNC(getWeaponMuzzles);
private _weaponInfo = [["","","",""], primaryWeaponItems _unit, secondaryWeaponItems _unit, handgunItems _unit] select ((["", primaryWeapon _unit, secondaryWeapon _unit, handgunWeapon _unit] find _weapon) max 0);
// get loaded magazines and ammo // get loaded magazines and ammo
private _magazines = []; private _magazines = _muzzles apply {""};
private _ammo = []; private _ammo = _muzzles apply {0};
{
_magazines pushBack "";
_ammo pushBack 0;
false
} count _muzzles;
{ {
if (_x select 2) then { if (_x select 2) then {
@ -44,6 +42,4 @@ private _ammo = [];
false false
} count magazinesAmmoFull _unit; } count magazinesAmmoFull _unit;
_weaponInfo append [_muzzles, _magazines, _ammo]; [_attachments, _muzzles, _magazines, _ammo];
_weaponInfo

View File

@ -0,0 +1,19 @@
/*
* Author: BaerMitUmlaut
* Blocks turning on the vehicles engine if set by the status effect handler.
*
* Arguments:
* 0: Vehicle <OBJECT>
* 1: Engine state <BOOL>
*
* Return Value:
* None
*
* Public: No
*/
#include "script_component.hpp"
params ["_vehicle", "_engineOn"];
if (local _vehicle && {_engineOn} && {_vehicle getVariable [QGVAR(blockEngine), false]}) then {
_vehicle engineOn false;
};

View File

@ -21,33 +21,18 @@ private _vehicle = objNull;
if (!([_caller, _unit, ["isNotDragging", "isNotCarrying"]] call FUNC(canInteractWith)) || {_caller == _unit}) exitWith {_vehicle}; if (!([_caller, _unit, ["isNotDragging", "isNotCarrying"]] call FUNC(canInteractWith)) || {_caller == _unit}) exitWith {_vehicle};
private _loadcar = nearestObject [_unit, "Car"]; private _nearVehicles = nearestObjects [_unit, ["Car", "Air", "Tank", "Ship_F"], 10];
if (_unit distance _loadcar <= 10) then { {
_vehicle = _loadcar; TRACE_1("",_x);
} else { if ((_x emptyPositions "cargo" > 0) || {_x emptyPositions "gunner" > 0}) exitWith {
private _loadair = nearestObject [_unit, "Air"]; _vehicle = _x;
if (_unit distance _loadair <= 10) then {
_vehicle = _loadair;
} else {
private _loadtank = nearestObject [_unit, "Tank"];
if (_unit distance _loadtank <= 10) then {
_vehicle = _loadtank;
} else {
private _loadboat = nearestObject [_unit, "Ship_F"];
if (_unit distance _loadboat <= 10) then {
_vehicle = _loadboat;
};
};
}; };
}; } forEach _nearVehicles;
if (!isNull _vehicle) then { if (!isNull _vehicle) then {
[_unit, true, GROUP_SWITCH_ID, side group _caller] call FUNC(switchToGroupSide); [_unit, true, GROUP_SWITCH_ID, side group _caller] call FUNC(switchToGroupSide);
[[_unit, _vehicle, _caller], QFUNC(loadPersonLocal), _unit, false] call FUNC(execRemoteFnc); ["loadPersonEvent", _unit, [_unit, _vehicle, _caller]] call FUNC(objectEvent);
}; };
_vehicle _vehicle

View File

@ -34,7 +34,7 @@ createDialog QGVAR(ProgressBar_Dialog);
//Adjust position based on user setting: //Adjust position based on user setting:
private _ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)); private _ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBarTitle));
_ctrlPos set [1, ((0 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))]; _ctrlPos set [1, ((0 + 29 * GVAR(settingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlSetPosition _ctrlPos; (uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlCommit 0; (uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlCommit 0;

View File

@ -15,7 +15,7 @@
params ["_name"]; params ["_name"];
if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith { if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
ACE_LOGERROR("Synced event key not found."); ACE_LOGERROR_1("Synced event key [%1] not found (removeSyncedEventHandler).", _name);
false false
}; };

View File

@ -18,6 +18,8 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
ACE_DEPRECATED("ace_common_fnc_setAllGear","3.7.0","setUnitLoadout");
params ["_unit", "_allGear", ["_clearAttachments", false], ["_clearBackpack", false]]; params ["_unit", "_allGear", ["_clearAttachments", false], ["_clearBackpack", false]];
if (!local _unit) exitWith { if (!local _unit) exitWith {

View File

@ -54,5 +54,5 @@ private _lowestVolume = 1;
0 fadeMusic _lowestVolume; 0 fadeMusic _lowestVolume;
// Set Radio mod variables. // Set Radio mod variables.
player setVariable ["tf_globalVolume", _lowestVolume]; ACE_player setVariable ["tf_globalVolume", _lowestVolume];
if (!isNil "acre_api_fnc_setGlobalVolume") then { [_lowestVolume^0.33] call acre_api_fnc_setGlobalVolume; }; if (!isNil "acre_api_fnc_setGlobalVolume") then { [_lowestVolume^0.33] call acre_api_fnc_setGlobalVolume; };

View File

@ -19,13 +19,7 @@ if (isNull _unit || {!alive _unit}) exitWith {};
if (_unit isKindOf "CAManBase") then { if (_unit isKindOf "CAManBase") then {
private _sanitizedName = [name _unit, true] call FUNC(sanitizeString); private _sanitizedName = [name _unit, true] call FUNC(sanitizeString);
private _rawName = [name _unit, false] call FUNC(sanitizeString); private _rawName = [name _unit, false] call FUNC(sanitizeString);
//Debug Testing Code (with html tags):
// private _sanitizedName = ["<TAG>Name", true] call FUNC(sanitizeString);
// private _rawName = ["<TAG>Name", false] call FUNC(sanitizeString);
//if (_name != _unit getVariable ["ACE_Name", ""]) then {
_unit setVariable ["ACE_Name", _sanitizedName, true]; _unit setVariable ["ACE_Name", _sanitizedName, true];
_unit setVariable ["ACE_NameRaw", _rawName, true]; _unit setVariable ["ACE_NameRaw", _rawName, true];
//};
}; };

View File

@ -17,7 +17,7 @@
params ["_name", "_args", ["_ttl", 0]]; params ["_name", "_args", ["_ttl", 0]];
if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith { if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
ACE_LOGERROR("Synced event key not found."); ACE_LOGERROR_1("Synced event key [%1] not found (syncedEvent).", _name);
false false
}; };

View File

@ -12,9 +12,17 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
disableSerialization; _this spawn {//
waitUntil {!isNull findDisplay 46};//
sleep 2;//
params ["_display"]; disableSerialization;
_display displayAddEventHandler ["KeyDown", FUNC(handleModifierKey)]; params ["_display"];
_display displayAddEventHandler ["KeyUp", FUNC(handleModifierKeyUp)];
_display displayAddEventHandler ["KeyDown", {_this call FUNC(handleModifierKey)}];
_display displayAddEventHandler ["KeyUp", {_this call FUNC(handleModifierKeyUp)}];
};//
//@todo, remove all lines with comments after CBA update, events rewrite branch
// note 2, will break in save games after ~ 10 seconds thanks to CBA, fixed with above

View File

@ -802,6 +802,7 @@
<Italian>Non c'è spazio per scaricare</Italian> <Italian>Non c'è spazio per scaricare</Italian>
<Spanish>No hay espacio para descargar.</Spanish> <Spanish>No hay espacio para descargar.</Spanish>
<French>Pas de place pour décharger</French> <French>Pas de place pour décharger</French>
<Czech>Nedostatek místa k vyložení</Czech>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -86,7 +86,7 @@ class CfgVehicles {
selection = ""; selection = "";
displayName = "$STR_ACE_UNROLLWIRE"; displayName = "$STR_ACE_UNROLLWIRE";
distance = 5; distance = 5;
condition = "true"; condition = "alive _target";
statement = QUOTE([ARR_2(_target,_player)] call FUNC(dismount)); statement = QUOTE([ARR_2(_target,_player)] call FUNC(dismount));
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
@ -119,7 +119,7 @@ class CfgVehicles {
accuracy = 1000; accuracy = 1000;
autocenter = 0; autocenter = 0;
EGVAR(dragging,canDrag) = 1; EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition[]) = {0,0.5,0.5}; EGVAR(dragging,dragPosition)[] = {0,0.5,0.5};
EGVAR(dragging,dragDirection) = 0; EGVAR(dragging,dragDirection) = 0;
EGVAR(cargo,size) = 1; EGVAR(cargo,size) = 1;
EGVAR(cargo,canLoad) = 1; EGVAR(cargo,canLoad) = 1;

View File

@ -14,13 +14,17 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_wire", "_killer"]; params ["_wire", "_killer"];
TRACE_2("params",_wire,_killer);
private ["_distance", "_vehicle"]; private ["_distance", "_vehicle"];
if (isNull _killer) then { if (isNull _killer) then {
_killer = _wire getVariable ["ace_concertina_wire_lastDamager", objNull]; _killer = _wire getVariable ["ace_concertina_wire_lastDamager", objNull];
if (isNull _killer) then { if (isNull _killer) then {
_killer = nearestObject [_wire, "car"]; private _midPoint = ((_wire selectionPosition "start") vectorAdd (_wire selectionPosition "deploy")) vectorMultiply 0.5;
{
if ((vectorMagnitude velocity _x) > 0) exitWith {_killer = _x};
} forEach (nearestObjects [(_wire modelToWorld _midPoint), ["Car"], 8]);
}; };
}; };
if (isNull _killer || {_killer == _wire} || {_killer == gunner (vehicle _killer)}) exitWith {}; if (isNull _killer || {_killer == _wire} || {_killer == gunner (vehicle _killer)}) exitWith {};

View File

@ -76,349 +76,349 @@
class RscText; class RscText;
class DAGR_Button { class DAGR_Button {
idc = -1; idc = -1;
type = CT_BUTTON; type = CT_BUTTON;
style = ST_LEFT; style = ST_LEFT;
font = "RobotoCondensed"; font = "RobotoCondensed";
sizeEx = 0.02; sizeEx = 0.02;
colorText[] = { 0, 1, 0, 1 }; colorText[] = { 0, 1, 0, 1 };
colorFocused[] = { 0, 0, 0, 0 }; // border color for focused state colorFocused[] = { 0, 0, 0, 0 }; // border color for focused state
colorDisabled[] = { 0, 0, 0, 0 }; // text color for disabled state colorDisabled[] = { 0, 0, 0, 0 }; // text color for disabled state
colorBackground[] = { 0, 0, 0, 0 }; colorBackground[] = { 0, 0, 0, 0 };
colorBackgroundDisabled[] = { 0, 0, 0, 0 }; // background color for disabled state colorBackgroundDisabled[] = { 0, 0, 0, 0 }; // background color for disabled state
colorBackgroundActive[] = { 0, 0, 0, 0 }; // background color for active state colorBackgroundActive[] = { 0, 0, 0, 0 }; // background color for active state
offsetX = 0; offsetX = 0;
offsetY = 0; offsetY = 0;
offsetPressedX = 0; offsetPressedX = 0;
offsetPressedY = 0; offsetPressedY = 0;
colorShadow[] = { 0, 0, 0, 0 }; colorShadow[] = { 0, 0, 0, 0 };
colorBorder[] = { 0, 0, 0, 0 }; colorBorder[] = { 0, 0, 0, 0 };
borderSize = 0; borderSize = 0;
soundEnter[] = { "", 0, 1 }; // no sound soundEnter[] = { "", 0, 1 }; // no sound
soundPush[] = { "", 0, 1 }; soundPush[] = { "", 0, 1 };
soundClick[] = { "", 0, 1 }; // no sound soundClick[] = { "", 0, 1 }; // no sound
soundEscape[] = { "", 0, 1 }; // no sound soundEscape[] = { "", 0, 1 }; // no sound
x = 0.5; x = 0.5;
y = 0.5; y = 0.5;
w = 0.07; w = 0.07;
h = 0.05; h = 0.05;
text = ""; text = "";
action = ""; action = "";
}; };
class DAGR_Menu_Pic { class DAGR_Menu_Pic {
type = 0; type = 0;
idc = -1; idc = -1;
style = 48; style = 48;
x = 0; x = 0;
y = 0; y = 0;
w = 0.7; w = 0.7;
h = 1.4; h = 1.4;
text = ""; text = "";
colorBackground[] = {}; colorBackground[] = {};
colorText[] = {}; colorText[] = {};
font = "RobotoCondensed"; font = "RobotoCondensed";
sizeEx = 0.04; sizeEx = 0.04;
waitForLoad = 0; waitForLoad = 0;
}; };
class DAGR_Menu_Text { class DAGR_Menu_Text {
type = 0; type = 0;
idc = -1; idc = -1;
style = 0x00; style = 0x00;
x = 0.5; x = 0.5;
y = 0.5; y = 0.5;
w = 0.15; w = 0.15;
h = 0.15; h = 0.15;
colorBackground[] = { 0, 0, 0, 0 }; colorBackground[] = { 0, 0, 0, 0 };
colorText[] = { 0.239, 0.216, 0.153, 1 }; colorText[] = { 0.239, 0.216, 0.153, 1 };
font = "RobotoCondensed"; font = "RobotoCondensed";
sizeEx = 0.03; sizeEx = 0.03;
waitForLoad = 0; waitForLoad = 0;
text = ""; text = "";
}; };
class DAGR_Menu { class DAGR_Menu {
idd = 266860; idd = 266860;
movingEnable = false; movingEnable = false;
duration = 100000; duration = 100000;
fadein = 0; fadein = 0;
fadeout = 0; fadeout = 0;
name = "Dagr_Menu"; name = "Dagr_Menu";
onLoad = "uiNamespace setVariable ['DAGR_Menu', _this select 0]"; onLoad = "uiNamespace setVariable ['DAGR_Menu', _this select 0]";
onUnload = QUOTE(GVAR(PWR) = true); // Simulate pressing the power button onUnload = QUOTE(GVAR(PWR) = true); // Simulate pressing the power button
controls[] = {"DAGR_MENU_UI", "DAGR_PWR_Button", "DAGR_UP_Button", "DAGR_DOWN_Button", "DAGR_LEFT_Button", "DAGR_RIGHT_Button", "DAGR_NEXT_Button", controls[] = {"DAGR_MENU_UI", "DAGR_PWR_Button", "DAGR_UP_Button", "DAGR_DOWN_Button", "DAGR_LEFT_Button", "DAGR_RIGHT_Button", "DAGR_NEXT_Button",
"DAGR_SEL_Button", "DAGR_MENU_Button", "DAGR_F1_Button", "DAGR_F2_Button", "DAGR_F3_Button", "DAGR_F1_Text", "DAGR_F2_Text", "DAGR_F3_Text", "DAGR_MENU_OPTION0", "DAGR_SEL_Button", "DAGR_MENU_Button", "DAGR_F1_Button", "DAGR_F2_Button", "DAGR_F3_Button", "DAGR_F1_Text", "DAGR_F2_Text", "DAGR_F3_Text", "DAGR_MENU_OPTION0",
"DAGR_MENU_OPTION1", "DAGR_MENU_OPTION2", "DAGR_MENU_OPTION3", "DAGR_MENU_OPTION4", "DAGR_MENU_SELECTION0", "DAGR_MENU_SELECTION1", "DAGR_MENU_SELECTION2", "DAGR_MENU_OPTION1", "DAGR_MENU_OPTION2", "DAGR_MENU_OPTION3", "DAGR_MENU_OPTION4", "DAGR_MENU_SELECTION0", "DAGR_MENU_SELECTION1", "DAGR_MENU_SELECTION2",
"DAGR_MENU_SELECTION3", "DAGR_MENU_SELECTION4", "DAGR_MENU_Main_Text", "DAGR_MENU_PSELECTION1", "DAGR_MENU_PSELECTION2", "DAGR_MENU_PSELECTION3", "DAGR_MENU_SELECTION3", "DAGR_MENU_SELECTION4", "DAGR_MENU_Main_Text", "DAGR_MENU_PSELECTION1", "DAGR_MENU_PSELECTION2", "DAGR_MENU_PSELECTION3",
"DAGR_MENU_PSELECTION4", "DAGR_MENU_PSELECTION5", "DAGR_MENU_PSELECTION6","DAGR_MENU_PSELECTION7", "DAGR_MENU_PSELECTION8"}; "DAGR_MENU_PSELECTION4", "DAGR_MENU_PSELECTION5", "DAGR_MENU_PSELECTION6","DAGR_MENU_PSELECTION7", "DAGR_MENU_PSELECTION8"};
class DAGR_MENU_UI : DAGR_Menu_Pic { class DAGR_MENU_UI : DAGR_Menu_Pic {
idc = 266861; idc = 266861;
x = 0.175; x = 0.175;
y = -0.173; y = -0.173;
text = QUOTE(PATHTOF(UI\dagr_menu.paa)); text = QUOTE(PATHTOF(UI\dagr_menu.paa));
sizeEx = 0.1; sizeEx = 0.1;
}; };
class DAGR_PWR_Button : DAGR_Button { class DAGR_PWR_Button : DAGR_Button {
idc = 266863; idc = 266863;
action = QUOTE(GVAR(PWR) = true); action = QUOTE(GVAR(PWR) = true);
x = 0.40; x = 0.40;
y = 0.65; y = 0.65;
}; };
class DAGR_UP_Button : DAGR_Button { class DAGR_UP_Button : DAGR_Button {
idc = 266864; idc = 266864;
action = QUOTE(GVAR(UP) = true); action = QUOTE(GVAR(UP) = true);
x = 0.50; x = 0.50;
y = 0.675; y = 0.675;
}; };
class DAGR_DOWN_Button : DAGR_Button { class DAGR_DOWN_Button : DAGR_Button {
idc = 266865; idc = 266865;
action = QUOTE(GVAR(DOWN) = true); action = QUOTE(GVAR(DOWN) = true);
x = 0.50; x = 0.50;
y = 0.81; y = 0.81;
}; };
class DAGR_LEFT_Button : DAGR_Button { class DAGR_LEFT_Button : DAGR_Button {
idc = 266866; idc = 266866;
action = QUOTE(GVAR(LEFT) = true); action = QUOTE(GVAR(LEFT) = true);
x = 0.40; x = 0.40;
y = 0.735; y = 0.735;
w = 0.05; w = 0.05;
h = 0.07; h = 0.07;
}; };
class DAGR_RIGHT_Button : DAGR_Button { class DAGR_RIGHT_Button : DAGR_Button {
idc = 266867; idc = 266867;
action = QUOTE(GVAR(RIGHT) = true); action = QUOTE(GVAR(RIGHT) = true);
x = 0.62; x = 0.62;
y = 0.735; y = 0.735;
w = 0.05; w = 0.05;
h = 0.07; h = 0.07;
}; };
class DAGR_NEXT_Button : DAGR_Button { class DAGR_NEXT_Button : DAGR_Button {
idc = 266868; idc = 266868;
action = QUOTE(DAGR_NEXT = true); action = QUOTE(DAGR_NEXT = true);
x = 0.60; x = 0.60;
y = 0.65; y = 0.65;
}; };
class DAGR_SEL_Button : DAGR_Button { class DAGR_SEL_Button : DAGR_Button {
idc = 266869; idc = 266869;
action = QUOTE(GVAR(SEL) = true); action = QUOTE(GVAR(SEL) = true);
x = 0.54; x = 0.54;
y = 0.735; y = 0.735;
w = 0.06; w = 0.06;
h = 0.06; h = 0.06;
}; };
class DAGR_MENU_Button : DAGR_Button { class DAGR_MENU_Button : DAGR_Button {
idc = 266870; idc = 266870;
action = QUOTE(GVAR(MENU_B) = true); action = QUOTE(GVAR(MENU_B) = true);
x = 0.46; x = 0.46;
y = 0.735; y = 0.735;
w = 0.06; w = 0.06;
h = 0.06; h = 0.06;
}; };
class DAGR_F1_Button : DAGR_Button { class DAGR_F1_Button : DAGR_Button {
idc = 266871; idc = 266871;
action = QUOTE(GVAR(F1) = true); action = QUOTE(GVAR(F1) = true);
x = 0.40; x = 0.40;
y = 0.575; y = 0.575;
}; };
class DAGR_F2_Button : DAGR_Button { class DAGR_F2_Button : DAGR_Button {
idc = 266872; idc = 266872;
action = QUOTE(GVAR(F2) = true); action = QUOTE(GVAR(F2) = true);
x = 0.495; x = 0.495;
y = 0.575; y = 0.575;
}; };
class DAGR_F3_Button : DAGR_Button { class DAGR_F3_Button : DAGR_Button {
idc = 266873; idc = 266873;
action = QUOTE(GVAR(F3) = true); action = QUOTE(GVAR(F3) = true);
x = 0.59; x = 0.59;
y = 0.575; y = 0.575;
}; };
class DAGR_F1_Text : DAGR_Menu_Text { class DAGR_F1_Text : DAGR_Menu_Text {
idc = 266874; idc = 266874;
x = 0.388; x = 0.388;
y = 0.38; y = 0.38;
text = ""; text = "";
}; };
class DAGR_F2_Text : DAGR_Menu_Text { class DAGR_F2_Text : DAGR_Menu_Text {
idc = 266875; idc = 266875;
x = 0.506; x = 0.506;
y = 0.38; y = 0.38;
}; };
class DAGR_F3_Text : DAGR_Menu_Text { class DAGR_F3_Text : DAGR_Menu_Text {
idc = 266876; idc = 266876;
x = 0.612; x = 0.612;
y = 0.38; y = 0.38;
}; };
class DAGR_MENU_OPTION0 : DAGR_Menu_Text { class DAGR_MENU_OPTION0 : DAGR_Menu_Text {
idc = 2668777; idc = 2668777;
style = 0x02; style = 0x02;
sizeEx = 0.035; sizeEx = 0.035;
x = 0.43; x = 0.43;
y = 0.19; y = 0.19;
}; };
class DAGR_MENU_OPTION1 : DAGR_Menu_Text { class DAGR_MENU_OPTION1 : DAGR_Menu_Text {
idc = 2668778; idc = 2668778;
style = 0x02; style = 0x02;
sizeEx = 0.035; sizeEx = 0.035;
x = 0.43; x = 0.43;
y = 0.225; y = 0.225;
}; };
class DAGR_MENU_OPTION2 : DAGR_Menu_Text { class DAGR_MENU_OPTION2 : DAGR_Menu_Text {
idc = 2668779; idc = 2668779;
style = 0x02; style = 0x02;
sizeEx = 0.035; sizeEx = 0.035;
x = 0.43; x = 0.43;
y = 0.26; y = 0.26;
}; };
class DAGR_MENU_OPTION3 : DAGR_Menu_Text { class DAGR_MENU_OPTION3 : DAGR_Menu_Text {
idc = 2668780; idc = 2668780;
style = 0x02; style = 0x02;
sizeEx = 0.035; sizeEx = 0.035;
x = 0.43; x = 0.43;
y = 0.295; y = 0.295;
}; };
class DAGR_MENU_OPTION4 : DAGR_Menu_Text { class DAGR_MENU_OPTION4 : DAGR_Menu_Text {
idc = 2668781; idc = 2668781;
style = 0x02; style = 0x02;
sizeEx = 0.035; sizeEx = 0.035;
x = 0.43; x = 0.43;
y = 0.33; y = 0.33;
}; };
class DAGR_MENU_SELECTION0 : DAGR_Menu_Pic { class DAGR_MENU_SELECTION0 : DAGR_Menu_Pic {
idc = 2668783; idc = 2668783;
x = 0.42; x = 0.42;
y = 0.246; y = 0.246;
w = 0.17; w = 0.17;
h = 0.035; h = 0.035;
sizeEx = 0.05; sizeEx = 0.05;
}; };
class DAGR_MENU_SELECTION1 : DAGR_Menu_Pic { class DAGR_MENU_SELECTION1 : DAGR_Menu_Pic {
idc = 2668784; idc = 2668784;
x = 0.42; x = 0.42;
y = 0.281; y = 0.281;
w = 0.17; w = 0.17;
h = 0.035; h = 0.035;
sizeEx = 0.05; sizeEx = 0.05;
}; };
class DAGR_MENU_SELECTION2 : DAGR_Menu_Pic { class DAGR_MENU_SELECTION2 : DAGR_Menu_Pic {
idc = 2668785; idc = 2668785;
x = 0.42; x = 0.42;
y = 0.316; y = 0.316;
w = 0.17; w = 0.17;
h = 0.035; h = 0.035;
sizeEx = 0.05; sizeEx = 0.05;
}; };
class DAGR_MENU_SELECTION3 : DAGR_Menu_Pic { class DAGR_MENU_SELECTION3 : DAGR_Menu_Pic {
idc = 2668786; idc = 2668786;
x = 0.42; x = 0.42;
y = 0.351; y = 0.351;
w = 0.17; w = 0.17;
h = 0.035; h = 0.035;
sizeEx = 0.05; sizeEx = 0.05;
}; };
class DAGR_MENU_SELECTION4 : DAGR_Menu_Pic { class DAGR_MENU_SELECTION4 : DAGR_Menu_Pic {
idc = 2668787; idc = 2668787;
x = 0.42; x = 0.42;
y = 0.386; y = 0.386;
w = 0.17; w = 0.17;
h = 0.035; h = 0.035;
sizeEx = 0.05; sizeEx = 0.05;
}; };
class DAGR_MENU_Main_Text : DAGR_Menu_Text { class DAGR_MENU_Main_Text : DAGR_Menu_Text {
idc = 2668782; idc = 2668782;
style = ST_CENTER; style = ST_CENTER;
x = 0.38; x = 0.38;
y = 0.32; y = 0.32;
w = 0.25; w = 0.25;
h = 0.035; h = 0.035;
sizeEx = 0.04; sizeEx = 0.04;
}; };
class DAGR_MENU_PSELECTION1 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION1 : DAGR_Menu_Pic {
idc = 2668788; idc = 2668788;
x = 0.451; x = 0.451;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
class DAGR_MENU_PSELECTION2 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION2 : DAGR_Menu_Pic {
idc = 2668789; idc = 2668789;
x = 0.465; x = 0.465;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
class DAGR_MENU_PSELECTION3 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION3 : DAGR_Menu_Pic {
idc = 2668790; idc = 2668790;
x = 0.479; x = 0.479;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
class DAGR_MENU_PSELECTION4 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION4 : DAGR_Menu_Pic {
idc = 2668791; idc = 2668791;
x = 0.493; x = 0.493;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
class DAGR_MENU_PSELECTION5 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION5 : DAGR_Menu_Pic {
idc = 2668792; idc = 2668792;
x = 0.507; x = 0.507;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
class DAGR_MENU_PSELECTION6 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION6 : DAGR_Menu_Pic {
idc = 2668793; idc = 2668793;
x = 0.521; x = 0.521;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
class DAGR_MENU_PSELECTION7 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION7 : DAGR_Menu_Pic {
idc = 2668794; idc = 2668794;
x = 0.535; x = 0.535;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
class DAGR_MENU_PSELECTION8 : DAGR_Menu_Pic { class DAGR_MENU_PSELECTION8 : DAGR_Menu_Pic {
idc = 2668795; idc = 2668795;
x = 0.549; x = 0.549;
y = 0.352; y = 0.352;
w = 0.01; w = 0.01;
h = 0.003; h = 0.003;
}; };
}; };

View File

@ -1,95 +1,95 @@
class RscTitles { class RscTitles {
class DAGR_Text { class DAGR_Text {
type = 0; type = 0;
idc = -1; idc = -1;
style = 0x01; style = 0x01;
x = 0; x = 0;
y = 0; y = 0;
w = 0.15; w = 0.15;
h = 0.050; h = 0.050;
text = ""; text = "";
colorBackground[] = { 0, 0, 0, 0 }; colorBackground[] = { 0, 0, 0, 0 };
colorText[] = { 0.239, 0.216, 0.153, 1 }; colorText[] = { 0.239, 0.216, 0.153, 1 };
font = "RobotoCondensed"; font = "RobotoCondensed";
sizeEx = 0.04; sizeEx = 0.04;
waitForLoad = 0; waitForLoad = 0;
}; };
class DAGR_Pic { class DAGR_Pic {
type = 0; type = 0;
idc = -1; idc = -1;
style = 48; style = 48;
x = 0; x = 0;
y = 0; y = 0;
w = 0.50; w = 0.50;
h = 0.50; h = 0.50;
text = ""; text = "";
colorBackground[] = {}; colorBackground[] = {};
colorText[] = {}; colorText[] = {};
font = "RobotoCondensed"; font = "RobotoCondensed";
sizeEx = 0.02; sizeEx = 0.02;
waitForLoad = 0; waitForLoad = 0;
}; };
class DAGR_Display { class DAGR_Display {
idd = 266850; idd = 266850;
movingEnable = false; movingEnable = false;
duration = 100000; duration = 100000;
fadein = 0; fadein = 0;
fadeout = 0; fadeout = 0;
name = "Dagr_Display"; name = "Dagr_Display";
onLoad="uiNamespace setVariable ['DAGR_Display', _this select 0]"; onLoad="uiNamespace setVariable ['DAGR_Display', _this select 0]";
controls[] = {"DAGR_UI", "DAGR_Grid", "DAGR_Speed", "DAGR_Elevation", "DAGR_Heading", "DAGR_Time", "DAGR_WP", "DAGR_Bearing", "DAGR_DIST"}; controls[] = {"DAGR_UI", "DAGR_Grid", "DAGR_Speed", "DAGR_Elevation", "DAGR_Heading", "DAGR_Time", "DAGR_WP", "DAGR_Bearing", "DAGR_DIST"};
class DAGR_UI : DAGR_Pic { class DAGR_UI : DAGR_Pic {
idc = 266856; idc = 266856;
x = "(SafeZoneW + SafeZoneX) - 0.45"; x = "(SafeZoneW + SafeZoneX) - 0.45";
y = "(SafeZoneH + SafeZoneY) - 0.47"; y = "(SafeZoneH + SafeZoneY) - 0.47";
}; };
class DAGR_Grid : DAGR_Text { class DAGR_Grid : DAGR_Text {
idc = 266851; idc = 266851;
x = "(SafeZoneW + SafeZoneX) - 0.370";// 0.830 x = "(SafeZoneW + SafeZoneX) - 0.370";// 0.830
y = "(SafeZoneH + SafeZoneY)- 0.250";// 0.845 y = "(SafeZoneH + SafeZoneY)- 0.250";// 0.845
w = 0.25; w = 0.25;
h = 0.06; h = 0.06;
sizeEx = 0.07; sizeEx = 0.07;
}; };
class DAGR_Speed : DAGR_Text { class DAGR_Speed : DAGR_Text {
idc = 266852; idc = 266852;
x = "(SafeZoneW + SafeZoneX) - 0.388"; //0.812 x = "(SafeZoneW + SafeZoneX) - 0.388"; //0.812
y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914 y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914
}; };
class DAGR_Elevation : DAGR_Text { class DAGR_Elevation : DAGR_Text {
idc = 266853; idc = 266853;
x = "(SafeZoneW + SafeZoneX) - 0.270"; //0.930 x = "(SafeZoneW + SafeZoneX) - 0.270"; //0.930
y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914 y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914
}; };
class DAGR_Heading : DAGR_Text { class DAGR_Heading : DAGR_Text {
idc = 266854; idc = 266854;
x = "(SafeZoneW + SafeZoneX) - 0.413"; //0.787 x = "(SafeZoneW + SafeZoneX) - 0.413"; //0.787
y = "(SafeZoneH + SafeZoneY) - 0.1294"; //0.9656 y = "(SafeZoneH + SafeZoneY) - 0.1294"; //0.9656
}; };
class DAGR_Time : DAGR_Text { class DAGR_Time : DAGR_Text {
idc = 266855; idc = 266855;
x = "(SafeZoneW + SafeZoneX) - 0.275"; //0.925 x = "(SafeZoneW + SafeZoneX) - 0.275"; //0.925
y = "(SafeZoneH + SafeZoneY) - 0.129"; //0.965 y = "(SafeZoneH + SafeZoneY) - 0.129"; //0.965
}; };
class DAGR_WP : DAGR_Text { class DAGR_WP : DAGR_Text {
idc = 266857; idc = 266857;
x = "(SafeZoneW + SafeZoneX) - 0.235"; //0.965 x = "(SafeZoneW + SafeZoneX) - 0.235"; //0.965
y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914 y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914
}; };
class DAGR_Bearing : DAGR_Text { class DAGR_Bearing : DAGR_Text {
idc = 266858; idc = 266858;
x = "(SafeZoneW + SafeZoneX) - 0.413"; //0.787 x = "(SafeZoneW + SafeZoneX) - 0.413"; //0.787
y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914 y = "(SafeZoneH + SafeZoneY) - 0.181"; //0.914
}; };
class DAGR_DIST : DAGR_Text { class DAGR_DIST : DAGR_Text {
idc = 266859; idc = 266859;
x = "(SafeZoneW + SafeZoneX) - 0.265"; //0.935 x = "(SafeZoneW + SafeZoneX) - 0.265"; //0.935
y = "(SafeZoneH + SafeZoneY) - 0.129"; //0.965 y = "(SafeZoneH + SafeZoneY) - 0.129"; //0.965
}; };
}; };
}; };

View File

@ -522,7 +522,7 @@ GVAR(menuRun) = true;
(__dsp displayCtrl __mainText) ctrlSetText "Connecting..."; (__dsp displayCtrl __mainText) ctrlSetText "Connecting...";
}; };
if (CBA_missionTime - GVAR(busyTimer) > 0.6) then { if (CBA_missionTime - GVAR(busyTimer) > 0.6) then {
if (ACE_player hasWeapon "ACE_Vector") then { if (({_x isKindOf ["ACE_Vector", configFile >> "CfgWeapons"]} count (weapons ACE_player)) > 0) then {
GVAR(displaySelection) = "VECTOR"; GVAR(displaySelection) = "VECTOR";
(__dsp displayCtrl __mainText) ctrlSetText "Vector Connected"; (__dsp displayCtrl __mainText) ctrlSetText "Vector Connected";
GVAR(vectorConnected) = true; GVAR(vectorConnected) = true;

View File

@ -37,7 +37,7 @@ _conditonCode = {
_toggleCode = { _toggleCode = {
// Conditions: canInteract // Conditions: canInteract
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {}; if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {};
// Statement // Statement
[] call FUNC(toggleOverlay); [] call FUNC(toggleOverlay);
if (!GVAR(run)) then { if (!GVAR(run)) then {

View File

@ -1 +0,0 @@
z\ace\addons\difficulties

View File

@ -1,33 +0,0 @@
class CfgDifficulties {
class Mercenary {
class Flags {
armor[] = {0,0};
friendlyTag[] = {0,0};
enemyTag[] = {0,0};
mineTag[] = {0,0};
hud[] = {0,1};//{1,1};
hudPerm[] = {0,0};
hudWp[] = {0,0};
hudWpPerm[] = {0,0};
autoSpot[] = {0,1};
map[] = {0,0};
weaponCursor[] = {0,1};//{1,1};
autoGuideAT[] = {0,0};
clockIndicator[] = {0,0};
3rdPersonView[] = {0,0};
autoAim[] = {0,0};
unlimitedSaves[] = {0,0};
deathMessages[] = {0,1};//{1,1};
netStats[] = {0,1};//{1,1};
vonID[] = {0,1};
cameraShake[] = {1,0};
hudGroupInfo[] = {0,0};
extendetInfoType[] = {0,0};
roughLanding[] = {0,0};
windEnabled[] = {1,0};
autoTrimEnabled[] = {0,0};
stressDamageEnabled[] = {1,0};
};
};
};

View File

@ -1,15 +0,0 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author[] = {"commy2"};
authorUrl = "https://github.com/commy2/";
VERSION_CONFIG;
};
};
#include "CfgDifficulties.hpp"

View File

@ -1,17 +0,0 @@
#define COMPONENT difficulties
#include "\z\ace\addons\main\script_mod.hpp"
// #define DEBUG_MODE_FULL
// #define DISABLE_COMPILE_CACHE
// #define CBA_DEBUG_SYNCHRONOUS
// #define ENABLE_PERFORMANCE_COUNTERS
#ifdef DEBUG_ENABLED_DIFFICULTIES
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_ENABLED_DIFFICULTIES
#define DEBUG_SETTINGS DEBUG_ENABLED_DIFFICULTIES
#endif
#include "\z\ace\addons\main\script_macros.hpp"

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project name="ACE"> <Project name="ACE">
<Package name="Disarming"> <Package name="Disarming">
<Key ID="STR_ACE_Disarming_OpenInventory"> <Key ID="STR_ACE_Disarming_OpenInventory">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project name="ACE"> <Project name="ACE">
<Package name="Disposable"> <Package name="Disposable">
<Key ID="STR_ACE_Disposable_UsedTube"> <Key ID="STR_ACE_Disposable_UsedTube">

View File

@ -55,3 +55,9 @@ class Extended_AnimChanged_EventHandlers {
}; };
}; };
}; };
class Extended_DisplayLoad_EventHandlers {
class RscDisplayMission {
ADDON = QUOTE(_this call COMPILE_FILE(XEH_missionDisplayLoad));
};
};

View File

@ -6,14 +6,19 @@ class CfgVehicles {
class LandVehicle; class LandVehicle;
class StaticWeapon: LandVehicle { class StaticWeapon: LandVehicle {
GVAR(canCarry) = 1; GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1.2,0}; GVAR(carryPosition)[] = {0,1.2,0};
GVAR(carryDirection) = 0; GVAR(carryDirection) = 0;
GVAR(canDrag) = 1; GVAR(canDrag) = 1;
GVAR(dragPosition[]) = {0,1.2,0}; GVAR(dragPosition)[] = {0,1.2,0};
GVAR(dragDirection) = 0; GVAR(dragDirection) = 0;
}; };
class StaticCannon: StaticWeapon {
GVAR(canCarry) = 0;
GVAR(canDrag) = 0;
};
//remove actions from Taru Pods //remove actions from Taru Pods
class Pod_Heli_Transport_04_base_F: StaticWeapon { class Pod_Heli_Transport_04_base_F: StaticWeapon {
GVAR(canCarry) = 0; GVAR(canCarry) = 0;
@ -23,23 +28,24 @@ class CfgVehicles {
class StaticMortar; class StaticMortar;
class Mortar_01_base_F: StaticMortar { class Mortar_01_base_F: StaticMortar {
GVAR(canCarry) = 1; GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1.2,0}; GVAR(carryPosition)[] = {0,1.2,0};
GVAR(carryDirection) = 0; GVAR(carryDirection) = 0;
GVAR(canDrag) = 1; GVAR(canDrag) = 1;
GVAR(dragPosition[]) = {0,1.2,0}; GVAR(dragPosition)[] = {0,1.2,0};
GVAR(dragDirection) = 0; GVAR(dragDirection) = 0;
}; };
// ammo boxes // ammo boxes
class ThingX; class ThingX;
class Items_base_F;
class ReammoBox_F: ThingX { class ReammoBox_F: ThingX {
GVAR(canCarry) = 0; GVAR(canCarry) = 0;
GVAR(carryPosition[]) = {0,1,1}; GVAR(carryPosition)[] = {0,1,1};
GVAR(carryDirection) = 0; GVAR(carryDirection) = 0;
GVAR(canDrag) = 0; GVAR(canDrag) = 0;
GVAR(dragPosition[]) = {0,1.2,0}; GVAR(dragPosition)[] = {0,1.2,0};
GVAR(dragDirection) = 0; GVAR(dragDirection) = 0;
}; };
@ -85,6 +91,32 @@ class CfgVehicles {
GVAR(canDrag) = 0; GVAR(canDrag) = 0;
}; };
//Plastic and metal case
class PlasticCase_01_base_F: Items_base_F {
class EventHandlers {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
};
GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1,1};
GVAR(carryDirection) = 270;
GVAR(canDrag) = 1;
GVAR(dragPosition[]) = {0,1.2,0};
GVAR(dragDirection) = 0;
};
class MetalCase_01_base_F: Items_base_F {
class EventHandlers {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
};
GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1,1};
GVAR(carryDirection) = 270;
GVAR(canDrag) = 1;
GVAR(dragPosition[]) = {0,1.2,0};
GVAR(dragDirection) = 0;
};
// Barrier // Barrier
class RoadCone_F: ThingX { class RoadCone_F: ThingX {
class EventHandlers { class EventHandlers {
@ -92,40 +124,40 @@ class CfgVehicles {
}; };
GVAR(canCarry) = 1; GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1,1}; GVAR(carryPosition)[] = {0,1,1};
GVAR(carryDirection) = 0; GVAR(carryDirection) = 0;
GVAR(canDrag) = 1; GVAR(canDrag) = 1;
GVAR(dragPosition[]) = {0,1.2,0}; GVAR(dragPosition)[] = {0,1.2,0};
GVAR(dragDirection) = 0; GVAR(dragDirection) = 0;
}; };
class RoadBarrier_F: RoadCone_F { class RoadBarrier_F: RoadCone_F {
GVAR(carryPosition[]) = {0,1,0.300671}; GVAR(carryPosition)[] = {0,1,0.300671};
}; };
class ACE_RepairItem_Base: ThingX {}; class ACE_RepairItem_Base: ThingX {};
class ACE_Track: ACE_RepairItem_Base { class ACE_Track: ACE_RepairItem_Base {
GVAR(canCarry) = 1; GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1,1}; GVAR(carryPosition)[] = {0,1,1};
GVAR(carryDirection) = 0; GVAR(carryDirection) = 0;
}; };
class ACE_Wheel: ACE_RepairItem_Base { class ACE_Wheel: ACE_RepairItem_Base {
GVAR(canCarry) = 1; GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1,1}; GVAR(carryPosition)[] = {0,1,1};
GVAR(carryDirection) = 0; GVAR(carryDirection) = 0;
}; };
class Lamps_base_F; class Lamps_base_F;
class Land_PortableLight_single_F: Lamps_base_F { class Land_PortableLight_single_F: Lamps_base_F {
GVAR(canCarry) = 1; GVAR(canCarry) = 1;
GVAR(carryPosition[]) = {0,1.2,0}; GVAR(carryPosition)[] = {0,1.2,0};
GVAR(carryDirection) = 180; GVAR(carryDirection) = 180;
GVAR(canDrag) = 1; GVAR(canDrag) = 1;
GVAR(dragPosition[]) = {0,1.2,0}; GVAR(dragPosition)[] = {0,1.2,0};
GVAR(dragDirection) = 180; GVAR(dragDirection) = 180;
}; };
}; };

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,5 @@
#include "script_component.hpp"
params ["_display"];
_display displayAddEventHandler ["MouseZChanged", {(_this select 1) call FUNC(handleScrollWheel)}];

View File

@ -8,8 +8,6 @@ if (isServer) then {
if (!hasInterface) exitWith {}; if (!hasInterface) exitWith {};
[{_this call FUNC(handleScrollWheel)}] call EFUNC(common,addScrollWheelEventHandler);
if (isNil "ACE_maxWeightDrag") then { if (isNil "ACE_maxWeightDrag") then {
ACE_maxWeightDrag = 800; ACE_maxWeightDrag = 800;
}; };

View File

@ -40,4 +40,8 @@ detach _carriedItem;
_carriedItem setPosATL _position; _carriedItem setPosATL _position;
_carriedItem attachTo [_unit]; _carriedItem attachTo [_unit];
//reset the carry direction
private _direction = _carriedItem getVariable [QGVAR(carryDirection), 0];
["setDir", _carriedItem, [_carriedItem, _direction]] call EFUNC(common,targetEvent);
true true

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