39-45 Stratégie > Jeux vidéo > Theatre of War > Theatre of War > Tutoriel de l'éditeur > Les scripts > Partie B 

tuto script partie B


Nous allons dans cette partie voir comment faire les triggers d'attaque de l'ennemi (IA).


Tout d'abord, nous allons renommer les groupes d'unité ennemie avec des noms « compréhensible ».


Avant :



Après :



Nous distinguerons trois groupes d'unité pour trois vecteurs d'attaque :

Les T26+ l'infanterie, attaque au centre

Les trois BT7, attaque aléatoire

Les deux T60, attaque aléatoire par la droite ou la gauche.


Concrètement, il serait plus simple de mettre les 3 BT7 dans le même groupe par exemple. Mais comme nous avons utilisé le générateur de mission, cela n'a pas été mis comme ca. Peu importe.


Script attaque T60

Nous allons commencer par décrire le chemin que doivent prendre les T60.

Pour cela, nous allons créer un certain nombre de point sur la carte.

Les points seront regroupés dans une suite consécutive, appelée « array ».

On demandera au T60 de suivre l'ordre des points sur la carte dans la suite « array ».


Création des points et de l' « array ».


On clique sur l'onglet « Points... »

Un clic droit sur array permet de créer un nouvel « array »

On lui donne son petit nom pour pouvoir le retrouver, « chemin_droite »



Ensuite, nous devons créer l'ensemble des points pour faire le chemin.

Pour cela, on centre la carte sur le premier point que l'on souhaite, et on zoom un peu.

Un clic droit sur l'arborescence « point » permet de faire apparaître le menu « add point ».



Le point appelé « Point_1 » a été crée au centre de la vue sur la carte.


On peut modifier à la main ses coordonnées et son nom (nous laisserons le nom ici).


On recommence en parsemant le chemin prévu pour l'attaque droite de points.


Maintenant, nous allons rassembler les points dans l'ordre pour constituer le chemin.

Un clic droit sur le premier point fait apparaître le menu nécessaire.


On assemble tous les points et on finit par la destination finale, le rectangle A1 du village.



On recommence de la même manière pour créer le chemin_gauche.

Voici le résultat sur la carte, avec les deux axes latérales de l'attaque :



Le script d'attaque des T60

Nous allons maintenant retourner dans l'onglet trigger, et créer le programme gérant les T60.

Dans le principe, nous attendons 5 minutes que l'infanterie soit partie.

Puis on tire au « dé » un nombre aléatoire entre 1 et 100.

Si ce nombre est inférieur à 50, les T60 prennent le chemin droite.

Si ce nombre est supérieur à 50, les T60 prennent le chemin gauche.

Plusieurs instructions sont disponibles pour faire « avancer » des troupes. Ces instructions sont en fait des « commandes » que l'on exécute avec « RunCommand ( commande , paramètres ) ».

On peut utiliser :

RunCommand ( GROUP , "T60_1" , STORM , ARRAY , "chemin_droite" )

Ce qui signifie, pour le groupe appeler T60_1, assault suivant les points de l'ensemble array « chemin_droite ».

STORM signifie assault.

On peut remplacer par  ATTACK

                                     MOVE

                                     DEFEND

ou encore                      OUT_CREW

                                     IN_CREW

pour faire monter au descendre l'équipage d'un véhicule.

Comme toujours, on spécifie le groupe (ou l'unité avec son ID), et la zone (array, rect ou point).

Ce qui donne pour la première partie du trigger :


delay ( 300000 ) // 5 minutes avant départ des T60

SET @alea1 = Rnd ( )

IF ( @alea1 < 50 ) THEN

RunCommand ( GROUP , "T60_1" , STORM , ARRAY , "chemin_droite" )

DELAY ( 10000 ) // delai 10 secondes avant depart deuxième T60)

RunCommand ( GROUP , "T60_2" , STORM , ARRAY , "chemin_droite" )

ENDIF


IF ( @alea1 > 49 ) THEN

RunCommand ( GROUP , "T60_1" , STORM , ARRAY , "chemin_gauche" )

DELAY ( 10000 ) // delai 10 secondes avant depart deuxième T60)

RunCommand ( GROUP , "T60_2" , STORM , ARRAY , "chemin_gauche" )

ENDIF


//----------------------------------------------------------------------------

Dans la deuxième partie du trigger, nous allons tester si les T60 sont arrivés au village du joueur. Si c'est le cas, les T60 passent en mode défendre après 3 minutes. Ce test est très pratique pour savoir si une unité a fini son chemin. Il est donc important de finir le chemin par une zone rectangle et non un point.


label arrive_village // lorsque un T60 arrive dans le village, il se met en mode defendre

delay ( 10000 )

SET @num1 = GetNUnitsInArea ( GROUP , "T60_1" , tanks , "A1" )

SET @num2 = GetNUnitsInArea ( GROUP , "T60_2" , tanks , "A1" )

IF ( @num1 > 0 OR @num2 > 0 ) then

   delay ( 180000 )

   RunCommand ( GROUP , "T60_1" , DEFEND , RECT , "A1" )

   RunCommand ( GROUP , "T60_2" , DEFEND , RECT , "A1" )

   HALT

ENDIF

goto arrive_village

Halt

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Enfin, on ajoute ce trigger dans le trigger init


++++++++++++++++ trigger init +++++++++++++

RunTrigger ( "attaque T60" )


delay ( 600000 )

RunTrigger ( "defaite" )

RunTrigger ( "victoire" )

Halt

++++++++++++++++++++++++++++++++++++++

Nous allons faire exactement le même trigger pour les BT7.

Mais comme ces chars sont plus rapides, on mettra un délai au début de 7 minutes (7*60 000)

 

La suite (la gestion de l'infanterie par les triggers)

Retour au sommaire