IsElementSyncer: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
Line 17: Line 17:
==Example==
==Example==
<section name="Client" class="client" show="true">
<section name="Client" class="client" show="true">
This example draws a string above peds synced by local player in 50m proximity
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
-- TODO
function renderSyncedElements ()
    -- Retrieve ped elements streamed in
    for k,el in ipairs (getElementsByType('ped', root, true)) do
        repeat
            if (not isElementSyncer(el)) then
                -- Skip if local player isn't syncer
                break
            end
           
            local pedX, pedY, pedZ = getElementPosition (el)
            local sX, sY, sD = getScreenFromWorldPosition (pedX, pedY, pedZ + 1.2)
            if (not sX) or (sD > 50) then
                -- Not on screen or too far away
                break
            end
           
            dxDrawText ('Syncer', sX, sY, 0, 0, tocolor(255,255,255,255), 20 / sD, 'arial')
        until true
    end
end
addEventHandler ('onClientRender', root, renderSyncedElements)
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>

Revision as of 23:49, 4 January 2014

Accessories-text-editor.png Script Example Missing Function IsElementSyncer needs a script example, help out by writing one.

Before submitting check out Editing Guidelines Script Examples.

This function checks whether an element is synced by the local player or not. Accepted elements are ped's and vehicle's.

Syntax

bool isElementSyncer ( element theElement )

Required Arguments

Returns

Returns true if the passed element is synced by the local player, false otherwise.

Example

Click to collapse [-]
Client

This example draws a string above peds synced by local player in 50m proximity

function renderSyncedElements ()
    -- Retrieve ped elements streamed in
    for k,el in ipairs (getElementsByType('ped', root, true)) do
        repeat
            if (not isElementSyncer(el)) then
                -- Skip if local player isn't syncer
                break
            end
            
            local pedX, pedY, pedZ = getElementPosition (el)
            local sX, sY, sD = getScreenFromWorldPosition (pedX, pedY, pedZ + 1.2)
            if (not sX) or (sD > 50) then
                -- Not on screen or too far away
                break
            end
            
            dxDrawText ('Syncer', sX, sY, 0, 0, tocolor(255,255,255,255), 20 / sD, 'arial')
        until true
    end
end
addEventHandler ('onClientRender', root, renderSyncedElements)

See Also