Types: Difference between revisions

599 bytes added ,  5 September 2023
no edit summary
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 22: Line 22:
* {{Side|shared=1}} <code>Event</code> - event
* {{Side|shared=1}} <code>Event</code> - event
** {{Side|shared=1}} <code>CancellableEvent</code> - cancellable event
** {{Side|shared=1}} <code>CancellableEvent</code> - cancellable event
** {{Side|shared=1}} <code>KeyEvent</code> - key vent
** {{Side|shared=1}} <code>KeyEvent</code> - key event
* {{Side|client=1}} <code>Font</code> - font
* {{Side|client=1}} <code>Font</code> - font
* {{Side|client=1}} <code>GUIElement</code> - gui element
* {{Side|client=1}} <code>GUIElement</code> - gui element
Line 111: Line 111:
|Player (Local)
|Player (Local)
|Client-Side
|Client-Side
|When the client's player-ped has spawned. [[OnPedSpawn|OnPedSpawn]].
|When the local client's player-ped has spawned. [[OnPedSpawn|OnPedSpawn]].
|When the client's player-ped has de-spawned. [[OnPedWasted|OnPedWasted]].
|When the local client's player-ped has de-spawned. [[OnPedWasted|OnPedWasted]].
|-
|-
|Player (Remote)
|Player (Remote)
Line 131: Line 131:
As a result, this can give the illusion that some functions are broken when they aren't, such as the result of [[getElementsByType|getElementsByType]] including more than one array entry for the "same element", which are unequal in scripting comparison operators, after internal re-construction, eg. when a client-side player streams out of distance radius of the local player and then streams back in.<br>
As a result, this can give the illusion that some functions are broken when they aren't, such as the result of [[getElementsByType|getElementsByType]] including more than one array entry for the "same element", which are unequal in scripting comparison operators, after internal re-construction, eg. when a client-side player streams out of distance radius of the local player and then streams back in.<br>
To properly de-reference a handle when it's no longer needed, be sure to use <code>delete myVariable;</code> or <code>myVariable = null;</code> in JS, or <code>myVariable = nil</code> in Lua, where applicable.<br>
To properly de-reference a handle when it's no longer needed, be sure to use <code>delete myVariable;</code> or <code>myVariable = null;</code> in JS, or <code>myVariable = nil</code> in Lua, where applicable.<br>
Continuous attempts of internal destruction of a handle occurs when the qualifying internal destruction reason has occurred, until there are no references remaining in scripting for the handle, rather than only one internal destruction attempt.
Continuous attempts of internal destruction of a handle occurs when the qualifying internal destruction reason has occurred, until there are no references remaining in scripting for the handle, rather than only one internal destruction attempt.<br>
A handle becomes invalidated when a handle destruction attempt has first occurred.<br>
Attempting to hold onto a reference of invalidated handles could cause memory exhaustion, and usage of an invalid handle with the scripting API should give a scripting error.<br><br>
Also, when the local client's player-ped is not spawned, applicable handles will not be usable in client-side scripting.<br>
For example, remote clients' player-ped handles are internally attempted to be destructed when the local client's player-ped de-spawns, until the local client's player-ped re-spawns.<br>


==Previous Versions==
==Previous Versions==
6,833

edits