Script "gun scan"

  • Ce script fait scanner l'horizon à une unité.

Effet

  • L'unité dans un statique, scanne l'horizon et change de secteur d'observation toutes les x secondes.
  • Deux classes de statiques sont concernées, Les armements et le projecteur.

Utilisation

  • Différents paramètres sont passés :
    • 1er paramètre : l'unité.
    • 2ème paramètre : un tableau contenant les paramètres de réglage de scanne du statique.
      • Azimut gauche 0 à 360
      • Azimut droit 1 à 720
      • Élévation basse 0 à 360
      • Élévation haute 1 à 450
      • Délai en seconde.
      • Horaire (boolean), true si projecteur.
  • Peut être appelé avant le début de la mission ou en cours de partie par le serveur :
    [unité,[azimut gauche,azimut droit,élévation basse,élévation haute,delai,horaire]] execVM "..\gun_scan.sqf";
  • ZU23 :
    if (isServer) then {[nomdelunité,[0,360,360,420,15 + (random 15),false]] execVM "gun_scan.sqf";};

    Le ZU23 scannera l'horizon sur 360°, changera de secteur entre 15 et 30 secondes.

  • Projecteur :
    if (isServer) then {[nomdelunité,[270,450,355,360,15 + (random 30),true]] execVM "gun_scan.sqf";};

    Le projecteur scannera de l'Est à l'Ouest en passant par le Nord, changera de secteur entre 15 et 45 secondes.

  • Si le statique est un projecteur, il n'est pas nécessaire de scanner en journée, le dernier paramètre du tableau le détermine (boolean).
  • On peut déterminer le plein jour :
    • Soit par la condition de l'utilisation d'appareil à vision nocturne (celle utilisée dans le script)
      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";};
    • Soit en conditionnant l'horaire d'utilisation, mais ici aussi nous aurons des modifications selon la saison.
      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.

Optionnel
  • Dans le cas par exemple d'un projecteur ou si l'on ne veut pas que l'unité soit éliminé, on peut rajouter une ligne qui permet lors d'une attaque de la zone par des IA ENI, qu'ils ne se focalisent pas sur cette unité.
    //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;
Code
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

 
scripts/gun_scan.txt · Dernière modification: 19/08/2011 03:42 par BeTeP
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki