OnMarkerHit: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Minor changes + example)
(Add important note regarding weird behavior)
 
(14 intermediate revisions by 9 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Server event}}
{{Server event}}
This event is triggered when a player enters a marker created using [[createMarker]].
This event is triggered when an element enters a marker created using [[createMarker]].
{{Important Note|The event is not triggered when only the dimension changes of the player. So, if you use the `matchingDimension` when teleporting players into existing markers you should always first set their dimension/interior and only then the position}}


==Parameters==
==Parameters==
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
player hitElement, bool matchingDimension
element hitElement, bool matchingDimension
</syntaxhighlight>  
</syntaxhighlight>  


*'''hitElement''': The element that hit the marker
*'''hitElement''': the [[element]] that hit the [[marker]].
*'''matchingDimension''': True if the element is in the same dimension as the marker he hit
*'''matchingDimension''': a [[boolean]] representing whether the [[element]] is in the same dimension as the [[marker]].


==Source==
==Source==
Line 16: Line 17:
==Example==  
==Example==  
<!-- Explain what the example is in a single sentance -->
<!-- Explain what the example is in a single sentance -->
This will output 'hi' in the chatbox when the marker is hit.
This example will output a message what type of element has entered a marker.
<!-- Add the code below, an emphasis should be on making it clear, not optimized. You could provide two versions if you wish, one clear and well commented, the other optimized -->
<!-- Add the code below, an emphasis should be on making it clear, not optimized. You could provide two versions if you wish, one clear and well commented, the other optimized -->
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local playerMarker = createMarker(0, 0, 2, "cylinder", 5, 10, 244, 23, 200, root)


local myMarker = createMarker( -2596.6259765625, 579.3583984375, 15.626741409302, 'cylinder', 2.0, 255, 0, 0, 150 )
function handlePlayerMarker(hitElement)
local elementType = getElementType(hitElement)


function MarkerHit( hitElement, matchingDimension )
outputChatBox("Element ("..elementType..") has entered marker.")
        if getElementType( hitElement ) == "player" then
          outputChatBox( "Player inside myMarker", getRootElement(), 255, 255, 0 )
        elseif getElementType( hitElement ) == "vehicle" then
  outputChatBox( "Vehicle inside  myMarker", getRootElement(), 255, 255, 0 )
        end
end
end
addEventHandler( "onMarkerHit", myMarker, MarkerHit )</syntaxhighlight>
addEventHandler("onMarkerHit", playerMarker, handlePlayerMarker)
</syntaxhighlight>
 
==Issues==
{{Issues|
{{Issue|551|If a marker was attached to another element, onMarkerHit won't be triggered}}
{{Issue|519|onMarkerHit not always triggered in interiors}}
{{Issue|923|Server side markers with size < 1.5 don't trigger event}}
}}


{{See also/Server event|Marker events}}
{{See also/Server event|Marker events}}

Latest revision as of 20:40, 20 September 2023

This event is triggered when an element enters a marker created using createMarker.

[[{{{image}}}|link=|]] Important Note: The event is not triggered when only the dimension changes of the player. So, if you use the `matchingDimension` when teleporting players into existing markers you should always first set their dimension/interior and only then the position

Parameters

element hitElement, bool matchingDimension

Source

The source of this event is the marker that got hit by the element.

Example

This example will output a message what type of element has entered a marker.

local playerMarker = createMarker(0, 0, 2, "cylinder", 5, 10, 244, 23, 200, root)

function handlePlayerMarker(hitElement)
	local elementType = getElementType(hitElement)

	outputChatBox("Element ("..elementType..") has entered marker.")
end
addEventHandler("onMarkerHit", playerMarker, handlePlayerMarker)

Issues

Issue ID Description
#551 If a marker was attached to another element, onMarkerHit won't be triggered
#519 onMarkerHit not always triggered in interiors
#923 Server side markers with size < 1.5 don't trigger event

See Also

Marker events


Event functions