GetResourceDynamicElementRoot: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(added example)
Line 15: Line 15:


==Example==
==Example==
This example shows how to get all elements by specific type, created only by resource scripts (not maps).
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
--TODO
-- We have some map files with many objects in our meta.xml.
-- And we have some objects, created by some resource scripts.
 
--      createObject(...) -- 1
--      createObject(...) -- 2
--      ...
--      createObject(...) -- 20
 
-- After resource start we must found all objects, created only
-- by current resource scripts (not maps) and make them invisible.
 
-- `resourceRoot` is predefined script variable containing current resource root pointer
addEventHandler( 'onResourceStart', resourceRoot,
    function()
        -- `resource` is predefined script variable containing current resource pointer
        local thisResourceDynamicRoot = getResourceDynamicElementRoot(resource)
        local onlyScriptObjects = getElementsByType( 'object', thisResourceDynamicRoot )
       
        for scriptObject in ipairs(onlyScriptObjects) do
            setElementAlpha( scriptObject, 0 )
        end
    end
)
</syntaxhighlight>
</syntaxhighlight>



Revision as of 11:15, 5 September 2011

This function retrieves the dynamic element root of a specified resource. The dynamic element root is the parent of elements that are created by scripts (e.g. with createObject) unless they specify a different parent.

Syntax

element getResourceDynamicElementRoot ( resource theResource ) 

Required Arguments

  • theResource: the resource of which dynamic element root we want.

Returns

Returns an element of the resource's dynamic element root if the resource specified was valid and active (currently running), false otherwise.

Example

This example shows how to get all elements by specific type, created only by resource scripts (not maps).

-- We have some map files with many objects in our meta.xml.
-- And we have some objects, created by some resource scripts.

--      createObject(...) -- 1
--      createObject(...) -- 2
--      ...
--      createObject(...) -- 20

-- After resource start we must found all objects, created only
-- by current resource scripts (not maps) and make them invisible.

-- `resourceRoot` is predefined script variable containing current resource root pointer
addEventHandler( 'onResourceStart', resourceRoot,
    function()
        -- `resource` is predefined script variable containing current resource pointer
        local thisResourceDynamicRoot = getResourceDynamicElementRoot(resource)
        local onlyScriptObjects = getElementsByType( 'object', thisResourceDynamicRoot )
        
        for scriptObject in ipairs(onlyScriptObjects) do
            setElementAlpha( scriptObject, 0 )
        end
    end
)

See Also