WIKI ADO

Accueil > ArmA2 > Edition de missions > Faire quelque chose aléatoirement

Faire quelque chose aléatoirement

- Publié le 16 Avril 2013 à 17h58 - Modifié le 25 Avril 2013 à 22h17
Dans les missions, il est parfois intéressant de mettre des objets ou des unités qui n'apparaissent pas toujours au même endroit. C'est pour cela que nous utilisons la fonction random.
Par exemple nous voulons qu'une unité apparaisse sur une des 3 positions différentes lors du lancement de la mission.

Méthode sans script


Erreur Image

Dans un premier temps, placez une unité (F1).
La position initiale + deux marqueurs feront en sorte d'avoir 3 positions aléatoires. Vous pouvez bien entendu en rajouter.

Les déclencheurs permettent de configurer certain attributs de l'unité tels que la direction, la hauteur, etc..

Voici un exemple :

Position 2


Liaison (F2) :

Configuration du déclencheur :

Position 3


Liaison (F2) :

Configuration du déclencheur :

(thislist select 0) permet de sélectionner notre unité qui est reliée au déclencheur.

Méthode avec script


Erreur Image

Dans un premier temps, placez une unité et nommé la Jean.
Ensuite il faut créer 3 marqueurs avec un nom différent.
Par exemple :

Maintenant dans le dossier de votre mission, vous allez créer un fichier : (Mes documents/[ArmA2\ArmA2 other Profiles]/VotrePseudo/missions/maMission.*/)
Il existe plusieurs méthodes, choisissez laquelle vous voulez utiliser.

Méthode 1

init.sqs


Insérez le code suivant dans le fichier init.sqs :

_rand = floor(random 3);
_pos1 = getMarkerPos "M1";
_pos2 = getMarkerPos "M2";
_pos3 = getMarkerPos "M3";
 
?(_rand == 0) : Jean setpos _pos1;
?(_rand == 1) : Jean setpos _pos2;
?(_rand == 2) : Jean setpos _pos3;

Méthode 2

init.sqs


Insérez le code suivant dans le fichier init.sqs :

_rand = floor(random 3);
 
?(_rand==0):goto "position1"
?(_rand==1):goto "position2"
?(_rand==2):goto "position3"
 
#position1
_pos1 = getMarkerPos "M1"
Jean setpos _pos1
exit
 
#position2
_pos2 = getMarkerPos "M2"
Jean setpos _pos2
exit
 
#position3
_pos3 = getMarkerPos "M3"
Jean setpos _pos3
exit

Méthode 3

init.sqf


Insérez le code suivant dans le fichier init.sqf :

_rand = floor(random 3);
_pos = switch (_rand) do {
case 0: { getMarkerPos "M1" };
case 1: { getMarkerPos "M2" };
case 2: { getMarkerPos "M3" };
default { getMarkerPos "M1" };
};
Jean setpos _pos;

Et voila, votre unité apparaitra aléatoirement soit à la position M1, M2 ou M3.