GetEventHandlers: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(→‎Example: typo)
 
(25 intermediate revisions by 8 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Server client function}}
{{Server client function}}
{{New feature/item|4.0132|1.3.1|4973|
{{New feature/item|3.0140|1.4|4973|
This function gets the attached functions from the event and element attached to this event.
This function gets the attached functions from the event and attached element from current lua script.
}}
}}


Line 9: Line 9:
table getEventHandlers ( string eventName, element attachedTo )
table getEventHandlers ( string eventName, element attachedTo )
</syntaxhighlight>
</syntaxhighlight>


===Required Arguments===  
===Required Arguments===  
Line 16: Line 15:


===Returns===
===Returns===
Returns table with attached functions, false otherwise.
Returns table with attached functions, empty table otherwise.
 
===Example===
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">
function isEventHandlerAdded( sEventName, pElementAttachedTo, func )
if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then
    local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
for i, v in ipairs( aAttachedFunctions ) do
if v == func then
return true
end
end
end
end
return false
end
 
function onPlayerWasted()
outputChatBox( getPlayerName( source ) .. ' died.' )
end
addEventHandler( 'onPlayerWasted', root, onPlayerWasted )
 
addCommandHandler( 'removeOnPlayerWastedEvent', function()
    if isEventHandlerAdded( 'onPlayerWasted', root, onPlayerWasted ) then
        outputChatBox( 'onPlayerWasted succesfully removed!' )
        removeEventHandler( 'onPlayerWasted', root, onPlayerWasted )
    end
end)
</syntaxhighlight>
</section>
 
<section name="Clientside example" class="client" show="true">
This example removes all onClientMarkerHit event in current script.
<syntaxhighlight lang="lua">
local events = getEventHandlers ( "onClientMarkerHit", resourceRoot )
    for i,v in ipairs(events) do
removeEventHandler ( "onClientMarkerHit", resourceRoot, v)
    end
end
</syntaxhighlight>
</section>


==See also==
{{Event functions}}
{{Event functions}}
[[Category:Needs Example]]

Latest revision as of 13:47, 17 August 2024

This function gets the attached functions from the event and attached element from current lua script.

Syntax

table getEventHandlers ( string eventName, element attachedTo )

Required Arguments

  • eventName: The name of the event. For example ( "onPlayerWasted" ).
  • attachedTo: The element attached to.

Returns

Returns table with attached functions, empty table otherwise.

Example

Click to collapse [-]
Server
function isEventHandlerAdded( sEventName, pElementAttachedTo, func )
	if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then
	    local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
		if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
			for i, v in ipairs( aAttachedFunctions ) do
				if v == func then
					return true
				end
			end
		end
	end
	return false
end

function onPlayerWasted()
	outputChatBox( getPlayerName( source ) .. ' died.' )
end
addEventHandler( 'onPlayerWasted', root, onPlayerWasted )

addCommandHandler( 'removeOnPlayerWastedEvent', function()
    if isEventHandlerAdded( 'onPlayerWasted', root, onPlayerWasted ) then
        outputChatBox( 'onPlayerWasted succesfully removed!' )
        removeEventHandler( 'onPlayerWasted', root, onPlayerWasted )
    end
end)
Click to collapse [-]
Clientside example

This example removes all onClientMarkerHit event in current script.

local events = getEventHandlers ( "onClientMarkerHit", resourceRoot )
    for i,v in ipairs(events) do 
	 removeEventHandler ( "onClientMarkerHit", resourceRoot, v) 
    end
end

See also