Système TeamSpeak du Réseau Jeux-Strategie.com Abonnez-vous à nos flux RSS Mur du Réseau Jeux-Strategie.com
 
 
 
Guide: l'éditeur de carte de Warcraft III
- Par RaptorTeak - Edition du : 12 May 2006 - Créé le : 10 May 2006

Chapitre:


Page:


Premiers Exemples de Déclencheurs

Aller, nous allons maintenant exploiter quelques exemples simples de déclencheurs. Mais avant tout, une présentation brève des déclencheurs s'impose :) .

Ouvrez votre éditeur de déclencheur (F4). On tombe sur ça :



Vous remarquerez qu'il y a déja un déclencheur de créé, appelé Initialisation Mêlée.

Ce déclencheur est en fait mis par défaut à toute nouvelle map créée. Il a pour but d'initialiser les paramètres de mêlée. (juste les initialiser, ce n'est pas lui qui gère toute l'IA et tout le patatra ^^ ).

Vu qu'on en a vraiment pas besoin, sauf si vous comptez faire une map mêlée (mais moi je vais vous enseigner à faire des scénarios donc bon...) --> Suppr :D

Maintenant, on va créer un nouveau déclencheur (histoire de). Faites Ctrl + T, et renommez votre déclencheur en ce que vous voulez (les caractères spéciaux, accents compris, ne sont pas autorisés). J'ai décidé d'appeler le mien NouveauDeclencheur :



Bon maintenant, intéressons-nous à la partie de droite :

  • Evènements
  • Conditions
  • Actions


Alors je vais vous expliquer en quoi consistent ces trois phases :

  • Les évènements sont tout ce qui va déclencher le déclencheur. On pourra inclure, dans ces évènements, "si l'archimage entre dans la région 001", et plein d'autres choses comme ça :) .
  • Les conditions, c'est ce qui doit être OK pour passer aux actions. On pourra inclure dedans "Si l'unité qui entre est un héros", ou bien "Si l'unité qui entre possède l'objet Potion de Vie". Si l'une de ces conditions n'est pas respectée, le déclencheur s'arrêtera sans effectuer la suite des actions.
  • Les actions sont tout simplement ce qu'execute le déclencheur. On trouvera dedans "Tuer telle unité", ou bien "Monter de niveau tel héros", etc... Seules les actions effectuent des actions visibles sur la map.


Si vous mettez plusieurs évènements, il suffit que l'un d'entre eux se déclenche pour déclencher votre déclencheur ^^ .


Si vous mettez plusieurs conditions, celles-ci doivent être toutes valides pour effectuer les actions.


Voila. Après la théorie, la pratique :) .

Nous allons maintenant voir comment ordonner aux déclencheurs que si telle unité entre dans telle région, on lui fait subir quelque chose.

Commençons déja par créer une région dont nous allons nous servir, ainsi qu'un archimage :



Bien. Vous remarquerez, dans la palette de régions, que notre région s'est renommée Région 000. Pour une map comme celle-là où nous n'en utiliserons qu'une, pas de problèmes, mais le jour où votre map aura 40 régions, et qu'elles s'appellent toutes Région 000, Région 001, etc... Vous vous en sortirez pas. Donc autant prendre les bonnes habitudes dès maintenant, en la renommant en quelque chose d'autre ^^. Pour cela, cliquez droit sur le nom de votre région dans la palette, et faites "renommer région". J'ai décidé de renommer la mienne Region Archimage.



Vous remarquerez que, dans cette petite fenêtre, vous pouvez vous amuser à ajouter un effet météo, ou changer la couleur de la région (fort util pour les maps ayant beaucoup de régions, c'est encore un moyen pour mieux s'y retrouver).

Je le répète encore : Les régions ne sont PAS visibles en jeu. Même si vous changez la couleur, vous attendez pas à voir du rouge en jeu ^^ . C'est juste pour s'y retrouver. Seuls les effets météos sont vus en jeu.


