SetLowLODElement

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

Examples

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 )
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