Retour site Galerie Armed 2 Vidéos Historique Ofp Ofp2
Mardi 16 Mars 2010
Bonjour Votre Matricule est :

Retour : Accueil » SCRIPTS pour création de mission

Script poursuite --> pourchasse.sqs
Jackfrench
Général de classe exceptionnelle
rangs perso

Jackfrench

Date d'inscription : 27/12/2006
Messages : 347
Groupe : Administrateur

Posté le 30/12/2006 à 15:48:17  
;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


Voir le profil


Contacter l'administrateur | Recherche | Marquer tous les forums comme lus | Haut
    
Retour site Galerie Flash infos Armed 2 Vidéos Liens Historique Ofp Ofp2