SetElementStreamable: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Added OOP syntax introduced in r6987, tidied up all the notes and improved the example)
(Fixed documentation)
 
Line 17: Line 17:


===Returns===
===Returns===
Returns ''true'' if the element was streamed in successfully right now, ''false'' if it could not be streamed in for some reason, for example limit reached, or invalid element.
Returns whether the element could be set to be streamable.


==Example==
==Example==

Latest revision as of 15:57, 13 August 2015

This function can be used to disable streaming for an element. This will make sure the element is not virtualized (streamed out from GTA) when the player moves far away from it. This function only works in elements with a physical representation in the world (entities), such as players, peds, vehicles and objects.

[[{{{image}}}|link=|]] Tip: Always use this function with caution. Not doing so can cause the following problems:
  • There is a limit of elements that can be streamed in safely for every GTA entity type. If you bypass said limit by using this function, the client can experience problems of disappearing objects and unstability when trying to stream in new elements of that type.
  • In general, if you disable too many elements (of the same type or not) to stream out, GTA will always try to render them, so it can cause a noticeable FPS drop.

Syntax

bool setElementStreamable ( element theElement, bool streamable ) 

OOP Syntax Help! I don't understand this!

Method: element:setStreamable(...)
Variable: .streamable
Counterpart: isElementStreamable

Required Arguments

  • theElement: The element you wish to set the streaming of
  • streamable: true if this element should stream in/out like normal, false if it should always be streamed in.

Returns

Returns whether the element could be set to be streamable.

Example

This example creates an object at the center of the map which will always be streamed in when the resource which contains it starts.

local function testNonStreamableObjects()
    local object = createObject ( 1097, 0, 0, 5 )
    setElementStreamable ( object, false ) -- Make the object always be streamed in
end
addEventHandler ( "onClientResourceStart", resourceRoot, testNonStreamableObjects )

See Also