Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Commençons par le début, ce que vous allez réaliser:
L'histoire est très simple vous êtes dans une petite maison avec une arme, vous sortez de la maison et à ce moment là vous apercevez un transport de troupe du cartel qui se dirige vers vous en vous canardant. Vous vous abritez dans la maison mais c'est alors que vous apercevez que l'engin s'est posé et est en train de débarquer ses soldats. Ils se mettent alors en position pour donner l'assaut à la maison dans laquelle vous vous trouvez.
Ce n'est pas un scénario terrible mais ça va vous faire travailler un petit moment pour réaliser ce combat qui mine de rien peut durer plusieurs minutes voir plus.
En premier lieu il nous faut une maison et comme je suis très gentil je vais même vous en fournir une, comme ça vous n'aurez plus aucune excuse pour réaliser ce TP:
Vous n'êtes absolument pas obligés de la télécharger, vous pouvez en créer une par vous même mais je préfère en proposer une comme cela vous pouvez vous concentrer sur la configuration de l'assaut et tout le monde part sur un pied d'égalité.
A partir de maintenant je pars du principe que vous avez téléchargé la map: comme vous pouvez le voir, elle est très basique (une maison sans meubles avec juste une porte et un trou à l'arrière de la maison, je vous laisse deviner pourquoi

) mais elle sera parfaite pour le TP.
Avec ce que vous avez appris dans les chapitres précédents vous êtes capables de réaliser un assaut mais pas de configurer un débarquement puis un assaut coordonné, on va tout de suite y remédier.
Avant de réaliser le TP il y a quelques petites choses qu'il faut que vous sachiez:
Configuration du débarquement
Pour réaliser cela il nous faut:
- 1 npc_combinedropship: c'est le vaisseau d'où débarqueront les soldats.
- 4 npc_combine_s: ce sont les soldats qui vont sortir du vaisseau.
- 5 info_target: on va en utiliser un pour indiquer où doit se poser le vaisseau et les autres pour indiquer aux soldats où ils doivent se rendre lorsqu'ils sortent du vaisseau.
- 4 path_corner: le npc_combinedropship est incapable de se déplacer de manière autonome, il se contente de suivre un chemin et de suivre un script, on va en utiliser 2 pour l'amener sur les lieux et 2 autres pour le faire repartir.
Configuration des soldats
Leur configuration est assez simple, il suffit juste de leur donner un nom (exemple: soldat1, soldat2, etc...), de les armer

mais il faut aussi dans l'onglet
Flags cocher la case
Template NPC (used by npc_maker, will not spawn), il faut cocher cette case sinon le
npc_combinedropship ne pourra pas débarquer de troupes, vous allez comprendre juste après lors de sa configuration.
Configuration du npc_combinedropship
Comme je l'ai dis précédemment, le
npc_combinedropship (que l'on va nommer
dropship) suit les
path_corner et exécute des scripts donc on va lui tracer un chemin pour qu'il puisse se rendre sur le lieu où il doit débarquer les soldats puis un autre pour qu'il puisse repartir une fois sa mission accomplie.
Pour le chemin de départ: on place 2
path_corner, l'un au fond de la map qu'on appellera
path1 et un autre au dessus de la zone de débarquement à une hauteur de 256 unités environ et on l'appellera
path2.
Pour le chemin du retour: on en place un pas trop loin de la zone de débarquement (on l'appellera
path3) et le dernier vers le fond de la map avec pour nom
path4. Ensuite on relie entre eux
path1 et
path2 puis entre eux
path3 et
path4 mais surtout ne pas relier entre eux
path2 et
path3 sinon vous verrez le vaisseau qui suivra le parcours sans déposer sa cargaison

. Je n'explique pas comment les relier entre eux car vous avez appris cela lors du cours sur
les patrouilles, je vous invite à aller le relire si vous ne savez pas comment faire.
Pour le npc_combinedropship, vous allez mettre dans le champ Target path_track le nom du second path_track, c'est à dire path2.

