disableSerialization: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "<dt class="note">([^<>]+) " to "<dt class="note">$1</dt> ") |
Lou Montana (talk | contribs) m (Text replacement - "\{\{( *)Important( *)\|" to "{{$1Feature$2|$2important$2|") |
||
Line 9: | Line 9: | ||
| Disable saving of script containing this command. After this, the script can work with data types which do not support serialization (UI types). See [[Namespace#Namespace serialization|Namespace serialization]] for more information. | | Disable saving of script containing this command. After this, the script can work with data types which do not support serialization (UI types). See [[Namespace#Namespace serialization|Namespace serialization]] for more information. | ||
{{ | {{Feature | important | '''In {{arma2}}''' and up to a certain version of {{arma3}}, <!-- | ||
-->giving a [[Display]] or [[Control]] to [[spawn]]ed code would raise an error due to the usage of the then non-serializable <tt>[[Magic Variables#this|_this]]</tt> variable. <!-- | -->giving a [[Display]] or [[Control]] to [[spawn]]ed code would raise an error due to the usage of the then non-serializable <tt>[[Magic Variables#this|_this]]</tt> variable. <!-- | ||
-->Using [[disableSerialization]] or [[uiNamespace]] wouldn't help; the trick here is to pass the argument inside an array: | -->Using [[disableSerialization]] or [[uiNamespace]] wouldn't help; the trick here is to pass the argument inside an array: |
Revision as of 02:13, 7 February 2021
Description
- Description:
- Description needed
- Groups:
- GUI Control
Syntax
- Syntax:
- Syntax needed
- Return Value:
- Return value needed
Examples
- Example 1:
disableSerialization; _display = findDisplay 46;
Additional Information
- See also:
- See also needed
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
- Posted on 19 June, 2010
- Str
-
Can be used to detecting load. Scope with disabled serialization is discontinued after load, even if there's endless loop inside.
_loaded = [] spawn { disableSerialization; waitUntil { false }; }; waitUntil { scriptDone _loaded; }; hint "Game was loaded!";
Works for all possible load types - loading user save, loading autosave and resuming mission from main menu. Use with caution, as it handles two threads in memory, having impact at overall scripting time. - Posted on 23 October, 2013
- Killzone_Kid
-
If you do not store UI elements (Display, Control) in variables, you do not need disableSerialization; UI elements are usually returned by scripting commands such as findDisplay or passed as params in UI event handler scripts (displayAddEventHandler, ctrlAddEventHandler).
This code will require disableSerialization:
disableSerialization; _display = findDisplay 123; _ctrl = _display displayCtrl -1; _ctrl ctrlSetText "LOL";
This code will not:findDisplay 123 displayCtrl -1 ctrlSetText "LOL";
- Posted on July 25, 2017 - 18:15 (UTC)
- IT07
-
In Arma 3 1.72.142223, a scripted FSM does somehow not work with disableSerialization. As a workaround, store a display inside an array.
Example:
_d = [findDisplay idd];