Zmęczyła mnie przewidywalność czarnoruskiej pogody, więc popełniłem sobie taki oto skrypcik dodający jej losowe zmiany, mający dodatkowo mniej-więcej uwzględniać ustawione w menu intel prognozy; uruchamiany [200, 600] execVM "weather.sqf":
_interval to czas, w jakim zmiany pogody mają zachodzić.
_cycle to czas pomiędzy dwoma kolejnymi zmianami.
W SP działa cacy, tak samo u mnie gdy zhostuję grę. Wszystko się jednak paprze u innych graczy. Podczas gdy u hosta zmiany pogody są płynne, u graczy (i nie mówię tu o JIP) są mocno opóźnione i następują natychmiastowo (np. w czasie jednej sekundy niebo z zasnutego chmurami staje się całkowicie bezchmurne). Nie mam bladego pojęcia gdzie leży problem. Dodam, że z bardziej skomplikowanymi skryptami do MP nie miałem do tej pory wiele do czynienia (wiem tyle co o upublicznianiu zmiennych i tego typu prostych sprawach).
Pomoc mile widziana. Pozdrawiam.
- Kod: Zaznacz cały
_interval = _this select 0;
_cycle = _this select 1;
while {true} do
{
if (isServer) then
{
_rand1 = random 100;
_rand2 = random 100;
_rand3 = random 100;
_rand4 = random 100;
if (_rand1 <= 50) then { random_fog = 0; } else
{
if (_rand2 <= 80) then { random_fog = 0.1; } else { random_fog = 0.2; };
};
if (_rand2 <= 50) then { random_rain = 0.3; } else
{
if (_rand2 <= 80) then { random_rain = 0.4; } else { random_rain = 0.8; };
};
if (_rand3 <= 40) then { random_overcast = 0.2; } else
{
if (_rand3 <= 70) then { random_overcast = 0.5; } else { random_overcast = 0.7; };
};
_abs_over = abs (overcastForecast - overcast);
_abs_fog = abs (fogForecast - fog);
if (overcastForecast > overcast) then { random_overcast = random_overcast + _abs_over; };
if (overcastForecast < overcast) then { random_overcast = random_overcast - _abs_over; };
if (fogForecast > fog) then { random_fog = random_fog + _abs_fog; };
if (fogForecast < fog) then { random_fog = random_fog - _abs_fog; };
publicvariable "random_fog";
publicvariable "random_rain";
publicvariable "random_overcast";
};
sleep 1;
if (random_overcast < 0.2) then { random_fog = random_fog -0.3; };
if (random_overcast < 0.4) then { random_fog = random_fog -0.2; };
if (random_overcast < 0.7) then { random_fog = random_fog -0.1; };
sleep 1;
if (random_overcast >= 0.7) then { _interval setRain random_rain; };
_interval setFog random_fog;
_interval setOvercast random_overcast;
sleep _cycle;
};
_interval to czas, w jakim zmiany pogody mają zachodzić.
_cycle to czas pomiędzy dwoma kolejnymi zmianami.
W SP działa cacy, tak samo u mnie gdy zhostuję grę. Wszystko się jednak paprze u innych graczy. Podczas gdy u hosta zmiany pogody są płynne, u graczy (i nie mówię tu o JIP) są mocno opóźnione i następują natychmiastowo (np. w czasie jednej sekundy niebo z zasnutego chmurami staje się całkowicie bezchmurne). Nie mam bladego pojęcia gdzie leży problem. Dodam, że z bardziej skomplikowanymi skryptami do MP nie miałem do tej pory wiele do czynienia (wiem tyle co o upublicznianiu zmiennych i tego typu prostych sprawach).
Pomoc mile widziana. Pozdrawiam.