Ou j'ai rien compris aux patrouilles ou tu t'es trompés, ce serait pas plutôt
path1 ?
Et bien non car en fait dans une vrai map le vaisseau surgit souvent de derrière une colline ou un immeuble et va suivre le chemin décrit par les
path_track jusqu'au
path_track indiqué car en fait il va remonter le chemin des
path_track jusqu'à ce qu'il tombe sur celui qui contient les instructions suivantes:
Dans l'onglet
Outputs:
| My output named | Targets entities named | Via this input | With a parameter override of |
|---|
| OnPass |
dropship |
FlyToSpecificTrackViaPath |
path2 |
Ces instructions demandent au
npc_combinedropship de voler jusqu'au
path_track indiqué en suivant le chemin tracé par les autres
path_track, de plus il sait qu'en arrivant au
path_track indiqué il aura autre chose à faire, ça lui permet d'anticiper et donc d'enchainer les actions sans problèmes.
Une fois qu'il arrive au
path2, il va déclencher un script qui l'oblige à se poser et à débarquer ses troupes, pour cela dans l'onglet
Outputs:
| My output named | Targets entities named | Via this input | With a parameter override of |
|---|
| OnPass |
dropship |
LandTakeCrate |
4 |
Il va donc se poser et débarquer ses soldats (ici il en débarque 4 mais il peut en débarquer jusqu'à 6), mais il faut aussi lui indiquer où il doit les déposer. Pour cela on utilise un
info_target que l'on nommera
zonedeb et que l'on placera au sol pas trop loin du
path2.
Ensuite chaque soldat qui débarque doit savoir où il doit se rendre, pour cela on va placer les 4 autres
info_target pas trop loin du premier et leur donner à chacun un nom différent (exemple terre1, terre2, etc...). Ils resteront chacun à cet endroit jusqu'à ce qu'un script leur demande de faire autre chose.
Passons maintenant au
npc_combinedropship, il va y avoir un certain nombre de champs à remplir:
| Champ | Valeur | Explication |
|---|
| Name |
dropship |
c'est plus la peine que j'explique pourquoi il faut lui donner un nom |
| Target path_track |
path2 |
le nom du path_track vers lequel il doit se diriger au final |
| Land target name |
zonedeb |
c'est le nom de l' info_target qui indique la zone d'atterrissage (attention à l'orientation) |
| Name of template NPC 1 |
soldat1 |
nom du premier soldat qui va sortir du vaisseau (faites pareil pour les autres npc) |
| Name of dustoff point for NPC 1 |
terre1 |
c'est le nom de l' info_target vers lequel le NPC va se diriger à sa sortie du vaisseau |
| Crate Type |
Soldier Crate |
c'est le container de transport de troupe pour le npc_combinedropship |
Une fois qu'il a fini de débarquer ses troupes, le
npc_combinedropship doit exécuter un script qui l'oblige à repartir en suivant un autre chemin (au bout duquel le npc est souvent supprimé pour soulager le moteur du jeu), pour cela on va faire comme à l'allée, donc dans l'onglet
Outputs du
npc_combinedropship :
| My output named | Targets entities named | Via this input | With a parameter override of |
|---|
| OnFinishedDropoff |
dropship |
OnFinishedDropoff |
path4 |
Cela indique qu'une fois le débarquement fini, le
npc_combinedropship doit se diriger vers
path_corner numéro 4 en suivant le chemin tracé par les autres
path_corner.
Configuration du logic_relay
Le problème: c'est que une fois les
npc_combine_s débarqués, ils restent là où ils sont ce qui n'est pas très bien, on va donc faire en sorte qu'à la fin du débarquement un assaut se déclenche et pour cela on va utiliser un
logic_relay. En fait un
logic_relay, c'est juste un relais, on le déclenche par un output et à son tour il va déclencher une série de scripts, il est juste là pour nous permettre de mieux nous organiser lorsqu'on mappe. Vous n'êtes pas obligé de faire comme moi et de l'utiliser mais c'est beaucoup plus pratique et ça permet de mieux s'organiser sur la map.
Tout d'abord il faut le déclencher ce
logic_relay (on va aussi lui donner un nom par exemple relais1), et comme il doit être déclenché à la fin du débarquement, on va tout simplement le déclencher comme l'instruction précédente:
| My output named | Targets entities named | Via this input | With a parameter override of |
|---|
| OnFinishedDropoff |
relais1 |
Trigger |
<none> |
Mais maintenant qu'est ce qu'on fait ? Il va déclencher quoi ton logic_relay?
Il va déclencher le début de l'assaut: si vous n'êtes pas au point sur les assauts je vous conseille d'aller relire
le tuto qui en parle. Le
logic_relay va activer les
ai_goal_assault pour que chaque NPC se rende à son
assault_rallypoint, puis il va attendre que les autres NPCs soient aussi en place afin de charger tous en même temps.
Mais pour déclencher un assaut à un autre moment qu'au chargement de la map il faut que l'
ai_goal_assault qui gère cet assaut soit désactivé au démarrage (pour cela on met dans le champ
Start Active la valeur
No.
Configuration du math_counter
Certains vont faire "beeeeh" et je les comprends (en leur répondant y a pas de mais

). En effet cette entité à comme représentation des moutons qui sautent par dessus un barrière car c'est son rôle de compter
les moutons. A chaque action dans le jeu (mort d'un NPC, porte ouverte, etc...) un output contenant une valeur (1, 2, 3, .. 37) peut être envoyé au
math_counter et une fois arrivé au résultat voulu celui ci déclenche un autre output.
Ici on veut faire un assaut coordonné, c'est à dire qui se déclenche au moment où tous les NPCs sont en position. Et pour moi un NPC est en position lorsqu'il se place sur son
assault_rallypoint, à ce moment là un output va être déclenché et ajouter +1 au
math_counter, et lorsque celui ci aura atteint le nombre voulu il déclenchera l'assaut

(Ici j'appelle le
math_counter:
gogogo).
Un npc arrive sur un
assault_rallypoint, cela va ajouter +1 au
math_counter:
Il y ici 4
assault_rallypoint qui chacun vont ajouter +1 au
math_counter, donc lorsque celui ci arrive à 4 il doit déclencher les assauts:
Et c'est parti: les 4 NPCs vont s'élancer tous en même temps, c'est à vous de jouer maintenant.