Guide: l'éditeur de carte de Warcraft III
- Par RaptorTeak - Edition du : 12 May 2006 - Créé le : 10 May 2006

Chapitre:


Page:


Les booléens

Nous allons voir un type de condition appelé les booléens.

Booléens ?? Hu ?? Ca veut dire quoi ça ?


Un booléens, c'est en fait, pour parler français, une réponse à une question qui peut être OUI ou NON.

Exemples : Aimes-tu les pâtes ?
OUI ou NON, la réponse sera un booléen.

Par contre : Pourquoi aimes-tu ce film ?
Là il faut doner une explication, la réponse ne sera pas un booléen ^^ .

Dans les booléens des conditions de l'éditeur, on pourra trouver :
  • Est-ce que toutes les unités du joueur 1 sont mortes ?
  • Est-ce que ce héros possède l'objet potion de vie ?
  • Et BEAUCOUP d'autres...


Ce qui est important, c'est ce que répond la condition.
En language déclencheur, on ne dira pas OUI ou NON, on dira TRUE ou FALSE.

Bah euh... Pourtant, quand on faisait la condition qui vérifiait si l'unité qui entrait était belle et bien l'archimage, on demandait "Est-ce que l'unité qui entre est l'archimage ?", et là, on peut répondre OUI ou NON.


Oui, je ne peux qu'acquiscer. Toutefois, ce que nous effectuons dans la condition "Est-ce que l'unité qui entre est l'archimage", c'est une comparaison. En effet, on compare l'unité qui entre à l'archimage.

Dans une condition booléenne, on ne fait pas de comparaison. On pose une question directement, sans aucune comparaison.

Il n'y a pas de comparaison dans la question "Est-ce que l'archimage 0000 possède l'objet potion de vie".

C'est donc la réponse à toutes ces questions-là que nous obtiendrons dans les booléens.
Faisons un exemple avec le booléen "Si l'archimage possède l'objet potion de vie".

On crée donc une nouvelle condition. Dans le menu déroulant, on garde le premier type de condition, car c'est ce que nous voulons : boolean comparaison.

Tu viens de nous dire que y'avait pas de comparaison. Pourtant, on voit clairement dans le type de condition "boolean comparaison".


Et bien... Je vous ai à moitié menti. En fait, ce que nous allons "comparer", c'est le résultat avec la question.
Dans la question "Est-ce que l'archimage possède l'objet potion de soins", voici ce que nous comparons :

La réponse à la question "Est-ce que l'archimage possède l'objet potion de soins" avec OUI ou NON

Imaginons que nous voulions que l'archimage possède l'objet potion de soins, sinon on arrête le déclencheur, il faut donc que la réponse à la question soit "OUI". Si la réponse à la question est "NON", alors on arrête tout :

si la réponse à la question "Est-ce que l'archimage possède l'objet potion de soins" est égal à OUI, alors on continue le déclencheur, sinon on stoppe tout.

Si l'archimage avait possédé l'objet potion de vie, cela aurait fait : si OUI = OUI, la condition est bonne, on peut continuer.
Sinon, s'il n'avait pas possédé l'objet, cela aurait donné : si NON = OUI, la condition est fausse, on arrête tout.

Passons maintenant en mode pratique :p .
Cliquez sur le paramètre mis par défaut sur : ((Triggering unit) is Un bâtiment) Egal à TRUE (cette condition mise par défaut vérifie si Triggering unit est un bâtiment ou non).
La condition booléenne pour vérifier si un héros possède un objet de tel type est : Héros - Hero has item Of Type :


Quelle est la différence entre Hero has Item Of Type et Hero Has Item ???


Hero Has Item Of Type permet de voir si un héros a un objet d'un type spécifié. Le type peut être "potion de vie", "clé lunaire", etc... tandis que Hero Has Item permet de savoir si un héros a un objet spécifique et existant sur la map ! Si vous prenez Hero Has Item, vous remarquerez que vous pouvez choisir un objet sur la map à l'aide du bouton Choisir un objet. Tandis que pour Hero Has Item Of Type, vous pouvez choisir directement un type d'objet, ce qui est plus pratique. Mais après, vous faites comme vous voulez ;) .

Voici les deux paramètres à renseigner :
  • Le héros en question, qui doit posséder l'objet
  • L'objet qui doit être possédé


J'ai donc mis mon archimage, ainsi que la potion de soins (elle est trouvé dans la catégorie "valeur". Descendez, elle est vers la toute fin) :



Ensuite, la réponse à la question que l'on voudrait pour continuer le déclencheur. : Egal à TRUE. Et bien, par défaut, c'est déja ce que nous voulons :p (je vous rappelle que TRUE signifie OUI).

Ceci donne en français : "si la réponse à la question Est-ce que l'archimage 0013 possède un objet de type Potion de soins est égale à OUI, alors on continue le déclencheur, sinon on arrête tout....."

Si nous avions voulu continuer le déclencheur si l'archimage n'a PAS l'objet de type "Potion de soins", il aurait fallu mettre : "si la réponse à la question Est-ce que l'archimage 0013 possède un objet de type Potion de soins est égale à NON, alors on continue le déclencheur, sinon on arrête tout.....".
Pour faire ceci, cliquez sur le paramètre par défaut TRUE, et changez sa valeur en FALSE :



(c'est écrit FALS, mais il s'agit bel et bien de FALSE ^^ ).

Et voilà, vous avez votre condition qui vérifie si l'archimage 0013 possède un objet de type "Potion de soins".

Chez moi, il s'agit de l'archimage 0013, mais il se peut que le numéro de votre archimage soit différent. Ou peut-être que vous avez pris un autre héros, de toute façon ce n'est pas ça qui importe ^^ .


A la place d'une unité bien précise, comme l'archimage dans cet exemple, vous pouvez tout à faire utiliser une réponse-évènement comme triggering unit, entering unit, etc.... trouvable dans les fonctions, comme d'habitude :p .