SetElementStreamable: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(Fixed documentation)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Client function}}  
{{Client function}}  
__NOTOC__  
__NOTOC__  
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. If the limit for that element type is reached, the furthest away elements that are streamable will be streamed out until it's below the limit.<br>
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 [[player|players]], [[ped|peds]], [[vehicle|vehicles]] and [[object|objects]].
'''Note:''' You shouldn't disable streaming on too many elements as there are limits for every GTA element type. Disabling streaming for some far-away elements will reduce number of elements that can be shown nearby.<br>
{{Tip|'''Always use this function with caution'''. Not doing so can cause the following problems:
'''Note:''' Disabling streaming for extremely many vehicles (>80) can cause low FPS and unwanted effect when warping players into far away vehicles.
* 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==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool setElementStreamable ( element theElement, bool streamable )  
bool setElementStreamable ( element theElement, bool streamable )  
</syntaxhighlight>  
</syntaxhighlight>
{{New feature/item|3.0141|1.4.0|6987|{{OOP||[[element]]:setStreamable|streamable|isElementStreamable}}}}


===Required Arguments===  
===Required Arguments===  
*'''theElement:''' The element you wish to set the streaming of
*'''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
*'''streamable:''' ''true'' if this element should stream in/out like normal, ''false'' if it should always be streamed in.


===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==
This example creates an [[object]] at the center of the map which will always be streamed in when the resource which contains it starts.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
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 )
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
{{Element_functions}}
{{Client_element_functions}}

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