scriptNull: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
m (Fix Script link)
(24 intermediate revisions by the same user not shown)
Line 6: Line 6:
|gr1= Variables
|gr1= Variables


|descr= A non-existing [[Script]] or script that has finished ([[scriptDone]]). To compare non-existent scripts use [[isNull]] or [[isEqualTo]]:
|descr= A non-existing or [[scriptDone|completed]] [[Script Handle]]. To compare non-existent scripts use [[isNull]] or [[isEqualTo]]:
* {{hl|c= [[scriptNull]] <nowiki>==</nowiki> [[scriptNull]]; // ERROR! <nowiki>==</nowiki> cannot be used with script object}}
<sqf>
* {{hl|[[isNull]] [[scriptNull]]; // true}}
scriptNull == scriptNull; // ERROR! == cannot be used with script object
* {{hl|[[scriptNull]] [[isEqualTo]] [[scriptNull]]; // true}}
isNull scriptNull; // true
scriptNull isEqualTo scriptNull; // true
</sqf>


|s1= '''scriptNull'''
|s1= [[scriptNull]]


|r1= [[Script]] - NULL script
|r1= [[Script Handle]] - NULL script


|x1= Wait until previous script is finished before starting a new one:<code>[] spawn
|x1= Wait until previous script is finished before starting a new one:
<sqf>
[] spawn
{
{
_script = [[scriptNull]];
_script = scriptNull;
[[for]] "_i" [[from]] 1 [[to]] 10 [[do]] {
for "_i" from 1 to 10 do
[[waitUntil]] {[[isNull]] _script};
{
_script = _i [[spawn]] {
waitUntil { isNull _script };
[[hint]] [[format]] ["script %1 started", _this];
_script = _i spawn
[[sleep]] 1;
{
[[hint]] [[format]] ["script %1 finished", _this];
hint format ["script %1 started", _this];
[[sleep]] 0.2;
sleep 1;
hint format ["script %1 finished", _this];
sleep 0.2;
};
};
};
};
};</code>
};
</sqf>


|x2= <code>[[if]] ([[scriptDone]] (_obj [[getVariable]] ["objScript", [[scriptNull]]])) [[then]] {
|x2= <sqf>
_obj [[setVariable]] ["objScript", _obj [[spawn]] {
if (scriptDone (_obj getVariable ["TAG_objScript", scriptNull])) then
[[waitUntil]] {[[damage]] _this > 0.9};
{
[[hint]] "Critical Damage!";
_scriptHandle = _obj spawn { waitUntil { damage _this > 0.9 }; hint "Critical Damage!"; };
}];
_obj setVariable ["TAG_objScript", _scriptHandle];
};</code>
};
</sqf>


|x3= <code>[[str]] [[scriptNull]]; // <NULL-script></code>
|x3= <sqf>str scriptNull; // <NULL-script></sqf>


|seealso= [[controlNull]] [[displayNull]] [[grpNull]] [[locationNull]] [[objNull]] [[taskNull]] [[teamMemberNull]] [[configNull]], [[typeName]], [[isNull]], [[scriptDone]], [[spawn]], [[execVM]]
|seealso= [[controlNull]] [[displayNull]] [[grpNull]] [[locationNull]] [[objNull]] [[taskNull]] [[teamMemberNull]] [[configNull]] [[typeName]] [[isNull]] [[scriptDone]] [[spawn]] [[execVM]]
}}
}}

Revision as of 10:55, 29 December 2022

Hover & click on the images for description

Description

Description:
A non-existing or completed Script Handle. To compare non-existent scripts use isNull or isEqualTo:
scriptNull == scriptNull; // ERROR! == cannot be used with script object isNull scriptNull; // true scriptNull isEqualTo scriptNull; // true
Groups:
Variables

Syntax

Syntax:
scriptNull
Return Value:
Script Handle - NULL script

Examples

Example 1:
Wait until previous script is finished before starting a new one:
[] spawn { _script = scriptNull; for "_i" from 1 to 10 do { waitUntil { isNull _script }; _script = _i spawn { hint format ["script %1 started", _this]; sleep 1; hint format ["script %1 finished", _this]; sleep 0.2; }; }; };
Example 2:
if (scriptDone (_obj getVariable ["TAG_objScript", scriptNull])) then { _scriptHandle = _obj spawn { waitUntil { damage _this > 0.9 }; hint "Critical Damage!"; }; _obj setVariable ["TAG_objScript", _scriptHandle]; };
Example 3:
str scriptNull; // <NULL-script>

Additional Information

See also:
controlNull displayNull grpNull locationNull objNull taskNull teamMemberNull configNull typeName isNull scriptDone spawn execVM

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