Communication Menu – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
(some formatting, added more simple expressions (untested))
Line 1: Line 1:
[[File:A3_commMenu.jpg|thumb|Communication menu and icons]]
{{TOC|side}}
Communication menu is a commanding menu where support or mission requests are placed.
Communication menu is a commanding menu where support or mission requests are placed.


The player can access it using following means:
The player can access it using following means:
* Open the '''quick command menu''' ('~' by default) and select "Communication" item
* Open the '''quick command menu''' {{KeyboardShortcut|~}} and select "Communication" item
* Press '''8-1''' (Reply - Communication)
* Press {{KeyboardShortcut|8}} then {{KeyboardShortcut|1}} (Reply - Communication)


Available items are announced upon adding by a [[Arma 3 Notification|notification]] and remain visualized as icons next to the commanding menu.
Available items are announced upon adding by a [[Arma 3 Notification|notification]] and remain visualized as icons next to the commanding menu.<br>
 
[[File:A3_commMenu.jpg|Communication menu and icons|500px]]
 
== Configuration ==
 
=== Config ===


= 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).
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).


Line 42: Line 40:


Available default icons:
Available default icons:
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''artillery_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''artillery_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''attack_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''attack_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''call_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''call_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''cas_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''cas_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''casheli_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''casheli_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''defend_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''defend_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''instructor_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''instructor_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''mortar_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''mortar_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''supplydrop_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''supplydrop_ca'''.paa"</tt>
"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''transport_ca'''.paa"
* <tt>"\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\'''transport_ca'''.paa"</tt>


You can also preview pre-defined items using the [[BIS_fnc_configViewer|Splendid™ Config Viewer]].
You can also preview pre-defined items using the [[BIS_fnc_configViewer|Splendid™ Config Viewer]].