Bien.... Maintenant, c'est l'heure de retourner aux déclencheurs :p .
Nous avons donc notre déclencheur (que j'avais renommé NouveauDeclencheur"), vide.
Dans ce déclencheur, nous allons vouloir faire subir une action à l'archimage lorsqu'il entrera dans la région.
Commençons d'abord par l'évènement. En français, cela nous donnerait : Si l'archimage entre dans la région "Region Archimage" .

Faites donc Ctrl + E (nouvel évènement), et vous devriez voir apparaître cette fenêtre :



Dans ce menu déroulant, nous allons trouver tous les types d'évènements possibles. Seul petit inconvénient dans les déclencheurs : c'est en anglais. Mais bon, par logique on comprend que Map Initialization signifie Initialisation de la map.

Mais nous, ce qui nous interesse, c'est l'évènement : si une unité entre dans une région. On descend un peu et.. tadaa :



On clique dessus, et on abouti à ça :



On remarque ici le mot Region en rouge. Lorsqu'un mot est en rouge, cela signifie que c'est un paramètre à compléter. Ici, nous devons préciser dans quelle région l'évènement s'activera. Cliquons dessus pour voir plus en détail :



Il y a donc trois possibilités ici :

  • Prédéfini, on ne va pas s'en servir, car à art "Pas de Région" y'a rien dedans ^^
  • Variable : Beaucoup plus intéressant, en effet, le nom de notre région y figure !
  • Fonction : Nous verrons plus tard :)


Ce qui nous reste, c'est donc dans la catégorie Variable, puisque de toute façon, impossible de se tromper, vu que notre région figure déja dans la liste.
On va donc cliquer sur le bouton radio (le petit bouton circulaire) en face du mot Variable. On clique sur Ok, Ok encore, et hop, on a notre évènement de créée :) . Maintenant, dès qu'une unité entrera dans la région Region Archimage, le déclencheur s'executera !

Hein ? Mais je croyais qu'on voulait qu'il s'execute seulement si l'unité qui entrait était l'archimage !


Oui oui ^^ . C'est pourquoi nous allons utiliser une condition, qui s'ocupera de vérifier si l'unité qui entre est belle et bien l'archimage en question :) .

Faites donc Ctrl + D (nouvelle condition). Une fenêtre, très similaire à celle d'ajout d'évènement, s'ouvre.
Dans le menu déroulant, il nous propose plein de types de conditions différentes (comparaisons entre des héros, des objets, etc...). Nous, ce que nous voulons, c'est comparer l'unité qui entre à l'archimage. De cette manière, si l'unité qui entre est l'archimage, le déclencheur se poursuivra normalement, tandis que si ce n'est pas l'archimage --> on stoppe tout.
On cherche donc un tantinet, et hop :


On clique, pour aboutir à ceci :



Ici, nous allons devoir remplacer Triggering Unit (mis par défault), et Value, par notre archimage et l'unité qui entre dans la région, pour les comparer.

Commençons par cliquer sur Triggering Unit. Nous allons ici préciser la première unité à comparer : l'archimage.



Un retrouve un encadré quasi-identique avec celui des régions. Sauf que à la deuxième ligne, celle des variables, on a rien o_O .

Mais pas de panique, que voit-on juste à côté ? "Choisir une Unité". Cliquons dessus. Nous nous retrouvons alors sur le terrain de la map. Comme l'a indiqué ce sur quoi nous venons de cliquer, Choisir une Unité, il va faloir la selectionner dans l'éditeur. Cherchez votre archimage et cliquez dessus. La fenêtre des déclencheurs devrait réaparaitre, et vous devriez vous trouver avec ça maintenant :



On clique OK. Voila, la moitié de fait. Mais maintenant, il faut préciser la deuxième unité à comparer : l'unité qui entre.

Hee mais, comment on la trouve cette fameuse unité qui entre, sachant que ça peut être n'importe laquelle ??


Aaahh... Alors là, ouvrez grands vos yeux et ne perdez pas une miette de ce que je vais vous dire :) .

Cliquez maintenant sur Value. Nous allons devoir chercher ce qui pourrait correspondre à l'unité qui entre. Bien sûr, ce n'est pas dans Prédéfini, puisqu'il n'y a rien à part Pas d'unité. Ensuite, cela ne pourrait être une Variable, puisqu'une variable correspond à une unité précise, qui n'entrerait pas forcément dans la région. Nous n'allons pas comparer l'archimage à un gnoll qui se trouve à 500 mètres ^^ .
La réponse est donc forcément dans... Les Fonctions ! Si on y regarde de plus près, il ya plein de Réponse évènements - xxxxx unit.

Eh bien, et retenez bien, Les réponses évènements sont en fait des entités définies par les évènements eux-mêmes !
Par exemple, l'évènement Unité - A unit enters region Region Archimage, va définir l'une de ces Réponses évènements en tant que l'unité qui entre dans la région Region Archimage. Je sais que ça peut paraître un peu dur à comprendre au début, mais on s'y fera très vite.
Mais maintenant, il faut se demander... Quel réponse-évènement notre évènement a-t-il défini en tant que l'unité qui entre ?

