Difference between revisions of "onMapSingleClick"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "|= Game name" to "|Game name=")
m (Text replacement - "[[Arma_3:_Event_Handlers/addMissionEventHandler" to "[[Arma 3: Mission Event Handlers")
(33 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Scripting Commands|ONMAPSINGLECLICK]]
+
{{RV|type=command
[[Category:Scripting Commands OFP 1.96|ONMAPSINGLECLICK]]
 
[[Category:Scripting Commands ArmA|ONMAPSINGLECLICK]]
 
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
 
{{Command|Comments=
 
____________________________________________________________________________________________
 
  
| ofpr |Game name=
+
|game1= ofp
 +
|version1= 1.85
  
|1.85|Game version=
+
|game2= ofpe
____________________________________________________________________________________________
+
|version2= 1.00
  
| Define action performed when user clicks in map by executing command string.
+
|game3= arma1
 +
|version3= 1.00
  
the string receives 5 (localised in scope) variables:
+
|game4= arma2
 +
|version4= 1.00
  
* _this: [[Anything]] - Params passed to onMapSingleClick
+
|game5= arma2oa
 +
|version5= 1.50
 +
 
 +
|game6= tkoh
 +
|version6= 1.00
 +
 
 +
|game7= arma3
 +
|version7= 0.50
 +
 
 +
|gr1= Map
 +
 
 +
|gr2= Event Handlers
 +
 
 +
|descr= Defines the action performed when user clicks in map by executing command string. The code is executed on every click, until the '''command''' is
 +
* removed via {{ic|[[onMapSingleClick]] ""}}, or
 +
* replaced by {{ic|[[onMapSingleClick]] "SomeOtherCommand(s)"}}
 +
 
 +
In Arma 3 the code should return [[true]] only if you wish to override default engine handling of the mouse click on map (see example #4)<br> For older games, when click is processed, code should ultimately return [[true]] back to the engine. If [[false]] is returned, default processing by the game engine is done. Return value of any other type (including [[Nothing]]) is an error. In such case default processing by the game engine is done, and error message may be displayed.
 +
 
 +
{{Feature|arma3 |Since '''{{arma3}}''' v1.58 a stackable MissionEventHandler is available and should be used instead: [[Arma 3: Mission Event Handlers#MapSingleClick|MapSingleClick]].}}
 +
 
 +
|s1= [[onMapSingleClick]] command
 +
 
 +
|p1= command: [[String]] or [[Code]] - Code executed on click. The following variables are available:
 
* _pos: [[Array]] - Clicked position
 
* _pos: [[Array]] - Clicked position
 +
 
* _units: [[Array]] - Units which were selected (via function keys) '''before''' opening the map (''may be non-functional in Arma'')
 
* _units: [[Array]] - Units which were selected (via function keys) '''before''' opening the map (''may be non-functional in Arma'')
* _shift: [[Boolean]] - Whether <Shift> was pressed when clicking on the map
 
* _alt: [[Boolean]] - Whether <Alt> was pressed when clicking on the map
 
  
In Arma 3 the code should return [[true]] only if you wish to override default engine handling of the mouse click on map (see example #4)<br> For older games, when click is processed, code should ultimately return [[true]] back to the engine. If [[false]] is returned, default processing by the game engine is done. Return value of any other type (including [[Nothing]]) is an error. In such case default processing by the game engine is done, and error message may be displayed.
+
* _shift: [[Boolean]] - Whether {{KeyboardShortcut|Shift}} was pressed when clicking on the map
  
The code is executed on every click, until the '''Command''' is
+
* _alt: [[Boolean]] - Whether {{KeyboardShortcut|Alt}} was pressed when clicking on the map
*removed via '''onMapSingleClick''' "", or
 
*replaced by '''onMapSingleClick''' "SomeOtherCommand(s)"<br><br>
 
{{Informative|Since '''Arma 3''' ''v1.57'' a stackable version of this EH is available: [[Arma_3:_Event_Handlers/addMissionEventHandler#MapSingleClick|MapSingleClick]]}}<br>
 
{{Feature arma3|In order to keep compatibility between official and community content the functions [[BIS_fnc_addStackedEventHandler]] and [[BIS_fnc_removeStackedEventHandler]] should be used instead.}}
 
|=
 
____________________________________________________________________________________________
 
  
| '''onMapSingleClick''' command |SYNTAX=
+
|r1= [[Nothing]]
  
|p1=command: [[String]] or [[Code]] |PARAMETER2=
+
|s2= params [[onMapSingleClick]] command
  
| [[Nothing]] |RETURNVALUE=
+
|p21= params: [[Anything]]
  
| s2= params '''onMapSingleClick''' command |SYNTAX=
+
|p22= command: [[String]] or [[Code]] - Code executed on click. The following variables are available:
 +
* _this: [[Anything]] - Params passed to onMapSingleClick
  
|p21=params: [[Anything]] |PARAMETER1=
+
* _pos: [[Array]] - Clicked position
|p22=command: [[String]] or [[Code]] |PARAMETER2=
 
  
| r2= [[Nothing]] |RETURNVALUE=
+
* _units: [[Array]] - Units which were selected (via function keys) '''before''' opening the map (''may be non-functional in Arma'')
____________________________________________________________________________________________
 
| x1 = <code>[[onMapSingleClick]] "'SoldierWB' [[createUnit]] [_pos, [[group]] [[player]]]; true";</code>
 
'''ArmA:''' Creates a soldier unit at the position clicked.|EXAMPLE1=
 
  
| x2 = <code>[[onMapSingleClick]] "grp1 [[move]] _pos; [[onMapSingleClick]] <nowiki>'</nowiki>'; [[true]]";</code>
+
* _shift: [[Boolean]] - Whether {{KeyboardShortcut|Shift}} was pressed when clicking on the map
'''ArmA:''' Orders "grp1" to move to position clicked. Disables further map-click actions.| = Example 2
 
  
| x3 = <code>[[onMapSingleClick]] "'SoldierWB' [[createUnit]] [_pos, [[group]] [[player]]]; [[true]]";</code>
+
* _alt: [[Boolean]] - Whether {{KeyboardShortcut|Alt}} was pressed when clicking on the map
'''OFP:''' In OFP single quotes cannot be used for string definition, so two double-quotes have to be used instead. |EXAMPLE3=
 
  
| x4 = <code>//The following code will disable Shift+click waypoint marker creation
+
|r2= [[Nothing]]
[[onMapSingleClick]] {_shift};</code>|EXAMPLE4=
 
  
| x5 = <code>//Pass params to onMapSingleClick code
+
|x1= '''{{arma1}}:''' Creates a soldier unit at the position clicked:
[[player]] [[onMapSingleClick]] {[[hint]] ("Hello " + [[name]] _this)}; //Hello KK</code>|EXAMPLE5=
+
<code>[[onMapSingleClick]] "'SoldierWB' [[createUnit]] [_pos, [[group]] [[player]]]; true";</code>
  
| x6 = <code>//Pass params to onMapSingleClick code '''and''' disable Shift+click waypoint marker creation
+
|x2= '''{{arma1}}:''' Orders "grp1" to move to position clicked. Disables further map-click actions:
[[player]] [[onMapSingleClick]] "[[hint]] (""Hello "" + [[name]] [[_this]]); _shift"; //Hello KK</code>|EXAMPLE6=
+
<code>[[onMapSingleClick]] "grp1 [[move]] _pos; [[onMapSingleClick]] <nowiki>'</nowiki>'; [[true]]";</code>
  
| [[onGroupIconClick]] |SEEALSO=
+
|x3= '''{{ofp}}:''' Single quotes cannot be used for string definition, so two double-quotes have to be used instead:
 +
<code>[[onMapSingleClick]] "'SoldierWB' [[createUnit]] [_pos, [[group]] [[player]]]; [[true]]";</code>
  
}}
+
|x4= <code>{{cc|The following code will disable Shift+click waypoint marker creation}}
 +
[[onMapSingleClick]] {_shift};</code>
  
<h3 style='display:none'>Notes</h3>
+
|x5= <code>{{cc|Pass params to onMapSingleClick code}}
<dl class='command_description'>
+
[[player]] [[onMapSingleClick]] {[[hint]] ("Hello " + [[name]] _this)}; {{cc|Hello KK}}</code>
<!-- Note Section BEGIN -->
 
<dd class="notedate">Posted on 8 July, 2009
 
<dt class="note">'''[[User:General Barron|General Barron]]'''<dd class="note">
 
See my [http://www.ofpec.com/editors-depot/index.php?action=details&id=292&game=ArmA Multiple OnMapSingleClick] script to allow you to add multiple events to the onMapSingleClick event. Some minor editing of the scripts would be required to use them in Arma.
 
<!-- Note Section END -->
 
</dl>
 
  
<h3 style="display:none">Notes</h3>
+
|x6= <code>{{cc|Pass params to onMapSingleClick code '''and''' disable Shift+click waypoint marker creation}}
<dl class="command_description">
+
[[player]] [[onMapSingleClick]] "[[hint]] (""Hello "" + [[name]] [[Magic Variables#this|_this]]); _shift"; {{cc|Hello KK}}</code>
<!-- Note Section BEGIN -->
 
  
<!-- Note Section END -->
+
|seealso= [[onGroupIconClick]]
 +
}}
  
<h3 style="display:none">Bottom Section</h3>
+
<dl class="command_description">
  
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
+
<dt></dt>
</dl>
+
<dd class="notedate">Posted on 8 July, 2009</dd>
 +
<dt class="note">[[User:General Barron|General Barron]]</dt>
 +
<dd class="note">
 +
See my [http://www.ofpec.com/editors-depot/index.php?action=details&id=292&game=ArmA Multiple OnMapSingleClick] script to allow you to add multiple events to the onMapSingleClick event. Some minor editing of the scripts would be required to use them in Arma.
  
<!-- CONTINUE Notes -->
+
<dt></dt>
<dl class="command_description">
 
 
<dd class="notedate">Posted on April 1, 2016 - 00:25 (UTC)</dd>
 
<dd class="notedate">Posted on April 1, 2016 - 00:25 (UTC)</dd>
 
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
 
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
Line 95: Line 99:
 
<tt>_units</tt> param is supposed to return what [[groupSelectedUnits]] returns. Player must be [[leader]] and some [[units]] in the [[group]] must be selected on the group bar. However selected units are connected with group orders menu, which interferes with map click. In other words, when you click on the main map, the map gets focus and group orders menu closes, deselecting any selected unit, so <tt>_units</tt> is [] pretty much all the time.  
 
<tt>_units</tt> param is supposed to return what [[groupSelectedUnits]] returns. Player must be [[leader]] and some [[units]] in the [[group]] must be selected on the group bar. However selected units are connected with group orders menu, which interferes with map click. In other words, when you click on the main map, the map gets focus and group orders menu closes, deselecting any selected unit, so <tt>_units</tt> is [] pretty much all the time.  
 
</dd>
 
</dd>
 +
 
</dl>
 
</dl>
<!-- DISCONTINUE Notes -->
 

Revision as of 10:36, 16 June 2021

Hover & click on the images for description

Description

Description:
Defines the action performed when user clicks in map by executing command string. The code is executed on every click, until the command is In Arma 3 the code should return true only if you wish to override default engine handling of the mouse click on map (see example #4)
For older games, when click is processed, code should ultimately return true back to the engine. If false is returned, default processing by the game engine is done. Return value of any other type (including Nothing) is an error. In such case default processing by the game engine is done, and error message may be displayed.
Arma 3
Since Arma 3 v1.58 a stackable MissionEventHandler is available and should be used instead: MapSingleClick.
Groups:
MapEvent Handlers

Syntax

Syntax:
onMapSingleClick command
Parameters:
command: String or Code - Code executed on click. The following variables are available:
  • _pos: Array - Clicked position
  • _units: Array - Units which were selected (via function keys) before opening the map (may be non-functional in Arma)
  • _shift: Boolean - Whether Shift was pressed when clicking on the map
  • _alt: Boolean - Whether Alt was pressed when clicking on the map
Return Value:
Nothing

Alternative Syntax

Syntax:
params onMapSingleClick command
Parameters:
params: Anything
command: String or Code - Code executed on click. The following variables are available:
  • _this: Anything - Params passed to onMapSingleClick
  • _pos: Array - Clicked position
  • _units: Array - Units which were selected (via function keys) before opening the map (may be non-functional in Arma)
  • _shift: Boolean - Whether Shift was pressed when clicking on the map
  • _alt: Boolean - Whether Alt was pressed when clicking on the map
Return Value:
Nothing

Examples

Example 1:
Armed Assault: Creates a soldier unit at the position clicked: onMapSingleClick "'SoldierWB' createUnit [_pos, group player]; true";
Example 2:
Armed Assault: Orders "grp1" to move to position clicked. Disables further map-click actions: onMapSingleClick "grp1 move _pos; onMapSingleClick ''; true";
Example 3:
Operation Flashpoint: Single quotes cannot be used for string definition, so two double-quotes have to be used instead: onMapSingleClick "'SoldierWB' createUnit [_pos, group player]; true";
Example 4:
// The following code will disable Shift+click waypoint marker creation onMapSingleClick {_shift};
Example 5:
// Pass params to onMapSingleClick code player onMapSingleClick {hint ("Hello " + name _this)}; // Hello KK
Example 6:
// Pass params to onMapSingleClick code and disable Shift+click waypoint marker creation player onMapSingleClick "hint (""Hello "" + name _this); _shift"; // Hello KK

Additional Information

See also:
onGroupIconClick

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on 8 July, 2009
General Barron
See my Multiple OnMapSingleClick script to allow you to add multiple events to the onMapSingleClick event. Some minor editing of the scripts would be required to use them in Arma.
Posted on April 1, 2016 - 00:25 (UTC)
Killzone Kid
_units param is supposed to return what groupSelectedUnits returns. Player must be leader and some units in the group must be selected on the group bar. However selected units are connected with group orders menu, which interferes with map click. In other words, when you click on the main map, the map gets focus and group orders menu closes, deselecting any selected unit, so _units is [] pretty much all the time.