mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' of https://github.com/acemod/ACE3 into whocaresaboutbranchnames
This commit is contained in:
commit
bab49b74d4
@ -10,7 +10,7 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 2;
|
||||
icon = PATHTOF(UI\ATRAG_Icon.paa);
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
["ACE3 Equipment", QGVAR(ATragMXDialogKey), localize LSTRING(ATragMXDialogKey),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if (GVAR(active)) exitWith {
|
||||
closeDialog 0;
|
||||
false
|
||||
@ -21,7 +21,7 @@ _conditonCode = {
|
||||
};
|
||||
_toggleCode = {
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {};
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
|
||||
if (GVAR(active)) exitWith {
|
||||
closeDialog 0;
|
||||
};
|
||||
|
@ -225,5 +225,27 @@ class CfgVehicles {
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
|
||||
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
|
||||
};
|
||||
class AnimationSources {
|
||||
class Ammo_source {
|
||||
source = "user";
|
||||
animPeriod = 1;
|
||||
initPhase = 0;
|
||||
};
|
||||
class AmmoOrd_source {
|
||||
source = "user";
|
||||
animPeriod = 1;
|
||||
initPhase = 1;
|
||||
};
|
||||
class Grenades_source {
|
||||
source = "user";
|
||||
animPeriod = 1;
|
||||
initPhase = 1;
|
||||
};
|
||||
class Support_source {
|
||||
source = "user";
|
||||
animPeriod = 1;
|
||||
initPhase = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -10,7 +10,7 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 0.1;
|
||||
icon = QUOTE(PATHTOF(UI\DAGR_Icon.paa));
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
class GVAR(toggle) {
|
||||
displayName = "Toggle DAGR";
|
||||
condition = QUOTE([ARR_2(_player,'ACE_DAGR')] call EFUNC(common,hasItem));
|
||||
@ -18,7 +18,7 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 0.2;
|
||||
icon = QUOTE(PATHTOF(UI\DAGR_Icon.paa));
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -2,7 +2,7 @@
|
||||
["ACE3 Equipment", QGVAR(MenuKey), "Configure DAGR",
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith {false};
|
||||
|
||||
// Statement
|
||||
@ -19,7 +19,7 @@
|
||||
["ACE3 Equipment", QGVAR(ToggleKey), "Toggle DAGR",
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith {false};
|
||||
|
||||
// Statement
|
||||
|
@ -6,7 +6,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(Menu);
|
||||
condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)]));
|
||||
statement = "";
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 1;
|
||||
priority = 4;
|
||||
icon = PATHTOF(UI\Explosives_Menu_ca.paa);
|
||||
@ -17,7 +17,7 @@ class CfgVehicles {
|
||||
condition = QUOTE([_player] call FUNC(canDetonate));
|
||||
statement = "";
|
||||
insertChildren = QUOTE([_player] call FUNC(addTransmitterActions););
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 1;
|
||||
icon = PATHTOF(UI\Explosives_Menu_ca.paa);
|
||||
priority = 2;
|
||||
@ -38,7 +38,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(cellphone_displayName);
|
||||
condition = "('ACE_Cellphone' in (items ace_player))";
|
||||
statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';";
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 0;
|
||||
icon = PATHTOF(Data\UI\Cellphone_UI.paa);
|
||||
priority = 0.8;
|
||||
|
@ -6,7 +6,7 @@ class CfgVehicles {
|
||||
class ACE_PutInEarplugs {
|
||||
displayName = CSTRING(EarPlugs_On);
|
||||
condition = QUOTE( !([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarPlugs' in items _player} );
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE( [_player] call FUNC(putInEarPlugs) );
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
@ -16,7 +16,7 @@ class CfgVehicles {
|
||||
class ACE_RemoveEarplugs {
|
||||
displayName = CSTRING(EarPlugs_Off);
|
||||
condition = QUOTE( [_player] call FUNC(hasEarPlugsIn) );
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE( [_player] call FUNC(removeEarPlugs) );
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
|
@ -30,8 +30,6 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
|
||||
|
||||
["ACE3 Common", QGVAR(InteractKey), (localize LSTRING(InteractKey)),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Statement
|
||||
[0] call FUNC(keyDown)
|
||||
},{[0,false] call FUNC(keyUp)},
|
||||
@ -39,8 +37,6 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
|
||||
|
||||
["ACE3 Common", QGVAR(SelfInteractKey), (localize LSTRING(SelfInteractKey)),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Statement
|
||||
[1] call FUNC(keyDown)
|
||||
},{[1,false] call FUNC(keyUp)},
|
||||
@ -72,3 +68,11 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
|
||||
if (GVAR(menuBackground)==1) then {[QGVAR(menuBackground), false] call EFUNC(common,blurScreen);};
|
||||
if (GVAR(menuBackground)==2) then {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;};
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
// Let key work with zeus open (not perfect, enables all added hotkeys in zeus interface rather than only menu)
|
||||
["zeusDisplayChanged",{
|
||||
if (_this select 1) then {
|
||||
(finddisplay 312) displayAddEventHandler ["KeyUp", {[_this,'keyup'] call CBA_events_fnc_keyHandler}];
|
||||
(finddisplay 312) displayAddEventHandler ["KeyDown", {[_this,'keydown'] call CBA_events_fnc_keyHandler}];
|
||||
};
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
@ -6,6 +6,7 @@ PREP(addActionToClass);
|
||||
PREP(addActionToObject);
|
||||
PREP(compileMenu);
|
||||
PREP(compileMenuSelfAction);
|
||||
PREP(compileMenuZeus);
|
||||
PREP(collectActiveActionTree);
|
||||
PREP(createAction);
|
||||
PREP(ctrlSetParsedTextCached);
|
||||
@ -75,4 +76,7 @@ GVAR(lastTimeSearchedActions) = -1000;
|
||||
["CAManBase"] call FUNC(compileMenu);
|
||||
["CAManBase"] call FUNC(compileMenuSelfAction);
|
||||
|
||||
// Init zeus menu
|
||||
[] call FUNC(compileMenuZeus);
|
||||
|
||||
ADDON = true;
|
||||
|
@ -122,7 +122,7 @@ _actions = if (_isMan) then {
|
||||
// Dummy statement so it's not collapsed when there's no available actions
|
||||
true
|
||||
},
|
||||
{[ACE_player, _target, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)},
|
||||
{[ACE_player, _target, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering", "isNotSitting"]] call EFUNC(common,canInteractWith)},
|
||||
{},
|
||||
{},
|
||||
"Spine3",
|
||||
|
94
addons/interact_menu/functions/fnc_compileMenuZeus.sqf
Normal file
94
addons/interact_menu/functions/fnc_compileMenuZeus.sqf
Normal file
@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Author: SilentSpike
|
||||
* Compile the zeus action menu (only to be done once)
|
||||
*
|
||||
* Argument:
|
||||
* nil
|
||||
*
|
||||
* Return value:
|
||||
* None
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp";
|
||||
|
||||
// Exit if the action menu is already compiled for zeus
|
||||
if !(isNil {missionNamespace getVariable [QGVAR(ZeusActions), nil]}) exitWith {};
|
||||
|
||||
private "_recurseFnc";
|
||||
_recurseFnc = {
|
||||
private ["_actions", "_displayName", "_icon", "_statement", "_condition", "_showDisabled",
|
||||
"_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction"];
|
||||
EXPLODE_1_PVT(_this,_actionsCfg);
|
||||
_actions = [];
|
||||
|
||||
{
|
||||
_entryCfg = _x;
|
||||
if(isClass _entryCfg) then {
|
||||
_displayName = getText (_entryCfg >> "displayName");
|
||||
|
||||
_icon = getText (_entryCfg >> "icon");
|
||||
_statement = compile (getText (_entryCfg >> "statement"));
|
||||
|
||||
_condition = getText (_entryCfg >> "condition");
|
||||
if (_condition == "") then {_condition = "true"};
|
||||
|
||||
_insertChildren = compile (getText (_entryCfg >> "insertChildren"));
|
||||
_modifierFunction = compile (getText (_entryCfg >> "modifierFunction"));
|
||||
|
||||
_showDisabled = (getNumber (_entryCfg >> "showDisabled")) > 0;
|
||||
_enableInside = (getNumber (_entryCfg >> "enableInside")) > 0;
|
||||
_canCollapse = (getNumber (_entryCfg >> "canCollapse")) > 0;
|
||||
_runOnHover = true;
|
||||
if (isText (_entryCfg >> "runOnHover")) then {
|
||||
_runOnHover = compile getText (_entryCfg >> "runOnHover");
|
||||
} else {
|
||||
_runOnHover = (getNumber (_entryCfg >> "runOnHover")) > 0;
|
||||
};
|
||||
|
||||
_condition = compile _condition;
|
||||
_children = [_entryCfg] call _recurseFnc;
|
||||
|
||||
_entry = [
|
||||
[
|
||||
configName _entryCfg,
|
||||
_displayName,
|
||||
_icon,
|
||||
_statement,
|
||||
_condition,
|
||||
_insertChildren,
|
||||
{},
|
||||
[0,0,0],
|
||||
10, //distace
|
||||
[_showDisabled,_enableInside,_canCollapse,_runOnHover],
|
||||
_modifierFunction
|
||||
],
|
||||
_children
|
||||
];
|
||||
_actions pushBack _entry;
|
||||
};
|
||||
} forEach (configProperties [_actionsCfg, "isClass _x", true]);
|
||||
_actions
|
||||
};
|
||||
|
||||
private ["_actionsCfg"];
|
||||
_actionsCfg = configFile >> "ACE_ZeusActions";
|
||||
|
||||
// Create a master action to base zeus actions on
|
||||
GVAR(ZeusActions) = [
|
||||
[
|
||||
[
|
||||
"ACE_ZeusActions",
|
||||
localize LSTRING(ZeusActionsRoot),
|
||||
"\A3\Ui_F_Curator\Data\Logos\arma3_zeus_icon_ca.paa",
|
||||
{true},
|
||||
{true},
|
||||
{},
|
||||
{},
|
||||
{[0,0,0]},
|
||||
10,
|
||||
[false,true,false]
|
||||
],
|
||||
[_actionsCfg] call _recurseFnc
|
||||
]
|
||||
];
|
@ -16,6 +16,11 @@ EXPLODE_1_PVT(_this,_menuType);
|
||||
|
||||
if (GVAR(openedMenuType) == _menuType) exitWith {true};
|
||||
|
||||
// Conditions: canInteract (these don't apply to zeus)
|
||||
if ((isNull curatorCamera) && {
|
||||
!([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering", "isNotSitting"]] call EFUNC(common,canInteractWith))
|
||||
}) exitWith {false};
|
||||
|
||||
while {dialog} do {
|
||||
closeDialog 0;
|
||||
};
|
||||
@ -34,6 +39,7 @@ GVAR(ParsedTextCached) = [];
|
||||
|
||||
GVAR(useCursorMenu) = (vehicle ACE_player != ACE_player) ||
|
||||
visibleMap ||
|
||||
(!isNull curatorCamera) ||
|
||||
{(_menuType == 1) && {(isWeaponDeployed ACE_player) || GVAR(AlwaysUseCursorSelfInteraction) || {cameraView == "GUNNER"}}} ||
|
||||
{(_menuType == 0) && GVAR(AlwaysUseCursorInteraction)};
|
||||
|
||||
@ -46,7 +52,12 @@ for "_i" from 0 to (count GVAR(iconCtrls))-1 do {
|
||||
GVAR(iconCtrls) resize GVAR(iconCount);
|
||||
|
||||
if (GVAR(useCursorMenu)) then {
|
||||
(findDisplay 46) createDisplay QGVAR(cursorMenu); //"RscCinemaBorder";//
|
||||
// Don't close zeus interface if open
|
||||
if (isNull curatorCamera) then {
|
||||
(findDisplay 46) createDisplay QGVAR(cursorMenu); //"RscCinemaBorder";//
|
||||
} else {
|
||||
createDialog QGVAR(cursorMenu);
|
||||
};
|
||||
(finddisplay 91919) displayAddEventHandler ["KeyUp", {[_this,'keyup'] call CBA_events_fnc_keyHandler}];
|
||||
(finddisplay 91919) displayAddEventHandler ["KeyDown", {[_this,'keydown'] call CBA_events_fnc_keyHandler}];
|
||||
// The dialog sets:
|
||||
|
@ -46,6 +46,8 @@ if(GVAR(actionSelected)) then {
|
||||
};
|
||||
};
|
||||
|
||||
["interactMenuClosed", [GVAR(openedMenuType)]] call EFUNC(common,localEvent);
|
||||
|
||||
GVAR(keyDown) = false;
|
||||
GVAR(keyDownSelfAction) = false;
|
||||
GVAR(openedMenuType) = -1;
|
||||
@ -54,6 +56,4 @@ GVAR(expanded) = false;
|
||||
GVAR(lastPath) = [];
|
||||
GVAR(menuDepthPath) = [];
|
||||
|
||||
["interactMenuClosed", [GVAR(openedMenuType)]] call EFUNC(common,localEvent);
|
||||
|
||||
true
|
||||
|
@ -118,24 +118,35 @@ _fnc_renderSelfActions = {
|
||||
} forEach _classActions;
|
||||
};
|
||||
|
||||
_fnc_renderZeusActions = {
|
||||
{
|
||||
_action = _x;
|
||||
[_this, _action, [0.5, 0.5]] call FUNC(renderBaseMenu);
|
||||
} forEach GVAR(ZeusActions);
|
||||
};
|
||||
|
||||
|
||||
GVAR(collectedActionPoints) resize 0;
|
||||
|
||||
// Render nearby actions, unit self actions or vehicle self actions as appropiate
|
||||
if (GVAR(openedMenuType) == 0) then {
|
||||
|
||||
if (vehicle ACE_player == ACE_player) then {
|
||||
if (ACE_diagTime > GVAR(lastTimeSearchedActions) + 0.20) then {
|
||||
// Once every 0.2 secs, collect nearby objects active and visible action points and render them
|
||||
call _fnc_renderNearbyActions;
|
||||
if (isNull curatorCamera) then {
|
||||
if (vehicle ACE_player == ACE_player) then {
|
||||
if (ACE_diagTime > GVAR(lastTimeSearchedActions) + 0.20) then {
|
||||
// Once every 0.2 secs, collect nearby objects active and visible action points and render them
|
||||
call _fnc_renderNearbyActions;
|
||||
} else {
|
||||
// The rest of the frames just draw the same action points rendered the last frame
|
||||
call _fnc_renderLastFrameActions;
|
||||
};
|
||||
} else {
|
||||
// The rest of the frames just draw the same action points rendered the last frame
|
||||
call _fnc_renderLastFrameActions;
|
||||
// Render vehicle self actions when in vehicle
|
||||
(vehicle ACE_player) call _fnc_renderSelfActions;
|
||||
};
|
||||
} else {
|
||||
(vehicle ACE_player) call _fnc_renderSelfActions;
|
||||
// Render zeus actions when zeus open
|
||||
(getAssignedCuratorLogic player) call _fnc_renderZeusActions;
|
||||
};
|
||||
|
||||
} else {
|
||||
ACE_player call _fnc_renderSelfActions;
|
||||
};
|
||||
|
@ -36,7 +36,7 @@ _pos = if((count _this) > 2) then {
|
||||
};
|
||||
|
||||
// For non-self actions, exit if the action is too far away or ocluded
|
||||
if (GVAR(openedMenuType) == 0 && vehicle ACE_player == ACE_player &&
|
||||
if (GVAR(openedMenuType) == 0 && (vehicle ACE_player == ACE_player) && (isNull curatorCamera) &&
|
||||
{
|
||||
private ["_headPos","_actualDistance"];
|
||||
_headPos = ACE_player modelToWorldVisual (ACE_player selectionPosition "pilot");
|
||||
|
@ -85,6 +85,9 @@
|
||||
<Italian>Interazioni con veicoli</Italian>
|
||||
<Portuguese>Ações de Veículos</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_Menu_ZeusActionsRoot">
|
||||
<English>Zeus Actions</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interact_Menu_ColorTextMax">
|
||||
<English>Interaction - Text Max</English>
|
||||
<Polish>Interakcja - Tekst max</Polish>
|
||||
@ -242,4 +245,4 @@
|
||||
<Czech>Černý obraz</Czech>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
268
addons/interaction/ACE_ZeusActions.hpp
Normal file
268
addons/interaction/ACE_ZeusActions.hpp
Normal file
@ -0,0 +1,268 @@
|
||||
class ACE_ZeusActions {
|
||||
// _target = curatorLogic
|
||||
// curatorSelected = [objects,groups,waypoints,markers]
|
||||
class ZeusUnits {
|
||||
displayName = "$STR_A3_RscDisplayCurator_ModeUnits_tooltip";
|
||||
icon = "\A3\UI_F_Curator\Data\Displays\RscDisplayCurator\modeUnits_ca.paa";
|
||||
|
||||
class stance {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Title";
|
||||
|
||||
class limited {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Down_tooltip";
|
||||
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_prone_ca.paa";
|
||||
statement = "{_x setUnitPos 'DOWN';} forEach (curatorSelected select 0);";
|
||||
};
|
||||
class normal {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Crouch_tooltip";
|
||||
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_crouch_ca.paa";
|
||||
statement = "{_x setUnitPos 'MIDDLE';} forEach (curatorSelected select 0);";
|
||||
};
|
||||
class full {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Up_tooltip";
|
||||
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_stand_ca.paa";
|
||||
statement = "{_x setUnitPos 'UP';} forEach (curatorSelected select 0);";
|
||||
};
|
||||
class auto {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Auto_tooltip";
|
||||
icon = "\A3\UI_F_Curator\Data\default_ca.paa";
|
||||
statement = "{_x setUnitPos 'AUTO';} forEach (curatorSelected select 0);";
|
||||
};
|
||||
};
|
||||
class remoteControl {
|
||||
displayName = "$STR_A3_CfgVehicles_ModuleRemoteControl_F";
|
||||
icon = "\A3\Modules_F_Curator\Data\portraitRemoteControl_ca.paa";
|
||||
statement = "_unit = objNull; { if ((side _x in [east,west,resistance,civilian]) && !(isPlayer _x)) exitWith { _unit = _x; }; } forEach (curatorSelected select 0); bis_fnc_curatorObjectPlaced_mouseOver = ['OBJECT',_unit]; (group _target) createUnit ['ModuleRemoteControl_F',[0,0,0],[],0,''];";
|
||||
};
|
||||
};
|
||||
class ZeusGroups {
|
||||
displayName = "$STR_A3_RscDisplayCurator_ModeGroups_tooltip";
|
||||
icon = "\A3\UI_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa";
|
||||
|
||||
class behaviour {
|
||||
displayName = CSTRING(Zeus_Behaviour);
|
||||
|
||||
class careless {
|
||||
displayName = CSTRING(Zeus_Behaviour_careless);
|
||||
statement = "{ _x setBehaviour 'CARELESS'; } forEach (curatorSelected select 1);";
|
||||
};
|
||||
class safe {
|
||||
displayName = "$STR_safe";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\safe_ca.paa";
|
||||
statement = "{ _x setBehaviour 'SAFE'; } forEach (curatorSelected select 1);";
|
||||
};
|
||||
class aware {
|
||||
displayName = "$STR_aware";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\aware_ca.paa";
|
||||
statement = "{ _x setBehaviour 'AWARE'; } forEach (curatorSelected select 1);";
|
||||
};
|
||||
class combat {
|
||||
displayName = "$STR_combat";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\combat_ca.paa";
|
||||
statement = "{ _x setBehaviour 'COMBAT'; } forEach (curatorSelected select 1);";
|
||||
};
|
||||
class stealth {
|
||||
displayName = "$STR_stealth";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\stealth_ca.paa";
|
||||
statement = "{ _x setBehaviour 'STEALTH'; } forEach (curatorSelected select 1);";
|
||||
};
|
||||
};
|
||||
class speed {
|
||||
displayName = CSTRING(Zeus_Speed);
|
||||
|
||||
class limited {
|
||||
displayName = "$STR_speed_limited";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\limited_ca.paa";
|
||||
statement = "{_x setSpeedMode 'LIMITED';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class normal {
|
||||
displayName = "$STR_speed_normal";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\normal_ca.paa";
|
||||
statement = "{_x setSpeedMode 'NORMAL';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class full {
|
||||
displayName = "$STR_speed_full";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\full_ca.paa";
|
||||
statement = "{_x setSpeedMode 'FULL';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
};
|
||||
class stance {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Title";
|
||||
|
||||
class limited {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Down_tooltip";
|
||||
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_prone_ca.paa";
|
||||
statement = "{ {_x setUnitPos 'DOWN'} forEach (units _x); } forEach (curatorSelected select 1);";
|
||||
};
|
||||
class normal {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Crouch_tooltip";
|
||||
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_crouch_ca.paa";
|
||||
statement = "{ {_x setUnitPos 'MIDDLE'} forEach (units _x); } forEach (curatorSelected select 1);";
|
||||
};
|
||||
class full {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Up_tooltip";
|
||||
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_stand_ca.paa";
|
||||
statement = "{ {_x setUnitPos 'UP'} forEach (units _x); } forEach (curatorSelected select 1);";
|
||||
};
|
||||
class auto {
|
||||
displayName = "$STR_A3_RscAttributeUnitPos_Auto_tooltip";
|
||||
icon = "\A3\UI_F_Curator\Data\default_ca.paa";
|
||||
statement = "{ {_x setUnitPos 'AUTO'} forEach (units _x); } forEach (curatorSelected select 1);";
|
||||
};
|
||||
};
|
||||
class formation {
|
||||
displayName = CSTRING(Zeus_Formation);
|
||||
|
||||
class wedge {
|
||||
displayName = "$STR_wedge";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\wedge_ca.paa";
|
||||
statement = "{_x setFormation 'WEDGE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class vee {
|
||||
displayName = "$STR_vee";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\vee_ca.paa";
|
||||
statement = "{_x setFormation 'VEE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class line {
|
||||
displayName = "$STR_line";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\line_ca.paa";
|
||||
statement = "{_x setFormation 'LINE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class column {
|
||||
displayName = "$STR_column";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\column_ca.paa";
|
||||
statement = "{_x setFormation 'COLUMN';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class file {
|
||||
displayName = "$STR_file";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\file_ca.paa";
|
||||
statement = "{_x setFormation 'FILE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class stag_column {
|
||||
displayName = "$STR_staggered";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\stag_column_ca.paa";
|
||||
statement = "{_x setFormation 'STAG COLUMN';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class ech_left {
|
||||
displayName = "$STR_echl";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_left_ca.paa";
|
||||
statement = "{_x setFormation 'ECH LEFT';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class ech_right {
|
||||
displayName = "$STR_echr";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_right_ca.paa";
|
||||
statement = "{_x setFormation 'ECH RIGHT';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class diamond {
|
||||
displayName = "$STR_diamond";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\diamond_ca.paa";
|
||||
statement = "{_x setFormation 'DIAMOND';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
};
|
||||
};
|
||||
class ZeusWaypoints {
|
||||
displayName = "Waypoints";
|
||||
icon = "\A3\UI_F_Curator\Data\CfgCurator\waypoint_ca.paa";
|
||||
|
||||
class behaviour {
|
||||
displayName = CSTRING(Zeus_Behaviour);
|
||||
|
||||
class careless {
|
||||
displayName = CSTRING(Zeus_Behaviour_careless);
|
||||
statement = "{ _x setWaypointBehaviour 'CARELESS'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
class safe {
|
||||
displayName = "$STR_safe";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\safe_ca.paa";
|
||||
statement = "{ _x setWaypointBehaviour 'SAFE'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
class aware {
|
||||
displayName = "$STR_aware";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\aware_ca.paa";
|
||||
statement = "{ _x setWaypointBehaviour 'AWARE'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
class combat {
|
||||
displayName = "$STR_combat";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\combat_ca.paa";
|
||||
statement = "{ _x setWaypointBehaviour 'COMBAT'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
class stealth {
|
||||
displayName = "$STR_stealth";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\stealth_ca.paa";
|
||||
statement = "{ _x setWaypointBehaviour 'STEALTH'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
};
|
||||
class speed {
|
||||
displayName = CSTRING(Zeus_Speed);
|
||||
|
||||
class limited {
|
||||
displayName = "$STR_speed_limited";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\limited_ca.paa";
|
||||
statement = "{ _x setWaypointSpeed 'LIMITED'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
class normal {
|
||||
displayName = "$STR_speed_normal";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\normal_ca.paa";
|
||||
statement = "{ _x setWaypointSpeed 'NORMAL'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
class full {
|
||||
displayName = "$STR_speed_full";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\full_ca.paa";
|
||||
statement = "{ _x setWaypointSpeed 'FULL'; } forEach (curatorSelected select 2);";
|
||||
};
|
||||
};
|
||||
class formation {
|
||||
displayName = CSTRING(Zeus_Formation);
|
||||
|
||||
class wedge {
|
||||
displayName = "$STR_wedge";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\wedge_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'WEDGE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class vee {
|
||||
displayName = "$STR_vee";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\vee_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'VEE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class line {
|
||||
displayName = "$STR_line";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\line_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'LINE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class column {
|
||||
displayName = "$STR_column";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\column_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'COLUMN';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class file {
|
||||
displayName = "$STR_file";
|
||||
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\file_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'FILE';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class stag_column {
|
||||
displayName = "$STR_staggered";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\stag_column_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'STAG COLUMN';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class ech_left {
|
||||
displayName = "$STR_echl";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_left_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'ECH LEFT';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class ech_right {
|
||||
displayName = "$STR_echr";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_right_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'ECH RIGHT';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
class diamond {
|
||||
displayName = "$STR_diamond";
|
||||
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\diamond_ca.paa";
|
||||
statement = "{_x setWaypointFormation 'DIAMOND';} forEach (curatorSelected select 1);";
|
||||
};
|
||||
};
|
||||
};
|
||||
class ZeusMarkers {
|
||||
displayName = "$STR_A3_RscDisplayCurator_ModeMarkers_tooltip";
|
||||
icon = "\A3\UI_F_Curator\Data\Displays\RscDisplayCurator\modeMarkers_ca.paa";
|
||||
};
|
||||
};
|
@ -191,7 +191,7 @@ class CfgVehicles {
|
||||
class ACE_TeamManagement {
|
||||
displayName = CSTRING(TeamManagement);
|
||||
condition = QUOTE(GVAR(EnableTeamManagement));
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = "";
|
||||
showDisabled = 1;
|
||||
priority = 3.2;
|
||||
@ -201,7 +201,7 @@ class CfgVehicles {
|
||||
class ACE_JoinTeamRed {
|
||||
displayName = CSTRING(JoinTeamRed);
|
||||
condition = QUOTE(true);
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_2(_player,'RED')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
priority = 2.4;
|
||||
@ -211,7 +211,7 @@ class CfgVehicles {
|
||||
class ACE_JoinTeamGreen {
|
||||
displayName = CSTRING(JoinTeamGreen);
|
||||
condition = QUOTE(true);
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_2(_player,'GREEN')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
priority = 2.3;
|
||||
@ -221,7 +221,7 @@ class CfgVehicles {
|
||||
class ACE_JoinTeamBlue {
|
||||
displayName = CSTRING(JoinTeamBlue);
|
||||
condition = QUOTE(true);
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_2(_player,'BLUE')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
priority = 2.2;
|
||||
@ -231,7 +231,7 @@ class CfgVehicles {
|
||||
class ACE_JoinTeamYellow {
|
||||
displayName = CSTRING(JoinTeamYellow);
|
||||
condition = QUOTE(true);
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_2(_player,'YELLOW')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
priority = 2.1;
|
||||
@ -242,7 +242,7 @@ class CfgVehicles {
|
||||
class ACE_LeaveTeam {
|
||||
displayName = CSTRING(LeaveTeam);
|
||||
condition = QUOTE(assignedTeam _player != 'MAIN');
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_2(_player,'MAIN')] call DFUNC(joinTeam));
|
||||
showDisabled = 1;
|
||||
priority = 2.5;
|
||||
@ -252,7 +252,7 @@ class CfgVehicles {
|
||||
class ACE_BecomeLeader {
|
||||
displayName = CSTRING(BecomeLeader);
|
||||
condition = QUOTE(_this call DFUNC(canBecomeLeader));
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE(_this call DFUNC(doBecomeLeader));
|
||||
showDisabled = 1;
|
||||
priority = 1.0;
|
||||
@ -262,7 +262,7 @@ class CfgVehicles {
|
||||
class ACE_LeaveGroup {
|
||||
displayName = CSTRING(LeaveGroup);
|
||||
condition = QUOTE(count (units group _player) > 1);
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE(_oldGroup = units group _player; _newGroup = createGroup side _player; [_player] joinSilent _newGroup; {_player reveal _x} forEach _oldGroup;);
|
||||
showDisabled = 1;
|
||||
priority = 1.2;
|
||||
@ -379,7 +379,7 @@ class CfgVehicles {
|
||||
class ACE_Equipment {
|
||||
displayName = CSTRING(Equipment);
|
||||
condition = QUOTE(true);
|
||||
exceptions[] = {"isNotInside","notOnMap"};
|
||||
exceptions[] = {"isNotInside","notOnMap", "isNotSitting"};
|
||||
statement = "";
|
||||
showDisabled = 1;
|
||||
priority = 4.5;
|
||||
|
@ -16,3 +16,4 @@ class CfgPatches {
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "Menu_Config.hpp"
|
||||
#include "ACE_Settings.hpp"
|
||||
#include "ACE_ZeusActions.hpp"
|
||||
|
@ -815,10 +815,22 @@
|
||||
<Czech>Mohou hráči použít menu správy týmu? Výchozí: Ano</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Module_Description">
|
||||
<English></English>
|
||||
<English>Team management allows color allocation for team members, taking team command and joining/leaving teams.</English>
|
||||
<Polish>Na zarządzanie drużyną składa się: przydział kolorów dla członków drużyny, przejmowanie dowodzenia, dołączanie/opuszczanie drużyn.</Polish>
|
||||
<German>Die Gruppenverwaltung erlaubt die Zuweisung von Farben für Einheiten, die Kommandierung und das Beitreten/Verlassen einer Gruppe.</German>
|
||||
<Czech>Správa týmu se skládá z: přidělení barev pro členy týmu, převzetí velení, připojení/odpojení. </Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Zeus_Behaviour">
|
||||
<English>Behaviour</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Zeus_Behaviour_careless">
|
||||
<English>Careless</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Zeus_Formation">
|
||||
<English>Formation</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Interaction_Zeus_Speed">
|
||||
<English>Speed Mode</English>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -10,7 +10,7 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 0.1;
|
||||
icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa));
|
||||
exceptions[] = {"notOnMap"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
class GVAR(show) {
|
||||
displayName = CSTRING(ShowKestrel);
|
||||
condition = QUOTE(call FUNC(canShow) && !GVAR(Overlay));
|
||||
@ -18,7 +18,7 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 0.2;
|
||||
icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa));
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
class GVAR(hide) {
|
||||
displayName = CSTRING(HideKestrel);
|
||||
@ -27,7 +27,7 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 0.3;
|
||||
icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa));
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
["ACE3 Equipment", QGVAR(KestrelDialogKey), localize LSTRING(KestrelDialogKey),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if (GVAR(Kestrel4500)) exitWith {
|
||||
closeDialog 0;
|
||||
false
|
||||
@ -16,7 +16,7 @@
|
||||
["ACE3 Equipment", QGVAR(DisplayKestrelKey), localize LSTRING(DisplayKestrelKey),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
|
||||
// Statement
|
||||
[] call FUNC(displayKestrel);
|
||||
|
@ -3,7 +3,7 @@
|
||||
["ACE3 Weapons", QGVAR(switchLaserLightMode), localize LSTRING(switchLaserLight),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if !([ACE_player] call EFUNC(common,canUseWeapon)) exitWith {false};
|
||||
|
||||
|
@ -5,7 +5,7 @@ class CfgVehicles {
|
||||
class ACE_RepackMagazines {
|
||||
displayName = CSTRING(RepackMagazines);
|
||||
condition = QUOTE(true);
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
insertChildren = QUOTE(_this call FUNC(getMagazineChildren));
|
||||
priority = -2;
|
||||
icon = QUOTE(PATHTOF(UI\repack_ca.paa));
|
||||
|
@ -26,7 +26,7 @@ EXPLODE_2_PVT(_args,_magazineClassname,_lastAmmoCount);
|
||||
_fullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _magazineClassname >> "count");
|
||||
|
||||
//Don't show anything if player can't interact:
|
||||
if (!([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitWith {};
|
||||
if (!([ACE_player, objNull, ["isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))) exitWith {};
|
||||
|
||||
_structuredOutputText = if (_errorCode == 0) then {
|
||||
format ["<t align='center'>%1</t><br/>", (localize LSTRING(RepackComplete))];
|
||||
|
@ -31,7 +31,7 @@ _fullMagazineCount = getNumber (_magazineCfg >> "count");
|
||||
_isBelt = (isNumber (_magazineCfg >> "ACE_isBelt")) && {(getNumber (_magazineCfg >> "ACE_isBelt")) == 1};
|
||||
|
||||
//Check canInteractWith:
|
||||
if (!([_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitWith {};
|
||||
if (!([_player, objNull, ["isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))) exitWith {};
|
||||
|
||||
[_player] call EFUNC(common,goKneeling);
|
||||
|
||||
@ -69,5 +69,5 @@ _totalTime,
|
||||
{_this call FUNC(magazineRepackFinish)},
|
||||
(localize LSTRING(RepackingMagazine)),
|
||||
{_this call FUNC(magazineRepackProgress)},
|
||||
["isNotInside"]
|
||||
["isNotInside", "isNotSitting"]
|
||||
] call EFUNC(common,progressBar);
|
||||
|
@ -49,6 +49,12 @@ class CfgVehicles {
|
||||
isGlobal = 1;
|
||||
icon = PATHTOF(UI\Icon_Module_BFTracking_ca.paa);
|
||||
class Arguments {
|
||||
class Enabled {
|
||||
displayName = CSTRING(BFT_Enabled_DisplayName);
|
||||
description = CSTRING(BFT_Enabled_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
class Interval {
|
||||
displayName = CSTRING(BFT_Interval_DisplayName);
|
||||
description = CSTRING(BFT_Interval_Description);
|
||||
|
@ -1,6 +1,8 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
ADDON = false;
|
||||
// Exit on Headless as well
|
||||
if !(hasInterface) exitWith {};
|
||||
|
||||
LOG(MSG_INIT);
|
||||
|
||||
// Calculate the maximum zoom allowed for this map
|
||||
@ -19,4 +21,10 @@ call FUNC(determineZoom);
|
||||
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", {[] call FUNC(updateMapEffects);}];
|
||||
};
|
||||
|
||||
ADDON = true;
|
||||
["SettingsInitialized", {
|
||||
// Start Blue Force Tracking if Enabled
|
||||
if (GVAR(BFT_Enabled)) then {
|
||||
GVAR(BFT_markers) = [];
|
||||
[FUNC(blueForceTrackingUpdate), GVAR(BFT_Interval), []] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
@ -18,13 +18,9 @@ PARAMS_3(_logic,_units,_activated);
|
||||
|
||||
if !(_activated) exitWith {};
|
||||
|
||||
GVAR(BFT_Enabled) = true;
|
||||
[_logic, QGVAR(BFT_Enabled), "Enabled"] call EFUNC(common,readSettingFromModule);
|
||||
[_logic, QGVAR(BFT_Interval), "Interval"] call EFUNC(common,readSettingFromModule);
|
||||
[_logic, QGVAR(BFT_HideAiGroups), "HideAiGroups"] call EFUNC(common,readSettingFromModule);
|
||||
|
||||
diag_log text "[ACE]: Blue Force Tracking Module initialized.";
|
||||
TRACE_2("[ACE]: Blue Force Tracking Module initialized.",GVAR(BFT_Interval), GVAR(BFT_HideAiGroups));
|
||||
|
||||
//start BFT:
|
||||
GVAR(BFT_markers) = [];
|
||||
[FUNC(blueForceTrackingUpdate), GVAR(BFT_Interval), []] call CBA_fnc_addPerFrameHandler;
|
||||
TRACE_2("[ACE]: Blue Force Tracking Module initialized.", GVAR(BFT_Interval), GVAR(BFT_HideAiGroups));
|
||||
|
@ -10,6 +10,8 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
if !(isServer) exitWith {};
|
||||
|
||||
PARAMS_3(_logic,_units,_activated);
|
||||
|
||||
if !(_activated) exitWith {};
|
||||
@ -19,4 +21,4 @@ if !(_activated) exitWith {};
|
||||
[_logic, QGVAR(mapLimitZoom), "MapLimitZoom" ] call EFUNC(common,readSettingFromModule);
|
||||
[_logic, QGVAR(mapShowCursorCoordinates), "MapShowCursorCoordinates"] call EFUNC(common,readSettingFromModule);
|
||||
|
||||
diag_log text "[ACE]: Interaction Module Initialized.";
|
||||
diag_log text "[ACE]: Map Module Initialized.";
|
||||
|
@ -77,6 +77,12 @@
|
||||
<German>Blue Force Tracking</German>
|
||||
<Czech>Blue Force Tracking</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Map_BFT_Enabled_DisplayName">
|
||||
<English>BFT Enable</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Map_BFT_Enabled_Description">
|
||||
<English>Enable Blue Force Tracking. Default: No</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Map_BFT_Interval_DisplayName">
|
||||
<English>Interval</English>
|
||||
<Polish>Interwał</Polish>
|
||||
|
@ -7,7 +7,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapTools_Menu);
|
||||
condition = QUOTE((call FUNC(canUseMapTools) || {call FUNC(canUseMapGPS)}));
|
||||
statement = "";
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 0;
|
||||
priority = 100;
|
||||
|
||||
@ -15,7 +15,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapToolsHide);
|
||||
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
|
||||
statement = QUOTE(GVAR(mapTool_Shown) = 0; [] call FUNC(updateMapToolMarkers));
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 1;
|
||||
priority = 5;
|
||||
};
|
||||
@ -23,7 +23,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapToolsShowNormal);
|
||||
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 1}));
|
||||
statement = QUOTE(GVAR(mapTool_Shown) = 1; [] call FUNC(updateMapToolMarkers));
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 1;
|
||||
priority = 4;
|
||||
};
|
||||
@ -31,7 +31,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapToolsShowSmall);
|
||||
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 2}));
|
||||
statement = QUOTE(GVAR(mapTool_Shown) = 2; [] call FUNC(updateMapToolMarkers));
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 1;
|
||||
priority = 3;
|
||||
};
|
||||
@ -39,7 +39,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapToolsAlignNorth);
|
||||
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
|
||||
statement = QUOTE(GVAR(mapTool_angle) = 0; [] call FUNC(updateMapToolMarkers));
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 1;
|
||||
priority = 2;
|
||||
};
|
||||
@ -47,7 +47,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapToolsAlignCompass);
|
||||
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0} && {('ItemCompass' in assigneditems ACE_player) || {'ItemCompass' in assigneditems ACE_player}}));
|
||||
statement = QUOTE(GVAR(mapTool_angle) = getDir ACE_player; [] call FUNC(updateMapToolMarkers));
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 1;
|
||||
priority = 1;
|
||||
};
|
||||
@ -55,7 +55,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapGpsShow);
|
||||
condition = QUOTE((call FUNC(canUseMapGPS) && {!GVAR(mapGpsShow)}));
|
||||
statement = QUOTE(GVAR(mapGpsShow) = true; [GVAR(mapGpsShow)] call FUNC(openMapGps));
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 0;
|
||||
priority = 0;
|
||||
};
|
||||
@ -63,7 +63,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(MapGpsHide);
|
||||
condition = QUOTE((call FUNC(canUseMapGPS) && {GVAR(mapGpsShow)}));
|
||||
statement = QUOTE(GVAR(mapGpsShow) = false; [GVAR(mapGpsShow)] call FUNC(openMapGps));
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"};
|
||||
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
|
||||
showDisabled = 0;
|
||||
priority = 0;
|
||||
};
|
||||
|
@ -25,7 +25,7 @@
|
||||
PARAMS_1(_display);
|
||||
|
||||
//Can't place markers when can't interact
|
||||
if (!([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith))) exitWith {
|
||||
if (!([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))) exitWith {
|
||||
_display closeDisplay 2; //emulate "Cancel" button
|
||||
};
|
||||
|
||||
|
@ -2,7 +2,7 @@ class Medical {
|
||||
displayName = CSTRING(Actions_Medical);
|
||||
runOnHover = 1;
|
||||
hotkey = "M";
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
|
||||
condition = "true";
|
||||
icon = PATHTOF(UI\icons\medical_cross.paa);
|
||||
@ -10,7 +10,7 @@ class Medical {
|
||||
class ACE_Head {
|
||||
displayName = CSTRING(Head);
|
||||
icon = PATHTOF(UI\icons\medical_cross.paa);
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
@ -79,7 +79,7 @@ class Medical {
|
||||
distance = 5.0;
|
||||
condition = "true";
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
showDisabled = 1;
|
||||
@ -148,7 +148,7 @@ class Medical {
|
||||
class ACE_ArmLeft {
|
||||
displayName = ECSTRING(interaction,ArmLeft);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
@ -250,7 +250,7 @@ class Medical {
|
||||
class ACE_ArmRight {
|
||||
displayName = ECSTRING(interaction,ArmRight);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
@ -348,7 +348,7 @@ class Medical {
|
||||
class ACE_LegLeft {
|
||||
displayName = ECSTRING(interaction,LegLeft);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
@ -435,7 +435,7 @@ class Medical {
|
||||
class ACE_LegRight {
|
||||
displayName = ECSTRING(interaction,LegRight);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
|
@ -9,21 +9,21 @@ class CfgVehicles {
|
||||
condition = QUOTE(([DISPLAY_MODE_DIALOG] call FUNC(canShow)) && {GVAR(currentShowMode) != DISPLAY_MODE_DIALOG});
|
||||
statement = QUOTE([DISPLAY_MODE_DIALOG] call FUNC(openDisplay));
|
||||
icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa));
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
class GVAR(show) {
|
||||
//Opens the mini map
|
||||
displayName = CSTRING(show);
|
||||
condition = QUOTE(([DISPLAY_MODE_DISPLAY] call FUNC(canShow)) && {GVAR(currentShowMode) != DISPLAY_MODE_DISPLAY});
|
||||
statement = QUOTE([DISPLAY_MODE_DISPLAY] call FUNC(openDisplay));
|
||||
icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa));
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
class GVAR(close) {
|
||||
displayName = CSTRING(closeUnit);
|
||||
condition = QUOTE(GVAR(currentShowMode) != DISPLAY_MODE_CLOSED);
|
||||
statement = QUOTE([DISPLAY_MODE_CLOSED] call FUNC(openDisplay));
|
||||
icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa));
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -9,7 +9,7 @@ _conditonCode = {
|
||||
("ACE_microDAGR" in (items ACE_player))
|
||||
};
|
||||
_toggleCode = {
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {};
|
||||
if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
|
||||
[] call FUNC(openDisplay); //toggle display mode
|
||||
};
|
||||
_closeCode = {
|
||||
|
@ -26,11 +26,11 @@ case (DISPLAY_MODE_CLOSED): {_returnValue = true}; //Can always close
|
||||
case (DISPLAY_MODE_HIDDEN): {_returnValue = true}; //Can always hide
|
||||
|
||||
case (DISPLAY_MODE_DIALOG): {
|
||||
_returnValue = ("ACE_microDAGR" in (items ACE_player)) && {[ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)};
|
||||
_returnValue = ("ACE_microDAGR" in (items ACE_player)) && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)};
|
||||
};
|
||||
case (DISPLAY_MODE_DISPLAY): {
|
||||
//Can't have minimap up while zoomed in
|
||||
_returnValue = (cameraview != "GUNNER") && {"ACE_microDAGR" in (items ACE_player)} && {[ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)};
|
||||
_returnValue = (cameraview != "GUNNER") && {"ACE_microDAGR" in (items ACE_player)} && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_display", "_daylight", "_theMap", "_mapSize"];
|
||||
private ["_display", "_theMap", "_mapSize"];
|
||||
|
||||
disableSerialization;
|
||||
|
||||
@ -27,10 +27,6 @@ if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
|
||||
};
|
||||
if (isNull _display) exitWith {ERROR("No Display");};
|
||||
|
||||
//Fade "shell" at night
|
||||
_daylight = 0.05 max (((1 - overcast)/2 + ((1 - cos (daytime * 360/24)) / 4)) * (linearConversion [0, 1, sunOrMoon, (0.25 * moonIntensity), 1]));
|
||||
(_display displayCtrl IDC_MICRODAGRSHELL) ctrlSetTextColor [_daylight, _daylight, _daylight, 1];
|
||||
|
||||
//TopBar
|
||||
(_display displayCtrl IDC_RANGEFINDERCONNECTEDICON) ctrlShow (GVAR(currentWaypoint) == -2);
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_display", "_waypoints", "_posString", "_eastingText", "_northingText", "_numASL", "_aboveSeaLevelText", "_compassAngleText", "_targetPosName", "_targetPosLocationASL", "_bearingText", "_rangeText", "_targetName", "_bearing", "_2dDistanceKm", "_SpeedText", "_playerPos2d", "_wpListBox", "_currentIndex", "_wpName", "_wpPos", "_settingListBox", "_yearString", "_monthSring", "_dayString"];
|
||||
private ["_display", "_waypoints", "_posString", "_eastingText", "_northingText", "_numASL", "_aboveSeaLevelText", "_compassAngleText", "_targetPosName", "_targetPosLocationASL", "_bearingText", "_rangeText", "_targetName", "_bearing", "_2dDistanceKm", "_SpeedText", "_playerPos2d", "_wpListBox", "_currentIndex", "_wpName", "_wpPos", "_settingListBox", "_yearString", "_monthSring", "_dayString", "_daylight"];
|
||||
|
||||
disableSerialization;
|
||||
_display = displayNull;
|
||||
@ -26,6 +26,10 @@ if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
|
||||
};
|
||||
if (isNull _display) exitWith {ERROR("No Display");};
|
||||
|
||||
//Fade "shell" at night
|
||||
_daylight = [] call EFUNC(common,ambientBrightness);
|
||||
(_display displayCtrl IDC_MICRODAGRSHELL) ctrlSetTextColor [_daylight, _daylight, _daylight, 1];
|
||||
|
||||
(_display displayCtrl IDC_CLOCKTEXT) ctrlSetText ([daytime, "HH:MM"] call bis_fnc_timeToString);
|
||||
|
||||
_waypoints = [] call FUNC(deviceGetWaypoints);
|
||||
|
@ -9,7 +9,7 @@ class CfgVehicles {
|
||||
statement = QUOTE(_this call FUNC(rangeTableOpen));
|
||||
priority = 0;
|
||||
icon = QUOTE(PATHTOF(UI\icon_rangeTable.paa));
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -40,7 +40,7 @@ GVAR(ppEffectMuzzleFlash) ppEffectCommit 0;
|
||||
["ACE3 Equipment", QGVAR(IncreaseNVGBrightness), localize LSTRING(IncreaseNVGBrightness),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["isNotEscorting", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["isNotEscorting", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if ((currentVisionMode ACE_player != 1)) exitWith {false};
|
||||
|
||||
@ -54,7 +54,7 @@ GVAR(ppEffectMuzzleFlash) ppEffectCommit 0;
|
||||
["ACE3 Equipment", QGVAR(DecreaseNVGBrightness), localize LSTRING(DecreaseNVGBrightness),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["isNotEscorting", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["isNotEscorting", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if ((currentVisionMode ACE_player != 1)) exitWith {false};
|
||||
|
||||
|
@ -16,7 +16,7 @@ class CfgVehicles {
|
||||
class ACE_CheckTemperature {
|
||||
displayName = CSTRING(CheckTemperatureShort);
|
||||
condition = "switch (currentWeapon _player) do {case (''): {false}; case (primaryWeapon _player); case (secondaryWeapon _player); case (handgunWeapon _player): {true}; default {false}}";
|
||||
exceptions[] = {"isNotInside"};
|
||||
exceptions[] = {"isNotInside", "isNotSitting"};
|
||||
statement = QUOTE( [ARR_2(_player, currentWeapon _player)] call FUNC(CheckTemperature); );
|
||||
showDisabled = 0;
|
||||
priority = 2.9;
|
||||
|
@ -7,7 +7,7 @@ if !(hasInterface) exitWith {};
|
||||
["ACE3 Weapons", QGVAR(checkAmmo), localize LSTRING(checkAmmo),
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, (vehicle ACE_player), ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, (vehicle ACE_player), ["isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if !([ACE_player] call EFUNC(common,canUseWeapon) || {(vehicle ACE_player) isKindOf "StaticWeapon"}) exitWith {false};
|
||||
|
||||
|
@ -11,7 +11,7 @@ class CfgVehicles {
|
||||
showDisabled = 0;
|
||||
priority = 0.2;
|
||||
//icon = QUOTE(PATHTOF(UI\...)); // TODO
|
||||
exceptions[] = {"notOnMap", "isNotInside"};
|
||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
1
addons/sitting/$PBOPREFIX$
Normal file
1
addons/sitting/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\sitting
|
7
addons/sitting/ACE_Settings.hpp
Normal file
7
addons/sitting/ACE_Settings.hpp
Normal file
@ -0,0 +1,7 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(enable) {
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
displayName = CSTRING(Enable);
|
||||
};
|
||||
};
|
19
addons/sitting/CfgEventHandlers.hpp
Normal file
19
addons/sitting/CfgEventHandlers.hpp
Normal file
@ -0,0 +1,19 @@
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Killed_EventHandlers {
|
||||
class CAManBase {
|
||||
class ADDON {
|
||||
killed = QUOTE(_this call DFUNC(handleInterrupt));
|
||||
};
|
||||
};
|
||||
};
|
128
addons/sitting/CfgVehicles.hpp
Normal file
128
addons/sitting/CfgVehicles.hpp
Normal file
@ -0,0 +1,128 @@
|
||||
class CfgVehicles {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleSitting: ACE_Module {
|
||||
author = ECSTRING(common,ACETeam);
|
||||
category = "ACE";
|
||||
displayName = CSTRING(ModuleDisplayName);
|
||||
function = QFUNC(moduleInit);
|
||||
scope = 2;
|
||||
isGlobal = 1;
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Sitting_ca.paa));
|
||||
class Arguments {
|
||||
class enable {
|
||||
displayName = CSTRING(Enable);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
class ModuleDescription {
|
||||
description = CSTRING(ModuleDescription);
|
||||
};
|
||||
};
|
||||
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class ACE_SelfActions {
|
||||
class GVAR(Stand) {
|
||||
displayName = CSTRING(Stand);
|
||||
condition = QUOTE(_player call FUNC(canStand));
|
||||
exceptions[] = {"isNotSitting"};
|
||||
statement = QUOTE(_player call FUNC(stand));
|
||||
priority = 0;
|
||||
icon = PATHTOF(UI\stand_ca.paa);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#define MACRO_SEAT_ACTION \
|
||||
class ACE_Actions { \
|
||||
class ACE_MainActions { \
|
||||
displayName = ECSTRING(interaction,MainAction); \
|
||||
selection = ""; \
|
||||
distance = 1.25; \
|
||||
condition = "true"; \
|
||||
class GVAR(Sit) { \
|
||||
displayName = CSTRING(Sit); \
|
||||
condition = QUOTE(_this call FUNC(canSit)); \
|
||||
statement = QUOTE(_this call FUNC(sit)); \
|
||||
showDisabled = 0; \
|
||||
priority = 0; \
|
||||
icon = PATHTOF(UI\sit_ca.paa); \
|
||||
}; \
|
||||
}; \
|
||||
};
|
||||
|
||||
class ThingX;
|
||||
// Folding Chair
|
||||
class Land_CampingChair_V1_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition[]) = {0, -0.1, -0.45};
|
||||
GVAR(sitRotation) = 10;
|
||||
};
|
||||
// Camping Chair
|
||||
class Land_CampingChair_V2_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition[]) = {0, -0.1, -0.45};
|
||||
GVAR(sitRotation) = 45;
|
||||
};
|
||||
// Chair (Plastic)
|
||||
class Land_ChairPlastic_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 90;
|
||||
GVAR(sitPosition[]) = {0, 0, -0.5};
|
||||
GVAR(sitRotation) = 5;
|
||||
};
|
||||
// Chair (Wooden)
|
||||
class Land_ChairWood_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition[]) = {0, -0.05, 0};
|
||||
GVAR(sitRotation) = 75;
|
||||
};
|
||||
// Office Chair
|
||||
class Land_OfficeChair_01_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition[]) = {0, 0, -0.6};
|
||||
GVAR(sitRotation) = 15;
|
||||
};
|
||||
// Rattan Chair
|
||||
class Land_RattanChair_01_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition[]) = {0, -0.1, -1}; // Z must be -1 due to chair's geometry (magic floating seat point)
|
||||
GVAR(sitRotation) = 2;
|
||||
};
|
||||
// Field Toilet
|
||||
class Land_FieldToilet_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition[]) = {0, 0.75, -1.1};
|
||||
GVAR(sitRotation) = 10;
|
||||
};
|
||||
// Toiletbox
|
||||
class Land_ToiletBox_F: ThingX {
|
||||
XEH_ENABLED;
|
||||
MACRO_SEAT_ACTION
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition[]) = {0, 0.75, -1.1};
|
||||
GVAR(sitRotation) = 10;
|
||||
};
|
||||
};
|
10
addons/sitting/README.md
Normal file
10
addons/sitting/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
ace_sitting
|
||||
===============
|
||||
|
||||
The Sitting module introduces ability to sit on different chairs and toilets.
|
||||
|
||||
## Maintainers
|
||||
|
||||
The people responsible for merging changes to this component or answering potential questions.
|
||||
|
||||
- [Jonpas] (https://github.com/jonpas)
|
BIN
addons/sitting/UI/Icon_Module_Sitting_ca.paa
Normal file
BIN
addons/sitting/UI/Icon_Module_Sitting_ca.paa
Normal file
Binary file not shown.
BIN
addons/sitting/UI/sit_ca.paa
Normal file
BIN
addons/sitting/UI/sit_ca.paa
Normal file
Binary file not shown.
BIN
addons/sitting/UI/stand_ca.paa
Normal file
BIN
addons/sitting/UI/stand_ca.paa
Normal file
Binary file not shown.
12
addons/sitting/XEH_clientInit.sqf
Normal file
12
addons/sitting/XEH_clientInit.sqf
Normal file
@ -0,0 +1,12 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Exit on Headless
|
||||
if !(hasInterface) exitWith {};
|
||||
|
||||
// Add interaction menu exception
|
||||
["isNotSitting", {!((_this select 0) getVariable [QGVAR(isSitting), false])}] call EFUNC(common,addCanInteractWithCondition);
|
||||
|
||||
// Handle interruptions
|
||||
["medical_onUnconscious", {_this call DFUNC(handleInterrupt)}] call EFUNC(common,addEventhandler);
|
||||
["SetHandcuffed", {_this call DFUNC(handleInterrupt)}] call EFUNC(common,addEventhandler);
|
||||
["SetSurrendered", {_this call DFUNC(handleInterrupt)}] call EFUNC(common,addEventhandler);
|
13
addons/sitting/XEH_preInit.sqf
Normal file
13
addons/sitting/XEH_preInit.sqf
Normal file
@ -0,0 +1,13 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(canSit);
|
||||
PREP(canStand);
|
||||
PREP(getRandomAnimation);
|
||||
PREP(handleInterrupt);
|
||||
PREP(moduleInit);
|
||||
PREP(sit);
|
||||
PREP(stand);
|
||||
|
||||
ADDON = true;
|
17
addons/sitting/config.cpp
Normal file
17
addons/sitting/config.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author[] = {"Jonpas"};
|
||||
authorUrl = "https://github.com/jonpas";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "ACE_Settings.hpp"
|
||||
#include "CfgVehicles.hpp"
|
22
addons/sitting/functions/fnc_canSit.sqf
Normal file
22
addons/sitting/functions/fnc_canSit.sqf
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Check if the player can sit down.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Seat <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can Sit Down <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [seat, player] call ace_sitting_fnc_canSit;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
PARAMS_2(_seat,_player);
|
||||
|
||||
// Sitting enabled, is seat object and not occupied
|
||||
(GVAR(enable) && {getNumber (configFile >> "CfgVehicles" >> typeOf _seat >> QGVAR(canSit)) == 1} && {isNil{_seat getVariable QGVAR(seatOccupied)}})
|
21
addons/sitting/functions/fnc_canStand.sqf
Normal file
21
addons/sitting/functions/fnc_canStand.sqf
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Check if the player can stand up (is in sitting position).
|
||||
*
|
||||
* Arguments:
|
||||
* Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can Stand Up <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* player call ace_sitting_fnc_canStand;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
PARAMS_1(_player);
|
||||
|
||||
// Sitting
|
||||
(_player getVariable [QGVAR(isSitting),false])
|
49
addons/sitting/functions/fnc_getRandomAnimation.sqf
Normal file
49
addons/sitting/functions/fnc_getRandomAnimation.sqf
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Gets a random animations from the list.
|
||||
*
|
||||
* Arguments:
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* Random Animation <STRING>
|
||||
*
|
||||
* Example:
|
||||
* _animation = call ace_sitting_fnc_getRandomAnimation;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_animations"];
|
||||
|
||||
// Animations Pool
|
||||
_animations = [
|
||||
"HubSittingChairUA_idle1",
|
||||
"HubSittingChairUA_idle2",
|
||||
"HubSittingChairUA_idle3",
|
||||
"HubSittingChairUA_move1",
|
||||
"HubSittingChairUB_idle1",
|
||||
"HubSittingChairUB_idle2",
|
||||
"HubSittingChairUB_idle3",
|
||||
"HubSittingChairUB_move1",
|
||||
"HubSittingChairUC_idle1",
|
||||
"HubSittingChairUC_idle2",
|
||||
"HubSittingChairUC_idle3",
|
||||
"HubSittingChairUC_move1",
|
||||
"HubSittingChairA_idle1",
|
||||
"HubSittingChairA_idle2",
|
||||
"HubSittingChairA_idle3",
|
||||
"HubSittingChairA_move1",
|
||||
"HubSittingChairB_idle1",
|
||||
"HubSittingChairB_idle2",
|
||||
"HubSittingChairB_idle3",
|
||||
"HubSittingChairB_move1",
|
||||
"HubSittingChairC_idle1",
|
||||
"HubSittingChairC_idle2",
|
||||
"HubSittingChairC_idle3",
|
||||
"HubSittingChairC_move1"
|
||||
];
|
||||
|
||||
// Select random animation
|
||||
(_animations select (floor (random (count _animations))))
|
22
addons/sitting/functions/fnc_handleInterrupt.sqf
Normal file
22
addons/sitting/functions/fnc_handleInterrupt.sqf
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Handles interruptions of sitting, like killed or unconsciousness.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player] call ace_sitting_fnc_handleInterrupt;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
PARAMS_1(_player);
|
||||
|
||||
if (_player getVariable [QGVAR(isSitting), false]) then {
|
||||
[_player] call FUNC(stand);
|
||||
};
|
21
addons/sitting/functions/fnc_moduleInit.sqf
Normal file
21
addons/sitting/functions/fnc_moduleInit.sqf
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Initializes the Sitting module.
|
||||
*
|
||||
* Arguments:
|
||||
* Whatever the module provides.
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
if !(isServer) exitWith {};
|
||||
|
||||
PARAMS_3(_logic,_units,_activated);
|
||||
|
||||
if !(_activated) exitWith {};
|
||||
|
||||
[_logic, QGVAR(enable), "enable"] call EFUNC(common,readSettingFromModule);
|
||||
|
||||
diag_log text "[ACE]: Sitting Module Initialized.";
|
63
addons/sitting/functions/fnc_sit.sqf
Normal file
63
addons/sitting/functions/fnc_sit.sqf
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Sits down the player.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Seat <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [seat, player] call ace_sitting_fnc_sit;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_configFile", "_sitDirection", "_sitPosition", "_sitRotation", "_sitDirectionVisual"];
|
||||
|
||||
PARAMS_2(_seat,_player);
|
||||
|
||||
// Set global variable for standing up
|
||||
GVAR(seat) = _seat;
|
||||
|
||||
// Overwrite weird position, because Arma decides to set it differently based on current animation/stance...
|
||||
_player switchMove "amovpknlmstpsraswrfldnon";
|
||||
|
||||
// Read config
|
||||
_configFile = configFile >> "CfgVehicles" >> typeOf _seat;
|
||||
_sitDirection = (getDir _seat) + getNumber (_configFile >> QGVAR(sitDirection));
|
||||
_sitPosition = getArray (_configFile >> QGVAR(sitPosition));
|
||||
_sitRotation = if (isNumber (_configFile >> QGVAR(sitRotation))) then {getNumber (_configFile >> QGVAR(sitRotation))} else {45}; // Apply default if config entry not present
|
||||
|
||||
// Get random animation and perform it (before moving player to ensure correct placement)
|
||||
[_player, call FUNC(getRandomAnimation), 2] call EFUNC(common,doAnimation);
|
||||
|
||||
// Set direction and position
|
||||
_player setDir _sitDirection;
|
||||
_player setPosASL (_seat modelToWorld _sitPosition) call EFUNC(common,positionToASL);
|
||||
|
||||
// Set variables
|
||||
_player setVariable [QGVAR(isSitting), true];
|
||||
_seat setVariable [QGVAR(seatOccupied), true, true]; // To prevent multiple people sitting on one seat
|
||||
|
||||
// Add rotation control PFH
|
||||
_sitDirectionVisual = getDirVisual _player; // Needed for precision and issues with using above directly
|
||||
[{
|
||||
EXPLODE_3_PVT(_this select 0,_player,_sitDirectionVisual,_sitRotation);
|
||||
|
||||
// Remove PFH if not sitting any more
|
||||
if !(_player getVariable [QGVAR(isSitting), false]) exitWith {
|
||||
[_this select 1] call cba_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
// Set direction to boundary when passing it
|
||||
if (getDir _player > _sitDirectionVisual + _sitRotation) exitWith {
|
||||
_player setDir (_sitDirectionVisual + _sitRotation);
|
||||
};
|
||||
if (getDir _player < _sitDirectionVisual - _sitRotation) exitWith {
|
||||
_player setDir (_sitDirectionVisual - _sitRotation);
|
||||
};
|
||||
}, 0, [_player, _sitDirectionVisual, _sitRotation]] call cba_fnc_addPerFrameHandler;
|
26
addons/sitting/functions/fnc_stand.sqf
Normal file
26
addons/sitting/functions/fnc_stand.sqf
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Stands up the player.
|
||||
*
|
||||
* Arguments:
|
||||
* Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* player call ace_sitting_fnc_stand;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
PARAMS_1(_player);
|
||||
|
||||
// Restore animation
|
||||
[_player, "", 2] call EFUNC(common,doAnimation);
|
||||
|
||||
// Set variables to nil
|
||||
_player setVariable [QGVAR(isSitting), nil];
|
||||
GVAR(seat) setVariable [QGVAR(seatOccupied), nil, true];
|
||||
GVAR(seat) = nil;
|
1
addons/sitting/functions/script_component.hpp
Normal file
1
addons/sitting/functions/script_component.hpp
Normal file
@ -0,0 +1 @@
|
||||
#include "\z\ace\addons\sitting\script_component.hpp"
|
12
addons/sitting/script_component.hpp
Normal file
12
addons/sitting/script_component.hpp
Normal file
@ -0,0 +1,12 @@
|
||||
#define COMPONENT sitting
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#ifdef DEBUG_ENABLED_SITTING
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_SETTINGS_SITTING
|
||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_SITTING
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
22
addons/sitting/stringtable.xml
Normal file
22
addons/sitting/stringtable.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Sitting">
|
||||
<Key ID="STR_ACE_Sitting_Sit">
|
||||
<English>Sit Down</English>
|
||||
<Polish>Usiądź</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_Stand">
|
||||
<English>Stand Up</English>
|
||||
<Polish>Wstań</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_Enable">
|
||||
<English>Enable Sitting</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_ModuleDisplayName">
|
||||
<English>Sitting</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_ModuleDescription">
|
||||
<English>This module allows you to disable the ability to sit on chairs and toilets.</English>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -17,14 +17,14 @@ Adds an attachable IR strobe, which is only visible using night vision devices a
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 Attaching to yourself
|
||||
- Use Self Interact <kbd>CTRL</kbd>+<kbd>Left Windows</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Use Self Interact <kbd>CTRL</kbd>+<kbd>⊞ Win</kbd> (ACE3 default).
|
||||
- Select `Equipment`.
|
||||
- Select `Attach item`.
|
||||
- Select which item you want to attach.
|
||||
- Repeat the process to detach.
|
||||
|
||||
### 2.2 Attaching to a vehicle
|
||||
- Interact with the vehicle <kbd>Left Windows</kbd> (ACE3 default key bind `Interact Key`).
|
||||
- Interact with the vehicle <kbd>⊞ Win</kbd> (ACE3 default).
|
||||
- Select `Attach item`.
|
||||
- Select your item and follow the instructions on the screen.
|
||||
- Repeat the process to detach.
|
||||
|
@ -24,20 +24,23 @@ Allows players to surrender. It renders the unit unable to move and with the han
|
||||
|
||||
### 2.1 Taking a unit into captivity
|
||||
- You need `Cable Tie`.
|
||||
- Approach the unit and Interact <kbd>Left Windows</kbd> (ACE3 default key bind `Interact Key`).
|
||||
- Approach the unit and Interact <kbd>⊞ win</kbd> (ACE3 default).
|
||||
- The interaction is located around the hands in the form of a handcuffs icon.
|
||||
- Repeat to release.
|
||||
|
||||
### 2.2 Escorting a captive
|
||||
- Interact with the captive <kbd>Left Windows</kbd>.
|
||||
- Interact with the captive <kbd>⊞ win</kbd>.
|
||||
- Select the `Escort prisoner` option.
|
||||
- To stop escorting, use the mousewheel and select `Release` or use Self Interaction <kbd>CTRL</kbd>+<kbd>Left Windows</kbd> and select `Release`.
|
||||
- To stop escorting, use the mousewheel and select `Release` or use Self Interaction <kbd>CTRL</kbd>+<kbd>⊞ win</kbd> and select `Release`.
|
||||
|
||||
### 2.3 Loading and unloading a captive into/from a vehicle
|
||||
- Escort the captive.
|
||||
- Approach the vehicle you wish to load the captive unit into.
|
||||
- Interact with the vehicle <kbd>Left Windows</kbd> and select `Load captive`.
|
||||
- Interact with the vehicle to unload.
|
||||
- Interact with the vehicle <kbd>⊞ win</kbd> and select `Load captive`.
|
||||
- To unload the captive interact with the vehicle <kbd>⊞ win</kbd>
|
||||
- Select `Passengers`.
|
||||
- Select the captive.
|
||||
- Select `Unload captive`.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
|
22
documentation/feature/concertina_wire.md
Normal file
22
documentation/feature/concertina_wire.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: concertina wire
|
||||
description:
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
A concertina wire is a type of barbed wire formed in large coils that can be expanded to form obstacles, in ACE3 any vehicle making contact with it get it's tires destroyed.
|
||||
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 Deploying the concertina wire
|
||||
- Approach the concertina coil and select <kbd>⊞ Win</kbd> (ACE3 default)
|
||||
- Select `Deploy concertina wire`.
|
||||
- Follow the instructions on screen.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_apl` , `ace_interaction`
|
14
documentation/feature/dagr.md
Normal file
14
documentation/feature/dagr.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: Dagr
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Adds the Defense Advanced GPS Receiver.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_weather`
|
@ -14,7 +14,7 @@ You can search the inventory and disarm captured or unconscious units.
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 Searching and disarming
|
||||
- Interact with the captured or unconscious unit <kbd>Left Windows</kbd> (ACE3 default key bind `Interaction Key`).
|
||||
- Interact with the captured or unconscious unit <kbd>⊞ Win</kbd> (ACE3 default key bind `Interaction Key`).
|
||||
- Select `Open inventory`.
|
||||
- Drag & Drop the items you wish to remove from the unit.
|
||||
|
||||
|
@ -14,9 +14,9 @@ This adds the option to drag or carry units or objects.
|
||||
|
||||
### 2.1 Dragging / Carrying units and objects
|
||||
- You can only drag or carry an unconscious unit.
|
||||
- Interact with the unit or object <kbd>Left Windows</kbd> (ACE3 default key bind `Interact Key`).
|
||||
- Interact with the unit or object <kbd>⊞ Win</kbd> (ACE3 default key bind `Interact Key`).
|
||||
- Select `Drag` or `Carry`.
|
||||
- To release, use the mouse wheel and select `Release` or use Self Interaction <kbd>CTRL</kbd>+<kbd>Left Windows</kbd> and select `Release`.
|
||||
- To release, use the mouse wheel and select `Release` or use Self Interaction <kbd>CTRL</kbd>+<kbd>⊞ Win</kbd> and select `Release`.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
|
@ -20,18 +20,18 @@ Enables attaching explosives to vehicles.
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 Placing explosives
|
||||
- Use self interaction <kbd>CTRL</kbd>+<kbd>Left Windows</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Use self interaction <kbd>CTRL</kbd>+<kbd>⊞ Win</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Select `Explosives`.
|
||||
- Choose your explosive type and follow the instructions on the screen.
|
||||
|
||||
### 2.2 Arming and detonating explosives
|
||||
- Interact with the explosive <kbd>Left Windows</kbd> (ACE3 default key bind `Interact Key`).
|
||||
- Interact with the explosive <kbd>⊞ Win</kbd> (ACE3 default key bind `Interact Key`).
|
||||
- Choose the arming method.
|
||||
- For clackers use Self Interaction `Explosives` → `Detonate` and choose the corresponding Firing Device.
|
||||
|
||||
### 2.3 Defusing explosives
|
||||
- A `Defusal Kit` is required.
|
||||
- Interact with the explosive <kbd>Left Windows</kbd>.
|
||||
- Interact with the explosive <kbd>⊞ Win</kbd>.
|
||||
- Select `Disarm`.
|
||||
- You are safe to pick it up after the action has completed.
|
||||
|
||||
|
15
documentation/feature/fonts.md
Normal file
15
documentation/feature/fonts.md
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: Fonts
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
This module adds a font that will be used in the future, characters with equal widths to make it easy to structure correctly. This is **NOT** present in 3.1.1 because of a bug even if it's present in the sources.
|
||||
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_main`
|
@ -19,7 +19,7 @@ missile launchers will be equipped with those, but remember to put them in.
|
||||
|
||||
### 2.1 Equipping earplugs
|
||||
- For this you need the `Earplugs` item.
|
||||
- Press the self interaction key <kbd>CTRL</kbd> + <kbd>Left Windows</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Press the self interaction key <kbd>CTRL</kbd> + <kbd>⊞ Win</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Select `Equipment`.
|
||||
- Select `Earplugs in`.
|
||||
- Same method to remove them but the option is `Earplugs out`.
|
||||
|
42
documentation/feature/huntIR.md
Normal file
42
documentation/feature/huntIR.md
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: HuntIR
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
### 1.1 The HuntIR
|
||||
The **H**igh altitude **U**nit **N**avigated **T**actical **I**maging **R**ound (HuntIR) is designed to be fired from a grenade launcher. After being fired in the air the in built parachute will be deployed and the IR CMOS camera will activate, providing a video stream until it touches the ground or get shot down.
|
||||
|
||||
## 2. Usage
|
||||
NOTE: the HuntIR round doesn't work with modded weapons without a compatibility fix made either by the ACE3 team or the mod team.
|
||||
|
||||
### 2.1 Using the HuntIR
|
||||
- To be able to connect to the IR CMOS camera you'll need a `HuntIR monitor`.
|
||||
- Fire the HuntIR round as high as possible over the area you want to observe.
|
||||
- Open the `HuntIR monitor`.
|
||||
- To open the `HuntIR monitor` self interact <kbd>CTRL</kbd> + <kbd>⊞ Win</kbd> (ACE3 default)
|
||||
- Select `Equipment`.
|
||||
- Select `Activate HuntIR monitor`.
|
||||
- You now have control of the IR CMOS camera to close the monitor press <kbd>ESC</kbd> or <kbd>⊞ Win</kbd>
|
||||
|
||||
### 2.2 IR CMOS camera controls
|
||||
|
||||
Shortcut | Action
|
||||
------------ | -------------
|
||||
<kbd>A</kbd> | Lower zoom level
|
||||
<kbd>D</kbd> | Increase zoom level
|
||||
<kbd>N</kbd> | Toggle NV and TI modes
|
||||
<kbd>S</kbd> | Next camera
|
||||
<kbd>W</kbd> | Previous camera
|
||||
<kbd>←</kbd> | Rotate camera anticlockwise
|
||||
<kbd>→</kbd>| Rotate camera clockwise
|
||||
<kbd>↑</kbd> | Raise camera
|
||||
<kbd>↓</kbd> | Lower camera
|
||||
<kbd>R</kbd> | Reset camera
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_common`
|
@ -15,7 +15,7 @@ Adds an item `ACE_UAVBattery` that allows refuelling / recharging of the "Darter
|
||||
|
||||
### 2.1 Recharging the darter
|
||||
- For this you need a `UAV battery` and the UAV needs to be a quad-copter.
|
||||
- Interact with the UAV <kbd>Left Windows</kbd> (ACE3 default key bind `Interact Key`)
|
||||
- Interact with the UAV <kbd>⊞ Win</kbd> (ACE3 default key bind `Interact Key`)
|
||||
- Select `Recharge`
|
||||
|
||||
## 3. Dependencies
|
||||
|
@ -16,7 +16,7 @@ Adds an item `ACE_wirecutter` that allows cutting of fences in Arma 3 and AllInA
|
||||
### 2.1 Using the wirecutter
|
||||
- For this you need a `Wirecutter`.
|
||||
- Approach the fence you want to cut.
|
||||
- Press the interaction key <kbd>Left Windows</kbd> (ACE3 default key bind `Interaction Key`).
|
||||
- Press the interaction key <kbd>⊞ Win</kbd> (ACE3 default key bind `Interaction Key`).
|
||||
- Find the interaction point and select `Cut Fence` (the only option).
|
||||
|
||||
## 3. Dependencies
|
||||
|
@ -15,7 +15,7 @@ Adds the ability to repack magazines of the same type.
|
||||
|
||||
### 2.1 Repacking
|
||||
- For this you need multiple half empty mags of the same type.
|
||||
- Press the self interaction button <kbd>CTRL</kbd> + <kbd>Left Windows</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Press the self interaction button <kbd>CTRL</kbd> + <kbd>⊞ Win</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Select `Repack magazines`.
|
||||
- Select the type of magazines you want to repack.
|
||||
|
||||
|
@ -22,7 +22,7 @@ If you are equipped with a vanilla GPS it will be shown on the map. (You don't n
|
||||
### 2.1 Using map tools
|
||||
- For this you need to have `Map Tools`.
|
||||
- Open the map <kbd>M</kbd> (Arma 3 default key bind `Map`).
|
||||
- Press the self interaction key <kbd>CTRL</kbd> + <kbd>Left Windows</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Press the self interaction key <kbd>CTRL</kbd> + <kbd>⊞ Win</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Select `Map tools`.
|
||||
- Select the type of tools you want to use.
|
||||
- Note that you can drag the Roamer (map tool) around with <kdd> LMB </kbd> and rotate it with <kbd>CTRL</kbd> + <kbd>LMB</kbd>.
|
||||
|
@ -18,7 +18,7 @@ ACE3 adds wind deflection for shells as well as a rangetable to accurately take
|
||||
|
||||
### 2.2 Working with the rangetable
|
||||
- To open the table:
|
||||
- Self interact <kbd>CTRL</kbd> + <kbd>Left Windows</kbd>
|
||||
- Self interact <kbd>CTRL</kbd> + <kbd>⊞ Win</kbd>
|
||||
- Select `equipment`.
|
||||
- Select `Open 82mm Rangetable`.
|
||||
|
||||
|
14
documentation/feature/mx2a.md
Normal file
14
documentation/feature/mx2a.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: MX-2A
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Adds the MX-2A thermal imaging device.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_apl`
|
@ -25,12 +25,12 @@ Adds the ability to changes barrels on machine guns to compensate for those effe
|
||||
|
||||
### 2.2 Swapping barrels
|
||||
- For this you need a `Spare barrel` and a compatible weapon.
|
||||
- Press self interaction <kbd>CTRL</kbd> + <kbd>Left Windows</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Press self interaction <kbd>CTRL</kbd> + <kbd>⊞ Win</kbd> (ACE3 default key bind `Self Interaction Key`).
|
||||
- Select `Equipment`.
|
||||
- Select `Swap barrel`.
|
||||
|
||||
### 2.3 Checking your barrel temperature
|
||||
- Press self interaction <kbd>CTRL</kbd> + <kbd>Left Windows</kbd>.
|
||||
- Press self interaction <kbd>CTRL</kbd> + <kbd>⊞ Win</kbd>.
|
||||
- Select `Equipment`.
|
||||
- Select `Check weapon temperature`.
|
||||
|
||||
|
@ -13,7 +13,7 @@ Add the ability to reload someone else's launcher.
|
||||
### 2. Usage
|
||||
|
||||
### 2.1 Reloading someone else's launcher
|
||||
- Press the interaction key <kbd>Left Windows</kbd> and aim at your buddy's launcher.
|
||||
- Press the interaction key <kbd>⊞ Win</kbd> and aim at your buddy's launcher.
|
||||
- Select `reload launcher`.
|
||||
- Select the type of ammo.
|
||||
|
||||
|
@ -23,7 +23,7 @@ Adds rallypoints to all 3 sides to enable teleportation from base spawn to FOB's
|
||||
### 2.1 Using rallypoints
|
||||
- For this to work pre-emptive preparations need to be made by the mission maker.
|
||||
- Approach the rallypoint flagpole
|
||||
- Use the interaction key <kbd>Left Windows</kbd> (ACE3 default key bind `Interaction key`).
|
||||
- Use the interaction key <kbd>⊞ Win</kbd> (ACE3 default key bind `Interaction key`).
|
||||
- Select teleport to (base / rallypoint).
|
||||
|
||||
|
||||
|
24
documentation/feature/sandbags.md
Normal file
24
documentation/feature/sandbags.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: Sandbags
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Adds stackable sandbags able to block bullets, shrapnel and small explosions.
|
||||
Note that those sandbags are affected by physics, a rocket will send them flying.
|
||||
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 Placing the sandbags
|
||||
- You'll need at least one `sandbag (empty)`.
|
||||
- You need to be over a grass area / sand area to be able to fill the sandbag.
|
||||
- Self interact <kbd>CTRL</kbd>+<kbd>⊞ Win</kbd> (ACE3 default).
|
||||
- Select `Deploy sandbag`.
|
||||
- Follow the instruction on screen.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_interaction`
|
21
documentation/feature/spotting_scope.md
Normal file
21
documentation/feature/spotting_scope.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: Spotting scope
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Adds a deployable spotting scope.
|
||||
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 Deploying the spotting scope
|
||||
- Self interact <kbd>CTRL</kbd>+<kbd>⊞ Win</kbd> (ACE3 default).
|
||||
- Select `Equipment`.
|
||||
- Select `Place spotting scope` (note that the scope will be at your feet).
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_apl` , `ace_interaction`
|
21
documentation/feature/tacticallader.md
Normal file
21
documentation/feature/tacticallader.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: Tactical ladder
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Adds a deployable ladder with adjustable height that you can transport on your back.
|
||||
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 Deploying the ladder
|
||||
- Self interact <kbd>CTRL</kbd>+<kbd>⊞ Win</kbd> (ACE3 default).
|
||||
- Select `Deploy ladder`.
|
||||
- You can adjust it's position and height by interacting with it <kbd>⊞ Win</kbd> (ACE3 default) and following the instructions on screen.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_apl` , `ace_interaction`
|
24
documentation/feature/tripod.md
Normal file
24
documentation/feature/tripod.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: Tripod
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Adds a packable tripod deployable on the field. It features a flat part to deploy your weapon on and adjustable legs.
|
||||
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 deploying the tripod
|
||||
- Note that you need a `SSWT kit` in your inventory.
|
||||
- Self interact <kbd>CTRL</kbd>+<kbd>⊞ Win</kbd>.
|
||||
- Select `Equipment`
|
||||
- Select `Place SSWT kit`.
|
||||
|
||||
To adjust or pick up the tripod just interact with it <kbd>⊞ Win</kbd> and select the desired action.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_interaction`
|
15
documentation/feature/ui.md
Normal file
15
documentation/feature/ui.md
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: UI
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Changes the chat contrast on the map to allow easier reading.
|
||||
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_common`
|
22
documentation/feature/yardage450.md
Normal file
22
documentation/feature/yardage450.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
layout: wiki
|
||||
title: Yardage 450
|
||||
group: feature
|
||||
parent: wiki
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
Adds the Bushnell Yardage Pro Sport 450 Laser Rangefinder.
|
||||
|
||||
## 2. Usage
|
||||
|
||||
### 2.1 How to use the Yardage 450
|
||||
- Bring it up like any other binocular
|
||||
- Tap <kbd>R</kbd> once to activate the device.
|
||||
- Sight the target and Hold <kbd>R</kbd> until `TARGET AQCUIRED` appears on top of the screen.
|
||||
- The range in meters should now appear at the bottom of the screen.
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
`ace_apl` , `ace_laser`
|
@ -77,6 +77,21 @@ classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_Banana | banana | ACE_ItemCore |
|
||||
|
||||
### Concertina_wire
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_ConcertinaWireCoil | Concertina Wire Coil | ThingX |
|
||||
ACE_ConcertinaWire | Concertina Wire | deployed concertina wire |
|
||||
|
||||
### Dagr
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_DAGR | DAGR | ACE_ItemCore |
|
||||
|
||||
### Disposable
|
||||
`added in 3.0.0.3`
|
||||
|
||||
@ -106,13 +121,22 @@ ACE_HandFlare_Green | M127A1 Hand Held Signal (Green) | Grenade |
|
||||
ACE_HandFlare_Yellow | M127A1 Hand Held Signal (Yellow) | Grenade |
|
||||
ACE_M84 | M84 Stun Grenade | Grenade |
|
||||
|
||||
### hearing
|
||||
### Hearing
|
||||
`added in 3.0.0.3`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_EarPlugs | Earplugs | ACE_ItemCore |
|
||||
|
||||
### HuntIR
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_HuntIR_monitor | HuntIR monitor | ACE_ItemCore |
|
||||
ACE_HuntIR_M203 | HuntIR Round | Grenade shell |
|
||||
ACE_HuntIR_Box | HuntIR Transport Box | ammo box |
|
||||
|
||||
### Kestrel
|
||||
`added in 3.0.0.3`
|
||||
|
||||
@ -187,6 +211,14 @@ classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_RangeTable_82mm | 82mm Rangetable | ACE_ItemCore |
|
||||
|
||||
### M2XA
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_MX2A | MX-2A | Binocular |
|
||||
|
||||
|
||||
### Nightvision
|
||||
`added in 3.0.0.3`
|
||||
|
||||
@ -254,3 +286,42 @@ ACE_key_west | Vehicle Key: West | ACE_ItemCore |
|
||||
ACE_key_east | Vehicle Key: East | ACE_ItemCore |
|
||||
ACE_key_indp | Vehicle Key: Independent | ACE_ItemCore |
|
||||
ACE_key_civ | Vehicle Key: Civilian | ACE_ItemCore |
|
||||
|
||||
### Sandbag
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_Sandbag_empty | Sandbag (empty) | ACE_ItemCore |
|
||||
ACE_SandbagObject | Sandbag | ThingX |
|
||||
|
||||
### Spotting scope
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_SpottingScope | Spotting Scope | ACE_ItemCore |
|
||||
ACE_SpottingScopeObject | Spotting Scope (placed) | StaticATWeapon |
|
||||
|
||||
### Tactical ladder
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_TacticalLadder_Pack | Telescopic Ladder | Backpack |
|
||||
ACE_Tactical_Ladder | Telescopic Ladder (placed) | house |
|
||||
|
||||
### Tripod
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_Tripod | SSWT Kit | ACE_ItemCore |
|
||||
ACE_TripodObject | SSWT Kit (placed) | ThingX |
|
||||
|
||||
### Yardage 450
|
||||
`added in 3.1.1`
|
||||
|
||||
classname | in game name | type |
|
||||
--------- | --------- | ---------
|
||||
ACE_Yardage450 | Yardage 450 | Binocular |
|
@ -18,29 +18,39 @@ This module allows enabling and configuring advanced ballistic simulations.
|
||||
1. **Advanced Ballistics (Boolean)**<br>
|
||||
Enables advanced ballistics.<br>
|
||||
`Default value: No`
|
||||
|
||||
2. **Enabled For Snipers (Boolean)**<br>
|
||||
Enables advanced ballistics for non local snipers (when using high power optics).<br>
|
||||
`Default value: Yes`
|
||||
|
||||
3. **Enabled For Group Members (Boolean)**<br>
|
||||
Enables advanced ballistics for non local group members.<br>
|
||||
`Default value: No`
|
||||
|
||||
4. **Enabled For Everyone (Boolean)**<br>
|
||||
Enables advanced ballistics for all non local players (enabling this feature may degrade performance during heavy firefights in multiplayer).<br>
|
||||
`Default value: No`
|
||||
|
||||
5. **Disabled In FullAuto Mode (Boolean)**<br>
|
||||
Disables the advanced ballistics during full auto fire.<br>
|
||||
`Default value: No`
|
||||
|
||||
6. **Enable Ammo Temperature Simulation (Boolean)**<br>
|
||||
Muzzle velocity varies with ammo temperature.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
7. **Enable Barrel Length Simulation (Boolean)**<br>
|
||||
Muzzle velocity varies with barrel length.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
8. **Enable Bullet Trace Effect (Boolean)**<br>
|
||||
Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics).<br>
|
||||
`default value: Yes `
|
||||
|
||||
9. **Simulation Interval (Number)**<br>
|
||||
Defines the interval between every calculation step.<br>
|
||||
`Default value: 0.00`
|
||||
|
||||
10. **Simulation Radius (Number)**<br>
|
||||
Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles.<br>
|
||||
`Default value: 3000`
|
||||
@ -68,7 +78,23 @@ How often the markers should be refreshed (in seconds).<br>
|
||||
Hide markers for "AI only" groups.<br>
|
||||
`Default value: No`
|
||||
|
||||
### 1.4 Check PBOs
|
||||
### 1.4 Captives settings
|
||||
*Part of: ace_captives*
|
||||
|
||||
Controls the settings for cable ties and surrendering.
|
||||
Very useful if you don't want your players to be able to restrict each others.
|
||||
|
||||
**Settings:**
|
||||
|
||||
1. **Can handcuff own side (Boolean)**<br>
|
||||
Determine if you are able to handcuff your own side or not.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
2. **Allow surrendering (Boolean)**<br>
|
||||
Determine if you are able to surrender or not when your weapon is holstered.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
### 1.5 Check PBOs
|
||||
*Part of: ace_common*
|
||||
|
||||
If you are worried that players haven't updated ACE3 or other mods to the version you're using on the server, you can place the "Check PBOs" module on your map. You can choose one of three posible actions that are being executed when a player joins that has a wrong version of ACE3 or an other mod:
|
||||
@ -107,7 +133,7 @@ Example 3: @JSRS + @Blastcore-A3:<br>
|
||||
```
|
||||
|
||||
|
||||
### 1.5 Explosive System
|
||||
### 1.6 Explosive System
|
||||
*Part of: ace_explosive*
|
||||
|
||||
The "Explosive System" module lets you tweak the settings for the new explosive system that ACE3 introduces.
|
||||
@ -117,18 +143,19 @@ The "Explosive System" module lets you tweak the settings for the new explosive
|
||||
1. **Require specialists? (Boolean)**<br>
|
||||
Require explosive specialists to disable explosives.<br>
|
||||
`Default value: No`
|
||||
|
||||
2. **Punish non-specialists? (Boolean)**<br>
|
||||
Increase the time it takes to complete actions for non-specialists.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
|
||||
### 1.6 Friendly Fire Messages
|
||||
### 1.7 Friendly Fire Messages
|
||||
*Part of: ace_respawn*
|
||||
|
||||
The "Friendly Fire Messages" module triggers a message when a player kills a friendly or civilian unit. This module isn't needed on servers with a low difficulty setting.
|
||||
|
||||
|
||||
### 1.7 Hearing
|
||||
### 1.8 Hearing
|
||||
*Part of: ace_hearing*
|
||||
|
||||
Placing this modules allows you to disable combat deafness usually triggerd by loud explosions or heavy weapons in a players proximity.
|
||||
@ -140,7 +167,7 @@ Enable combat deafness?<br>
|
||||
`Default value: Yes`
|
||||
|
||||
|
||||
### 1.8 Interaction System
|
||||
### 1.9 Interaction System
|
||||
*Part of: ace_interaction*
|
||||
|
||||
This module allows you to tweak if players should be able to use team management functions (e.g. "switch group", "become leader").
|
||||
@ -151,13 +178,13 @@ This module allows you to tweak if players should be able to use team management
|
||||
Should players be allowed to use the Team Management Menu?.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
### 1.9 Make Unit Surrender
|
||||
### 1.10 Make Unit Surrender
|
||||
*Part of: ace_captives*
|
||||
|
||||
Syncing units to that module sets them in the captive state with their arms behind their back. Usefull for e.g. hostage rescue missions.
|
||||
|
||||
|
||||
### 1.10 Map
|
||||
### 1.11 Map
|
||||
*Part of: ace_map*
|
||||
|
||||
ACE3 introdcues a bit more realism for the vanilla Arma 3 map and how it behaves. Some of these settings can be toggled by this module.
|
||||
@ -167,18 +194,21 @@ ACE3 introdcues a bit more realism for the vanilla Arma 3 map and how it behaves
|
||||
1. **Map illumination? (Boolean)**<br>
|
||||
Calculate dynamic map illumination based on light conditions?.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
2. **Map shake? (Boolean)**<br>
|
||||
Make map shake when walking?.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
3. **Limit map zoom? (Boolean)**<br>
|
||||
Limit the amount of zoom available for the map?.<br>
|
||||
`Default value: No`
|
||||
|
||||
4. **Show cursor coordinates? (Boolean)**<br>
|
||||
Show the grid coordinates on the mouse pointer?.<br>
|
||||
`Default value: No`
|
||||
|
||||
|
||||
### 1.11 MicroDAGR Map Fill
|
||||
### 1.12 MicroDAGR Map Fill
|
||||
*Part of: ace_microdagr*
|
||||
|
||||
Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap.
|
||||
@ -190,7 +220,7 @@ How much map data is filled on MicroDAGR's.<br>
|
||||
`Default value: "Full Satellite + Buildings"`
|
||||
|
||||
|
||||
### 1.12 MK6 Settings
|
||||
### 1.13 MK6 Settings
|
||||
*Part of: ace_mk6mortar*
|
||||
|
||||
ACE3 now includes the first iteration of getting a less arcady point and click mortar experience.
|
||||
@ -201,35 +231,44 @@ Placing this modules allows you to enable the increased realism in game.
|
||||
1. **Air Resistance (Boolean)**<br>
|
||||
For Player Shots, Model Air Resistance and Wind Effects.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
2. **Allow MK6 Computer (Boolean)**<br>
|
||||
Show the Computer and Rangefinder (these **NEED** to be removed if you enable air resistance).<br>
|
||||
`Default value: No`
|
||||
|
||||
3. **Allow MK6 Compass (Boolean)**<br>
|
||||
Show the MK6 Digital Compass.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
### 1.13 Name Tags
|
||||
### 1.14 Name Tags
|
||||
*Part of: ace_nametags*
|
||||
|
||||
This module allows you to tweak the settings for player names tags.
|
||||
|
||||
**Settings:**
|
||||
|
||||
1. **Player Names View Distance (Number)**<br>
|
||||
1. **Show player names (Option)**<br>
|
||||
Let you choose when nametags appears.<br>
|
||||
`Default value: "Do Not Force"`
|
||||
|
||||
2. **Player Names View Distance (Number)**<br>
|
||||
Distance (in meters) at which player names are shown.<br>
|
||||
`Default value: 5`
|
||||
2. **Show name tags for AI? (Option)**<br>
|
||||
|
||||
3. **Show name tags for AI? (Option)**<br>
|
||||
Show the name and rank tags for friendly AI units, or by default allows players to choose it on their own.<br>
|
||||
`Default value: "Do Not Force"`
|
||||
3. **Show crew info? (Option)**<br>
|
||||
|
||||
4. **Show crew info? (Option)**<br>
|
||||
Show vehicle crew info, or by default allows players to choose it on their own.<br>
|
||||
`Default value: "Do Not Force"`
|
||||
4. **Show for Vehicles? (Boolean)**<br>
|
||||
|
||||
5. **Show for Vehicles? (Boolean)**<br>
|
||||
Show cursor NameTag for vehicle commander (only if client has name tags enabled).<br>
|
||||
`Default value: No`
|
||||
|
||||
|
||||
### 1.14 Rallypoint System
|
||||
### 1.15 Rallypoint System
|
||||
*Part of: ace_respawn*
|
||||
|
||||
This module enables Mission Makers to specificly enable units to move a rallypoint. Every unit that is synced with that module is able to move a rallypoint.
|
||||
@ -242,7 +281,7 @@ This module enables Mission Makers to specificly enable units to move a rallypoi
|
||||
To enable JIP players to move rally points have a look at [ACE3 Rallypoints](./mission-tools.html#1.-ace-rallypoints).
|
||||
|
||||
|
||||
### 1.15 Respawn System
|
||||
### 1.16 Respawn System
|
||||
*Part of: ace_respawn*
|
||||
|
||||
The "Respawn System" module enables players to respawn with the gear they had before dying and to remove bodies of players after a configurable interval (in seconds).
|
||||
@ -254,7 +293,7 @@ Respawn with the gear a player had just before his death.<br>
|
||||
`Default value: No`
|
||||
|
||||
|
||||
### 1.16 SwitchUnits System
|
||||
### 1.17 SwitchUnits System
|
||||
*Part of: ace_switchunits*
|
||||
|
||||
The [SwitchUnits System](./mission-tools.html#2.-ace-switchunits) enables players to control certain AI units on the map.
|
||||
@ -264,33 +303,38 @@ The [SwitchUnits System](./mission-tools.html#2.-ace-switchunits) enables player
|
||||
1. **Switch To West? (Boolean)**<br>
|
||||
Allow switching to west units?<br>
|
||||
`Default value: No`
|
||||
|
||||
2. **Switch To East? (Boolean)**<br>
|
||||
Allow switching to east units?<br>
|
||||
`Default value: No`
|
||||
|
||||
3. **Switch To Independent? (Boolean)**<br>
|
||||
Allow switching to independent units?<br>
|
||||
`Default value: No`
|
||||
|
||||
4. **Switch To Civilian? (Boolean)**<br>
|
||||
Allow switching to civilian units?<br>
|
||||
`Default value: No`
|
||||
|
||||
5. **Enable Safe Zone? (Boolean)**<br>
|
||||
Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
6. **Safe Zone Radius (Number)**<br>
|
||||
The safe zone around players from a different team (in meters)<br>
|
||||
`Default value: 200`
|
||||
|
||||
|
||||
### 1.17 Vehicle Lock
|
||||
### 1.18 Vehicle Lock
|
||||
*Part of: ace_vehiclelock*
|
||||
|
||||
These modules allow you to lock and unlock vehicles and their inventory using a key. Players don't receive a key automatically; for key names, see [Classnames Wiki](http://ace3mod.com/wiki/missionmaker/classnames.html#vehicle-lock).
|
||||
|
||||
#### 1.17.1 Vehicle Key Assign
|
||||
#### 1.18.1 Vehicle Key Assign
|
||||
Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Only valid for objects present at mission start.
|
||||
Example: `[bob, car1, true] call ACE_VehicleLock_fnc_addKeyForVehicle;` - will add a key to bob and program it to work only on car1
|
||||
|
||||
#### 1.17.2.1 Vehicle Lock Setup
|
||||
#### 1.18.2.1 Vehicle Lock Setup
|
||||
Settings for lockpick strength and initial vehicle lock state. Removes ambiguous lock states.
|
||||
|
||||
**Settings:**
|
||||
@ -298,19 +342,21 @@ Settings for lockpick strength and initial vehicle lock state. Removes ambiguous
|
||||
1. **Lock Vehicle Inventory? (Boolean)**<br>
|
||||
Locks the inventory of locked vehicles<br>
|
||||
`Default value: No`
|
||||
|
||||
2. **Vehicle Starting Lock State (Option)**<br>
|
||||
Set lock state for all vehicles (removes ambiguous lock states)<br>
|
||||
`Default value: "As Is"`
|
||||
|
||||
3. **Default Lockpick Strength (Number)**<br>
|
||||
Default Time to lockpick (in seconds)<br>
|
||||
`Default value: 10`
|
||||
|
||||
#### 1.17.2.2 Vehicle setVariables
|
||||
#### 1.18.2.2 Vehicle setVariables
|
||||
* `ACE_VehicleLock_lockSide` - SIDE: overrides a vehicle's side, allowing locking and unlocking using a different side's key. For example: Unlocking INDEP vehicles with a BLUFOR key.
|
||||
* `ACE_vehicleLock_lockpickStrength` - NUMBER: seconds, determines how long lockpicking with take, overrides the value set in the module for a specific vehicle of the mission maker's choice.
|
||||
|
||||
|
||||
### 1.18 View Distance Limiter
|
||||
### 1.19 View Distance Limiter
|
||||
*Part of: ace_viewdistance*
|
||||
|
||||
This module allows disabling the ACE3 View Distance feature as well as setting a view distance limit.
|
||||
@ -320,12 +366,13 @@ This module allows disabling the ACE3 View Distance feature as well as setting a
|
||||
1. **Enable ACE viewdistance (Boolean)**<br>
|
||||
Enables ACE viewdistance<br>
|
||||
`Default value: Yes`
|
||||
|
||||
2. **View Distance Limit (Number)**<br>
|
||||
Sets the limit for how high clients can raise their view distance (<= 10000)
|
||||
`Default value: 10000`
|
||||
|
||||
|
||||
### 1.19 Weather
|
||||
### 1.20 Weather
|
||||
*Part of: ace_weather*
|
||||
|
||||
This module allows you to customize the weather settings.
|
||||
@ -344,6 +391,7 @@ Enables sever side weather propagation.<br>
|
||||
<h5>Note:</h5>
|
||||
<p>This is responsible for synchronizing weather between all clients. Disabling it is <b>not</b> recommended.</p>
|
||||
</div>
|
||||
|
||||
2. **ACE3 Weather (Boolean)**<br>
|
||||
Overrides the default weather with ACE3 weather (map based).<br>
|
||||
`Default value: Yes`
|
||||
@ -351,21 +399,25 @@ Overrides the default weather with ACE3 weather (map based).<br>
|
||||
<h5>Note:</h5>
|
||||
<p>This can be disabled without affecting the weather propagation above. Useful if you prefer changing weather settings manually.</p>
|
||||
</div>
|
||||
|
||||
3. **Sync Rain (Boolean)**<br>
|
||||
Synchronizes rain.<br>
|
||||
`Default value: Yes`
|
||||
3. **Sync Wind (Boolean)**<br>
|
||||
|
||||
4. **Sync Wind (Boolean)**<br>
|
||||
Synchronizes wind.<br>
|
||||
`Default value: Yes`
|
||||
3. **Sync Misc (Boolean)**<br>
|
||||
|
||||
5. **Sync Misc (Boolean)**<br>
|
||||
Synchronizes lightnings, rainbow, fog, ...<br>
|
||||
`Default value: Yes`
|
||||
4. **Update Interval (Number)**<br>
|
||||
|
||||
6. **Update Interval (Number)**<br>
|
||||
Defines the interval (seconds) between weather updates.<br>
|
||||
`Default value: 60`
|
||||
|
||||
|
||||
### 1.20 Wind Deflection
|
||||
### 1.21 Wind Deflection
|
||||
*Part of: ace_winddeflection*
|
||||
|
||||
This module allows you to define when wind deflection is active.
|
||||
@ -385,18 +437,47 @@ This module allows you to define when wind deflection is active.
|
||||
1. **Wind Deflection (Boolean)**<br>
|
||||
Enables wind deflection.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
2. **Vehicle Enabled (Boolean)**<br>
|
||||
Enables wind deflection for static/vehicle gunners.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
3. **Simulation Interval (Number)**<br>
|
||||
Defines the interval between every calculation step.<br>
|
||||
`Default value: 0.05`
|
||||
|
||||
4. **Simulation Radius (Number)**<br>
|
||||
Defines the radius around the player (in meters) at which projectiles are wind deflected.<br>
|
||||
`Default value: 3000`
|
||||
|
||||
### 1.22 Zeus Settings
|
||||
*part of: ace_zeus*
|
||||
|
||||
### 1.21 LSD Vehicles
|
||||
This module provides control over vanilla aspects of Zeus.
|
||||
|
||||
**Settings:**
|
||||
|
||||
1. **Ascension Messages (Option)**<br>
|
||||
Display global popup messages when a player is assigned as Zeus<br>
|
||||
`Default value: No`
|
||||
|
||||
2. **Zeus Eagle (Boolean)**<br>
|
||||
Spawn an eagle that follows the Zeus camera<br>
|
||||
`Default value: No`
|
||||
|
||||
3. **Wind Sounds (Boolean)**<br>
|
||||
Play wind sounds when Zeus remote controls a unit<br>
|
||||
`Default value: No`
|
||||
|
||||
4. **Ordnance Warning (Boolean)**<br>
|
||||
Play a radio warning when Zeus uses ordnance<br>
|
||||
`Default value: No`
|
||||
|
||||
5. **Reveal Mines (Scalar)**<br>
|
||||
Reveal mines to allies and/or place map markers<br>
|
||||
`Default value: Disabled`
|
||||
|
||||
### 1.23 LSD Vehicles
|
||||
*Part of: ace_core*
|
||||
|
||||
And then there's the "LSD Vehicles" module … it does 'something' to all vehicles synced to that module.
|
||||
@ -404,7 +485,6 @@ And then there's the "LSD Vehicles" module … it does 'something' to all v
|
||||
<iframe src="https://www.youtube.com/embed/X3e0LTexEok" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
|
||||
|
||||
## 2. ACE3 Medical
|
||||
*Part of: ace_medical*
|
||||
|
||||
@ -417,37 +497,52 @@ This module allows to tweak all the medical settings used in ACE3
|
||||
1. **Medical Level (Option)**<br>
|
||||
What is the medical simulation level?<br>
|
||||
`Default value: "Basic"`
|
||||
|
||||
2. **Medics setting (Option)**<br>
|
||||
What is the level of detail preferred for medics?<br>
|
||||
`Default value: "Normal"`
|
||||
|
||||
3. **Enable Litter (Boolean)**<br>
|
||||
Enable litter being created upon treatment.<br>
|
||||
`Default value: "Normal"`
|
||||
`Default value: "Yes"`
|
||||
|
||||
4. **Life time of litter objects (Number)**<br>
|
||||
How long should litter objects stay? In seconds. -1 is forever.<br>
|
||||
`Default value: 1800`
|
||||
|
||||
5. **Enable Screams (Boolean)**<br>
|
||||
Enable screaming by injured units.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
6. **Player Damage (Number)**<br>
|
||||
What is the damage a player can take before being killed?<br>
|
||||
`Default value: 1`
|
||||
|
||||
7. **AI Damage (Number)**<br>
|
||||
What is the damage an AI can take before being killed?<br>
|
||||
`Default value: 1`
|
||||
|
||||
8. **AI Unconsciousness (Option)**<br>
|
||||
Allow AI to go unconscious.<br>
|
||||
`Default value: "50/50"`
|
||||
9. **Prevent instant death (Boolean)**<br>
|
||||
|
||||
9. **Remote controlled AI (Boolean)**<br>
|
||||
Treats remote controlled units as AI not players ?
|
||||
`Default value: Yes`
|
||||
|
||||
10. **Prevent instant death (Boolean)**<br>
|
||||
Have a unit move to unconscious instead of death.<br>
|
||||
`Default value: No`
|
||||
10. **Bleeding coefficient (Number)**<br>
|
||||
|
||||
11. **Bleeding coefficient (Number)**<br>
|
||||
Coefficient to modify the bleeding speed.<br>
|
||||
`Default value: 1`
|
||||
11. **Pain coefficient (Number)**<br>
|
||||
|
||||
12. **Pain coefficient (Number)**<br>
|
||||
Coefficient to modify the pain intensity.<br>
|
||||
`Default value: 1`
|
||||
12. **Pain coefficient (Boolean)**<br>
|
||||
|
||||
13. **Sync status (Boolean)**<br>
|
||||
Keep unit status synced. Recommended on.<br>
|
||||
`Default value: Yes`
|
||||
|
||||
@ -461,31 +556,46 @@ This module allows you to change the default Advanced Medical Settings, when [2.
|
||||
1. **Enabled for (Option)**<br>
|
||||
Select what units the advanced medical system will be enabled for.<br>
|
||||
`Default value: "Players only"`
|
||||
|
||||
2. **Enable Advanced wounds (Boolean)**<br>
|
||||
Allow reopening of bandaged wounds?<br>
|
||||
`Default value: No`
|
||||
|
||||
3. **Vehicle Crashes (Boolean)**<br>
|
||||
Do units take damage from a vehicle crash?<br>
|
||||
`Default value: Yes`
|
||||
|
||||
4. **Allow PAK (Option)**<br>
|
||||
Who can use the PAK for full heal?<br>
|
||||
`Default value: "Medics only"`
|
||||
|
||||
5. **Remove PAK on use (Boolean)**<br>
|
||||
Should PAK be removed on usage?<br>
|
||||
`Default value: Yes`
|
||||
|
||||
6. **Locations PAK (Option)**<br>
|
||||
Where can the personal aid kit be used?<br>
|
||||
`Default value: "Vehicles & facility"`
|
||||
|
||||
7. **Allow Surgical kit (Option)**<br>
|
||||
Who can use the surgical kit?<br>
|
||||
`Default value: "Medics only"`
|
||||
|
||||
8. **Remove Surgical kit (Boolean)**<br>
|
||||
Should Surgical kit be removed on usage?<br>
|
||||
`Default value: Yes`
|
||||
|
||||
9. **Locations Surgical kit (Option)**<br>
|
||||
Where can the Surgical kit be used?<br>
|
||||
`Default value: "Vehicles & facility"`
|
||||
|
||||
10. **Bloodstains (Boolean)**<br>
|
||||
Bandaging removes bloodstains.
|
||||
`Default value: No`
|
||||
|
||||
11. **Pain supression (Boolean)**<br>
|
||||
Pain is only temporarly supressed not removed.
|
||||
`Default value: Yes`
|
||||
|
||||
### 2.3 Revive Settings
|
||||
|
||||
@ -496,9 +606,11 @@ This modules allows a mission maker to limit the amount of revives for units in
|
||||
1. **Enable Revive (Option)**<br>
|
||||
Enable a basic revive system<br>
|
||||
`Default value: "disable"`
|
||||
|
||||
2. **Max Revive time (Number)**<br>
|
||||
Max amount of seconds a unit can spend in revive state<br>
|
||||
`Default value: 120`
|
||||
|
||||
3. **Max Revive lives (Number)**<br>
|
||||
Max amount of lives a unit. 0 or -1 is disabled.<br>
|
||||
`Default value: -1`
|
||||
@ -513,6 +625,7 @@ Using this module you can define which unit class is defined as a medic / doctor
|
||||
1. **List (String)**<br>
|
||||
List of unit names that will be classified as medic, separated by commas.<br>
|
||||
`Default value: ""`
|
||||
|
||||
2. **Is Medic (Boolean)**<br>
|
||||
Medics allow for more advanced treatment in case of Advanced Medic roles enabled<br>
|
||||
`Default value: "Regular medic"`
|
||||
@ -538,6 +651,7 @@ Defines an object as a medical facility. This allows for more advanced treatment
|
||||
1. **List (String)**<br>
|
||||
List of vehicles that will be classified as medical vehicle, separated by commas.<br>
|
||||
`Default value: ""`
|
||||
|
||||
2. **Is Medical Vehicle (Boolean)**<br>
|
||||
Whether or not the objects in the list will be a medical vehicle.<br>
|
||||
`Default value: Yes`
|
||||
@ -559,46 +673,27 @@ This module randomizes the time when the sound file is played and the position w
|
||||
1. **Sounds (String)**<br>
|
||||
Class names of the ambiance sounds played. Separated by ','. (Example: `radio_track_01, electricity_loop`).<br>
|
||||
`Default value: ""`
|
||||
|
||||
2. **Minimal Distance (Number)**<br>
|
||||
Used for calculating a random position and sets the minimal distance between the players and the played sound file(s) (in meters)<br>
|
||||
`Default value: 400`
|
||||
|
||||
3. **Maximum Distance (Number)**<br>
|
||||
Used for calculating a random position and sets the maximum distance between the players and the played sound file(s) (in meters)<br>
|
||||
`Default value: 900`
|
||||
|
||||
4. **Minimal Delay (Number)**<br>
|
||||
Minimal delay (in seconds) between sounds played<br>
|
||||
`Default value: 10`
|
||||
|
||||
5. **Maximum Delay (Number)**<br>
|
||||
Maximum delay (in seconds) between sounds played<br>
|
||||
`Default value: 10`
|
||||
|
||||
6. **Follow Players (Boolean)**<br>
|
||||
Follow players. If set to false, loop will play sounds only nearby logic position.<br>
|
||||
`Default value: No`
|
||||
|
||||
7. **Volume (Number)**<br>
|
||||
The volume of the sounds played<br>
|
||||
`Default value: 1`
|
||||
|
||||
|
||||
## 4. ACE3 Zeus
|
||||
*Part of: ace_zeus*
|
||||
|
||||
### 4.1 Zeus Settings
|
||||
This module provides control over vanilla aspects of Zeus.
|
||||
|
||||
**Settings:**
|
||||
|
||||
1. **Ascension Messages (Option)**<br>
|
||||
Display global popup messages when a player is assigned as Zeus<br>
|
||||
`Default value: No`
|
||||
2. **Zeus Eagle (Boolean)**<br>
|
||||
Spawn an eagle that follows the Zeus camera<br>
|
||||
`Default value: No`
|
||||
3. **Wind Sounds (Boolean)**<br>
|
||||
Play wind sounds when Zeus remote controls a unit<br>
|
||||
`Default value: No`
|
||||
4. **Ordnance Warning (Boolean)**<br>
|
||||
Play a radio warning when Zeus uses ordnance<br>
|
||||
`Default value: No`
|
||||
5. **Reveal Mines (Scalar)**<br>
|
||||
Reveal mines to allies and/or place map markers<br>
|
||||
`Default value: Disabled`
|
||||
`Default value: 1`
|
Binary file not shown.
BIN
extras/assets/icons/png/Icon_Module/Icons_Module_Sitting_ca.png
Normal file
BIN
extras/assets/icons/png/Icon_Module/Icons_Module_Sitting_ca.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
@ -1 +0,0 @@
|
||||
z\ace\addons\compat_hlc_ar15
|
@ -1,65 +0,0 @@
|
||||
class CfgWeapons
|
||||
{
|
||||
class Rifle;
|
||||
class Rifle_Base_F;
|
||||
class hlc_ar15_base: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=292.1;
|
||||
};
|
||||
class hlc_rifle_RU556: hlc_ar15_base
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=261.62;
|
||||
};
|
||||
class hlc_rifle_RU5562: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=261.62;
|
||||
};
|
||||
class hlc_rifle_CQBR: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=254.0;
|
||||
};
|
||||
class hlc_rifle_M4: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=368.3;
|
||||
};
|
||||
class hlc_rifle_bcmjack: hlc_ar15_base
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=368.3;
|
||||
};
|
||||
class hlc_rifle_Colt727: hlc_ar15_base
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=368.3;
|
||||
};
|
||||
class hlc_rifle_Colt727_GL: hlc_rifle_Colt727
|
||||
{
|
||||
ACE_barrelTwist=177.8;
|
||||
ACE_barrelLength=368.3;
|
||||
};
|
||||
class hlc_rifle_Bushmaster300: hlc_rifle_Colt727
|
||||
{
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=368.3;
|
||||
};
|
||||
class hlc_rifle_vendimus: hlc_rifle_Bushmaster300
|
||||
{
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=406.4;
|
||||
};
|
||||
class hlc_rifle_SAMR: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=228.6;
|
||||
ACE_barrelLength=406.4;
|
||||
};
|
||||
class hlc_rifle_honeybase: hlc_rifle_RU556
|
||||
{
|
||||
ACE_barrelTwist=203.2;
|
||||
ACE_barrelLength=152.4;
|
||||
};
|
||||
};
|
@ -1,14 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"hlcweapons_ar15"};
|
||||
author[]={"Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
@ -1,5 +0,0 @@
|
||||
#define COMPONENT hlcweapons_ar15_comp
|
||||
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -1 +0,0 @@
|
||||
z\ace\addons\compat_hlc_wp_mp5
|
@ -1,60 +0,0 @@
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class Rifle_Base_F;
|
||||
class hlc_MP5_base: Rifle_Base_F
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_mp5k_PDW: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=114.3;
|
||||
};
|
||||
class hlc_smg_mp5k: hlc_smg_mp5k_PDW
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=114.3;
|
||||
};
|
||||
class hlc_smg_mp5a2: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_MP5N: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_9mmar: hlc_smg_MP5N
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_mp5a4: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_mp510: hlc_smg_MP5N
|
||||
{
|
||||
ACE_barrelTwist=381.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_mp5sd5: hlc_MP5_base
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_mp5a3: hlc_smg_mp5a2
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
class hlc_smg_mp5sd6: hlc_smg_mp5sd5
|
||||
{
|
||||
ACE_barrelTwist=254.0;
|
||||
ACE_barrelLength=228.6;
|
||||
};
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user