Merge branch 'master' into compatPboWarnings

This commit is contained in:
PabstMirror 2016-03-24 11:23:29 -05:00
commit b0df31783d
34 changed files with 198 additions and 52 deletions

View File

@ -24,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.
## 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.

View File

@ -4,7 +4,7 @@
<p align="center">
<a href="https://github.com/acemod/ACE3/releases">
<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/issues">
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">

View File

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

View File

@ -47,7 +47,7 @@ GVAR(Protractor) = true;
__ctrl1 ctrlSetTextColor [1, 1, 1, 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 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];

View File

@ -444,6 +444,11 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
// Add various canInteractWith conditions
//////////////////////////////////////////////////
["isNotDead", {
params ["_unit", "_target"];
alive _unit
}] call FUNC(addCanInteractWithCondition);
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
["isNotInside", {

View File

@ -1,9 +1,13 @@
class ACE_Settings {
class GVAR(RequireSpecialist) {
displayName = CSTRING(RequireSpecialist_DisplayName);
description = CSTRING(RequireSpecialist_Description);
value = 0;
typeName = "BOOL";
};
class GVAR(PunishNonSpecialists) {
displayName = CSTRING(PunishNonSpecialists_DisplayName);
description = CSTRING(PunishNonSpecialists_Description);
value = 1;
typeName = "BOOL";
};

View File

@ -35,8 +35,8 @@ class CfgVehicles {
};
};
class Helicopter;
class Helicopter_Base_F: Helicopter {
class Air;
class Helicopter: Air {
class ACE_SelfActions {
class ACE_prepareFRIES {
displayName = CSTRING(Interaction_prepareFRIES);
@ -68,6 +68,8 @@ class CfgVehicles {
};
};
};
class Helicopter_Base_F;
class ACE_friesBase: Helicopter_Base_F {
destrType = "";
class Turrets {};

View File

@ -32,10 +32,11 @@ _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []];
};
};
detach _dummy;
deleteVehicle _ropeTop;
//Destroy rope
//Only delete the hook first so the rope falls down.
//Note: ropeDetach was used here before, but the command seems a bit broken.
deleteVehicle _hook;
[{{deleteVehicle _x} count _this}, [_ropeBottom, _dummy], 60] call EFUNC(common,waitAndExecute);
[{{deleteVehicle _x} count _this}, [_ropeTop, _ropeBottom, _dummy], 60] call EFUNC(common,waitAndExecute);
} count _deployedRopes;
_vehicle setVariable [QGVAR(deployedRopes), [], true];

View File

@ -35,14 +35,13 @@ _hookAttachment = _vehicle getVariable [QGVAR(FRIES), _vehicle];
_origin = getPosATL _hook;
_dummy = createVehicle [QGVAR(helper), _origin, [], 0, "CAN_COLLIDE"];
_dummy = createVehicle [QGVAR(helper), _origin vectorAdd [0, 0, -1], [], 0, "CAN_COLLIDE"];
_dummy allowDamage false;
_dummy disableCollisionWith _vehicle;
_dummy attachTo [_hook, [0, 0, 0]];
_ropeTop = ropeCreate [_dummy, [0, 0, 0], _hook, [0, 0, 0], 0.5];
_ropeBottom = ropeCreate [_dummy, [0, 0, 0], 1];
ropeUnwind [_ropeBottom, 30, 35, false];
ropeUnwind [_ropeBottom, 30, 34.5, false];
_ropeTop addEventHandler ["RopeBreak", {[_this, "top"] call FUNC(onRopeBreak)}];
_ropeBottom addEventHandler ["RopeBreak", {[_this, "bottom"] call FUNC(onRopeBreak)}];

View File

@ -26,7 +26,6 @@ if (vehicle _unit != _unit) exitWith {};
//Start fast roping
if (animationState _unit != "ACE_FastRoping") exitWith {
detach _dummy;
_unit disableCollisionWith _dummy;
_unit attachTo [_dummy, [0, 0, -1.45]];
[_unit, "ACE_FastRoping", 2] call EFUNC(common,doAnimation);

View File

@ -25,7 +25,7 @@ private ["_vectorUp", "_vectorDir", "_origin"];
if (vehicle _unit != _unit) exitWith {};
//Start fast roping
if (animationState _unit != "ACE_FastRoping") exitWith {
if (getMass _dummy != 80) exitWith {
//Fix for twitchyness
_dummy setMass 80;
_dummy setCenterOfMass [0, 0, -2];
@ -38,7 +38,9 @@ if (animationState _unit != "ACE_FastRoping") exitWith {
};
//Check if rope broke and unit is falling
if (isNull attachedTo _unit) exitWith {
//Make sure this isn't executed before the unit is actually fastroping
//Note: Stretching ropes does not change ropeLength
if ((isNull attachedTo _unit) && {ropeLength _ropeTop > 0.5}) exitWith {
[_pfhHandle] call CBA_fnc_removePerFrameHandler;
};
@ -54,14 +56,14 @@ if (((getPos _unit select 2) < 0.2) || {ropeLength _ropeTop == 34.5} || {vectorM
deleteVehicle _ropeBottom;
_origin = getPosASL _hook;
_dummy attachTo [_hook, [0, 0, 0]];
_dummy setPosASL (_origin vectorAdd [0, 0, -1]);
//Restore original mass and center of mass
_dummy setMass 40;
_dummy setCenterOfMass [0.000143227,0.00105986,-0.246147];
_ropeTop = ropeCreate [_dummy, [0, 0, 0], _hook, [0, 0, 0], 0.5];
_ropeBottom = ropeCreate [_dummy, [0, 0, 0], 35];
_ropeBottom = ropeCreate [_dummy, [0, 0, 0], 34.5];
_ropeTop addEventHandler ["RopeBreak", {[_this, "top"] call FUNC(onRopeBreak)}];
_ropeBottom addEventHandler ["RopeBreak", {[_this, "bottom"] call FUNC(onRopeBreak)}];

View File

@ -45,6 +45,13 @@ GVAR(expanded) = false;
GVAR(startHoverTime) = ACE_diagTime;
GVAR(expandedTime) = ACE_diagTime;
// reset on mission load
addMissionEventHandler ["Loaded", {
GVAR(startHoverTime) = 0;
GVAR(expandedTime) = 0;
}];
GVAR(iconCtrls) = [];
GVAR(iconCount) = 0;

View File

@ -1,6 +1,8 @@
class ACE_Settings {
class GVAR(EnableTeamManagement) {
displayName = CSTRING(EnableTeamManagement_DisplayName);
description = CSTRING(EnableTeamManagement_Description);
value = 1;
typeName = "BOOL";
};

View File

@ -5,7 +5,7 @@
#define MAJOR 3
#define MINOR 5
#define PATCHLVL 0
#define PATCHLVL 1
#define BUILD 0
#define VERSION MAJOR.MINOR.PATCHLVL.BUILD

View File

@ -1366,7 +1366,7 @@ class ACE_Medical_Advanced {
timeInSystem = 900;
maxDose = 4;
inCompatableMedication[] = {};
viscosityChange = 10;
viscosityChange = -10;
};
class Epinephrine {
painReduce = 0;

View File

@ -1,12 +1,16 @@
class ACE_Settings {
class GVAR(level) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_level_DisplayName);
description = CSTRING(MedicalSettings_level_Description);
value = 1;
typeName = "SCALAR";
values[] = {"Disabled", "Basic", "Advanced"};
};
class GVAR(medicSetting) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_medicSetting_DisplayName);
description = CSTRING(MedicalSettings_medicSetting_Description);
value = 1;
typeName = "SCALAR";
values[] = {"Disabled", "Normal", "Advanced"};
@ -20,6 +24,8 @@ class ACE_Settings {
};
class GVAR(enableFor) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_enableFor_DisplayName);
description = CSTRING(AdvancedMedicalSettings_enableFor_Description);
value = 0;
typeName = "SCALAR";
values[] = {"Players only", "Players and AI"};
@ -31,11 +37,15 @@ class ACE_Settings {
};
class GVAR(bleedingCoefficient) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_bleedingCoefficient_DisplayName);
description = CSTRING(MedicalSettings_bleedingCoefficient_Description);
typeName = "SCALAR";
value = 1;
};
class GVAR(painCoefficient) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_painCoefficient_DisplayName);
description = CSTRING(MedicalSettings_painCoefficient_Description);
typeName = "SCALAR";
value = 1;
};
@ -51,58 +61,80 @@ class ACE_Settings {
};
class GVAR(enableAdvancedWounds) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_enableAdvancedWounds_DisplayName);
description = CSTRING(AdvancedMedicalSettings_enableAdvancedWounds_Description);
typeName = "BOOL";
value = false;
};
class GVAR(enableVehicleCrashes) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_enableVehicleCrashes_DisplayName);
description = CSTRING(AdvancedMedicalSettings_enableVehicleCrashes_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(enableScreams) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_enableScreams_DisplayName);
description = CSTRING(MedicalSettings_enableScreams_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(playerDamageThreshold) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_playerDamageThreshold_DisplayName);
description = CSTRING(MedicalSettings_playerDamageThreshold_Description);
typeName = "SCALAR";
value = 1;
};
class GVAR(AIDamageThreshold) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_AIDamageThreshold_DisplayName);
description = CSTRING(MedicalSettings_AIDamageThreshold_Description);
typeName = "SCALAR";
value = 1;
};
class GVAR(enableUnconsciousnessAI) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_enableUnconsciousnessAI_DisplayName);
description = CSTRING(MedicalSettings_enableUnconsciousnessAI_Description);
value = 1;
typeName = "SCALAR";
values[] = {"Disabled", "50/50", "Enabled"};
};
class GVAR(remoteControlledAI) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_remoteControlledAI_DisplayName);
description = CSTRING(MedicalSettings_remoteControlledAI_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(preventInstaDeath) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_preventInstaDeath_DisplayName);
description = CSTRING(MedicalSettings_preventInstaDeath_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(enableRevive) {
category = CSTRING(Category_Medical);
displayName = CSTRING(ReviveSettings_enableRevive_DisplayName);
description = CSTRING(ReviveSettings_enableRevive_Description);
typeName = "SCALAR";
value = 0;
values[] = {"Disabled", "Players only", "Players and AI"};
};
class GVAR(maxReviveTime) {
category = CSTRING(Category_Medical);
displayName = CSTRING(ReviveSettings_maxReviveTime_DisplayName);
description = CSTRING(ReviveSettings_maxReviveTime_Description);
typeName = "SCALAR";
value = 120;
};
class GVAR(amountOfReviveLives) {
category = CSTRING(Category_Medical);
displayName = CSTRING(ReviveSettings_amountOfReviveLives_DisplayName);
description = CSTRING(ReviveSettings_amountOfReviveLives_Description);
typeName = "SCALAR";
value = -1;
};
@ -113,6 +145,8 @@ class ACE_Settings {
};
class GVAR(allowLitterCreation) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_allowLitterCreation_DisplayName);
description = CSTRING(MedicalSettings_allowLitterCreation_Description);
typeName = "BOOL";
value = 1;
};
@ -130,53 +164,71 @@ class ACE_Settings {
};
class GVAR(litterCleanUpDelay) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_litterCleanUpDelay_DisplayName);
description = CSTRING(MedicalSettings_litterCleanUpDelay_Description);
typeName = "SCALAR";
value = 0;
};
class GVAR(medicSetting_basicEpi) {
category = CSTRING(Category_Medical);
displayName = CSTRING(BasicMedicalSettings_medicSetting_basicEpi_DisplayName);
description = CSTRING(BasicMedicalSettings_medicSetting_basicEpi_Description);
typeName = "SCALAR";
value = 1;
values[] = {"Anyone", "Medics only", "Doctors only"};
};
class GVAR(medicSetting_PAK) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_medicSetting_PAK_DisplayName);
description = CSTRING(AdvancedMedicalSettings_medicSetting_PAK_Description);
typeName = "SCALAR";
value = 1;
values[] = {"Anyone", "Medics only", "Doctors only"};
};
class GVAR(medicSetting_SurgicalKit) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_medicSetting_SurgicalKit_DisplayName);
description = CSTRING(AdvancedMedicalSettings_medicSetting_SurgicalKit_Description);
typeName = "SCALAR";
value = 1;
values[] = {"Anyone", "Medics only", "Doctors only"};
};
class GVAR(consumeItem_PAK) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_consumeItem_PAK_DisplayName);
description = CSTRING(AdvancedMedicalSettings_consumeItem_PAK_Description);
typeName = "SCALAR";
value = 0;
values[] = {"No", "Yes"};
};
class GVAR(consumeItem_SurgicalKit) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_consumeItem_SurgicalKit_DisplayName);
description = CSTRING(AdvancedMedicalSettings_consumeItem_SurgicalKit_Description);
typeName = "SCALAR";
value = 0;
values[] = {"No", "Yes"};
};
class GVAR(useLocation_basicEpi) {
category = CSTRING(Category_Medical);
displayName = CSTRING(BasicMedicalSettings_useLocation_basicEpi_DisplayName);
description = CSTRING(BasicMedicalSettings_useLocation_basicEpi_Description);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)};
};
class GVAR(useLocation_PAK) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_useLocation_PAK_DisplayName);
description = CSTRING(AdvancedMedicalSettings_useLocation_PAK_Description);
typeName = "SCALAR";
value = 3;
values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)};
};
class GVAR(useLocation_SurgicalKit) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AdvancedMedicalSettings_useLocation_SurgicalKit_DisplayName);
description = CSTRING(AdvancedMedicalSettings_useLocation_SurgicalKit_Description);
typeName = "SCALAR";
value = 2;
values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)};
@ -199,18 +251,22 @@ class ACE_Settings {
};
class GVAR(keepLocalSettingsSynced) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_keepLocalSettingsSynced_DisplayName);
description = CSTRING(MedicalSettings_keepLocalSettingsSynced_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(healHitPointAfterAdvBandage) {
category = CSTRING(Category_Medical);
displayName = CSTRING(healHitPointAfterAdvBandage);
displayName = CSTRING(AdvancedMedicalSettings_healHitPointAfterAdvBandage_DisplayName);
description = CSTRING(AdvancedMedicalSettings_healHitPointAfterAdvBandage_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(painIsOnlySuppressed) {
category = CSTRING(Category_Medical);
displayName = CSTRING(painIsOnlySuppressed);
displayName = CSTRING(AdvancedMedicalSettings_painIsOnlySuppressed_DisplayName);
description = CSTRING(AdvancedMedicalSettings_painIsOnlySuppressed_Description);
typeName = "BOOL";
value = 1;
};
@ -232,7 +288,6 @@ class ACE_Settings {
typeName = "BOOL";
value = 0;
};
class GVAR(menuTypeStyle) {
category = CSTRING(Category_Medical);
displayName = CSTRING(menuTypeDisplay);
@ -242,7 +297,6 @@ class ACE_Settings {
values[] = {CSTRING(useSelection), CSTRING(useRadial), "Disabled"};
isClientSettable = 1;
};
class GVAR(delayUnconCaptive) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_delayUnconCaptive_DisplayName);

View File

@ -1,7 +1,10 @@
class ACE_Settings {
class GVAR(MapDataAvailable) {
displayName = CSTRING(MapDataAvailable_DisplayName);
description = CSTRING(MapDataAvailable_Description);
value = 2;
typeName = "SCALAR";
isClientSettable = 0;
values[] = {CSTRING(MapFill_None), CSTRING(MapFill_OnlyRoads), CSTRING(MapFill_Full)};
};
};

View File

@ -1,21 +1,29 @@
class ACE_Settings {
//These settings effect gameplay difficutly: defaults will leave the mortar the same as vanilla
class GVAR(airResistanceEnabled) {
displayName = CSTRING(airResistanceEnabled_DisplayName);
description = CSTRING(airResistanceEnabled_Description);
value = 0;
typeName = "BOOL";
isClientSetable = 0;
};
class GVAR(allowComputerRangefinder) {
displayName = CSTRING(allowComputerRangefinder_DisplayName);
description = CSTRING(allowComputerRangefinder_Description);
value = 1;
typeName = "BOOL";
isClientSetable = 0;
};
class GVAR(allowCompass) {
displayName = CSTRING(allowCompass_DisplayName);
description = CSTRING(allowCompass_Description);
value = 1;
typeName = "BOOL";
isClientSetable = 0;
};
class GVAR(useAmmoHandling) {
displayName = CSTRING(useAmmoHandling_DisplayName);
description = CSTRING(useAmmoHandling_Description);
value = 0;
typeName = "BOOL";
isClientSetable = 0;

View File

@ -15,6 +15,8 @@
_static setMagazineTurretAmmo [_magazine, _ammoCount, [0]];
}] call EFUNC(common,addEventHandler);
["initMortar", {_this call FUNC(mortarInit);}] call EFUNC(common,addEventHandler);
if (!hasInterface) exitWith {};
["playerVehicleChanged", {_this call FUNC(handlePlayerVehicleChanged);}] call EFUNC(common,addEventHandler);

View File

@ -16,31 +16,30 @@
*/
#include "script_component.hpp"
PARAMS_2(_player,_newVehicle);
private["_tubeWeaponName" ,"_fireModes", "_lastFireMode"];
params ["_player", "_newVehicle"];
if (isNull _newVehicle) exitWith {};
if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {};
// Run magazine handling initialization if enabled
if (!EGVAR(common,settingsInitFinished)) then {
EGVAR(common,runAtSettingsInitialized) pushBack [{
if (GVAR(useAmmoHandling) && {!(_this getVariable [QGVAR(initialized),false]) && !(_this getVariable [QGVAR(exclude),false])}) then {
_this call FUNC(mortarInit);
};
}, _newVehicle];
} else {
if (GVAR(useAmmoHandling) && {!(_newVehicle getVariable [QGVAR(initialized),false]) && !(_newVehicle getVariable [QGVAR(exclude),false])}) then {
_newVehicle call FUNC(mortarInit);
if (!(_newVehicle getVariable [QGVAR(initialized),false]) && !(_newVehicle getVariable [QGVAR(exclude),false])) then {
// Make sure that mortar init is executed after settings init
[{
params ["_mortar"];
if (GVAR(useAmmoHandling) && {!(_mortar getVariable [QGVAR(initialized),false]) && !(_mortar getVariable [QGVAR(exclude),false])}) then {
//wait for proper turret locality change
[{
["initMortar", [_this], [_this]] call EFUNC(common,globalEvent);
}, _mortar, 0.05] call EFUNC(common,waitAndExecute);
};
}, _newVehicle] call EFUNC(common,runAfterSettingsInit);
};
_tubeWeaponName = (weapons _newVehicle) select 0;
_fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes");
private _tubeWeaponName = (weapons _newVehicle) select 0;
private _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes");
//Restore last firemode:
_lastFireMode = _newVehicle getVariable [QGVAR(lastFireMode), -1];
private _lastFireMode = _newVehicle getVariable [QGVAR(lastFireMode), -1];
if (_lastFireMode != -1) then {
_player action ["SwitchWeapon", _newVehicle, _player, _lastFireMode];
};

View File

@ -18,15 +18,16 @@
params ["_mortar"];
if (_mortar getVariable [QGVAR(initialized),false] || _mortar getVariable [QGVAR(exclude),false]) exitWith {TRACE_1("Exit",_mortar)};
if (!(_mortar turretLocal [0])) exitWith {TRACE_1("Exit - turret not local",_mortar)};
// Remove all magazines
// Remove all magazines from turret
if (count magazines _mortar > 0) then {
{
[QGVAR(removeMagazine), [_mortar, _x]] call EFUNC(common,globalEvent);
_mortar removeMagazineTurret [_x,[0]];
} forEach magazines _mortar;
};
// Replace current weapon with ammo handling weapon
// Replace current turret weapon with ammo handling weapon
private _currentWeapon = _mortar weaponsTurret [0] select 0;
private _newWeapon = "";
@ -37,8 +38,8 @@ if (_currentWeapon == "mortar_82mm") then {
};
if (_newWeapon != "") then {
_mortar removeWeaponGlobal _currentWeapon;
_mortar addWeaponGlobal _newWeapon;
_mortar removeWeaponTurret [_currentWeapon,[0]];
_mortar addWeaponTurret [_newWeapon,[0]];
};
_mortar setVariable [QGVAR(initialized),true,true];

View File

@ -36,7 +36,7 @@ _fnc_parameters = {
_icon = format [QUOTE(PATHTOF(UI\soundwave%1.paa)), floor random 10];
_size = 1;
} else {
if (_drawRank) then {
if (_drawRank && {rank _target != ""}) then {
_icon = format["\A3\Ui_f\data\GUI\Cfg\Ranks\%1_gs.paa", toLower rank _target];
_size = 1;
};

View File

@ -1,5 +1,6 @@
class ACE_Settings {
class GVAR(level) {
category = ECSTRING(OptionsMenu,CategoryLogistics);
displayName = CSTRING(RearmSettings_level_DisplayName);
description = CSTRING(RearmSettings_level_Description);
value = 0;

View File

@ -1,5 +1,6 @@
class ACE_Settings {
class GVAR(rate) {
category = ECSTRING(OptionsMenu,CategoryLogistics);
displayName = CSTRING(RefuelSettings_speed_DisplayName);
description = CSTRING(RefuelSettings_speed_Description);
value = 1;

View File

@ -1,10 +1,14 @@
class ACE_Settings {
class GVAR(SavePreDeathGear) {
displayName = CSTRING(SavePreDeathGear_DisplayName);
description = CSTRING(SavePreDeathGear_Description);
value = 0;
typeName = "BOOL";
};
class GVAR(RemoveDeadBodiesDisconnected) {
displayName = CSTRING(RemoveDeadBodiesDisconnected_DisplayName);
description = CSTRING(RemoveDeadBodiesDisconnected_Description);
value = 1;
typeName = "BOOL";
};

View File

@ -1,20 +1,28 @@
class ACE_Settings {
class GVAR(filterUnits) {
displayName = CSTRING(units_DisplayName);
description = CSTRING(units_Description);
typeName = "SCALAR";
value = 2;
values[] = {CSTRING(units_none), CSTRING(units_players), CSTRING(units_playable), CSTRING(units_all)};
};
class GVAR(filterSides) {
displayName = CSTRING(sides_DisplayName);
description = CSTRING(sides_Description);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(sides_player), CSTRING(sides_friendly), CSTRING(sides_hostile), CSTRING(sides_all)};
};
class GVAR(restrictModes) {
displayName = CSTRING(modes_DisplayName);
description = CSTRING(modes_Description);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(modes_all), CSTRING(modes_unit), CSTRING(modes_free), CSTRING(modes_internal), CSTRING(modes_external)};
};
class GVAR(restrictVisions) {
displayName = CSTRING(visions_DisplayName);
description = CSTRING(visions_Description);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(modes_all), CSTRING(visions_nv), CSTRING(visions_ti), "$STR_Special_None"};

View File

@ -4,26 +4,38 @@ class ACE_Settings {
typeName = "BOOL";
};
class GVAR(SwitchToWest) {
displayName = CSTRING(SwitchToWest_DisplayName);
description = CSTRING(SwitchToWest_Description);
value = 0;
typeName = "BOOL";
};
class GVAR(SwitchToEast) {
displayName = CSTRING(SwitchToEast_DisplayName);
description = CSTRING(SwitchToEast_Description);
value = 0;
typeName = "BOOL";
};
class GVAR(SwitchToIndependent) {
displayName = CSTRING(SwitchToIndependent_DisplayName);
description = CSTRING(SwitchToIndependent_Description);
value = 0;
typeName = "BOOL";
};
class GVAR(SwitchToCivilian) {
displayName = CSTRING(SwitchToCivilian_DisplayName);
description = CSTRING(SwitchToCivilian_Description);
value = 0;
typeName = "BOOL";
};
class GVAR(EnableSafeZone) {
displayName = CSTRING(EnableSafeZone_DisplayName);
description = CSTRING(EnableSafeZone_Description);
value = 1;
typeName = "BOOL";
};
class GVAR(SafeZoneRadius) {
displayName = CSTRING(SafeZoneRadius_DisplayName);
description = CSTRING(SafeZoneRadius_Description);
value = 100;
typeName = "SCALAR";
};

View File

@ -16,7 +16,7 @@
#include "script_component.hpp"
_fnc_isLeaning = {
GVAR(tagsToTest) = GVAR(tagsToTest) select {
params ["_tag", "_tagPosASL", "_vectorDirAndUp"];
_vectorDirAndUp params ["_v1", "_v2"];
@ -34,7 +34,6 @@ _fnc_isLeaning = {
};
true
};
GVAR(tagsToTest) = [GVAR(tagsToTest), _fnc_isLeaning] call EFUNC(common,filter);
// If there's no more tag
if (GVAR(tagsToTest) isEqualTo []) exitWith {

View File

@ -1,13 +1,19 @@
class ACE_Settings {
class GVAR(DefaultLockpickStrength) {
displayName = CSTRING(DefaultLockpickStrength_DisplayName);
description = CSTRING(DefaultLockpickStrength_Description);
value = 10;
typeName = "SCALAR";
};
class GVAR(LockVehicleInventory) {
displayName = CSTRING(LockVehicleInventory_DisplayName);
description = CSTRING(LockVehicleInventory_Description);
value = 0;
typeName = "BOOL";
};
class GVAR(VehicleStartingLockState) {
displayName = CSTRING(VehicleStartingLockState_DisplayName);
description = CSTRING(VehicleStartingLockState_Description);
value = -1;
typeName = "SCALAR";
};

View File

@ -1,11 +1,13 @@
class ACE_Settings {
class GVAR(enabled) {
category = CSTRING(Module_DisplayName);
typeName = "BOOL";
value = 1;
displayName = CSTRING(enabled_DisplayName);
description = CSTRING(enabled_Description);
};
class GVAR(viewDistanceOnFoot) {
category = CSTRING(Module_DisplayName);
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index, NOT value // Can set it to client's actual viewdistance in the init function once ACE_Settings supports numbers (if ever).
@ -14,6 +16,7 @@ class ACE_Settings {
description = CSTRING(onFoot_Description);
};
class GVAR(viewDistanceLandVehicle) {
category = CSTRING(Module_DisplayName);
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index, NOT value
@ -22,6 +25,7 @@ class ACE_Settings {
description = CSTRING(landVehicle_Description);
};
class GVAR(viewDistanceAirVehicle) {
category = CSTRING(Module_DisplayName);
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index, NOT value
@ -30,12 +34,14 @@ class ACE_Settings {
description = CSTRING(airVehicle_Description);
};
class GVAR(limitViewDistance) {
category = CSTRING(Module_DisplayName);
typeName = "SCALAR";
value = 10000; // Value, NOT index. 10000 is the maximum in A3
displayName = CSTRING(limit_DisplayName);
description = CSTRING(limit_setting);
};
class GVAR(objectViewDistanceCoeff) {
category = CSTRING(Module_DisplayName);
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index. Actual coefficient is given by functions/fnc_returnObjectCoeff.sqf

View File

@ -1,21 +1,31 @@
class ACE_Settings {
class GVAR(zeusAscension) {
displayName = CSTRING(ascension_DisplayName);
description = CSTRING(ascension_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(zeusBird) {
displayName = CSTRING(bird_DisplayName);
description = CSTRING(bird_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(remoteWind) {
displayName = CSTRING(remoteWind_DisplayName);
description = CSTRING(remoteWind_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(radioOrdnance) {
displayName = CSTRING(radioOrdnance_DisplayName);
description = CSTRING(radioOrdnance_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(revealMines) {
displayName = CSTRING(revealMines_DisplayName);
description = CSTRING(revealMines_Description);
typeName = "SCALAR";
value = 0;
values[] = {"$STR_A3_OPTIONS_DISABLED", CSTRING(revealMines_partial), CSTRING(revealMines_full)};

View File

@ -4,7 +4,7 @@
<p align="center">
<a href="https://github.com/acemod/ACE3/releases">
<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/issues">
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Fehlermeldungen">

View File

@ -3,7 +3,7 @@
</p>
<p align="center">
<a href="https://github.com/acemod/ACE3/releases">
<img src="https://img.shields.io/badge/Wersja-3.5.0-blue.svg?style=flat-square" alt="ACE3 Wersja">
<img src="https://img.shields.io/badge/Wersja-3.5.1-blue.svg?style=flat-square" alt="ACE3 Wersja">
</a>
<a href="https://github.com/acemod/ACE3/issues">
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?label=Zagadnienia&style=flat-square" alt="ACE3 Zagadnienia">

View File

@ -1,8 +1,8 @@
name = "Advanced Combat Environment 3.5.0";
name = "Advanced Combat Environment 3.5.1";
picture = "logo_ace3_ca.paa";
actionName = "GitHub";
action = "https://github.com/acemod/ACE3";
description = "ACE3 - Version 3.5.0";
description = "ACE3 - Version 3.5.1";
logo = "logo_ace3_ca.paa";
logoOver = "logo_ace3_ca.paa";
tooltip = "ACE3";