mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #1519 from SilentSpike/gm_revamp
Introducing zeus interaction menu
This commit is contained in:
commit
f52babe546
@ -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", "isNotSitting"]] 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", "isNotSitting"]] 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;
|
||||
|
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";
|
||||
};
|
||||
};
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user