Et bien il suffit d'être un tout petit peu doué en anglais pour le voir : Entering Unit. hee oui, Notre évènement a défini Entering Unit en tant que l'unité qui entre. Donc si l'on veut comparer notre archimage à l'unité qui entre, il faudra le comparer à.. Entering Unit !

Imaginons que c'est l'archimage qui entre dans la région Region Archimage :

L'archimage entre dans la région Region Archimage
|
v
Notre évènement défini "Entering Unit" en tant que l'unité qui entre (donc l'archimage)
|
v
La condition compare L'archimage avec Entering Unit.
|
v
La condition est bonne, puisque L'archimage est égal à entering Unit, puisque c'est lui qui entre (vous me suivez toujours ? :p )
|
v
Execution des actions


En gros, ça revient un peu à faire "Si Archimage = Archimage, alors on continue". Toutefois, imaginons qu'un Gnoll était rentré, cela aurait donné :

Un gnoll entre dans la région Region Archimage
|
v
Notre évènement défini "Entering Unit" en tant que l'unité qui entre (donc le gnoll)
|
v
La condition compare L'archimage avec Entering Unit (donc avec le gnoll).
|
v
La condition est fausse, puisque L'archimage n'est pas égal à entering Unit, Puisque Entering Unit = un Gnoll
|
v
Arrêt du déclencheur


On trouve donc rapidement dans la liste des Fonctions ce qui sera l'unité qui entre :



On selectionne, OK, OK, et voila, on a notre condition qui vérifiera si l'unité qui entre est bel est bien l'archimage :) .

Reste maintenant l'action, celle qui va tuer l'archimage.... (ou lui faire monter un niveau, on verra les deux ^^).

Faites donc Ctrl + R (nouvelle action). Pareil que pour les conditions et les évènements, encore un menu déroulant :) .
Là dedans, il va falloir trouver une action qui a pour but de tuer instantanement une unité.
Les actions des unités sont vers la fin, on descend donc. Puis, une fois arrivé à la catégorie d'action des unités, on trouve, tout simplement :



On sélectionne. Là, encore un paramètre en rouge à compléter : il s'agit tout simplement de l'unité à tuer :) .
On clique dessus. Là, nous avons deux possibilités pour tuer l'archimage :

- Soit, dans les Variables, on sélectionne notre archimage dans la liste.
- Comme "Entering Unit" est toujours valide pour les actions, on peut tout simplement le mettre. Car, le jour où vous n'aurez plus d'unités "spécifiques", comme notre archimage, et bien votre seule solution sera de mettre "Entering Unit", puisque votre unité ne pourra pas être listée ;) . (je parle pour les maps qui créent des unités en milieu de partie, et qui n'existent pas au début, par exemple).

Bref, pour prendre des bonnes habitudes dès le début, on va mettre Entering Unit :p .

Ce qui nous ramène à ça :



On clique OK, et voilà, on a notre déclencheur !!
Faisons maintenant un petit récapitulatif, pour être sur de vous faire enregistrer ce que fait notre déclencheur, et pour être sûr que vous ayez compris ce qu'il fait, au lieu d'avoir bêtement fait ce que je disais (j'espère que ce n'est pas le cas, sinon vous n'arriverez jamais à faire des maps indépendemment).



Evènements : "Unité - A unit enters Région 000 <gen>"
Ceci signifie que dès qu'une unité entrera dans la région 000, le déclencheur sera lancé. Ne vous occupez pas du "<gen>", il est là pour faire joli :p .

Conditions : "Archimage 0000 <gen> Egal à (Entering Unit)"
Si jamais l'archimage 0000 (0000 pareil, ne vous en préocuppez pas) est égal à l'unité qui entre (donc que c'est lui, finalement ^^), alors on effectue les actions, sinon on stoppe tout.

Actions : "Unité - Kill (Entering unit)"
On tue l'unité qui entre, tout simplement ^^ .

Si vous voulez faire monter de niveau l'archimage, il s'agit de "Héros - Set Level" :



Et n'oubliez pas : utilisez Entering Unit ;) .

Voila, juste une petite remarque : Nous avons utilisé uniquement "Entering Unit" dans cet exemple. Cela ne signifie pas qu'il faut utiliser Entering Unit partout !! Il s'agissait là de l'unité qui entre, d'où son nom "Entering Unit" ^^ .