Simple expressions:
== Simple expressions ==
{| class="wikitable"
<div style="display: inline-block; max-height: 40em; overflow: auto">
{| class="wikitable sortable"
|-
! Expression !! Effect !! Tested
|-
| 1 || Always available || {{Checkbox|yes}}
|-
| 0 || Always disabled || {{Checkbox|yes}}
|-
| cursorOnGround || Only callable when pointing at a valid position || {{Checkbox|yes}}
|-
| IsLeader  ||  || {{Checkbox|no}}
|-
| IsAlone ||  || {{Checkbox|no}}
|-
| IsAloneInVehicle ||  || {{Checkbox|no}}
|-
| IsCommander ||  || {{Checkbox|no}}
|-
| VehicleCommander ||  || {{Checkbox|no}}
|-
| CommandsToGunner ||  || {{Checkbox|no}}
|-
| CommandsToPilot ||  || {{Checkbox|no}}
|-
| NotEmpty ||  || {{Checkbox|no}}
|-
| NotEmptySoldiers ||  || {{Checkbox|no}}
|-
| NotEmptyCommanders ||  || {{Checkbox|no}}
|-
| NotEmptyMainTeam ||  || {{Checkbox|no}}
|-
| NotEmptyRedTeam ||  || {{Checkbox|no}}
|-
| NotEmptyGreenTeam ||  || {{Checkbox|no}}
|-
| NotEmptyBlueTeam ||  || {{Checkbox|no}}
|-
| NotEmptyYellowTeam ||  || {{Checkbox|no}}
|-
| NotEmptySubgroups ||  || {{Checkbox|no}}
|-
| NotEmptyInVehicle ||  || {{Checkbox|no}}
|-
| SelectedTeam ||  || {{Checkbox|no}}
|-
| SelectedUnit ||  || {{Checkbox|no}}
|-
| FuelLow ||  || {{Checkbox|no}}
|-
| AmmoLow ||  || {{Checkbox|no}}
|-
| Injured ||  || {{Checkbox|no}}
|-
| Multiplayer ||  || {{Checkbox|no}}
|-
| AreActions ||  || {{Checkbox|no}}
|-
| CursorOnGroupMember ||  || {{Checkbox|no}}
|-
| CursorOnHoldingFire ||  || {{Checkbox|no}}
|-
| CursorOnEmptyVehicle ||  || {{Checkbox|no}}
|-
| CursorOnVehicleCanGetIn ||  || {{Checkbox|no}}
|-
| CursorOnFriendly ||  || {{Checkbox|no}}
|-
| CursorOnEnemy ||  || {{Checkbox|no}}
|-
| CursorOnGround ||  || {{Checkbox|no}}
|-
| CanSelectUnitFromBar ||  || {{Checkbox|no}}
|-
| CanDeselectUnitFromBar ||  || {{Checkbox|no}}
|-
| CanSelectVehicleFromBar ||  || {{Checkbox|no}}
|-
| CanDeselectVehicleFromBar ||  || {{Checkbox|no}}
|-
| CanSelectTeamFromBar ||  || {{Checkbox|no}}
|-
| CanDeselectTeamFromBar ||  || {{Checkbox|no}}
|-
| FormationLine ||  || {{Checkbox|no}}
|-
| FormationDiamond ||  || {{Checkbox|no}}
|-
| SomeSelectedHoldingFire ||  || {{Checkbox|no}}
|-
| PlayableLeader ||  || {{Checkbox|no}}
|-
| PlayableSelected ||  || {{Checkbox|no}}
|-
| IsWatchCommanded ||  || {{Checkbox|no}}
|-
| IsSelectedToAdd ||  || {{Checkbox|no}}
|-
| HCIsLeader ||  || {{Checkbox|no}}
|-
| HCCursorOnIcon ||  || {{Checkbox|no}}
|-
| HCCursorOnIconSelectable ||  || {{Checkbox|no}}
|-
| HCCanSelectUnitFromBar ||  || {{Checkbox|no}}
|-
| HCCanDeselectUnitFromBar ||  || {{Checkbox|no}}
|-
| HCCanSelectTeamFromBar ||  || {{Checkbox|no}}
|-
| HCCanDeselectTeamFromBar ||  || {{Checkbox|no}}
|-
| HCNotEmpty ||  || {{Checkbox|no}}
|-
| PlayerVehicleCanGetIn ||  || {{Checkbox|no}}
|-
| IsXbox ||  || {{Checkbox|no}}
|-
| IsTeamSwitch ||  || {{Checkbox|no}}
|-
| CursorOnNotEmptySubgroups ||  || {{Checkbox|no}}
|-
| SomeSelectedHaveTarget ||  || {{Checkbox|no}}
|-
| CursorOnGroupMemberSelected ||  || {{Checkbox|no}}
|-
| HCCursorOnIconSelectableSelected ||  || {{Checkbox|no}}
|-
|-
! Expression !! Effect
| HCCursorOnIconenemy ||  || {{Checkbox|no}}
|-
|-
| {{Inline code|1}} || Always available
| PlayerOwnRadio ||  || {{Checkbox|no}}
|-
|-
| {{Inline code|0}} || Always disabled
| CursorOnNeedFirstAID ||  || {{Checkbox|no}}
|-
|-
| {{Inline code|cursorOnGround}}|| Only callable when pointing at a valid position
| CursorOnNeedHeal ||  || {{Checkbox|no}}
|}
|}
 
</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:
* [[BIS_fnc_addCommMenuItem]]
* [[BIS_fnc_addCommMenuItem]]
Line 75: Line 199:
Number of slots is limited to 10, no pagination is implemented. Larger number is an edge case, no mission should need as many supports.
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 ===
== Expression Arguments ==
 
Following arguments are passed into the expression field:
Following arguments are passed into the expression field:
  [caller, pos, target, is3D, id]
  [caller, pos, target, is3D, id]
Line 85: Line 208:
* '''id''': [[String]] - item ID as returned by [[BIS_fnc_addCommMenuItem]] function
* '''id''': [[String]] - item ID as returned by [[BIS_fnc_addCommMenuItem]] function


=== Submenu ===
== Submenu ==
 
  submenu = "#USER:MENU_COMMS_1"; {{cc|'MENU_COMMS_1' is just a global variable, can name it anything}}
  submenu = "#USER:MENU_COMMS_1"; {{cc|'MENU_COMMS_1' is just a global variable, can name it anything}}


  [[showCommandingMenu]] '#USER:MENU_COMMS_1';  {{cc|if you wanted to show your custom menu on a keydown event or something}}
  [[showCommandingMenu]] '#USER:MENU_COMMS_1';  {{cc|if you wanted to show your custom menu on a keydown event or something}}


