Advertisement
dapperstache

fn_initEnvironment.sqf

Oct 30th, 2024
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 8.91 KB | Gaming | 0 0
  1. // Get passed values from Description.ext
  2.     _DAP_time = "DAP_timeOfDay" call BIS_fnc_getParamValue;
  3.     _DAP_weather = "DAP_overcast" call BIS_fnc_getParamValue;
  4.     _DAP_fogAmt = "DAP_fog" call BIS_fnc_getParamValue;
  5.     _DAP_rain = "DAP_rain" call BIS_fnc_getParamValue;
  6.     _DAP_windStr = "DAP_windStrength" call BIS_fnc_getParamValue;
  7.     _DAP_windFrc = "DAP_windForce" call BIS_fnc_getParamValue;
  8.     _DAP_windGst = "DAP_windGusts" call BIS_fnc_getParamValue;
  9.     _DAP_lightnings = "DAP_lightning" call BIS_fnc_getParamValue;
  10.     _DAP_waveInt = "DAP_waves" call BIS_fnc_getParamValue;
  11.     _DAP_refresh = "DAP_refresh" call BIS_fnc_getParamValue;
  12.     diag_log format ["_DAP_weather fetched from description.ext: %1", _DAP_weather];
  13.  
  14.  
  15.     // Get current system time
  16.     _systemTime = systemTime;
  17.     _year = _systemTime select 0;
  18.     _month = _systemTime select 1;
  19.     _day = _systemTime select 2;
  20.     _hour = (_systemTime select 3) + 1;
  21.     _minute = _systemTime select 4;
  22.  
  23.     // Handle Weather parameter
  24.     if (_DAP_weather == 2) then {
  25.  
  26.         _randomWeather = [0, 0.25, 0.50, 0.75, 1] call BIS_fnc_selectRandom;
  27.         [-24] remoteExec ["skipTime", 0];
  28.         [86400, _randomWeather] remoteExec ["setOvercast", 0];
  29.         [24] remoteExec ["skipTime", 0];
  30.         [_randomWeather] remoteExec ["simulSetHumidity", 0];
  31.         0 = [] spawn { sleep 0.1; simulWeatherSync;};
  32.        
  33.    
  34.     } else {
  35.  
  36.         [-24] remoteExec ["skipTime", 0];
  37.         [86400,_DAP_weather] remoteExec ["setOvercast", 0];
  38.         [24] remoteExec ["skipTime", 0];
  39.         [_DAP_weather] remoteExec ["simulSetHumidity", 0];
  40.         0 = [] spawn { sleep 0.1; simulWeatherSync;};
  41.        
  42.         [_DAP_weather, _DAP_refresh] spawn {
  43.             params ["_DAP_weather", "_DAP_refresh"];
  44.             while {true} do {
  45.                 [0,_DAP_weather] remoteExec ["setOvercast", 0];
  46.                 sleep _DAP_refresh;
  47.             };
  48.         };
  49.  
  50.     };
  51.  
  52.     // Handle Fog parameter
  53.     if (_DAP_fogAmt == 2) then {
  54.    
  55.         _randomFog = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.10, 0.25, 0.50, 0.65, 0.75] call BIS_fnc_selectRandom;
  56.         [0, _randomFog] remoteExec ["setFog", 0];
  57.         [999999, _randomFog] remoteExec ["setFog", 0];
  58.    
  59.     } else {
  60.    
  61.         [0, _DAP_fogAmt] remoteExec ["setFog", 0];
  62.         [999999, _DAP_fogAmt] remoteExec ["setFog", 0];
  63.        
  64.         [_DAP_fogAmt, _DAP_refresh] spawn {
  65.             params ["_DAP_fogAmt", "_DAP_refresh"];
  66.             while {true} do {
  67.                 [0, _DAP_fogAmt] remoteExec ["setFog", 0];
  68.                 sleep _DAP_refresh;
  69.             };
  70.         };
  71.     };
  72.  
  73.     // Handle Rain parameter
  74.     switch (_DAP_rain) do {
  75.    
  76.         case 2: {
  77.        
  78.             _randomRain = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.50, 0.75, 1] call BIS_fnc_selectRandom;
  79.             [0, _randomRain] remoteExec ["setRain", 0];
  80.             [_randomRain] remoteExec ["setHumidity", 0];
  81.             [_randomRain] remoteExec ["simulSetHumidity", 0];
  82.        
  83.         };
  84.        
  85.         default {
  86.  
  87.             [_DAP_rain] remoteExec ["setHumidity", 0];
  88.             [0, _DAP_rain] remoteExec ["setRain", 0];
  89.             [_DAP_rain, _DAP_refresh] spawn {      
  90.                 params ["_DAP_rain", "_DAP_refresh"];
  91.                 while {true} do {
  92.                     [_DAP_rain] remoteExec ["setHumidity", 0];
  93.                     [0, _DAP_rain] remoteExec ["setRain", 0];
  94.                     sleep _DAP_refresh;
  95.                 };         
  96.             };
  97.         };
  98.        
  99.         case 3: {
  100.  
  101.             [0, 1] remoteExec ["setRain", 0];
  102.             [0, 0.1] remoteExec ["setFog", 0];
  103.             [0.9] remoteExec ["setHumidity", 0];
  104.             [[false, true]] remoteExec ["enableEnvironment", 0];
  105.            
  106.             [
  107.                 [
  108.                     "a3\data_f\snowflake4_ca.paa",
  109.                     4,
  110.                     0.01,
  111.                     25,
  112.                     0.05,
  113.                     2.5,
  114.                     0.5,
  115.                     0.5,
  116.                     0.07,
  117.                     0.07,
  118.                     [1, 1, 1, 0.5],
  119.                     0.0,
  120.                     0.2,
  121.                     0.5,
  122.                     0.5,
  123.                     true,
  124.                     false
  125.                 ]
  126.             ] remoteExec ["BIS_fnc_setRain", 0];
  127.            
  128.             [_DAP_refresh] spawn {         
  129.                 params ["_DAP_refresh"];   
  130.                 while {true} do {
  131.                     [0, 1] remoteExec ["setRain", 0];
  132.                     [0, 0.1] remoteExec ["setFog", 0];
  133.                     [0.9] remoteExec ["setHumidity", 0];
  134.                    
  135.                     [
  136.                         [
  137.                             "a3\data_f\snowflake4_ca.paa",
  138.                             4,
  139.                             0.01,
  140.                             25,
  141.                             0.05,
  142.                             2.5,
  143.                             0.5,
  144.                             0.5,
  145.                             0.07,
  146.                             0.07,
  147.                             [1, 1, 1, 0.5],
  148.                             0.0,
  149.                             0.2,
  150.                             0.5,
  151.                             0.5,
  152.                             true,
  153.                             false
  154.                         ]
  155.                     ] remoteExec ["BIS_fnc_setRain", 0];
  156.                     sleep _DAP_refresh;
  157.                 };         
  158.             };
  159.            
  160.         };
  161.     };
  162.  
  163.     // Handle Wind Strength parameter
  164.     if (_DAP_windStr == 2) then {
  165.    
  166.         _randomwindStr = [0, 0, 0, 0, 0.25, 0.50, 0.75, 1] call BIS_fnc_selectRandom;
  167.         [0, _randomWindStr] remoteExec ["setWindStr", 0];
  168.    
  169.     } else {
  170.    
  171.         [0, _DAP_windStr] remoteExec ["setWindStr", 0];
  172.         [_DAP_windStr, _DAP_refresh] spawn {
  173.             params ["_DAP_windStr", "_DAP_refresh"];   
  174.             while {true} do {
  175.                 [0, _DAP_windStr] remoteExec ["setWindStr", 0];
  176.                 sleep _DAP_refresh;
  177.             };
  178.         };
  179.    
  180.     };
  181.  
  182.     // Handle Wind Force parameter
  183.     if (_DAP_windFrc == 2) then {
  184.    
  185.         _randomWindFrc = [0, 0, 0, 0, 0.25, 0.50, 0.75, 1] call BIS_fnc_selectRandom;
  186.         [0, _randomWindFrc] remoteExec ["setWindForce", 0];
  187.        
  188.     } else {
  189.    
  190.         0 setWindForce _DAP_windFrc;
  191.         [0, _DAP_windFrc] remoteExec ["setWindForce", 0];
  192.         [_DAP_windFrc, _DAP_refresh] spawn {
  193.             params ["_DAP_windFrc", "_DAP_refresh"];   
  194.             while {true} do {
  195.                 [0, _DAP_windFrc] remoteExec ["setWindForce", 0];
  196.                 sleep _DAP_refresh;
  197.             };
  198.         };
  199.     };
  200.  
  201.     // Handle Wind Gusts parameter
  202.     if (_DAP_windGst == 2) then {
  203.  
  204.         _randomWindGst = [0, 0, 0, 0, 0.25, 0.50, 0.75, 1] call BIS_fnc_selectRandom;
  205.         [0, _randomWindGst] remoteExec ["setGusts", 0];
  206.        
  207.     } else {
  208.    
  209.         [0, _DAP_windGst] remoteExec ["setGusts", 0];
  210.         [_DAP_windGst, _DAP_refresh] spawn {
  211.             params ["_DAP_windGst", "_DAP_refresh"];   
  212.             while {true} do {
  213.                 [0, _DAP_windGst] remoteExec ["setGusts", 0];
  214.                 sleep _DAP_refresh;
  215.             };
  216.         };
  217.     };
  218.  
  219.     // Handle Lightnings parameter
  220.     if (_DAP_lightnings == 2) then {
  221.    
  222.         _randomLightnings = [0, 0, 0, 0, 0.25, 0.50, 0.75, 1] call BIS_fnc_selectRandom;
  223.         [0, _randomLightnings] remoteExec ["setLightnings", 0];
  224.    
  225.     } else {
  226.    
  227.         [0, _DAP_lightnings] remoteExec ["setLightnings", 0];
  228.         [_DAP_lightnings, _DAP_refresh] spawn {
  229.             params ["_DAP_lightnings", "_DAP_refresh"];    
  230.             while {true} do {
  231.                 [0, _DAP_lightnings] remoteExec ["setLightnings", 0];
  232.                 sleep _DAP_refresh;
  233.             };
  234.         };
  235.  
  236.     };
  237.  
  238.     // Handle Wave Intensity parameter
  239.     if (_DAP_waveInt == 2) then {
  240.    
  241.         _randomWaves = [0, 0, 0, 0, 0.25, 0.50, 0.75, 1] call BIS_fnc_selectRandom;
  242.         [0, _randomWaves] remoteExec ["setWaves", 0];
  243.    
  244.     } else {
  245.    
  246.         [0, _DAP_waveInt] remoteExec ["setWaves", 0];
  247.         [_DAP_waveInt, _DAP_refresh] spawn {
  248.             params ["_DAP_waveInt", "_DAP_refresh"];       
  249.             while {true} do {
  250.                 [0, _DAP_waveInt] remoteExec ["setWaves", 0];
  251.                 sleep _DAP_refresh;
  252.             };
  253.         };
  254.    
  255.     };
  256.  
  257.     // Set Time
  258.      switch (_DAP_time) do {
  259.        
  260.         case 101: {
  261.        
  262.             setDate [_year, _month, _day, _hour, _minute];
  263.         };
  264.        
  265.         case 0: {
  266.        
  267.             _randomTime = [4, 8, 12, 16, 18, 20, 24, 12, 16, 18] call BIS_fnc_selectRandom;
  268.            
  269.             [[_year, _month, _day, _randomTime, 0]] remoteExec ["setDate"];
  270.            
  271.         };
  272.        
  273.         case 4: {
  274.        
  275.             [[_year, _month, _day, 4, 0]] remoteExec ["setDate", 0];
  276.        
  277.         };
  278.        
  279.         case 8: {
  280.            
  281.             [[_year, _month, _day, 8, 0]] remoteExec ["setDate", 0];
  282.        
  283.         };
  284.        
  285.         case 12: {
  286.            
  287.             [[_year, _month, _day, 12, 0]] remoteExec ["setDate", 0];
  288.        
  289.         };
  290.        
  291.         case 16: {
  292.            
  293.             [[_year, _month, _day, 16, 0]] remoteExec ["setDate", 0];
  294.        
  295.         };
  296.        
  297.         case 18: {
  298.            
  299.             [[_year, _month, _day, 18, 0]] remoteExec ["setDate", 0];
  300.         };
  301.        
  302.         case 20: {
  303.        
  304.             [[_year, _month, _day, 20, 0]] remoteExec ["setDate", 0];
  305.        
  306.         };
  307.        
  308.         case 24: {
  309.            
  310.             [[_year, _month, _day, 24, 0]] remoteExec ["setDate", 0];
  311.        
  312.         };
  313.     };
  314.    
  315.     // Log Weather and Time Initialization
  316.    
  317.     diag_log "// === Weather & Time Initialization Complete ===//";
  318.     diag_log "Selected Settings";
  319.     diag_log format ["Overcast: %1 ", _DAP_weather];
  320.     diag_log format ["Fog: %1 ", _DAP_fogAmt];
  321.     diag_log format ["Rain: %1 ", _DAP_rain];
  322.     diag_log format ["Wind Strength: %1 ", _DAP_windStr];
  323.     diag_log format ["Wind Force: %1 ", _DAP_windFrc];
  324.     diag_log format ["Wind Gusts: %1 ", _DAP_windGst];
  325.     diag_log format ["Lightning: %1 ", _DAP_lightnings];
  326.     diag_log format ["Wave Intensity: %1 ", _DAP_waveInt];
  327.     diag_log format ["Time: %1", _DAP_time];
  328.     diag_log "Results";
  329.     diag_log format ["Overcast: %1 ", overcast];
  330.     diag_log format ["Fog: %1 ", fog];
  331.     diag_log format ["Rain: %1 ", rain];
  332.     diag_log format ["Wind Strength: %1 ", windStr];
  333.     diag_log format ["Snow: %1", rainparams select 15];
  334.     diag_log format ["Wind Force: %1 ", Wind];
  335.     diag_log format ["Wind Gusts: %1 ", gusts];
  336.     diag_log format ["Lightning: %1 ", lightnings];
  337.     diag_log format ["Wave Intensity: %1 ", waves];
  338.     diag_log format ["Time: %1", systemTime];
  339.     diag_log "// ======================================//";
  340.    
  341. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement