setGusts: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 26: Line 26:
|user= samatra
|user= samatra
|timestamp= 20220706041709
|timestamp= 20220706041709
|text= Unlike most of weather commands, this one does not set gusts instantly but on next frame.
|text= Unlike most of weather commands, this one does not set gusts instantly but on next frame (in 2 frames in practice), so running it multiple times will overwrite each other. [[setRainbow]] has same behavior. In order to set gusts to some value and then have it change to another over time, you need to first do <sqf inline>0 setGusts 0</sqf> and then <sqf inline>100 setGusts 1</sqf> after 2 frames. Example:
<sqf>
<sqf>
// Assuming gusts = 0 here
// Initial gusts you want
0 setGusts 1;
0 setGusts 0;
100 setGusts 1;
 
// Gusts will still be 0 here and slowly going up to 1 because second command overwritten changes of first one.
// A thread to wait for 2 frames
(diag_frameNo + 2) spawn {
waitUntil {
// Code in braces is not executed until wanted frame is reached because of lazy evaluation
diag_frameNo >= _this && {
100 setGusts 1;
true; // positive condition result to end waitUntil and spawned thread
};
};
};
</sqf>
</sqf>
}}
}}

Revision as of 05:37, 6 July 2022

Hover & click on the images for description

Description

Description:
Changes the gusts value smoothly during the given time (in seconds). A time of zero means there will be an immediate change. Value is 0 to 1.
Groups:
Environment

Syntax

Syntax:
time setGusts value
Parameters:
time: Number
value: Number
Return Value:
Nothing

Examples

Example 1:
60 setGusts 0.75;

Additional Information

See also:
gusts wind setWind

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
samatra - c
Posted on Jul 06, 2022 - 04:17 (UTC)
Unlike most of weather commands, this one does not set gusts instantly but on next frame (in 2 frames in practice), so running it multiple times will overwrite each other. setRainbow has same behavior. In order to set gusts to some value and then have it change to another over time, you need to first do 0 setGusts 0 and then 100 setGusts 1 after 2 frames. Example:
// Initial gusts you want 0 setGusts 0; // A thread to wait for 2 frames (diag_frameNo + 2) spawn { waitUntil { // Code in braces is not executed until wanted frame is reached because of lazy evaluation diag_frameNo >= _this && { 100 setGusts 1; true; // positive condition result to end waitUntil and spawned thread }; }; };