[unité,[azimut gauche,azimut droit,élévation basse,élévation haute,delai,horaire]] execVM "..\gun_scan.sqf";
if ((currentVisionMode _unit == 1) || (!_horaire)) then {/*...*/};
Même si on peut rajouter des NVG en début de script (après la récupération de l'unité), cela reste irréaliste avec des unités de type “Insurgés”.
if !(_unit hasWeapon "NVGoggles") then {_unit addWeapon "NVGoggles";};
if ((_horaire && ((daytime > 19) || (daytime < 6))) || (!_horaire)) then {/*...*/};
ATTENTION, l'IA a également un passage de la nuit au jour ou inversement qui ne correspond pas à notre vision de joueur.
//Captive... (neutre, civil), à rajouter après la récupération de l'unité// _unit = _this select 0; /*...*/ _unit setCaptive true; //Et même invincible...// _unit addeventhandler ["HandleDamage",{0}]; //Et dans ce cas rendre le statique presque indestructible également, à rajouter après la récupération du statique.// _vehicle = vehicle _unit; /*...*/ _vehicle setVehicleInit "this allowDamage false;"; processInitCommands;
sleep 1; private ["_unit","_param","_azimut","_elevation","_azim_g","_azim_d","_elev_b","_elev_h","_pos","_delai","_horaire","_vehicle"]; _unit = _this select 0; _param = _this select 1; _azim_g = _param select 0; _azim_d = _param select 1; _elev_b = _param select 2; _elev_h = _param select 3; _delai = _param select 4; _horaire = _param select 5; _vehicle = vehicle _unit; while {alive _unit} do { if ((currentVisionMode _unit == 1) || (!_horaire)) then { _azimut = _azim_g + (random (_azim_d - _azim_g)); _elevation = _elev_b + (random (_elev_h - _elev_b)); _pos = getPos _unit; sleep 0.01; _unit doWatch [ (_pos select 0) + (sin _azimut) * (cos _elevation) * 1000, (_pos select 1) + (cos _azimut) * (cos _elevation) * 1000, (_pos select 2) + (sin _elevation) * 1000 ]; }; sleep _delai; if (damage _vehicle > 0.9) exitWith {}; };
—- Original : BeTeP—- Adaptation du scanne R3F_Arty&Log de Madbull