addMPEventHandler: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (semicolon removed as it is not documented in any other command page)
m (Text replacement - "(\|[pr][0-9]+ *= *[^-]+) *- *E([a-z])" to "$1 - e$2")
 
(46 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma2oa |= Game name
|game1= arma2oa
|version1= 1.55


|1.55|= Game version
|game2= tkoh
|version2= 1.00


|arg= global |= Arguments in MP
|game3= arma3
|version3= 0.50


|eff= global |= Effects in MP
|gr1= Multiplayer
____________________________________________________________________________________________


| The format of handler is [type,command]. Check scripting topic Event handlers for more information. The index of the current handler is returned. |= Description
|gr2= Event Handlers
____________________________________________________________________________________________


| unitName '''addMPEventHandler''' [type, command]  |= Syntax
|arg= global


|p1= unitName: [[Object]] - object to monitor |=
|eff= global
|p2= type: [[String]] - event handler name |=
|p3= command: [[String]] or [[Code]] - code to execute|=


| [[Number]] |= Return value
|descr= Adds a multiplayer event handler (EH) to the given object and returns EH handle. See {{Link|:Category:Event Handlers|Event Handlers}}.
____________________________________________________________________________________________
{{Feature|important|A Multiplayer Event Handler is '''not''' saved in a save file and therefore will not be restored on load - use it accordingly.}}


|x1= <code> _index <nowiki>=</nowiki> player '''addMPEventHandler''' ["mpkilled", {Null <nowiki>=</nowiki> _this execVM "playerkilled.sqf";}]; </code> |=
|mp= Multiplayer EHs are added globally to every client and the server will fire on itself and every client upon event.
____________________________________________________________________________________________
The only exception is the '''MPRespawn''' EH that one only fires where the respawned unit is local. Make sure to check the EHs' locality in {{Link|:Category:Event Handlers|Event Handlers}} pages.


| [[:Category:Event Handlers|EventHandlers list]], [[removeMPEventHandler]], [[removeAllMPEventHandlers]] |= See also
|s1= object [[addMPEventHandler]] [type, expression]
}}
 
|p1= object: [[Object]] - object to monitor


<h3 style="display:none">Notes</h3>
|p2= type: [[String]] - event handler name
<dl class="command_description">
<!-- Note Section BEGIN -->


<!-- Note Section END -->
|p3= expression: [[String]] or [[Code]] - expression to execute.<br>
</dl>
If EH has some data to return upon event (e.g. the "MPKilled" EH will return an array with 2 elements: the killed unit, and the killer), it is passed in {{hl|_this}} variable.
{{Feature|arma3|Since Arma 3 v.1.64 the EH handle is also stored in {{hl|_thisEventHandler}} variable and is available during EH code execution.}}
* Event Handler parameters are accessible via <sqf inline>_this</sqf>
* The Event Handler type is available as <sqf inline>_thisEvent</sqf>
* The Event Handler index is available as <sqf inline>_thisEventHandler</sqf>


<h3 style="display:none">Bottom Section</h3>
|r1= [[Number]] - event handler index


[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
|x1= <sqf>_index = player addMPEventHandler ["MPKilled", { _this execVM "playerKilled.sqf"; }];</sqf>
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:ArmA 2 OA: New Scripting Commands List|{{uc:{{PAGENAME}}}}]]
[[Category:Command_Group:_Multiplayer|{{uc:{{PAGENAME}}}}]]


<!-- CONTINUE Notes -->
|seealso= [[:Category:Event Handlers|EventHandlers List]] [[removeMPEventHandler]] [[removeAllMPEventHandlers]] [[getEventHandlerInfo]]
<dl class="command_description">
}}
<dd class="notedate">Posted on May 8, 2015 - 12:24 (UTC)</dd>
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note">
MP EHs are added on every PC and execute on every PC, apart from MPRespawn, that only executes at the locality where unit respawns.
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Latest revision as of 15:06, 8 November 2023

Hover & click on the images for description

Description

Description:
Adds a multiplayer event handler (EH) to the given object and returns EH handle. See Event Handlers.
A Multiplayer Event Handler is not saved in a save file and therefore will not be restored on load - use it accordingly.
Multiplayer:
Multiplayer EHs are added globally to every client and the server will fire on itself and every client upon event. The only exception is the MPRespawn EH that one only fires where the respawned unit is local. Make sure to check the EHs' locality in Event Handlers pages.
Groups:
MultiplayerEvent Handlers

Syntax

Syntax:
object addMPEventHandler [type, expression]
Parameters:
object: Object - object to monitor
type: String - event handler name
expression: String or Code - expression to execute.
If EH has some data to return upon event (e.g. the "MPKilled" EH will return an array with 2 elements: the killed unit, and the killer), it is passed in _this variable.
Arma 3
Since Arma 3 v.1.64 the EH handle is also stored in _thisEventHandler variable and is available during EH code execution.
Return Value:
Number - event handler index

Examples

Example 1:
_index = player addMPEventHandler ["MPKilled", { _this execVM "playerKilled.sqf"; }];

Additional Information

See also:
EventHandlers List removeMPEventHandler removeAllMPEventHandlers getEventHandlerInfo

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