sreVprefixz\ace\addons\weatherMikeroDePbo.dll.6.44versioncba6f72c$PBOPREFIX$.backup“Тў[ACE_Settings.hpp=ЗWc[=CfgEventhandlers.hppPЗWc[PCfgVehicles.hppVЗWc[VCfgWorlds.hppЫЗWc[Ыconfig.binД“Тў[Дfunctions\fnc_calculateAirDensity.sqf•ып[•functions\fnc_calculateBarometricPressure.sqf ып[ functions\fnc_calculateDensityAltitude.sqfНып[Нfunctions\fnc_calculateDewPoint.sqf‚ып[‚functions\fnc_calculateHeatIndex.sqf|ып[|functions\fnc_calculateRoughnessLength.sqfд=ђ[дfunctions\fnc_calculateSpeedOfSound.sqflып[lfunctions\fnc_calculateTemperatureAtHeight.sqfzып[zfunctions\fnc_calculateWetBulb.sqfўып[ўfunctions\fnc_calculateWindChill.sqfcып[cfunctions\fnc_calculateWindSpeed.sqfg ып[g functions\fnc_displayWindInfo.sqffып[ffunctions\fnc_getMapData.sqf;ып[;functions\fnc_initModuleSettings.sqf~ып[~functions\fnc_initWind.sqfлып[лfunctions\fnc_updateHumidity.sqfып[functions\fnc_updateTemperature.sqfќып[ќfunctions\fnc_updateWeather.sqfфып[фfunctions\fnc_updateWind.sqfЎып[Ўfunctions\script_component.hpp5ЗWc[5init3DEN.sqf9ЗWc[9README.mdтЗWc[тRscTitles.hppќЗWc[ќscript_component.hpp0{CЧ[0stringtable.xmlы#=ђ[ы#texHeaders.binЉ“Тў[ЉUI\Icon_Module_Wind_ca.paaљЗWc[љUI\wind_arrow_ca.paa4ЗWc[4UI\wind_dot_ca.paaVЗWc[VUI\wind_noneCircle_ca.paaVЗWc[VXEH_postInit.sqfmЗWc[mXEH_postServerInit.sqfœЗWc[œXEH_preInit.sqfўЗWc[ўXEH_PREP.hppќЗWc[ќXEH_preStart.sqf<ЗWc[<z\ace\addons\weatherclass ACE_Settings { class GVAR(enabled) { category = CSTRING(Module_DisplayName); displayName = CSTRING(enabled_DisplayName); description = CSTRING(enabled_Description); typeName = "BOOL"; value = 1; }; class GVAR(updateInterval) { category = CSTRING(Module_DisplayName); displayName = CSTRING(updateInterval_DisplayName); description = CSTRING(updateInterval_Description); typeName = "SCALAR"; value = 60; sliderSettings[] = {0, 300, 0, 0}; }; class GVAR(windSimulation) { category = CSTRING(Module_DisplayName); displayName = CSTRING(windSimulation_DisplayName); description = CSTRING(windSimulation_Description); typeName = "BOOL"; value = 1; }; }; class Extended_PreStart_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); }; }; class Extended_PostInit_EventHandlers { class ADDON { serverInit = QUOTE(call COMPILE_FILE(XEH_PostServerInit)); init = QUOTE(call COMPILE_FILE(XEH_postInit)); }; }; class Extended_DisplayLoad_EventHandlers { class Display3DEN { ADDON = QUOTE(call COMPILE_FILE(init3DEN)); }; }; class CfgVehicles { class ACE_Module; class GVAR(ModuleSettings): ACE_Module { scope = 1; displayName = CSTRING(Module_DisplayName); icon = QPATHTOF(UI\Icon_Module_Wind_ca.paa); category = "ACE"; function = QUOTE(DFUNC(initModuleSettings)); functionPriority = 1; isGlobal = 1; isSingular = 1; isTriggerActivated = 0; author = ECSTRING(common,ACETeam); class Arguments { class enabled { displayName = CSTRING(enabled_DisplayName); description = CSTRING(enabled_Description); typeName = "BOOL"; defaultValue = 1; }; class updateInterval { displayName = CSTRING(updateInterval_DisplayName); description = CSTRING(updateInterval_Description); typeName = "NUMBER"; defaultValue = 60; }; class windSimulation { displayName = CSTRING(windSimulation_DisplayName); description = CSTRING(windSimulation_Description); typeName = "BOOL"; defaultValue = 1; }; }; class ModuleDescription { description = CSTRING(Module_Description); }; }; }; class CfgWorlds { class CAWorld; class Stratis: CAWorld { // Source: http://www.iten-online.ch/klima/europa/griechenland/limnos.htm ACE_TempDay[] = {10, 10, 12, 16, 21, 26, 29, 28, 25, 20, 15, 11}; ACE_TempNight[] = {4, 4, 6, 8, 13, 17, 20, 20, 16, 12, 8, 6}; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Limnos,Greece ACE_Humidity[] = {78, 77, 78, 74, 71, 60, 59, 61, 65, 72, 79, 80}; // Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece ACE_WindSpeedMax[] = {{8.8, 5.5}, {8.8, 5}, {8.6, 4.8}, {7.6, 3.4}, {7.0, 3.0}, {7.1, 3.0}, {7.5, 3.1}, {8.0, 3.2}, {7.6, 3.5}, {7.8, 4.6}, {7.9, 5.0}, {8.2, 5.5}}; ACE_WindSpeedMean[] = {4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0}; ACE_WindSpeedMin[] = {{0.2, 5.0}, {0.1, 5.0}, {0.2, 4.3}, {0.0, 3.0}, {0.0, 2.1}, {0.0, 2.0}, {0.1, 3.1}, {0.3, 3.1}, {0.0, 3.6}, {0.0, 4.2}, {0.1, 5.0}, {0.2, 5.5}}; // using the "Fraction of Time Spent with Various Wind Directions in (month)" graph ACE_WindDirectionProbabilities[] = {{0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02}, // January {0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02}, // February {0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03}, // March {0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04}, // April {0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05}, // May {0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08}, // June {0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09}, // July {0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08}, // August {0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05}, // September {0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03}, // October {0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02}, // November {0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02}};// December // N , NE , E , SE , S , SW , W , NW }; class Altis: CAWorld { // Source: http://www.iten-online.ch/klima/europa/griechenland/limnos.htm ACE_TempDay[] = {10, 10, 12, 16, 21, 26, 29, 28, 25, 20, 15, 11}; ACE_TempNight[] = {4, 4, 6, 8, 13, 17, 20, 20, 16, 12, 8, 6}; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Limnos,Greece ACE_Humidity[] = {78, 77, 78, 74, 71, 60, 59, 61, 65, 72, 79, 80}; // Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece ACE_WindSpeedMax[] = {{8.8, 5.5}, {8.8, 5}, {8.6, 4.8}, {7.6, 3.4}, {7.0, 3.0}, {7.1, 3.0}, {7.5, 3.1}, {8.0, 3.2}, {7.6, 3.5}, {7.8, 4.6}, {7.9, 5.0}, {8.2, 5.5}}; ACE_WindSpeedMean[] = {4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0}; ACE_WindSpeedMin[] = {{0.2, 5.0}, {0.1, 5.0}, {0.2, 4.3}, {0.0, 3.0}, {0.0, 2.1}, {0.0, 2.0}, {0.1, 3.1}, {0.3, 3.1}, {0.0, 3.6}, {0.0, 4.2}, {0.1, 5.0}, {0.2, 5.5}}; // using the "Fraction of Time Spent with Various Wind Directions in (month)" graph ACE_WindDirectionProbabilities[] = {{0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02}, // January {0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02}, // February {0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03}, // March {0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04}, // April {0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05}, // May {0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08}, // June {0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09}, // July {0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08}, // August {0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05}, // September {0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03}, // October {0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02}, // November {0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02}};// December // N , NE , E , SE , S , SW , W , NW }; class Tanoa: CAWorld { // Source: http://www.iten-online.ch/klima/australien/fidschi/suva.htm ACE_TempDay[] = {31, 31, 31, 30, 28, 28, 27, 27, 28, 20, 29, 30}; ACE_TempNight[] = {24, 24, 24, 23, 22, 21, 20, 21, 21, 22, 23, 23}; // Source: https://weather-and-climate.com/average-monthly-Humidity-perc,suva,Fiji ACE_Humidity[] = {81, 83, 85, 84, 80, 80, 78, 76, 77, 78, 79, 80}; // https://weatherspark.com/averages/32711/Suva-Central-Division-Fiji ACE_WindSpeedMax[] = {{6.9, 4.9}, {6.5, 4.8}, {6.4, 4.5}, {6.5, 4.3}, {6.4, 4.2}, {6.6, 4.5}, {6.5, 4.8}, {7.0, 4.9}, {7.3, 5.1}, {7.3, 5.1}, {7.2, 5.2}, {6.8, 5.1}}; ACE_WindSpeedMean[] = {2.2, 2, 1.9, 1.6, 1.9, 2, 2.1, 2.3, 2.7, 3, 2.7, 2.4}; ACE_WindSpeedMin[] = {{0.0, 0.1}, {0.1, 0.1}, {0.0, 0.0}, {0.0, 0.4}, {0.0, 0.4}, {0.0, 0.2}, {0.0, 0.5}, {0.0, 0.5}, {0.1, 1.0}, {0.2, 1.3}, {0.0, 0.5}, {0.0, 0.5}}; // using the "Fraction of Time Spent with Various Wind Directions in (month)" graph ACE_WindDirectionProbabilities[] = {{0.05, 0.08, 0.18, 0.13, 0.05, 0.01, 0.02, 0.05}, // January {0.06, 0.08, 0.14, 0.11, 0.05, 0.01, 0.02, 0.06}, // February {0.06, 0.08, 0.12, 0.09, 0.04, 0.01, 0.03, 0.06}, // March {0.05, 0.08, 0.13, 0.13, 0.05, 0.01, 0.02, 0.06}, // April {0.02, 0.06, 0.15, 0.16, 0.06, 0.01, 0.01, 0.03}, // May {0.02, 0.07, 0.17, 0.17, 0.06, 0.01, 0.01, 0.03}, // June {0.02, 0.07, 0.14, 0.18, 0.08, 0.02, 0.01, 0.02}, // July {0.02, 0.05, 0.18, 0.18, 0.09, 0.03, 0.01, 0.02}, // August {0.01, 0.04, 0.21, 0.22, 0.08, 0.01, 0.01, 0.01}, // September {0.01, 0.06, 0.24, 0.24, 0.07, 0.01, 0.01, 0.02}, // October {0.02, 0.07, 0.25, 0.20, 0.04, 0.01, 0.01, 0.02}, // November {0.03, 0.08, 0.22, 0.16, 0.05, 0.01, 0.01, 0.03}};// December // N , NE , E , SE , S , SW , W , NW }; }; raPА CfgPatches§Extended_PreStart_EventHandlers*Extended_PreInit_EventHandlersžExtended_PostInit_EventHandlersExtended_DisplayLoad_EventHandlersшCfgWorlds_RscTitleshCfgVehiclesACE_SettingsщАace_weather* nameACE3 - WeatherunitsweaponsrequiredVersion…ы?requiredAddonsace_commonauthor$STR_ace_common_ACETeamauthorsq1184RockoesteldunedainRuthbergurl$STR_ace_main_URLversion3.12.4.39versionStr3.12.4.39versionAr '*ace_weatherAžinitcall compile preProcessFileLineNumbers '\z\ace\addons\weather\XEH_preStart.sqf'žace_weatherЕinitcall compile preProcessFileLineNumbers '\z\ace\addons\weather\XEH_preInit.sqf'ace_weather(шserverInitcall compile preProcessFileLineNumbers '\z\ace\addons\weather\XEH_PostServerInit.sqf'initcall compile preProcessFileLineNumbers '\z\ace\addons\weather\XEH_postInit.sqf'шDisplay3DENџ_ace_weathercall compile preProcessFileLineNumbers '\z\ace\addons\weather\init3DEN.sqf'_CAWorldStratis‘Altis. TanoaЫ hCAWorldACE_TempDay     ACE_TempNight   ACE_Humidity NMNJG<;=AHOPACE_WindSpeedMax ЭЬ AА@ЭЬ Aš™ Aš™™@33ѓ@š™Y@р@@@33у@@@№@ffF@AЭЬL@33ѓ@`@š™љ@33“@ЭЬќ@ @33AА@ACE_WindSpeedMean š™™@ЭЬœ@33“@33ƒ@`@`@š™‰@ЭЬŒ@33ƒ@@@ @ACE_WindSpeedMin ЭЬL> @ЭЬЬ= @ЭЬL>š™‰@@@ff@@ЭЬЬ=ffF@š™™>ffF@fff@ff†@ЭЬЬ= @ЭЬL>А@ACE_WindDirectionProbabilities Тu= зЃ>ЭЬL= з#=š™>Тu= зЃ< зЃ< зЃ= зЃ> з#= з#=ьQ8>Тu= зЃ< зЃ<ьQИ=š™™> з#= з#=ЭЬL>Тu= зЃ<Тѕ<ЭЬЬ=€>Тѕ< з#=ЎGa>Тu= зЃ< з#=ьQ8>€>Тѕ< з#=ьQ8> з#= з#<ЭЬL=€>€>Тѕ<Тѕ<š™>Тѕ< зЃ= зЃ>š™™> зЃ< зЃ<ЭЬЬ= з#<ьQИ=)\>33Г> зЃ< з#< зЃ= з#< зЃ=ЭЬL>ЄpН>Тѕ< з#<ЎGс= з#< з#<ЭЬL=ЭЬЬ=ЎЧ> з#= зЃ<š™> зЃ< з#<Тѕ< зЃ=\Т>Тu= з#=\B>Тѕ< зЃ< зЃ<Тu=ЄpН>ЭЬL=Тѕ<ьQ8> з#= зЃ< зЃ<. CAWorldACE_TempDay     ACE_TempNight   ACE_Humidity NMNJG<;=AHOPACE_WindSpeedMax ЭЬ AА@ЭЬ Aš™ Aš™™@33ѓ@š™Y@р@@@33у@@@№@ffF@AЭЬL@33ѓ@`@š™љ@33“@ЭЬќ@ @33AА@ACE_WindSpeedMean š™™@ЭЬœ@33“@33ƒ@`@`@š™‰@ЭЬŒ@33ƒ@@@ @ACE_WindSpeedMin ЭЬL> @ЭЬЬ= @ЭЬL>š™‰@@@ff@@ЭЬЬ=ffF@š™™>ffF@fff@ff†@ЭЬЬ= @ЭЬL>А@ACE_WindDirectionProbabilities Тu= зЃ>ЭЬL= з#=š™>Тu= зЃ< зЃ< зЃ= зЃ> з#= з#=ьQ8>Тu= зЃ< зЃ<ьQИ=š™™> з#= з#=ЭЬL>Тu= зЃ<Тѕ<ЭЬЬ=€>Тѕ< з#=ЎGa>Тu= зЃ< з#=ьQ8>€>Тѕ< з#=ьQ8> з#= з#<ЭЬL=€>€>Тѕ<Тѕ<š™>Тѕ< зЃ= зЃ>š™™> зЃ< зЃ<ЭЬЬ= з#<ьQИ=)\>33Г> зЃ< з#< зЃ= з#< зЃ=ЭЬL>ЄpН>Тѕ< з#<ЎGс= з#< з#<ЭЬL=ЭЬЬ=ЎЧ> з#= зЃ<š™> зЃ< з#<Тѕ< зЃ=\Т>Тu= з#=\B>Тѕ< зЃ< зЃ<Тu=ЄpН>ЭЬL=Тѕ<ьQ8> з#= зЃ< зЃ<Ы CAWorldACE_TempDay ACE_TempNight ACE_Humidity QSUTPPNLMNOPACE_WindSpeedMax ЭЬм@ЭЬœ@а@š™™@ЭЬЬ@@а@š™‰@ЭЬЬ@ff†@33г@@а@š™™@р@ЭЬœ@š™щ@33Ѓ@š™щ@33Ѓ@ffц@ffІ@š™й@33Ѓ@ACE_WindSpeedMean ЭЬ @33ѓ?ЭЬЬ?33ѓ?ff@33@ЭЬ,@ЭЬ,@š™@ACE_WindSpeedMin ЭЬЬ=ЭЬЬ=ЭЬЬ=ЭЬЬ>ЭЬЬ>ЭЬL>??ЭЬЬ=€?ЭЬL>ffІ???ACE_WindDirectionProbabilities ЭЬL= зЃ=ьQ8>И>ЭЬL= з#< зЃ<ЭЬL=Тu= зЃ=)\>ЎGс=ЭЬL= з#< зЃ<Тu=Тu= зЃ=Тѕ=ьQИ= з#= з#<Тѕ<Тu=ЭЬL= зЃ=И>И>ЭЬL= з#< зЃ<Тu= зЃ<Тu=š™> з#>Тu= з#< з#<Тѕ< зЃ<)\={.>{.>Тu= з#< з#<Тѕ< зЃ<)\=)\>ьQ8> зЃ= зЃ< з#< зЃ< зЃ<ЭЬL=ьQ8>ьQ8>ьQИ=Тѕ< з#< зЃ< з#< з#== W>ЎGa> зЃ= з#< з#< з#< з#<Тu=Тu>Тu>)\= з#< з#< зЃ< зЃ<)\=€>ЭЬL> з#= з#< з#< зЃ<Тѕ< зЃ=ЎGa> з#>ЭЬL= з#< з#<Тѕh0.2*4/3size–C =sizeEx/н<textACE_Moduleace_weather_ModuleSettingsQщACE_Module scopedisplayName$STR_ace_weather_Module_DisplayNameicon\z\ace\addons\weather\UI\Icon_Module_Wind_ca.paacategoryACEfunctionace_weather_fnc_initModuleSettingsfunctionPriorityisGlobalisSingularisTriggerActivatedauthor$STR_ace_common_ACETeamArgumentsЋModuleDescriptionБщenabledцupdateIntervaluwindSimulationБdisplayName$STR_ace_weather_enabled_DisplayNamedescription$STR_ace_weather_enabled_DescriptiontypeNameBOOLdefaultValueudisplayName$STR_ace_weather_updateInterval_DisplayNamedescription$STR_ace_weather_updateInterval_DescriptiontypeNameNUMBERdefaultValue<displayName$STR_ace_weather_windSimulation_DisplayNamedescription$STR_ace_weather_windSimulation_DescriptiontypeNameBOOLdefaultValueБdescription$STR_ace_weather_Module_Descriptionщace_weather_enabledHace_weather_updateIntervalџace_weather_windSimulationыАcategory$STR_ace_weather_Module_DisplayNamedisplayName$STR_ace_weather_enabled_DisplayNamedescription$STR_ace_weather_enabled_DescriptiontypeNameBOOLvalueџcategory$STR_ace_weather_Module_DisplayNamedisplayName$STR_ace_weather_updateInterval_DisplayNamedescription$STR_ace_weather_updateInterval_DescriptiontypeNameSCALARvalue<sliderSettings,ыcategory$STR_ace_weather_Module_DisplayNamedisplayName$STR_ace_weather_windSimulation_DisplayNamedescription$STR_ace_weather_windSimulation_DescriptiontypeNameBOOLvalueА#include "script_component.hpp" /* * Author: Ruthberg * Calculates the air density * * Arguments: * 0: temperature - degrees celsius * 1: pressure - hPa * 2: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * density of air - kg * m^(-3) * * Example: * [0, 1020, 0.5] call ace_weather_fnc_calculateAirDensity * * Public: No */ params ["_temperature", "_pressure", "_relativeHumidity"]; _pressure = _pressure * 100; // hPa to Pa if (_relativeHumidity > 0) then { // Saturation vapor pressure calculated according to: http://wahiduddin.net/calc/density_algorithms.htm // 610.78 gives pressure in Pa - https://en.wikipedia.org/wiki/Density_of_air private _pSat = 610.78 * 10 ^ ((7.5 * _temperature) / (_temperature + 237.3)); private _vaporPressure = _relativeHumidity * _pSat; private _partialPressure = _pressure - _vaporPressure; (_partialPressure * DRY_AIR_MOLAR_MASS + _vaporPressure * WATER_VAPOR_MOLAR_MASS) / (UNIVERSAL_GAS_CONSTANT * KELVIN(_temperature)) } else { _pressure / (SPECIFIC_GAS_CONSTANT_DRY_AIR * KELVIN(_temperature)) }; #include "script_component.hpp" /* * Author: Ruthberg * Calculates the barometric pressure based on altitude and weather * * Arguments: * altitude - meters * * Return Value: * barometric pressure - hPA * * Example: * 0 call ace_weather_fnc_calculateBarometricPressure * * Public: No */ ((1013.25 - 10 * GVAR(currentOvercast)) * (1 - (0.0065 * (EGVAR(common,mapAltitude) + _this)) / (KELVIN(GVAR(currentTemperature)) + 0.0065 * EGVAR(common,mapAltitude))) ^ 5.255754495); #include "script_component.hpp" /* * Author: Ruthberg * Calculates density altitude for a given air density * * Arguments: * density of air - kg * m^(-3) * * Return Value: * density altitude - m * * Example: * 1.225 call ace_weather_fnc_calculateDensityAltitude * * Public: No */ // Source: http://wahiduddin.net/calc/density_altitude.htm ((44.3308 - 42.2665 * _this ^ 0.2349692456) * 1000) #include "script_component.hpp" /* * Author: Ruthberg * Calculates dew point based on temperature and relative humidity * * Arguments: * 0: temperature - degrees celsius * 1: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * dew point * * Example: * [32, 0.4] call ace_weather_fnc_calculateDewPoint * * Public: No */ #define __b 17.67 #define __c 243.5 params ["_t", "_rh"]; if (_rh == 0) exitWith { CELSIUS(0) }; // Source: https://en.wikipedia.org/wiki/Dew_point private _gamma = ln(_rh) + (__b * _t) / (__c + _t); (__c * _gamma) / (__b - _gamma) #include "script_component.hpp" /* * Author: Ruthberg * Calculates heat index based on temperature and relative humidity * * Arguments: * 0: temperature - degrees celsius * 1: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * heat index * * Example: * [36, 0.75] call ace_weather_fnc_calculateHeatIndex * * Public: No */ #define __C1 0.363445176 #define __C2 0.988622465 #define __C3 4.777114035 #define __C4 -0.114037667 #define __C5 -0.000850208 #define __C6 -0.020716198 #define __C7 0.000687678 #define __C8 0.000274954 params ["_t", "_rh"]; // Source: https://en.wikipedia.org/wiki/Heat_index _t = TO_FAHRENHEIT(_t); _rh = _rh * 100; // relative humidity in % TO_CELSIUS(__C1 + __C2 * _t + __C3 * _rh + __C4 * _t * _rh + __C5 * _t^2 + __C6 * _rh^2 + __C7 * _t^2 * _rh + __C8 * _t * _rh^2) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the terrain roughness length at a given world position * * Arguments: * world position * * Return Value: * roughness length * * Example: * (getPosASL player) call ace_weather_fnc_calculateRoughnessLength * * Public: No */ // Source: http://es.ucsc.edu/~jnoble/wind/extrap/index.html #define ROUGHNESS_LENGTHS [0.0002, 0.0005, 0.0024, 0.03, 0.055, 0.1, 0.2, 0.4, 0.8, 1.6] private _windSource = _this vectorDiff ((vectorNormalized wind) vectorMultiply 25); private _nearBuildings = { // Filter lights - fixes high roughness on airports (#6602) str _x find "light" == -1 } count (_windSource nearObjects ["Building", 50]); private _isWater = surfaceIsWater _windSource; if (_nearBuildings == 0 && _isWater) exitWith { 0.0005 }; if (_nearBuildings >= 10) exitWith { 1.6 }; ROUGHNESS_LENGTHS select (2 + (_nearBuildings min 6)) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the speed of sound for a given temperature * * Arguments: * temperature - degrees celsius * * Return Value: * speed of sound - m/s * * Example: * 0 call ace_weather_fnc_calculateSpeedOfSound * * Public: No */ (331.3 * sqrt(1 + (_this / 273.15))) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the temperature based on altitude and weather * * Arguments: * height - meters * * Return Value: * temperature - degrees celsius * * Example: * 500 call ace_weather_fnc_calculateTemperatureAtHeight * * Public: No */ (GVAR(currentTemperature) - 0.0065 * _this) #include "script_component.hpp" /* * Author: Ruthberg * Calculates wet bulb based on temperature and relative humidity * * Arguments: * 0: temperature - degrees celsius * 1: pressure - hPa * 2: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * wet bulb * * Example: * [0, 1020, 0.5] call ace_weather_fnc_calculateWetBulb * * Public: No */ params ["_temperature", "_pressure", "_relativeHumidity"]; // Source: http://cosmoquest.org/forum/showthread.php?155366-Calculating-Wet-Bulb-Temperature-from-RH-amp-Dry-Bulb private _es = 6.112 * exp((17.67 * _temperature) / (_temperature + 243.5)); private _e = _es * _relativeHumidity; private _eDiff = _es - _e; private _eGuessPrev = _es; private _cTempDelta = 3.3145; private _twGuess = _temperature; for "_j" from 1 to 50 do { _twGuess = _twGuess - _cTempDelta; private _eguess = 6.112 * exp((17.67 * _twGuess) / (_twGuess + 243.5)); _eguess = _eguess - (_pressure * (_temperature - _twGuess) * 0.00066 * (1 + (0.00115 * _twGuess))); _eDiff = _eguess - _e; if (abs(_eDiff) <= 0.001) exitWith {}; _cTempDelta = _eDiff / ((_eguessprev - _eguess) / _cTempDelta); _eguessprev = _eguess; }; _twGuess #include "script_component.hpp" /* * Author: Ruthberg * Calculates wind chill based on temperature and wind speed * * Arguments: * 0: temperature - degrees celsius * 1: wind speed - m/s * * Return Value: * wind chill * * Example: * [0, 10] call ace_weather_fnc_calculateWindChill * * Public: No */ params ["_t", "_v"]; // Source: https://en.wikipedia.org/wiki/Wind_chill if (_t > 10) exitWith { _t }; if (_v < 1.39) exitWith { _t }; _v = _v * 3,6; // wind speed in km/h (13.12 + 0.6215 * _t - 11.37 * _v ^ 0.16 + 0.3965 * _t * _v ^ 0.16) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the true wind speed at a given world position * * Arguments: * 0: world position - posASL * 1: Account for wind gradient (used in advanced ballistics) * 2: Account for terrain * 3: Account for obstacles * * Return Value: * wind speed - m/s * * Example: * [eyePos ACE_player, true, true, true] call ace_weather_fnc_calculateWindSpeed; * * Public: No */ params ["_position", "_windGradientEnabled", "_terrainEffectEnabled", "_obstacleEffectEnabled"]; private _fnc_polar2vect = { params ["_mag","_dir","_elev"]; private _mag2D = _mag * cos(_elev); [_mag2D * sin(_dir), _mag2D * cos(_dir), _mag * sin(_elev)]; }; private _windSpeed = vectorMagnitude wind; private _windDir = (wind select 0) atan2 (wind select 1); private _windDirAdjusted = _windDir + 180; // Wind gradient if (_windGradientEnabled) then { if (_windSpeed > 0.05) then { private _height = (ASLToATL _position) select 2; if (_height > 0 && _height < 20) then { private _roughnessLength = _position call FUNC(calculateRoughnessLength); _windSpeed = _windSpeed * (0 max (ln(_height / _roughnessLength) / ln(20 / _roughnessLength))); }; }; }; // Terrain effect on wind if (_terrainEffectEnabled) then { if (_windSpeed > 0.05) then { private _newWindSpeed = 0; { private _windSource = [100, _windDirAdjusted, _x] call _fnc_polar2vect; if (!(terrainIntersectASL [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 9) * _windSpeed; }; _windSource = [100, _windDirAdjusted + _x, 0] call _fnc_polar2vect; if (!(terrainIntersectASL [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 9) * _windSpeed; }; _windSource = [100, _windDirAdjusted - _x, 0] call _fnc_polar2vect; if (!(terrainIntersectASL [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 9) * _windSpeed; }; nil } count [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; _windSpeed = _newWindSpeed; }; }; // Obstacle effect on wind if (_obstacleEffectEnabled) then { if (_windSpeed > 0.05) then { private _newWindSpeed = 0; { private _windSource = [20, _windDirAdjusted, _x] call _fnc_polar2vect; if (!(lineIntersects [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 2) * _windSpeed; }; _windSource = [20, _windDirAdjusted + _x, 0] call _fnc_polar2vect; if (!(lineIntersects [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 2) * _windSpeed; }; _windSource = [20, _windDirAdjusted - _x, 0] call _fnc_polar2vect; if (!(lineIntersects [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 2) * _windSpeed; }; nil } count [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]; _windSpeed = _newWindSpeed; }; }; _windSpeed = 0 max _windSpeed; _windSpeed #include "script_component.hpp" /* * Author: Ruthberg * Displays a wind info (colored arrow) in the top left corner of the screen * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_displayWindInfo * * Public: No */ #define __dsp (uiNamespace getVariable "RscWindIntuitive") #define __ctrl (__dsp displayCtrl 132948) if (GVAR(WindInfo)) exitWith { GVAR(WindInfo) = false; (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN"]; true }; EGVAR(advanced_ballistics,Protractor) = false; 1 cutText ["", "PLAIN"]; GVAR(WindInfo) = true; TRACE_1("Starting Wind Info PFEH", GVAR(WindInfo)); [{ disableSerialization; params ["", "_pfID"]; if ((!GVAR(WindInfo)) || {!([ACE_player, ACE_player, []] call EFUNC(common,canInteractWith))}) exitWith { TRACE_1("Ending Wind Info PFEH", GVAR(WindInfo)); GVAR(WindInfo) = false; (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN"]; [_pfID] call CBA_fnc_removePerFrameHandler; }; //Keeps the display open: (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutRsc ["RscWindIntuitive", "PLAIN", 1, false]; private _windSpeed = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { // With wind gradient [eyePos ACE_player, true, true, true] call FUNC(calculateWindSpeed); } else { // Without wind gradient [eyePos ACE_player, false, true, true] call FUNC(calculateWindSpeed); }; private _playerDir = (ACE_player call CBA_fnc_headDir) select 0; private _windDir = (wind select 0) atan2 (wind select 1); _windDir = 30 * (round(((_windDir - _playerDir + 360) % 360) / 30)); // Color Codes from https://en.wikipedia.org/wiki/Beaufort_scale#Modern_scale private _beaufortNumber = 0; private _windColor = [1, 1, 1, 1]; if (_windSpeed > 0.3) then { _windColor = [0.796, 1, 1, 1]; _beaufortNumber = 1; }; if (_windSpeed > 1.5) then { _windColor = [0.596, 0.996, 0.796, 1]; _beaufortNumber = 2; }; if (_windSpeed > 3.3) then { _windColor = [0.596, 0.996, 0.596, 1]; _beaufortNumber = 3; }; if (_windSpeed > 5.4) then { _windColor = [0.6, 0.996, 0.4, 1]; _beaufortNumber = 4; }; if (_windSpeed > 7.9) then { _windColor = [0.6, 0.996, 0.047, 1]; _beaufortNumber = 5; }; if (_windSpeed > 10.7) then { _windColor = [0.8, 0.996, 0.059, 1]; _beaufortNumber = 6; }; if (_windSpeed > 13.8) then { _windColor = [1, 0.996, 0.067, 1]; _beaufortNumber = 7; }; if (_windSpeed > 17.1) then { _windColor = [1, 0.796, 0.051, 1]; _beaufortNumber = 8; }; if (_windSpeed > 20.7) then { _windColor = [1, 0.596, 0.039, 1]; _beaufortNumber = 9; }; if (_windSpeed > 24.4) then { _windColor = [1, 0.404, 0.031, 1]; _beaufortNumber = 10; }; if (_windSpeed > 28.4) then { _windColor = [1, 0.22, 0.027, 1]; _beaufortNumber = 11; }; if (_windSpeed > 32.6) then { _windColor = [1, 0.078, 0.027, 1]; _beaufortNumber = 12; }; TRACE_3("update display",_beaufortNumber,_windDir,_windSpeed); __ctrl ctrlSetTextColor _windColor; if (_beaufortNumber > 0) then { __ctrl ctrlSetText QPATHTOF(UI\wind_arrow_ca.paa); __ctrl ctrlSetAngle [_windDir, 0.5, 0.5]; } else { __ctrl ctrlSetText QPATHTOF(UI\wind_noneCircle_ca.paa); }; __ctrl ctrlCommit 0; //Update the beaufort balls: (ctrlPosition __ctrl) params ["_ctrlX", "_ctrlY", "_ctrlWidth", "_ctrlHeight"]; private _centerX = _ctrlX + _ctrlWidth / 2; private _centerY = _ctrlY + _ctrlHeight / 2; private _ballHeight = _ctrlHeight / 17; private _ballWidth = _ballHeight * 3/4; for "_index" from 0 to (_beaufortNumber - 1) do { private _ball = __dsp ctrlCreate ["RscPicture", _index]; _ball ctrlSetText QPATHTOF(UI\wind_dot_ca.paa); _ball ctrlSetTextColor [1,1,1,1]; private _ballCenterX = _centerX - (_ballWidth / 2) + ((sin _windDir) * 0.013333) * (_index - 4.9) + ((cos _windDir) * 0.0125); private _ballCenterY = _centerY - (_ballHeight / 2) - ((1 * cos _windDir) * 4/3*0.013333) * (_index - 4.9) + ((sin _windDir) * 0.0125); _ball ctrlSetPosition [_ballCenterX, _ballCenterY, _ballWidth, _ballHeight]; _ball ctrlCommit 0; }; }, 0.5, []] call CBA_fnc_addPerFrameHandler; true #include "script_component.hpp" /* * Author: Ruthberg, esteldunedain * Get the weather data for the current map * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_getMapData * * Public: No */ private _worldName = toLower worldName; TRACE_1("getting map data",_worldName); // Set default values // Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece GVAR(WindSpeedMax) = [[8.8, 5.5], [8.8, 5], [8.6, 4.8], [7.6, 3.4], [7.0, 3.0], [7.1, 3.0], [7.5, 3.1], [8.0, 3.2], [7.6, 3.5], [7.8, 4.6], [7.9, 5.0], [8.2, 5.5]]; GVAR(WindSpeedMean) = [4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0]; GVAR(WindSpeedMin) = [[0.2, 5.0], [0.1, 5.0], [0.2, 4.3], [0.0, 3.0], [0.0, 2.1], [0.0, 2.0], [0.1, 3.1], [0.3, 3.1], [0.0, 3.6], [0.0, 4.2], [0.1, 5.0], [0.2, 5.5]]; GVAR(WindDirectionProbabilities) = [ [0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02], // January [0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02], // February [0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03], // March [0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04], // April [0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05], // May [0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08], // June [0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09], // July [0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08], // August [0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05], // September [0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03], // October [0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02], // November [0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02] // December ]; GVAR(TempDay) = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2]; GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2]; GVAR(Humidity) = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82]; GVAR(currentTemperature) = 15; GVAR(currentHumidity) = 0; GVAR(currentOvercast) = 0; // Get all non inherited arrays to filter maps that inherit from Stratis/Altis/Tanoa private _nonInheritedArrays = configProperties [configFile >> "CfgWorlds" >> _worldName, "isArray _x", false]; // And check if any custom non-inherited weather is defined through config and use that if so if ((configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay") in _nonInheritedArrays) exitWith { if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay")) then { GVAR(TempDay) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempNight")) then { GVAR(TempNight) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempNight"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_Humidity")) then { GVAR(Humidity) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_Humidity"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMin")) then { GVAR(WindSpeedMin) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMin"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMean")) then { GVAR(WindSpeedMean) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMean"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMax")) then { GVAR(WindSpeedMax) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMax"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindDirectionProbabilities")) then { GVAR(WindDirectionProbabilities) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindDirectionProbabilities"); }; }; // Check if the map is among the most popular if (_worldName in ["chernarus", "bootcamp_acr", "woodland_acr", "utes"]) then { // Source: http://www.iten-online.ch/klima/europa/tschechien/prag.htm GVAR(TempDay) = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2]; GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Prague,Czech-Republic GVAR(Humidity) = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82]; // Source: https://weatherspark.com/averages/32335/Prague-Central-Bohemia-Czech-Republic GVAR(WindSpeedMax) = [[6.7, 2.4], [6.8, 2.2], [7.1, 2.0], [6.7, 1.9], [6.5, 1.8], [6.4, 1.8], [6.4, 1.8], [5.9, 1.9], [5.8, 2.1], [5.9, 2.3], [6.4, 2.8], [7.0, 3.0]]; GVAR(WindSpeedMean) = [4.5, 4.3, 4.4, 4.1, 3.6, 3.6, 3.6, 3.4, 3.6, 0, 4.1, 4.6]; GVAR(WindSpeedMin) = [[1.5, 1.1], [1.5, 1.1], [1.5, 1.0], [1.2, 0.9], [1.1, 0.8], [1.0, 0.8], [1.0, 1.0], [1.0, 0.9], [1.1, 1.0], [1.0, 1.0], [1.3, 1.1], [1.8, 1.2]]; GVAR(WindDirectionProbabilities) = [ [0.06, 0.02, 0.06, 0.06, 0.10, 0.23, 0.15, 0.06], // January [0.08, 0.03, 0.08, 0.06, 0.08, 0.18, 0.15, 0.08], // February [0.08, 0.02, 0.10, 0.06, 0.07, 0.17, 0.15, 0.08], // March [0.12, 0.04, 0.10, 0.05, 0.06, 0.12, 0.13, 0.10], // April [0.12, 0.05, 0.09, 0.05, 0.05, 0.10, 0.13, 0.10], // May [0.12, 0.04, 0.06, 0.03, 0.05, 0.13, 0.16, 0.10], // June [0.09, 0.03, 0.07, 0.04, 0.06, 0.16, 0.18, 0.10], // July [0.09, 0.03, 0.08, 0.04, 0.06, 0.15, 0.16, 0.09], // August [0.07, 0.03, 0.08, 0.06, 0.08, 0.18, 0.15, 0.08], // September [0.06, 0.03, 0.10, 0.07, 0.10, 0.19, 0.13, 0.05], // October [0.06, 0.02, 0.08, 0.07, 0.10, 0.15, 0.13, 0.05], // November [0.06, 0.02, 0.06, 0.06, 0.10, 0.24, 0.15, 0.05] // December ]; }; if (_worldName in ["takistan", "zargabad", "mountains_acr", "shapur_baf", "provinggrounds_pmc"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/afghanistan/kabul.htm GVAR(TempDay) = [4.5, 5.5, 12.5, 19.2, 24.4, 30.2, 32.1, 32, 28.5, 22.4, 15, 8.3]; GVAR(TempNight) = [-7.1, -5.7, 0.7, 6, 8.8, 12.4, 15.3, 14.3, 9.4, 3.9, -1.2, -4.7]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Kabul,Afghanistan GVAR(Humidity) = [68, 69, 62, 60, 49, 37, 38, 39, 40, 41, 56, 61]; // Source: https://weatherspark.com/averages/32750/Kabul-Afghanistan GVAR(WindSpeedMax) = [[4.0, 1.0], [4.1, 1.0], [5.1, 1.1], [6.9, 1.2], [8.9, 1.2], [10.0, 1.1], [9.1,1.0], [8.2, 1.0], [6.9, 1.0], [5.2, 1.0], [3.8, 0.9], [3.7, 0.9]]; GVAR(WindSpeedMean) = [2.2, 2.2, 2.5, 2.8, 3.8, 4.4, 0, 3.3, 2.7, 2.4, 1.8, 1.9]; GVAR(WindSpeedMin) = [[0.2, 0.4], [0.2, 0.4], [0.2, 0.4], [0.3, 0.4], [0.6, 0.4], [0.9, 0.4], [0.7, 0.4], [0.5, 0.4], [0.2, 0.5], [0.1, 0.1], [0, 0.1], [0, 0.1]]; GVAR(WindDirectionProbabilities) = [ [0.04, 0.02, 0.05, 0.04, 0.05, 0.04, 0.11, 0.29], // January [0.08, 0.04, 0.06, 0.04, 0.06, 0.04, 0.10, 0.20], // February [0.12, 0.06, 0.08, 0.04, 0.05, 0.04, 0.09, 0.19], // March [0.18, 0.07, 0.09, 0.05, 0.05, 0.04, 0.08, 0.16], // April [0.27, 0.05, 0.05, 0.03, 0.04, 0.03, 0.08, 0.16], // May [0.35, 0.04, 0.04, 0.02, 0.02, 0.02, 0.07, 0.13], // June [0.30, 0.07, 0.09, 0.04, 0.02, 0.02, 0.05, 0.10], // July [0.23, 0.07, 0.08, 0.06, 0.03, 0.02, 0.05, 0.10], // August [0.15, 0.06, 0.10, 0.06, 0.04, 0.02, 0.07, 0.13], // September [0.12, 0.04, 0.07, 0.06, 0.04, 0.03, 0.10, 0.17], // October [0.07, 0.03, 0.06, 0.05, 0.06, 0.02, 0.10, 0.20], // November [0.05, 0.03, 0.06, 0.05, 0.06, 0.04, 0.11, 0.26] // December ]; }; if (_worldName in ["fallujah"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/irak/bagdad.htm GVAR(TempDay) = [16, 19, 23, 29, 36, 41, 43, 43, 40, 33, 24, 17]; GVAR(TempNight) = [4, 6, 10, 15, 20, 23, 25, 25, 21, 16, 10, 5]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Bagdad,Iraq GVAR(Humidity) = [69, 60, 55, 50, 36, 23, 21, 22, 29, 38, 58, 68]; }; if (_worldName in ["fata", "abbottabad"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/pakistan/zhob.htm GVAR(TempDay) = [12.4, 15.8, 20.8, 26.9, 32.8, 37, 36.8, 35.9, 33.8, 28.2, 22.2, 16.2]; GVAR(TempNight) = [-0.6, 2.4, 7.4, 13.1, 18.2, 22.8, 23.8, 22.9, 19.2, 12, 5.6, 1.2]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Zhob,Pakistan GVAR(Humidity) = [50, 40, 42, 40, 30, 30, 50, 49, 40, 32, 38, 41]; // Source: https://weatherspark.com/averages/31382/Shkin-Paktika-Afghanistan GVAR(WindSpeedMax) = [[3.0, 1.0], [3.3, 1.0], [4.0, 1.0], [4.3, 1.4], [4.3, 1.5], [4.6, 1.4], [4.5, 1.3], [4.0, 0.9], [4.0, 1.0], [3.5, 1.0], [3.4, 1.0], [3.1, 1.0]]; GVAR(WindSpeedMean) = [1.3, 1.5, 1.6, 1.7, 1.7, 1.7, 1.6, 1.5, 1.5, 1.4, 1.4, 1.2]; GVAR(WindSpeedMin) = [[0.2, 0.1], [0.2, 0.1], [0.2, 0.1], [0.2, 0.1], [0.1, 0.1], [0.1, 0.1], [0.3, 0.1], [0.2, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]; GVAR(WindDirectionProbabilities) = [ [0.09, 0.03, 0.02, 0.03, 0.05, 0.07, 0.07, 0.18], // January [0.07, 0.02, 0.01, 0.05, 0.10, 0.10, 0.06, 0.12], // February [0.07, 0.02, 0.01, 0.07, 0.14, 0.11, 0.08, 0.12], // March [0.07, 0.04, 0.03, 0.05, 0.12, 0.08, 0.06, 0.13], // April [0.10, 0.03, 0.02, 0.04, 0.10, 0.09, 0.08, 0.18], // May [0.12, 0.05, 0.04, 0.05, 0.08, 0.06, 0.06, 0.16], // June [0.06, 0.04, 0.02, 0.06, 0.05, 0.01, 0.02, 0.06], // July [0.08, 0.03, 0.04, 0.05, 0.09, 0.04, 0.02, 0.06], // August [0.10, 0.04, 0.02, 0.06, 0.11, 0.09, 0.06, 0.13], // September [0.07, 0.02, 0.01, 0.04, 0.11, 0.08, 0.08, 0.19], // October [0.06, 0.01, 0.00, 0.05, 0.11, 0.09, 0.08, 0.13], // November [0.07, 0.01, 0.01, 0.03, 0.08, 0.09, 0.09, 0.18] // December ]; }; if (_worldName in ["sfp_wamako"]) exitWith { // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm GVAR(TempDay) = [33.4, 35, 38.4, 41.5, 41.4, 40, 35.6, 32.9, 35.8, 38.2, 36.4, 33.1]; GVAR(TempNight) = [14.9, 16.3, 20.4, 23.7, 25.8, 24.8, 23.1, 22, 22.6, 21.6, 18.6, 15.3]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Tahoua,Niger GVAR(Humidity) = [68, 60, 57, 50, 32, 22, 20, 21, 25, 38, 58, 69]; }; if (_worldName in ["sfp_sturko"]) exitWith { // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm GVAR(TempDay) = [2.2, 2.4, 5.1, 10.2, 16.1, 20.1, 21.1, 20.9, 17.2, 12.7, 7.4, 3.9]; GVAR(TempNight) = [-2, -2.3, -0.7, 2.6, 7.1, 11.4, 13.1, 12.7, 10, 6.9, 3.1, -0.1]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,karlskrona,Sweden GVAR(Humidity) = [86, 85, 80, 72, 68, 69, 74, 77, 79, 81, 86, 88]; }; if (_worldName in ["bornholm"]) exitWith { // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm GVAR(TempDay) = [1.9, 1.7, 3.8, 8.1, 14, 18.1, 19.6, 19.8, 16.2, 11.9, 7.3, 3.9]; GVAR(TempNight) = [-1.6, -2.1, -0.7, 1.7, 6.2, 10.7, 13, 13.1, 10.6, 7.2, 3.5, 0.1]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,allinge,Denmark GVAR(Humidity) = [85, 84, 80, 76, 69, 69, 76, 77, 79, 81, 86, 86]; // Source: https://weatherspark.com/averages/28830/R-nne-Capital-Region-of-Denmark GVAR(WindSpeedMax) = [[9.3, 2.2], [8.4, 2.2], [7.9, 2.2], [7.1, 2.1], [7.2, 2.1], [6.8, 2.0], [6.8, 2.0], [7.1, 2.1], [7.7, 2.2], [8.6, 2.2], [8.8, 2.2], [9.3, 2.2]]; GVAR(WindSpeedMean) = [6.9, 6.0, 5.7, 4.9, 4.8, 4.6, 4.7, 4.9, 5.5, 6.2, 6.5, 6.7]; GVAR(WindSpeedMin) = [[3.9, 2.0], [3.0, 2.0], [2.3, 2.0], [1.8, 1.8], [1.7, 1.8], [1.7, 1.7], [1.7, 1.8], [1.9, 1.9], [2.6, 2.0], [2.9, 2.0], [3.3, 2.1], [3.5, 2.0]]; GVAR(WindDirectionProbabilities) = [ [0.07, 0.04, 0.07, 0.05, 0.09, 0.12, 0.20, 0.07], // January [0.08, 0.06, 0.10, 0.06, 0.06, 0.08, 0.20, 0.08], // February [0.05, 0.06, 0.13, 0.08, 0.07, 0.08, 0.19, 0.06], // March [0.05, 0.11, 0.16, 0.09, 0.05, 0.06, 0.17, 0.06], // April [0.04, 0.10, 0.15, 0.08, 0.05, 0.06, 0.20, 0.05], // May [0.03, 0.07, 0.10, 0.07, 0.05, 0.07, 0.28, 0.06], // June [0.04, 0.06, 0.11, 0.07, 0.04, 0.07, 0.28, 0.06], // July [0.05, 0.06, 0.11, 0.07, 0.06, 0.08, 0.26, 0.06], // August [0.06, 0.06, 0.11, 0.07, 0.06, 0.09, 0.21, 0.06], // September [0.07, 0.05, 0.09, 0.08, 0.08, 0.12, 0.18, 0.07], // October [0.08, 0.06, 0.08, 0.07, 0.10, 0.12, 0.16, 0.07], // November [0.08, 0.05, 0.06, 0.04, 0.10, 0.14, 0.19, 0.07] // December ]; }; if (_worldName in ["imrali"]) exitWith { // Source: http://www.iten-online.ch/klima/europa/tuerkei/bursa.htm GVAR(TempDay) = [9.3, 10.7, 13.6, 18.8, 23.5, 28.2, 30.3, 30.2, 27, 21.4, 16.5, 11.8]; GVAR(TempNight) = [1.4, 2.4, 3.7, 7.1, 10.9, 14.3, 16.5, 16.3, 13, 9.5, 6, 3.8]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Bursa,Turkey GVAR(Humidity) = [78, 75, 70, 70, 71, 61, 58, 59, 63, 69, 77, 76]; }; if (_worldName in ["kunduz"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/afghanistan/kunduz.htm GVAR(TempDay) = [6.3, 9.5, 15.8, 23, 29.8, 37.3, 39, 36.9, 31.8, 24.5, 16, 9.7]; GVAR(TempNight) = [-2.4, 0, 5.7, 11.6, 15.7, 20.9, 21.5, 21.5, 16.3, 10.6, 4.1, 0]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Kabul,Afghanistan GVAR(Humidity) = [70, 72, 64, 61, 49, 34, 36, 38, 39, 52, 51, 63]; // Source: https://weatherspark.com/averages/32753/Kunduz-Afghanistan GVAR(WindSpeedMax) = [[3.5, 0.8], [4.0, 0.6], [4.3, 2.0], [4.6, 1.1], [5.1, 1.2], [5.7, 1.0], [4.9, 0.8], [4.5, 0.3], [4.3, 0.3], [3.8, 0.5], [3.0, 1.3], [3.1, 0.8]]; GVAR(WindSpeedMean) = [1.5, 1.8, 2.1, 2.4, 2.5, 2.8, 2.7, 2.5, 2.3, 2.1, 1.7, 1.6]; GVAR(WindSpeedMin) = [[0.2, 0.1], [0.3, 0.3], [0.4, 0.1], [0.8, 0.2], [0.8, 0.1], [1.0, 0.3], [0.9, 0.5], [0.8, 0.2], [0.8, 0.1], [0.7, 0.1], [0.5, 0.1], [0.2, 0.2]]; GVAR(WindDirectionProbabilities) = [ [0.04, 0.02, 0.05, 0.11, 0.12, 0.06, 0.09, 0.06], // January [0.04, 0.02, 0.05, 0.11, 0.12, 0.06, 0.08, 0.07], // February [0.05, 0.04, 0.06, 0.14, 0.12, 0.06, 0.10, 0.08], // March [0.09, 0.05, 0.08, 0.13, 0.07, 0.05, 0.07, 0.07], // April [0.14, 0.07, 0.13, 0.13, 0.06, 0.05, 0.05, 0.08], // May [0.16, 0.06, 0.12, 0.12, 0.05, 0.04, 0.05, 0.10], // June [0.17, 0.06, 0.08, 0.12, 0.06, 0.04, 0.05, 0.12], // July [0.15, 0.05, 0.06, 0.16, 0.08, 0.05, 0.07, 0.13], // August [0.15, 0.04, 0.08, 0.20, 0.13, 0.05, 0.10, 0.14], // September [0.08, 0.02, 0.08, 0.22, 0.15, 0.06, 0.13, 0.13], // October [0.06, 0.02, 0.05, 0.20, 0.17, 0.06, 0.12, 0.10], // November [0.04, 0.02, 0.05, 0.14, 0.19, 0.07, 0.10, 0.07] // December ]; }; #include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Module for adjusting the wind deflection settings * * Arguments: * 0: The module logic * 1: units * 2: activated * * Return Value: * None * * Example: * [module, [], true] call ace_weather_fnc_initModuleSettings * * Public: No */ params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; // Turns the weather module on / off [_logic, QGVAR(enabled), "enabled"] call EFUNC(common,readSettingFromModule); // Server weather update interval [_logic, QGVAR(updateInterval), "updateInterval"] call EFUNC(common,readSettingFromModule); // Turns the (map based) wind simulation on / off [_logic, QGVAR(windSimulation), "windSimulation"] call EFUNC(common,readSettingFromModule); GVAR(updateInterval) = 1 max GVAR(updateInterval) min 600; #include "script_component.hpp" /* * Author: Ruthberg * Inits the wind variables on the server (on mission start) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_initWind * * Public: No */ private _month = date select 1; private _windDirectionProbabilities = GVAR(WindDirectionProbabilities) select (_month - 1); GVAR(wind_direction_reference) = random 360; private _sum = 0; for "_i" from 0 to 7 do { _sum = _sum + (_windDirectionProbabilities select _i); }; private _rand = random _sum; private _csum = [0, 0, 0, 0, 0, 0, 0, 0]; for "_i" from 0 to 7 do { for "_j" from 0 to _i do { _csum set [_i, (_csum select _i) + (_windDirectionProbabilities select _j)]; }; }; private _index = 0; for "_i" from 0 to 7 do { if (_rand > (_csum select _i)) then { _index = _index + 1; }; }; GVAR(wind_direction_reference) = 45 * _index; GVAR(wind_mean_dir) = GVAR(wind_direction_reference); GVAR(wind_direction_reference) = GVAR(wind_direction_reference) + (random 22.5) - (random 22.5); GVAR(wind_direction_reference) = (360 + GVAR(wind_direction_reference)) % 360; GVAR(min_wind_speed) = GVAR(WindSpeedMin) select (_month - 1); GVAR(min_wind_speed) = (GVAR(min_wind_speed) select 0) + (random (GVAR(min_wind_speed) select 1)) - (random (GVAR(min_wind_speed) select 1)); GVAR(min_wind_speed) = 0 max GVAR(min_wind_speed); GVAR(mean_wind_speed) = GVAR(WindSpeedMean) select (_month - 1); GVAR(max_wind_speed) = GVAR(WindSpeedMax) select (_month - 1); GVAR(max_wind_speed) = (GVAR(max_wind_speed) select 0) + (random (GVAR(max_wind_speed) select 1)) - (random (GVAR(max_wind_speed) select 1)); GVAR(max_wind_speed) = 0 max GVAR(max_wind_speed); GVAR(wind_upper_span) = GVAR(max_wind_speed) - GVAR(mean_wind_speed); GVAR(wind_lower_span) = GVAR(min_wind_speed) - GVAR(mean_wind_speed); GVAR(current_wind_direction) = GVAR(wind_direction_reference); GVAR(next_wind_direction) = GVAR(current_wind_direction); GVAR(current_wind_speed) = GVAR(min_wind_speed) + (GVAR(max_wind_speed) - GVAR(min_wind_speed)) * (random 1); GVAR(next_wind_speed) = GVAR(current_wind_speed); GVAR(last_wind_update) = 0; GVAR(next_wind_udpate) = 0; #include "script_component.hpp" /* * Author: ACE2 Team * Smoothly updates GVAR(currentHumidity) on the server (based on time of day and map data) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateHumidity * * Public: No */ if (rain > 0 && overcast > 0.7) then { GVAR(currentHumidity) = 1; } else { private _month = date select 1; GVAR(currentHumidity) = (GVAR(Humidity) select (_month - 1)) / 100; GVAR(currentHumidity) = GVAR(currentHumidity) + GVAR(humidityShift); private _avgTemperature = ((GVAR(TempDay) select (_month - 1)) + (GVAR(TempNight) select (_month - 1))) / 2; private _pS1 = 6.112 * exp((17.62 * _avgTemperature) / (243.12 + _avgTemperature)); private _PS2 = 6.112 * exp((17.62 * GVAR(currentTemperature)) / (243.12 + GVAR(currentTemperature))); GVAR(currentHumidity) = GVAR(currentHumidity) * _PS1 / _PS2; }; GVAR(currentHumidity) = 0 max GVAR(currentHumidity) min 1; publicVariable QGVAR(currentHumidity); #include "script_component.hpp" /* * Author: ACE2 Team * Smoothly updates GVAR(currentTemperature) on the server (based on time of day and map data) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateTemperature * * Public: No */ private _month = date select 1; private _timeRatio = abs(daytime - 12) / 12; GVAR(currentTemperature) = (GVAR(TempDay) select (_month - 1)) * (1 - _timeRatio) + (GVAR(TempNight) select (_month - 1)) * _timeRatio; GVAR(currentTemperature) = GVAR(currentTemperature) + GVAR(temperatureShift) - GVAR(badWeatherShift) * GVAR(currentOvercast); GVAR(currentTemperature) = round(GVAR(currentTemperature) * 10) / 10; publicVariable QGVAR(currentTemperature); #include "script_component.hpp" /* * Author: ACE2 Team, esteldunedain, Ruthberg * Updates the weather evolution on the server. Broadcasts relevant weather information to the clients. * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateWeather * * Public: No */ missionNamespace setVariable [QGVAR(currentOvercast), overcast, true]; [] call FUNC(updateTemperature); [] call FUNC(updateHumidity); // Wind simulation if (GVAR(windSimulation) && CBA_missionTime > GVAR(next_wind_udpate)) then { GVAR(current_wind_direction) = GVAR(next_wind_direction); GVAR(current_wind_speed) = GVAR(next_wind_speed); private _transitionPeriod = GVAR(updateInterval) * (2 + (random 4)) / (1 + overcast); GVAR(next_wind_udpate) = CBA_missionTime + _transitionPeriod; private _windDirectionVariance = (90 - (random 180)) * (overcast ^ 2); GVAR(next_wind_direction) = (360 + GVAR(wind_direction_reference) + _windDirectionVariance) % 360; if ((random 1) < (0.3 max overcast)) then { private _speedVariance = GVAR(wind_upper_span) * (random 1) ^ 2 + GVAR(wind_lower_span) * (random 1) ^ 2; GVAR(next_wind_speed) = GVAR(mean_wind_speed) + _speedVariance; }; GVAR(last_wind_update) = CBA_missionTime; TRACE_5("dirCur/dirNew/spdCur/spdNew/period",GVAR(current_wind_direction),GVAR(next_wind_direction),GVAR(current_wind_speed),GVAR(next_wind_speed),_transitionPeriod); }; #include "script_component.hpp" /* * Author: ACE2 Team, Ruthberg * Smoothly updates wind on the server (based on time of year and map data) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateWind * * Public: No */ private _speed = linearConversion [GVAR(last_wind_update), GVAR(next_wind_udpate), CBA_missionTime, GVAR(current_wind_speed), GVAR(next_wind_speed), true]; private _direction = linearConversion [GVAR(last_wind_update), GVAR(next_wind_udpate), CBA_missionTime, GVAR(current_wind_direction), GVAR(next_wind_direction), true]; setWind [-_speed * sin(_direction), -_speed * cos(_direction), true]; #include "\z\ace\addons\weather\script_component.hpp"// point of this file is to disable "auto-weather" by default // we want this, because it breaks weather commands we use in this component #include "script_component.hpp" // cannot create checkboxes which have the default value "true" // 3den uses inverted checkboxes instead, but those only change in appearence // we have to auto set these settings manually - on mission creation add3DENEventHandler ["onMissionNew", { set3DENMissionAttributes [ ["Intel", "IntelWavesIsForced", true], ["Intel", "IntelWindIsForced", true] ]; }]; ace_weather =========== This module simulates realistic weather effects, according to the geographical location of the map, the date and time. It also ensures that all players experience the same weather effects. ## Maintainers The people responsible for merging changes to this component or answering potential questions. - [commy2](https://github.com/commy2) - [esteldunedain](https://github.com/esteldunedain) - [walterpearce](https://github.com/walterpearce) class RscTitles { class RscWindIntuitive { idd=-1; onLoad="with uiNameSpace do { RscWindIntuitive = _this select 0 };"; movingEnable=0; duration=60; fadeIn="false"; fadeOut="false"; class controls { class RscWindIntuitive { idc=132948; type=0; style=48; font="TahomaB"; colorBackground[]={0,0,0,0}; colorText[]={0,0,0,0}; x="SafeZoneX + 0.001"; y="SafeZoneY + 0.001"; w=0.2; h=0.2*4/3; size=0.034; sizeEx=0.027; text=""; }; }; }; }; #define COMPONENT weather #define COMPONENT_BEAUTIFIED Weather #include "\z\ace\addons\main\script_mod.hpp" // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS #ifdef DEBUG_ENABLED_WEATHER #define DEBUG_MODE_FULL #endif #ifdef DEBUG_SETTINGS_WEATHER #define DEBUG_SETTINGS DEBUG_SETTINGS_WEATHER #endif #include "\z\ace\addons\main\script_macros.hpp" #define ABSOLUTE_ZERO_IN_CELSIUS -273.15 #define KELVIN(t) (t - ABSOLUTE_ZERO_IN_CELSIUS) #define CELSIUS(t) (t + ABSOLUTE_ZERO_IN_CELSIUS) #define UNIVERSAL_GAS_CONSTANT 8.314 #define WATER_VAPOR_MOLAR_MASS 0.018016 #define DRY_AIR_MOLAR_MASS 0.028964 #define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058 #define TO_CELSIUS(t) ((t - 32) / 1.8) #define TO_FAHRENHEIT(t) (t * 1.8 + 32) Show Wind Info PokaХМ inf. o wietrze аŸаОаКаАаЗаАб‚бŒ аИаНб„аОб€аМаАб†аИбŽ аО аВаЕб‚б€аЕ Afficher information sur le vent Mostrar informaciУГn del viento Mostra informazioni sul vento Zeige Windinformationen SzУЉladatok mutatУЁsa Zobrazit УКdaje o vФ›tru Mostrar informaУЇУЃo do vento щЂЈщ€Ÿу‚’шЁЈчЄК ыА”ыžŒ ь •ыГД э‘œь‹œ ц˜ОчЄКщЃŽхŠ›шЕ„шЎЏ щЁЏчЄКщЂЈхŠ›шГ‡шЈŠ Show Wind Info (Toggle) PokaХМ inf. o wietrze (przeХ‚Ф…cz) аŸаОаКаАаЗаАб‚бŒ аИаНб„аОб€аМаАб†аИбŽ аО аВаЕб‚б€аЕ (аПаЕб€аЕаКаЛ.) Afficher information sur le vent (bascule) Mostrar informaciУГn del viento (cambiar) Mostra informazioni sul vento (camb.) Zeige Windinformationen (umsch.) SzУЉladatok mutatУЁsa (pecek) Zobrazit УКdaje o vФ›tru (pХ™ep.) Mostrar informaУЇУЃo do vento (alternar) щЂЈщ€Ÿу‚’шЁЈчЄК (хˆ‡у‚Šц›Пуˆ) ыА”ыžŒ ь •ыГД э‘œь‹œ (э† ъИ€) ц˜ОчЄКщЃŽхŠ›шЕ„шЎЏ(хˆ‡цЂ) щЁЏчЄКщЂЈхŠ›шГ‡шЈŠ(хˆ‡ц›) Weather Pogoda Clima Wetter PoФasУ­ Clima MУЉtУЉo IdХ‘jУЁrУЁs аŸаОаГаОаДаА Meteo хЄЉх€™ ъИАэ›„ хЄЉцА” хЄЉцАЃ Multiplayer synchronized ACE weather module Synchronizowana pogoda ACE Modulo climУЁtico del ACE sincronizado en multijugador ACE-Wettermodul (synchron im Multiplayer) Synchronizovat ACE poФasУ­ v multiplayeru MУГdulo climУЁtico ACE para sincronismo multiplayer Module ACE de synchronisation de la mУЉtУЉo en multi. TУЖbbjУЁtУЉkos szinkronizУЁlt ACE idХ‘jУЁrУЁs modul ACE аœаОаДбƒаЛбŒ аДаЛб баИаНб…б€аОаНаИаЗаАб†аИаИ аПаОаГаОаДб‹ аВ аМбƒаЛбŒб‚аИаПаЛаЕаЕб€аЕ Modulo Sincronizzazione Meteo ACE Multiplayer ACE хЄЉх€™уƒЂу‚ИуƒЅуƒМуƒЋуЇуЏуƒžуƒЋуƒуƒ—уƒЌу‚ЄуЇхŒцœŸу—уОу™у€‚ ACE ъИАэ›„ ыЊЈы“ˆъГМ ыЉ€э‹Аэ”Œы ˆьДъА€ ы™ъИАэ™”ыЉы‹ˆы‹Є. фНПч”ЈACEхЄЉцА”цЈЁх—цЅхŒц­Ѕц‰€цœ‰хЎЂцˆЗчЋЏчš„хЄЉцА”чŠЖц€(хЄšфККцИИцˆ) фНПч”ЈACEхЄЉцАЃцЈЁхЁŠфО†хŒц­Ѕц‰€цœ‰хЎЂцˆЖчЋЏчš„хЄЉцАЃч‹€ц…‹(хЄšфККщŠцˆВ) ACE Weather Pogoda ACE Clima ACE ACE-Wetter ACE poФasУ­ Clima ACE ACE MУЉtУЉo ACE IdХ‘jУЁrУЁs аŸаОаГаОаДаА ACE Meteo ACE ACE хЄЉх€™ ACE ъИАэ›„ ACE хЄЉцА” ACE хЄЉцАЃ Expands the existing weather by temperature, humidity and air pressure. Erweitert das vorhandene Wetter um Temperatur, Luftfeuchtigkeit und Luftdruck. Espande il tempo esistente per temperatura, umiditУ  e pressione dell'aria. щ€щŽхЂžхŠ цП•хКІу€цКЋхКІшˆ‡цАЃхЃ“фО†хЂžхМЗхЄЉцАЃцЈЁц“Ќчš„шЁЈчОу€‚ щ€шП‡хЂžхŠ цЙПхКІу€цИЉхКІфИŽцА”хŽ‹цЅхЂžхМКхЄЉцА”цЈЁц‹Ÿчš„шЁЈчŽАу€‚ цА—цИЉу‚„цЙПхКІу€хЄЇцА—хœЇуЋу‚ˆуЃуІц—Ђх­˜уЎхЄЉх€™у‚’ц‹ЁхМЕу—уОу™у€‚ ь˜Јы„, ьŠЕы„ ыА ъИАь••ь— ы”АыМ ъИАьЁД ы‚ ь”ЈыЅМ э™•ьžЅэ•Љы‹ˆы‹Є. Update Interval InterwaХ‚ aktualizacji Intervalo de actualizaciУГn Aktualisierungsintervall Interval aktualizace Intervalo de atualizaУЇУЃo Intervalle de synchronisation FrissУ­tУЉsi intervallum а˜аНб‚аЕб€аВаАаЛ аОаБаНаОаВаЛаЕаНаИб Intervallo Aggiornamento ц›Дц–Ащ–“щš” ъАБь‹  ъА„ъВЉ ц›Дц–Ащ—Дщš” ц›Дц–Ащ–“щš” Defines the interval (seconds) between weather updates OkreХ›la interwaХ‚ (sekundy) pomiФ™dzy aktualizacjami pogody Defina el intervalo (en segundos) entre actualizacions de clima Definiert das Intervall (in Sekunden) zwischen Wetteraktualisierungen UrФit interval (v sekundУЁch) mezi aktualizacemi poФasУ­ Defina o intervalo (em segundos) entre as atualizaУЇУЕes de clima DУЉfini un intervalle (secondes) entre deux synchronisations Megadja az intervallumot (mУЁsodpercben) az idХ‘jУЁrУЁs-frissУ­tУЉsek kУЖzУЖtt аžаПб€аЕаДаЕаЛбаЕб‚ аИаНб‚аЕб€аВаАаЛ (аВ баЕаКбƒаНаДаАб…) аМаЕаЖаДбƒ аОаБаНаОаВаЛаЕаНаИбаМаИ аПаОаГаОаДб‹ Definisce l'intervallo(in secondi) tra aggiornamenti del meteo хЄЉх€™у‚’ц›Дц–Ау™у‚‹щ–“щš”у‚’хЎšчОЉу—уОу™у€‚(чЇ’) ъИАэ›„ыЅМ ъАБь‹  э•˜ыŠ” ъА„ъВЉь„ ьДˆ ы‹Јьœ„ыЁœ ь •э•Љы‹ˆы‹Є. шЎОхЎšхЄЉцА”ц›Дц–Ачš„ц—Жщ—Дщ—Дщš”(чЇ’) шЈ­хЎšхЄЉцАЃц›Дц–Ачš„ц™‚щ–“щ–“щš”(чЇ’) Wind Simulation (map based) Wind Simulation (kartenbasiert) Simulazione del Vento (basato sulla mappa) щЂЈхŠ›цЈЁц“Ќ(хŸКц–МхœАхœ–) щЃŽхŠ›цЈЁц‹Ÿ(хŸКфКŽхœАх›О) щЂЈу‚ЗуƒŸуƒЅуƒЌуƒМу‚ЗуƒЇуƒГ (уƒžуƒƒуƒ—у‚’хŸКуЋ) ыА”ыžŒ ь‹œыЎЌы ˆьДь…˜ (ьЇ€ы„ ъИАыА˜) Enables the map based wind simulation (overwrites vanilla wind) Aktiviert die kartenbasierte Windsimulation (УМberschreibt Vanilla Wind) Abilita la simulazione del vento basato sulla mappa (sovrascrive il vento vanilla) х•Ÿч”ЈхОŒхА‡щЕч…ЇхœАхœ–ч‰Йш‰Вщ€ВшЁŒщЂЈхŠ›цЈЁц“Ќ(шІ†ш“‹цŽ‰хЎ˜ц–ЙхŽŸч‰ˆчš„щЂЈхŠ›цЈЁц“Ќ) хЏч”ЈхŽхА†щЕч…ЇхœАх›Оч‰Йш‰ВшП›шЁŒщЃŽхŠ›цЈЁц‹Ÿ(шІ†ч›–цŽ‰хЎ˜ц–ЙхŽŸч‰ˆчš„щЃŽхŠ›цЈЁц‹Ÿ) уƒžуƒƒуƒ—у‚’хŸКуЋу—уŸщЂЈу‚ЗуƒŸуƒЅуƒЌуƒМу‚ЗуƒЇуƒГу‚’цœ‰хŠЙхŒ– (цЈ™цК–уЎщЂЈу‚’фИŠц›Иу) ьЇ€ы„ ъИАыА˜ь˜ ыА”ыžŒ ь‹œыЎЌы ˆьДь…˜ь„ э™œь„Бэ™”э•Љы‹ˆы‹Є (ыА”ы‹ыМ ыА”ыžŒь„ ыЎьŒ) 0DHTўќ|?ўќ|?ўќ|?аЮЮ>ќќќgџџџџџџџџ ui\icon_module_wind_ca.paa@@ € ‡ Ž • мљўќ|?ўќ|?ўќ|?€=ќќќџџџџџџџџ ui\wind_arrow_ca.paa  € ы (€€ Д+@@ Лk Т{ Щ а€ 4љїw?љїw?љїw?кии=їїїџџџџџџџџ ui\wind_nonecircle_ca.paa€€ €@@ ‡@ ŽP •T œU уUVџ§}?џ§}?џ§}?БА0?§§§Аџџџџџџџџ ui\wind_dot_ca.paa€€ €@@ ‡@ ŽP •T œU уUVџGGATCGVAќќќgGGATCXAMџџџџGGATGALFGGATSFFO@€‡Ž•м@@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@$@$џџџџџ  џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€$H‚$џџџџџ$I’$џџџџџIџџџџџџџџџџџџџџџџџџџџџ$@$џџџџџ$I’$џџџџџ$I’$џџџџџ@’$I’$џџџџџ  џџџџџ  џџџџџџџџџџџџџџџџџџџџџџџHџџџџџIџџџџџIџџџџџџџџџџџџџџџџџџџџџ@$@$џџџџџџџџџџџџџџџџџ  џџџџџ џџџџџ$џџџџџ$џџџџџ$џџџџџџџџџџџ€$H‚$џџџџџ$I’$џџџџџIџџџџџџџџџџџџџџџџџџџџџ@$џџџџџI’$џџџџџI’$џџџџџI’$@$џџџџџ  џџџџџ џџџџџI’$IџџџџџI’$IџџџџџI’$Iџџџџџ$џџџџџH‚$H’$џџџџџџџџџII$џџџџџ$џџџџџџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ@$@’$џџџџџ  $џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$Iџџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџLI’$I’џџџџмЖmл™џџџџџџЖmл‚Ъџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ)њЖnѓЖbџџџџHЙџџџлџџџџ'яџѕ?§ƒ<џџџџџџџџџџџџџџџџџџџџЫЖmл`›џџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸАЖmлђџџџџџgэЮƒ?џѓŸџџџџџџџџџџџџџџџџџџџџ№љЏ$6`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџРйЖmлџџџџџџџџџџџџџџџџџџџџKеЖ&љŸџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџЪџћџџџџџ ЖmлАлџџџџџџџџџџџџџџџџџџџџџџџџџџџџ)НHbлЖmлџџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$Iђ'џџџџ~х§oќvnчџџџџDЯ‡}к§иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ=ЈЖa;Жeлџџџџџ`џџџџ юрџџџџgџџџџ0“}иЕmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"‘cлЖmлџџџџ‘˜“$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ €Пџџџ№Уџџџџ€Пџџџbџџџџџ@$@$џџџџ€џџџџѓџџџџ€џџџIџџџџ€~ррџџџџ€џџџ№џџџџџI’$џџџџ€П№џ№Уџџџџ€Пђџbџџџџџ@$@$џџџџџ џџџџџI’$IџџџџџII€џџџџ€Пџџ‡§џџџџ€џŸ$$џџџџ@€œРЖ$џџџџ@€ЖcЖ$џџџџ€?$џџџџ€џŸ$$џџџџ€џŸ$$џџџџ€ $џџџџ€џŸ$$џџџџ€џŸ$$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$Жmџџџџ€ФџЖ­Шџџџџ€џŸ$џџџџџџџџ›ЯЖmлЖ$џџџџЯI’$IџџџџЯI’$IџџџџЯI’$Iџџџџ]ЯЖkЖ$џџџџ%їџ;46г>џџџџџџџџџџџџ јMbк–џџџџџ јIліџџџџџ јIліџџџџџ јIліџџџџџ јIƒ§ШџџџџѕIиЖmлџџџџџџџџџџџџ_$I’$џџџџ_$I’$џџџџ_$I’$џџџџблfУжkфџџџџж|эЧ}§РџџџџџџџџџџџџџI’$џџџџџI’$џџџџџI’$џџџџџI’$џџџџ ?6bлџџџџџџџ ?mлџџџџџџџџI’$џџџџџI’$џџџџ@РџџaOђaџџџџ€ПїŸїq?џџџџ €В!Ж“,џџџџ@РџлOџџџџ@РIbлџџџџ@РqIbлџџџџ@Р‰Ibлџџџџ@РII"иџџџџ[ЕЖmCЖf7џџџџЕIB’лџџџџЕIJ’л(џџџџпCR$t’$џџџџ%06bлЖ§џџџџџ0I№џџџџџнR‡DќџџџџџџI’$Iџџџџ@ч,X!VЮkлџџџџА@*˜ƒuP j@Р цќ? Э§?#НП’%МПU№ 9Љp 'М?>>№ wРPёќМ&=РU X<Р цќ? Эќ?<Жa[Жi@|ПCйрЏ +МП>?Cй?+<Р<А-лДТ€TTqР€ цќ? Эў?В@Йї -МП>>Йї,>РВР€ Y<Р цќ? Эќ?ёy•ё№ }~§+| ?ќ?џ§*<ёъ>˜ѕ! Y цќ? Нў?%ABџ*!ГџP HМ?>=*7Р Јќ\С€TbР€ цќ? Нў?•*МПœч MМП>>œч,>Р•*=РP HH€ цќ? Нќ?ђ ‰—W9$|;ѕџHв$I’$ gќ?ѕџIЄ)<ђ sЂ>рƒ9Н# H цќ? ­§?AНœ€П"МП+ё Їр iМП><+˜5ЬќN€Р :<Р цќ? ­ќ?zЖe{6j@џ`0 yМ?.<РШ `ќzВ=л…YР€ цќ? ­ќ?б‰—T'МПшџHТ kМП>=ш!=Р„)МбsЂ&'<Р 9@Р цќ? §?#НПž@,ЪVх`Ўў ˆМ=<,ЪЏќ ёWќOР€ )<Р цќ? ў?]"НПh$МП!РПdљ`Ўc@ ??dљТ€]!=Р„%=РT )<Р цќ? ќ?вЩ™xI•| <иџHВ$M ‰МП>=и!?РdIš'<в|2'j>uP *@Р цќ? ў?є !АџL? ЇМ?>>є 4Ь@.<  цќ? ќ??Жa[Жi#$МПFорЏ ЋМП>?Fо?+<Р?А-лДи$=РT <Р цќ? ќ?#ЖЖgƒЖj/|<џНP ИМ?/<Н€ @џ#ЖГР€BPP <… цќ? ќ?ѕy•ё№ }~ў+| Рџ?ў*<ѕъ>˜ѕ)  цќ? }ќ?(ЖmЖg;|@-ЉpPЁ@ ?<-P№Р Јќ\% лГлœ%"Р€ цќ? }ќ?›6fƒЖj,$МПЁьШПџ§Ÿџ чќ?Ёь№џћ?џ›ƒ"=РС$=РP H€ цќ? }ў?3д!ѓ?cѕ$|:_ј  кМ.<ј@)>3д!ѓ?!ќЪН+  цќ? m§?Aœ@џ.ё 'р щМП><.˜5Ьќ)NР€ цќ? mќ?~Iœ„Щ—|<џ†`0 љМ?.<†РШ `ќ~NТ${'vTPР€ цќ? mќ?д‰—T9%<:ьўјпџљџ шМџ><ьўџёПџѓ'МдsЂ&рƒ9н-6 цќ? ]§?#НП’%МПU/ЮVх`Ўў М=</ЮЏќ ёWќМ-&>РUT*< цќ? S<$ќ?`Жe{6h+|<g§`Ўу@ ??g§Р€`В=л„Т@TT(<Р цќ? ]ќ?еЩ™xI•|<лњјЯ МП><лњџёŸ)<Ре|2'j>uP)@Р цќ? ]ќ?ў9Џp (М?><ўтƒ9Pё2< цќ? I<(Iž„IќIсрЏўЫ/ЖўџЖv$ .=Ф'=юu i|>ž ,Ор$ 7?Iс?!>РжR(<OТ$H‚$ ц|& M<I$I’$”!ќ/IhbлЖmлœG:I(| "<„$€€œ@СКЬљџј h|СКЬџѓџё'О„! 0@МРО /</IIa*МH’'| цќ R<€ O6b#H} @џК jќК HќOиHuPРў / цќП цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? Ф§?Ѓ&ќ?™гќЯџќ$ўџгu X<™гџљŸџ™,§?] цќ? Ьќ?,>UU 1<$6b[Жmл~ uLœПuI _=*<$-лоPT A|*> ц|& ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< <‚ СџA) ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< d>зН€@(<vЊU <+ЖmлЖa;О*ŸАлОЈT /М,> §@@§ -Œ <лЖgЃЖbяe Г]葧й}P 0М*=@ fќ!ъFoхцўdpё!ъ/ќШ?§}@)ќ Ўќ@I’фIše@џK` 'ЌџK€Р@ќ\ђ$M‚$uT@ Іўз,П_џі+Мџі*>з 5<` ^ў Э!О_о$П_ф'ќ-> Э!?`џќu@)@` Ž§!П_$Iœ#Н_U!М_!шшЏќћпџ6М.<!шёGџїПќ N$=`U <` NќиЖe{6j+e!Р_џс0:М/<с`)<иВ=л…#=`T!@` †ќ+ѓЖbѓFoх$Н_ М=<+ѓ‘}к"H`#>`@ v§#Н_’$М_!Т_"щ!sпЪПџ М.>"щ!sрєќМ %=`U <` >ќЎЖa[Жi#$|п!О_К  'ўџК€'<ЎА-лДи$|р <` >ўа!pп%Н_\ы М=>а!pр%=`P |b >ќ"№VnўшЏќ 7М/<`№ќг"ˆР-М Nўx*М_†ћШПџ§Ÿџ Gќ†ћ№џћ?ўx*>`TP Fўл!sпіnє@? AМ_?<`"sрŸ§ТТ@@@ Fў-ёŸ _ў-ёЁ ќEЖmЖg;B?џQŸ ^ўџQЁ\ лГлР@ ўнŸљ ]М.=љЁн Ё ў д%Ÿ _> д Ё ў€^|џ\$`@I'Нлv$== (|ž = ќ$РШ*‰+<€a|џ їМ.<I$I’$|хФ}%HbлHш•U%pэœ4<*нPnфFnфœ:@ *н№РќР”\>ќ%I`*МH’'<a *нF'§ $ќPџмџ3@fР цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ Еќ)?U?<'щFn4ЖdлмџIщџŸ$`лќ <'щœТ’mлмџ <-ќ М ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< Y<СџA) ц< ц< ц< –>\чY@(>QŒYU.< I’$I’нО‚$нT>ќ-Н lџп@@§ -ŒќщЖe›6bяfщВMл§й~TP>ќ*Н@ ’ќхvoфжoўdxwхЏ§РПќг|)ј Ћ§'М/!№.U•кШЏџќŸџќк№_џљ?§'<0~VT Ђќ!яЖa{Жk#u!У/џѕ+ќџѕ*<!яА=лЕиtTTPP ЂќOчЖnѓvnќu\uє'ќ-<Oч—}к§УuP9<1 ŠќмцќњЯџ6М.<м?§џѕŸ.| Šќ РЖa[Жi;$М/ЯїјŒy ќЯїџё?)М РА-лДл$>0TP ‚ўш!po!ˆ_v М/>>ш!pp!ˆ`tPP@@ ‚ўAо!roЮ• М.>Aо!spќu@-М f§!МnIž$œHtэќп$`лдUюџŸфb#н>М\џ$инPџ™Є)<\ ‚$O’  …џŸю6џ6Н@>ќюи$ўoPP Єќo цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ аќћо@€*<Е^Њ фЩ‘фI’$ %єIЖmлќ.<фxђ$оP 0<*О ^М ц< ц< ц< +<€€@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџyЮPI’$I’џџyЮI’$I‚$џџyЮTџџyЮџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP:фЖa›Жcуџџ:фАMлБ}иџџTTPPОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP(д6oчЦя§џџ(дЇ§и?ќЯџџP@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPPУЮџћпџџџџџУќџїПџџџџОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџOцЖmЖi;џџџёџџџџџёџџџџOцЖ лДлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ іЖnѓvcџџя †џџџџќџџџџ †џџџџџџџџџ і—}кЉ иџџяџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPP GюяўFbлџџG§з lлџџ@@€Ої џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI’$I’џџ\чI’$I‚$џџ\чџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ5џЖa{Жk#џџ5џА=лЕиџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџФ6oчЦя§џџФЇ§и?ќЯџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџAБЮяѕ6nуџџAБќЮ‡}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖb+ЖbCџџџ‘й‘-иџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ џџџџџџџџџџџџџџОї0џџОї џџџџџџџџџџџџџџџџџџџџџџџџЮ€шџџЖЕЮ@pџџЖЕџџџџџџџџџџџџџџџџџџџџџџџџч‰‘dI–dџџЖЕчpВ$KВ$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџ IIџџЖЕ H‚$H‚$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџ IIџџЖЕ H‚$H‚$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџ IIџџЖЕ H‚$H‚$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџf Жc;ЖcџџЖЕ0f БлБ лџџЖЕ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ,{ЖmлЖa;џџпџ€,{ЖmлАлџџпџџџџџџџџџPtЖcЖaџџџџPtБ лА лџџџџџџџџџџџџPIIџџџџPH‚$H‚$џџџџџџџџџџџџBPЖcЖmлџџџџBPБ лЖmлџџџџџџџџ@(1Жm[Жcџџџџ(1Ж-лБ лџџџџ%(Жc;Жaлџџџџ%(БлАmлџџџџ –ьФnmРџџџџџGGATCGVA§§§АGGATCXAMџџџџGGATGALFGGATSFFO@€‡@ŽP•TœUуU€€@џџ@џџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUЖmлЖ 1џџџџ&;ЖmлЖ5џџџџ@HЖmлЖ5џџџџ@HЖmлЖџџџџ&;ЖmлЖџџџџЖmлЖ џџџџџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџџџ@@@@I’$I’џџUUUsI’$Щ§џџUUвI’м.7џџUўЩя–›џџџџAЧж&џџџџџџџџљ=IџџџџЉДXѓџџџџџџџџЉДщ№џџџџџџџџџў#iџџџџAЧ“ДџџџџџџџўТжвџџџџвIт'c hџџUtЖmлА џџUU@I’$I‚$џџUUUTџџџџ@@@@I’$I’џџUUUšI’$Щ{џџUь6cгќџџџcqGџџџџъњШџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџъњ№џџџџџџџџџcЋˆџџџџь‚Э )їЇџџ@šI’$}‚љџџUT@I’$I‚$џџUUUTџџџџ@@@@6I’$IžџџUU#ЏЖaˆXУќџџXрXУќџџџџџџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџџџџYрщ№‡џџџџџџџ#ААMСщ№‡џџP6I’$O'џџUUT@џџџџ@@@@lЖm6d,џџUз†ˆ1kоќџџџџџЦ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЦР@џџџџзOїЇџџџџlЖ л‚СџџUTP@џџџџ@@@@lЖm6f(џџUџyї0џџџџяўШџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџяў№џџџџџџџџџыƒѕР `џџџџlЖ лƒСџџUTP@џџџџ@@@@6I’$IœџџUUиЦŠ5bЮќџџџџяўјŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџяўџё?џџџџџџџиœѕ‡џџџџ6I’$N‚'џџUTTPџџџџ@@@@I’$I’џџUUU#Џ6h,VцџџџЦ0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЦ€`џџџџ#А„СЏќџџ@@I’$I‚$џџUUUTџџџџ@@@@™IžФЩ—џџYсрПќ§ŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџYс?ёgџћ?џџџџ™Oт${‚&џџTPP@џџџџ@@@@I’$I’џџUUUьЦj1X/цџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџџџџьЪя№Pџџ@I’$I‚$џџUUUTџџџџ@@@@tЖa[Жi#џџџc!`0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџcШ `џџџџtА-лДиџџTPPPџџџџ@@@@в‰—T9џџъњјŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџъњџё?џџџџџџџвsЂ&рƒ9џџ@@@@џџџџ@@@@ўёЏp џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџў˜ƒ5PёџџџџџџЖa[Жi;џџџџAЧшЏўЪПќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA№РЬџџџџ џџџџ&;Жa{Жk;џџџџџp`џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџƒРш€Шџџџџ';А=лЕлџџџџ@HЖa{Жk;џџџџЉДјПџ§ŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЉДџёŸџћ?џџџџAHА=лЕлџџџџAHЖcЛЖgџџџџЉДљпџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЉДџѓПџљџџџџAHБ]лГ лџџџџ&;ЖcЛЖgџџџџџpџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‚€ ш€,џџџџ&;Б]лГ лџџџџЖc›ЖeџџџџBЧЫЏќъўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџAЧіGѕџџџџБMлВ лџџџџџџ@@@@ўЇ№ щџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўѕXƒ9џџџџџџџџ@@@@вёI•xџџъњџџџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџъњџџџџѓџџџџв˜>j2'џџ@@@@џџџџ@@@@t6b›ЖeџџџcPџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџc € 0џџџџtMлВ лџџPPPTџџџџ@@@@I$I’$џџUUUьbŽѕcЌџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћ џџџџьѕЁмСџџ@H’$I’$џџTUUUџџџџ@@@@™I‘|IœфџџYсљпџЫўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџYсџѓПіџџџџ™hВ'Nђ$џџ@PPTџџџџ@@@@I$I’$џџUUU#А`nѕЦbƒџџџЧџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЧ(џџџџ%АёЪLиџџ@@H’$I’$џџTUUUџџџџ@@@@6Щ‘ФI’$џџUиЬ/цXcЌџџџџяўџџџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ№ўџџџџѓџџџџијPщаСџџџџ6xт$I’$џџPTTUџџџџ@@@@l†bcЖaлџџUџаяwџџџџяўџџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџяўџџџџџџџџџџЌXП>џџџџl<иАmлџџ@PTUџџџџ@@@@lЦbCЖaлџџUиЭПцcˆџџџџџЦџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЧ,џџџџињtс@Сџџџџl,иАmлџџ@PTUџџџџ@@@@6‰‘фI’$џџUU%АЬ5†hџџYсџџџЬ5џџџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћ џџџџYсџџџ˜џџџџ$А˜ лџџP7,лЖmлџџ@TUUџџџџ@@@@I$I’$џџUUUšїМI’$џџUьЭ?6аhCџџџcwџџџџыњџџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџыњџџџџџџџџџџc€И:џџџџьšrœ иџџ@š˜п'I’$џџ@TUH’$I’$џџTUUUџџџџ@@@@I$I’$џџUUUtcЖmлџџUUврrЩ$џџUўАIn™ќџџџџџBф–пџџџџџ“”пџџџџЉЕџџџџ5џџџџЉЕџџџџŸџџџџџ’ц?џџџџџBщ?џџџџў ml§'џџџџв€6ж~’$џџUtЁлЖmлџџ@UUH’$I’$џџTUUUџџџџ@џџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUcлЖmлџџџџ&ёЖ л§РџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџжЖm{ЖnфџџџџџsџџџџPїџџ?№РџџџџZџ‘ лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ИVn#ЖaлџџџџЖџџџљќџџџџџ)€@џџџџЙЖ лБ}кџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ˜ЖmлЖa;џџџџUхцџљџџџџџџ еџџџџћџџџџY§-лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ пFo#ЖeлџџџџgѕџџџљџџџџџрПќџљџџџџџ>I’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ6њ6bѓЦoўџџџџџџџџџџфП|к=лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ'ёюoфіnЛџџџџџџџџџџПБ§йќЯџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџa џџџџ.ьјЯџљџџџџџџNЭџѓќЫџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџSЖcЖmлџџџџSйџпџјяќџџџџ:э§џљ?џџџџI’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџКЖcуіnїџџџџџџџџџџч|к—лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџДцoќvnяџџџџџџџџџџIэВMлБ}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџпFn§оoўџџџџвѕџџџџѓџџџџ•Б=лАmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Ъ6n;Жi{џџџџџџџџџџъЇ§кќЫџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџгюќњЏџџџџџAЇџѓŸџѕџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ0Жc{ЖaлџџџџКьџŸџћџџџџџXГ?ќЯ§ЧџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџLjјПџ§Ÿџџџџџђџё№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџˆЅљПџњџџџџџХк?ќг§ЧџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџFhљпџћџџџџџ6џё_џї?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‰ЏјЏџћŸџџџџџПйќз?§Уџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ2ѓШќюoўџџџџMџIDI–„џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџCЖmЖg;џџџџџХPџџџџIЊќзџќУџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџѕоo§Fnїџџџџхўџё?џџџџџџџ ИА-лДлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ>фЖg›Жcуџџџџџџџџџџ%н?ќиЏ§йџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ х6oы6b›џџџџџџџџџџђ№/№ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџEџіb7Fb&џџџџџџџџџџ3л‡лД лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЖcЖmлџџџџmщџпџјяќџџџџё?§џљ?џџџџ$I’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ˜ЖmлЖa;џџџџ#ёШЯџљџџџџџџђџћ№гџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџсцoфіn#џџџџџџџџџџџK'P0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџѓЖnєоЏќџџџџџџџџџџ#ѓ|кMлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ`I$I’$џџџџ$ЙџŸџјя§џџџџKъџё?џџџџџџџ ЯЖ-л§ТџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџQЖm;іnќџџџџџМџџџџфџѓ§РџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЧvo;Жaлџџџџџ1џџџџ Е№?џџџџџџџ нЖ л…§ШџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџRЖmіюќџџџџLљШŸџџџџџџџџ™ВџџџџёЧџџџџu'џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ=ёFn#Жaлџџџџџ+џџџџiє№џџџџџџџџ*№Ж]иЯќПџџџџVЖmлЖиџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"—ЖmлЖm#џџџџМЖe№ЪџџџџџџџКџџџџ˜БџџџџѓУџџџџ ЛиАmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЕFn›ЖmлџџџџџџџџџџџџџџџUе/ќ?џџџџџџџ!ВЖMиіџџџџџіrџџџџ1ЖmлЖСџџџџџџџџџџџџ CЖmлЖm,џџџџ тЖmл6ДцџџџџжЖmЌЬџџџџџџ'я`žџџџџџџџџџџџџџџрџџ?‘йџџџџGt лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@I$I’$џџџџSХ§oфЖaлџџџџ<щџџџ§o0џџџџџџџџџџџџџџџџЛыЯ№џџџџџџџџˆЅ№џџџџџџџџ‰ЏађџџџџџџџџџХЉџџџџџџџџџџџџџџџџяџџџиСџџџџ,›џћРАmлџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI$I’$џџџџшknCЖmлџџџџшџЯц6dлџџџџVБџџџXcлџџџџТкџџџ`cлџџџџМйџџџ)aлџџџџHЉџџџщ`лџџџџџ­O’$џџџџ2жлЖmлџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ+I’$I’џџџџАЖmVžџџџџџё6Дцџџ?џџџџeЩћџџnџџџџ]гх№џџП1џџџџя‚§tџџџџџџџ™Ж лќ?џџџџI’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ!уЖmлЖa#џџџџ}н6nўљџџџџџLхџџmлџџџџнЁлЖmлџџџџџџџџџџџџœXnЖmлџџџџ)рџПќіnџџџџ\э§ЯџйџџџџџШЖmлАиџџџџџџџџџџџџџџџџџџџџџџџџ+I’$I’џџџџ}мvnўјџџџџџfu|иБmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ЅШoчЖcџџџџNџЁЬIаЄџџџџI’$I‚$џџџџџџџџџџџџџџџџџџџџАЖcыvnќџџџџLхќУЏ}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџёњoўFnѓџџџџƒђА뇧꟟џџџџџџџџџџџџџџџџџџёояўШЏ?џџџџоMлВ лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ%Х6n;Жi[џџџџњПќг§џџџџџџџџџџџџџџџџџџџџgЩјГŸќзџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖcЖmлџџџџџ5"р<Рџџџџџџџџџџџџџџџџџџџџ^г§Чћ‰?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖmлЖa;џџџџџ.,Р џџџџџџџџџџџџџџџџџџџџ№њќюя§џџџџ›А=лБ}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ<џЖa{Жk#џџџџ4ѕќзџќУџџџџџџџџџџџџџџџџџџџџšЦoчЖn;џџџџ)рŸ§иџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ-ЛvoќЮПџџџџџiцЏ}иБ лџџџџџџџџџџџџџџџџџџџџI$I’$џџџџ]юљ‹џоoѓџџџџ ЅАл§џџџџџџџџџџџџџџџџџџџџџџџџџџџџзЖa#FŽќџџџџ2бџѓџ|кџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџШ6bЖmлџџџџNџIЪ$^bЃџџџџ№В}Тјџџџџџ&ХЖmлА§PџџџџЖmлЖиџџџџЖmлЖm#џџџџ<џЖmлЖ5џџџџ.ЛЖgф§џџџџџџ1бџџŸџиџџџџЁ лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI$I’$џџџџ‚ёШoЃЖmлџџџџљџџџbcџџџџџ4алџџџџџ.“`?џџџџ4єџџџщ`лџџџџjфPиЖmлџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџJI’$I’џџџџ6шЖm/ШћШџџџџZмXѓЇАmлџџџџр)еќ6fлџџџџѓI‚&‚žџџџџ:I’$I‚$џџџџџџџџџџџџ6ш6n'охдџџџџи лЖmлџџџџџџџџџџџџц€@џџџџѕx%E)џџџџџџџџџџџџZм8Млкџџџџџџџџџџџџџџџџџџџџ5фоa|іiЇџџџџџџџџџџџџрЉни<ЌЯџџџџџџџџџџџџџџџџџџџџ5цvjŸЦчџџџџџџџџџџџџђ’Ђ‰џџџџцџџџџџџџџџџџџDѓЖmлЖa#џџџџщNЭЫЏиџџџџџџџџџџџџ:I$I’$џџџџѕ@sAI•$џџџџ5фЖ=иџƒБџџџџ5цЖmcљ_џџџџ щр“mлџџџџ*H’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI’$I’џџџџНI’$)€=џџџџЭI’$P“OџџџџI’$I‚$џџџџМЖcv`ЧџџџџEH’$I’$џџџџQI$I’$џџџџ*ЬЕMйЈэиџџџџЭ ’шI—DџџџџQI’$I‚$џџџџ_I’$I’џџџџ/ЬŽк•]лџџџџI$I’$џџџџ*Ь%l5Жmлџџџџ/ЬF›ЪЖmлџџџџ H’$I’$џџџџ@hЖm'ьиџџџџgPџџџџg€@џџџџivlХ lлџџџџ4N тФџџџџ#include "script_component.hpp" GVAR(WindInfo) = false; ["ACE3 Common", QGVAR(WindInfoKey), localize LSTRING(WindInfoKeyToggle), { // Conditions: canInteract if !([ACE_player, ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false}; // Statement [] call FUNC(displayWindInfo); }, {false}, [37, [true, false, false]], false, 0] call CBA_fnc_addKeybind; // (SHIFT + K) ["ACE3 Common", QGVAR(WindInfoKey_hold), localize LSTRING(WindInfoKeyHold), { // Conditions: canInteract if !([ACE_player, ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false}; // Statement [] call FUNC(displayWindInfo); }, { GVAR(WindInfo) = false; (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN", 2]; }, [0, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (empty default key) #include "script_component.hpp" ["ace_settingsInitialized", { if (!GVAR(enabled)) exitWith {}; GVAR(temperatureShift) = random [-SD_TO_MIN_MAX(4), 0, SD_TO_MIN_MAX(4)]; // Gauss(0, 4) GVAR(badWeatherShift) = random [-SD_TO_MIN_MAX(2) + 4, 4, 4 + SD_TO_MIN_MAX(2)]; // Gauss(4, 2) GVAR(humidityShift) = random [-SD_TO_MIN_MAX(0.065), 0, SD_TO_MIN_MAX(0.065)]; // Gauss(0, 0.065) if (GVAR(windSimulation)) then { call FUNC(initWind); [FUNC(updateWind), 1] call CBA_fnc_addPerFrameHandler; }; [FUNC(updateWeather), GVAR(updateInterval)] call CBA_fnc_addPerFrameHandler; }] call CBA_fnc_addEventHandler; //#define DEBUG_MODE_FULL #include "script_component.hpp" ADDON = false; PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; // Make sure this data is read before client/server postInit call FUNC(getMapData); ADDON = true; PREP(calculateAirDensity); PREP(calculateBarometricPressure); PREP(calculateDensityAltitude); PREP(calculateDewPoint); PREP(calculateHeatIndex); PREP(calculateRoughnessLength); PREP(calculateSpeedOfSound); PREP(calculateTemperatureAtHeight); PREP(calculateWetBulb); PREP(calculateWindChill); PREP(calculateWindSpeed); PREP(displayWindInfo); PREP(getMapData); PREP(initModuleSettings); PREP(initWind); PREP(updateHumidity); PREP(updateTemperature); PREP(updateWeather); PREP(updateWind); #include "script_component.hpp" #include "XEH_PREP.hpp" веџbЩovй4л[ЃГцYb‹N