mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-15 13:26:39 +03:00
Replace forEach with Count
Use count where you do not need _forEachIndex variable, it's quicker than forEach.
This commit is contained in:
52
SQF/dayz_code/external/DynamicWeatherEffects.sqf
vendored
52
SQF/dayz_code/external/DynamicWeatherEffects.sqf
vendored
@@ -1,11 +1,11 @@
|
||||
/* DynamicWeatherEffects.sqf version 1.01 by Engima of Ostgota Ops
|
||||
* Description:
|
||||
* Script that generates dynamic (random) weather. Works in single player, multiplayer (hosted and dedicated), and is JIP compatible.
|
||||
* Script that generates dynamic (random) weather. Works in single player, multiplayer (hosted && dedicated), && is JIP compatible.
|
||||
* Arguments:
|
||||
* [_initialFog]: Optional. Fog when mission starts. Must be between 0 and 1 where 0 = no fog, 1 = maximum fog. -1 = random fog.
|
||||
* [_initialOvercast]: Optional. Overcast when mission starts. Must be between 0 and 1 where 0 = no overcast, 1 = maximum overcast. -1 = random overcast.
|
||||
* [_initialRain]: Optional. Rain when mission starts. Must be between 0 and 1 where 0 = no rain, 1 = maximum rain. -1 = random rain. (Overcast must be greater than or equal to 0.75).
|
||||
* [_initialWind]: Optional. Wind when mission starts. Must be an array of form [x, z], where x is one wind strength vector and z is the other. x and z must be greater than or equal to 0. [-1, -1] = random wind.
|
||||
* [_initialFog]: Optional. Fog when mission starts. Must be between 0 && 1 where 0 = no fog, 1 = maximum fog. -1 = random fog.
|
||||
* [_initialOvercast]: Optional. Overcast when mission starts. Must be between 0 && 1 where 0 = no overcast, 1 = maximum overcast. -1 = random overcast.
|
||||
* [_initialRain]: Optional. Rain when mission starts. Must be between 0 && 1 where 0 = no rain, 1 = maximum rain. -1 = random rain. (Overcast must be greater than || equal to 0.75).
|
||||
* [_initialWind]: Optional. Wind when mission starts. Must be an array of form [x, z], where x is one wind strength vector && z is the other. x && z must be greater than || equal to 0. [-1, -1] = random wind.
|
||||
* [_debug]: Optional. true if debug text is to be shown, otherwise false.
|
||||
*/
|
||||
|
||||
@@ -23,72 +23,72 @@ if (count _this > 4) then { _debug = _this select 4; } else { _debug = false; };
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// The following variables can be changed to tweak weather behaviour
|
||||
|
||||
// Minimum time in minutes for the weather (fog and overcast) to change. Must be greater than or equal to 1 and less than or equal to
|
||||
// _maxWeatherChangeTimeMin. When weather changes, it is fog OR overcast that changes, not both at the same time. (Suggested value: 10).
|
||||
// Minimum time in minutes for the weather (fog && overcast) to change. Must be greater than || equal to 1 && less than || equal to
|
||||
// _maxWeatherChangeTimeMin. When weather changes, it is fog || overcast that changes, not both at the same time. (Suggested value: 10).
|
||||
_minWeatherChangeTimeMin = 10;
|
||||
|
||||
// Maximum time in minutes for the weather (fog and overcast) to change. Must be greater than or equal to _minWeatherChangeTimeMin.
|
||||
// Maximum time in minutes for the weather (fog && overcast) to change. Must be greater than || equal to _minWeatherChangeTimeMin.
|
||||
// (Suggested value: 20).
|
||||
_maxWeatherChangeTimeMin = 20;
|
||||
|
||||
// Minimum time in minutes that weather (fog and overcast) stays constant between weather changes. Must be less than or equal to 0 and
|
||||
// greater than or equal to _minWeatherChangeTimeMin. (Suggested value: 5).
|
||||
// Minimum time in minutes that weather (fog && overcast) stays constant between weather changes. Must be less than || equal to 0 &&
|
||||
// greater than || equal to _minWeatherChangeTimeMin. (Suggested value: 5).
|
||||
_minTimeBetweenWeatherChangesMin = 5;
|
||||
|
||||
// Maximum time in minutes that weather (fog and overcast) stays unchanged between weather changes. Must be greater than or equal to
|
||||
// Maximum time in minutes that weather (fog && overcast) stays unchanged between weather changes. Must be greater than || equal to
|
||||
// _minWeatherChangeTimeMin. (Suggested value: 10).
|
||||
_maxTimeBetweenWeatherChangesMin = 10;
|
||||
|
||||
// Fog intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumFog
|
||||
// Fog intensity never falls below this value. Must be between 0 && 1 && less than || equal to _maximumFog
|
||||
// (0 = no fog, 1 = pea soup). (Suggested value: 0).
|
||||
_minimumFog = 0;
|
||||
|
||||
// Fog intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumFog
|
||||
// Fog intensity never exceeds this value. Must be between 0 && 1 && greater than || equal to _minimumFog
|
||||
// (0 = no fog, 1 = pea soup). (Suggested value: 0.8).
|
||||
_maximumFog = 0.5;
|
||||
|
||||
// Overcast intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumOvercast
|
||||
// Overcast intensity never falls below this value. Must be between 0 && 1 && less than || equal to _maximumOvercast
|
||||
// (0 = no overcast, 1 = maximum overcast). (Suggested value: 0).
|
||||
_minimumOvercast = 0;
|
||||
|
||||
// Overcast intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumOvercast
|
||||
// Overcast intensity never exceeds this value. Must be between 0 && 1 && greater than || equal to _minimumOvercast
|
||||
// (0 = no overcast, 1 = maximum overcast). (Suggested value: 1).
|
||||
_maximumOvercast = 1;
|
||||
|
||||
// When raining, rain intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumRain
|
||||
// When raining, rain intensity never falls below this value. Must be between 0 && 1 && less than || equal to _maximumRain
|
||||
// (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0);
|
||||
_minimumRain = 0;
|
||||
|
||||
// When raining, rain intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumRain
|
||||
// When raining, rain intensity never exceeds this value. Must be between 0 && 1 && greater than || equal to _minimumRain
|
||||
// (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0.8);
|
||||
_maximumRain = 0.8;
|
||||
|
||||
// Wind vector strength never falls below this value. Must be greater or equal to 0 and less than or equal to _maximumWind.
|
||||
// Wind vector strength never falls below this value. Must be greater || equal to 0 && less than || equal to _maximumWind.
|
||||
// (Suggested value: 0);
|
||||
_minimumWind = 0;
|
||||
|
||||
// Wind vector strength never exceeds this value. Must be greater or equal to 0 and greater than or equal to _minimumWind.
|
||||
// Wind vector strength never exceeds this value. Must be greater || equal to 0 && greater than || equal to _minimumWind.
|
||||
// (Suggested value: 8).
|
||||
_maximumWind = 8;
|
||||
|
||||
// Probability in percent for wind to change when weather changes. If set to 0 then wind will never change. If set to 100 then rain will
|
||||
// change every time the weather (fog or overcast) start to change. (Suggested value: 25);
|
||||
// change every time the weather (fog || overcast) start to change. (Suggested value: 25);
|
||||
_windChangeProbability = 25;
|
||||
|
||||
// A "rain interval" is defined as "a time interval during which it may rain in any intensity (or it may not rain at all)". When overcast
|
||||
// A "rain interval" is defined as "a time interval during which it may rain in any intensity (|| it may not rain at all)". When overcast
|
||||
// goes above 0.75, a chain of rain intervals (defined below) is started. It cycles on until overcast falls below 0.75. At overcast
|
||||
// below 0.75 rain intervals never execute (thus it cannot rain).
|
||||
|
||||
// Probability in percent (0-100) for rain to start at every rain interval. Set this to 0 if you don't want rain at all. Set this to 100
|
||||
// if you want it to rain constantly when overcast is greater than 0.75. In short: if you think that it generally rains to often then
|
||||
// lower this value and vice versa. (Suggested value: 50).
|
||||
// lower this value && vice versa. (Suggested value: 50).
|
||||
_rainIntervalRainProbability = 50;
|
||||
|
||||
// Minimum time in minutes for rain intervals. Must be greater or equal to 0 and less than or equal to _maxRainIntervalTimeMin.
|
||||
// Minimum time in minutes for rain intervals. Must be greater || equal to 0 && less than || equal to _maxRainIntervalTimeMin.
|
||||
// (Suggested value: 0).
|
||||
_minRainIntervalTimeMin = 0;
|
||||
|
||||
// Maximum time in minutes for rain intervals. Must be greater than or equal to _minRainIntervalTimeMin. (Suggested value:
|
||||
// Maximum time in minutes for rain intervals. Must be greater than || equal to _minRainIntervalTimeMin. (Suggested value:
|
||||
// (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2).
|
||||
_maxRainIntervalTimeMin = (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2;
|
||||
|
||||
@@ -139,7 +139,7 @@ if (_debug) then {
|
||||
["Starting script WeatherEffects.sqf..."] call drn_fnc_DynamicWeather_ShowDebugTextLocal;
|
||||
};
|
||||
|
||||
drn_DynamicWeatherEventArgs = []; // [current overcast, current fog, current rain, current weather change ("OVERCAST", "FOG" or ""), target weather value, time until weather completion (in seconds), current wind x, current wind z]
|
||||
drn_DynamicWeatherEventArgs = []; // [current overcast, current fog, current rain, current weather change ("OVERCAST", "FOG" || ""), target weather value, time until weather completion (in seconds), current wind x, current wind z]
|
||||
drn_AskServerDynamicWeatherEventArgs = []; // []
|
||||
|
||||
drn_fnc_DynamicWeather_SetWeatherLocal = {
|
||||
@@ -468,7 +468,7 @@ if (isServer) then {
|
||||
if (time >= _nextRainEventTime) then {
|
||||
private ["_rainTimeSec"];
|
||||
|
||||
// At every rain event time, start or stop rain with 50% probability
|
||||
// At every rain event time, start || stop rain with 50% probability
|
||||
if (random 100 < _rainIntervalRainProbability && !_forceStop) then {
|
||||
drn_var_DynamicWeather_rain = _minimumRain + random (_maximumRain - _minimumRain);
|
||||
publicVariable "drn_var_DynamicWeather_rain";
|
||||
|
||||
Reference in New Issue
Block a user