Principe

ceci est un exemple simplifié de création d'unités IA “à la volée”.

“à la volée” c'est à dire au gré du déroulement de la mission, allégeant au début la map en ne mettant pas les unités IA de la fin de la mission.

Simplifié car un leader_x est caché sur la map, et on lui défini avec l'éditeur d'ArmA les points de passage, les modes de combat etc… qui n'auront donc pas besoin d'être scriptés et pourront être tester facilement en prévisualisation.

Le groupe crée aura donc les mêmes caractéristique que ce leader_X.

Préalable

a. Si il y a déjà des unités des 2 camps

Pas d'élément à rajouter

b. Si la map est vide

Il est indispensable de positionner les center east et west. Dans le fichier Init.sqf, placer le code suivant :

Createcenter east;
Createcenter west;
WEST setFriend [EAST,0];
EAST setFriend [WEST,0];

Appel du script

ensuite on place sur l'activation [On Act : ] d'un déclencheur ou sur l'activation d'un point de passage ou autre :

null=[this] execVM "create_group_1.sqf";

Script "create_group_1.sqf"

//////////////////////////////////////////////////////////////////
// create_group.sqf for Armed Assault 
// Created by: Killjoe ; nom de la mission
//////////////////////////////////////////////////////////////////
// Le script ne s'exécute que côté serveur
If !(IsServer) ExitWith {};
 
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_1=this",0.8,"Corporal"];
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_2=this",0.8,"Private"]; 
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_3=this",0.8,"Private"]; 
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_4=this",0.8,"Private"]; 
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_5=this",0.8,"Corporal"]; 
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_6=this",0.8,"Private"]; 
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_7=this",0.8,"Corporal"]; 
"RU_Soldier" createUnit [position leader_1, leader_1, "sol_8=this",0.8,"Private"];
"RU_Soldier_MG" createUnit [position leader_1, leader_1, "sol_9=this",0.8,"Corporal"]; 
 
sleep 10;
 
uaz_1="UAZ_MG_Base" createVehicle position leader_2;
"RUS_Soldier_GL" createUnit [position leader_2, leader_2, "sol_11=this",0.9,"Corporal"];
leader_2 moveIngunner uaz_1;
sol_11 moveIndriver uaz_1;
 
exit;

commentaire :

"RU_Soldier" createUnit [position leader_1, leader_1, "sol_1=this",0.8,"Corporal"];

“classedel'unité” createUnit [position du leader, le leader est leader_1, “nomdel'unité=this”, sa force, “rang”]

uaz_1="UAZ_MG_Base" createVehicle position leader_2;

Nomduvéhicule = “classeduvéhicule” createVehicle position du leader : on crée un véhicule vide puis des unités, à qui on affecte un poste dans le véhicule par movein…

Notes

  • En cas de création de plusieurs véhicule, Il est nécessaire de les décaler dans l'espace pour qu'ils n'apparaissent pas trop près les uns des autres

au risque de se gêner, ou s'endommager (ex hélico AH1W) dans ce cas on utilisera :

AH_2="AH1_Base" createVehicle [(getpos leader_2 select 0)+20,(getpos leader_2 select 1)+20, 0];
  • Dans l'exemple ci dessus il y a 2 groupes indexés sur 2 leader, mais on peut en créer 4 ou 5, correspondant à la zone de combat, à des renforts …
  • On peut ainsi faire facilement des create_group_2.sqf, create_group_3.sqf etc… en fonction des besoins du scénario.

—- killjoe 02/05/2009 18:30

 
scripts/creation-simplifiee-d-unites-a-la-volee.txt · Dernière modification: 25/11/2009 20:20 par KillJoe
 
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