SetLowLODElement

From Multi Theft Auto: Wiki
Revision as of 15:36, 7 November 2024 by Fernando187 (talk | contribs) (Remove obsolete Requirements section)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This function assigns a low LOD element to an element. The low LOD element is displayed when its associated element is not fully visible. If a low LOD element is assigned to several elements, it will be displayed when any of these elements are not fully visible.

[[{{{image}}}|link=|]] Note: The only valid elements types for assigning LODs with this function are Object and Building.

Syntax

bool setLowLODElement ( element theElement, element lowLODElement )

OOP Syntax Help! I don't understand this!

Method: element:setLowLOD(...)
Variable: .lowLOD
Counterpart: getLowLODElement


Required Arguments

  • theElement: The element whose low LOD version we want to change.
  • lowLODElement : A low LOD element to display when the first element is not fully visible.

Returns

Returns true if the assignment was successful, false otherwise.

Example

Example 1

Click to collapse [-]
Clientside

This example shows how to create and link a normal and low LOD object:

    -- Create a normal object
    local objNormal = createObject ( 3620, x,y,z,0,0,0 )

    -- Create a low LOD object
    local objLowLOD = createObject ( 5154, x,y,z,0,0,0,true )

    -- Assign the LOD object with the Normal object
    setLowLODElement ( objNormal, objLowLOD )
    -- Set the LOD object's parent to the Normal object so it is destroyed together
    setElementParent( objLowLOD, objNormal )

    -- Set the draw distance for the model we are using for low LOD to maximum
    engineSetModelLODDistance ( 5154, 300 )

Example 2

Click to collapse [-]
Serverside

This example shows how to create and link a composite object

    -- Create composite object
    objMainBit = createObject ( 3620, x,y,z )
    objLeftBit = createObject ( 5158, x,y,z )
    objRightBit = createObject ( 5158, x,y,z )
    objDetailBit1 = createObject ( 1337, x,y,z )
    objDetailBit2 = createObject ( 1337, x,y,z )
    objInternalBit = createObject ( 1337, x,y,z )
    attachElements ( objLeftBit, objMainBit, -10, 0, 0 )
    attachElements ( objRightBit, objMainBit, 10, 0, 0 )
    attachElements ( objDetailBit1, objMainBit, 5, 0, 0 )
    attachElements ( objDetailBit2, objLeftBit, 5, 5, 0 )
    attachElements ( objInternalBit, objRightBit, 5, 7, 0 )

    -- Create low LOD object (which represents the whole composite model)
    objlowLOD = createObject ( 5154, x,y,z, 0, 0, 0, true )

    -- Attach low LOD object so it moves with the main model
    attachElements ( objlowLOD, objMainBit, 0, 0, 0 )

    -- Set the low LOD object's parent to the main object so it is destroyed together
    setElementParent( objLowLOD, objMainBit )

    -- Set associations so the low LOD model is displayed when the main parts are not full visible
    setLowLODElement ( objMainBit, objlowLOD )
    setLowLODElement ( objLeftBit, objlowLOD )
    setLowLODElement ( objRightBit, objlowLOD )

    -- Note that the detail and internal parts have not been associated to the low LOD object

    -- Set the draw distance for the model we are using for low LOD to maximum
    triggerClientEvent("onClientChangeModelLODDistance", resourceRoot, 5154, 300 )
Click to collapse [-]
Clientside

Changing the draw distance for a model has to be done on the client:

addEvent("onClientChangeModelLODDistance",true)
addEventHandler("onClientChangeModelLODDistance", resourceRoot,
    function(model,distance)
        engineSetModelLODDistance ( model, distance )
    end
)

See Also