GetEventHandlers: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(→‎Example: typo)
 
(22 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 attached element.
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===
===Example===
<section name="Shared" class="both" show="true">
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">[Lua]
<syntaxhighlight lang="lua">
function isAddEventHandlerAdded( sEventName, pElementAttachedTo, func )
function isEventHandlerAdded( sEventName, pElementAttachedTo, func )
if  
if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then
type( sEventName ) == 'string' and  
    local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
isElement( pElementAttachedTo ) and  
type( func ) == 'function'  
then
local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
for i, v in ipairs( aAttachedFunctions ) do
for i, v in ipairs( aAttachedFunctions ) do
Line 34: Line 29:
end
end
end
end
return false
end
end
return false
end
end
return false
return false
Line 46: Line 39:
addEventHandler( 'onPlayerWasted', root, onPlayerWasted )
addEventHandler( 'onPlayerWasted', root, onPlayerWasted )


addCommandHandler( 'removeOnPlayerWastedEvent',
addCommandHandler( 'removeOnPlayerWastedEvent', function()
function()
    if isEventHandlerAdded( 'onPlayerWasted', root, onPlayerWasted ) then
if isAddEventHandlerAdded( 'onPlayerWasted', root, onPlayerWasted ) then
        outputChatBox( 'onPlayerWasted succesfully removed!' )
outputChatBox( 'onPlayerWasted succesfully removed!' )
        removeEventHandler( 'onPlayerWasted', root, onPlayerWasted )
removeEventHandler( 'onPlayerWasted', root, onPlayerWasted )
    end
end
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>
</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