Communication Menu – Arma 3
m (Text replacement - "{{Checkbox|yes}}" to "{{Icon|checked}}") |
(→Simple expressions: tested IsLeader) |
||
Line 65: | Line 65: | ||
| cursorOnGround || Only callable when pointing at a valid position || {{Icon|checked}} | | cursorOnGround || Only callable when pointing at a valid position || {{Icon|checked}} | ||
|- | |- | ||
| IsLeader || | | IsLeader || Player has to be the leader of his group || {{Icon|checked}} | ||
|- | |- | ||
| IsAlone || || {{Icon|unchecked}} | | IsAlone || || {{Icon|unchecked}} | ||
Line 192: | Line 192: | ||
|} | |} | ||
</div> | </div> | ||
= Adding = | = Adding = | ||
Use following functions to add the item in your mission or system: | Use following functions to add the item in your mission or system: |
Revision as of 01:18, 8 February 2021
Communication menu is a commanding menu where support or mission requests are placed.
The player can access it using following means:
- Open the quick command menu ~ and select "Communication" item
- Press 8 then 1 (Reply - Communication)
Available items are announced upon adding by a notification and remain visualized as icons next to the commanding menu.
Configuration
Config
Communication menu items can be defined in config - global Config.cpp, Campaign Description.ext or mission Description.ext (searched in this order, the latter has the highest priority).
class CfgCommunicationMenu
{
class myArtillery
{
text = "Artillery Strike"; // Text displayed in the menu and in a notification
submenu = ""; // Submenu opened upon activation (expression is ignored when submenu is not empty.)
expression = "player setVariable ['BIS_SUPP_request', ['Artillery', _pos]];"; // Code executed upon activation
icon = "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\artillery_ca.paa"; // Icon displayed permanently next to the command menu
cursor = "\a3\Ui_f\data\IGUI\Cfg\Cursors\iconCursorSupport_ca.paa"; // Custom cursor displayed when the item is selected
enable = "1"; // Simple expression condition for enabling the item
removeAfterExpressionCall = 1; // 1 to remove the item after calling
};
class menu_comms_1
{
text = "Menu Comms 1";
submenu = "#USER:MENU_COMMS_1"; // will open submenu that is defined as global variable MENU_COMMS_1
expression = "";
icon = "";
cursor = "";
enable = "1";
removeAfterExpressionCall = 0;
};
};
Available default icons:
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\artillery_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\attack_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\call_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\cas_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\casheli_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\defend_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\mortar_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\supplydrop_ca.paa"
- "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\transport_ca.paa"
You can also preview pre-defined items using the Splendid™ Config Viewer.
Simple expressions
Expression | Effect | Tested |
---|---|---|
1 | Always available | |
0 | Always disabled | |
cursorOnGround | Only callable when pointing at a valid position | |
IsLeader | Player has to be the leader of his group | |
IsAlone | ||
IsAloneInVehicle | ||
IsCommander | ||
VehicleCommander | ||
CommandsToGunner | ||
CommandsToPilot | ||
NotEmpty | ||
NotEmptySoldiers | ||
NotEmptyCommanders | ||
NotEmptyMainTeam | ||
NotEmptyRedTeam | ||
NotEmptyGreenTeam | ||
NotEmptyBlueTeam | ||
NotEmptyYellowTeam | ||
NotEmptySubgroups | ||
NotEmptyInVehicle | ||
SelectedTeam | ||
SelectedUnit | ||
FuelLow | ||
AmmoLow | ||
Injured | ||
Multiplayer | ||
AreActions | ||
CursorOnGroupMember | ||
CursorOnHoldingFire | ||
CursorOnEmptyVehicle | ||
CursorOnVehicleCanGetIn | ||
CursorOnFriendly | ||
CursorOnEnemy | ||
CursorOnGround | ||
CanSelectUnitFromBar | ||
CanDeselectUnitFromBar | ||
CanSelectVehicleFromBar | ||
CanDeselectVehicleFromBar | ||
CanSelectTeamFromBar | ||
CanDeselectTeamFromBar | ||
FormationLine | ||
FormationDiamond | ||
SomeSelectedHoldingFire | ||
PlayableLeader | ||
PlayableSelected | ||
IsWatchCommanded | ||
IsSelectedToAdd | ||
HCIsLeader | ||
HCCursorOnIcon | ||
HCCursorOnIconSelectable | ||
HCCanSelectUnitFromBar | ||
HCCanDeselectUnitFromBar | ||
HCCanSelectTeamFromBar | ||
HCCanDeselectTeamFromBar | ||
HCNotEmpty | ||
PlayerVehicleCanGetIn | ||
IsXbox | ||
IsTeamSwitch | ||
CursorOnNotEmptySubgroups | ||
SomeSelectedHaveTarget | ||
CursorOnGroupMemberSelected | ||
HCCursorOnIconSelectableSelected | ||
HCCursorOnIconenemy | ||
PlayerOwnRadio | ||
CursorOnNeedFirstAID | ||
CursorOnNeedHeal |
Adding
Use following functions to add the item in your mission or system:
Number of slots is limited to 10, no pagination is implemented. Larger number is an edge case, no mission should need as many supports.
Expression Arguments
Following arguments are passed into the expression field:
[caller, pos, target, is3D, id]
- caller: Object - unit which called the item, usually player
- pos: Array in format Position - cursor position
- target: Object - cursor target
- is3D: Boolean - true when in 3D scene, false when in map
- id: String - item ID as returned by BIS_fnc_addCommMenuItem function
submenu = "#USER:MENU_COMMS_1"; // 'MENU_COMMS_1' is just a global variable, can name it anything
showCommandingMenu '#USER:MENU_COMMS_1'; // if you wanted to show your custom menu on a keydown event or something
MENU_COMMS_1 =
[
// First array: "User menu" This will be displayed under the menu, bool value: has Input Focus or not.
// Note that as of version Arma 3 1.05, if the bool value is set to false, Custom Icons will not be displayed.
["MenuName", false],
// Syntax and semantics for following array elements:
// ["Title_in_menu", [assigned_key], "Submenu_name", CMD, [["expression",script-string]], "isVisible", "isActive" (, optional icon path)]
// Title_in_menu: string that will be displayed for the player
// Assigned_key: 0 - no key, 1 - escape key, 2 - key-1, 3 - key-2, ... , 10 - key-9, 11 - key-0, 12 and up... the whole keyboard
// Submenu_name: User menu name string (eg "#USER:MY_SUBMENU_NAME" ), "" for script to execute.
// CMD: (for main menu:) CMD_SEPARATOR -1; CMD_NOTHING -2; CMD_HIDE_MENU -3; CMD_BACK -4; (for custom menu:) CMD_EXECUTE -5
// script-string: command to be executed on activation. (_target=CursorTarget,_pos=CursorPos)
// isVisible - Boolean 1 or 0 for yes or no, - or optional argument string, eg: "CursorOnGround"
// isActive - Boolean 1 or 0 for yes or no - if item is not active, it appears gray.
// optional icon path: The path to the texture of the cursor, that should be used on this menuitem.
["Teleport", [2], "", -5, [["expression", "player setPos _pos;"]], "1", "1", "\A3\ui_f\data\IGUI\Cfg\Cursors\iconcursorsupport_ca.paa"],
["Kill Target", [3], "", -5, [["expression", "_target setDamage 1;"]], "1", "1", "\A3\ui_f\data\IGUI\Cfg\Cursors\iconcursorsupport_ca.paa"],
["Disabled", [4], "", -5, [["expression", ""]], "1", "0"],
["Submenu", [5], "#USER:MENU_COMMS_2", -5, [], "1", "1"]
];
MENU_COMMS_2 =
[
["Submenu", false],
["Option 1", [2], "", -5, [["expression", "hint 'Option 1';"]], "1", "1"],
["Option 2", [3], "", -5, [["expression", "hint 'Option 2';"]], "1", "1"],
["Option 3", [4], "", -5, [["expression", "hint 'Option 3';"]], "1", "1"]
];
Some of the existing submenus in Arma 3
Menu | Menu Location |
---|---|
"#User:BIS_fnc_addCommMenuItem_menu" | Group/Reply communication menu /High Command Group reply menu |
"#User:BIS_MENU_GroupCommunication" | High Command/UAV Reply communication menu |
"#USER:BIS_VR_commMenu_1" | VR Training Mission menu |
"#USER:HCWPWaitRadio" | High Command/UAV Waypoints waitRadio menu |
"#USER:HCWPWaitUntil" | High Command/UAV Waypoints waitUnitl menu |
"#USER:HC_Custom_0" | High Command/UAV Action menu |
"#USER:HC_Missions_0" | High Command/UAV Missions menu |
"#USER:HC_Targets_0" | High Command/UAV Targets menu |
"#USER:BIS_fnc_kbMenu_menu" | Conversation menu |
"#USER:BIS_MENU_SOM_SecOps" | Communication menu |
"#USER:BIS_MENU_SOM_Support" | Communication Support menu |