DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
WorldData.c
См. документацию.
1
3{
4 const float SPAWN_CHANCE_CHOLERA_DEF = 50;
6
13
14 protected float SUDDENCHANGE_TIME_MULTIPLIER = 0.2;
15 protected float SUDDENCHANGE_LENGTH_MULTIPLIER = 0.4;
16 protected float WIND_MAGNITUDE_TIME_MULTIPLIER = 0.1;
17 protected float WIND_DIRECTION_TIME_MULTIPLIER = 0.05;
18
19 protected Weather m_Weather;
20 protected float m_EnvironmentTemperature;
21 protected bool m_EnTempUpdated;
22 protected float m_Timer;
23 protected float m_MaxTemps[12];
24 protected float m_MinTemps[12];
25 protected float m_Sunrise_Jan;
26 protected float m_Sunset_Jan;
27 protected float m_Sunrise_Jul;
28 protected float m_Sunset_Jul;
29
30 protected int m_ShortestDayOfYear = 1;
31 protected int m_LongestDayOfYear = 1;
32
33 protected ref array<vector> m_FiringPos; // Where we should fire from. On Init set the relevant data
34 protected bool m_Pollution;
37 protected ref WorldDataLiquidSettings m_LiquidSettings;
38 protected ref DustEffectsSettings m_DustEffectsSettings;
40
42 protected int m_BadWeatherChance;
43 protected int m_ClearWeatherChance;
44 protected bool m_IsSuddenChange;
45 protected float m_WorldWindCoef;
46 protected bool m_IsSandstorm;
48
50
51 //used at next weather calculation
52 protected int m_SameWeatherCnt = 0;
53 protected int m_StepValue = 5;
54 protected int m_Chance = 50;
55 protected int m_ChoosenWeather = 1;
56 protected int m_LastWeather = 0;
57
58 void WorldData()
59 {
60 Init();
64 }
65
66 void Init()
67 {
71
72 m_EnTempUpdated = false;
73 m_Weather = g_Game.GetWeather();
75 m_Timer = 0.0;
76 m_Sunrise_Jan = 8.54;
77 m_Sunset_Jan = 15.52;
78 m_Sunrise_Jul = 3.26;
79 m_Sunset_Jul = 20.73;
80 m_MaxTemps = {3,5,7,14,19,24,26,25,21,16,10,5};
81 m_MinTemps = {-3,-2,0,4,9,14,18,17,12,7,4,0};
82 m_Pollution = EPollution.NONE;
83 m_WorldWindCoef = 0.5;
84
86
92
95
97 }
98
99 float GetApproxSunriseTime( float monthday )
100 {
101 if ( monthday <= 8.0 )
102 return ( ( m_Sunrise_Jan - m_Sunrise_Jul ) / ( 8 - 1 ) ) * ( 1 - monthday ) + m_Sunrise_Jan;
103 else
104 return ( ( ( monthday - 8 ) * ( m_Sunrise_Jan - m_Sunrise_Jul ) ) / ( 13 - 8 ) ) + m_Sunrise_Jul;
105 }
106 float GetApproxSunsetTime( float monthday )
107 {
108 if ( monthday <= 8.0 )
109 return ( ( m_Sunset_Jan - m_Sunset_Jul ) / (8 - 1) ) * ( 1 - monthday ) + m_Sunset_Jan;
110 else
111 return ( ( ( monthday - 8 ) * ( m_Sunset_Jan - m_Sunset_Jul ) ) / ( 13 - 8 ) ) + m_Sunset_Jul;
112 }
113
115 {
116 int year, month, day, hour, minute;
117 g_Game.GetWorld().GetDate(year, month, day, hour, minute);
118
119 WorldData worldData = g_Game.GetMission().GetWorldData();
120 float sunriseTimeStart = worldData.GetApproxSunriseTime(month);
121 float sunsetTimeStart = worldData.GetApproxSunsetTime(month);
122
123 if (hour >= sunriseTimeStart && hour < (sunriseTimeStart + 2))
124 return WorldDataDaytime.DAWN;
125 else if (hour >= (sunriseTimeStart + 2) && hour < sunsetTimeStart)
126 return WorldDataDaytime.DAY;
127 else if (hour >= sunsetTimeStart && hour < (sunsetTimeStart + 2))
128 return WorldDataDaytime.DUSK;
129
130 return WorldDataDaytime.NIGHT;
131 }
132
133 protected float CalcBaseEnvironmentTemperature( float monthday, float daytime )
134 {
135 float approxSunrise = GetApproxSunriseTime( monthday );
136 float approxSunset = GetApproxSunsetTime( monthday );
137 float dayLight = approxSunset - approxSunrise;
138 float nightTime = 24.0 - dayLight;
139 int tempArrayIndex = Math.Floor(monthday) - 1;
140 int tempArrayIndexToLerp = tempArrayIndex + 1;
141 if ( tempArrayIndexToLerp >= 12 )
142 tempArrayIndexToLerp = 0;
143 float tempArrayLerp = monthday - Math.Floor(monthday);
144 float minTempA = m_MinTemps[tempArrayIndex];
145 float minTempB = m_MinTemps[tempArrayIndexToLerp];
146 float maxTempA = m_MaxTemps[tempArrayIndex];
147 float maxTempB = m_MaxTemps[tempArrayIndexToLerp];
148 float eveningMinA = minTempA + ( 0.5 * Math.AbsFloat( minTempA - maxTempA ) );
149 float eveningMinB = minTempB + ( 0.5 * Math.AbsFloat( minTempB - maxTempB ) );
150
151 if ( ( daytime >= approxSunrise ) && ( daytime <= approxSunset ) ) {
152 if ( daytime <= ( approxSunrise + ( dayLight * 0.75 ) ) )
153 return Math.Lerp(
154 Math.Lerp( minTempA, minTempB, tempArrayLerp ),
155 Math.Lerp( maxTempA, maxTempB, tempArrayLerp ),
156 ( ( daytime - approxSunrise ) / ( dayLight * 0.75 ) ) );
157 else
158 return Math.Lerp(
159 Math.Lerp( maxTempA, maxTempB, tempArrayLerp ),
160 Math.Lerp( eveningMinA, eveningMinB, tempArrayLerp ),
161 ( ( ( daytime - approxSunrise ) - ( dayLight * 0.75 ) ) / ( dayLight - ( dayLight * 0.75 ) ) ) );
162 } else {
163 if ( ( daytime > approxSunset ) && ( daytime < 24 ) )
164 return Math.Lerp(
165 Math.Lerp( eveningMinA, eveningMinB, tempArrayLerp ),
166 Math.Lerp( minTempA, minTempB, tempArrayLerp ),
167 ( ( daytime - approxSunset ) / ( 24 - approxSunset ) ) / 2.0 );
168 else
169 return Math.Lerp(
170 Math.Lerp( eveningMinA, eveningMinB, tempArrayLerp ),
171 Math.Lerp( minTempA, minTempB, tempArrayLerp ),
172 ( ( ( daytime + ( 24 - approxSunset ) ) / nightTime ) / 2.0 ) + 0.5 );
173 }
174 }
175 void UpdateBaseEnvTemperature(float timeslice)
176 {
177 m_Timer += timeslice;
178 if (m_Timer > 30 || !m_EnTempUpdated)
179 {
180 int year, month, day, hour, minute;
181 g_Game.GetWorld().GetDate( year, month, day, hour, minute );
182 m_EnvironmentTemperature = CalcBaseEnvironmentTemperature( month + ( day / 32.0 ), hour + ( minute / 60.0 ) );
183 m_Timer = 0;
184
185 if (!m_EnTempUpdated)
186 m_EnTempUpdated = true;
187 }
188 }
189
195 void UpdateWeatherEffects( Weather weather, float timeslice )
196 {
197 float snowflakeScale = ComputeSnowflakeScale( weather );
198 weather.SetSnowflakeScale( snowflakeScale );
199 }
200
206 {
207 float overcast01 = Math.Clamp( Math.InverseLerp( 0.4, 1.0, weather.GetOvercast().GetActual() ), 0.0, 1.0 ); // remap range to <0.4, 1.0> snowfall overcast threshold
208 float wind01 = weather.GetWindSpeed() / weather.GetWindMaximumSpeed();
209
210 float overcastScale = Math.Lerp( 0.50, 1.25, overcast01 );
211 float windScale = Math.Lerp( 1.25, 1.00, wind01 );
212
213 return Math.Clamp( overcastScale * windScale, 0.50, 1.25 );
214 }
215
216 // getter for the new base enviro temperature
218 {
220 }
221
223 {
225 }
226
228 {
229 float terrainHeight = pos[1];
230 float heightCorrection = Math.Max(0, (terrainHeight * m_TemperaturePerHeightReductionModifier));
231 return m_EnvironmentTemperature - heightCorrection;
232 }
233
234 float GetBaseEnvTemperatureExact(int month, int day, int hour, int minute)
235 {
236 return CalcBaseEnvironmentTemperature( month + ( day / 32.0 ), hour + ( minute / 60.0 ) );
237 }
238
239 float GetLiquidTypeEnviroTemperature(int liquidType)
240 {
241 if (m_LiquidSettings.m_Temperatures.Count() > 0 && m_LiquidSettings.m_Temperatures.Contains(liquidType) != INDEX_NOT_FOUND)
242 return m_LiquidSettings.m_Temperatures.Get(liquidType);
243
244 #ifdef DEVELOPER
245 ErrorEx("Undefined enviro temperature for liquid type: " + liquidType);
246 #endif
247
249 }
250
251 bool WeatherOnBeforeChange( EWeatherPhenomenon type, float actual, float change, float time )
252 {
253 // default behaviour is same like setting MissionWeather (in Weather) to true
254 return false;
255 }
256
257 // Used to return the artillery firing positions
259 {
260 return m_FiringPos;
261 }
262
263 // Returns chance percentage for selected agent to spawn, used with spawned loot
265 {
266 if (agent == eAgents.CHOLERA)
268
269 return 0;
270 }
271
272 // Returns modifier which is added to the tool damage logic when player is in cold area
277
278 // debug
279 void BaseTempDebug(int month, int day)
280 {
281 Print("--------------------");
282 for ( int i = 0; i < 24; i++ )
283 {
284 for ( int j = 0; j < 6; j++ )
285 {
286 int minute = ( j * 10 );
287 Print(string.Format( "%1:%2 %3", i, minute, GetBaseEnvTemperatureExact( month, day, i, minute ) ) );
288 }
289 }
290 }
291
293 {
294 return m_Pollution;
295 }
296
298 {
299 return m_WorldWindCoef;
300 }
301
306
313 {
314 // EEnvironmentTemperatureComponent.BASE only
315 float temperature = GetBaseEnvTemperature();
316
317 if (object && properties & EEnvironmentTemperatureComponent.ALTITUDE)
318 temperature = GetBaseEnvTemperatureAtObject(object);
319
320 if (properties & EEnvironmentTemperatureComponent.OVERCAST)
321 temperature += m_Weather.GetOvercast().GetActual() * m_CloudsTemperatureEffectModifier;
322
323 if (properties & EEnvironmentTemperatureComponent.WIND)
324 temperature += WindEffectTemperatureValue(temperature);
325
326 if (properties & EEnvironmentTemperatureComponent.FOG)
327 temperature += m_Weather.GetFog().GetActual() * GameConstants.ENVIRO_FOG_TEMP_EFFECT;
328
329 return temperature;
330 }
331
337 float GetTemperatureComponentValue(float temperatureIn, EEnvironmentTemperatureComponent properties = 0)
338 {
339 float temperatureOut = 0.0;
340
341 if ((properties & EEnvironmentTemperatureComponent.OVERCAST) == EEnvironmentTemperatureComponent.OVERCAST)
342 temperatureOut = m_Weather.GetOvercast().GetActual() * m_CloudsTemperatureEffectModifier;
343 else if ((properties & EEnvironmentTemperatureComponent.WIND) == EEnvironmentTemperatureComponent.WIND)
344 temperatureOut = WindEffectTemperatureValue(temperatureIn);
346 temperatureOut = m_Weather.GetFog().GetActual() * GameConstants.ENVIRO_FOG_TEMP_EFFECT;
347 else
348 {
349 Debug.Log(string.Format("Only OVERCAST, WIND and FOG parameters are supported"));
350 }
351
352 return temperatureOut;
353 }
354
355 float GetSunEffectOnTemperature(int m_DayTime)
356 {
357 float overcastEffectOnSunModifier = 1 - Math.InverseLerp(m_WeatherDefaultSettings.m_OvercastEffectMinLimitOnSunExposure, m_WeatherDefaultSettings.m_OvercastEffectMaxLimitOnSunExposure, m_Weather.GetOvercast().GetActual());
358 overcastEffectOnSunModifier = Math.Clamp(overcastEffectOnSunModifier, 0, 1);
359 return m_TemperatureUnderSunModifier[m_DayTime] * overcastEffectOnSunModifier;
360 }
361
365 protected int DayOfYear(int day, int month)
366 {
367 int daysInMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
368 int dayNumber = 0;
369
370 for (int i = 0; i < month - 1; i++)
371 {
372 dayNumber += daysInMonth[i];
373 }
374
375 dayNumber += day;
376 return dayNumber;
377 }
378
382 protected float GetSunriseTime(float dayNumber)
383 {
384 float avg = (m_Sunrise_Jan + m_Sunrise_Jul) / 2.0;
385 float amp = (m_Sunrise_Jul - m_Sunrise_Jan) / 2.0;
386 float angle = Math.PI2 * (dayNumber - m_LongestDayOfYear) / 365;
387 return avg + amp * Math.Cos(angle);
388 }
389
393 protected float GetSunsetTime( float dayNumber )
394 {
395 float avg = (m_Sunset_Jan + m_Sunset_Jul) / 2.0;
396 float amp = (m_Sunset_Jul - m_Sunset_Jan) / 2.0;
397 float angle = Math.PI2 * (dayNumber - m_LongestDayOfYear) / 365;
398
399 return avg - amp * Math.Cos(angle);
400 }
401
402 protected float WindEffectTemperatureValue(float temperatureInput)
403 {
404 float temperatureOutput = 0.0;
405
407 temperatureOutput = temperatureOutput * m_Weather.GetWindMagnitude().GetActual() * GetWindCoef();
408
409 return -temperatureOutput;
410 }
411
412 protected void CalculateWind(int newWeather, bool suddenChange, out float magnitude, out float direction);
413
414 protected void CalculateVolFog(float lerpValue, float windMagnitude, float changeTime);
415
416 protected void CreateYieldBank()
417 {
419 }
420
422 protected void InitYieldBank()
423 {
424 GetDayZGame().GetYieldDataInitInvoker().Invoke(m_YieldBank); //injects defaults from 4_World and above
425 }
426
427 protected void SetupWeatherSettings()
428 {
430
431 // Obtain the 'sandstormFrequency' from cfgGameplay.json; this defines the rate at which sandstorms should occur,
432 // for example:
433 // 0.0 : No sandstorms whatsoever
434 // 0.5 : Sandstorms are twice as less likely to occur
435 // 1.0 : Sandstorms are ocurring at their normal rate
436 // 2.0 : Sandstorms are twice as likely to occur
438
439 if ( m_WeatherDefaultSettings.m_sandstormFrequency < 0 )
440 {
441 m_WeatherDefaultSettings.m_sandstormFrequency = 0;
442 }
443 }
444
445 protected void SetupLiquidTemperatures()
446 {
447 m_LiquidSettings = new WorldDataLiquidSettings();
448
449 m_LiquidSettings.m_Temperatures[LIQUID_SALTWATER] = 23.0;
450 m_LiquidSettings.m_Temperatures[LIQUID_WATER] = 15.0;
451 m_LiquidSettings.m_Temperatures[LIQUID_STILLWATER] = 15.0;
452 m_LiquidSettings.m_Temperatures[LIQUID_RIVERWATER] = 15.0;
453 m_LiquidSettings.m_Temperatures[LIQUID_FRESHWATER] = 15.0;
454 m_LiquidSettings.m_Temperatures[LIQUID_CLEANWATER] = 10.0;
455 m_LiquidSettings.m_Temperatures[LIQUID_SNOW] = -5.0;
456 }
457
458 protected void SetupDustEffects()
459 {
460 m_DustEffectsSettings = new DustEffectsSettings();
461 }
462
467
472
477 protected void StartSandstorm(float timeToGather)
478 {
479 // Set instigator flag to identify that this request
480 // is coming from WorldData
481 bool lastStartedByWeather = m_IsSandstormStartedByWeather;
483
484 // In case of a failure make sure to reset the flag
485 // to its original state as this request did not pass
486 if (!m_Weather.GetSandstorm().Start(timeToGather, true))
487 {
488 m_IsSandstormStartedByWeather = lastStartedByWeather;
489 }
490 }
491
495 sealed void WeatherSandstormStart(bool continuedSession)
496 {
497 // Read the state of the flag and restore it to default state
498 bool isStartedByWeather = false;
499 if (!continuedSession)
500 {
501 isStartedByWeather = m_IsSandstormStartedByWeather;
502 }
503 else
504 {
505 isStartedByWeather = true;
506 }
507
509 // Pass this information to the callback
510 OnSandstormStart(isStartedByWeather);
511 }
512
516 sealed void WeatherSandstormStop(bool calledFromWeather)
517 {
518 OnSandstormStop(calledFromWeather);
519 }
520
524 protected void OnSandstormStart(bool isStartedByWeather);
528 protected void OnSandstormStop(bool calledFromWeather);
529
530
534
535 protected float m_DayTemperature = 10; // legacy, no longer used
536 protected float m_NightTemperature = 6; // legacy, no longer used
537
539 {
540 return m_DayTemperature;
541 }
542
544 {
545 return m_NightTemperature;
546 }
547
548 DustEffectsSettings GetDustEffectsSettings()
549 {
551 }
552}
553
554class WorldDataWeatherConstants
555{
556 const int CLEAR_WEATHER = 1;
557 const int CLOUDY_WEATHER = 2;
558 const int BAD_WEATHER = 3;
559}
560
602
603class WorldDataLiquidSettings
604{
606}
607
609{
610 static int ANY = -1;
611 static int NIGHT = 0;
612 static int DAY = 1;
613 static int DUSK = 2;
614 static int DAWN = 3;
615 static int MORNING = 4;
616 static int NOON = 5;
617 static int AFTERNOON = 6;
618 static int EVENING = 7;
619
620 static string ToString(int value)
621 {
622 switch (value)
623 {
624 case NIGHT:
625 return "NIGHT";
626 case DAY:
627 return "DAY";
628 case DUSK:
629 return "DUSK";
630 case DAWN:
631 return "DAWN";
632 case MORNING:
633 return "MORNING";
634 case NOON:
635 return "NOON";
636 case AFTERNOON:
637 return "AFTERNOON";
638 case EVENING:
639 return "EVENING";
640 }
641
642 return "ANYTIME";
643 }
644
645 static bool IsInRange(int current, TIntArray range)
646 {
647 foreach (int value : range)
648 {
649 if (current == value)
650 return true;
651 }
652
653 return false;
654 }
655}
656
657class DustEffectsSettings
658{
677}
DayZGame g_Game
Определения DayZGame.c:4074
DayZGame GetDayZGame()
Определения DayZGame.c:4076
eAgents
Определения EAgents.c:3
EEnvironmentTemperatureComponent
void OnSandstormStart()
Определения ScriptConsoleWeatherTab.c:441
EWeatherPhenomenon
Определения Weather.c:11
float m_CloudEffectCooldownMin
Определения WorldData.c:671
float m_GroundEffectLifetimeMin
Определения WorldData.c:665
class WorldDataDaytime m_GroundEffectEnable
class WorldDataWeatherSettings m_Temperatures
float m_GroundEffectLifetimeMax
Определения WorldData.c:666
float m_GroundEffectSizeMin
Определения WorldData.c:667
float m_CloudEffectDurationMax
Определения WorldData.c:674
float m_CloudEffectMinWindStrength
Определения WorldData.c:670
float m_GroundEffectWindWeight
Определения WorldData.c:663
float m_GroundEffectDistance
Определения WorldData.c:661
float m_GroundEffectSizeMax
Определения WorldData.c:668
float m_GroundEffectMinWindStrength
Определения WorldData.c:660
float m_CloudEffectCooldownMax
Определения WorldData.c:672
float m_CloudEffectDistance
Определения WorldData.c:675
float m_GroundEffectFrequency
Определения WorldData.c:662
bool m_CloudEffectFromSurface
Определения WorldData.c:676
bool m_GroundEffectEndPoindTest
Определения WorldData.c:664
float m_CloudEffectDurationMin
Определения WorldData.c:673
const int BAD_WEATHER
Определения WorldData.c:558
bool m_CloudEffectEnable
Определения WorldData.c:669
class WorldData CLEAR_WEATHER
const int CLOUDY_WEATHER
Определения WorldData.c:557
Определения CatchYieldBank.c:4
static float GetSandstormFrequency()
Определения CfgGameplayHandler.c:533
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Определения 3_Game/DayZ/tools/Debug.c:183
Определения 3_Game/DayZ/tools/Debug.c:2
Определения EnMath.c:7
Определения ObjectTyped.c:2
proto native void SetSnowflakeScale(float scale)
Sets the overall scale of snowflakes during snowfall phenomenon. This value is not synchronized and s...
proto native float GetWindSpeed()
Returns actual wind speed in metre per second.
proto native float GetWindMaximumSpeed()
Returns maximal wind speed in metre per second.
proto native Overcast GetOvercast()
Returns an overcast phenomenon object.
Определения Weather.c:168
proto native float GetActual()
float GetAgentSpawnChance(eAgents agent)
Определения WorldData.c:264
float GetApproxSunriseTime(float monthday)
Определения WorldData.c:99
void Init()
Определения WorldData.c:66
float ComputeSnowflakeScale(Weather weather)
Returns the desired snowflake scale based on weather simulation state.
Определения WorldData.c:205
float SUDDENCHANGE_TIME_MULTIPLIER
Определения WorldData.c:14
float m_Timer
Определения WorldData.c:22
float GetTemperature(Object object, EEnvironmentTemperatureComponent properties=EEnvironmentTemperatureComponent.BASE)
Return actual temperature of environment based on provided parameters.
Определения WorldData.c:312
float GetSunEffectOnTemperature(int m_DayTime)
Определения WorldData.c:355
void StartSandstorm(float timeToGather)
Helper function that starts the sandstorm while setting an internal flag that allows WorldData identi...
Определения WorldData.c:477
void UpdateBaseEnvTemperature(float timeslice)
Определения WorldData.c:175
void CalculateWind(int newWeather, bool suddenChange, out float magnitude, out float direction)
float SUDDENCHANGE_LENGTH_MULTIPLIER
Определения WorldData.c:15
ref WorldDataLiquidSettings m_LiquidSettings
Определения WorldData.c:37
int m_ShortestDayOfYear
Определения WorldData.c:30
bool m_Pollution
Определения WorldData.c:34
float GetNightTemperature()
Определения WorldData.c:543
float WIND_DIRECTION_TIME_MULTIPLIER
Определения WorldData.c:17
CatchYieldBank GetCatchYieldBank()
Определения WorldData.c:463
void CreateYieldBank()
Определения WorldData.c:416
void OnSandstormStart(bool isStartedByWeather)
bool m_IsSandstorm
Определения WorldData.c:46
float GetSunsetTime(float dayNumber)
Returns sunset time for passed day.
Определения WorldData.c:393
float m_Sunset_Jan
Определения WorldData.c:26
sealed void WeatherSandstormStart(bool continuedSession)
Event propagated from SandstormController::OnStart raised when the sandstorm starts and begins fading...
Определения WorldData.c:495
float GetBaseEnvTemperature()
Определения WorldData.c:217
float m_WorldWindCoef
Определения WorldData.c:45
float m_Sunrise_Jan
Определения WorldData.c:25
void SetupDustEffects()
Определения WorldData.c:458
float GetBaseEnvTemperatureAtObject(notnull Object object)
Определения WorldData.c:222
float GetDayTemperature()
Определения WorldData.c:538
float m_DayTemperature
Определения WorldData.c:535
int m_ClearWeatherChance
Определения WorldData.c:43
float GetBaseEnvTemperatureAtPosition(vector pos)
Определения WorldData.c:227
int GetPollution()
Определения WorldData.c:292
bool WeatherOnBeforeChange(EWeatherPhenomenon type, float actual, float change, float time)
Определения WorldData.c:251
ref WorldDataWeatherSettings m_WeatherDefaultSettings
Определения WorldData.c:36
float GetApproxSunsetTime(float monthday)
Определения WorldData.c:106
void WorldData()
Определения WorldData.c:58
array< vector > GetArtyFiringPos()
Определения WorldData.c:258
int m_LongestDayOfYear
Определения WorldData.c:31
ref array< vector > m_FiringPos
Определения WorldData.c:33
float m_WaterContactTemperatureModifier
Определения WorldData.c:12
float m_TemperaturePerHeightReductionModifier
directly accesible (defined/overriden in Init())
Определения WorldData.c:8
float m_CloudsTemperatureEffectModifier
amount of °C reduced for each 100 meteres of height above water level
Определения WorldData.c:9
TStringArray GetDefaultPRAPaths()
Определения WorldData.c:468
void UpdateWeatherEffects(Weather weather, float timeslice)
Updates local weather effects.
Определения WorldData.c:195
ref CatchYieldBank m_YieldBank
Определения WorldData.c:35
int m_Chance
Определения WorldData.c:54
ref map< int, float > m_TemperatureUnderSunModifier
Определения WorldData.c:11
float GetBaseEnvTemperatureExact(int month, int day, int hour, int minute)
Определения WorldData.c:234
int DayOfYear(int day, int month)
Returns number of day in current year (eg. 1 - 365)
Определения WorldData.c:365
float m_TemperatureInsideBuildingsModifier
how many % of environment temperature can be lowered by clouds
Определения WorldData.c:10
int m_LastWeather
Определения WorldData.c:56
float GetWindCoef()
Определения WorldData.c:297
float GetSunriseTime(float dayNumber)
Returns sunrise time for passed day.
Определения WorldData.c:382
float m_MaxTemps[12]
Определения WorldData.c:23
void CalculateVolFog(float lerpValue, float windMagnitude, float changeTime)
DustEffectsSettings GetDustEffectsSettings()
Определения WorldData.c:548
const float COLD_AREA_TOOL_DMG_MODIF_DEF
Определения WorldData.c:5
const float SPAWN_CHANCE_CHOLERA_DEF
Определения WorldData.c:4
void OnSandstormStop(bool calledFromWeather)
int m_SameWeatherCnt
Определения WorldData.c:52
void BaseTempDebug(int month, int day)
Определения WorldData.c:279
ref DustEffectsSettings m_DustEffectsSettings
Определения WorldData.c:38
float m_MinTemps[12]
Определения WorldData.c:24
bool m_IsSandstormStartedByWeather
Определения WorldData.c:47
ref TStringArray m_DefaultPlayerRestrictedAreas
Определения WorldData.c:39
float GetUniversalTemperatureSourceCapModifier()
Определения WorldData.c:302
int m_BadWeatherChance
weather related
Определения WorldData.c:42
int m_StepValue
Определения WorldData.c:53
float GetColdAreaToolDamageModifier()
Определения WorldData.c:273
float WIND_MAGNITUDE_TIME_MULTIPLIER
Определения WorldData.c:16
bool m_IsSuddenChange
Определения WorldData.c:44
float m_EnvironmentTemperature
Определения WorldData.c:20
float m_NightTemperature
Определения WorldData.c:536
void SetupWeatherSettings()
Определения WorldData.c:427
bool m_EnTempUpdated
Определения WorldData.c:21
float m_UniversalTemperatureSourceCapModifier
Определения WorldData.c:49
float GetLiquidTypeEnviroTemperature(int liquidType)
Определения WorldData.c:239
sealed void WeatherSandstormStop(bool calledFromWeather)
Event propagated from SandstormController::OnStop raised when the sandstorm fades out and terminates.
Определения WorldData.c:516
void SetupLiquidTemperatures()
Определения WorldData.c:445
Weather m_Weather
Определения WorldData.c:19
float GetTemperatureComponentValue(float temperatureIn, EEnvironmentTemperatureComponent properties=0)
Return value of queried EEnvironmentTemperatureComponent which can be used in future calculation(s)
Определения WorldData.c:337
int GetDaytime()
Определения WorldData.c:114
void InitYieldBank()
override this to properly register world-specific yields
Определения WorldData.c:422
float CalcBaseEnvironmentTemperature(float monthday, float daytime)
Определения WorldData.c:133
float m_Sunset_Jul
Определения WorldData.c:28
int m_ChoosenWeather
Определения WorldData.c:55
float m_Sunrise_Jul
Определения WorldData.c:27
float WindEffectTemperatureValue(float temperatureInput)
Определения WorldData.c:402
static int NIGHT
Определения WorldData.c:611
static int DAWN
Определения WorldData.c:614
static int DUSK
Определения WorldData.c:613
static int EVENING
Определения WorldData.c:618
static string ToString(int value)
Определения WorldData.c:620
static int AFTERNOON
Определения WorldData.c:617
static int ANY
Определения WorldData.c:610
static int MORNING
Определения WorldData.c:615
static int DAY
Определения WorldData.c:612
static bool IsInRange(int current, TIntArray range)
Определения WorldData.c:645
static int NOON
Определения WorldData.c:616
Определения WorldData.c:609
int m_CalmAfterStormTimeMax
Определения WorldData.c:592
float m_OvercastEffectMinLimitOnSunExposure
Определения WorldData.c:599
int m_FoggyMorningHeigthBiasLowLimit
Определения WorldData.c:588
float m_OvercastEffectMaxLimitOnSunExposure
Определения WorldData.c:600
int m_OvercastMinLength
Определения WorldData.c:565
float m_ThundersnowThreshold
Определения WorldData.c:575
int m_RainTimeMin
Определения WorldData.c:569
int m_RainTimeMax
Определения WorldData.c:570
int m_RainLengthMax
Определения WorldData.c:572
int m_CalmAfterStormTimeMin
Определения WorldData.c:591
int m_SnowfallLengthMax
Определения WorldData.c:581
int m_DefaultHeigthBias
Определения WorldData.c:589
float m_SandstormMaxWindDirection
Определения WorldData.c:595
float m_SnowfallThreshold
Определения WorldData.c:577
int m_OvercastMaxLength
Определения WorldData.c:566
int m_RainLengthMin
Определения WorldData.c:571
int m_OvercastMaxTime
Определения WorldData.c:564
float m_StormThreshold
Определения WorldData.c:574
int m_SnowfallTimeMax
Определения WorldData.c:579
int m_BadWeatherSuddenChance
Определения WorldData.c:586
float m_RainThreshold
Определения WorldData.c:568
int m_OvercastMinTime
Определения WorldData.c:563
int m_SnowfallLengthMin
Определения WorldData.c:580
int m_GlobalSuddenChance
Определения WorldData.c:583
float m_SandstormMinWindMagnitude
Определения WorldData.c:596
int m_SnowfallTimeMin
Определения WorldData.c:578
float m_SandstormMinWindDirection
Определения WorldData.c:594
int m_ClearWeatherChance
Определения WorldData.c:584
int m_BadWeatherChance
Определения WorldData.c:585
float m_sandstormFrequency
Определения WorldData.c:597
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения Transport.c:70
Определения EnConvert.c:119
const int INDEX_NOT_FOUND
Определения gameplay.c:13
proto void Print(void var)
Prints content of variable to console/log.
enum ShapeType ErrorEx
array< int > TIntArray
Определения EnScript.c:733
class array< Class T > TStringArray
const float ENVIRO_WIND_CHILL_LIMIT
Affects the slope of calculation.
Определения 3_Game/DayZ/constants.c:843
const float ENVIRO_FOG_TEMP_EFFECT
how many % of ENVIRO_SUN_INCREMENT is reduced by fog
Определения 3_Game/DayZ/constants.c:767
const float ENVIRO_WIND_EFFECT_SLOPE
time modifier, how much longer it takes to dig up worms while in a cold area
Определения 3_Game/DayZ/constants.c:842
const int LIQUID_STILLWATER
Определения 3_Game/DayZ/constants.c:589
const int LIQUID_FRESHWATER
Определения 3_Game/DayZ/constants.c:588
const int LIQUID_CLEANWATER
Определения 3_Game/DayZ/constants.c:591
const int LIQUID_WATER
Определения 3_Game/DayZ/constants.c:578
const int LIQUID_RIVERWATER
Определения 3_Game/DayZ/constants.c:579
const int LIQUID_SALTWATER
Определения 3_Game/DayZ/constants.c:587
const int LIQUID_SNOW
Определения 3_Game/DayZ/constants.c:586
static const float PI2
Определения EnMath.c:13
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Floor(float f)
Returns floor of value.
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
static proto float Cos(float angle)
Returns cosinus of angle in radians.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto float AbsFloat(float f)
Returns absolute value.
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473