Salut tout le monde.
Bon, j'ai une question concernant la relation entre LE fameux spawn BIS_fnc_MP et mes variables sur un serveur dédié.
Donc en gros, j'ai une variable locale random définie par coté serveur dans un sqf. Et ce que je peux l'utiliser avec un spawn BIS_fnc_MP coté client ou je suis obligé de la passer en variable publique pour pouvoir la transmettre?
La théorie me parait claire, il faudrait, pour moi, une variable publique, mais j'ai lu que mon spawn BIS_fnc_MP pouvait exploiter ma variable locale random. qu'en pensez vous?
Pour être plus clair :
Dans mon init ça donne ça :
Code PHP:
fwd_randomtime_init = compileFinal preprocessFileLineNumbers
"Scripts\fwd_randomtime_init.sqf";
fwd_randomtime01 = compileFinal preprocessFileLineNumbers "Scripts\fwd_randomtime01.sqf";
fwd_randomtime02 = compileFinal preprocessFileLineNumbers "Scripts\fwd_randomtime02.sqf";
_weatherArray = [] call fwd_randomtime_init;
0 = [(_weatherArray select 0), "fwd_randomtime01", true] spawn BIS_fnc_MP;
0 = [(_weatherArray select 1), "fwd_randomtime02", true] spawn BIS_fnc_MP;
Mon script et ses multiples variables dont j'ai besoin coté client, mais qui doivent uniquement être définies (donc publiquement en théorie) par le serveur : fwd_randomtime_init :
Code PHP:
private ["_weather", "_rain", "_fog", "_windStr", "_windDir", "_time", "_randomWeather", "_randomWindStr", "_randomWindDir", "_randomFog", "_randomRain"];
switch (paramsArray select 0) do {
case 1: {_weather = 0;_rain = 0;_fog = 0;_windStr = 1;_windDir = 1;};
case 2: {_weather = .40;_rain = .40;_fog= 0;_windStr = 2;_windDir = 2;};
case 3: {_weather = .70;_rain = .70;_fog = .05;_windStr= 3;_windDir = 3;};
case 4: {_weather = 1;_rain = 1;_fog = .05;_windStr = 4;_windDir = 4;};
case 5: {_weather = .75;_rain = .10;_fog = .30;_windStr = 1;_windDir = 1;};
case 6: {_weather = .85;_rain = .20;_fog = .50;_windStr= 0;_windDir = 0;};
case 7: {
_randomWeather = 0.2 + ((round (random 5))/10);
_randomWindStr = (round(random 60)) - 30;
_randomWindDir = (round(random 60)) - 30;
if ( _randomWeather > 0.7) then {
_randomFog = 0.2 - ((round(random 2))/(10));
} else {
_randomFog= 0.01;
};
if ( _randomWeather > 0.5) then {
_randomRain = _randomWeather +((round(random 2))/(10));
} else {
_randomRain= 0;
};
_weather = _randomWeather;
_rain = _randomRain;
_fog = _randomFog;
_windStr = _randomWindStr;
_windDir= _randomWindDir;
};
};
switch (paramsArray select 1) do {
case 1: {_time = 1;};
case 2: {_time = 5;};
case 3: {_time = 9;};
case 4: {_time = 11;};
case 5: {_time = 15;};
case 6: {_time = 17;};
case 7: {_time = 19;};
case 8: {_time = 21;};
case 9: {_time = round(random 24);};
};
[_time, _weather, _fog,_rain, _windStr, _windDir];
Et les scripts coté client (parce que pour feinter le bug du ciel, je suis obligé de faire le skiptime plus loin, et même faire un second skiptime encore plus loin et donc de poser 3 scripts pour faire un truc aussi con) :
fwd_randomtime01.sqf :
Code PHP:
private ["_time", "_weather", "_fog"];
_time = _this select 0;
_weather = _this select 1;
_fog = _this select 2;
skipTime _time;
1 setOvercast _weather;
1 setFog _fog;
fwd_randomtime02.sqf
Code PHP:
private ["_rain", "_windStr", "_windDir"];
_rain = _this select 0;
_windStr = _this select 1;
_windDir = _this select 2;
skipTime 1;
1 setRain _rain;
setWind [_windStr,_windDir,true];
Est ce que c'est censé être fonctionnel ou est ce que, comme je le pense le spawn BIS_fnc_MP n'est là que pour forcer l’exécution systématique coté client à la connexion et qu'il faut que je passe mes 6 variables en public variables?