<code>MENU_COMMS_1 =
<code>MENU_COMMS_1 =
Line 121: Line 242:
</code>
</code>


==== Existing Submenus ====
=== Existing Submenus ===
Some of the existing submenus in {{arma3}}
Some of the existing submenus in {{arma3}}
{| class="wikitable"
{| class="wikitable"
Line 127: Line 248:
! Menu !! Menu Location
! Menu !! Menu Location
|-
|-
| "#User:BIS_fnc_addCommMenuItem_menu" || Group/Reply commuication menu /High Command Group reply menu
| "#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_MENU_GroupCommunication" || High Command/UAV Reply communication menu

Revision as of 12:48, 6 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.
Communication menu and icons

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).

Preview and path for icons
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 Template:Checkbox
0 Always disabled Template:Checkbox
cursorOnGround Only callable when pointing at a valid position Template:Checkbox
IsLeader Template:Checkbox
IsAlone Template:Checkbox
IsAloneInVehicle Template:Checkbox
IsCommander Template:Checkbox
VehicleCommander Template:Checkbox
CommandsToGunner Template:Checkbox
CommandsToPilot Template:Checkbox
NotEmpty Template:Checkbox
NotEmptySoldiers Template:Checkbox
NotEmptyCommanders Template:Checkbox
NotEmptyMainTeam Template:Checkbox
NotEmptyRedTeam Template:Checkbox
NotEmptyGreenTeam Template:Checkbox
NotEmptyBlueTeam Template:Checkbox
NotEmptyYellowTeam Template:Checkbox
NotEmptySubgroups Template:Checkbox
NotEmptyInVehicle Template:Checkbox
SelectedTeam Template:Checkbox
SelectedUnit Template:Checkbox
FuelLow Template:Checkbox
AmmoLow Template:Checkbox
Injured Template:Checkbox
Multiplayer Template:Checkbox
AreActions Template:Checkbox
CursorOnGroupMember Template:Checkbox
CursorOnHoldingFire Template:Checkbox
CursorOnEmptyVehicle Template:Checkbox
CursorOnVehicleCanGetIn Template:Checkbox
CursorOnFriendly Template:Checkbox
CursorOnEnemy Template:Checkbox
CursorOnGround Template:Checkbox
CanSelectUnitFromBar Template:Checkbox
CanDeselectUnitFromBar Template:Checkbox
CanSelectVehicleFromBar Template:Checkbox
CanDeselectVehicleFromBar Template:Checkbox
CanSelectTeamFromBar Template:Checkbox
CanDeselectTeamFromBar Template:Checkbox
FormationLine Template:Checkbox
FormationDiamond Template:Checkbox
SomeSelectedHoldingFire Template:Checkbox
PlayableLeader Template:Checkbox
PlayableSelected Template:Checkbox
IsWatchCommanded Template:Checkbox
IsSelectedToAdd Template:Checkbox
HCIsLeader Template:Checkbox
HCCursorOnIcon Template:Checkbox
HCCursorOnIconSelectable Template:Checkbox
HCCanSelectUnitFromBar Template:Checkbox
HCCanDeselectUnitFromBar Template:Checkbox
HCCanSelectTeamFromBar Template:Checkbox
HCCanDeselectTeamFromBar Template:Checkbox
HCNotEmpty Template:Checkbox
PlayerVehicleCanGetIn Template:Checkbox
IsXbox Template:Checkbox
IsTeamSwitch Template:Checkbox
CursorOnNotEmptySubgroups Template:Checkbox
SomeSelectedHaveTarget Template:Checkbox
CursorOnGroupMemberSelected Template:Checkbox
HCCursorOnIconSelectableSelected Template:Checkbox
HCCursorOnIconenemy Template:Checkbox
PlayerOwnRadio Template:Checkbox
CursorOnNeedFirstAID Template:Checkbox
CursorOnNeedHeal Template:Checkbox

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]

Submenu

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"] ];

Existing Submenus

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