;ATTENTION écrit pour OFP non Testé Arma version française ;========================================================================== ;pourchasse.sqs: Version 1.00 ;Ce script réalise la poursuite d'une unité ou d'un groupe par un autre. ; ; ; Paramètres: ; ; Paramètre 1: le(s) poursuivant(s) - peut être un groupe ou une unité ; Paramètre 2: le(s) poursuivi(s) - peut être un groupe ou une unité ; ; ; Attention, ce script utilise le script "deplacementAleatoire.sqs" ; ;Exemple: ; ;[group mechants,player] exec "pourchasse.sqs"
_groupe_chasseur = group (leader (_this select 0)); _proie = leader (_this select 1); _lasttime = time; _rayon = 0.5 * ((leader _groupe_chasseur) distance _proie) _pos_origine = getpos (leader _groupe_chasseur);
#determine_position
_connaissance = _groupe_chasseur knowsabout _proie; _distance = (leader _groupe_chasseur) distance _proie;
~1 ;Ligne de debug... ;hint format["KnowsAbout: %1 rayon: %2",_connaissance,_rayon];
; Si le groupe se trouve à la dernière position connue de la cible, il passe ; en mode "recherche et destruction". ? (time - _lasttime) > 5 and unitReady (leader _groupe_chasseur) : [_groupe_chasseur,getpos leader _groupe_chasseur,_rayon,false] exec "deplacementAleatoire.sqs";
; Si cela fait plus de 5 minutes que la position de la proie n'a pas ; été réactualisée, on abandonne la recherche. ? time - _lasttime > 300 : goto "fin";
; Si les chasseurs n'en savent pas suffisamment, on ne réactualise pas ; la position de la proie. ; Info: la fonction knowsAbout renvoit la valeur 1.5 si la cible est repérée... ? _connaissance < 1.49 : goto "determine_position"
_lasttime = time;
?not alive _proie : goto "fin" ?count units _groupe_chasseur == 0 : goto "fin";
#actualisation _position = getpos _proie;
_coeff_localisation = (5 - sqrt _connaissance) * _distance / 20;
_alpha = random 360;
_rayon = (random (3 * _coeff_localisation / 4)) + (_coeff_localisation / 4); _posx = (_position select 0) + (_rayon * (cos _alpha)); _posy = (_position select 1) + (_rayon * (sin _alpha)); _pos_estimee = [_posx,_posy]; _groupe_chasseur move _pos_estimee;
~4
goto "determine_position"
#fin
_groupe_chasseur move _pos_origine; exit
 |