Article écrit par Bishop, le 1er mai 2004.


Campagnes personnalisées : éditeur de cartes de Frozen Throne, v1. 14

Pour faire une campagne personnalisée, il y a certaines choses importantes dont il faut tenir compte, et qu'on utilise pas quand on fait une seule carte:

  1. Tant qu'une carte n'a pas été terminée avec succès, on ne doit pas avoir accès aux cartes suivantes depuis l'écran de campagne.
  2. Quand une carte se termine avec succès, on doit pouvoir aller directement à la suivante sans retourner à l'écran de campagne.
  3. Si un héros termine une carte, il doit commencer la suivante avec les mêmes objets, points d'XP, etc.
Ce tuto explique ces points, et seulement ces points. Je conseille à ceux qui n'ont encore pas utilisé l'éditeur de carte de se familiariser avec en créant des cartes simples et en essayant les possibilités offertes par les déclencheurs. Si vous ne savez pas encore ce qu'est un déclencheur, alors ce tuto vous sera incompréhensible. Si vous n'avez pas The Frozen Throne, vous ne pouvez pas créer ni jouer à des campagnes personnalisées.

Pour ceux qui ne désirent pas lire le tutorial, il y a en fin de page une campagne à télécharger ou il n'y a encore rien d'autre que les points expliqués ci-après. Elle peut être utilisée comme base de départ pour créer une campagne. Mais pour ceux qui n'y connaissent rien, ou qui ne comprennent pas le contenu du fichier, je conseille de lire ce tutorial. Il a l'air long mais tout est expliqué en détail, ce qui rend la lecture facile (j'espère en tout cas).

Pour expliquer les points ci-dessus, je vais utiliser un exemple de campagne avec 2 cartes (si il y en a plus, ça ne change pas grand-chose). Ma campagne dont le héros s'appellera Toto (eh oui on a tous eu les mêmes profs) aura comme nom de fichier "campagneToto. w3n" (les noms de fichiers et les extensions sont importantes: on peut choisir ce qu'on veut, mais il faut bien se rappeler des noms, c'est pourquoi j'utilise ci-après des "règles" pas obligatoires mais prudentes). Je vous propose de suivre mes étapes pas à pas.


Création de la campagne

Pour insérer une carte dans la campagne, il faut d'abord l'avoir créée, puis lancer l'éditeur de campagne, puis insérer la carte dans la campagne. Mais une fois dans la campagne, quand on modifie la carte, le fichier d'origine n'est plus modifié. Seul le fichier campagne, qui contient à présent la carte, est modifié. Pour créer une campagne à deux cartes, on commence donc par créer deux cartes, "carte1. w3m" et "carte2. w3m" avec encore rien dedans, on les éditera plus tard. On lance l'éditeur de campagne (F7) et on crée une nouvelle campagne. On y insère les cartes créées et on la sauve sous "campagneToto. w3n" (Pour l'instant, on s'en fout des messages d'erreur du type "cartes non utilisées"). On peut maintenant détruire les fichiers "carte1. w3m" et "carte2. w3m" car les cartes ont été dupliquées dans le fichier "campagneToto. w3n". Je conseille même de le faire pour être sûr de modifier la carte de la campagne et pas la carte d'origine.

Remarques : Quand on crée une nouvelle carte, les champs "tuiles", "terrain initial" et "niveau falaise" ne pourront plus être modifiés par la suite, il faut donc savoir déjà maintenant ce qu'on veut avoir. Mais si on se trompe, on peut y remédier en enlevant la carte de la campagne, créer une nouvelle carte qui a le même nom (si on veut que les déclencheurs qui s'y réfèrent fonctionnent toujours) et l'insérer dans la campagne.


Boutons

On va maintenant ajouter les "boutons" qui permettent dans l'écran de campagne de choisir la carte (la quête) qu'on veut jouer. On va donc s'arranger pour que seul le bouton de la carte 1 soit visible, et on s'arrangera plus tard pour qu'une victoire dans la carte 1 rende visible le bouton de la carte 2.

Dans l'éditeur de campagne, on va dans le 2ème onglet: "Ecran de chargement". Ctrl+A pour ajouter un bouton. On met les chapitres et titres qu'on désire (ils formeront le titre vu de l'écran de campagne), et comme fichier: "carte1. w3m". On coche la case "Visible". On recommence pour la carte 2 mais sans cocher la case "Visible". Si il y a plus que 2 cartes, on ne coche la case visible que pour la première carte. Vous avez compris à quoi servait cette case à cocher, non ? Maintenant si vous sauvez votre campagne il ne devrait plus y avoir de message d'erreur.

On crée maintenant dans la carte 1 un déclencheur qui permet de rendre visible le bouton de la carte 2 et qui indique que la carte 2 est la suivante dans la campagne (afin de la charger automatiquement en cliquant sur "continuer" après une victoire sur la carte 1).

Dans l'éditeur de campagne sous le premier onglet "général", on right-click la carte 1 et clique "éditer carte". Remarquez que dans la barre de titre, au lieu de "carte1. w3m" on a "campagneToto. w3n -- carte1. w3m". On vire le déclencheur de mêlée et on ajoute un déclencheur (dans un dossier "Fin de partie") qu'on nomme "nextLevel" et on lui met comme actions:
  • Partie - Montrer custom campaign button 2
  • Partie - Set the next level to carte2. w3

On ne met pas d'événement pour ce déclencheur, car on ne sait pas encore quel événement déclenchera la fin victorieuse de la partie. Quand on l'aura décidé, il ne restera qu'a créer un déclencheur "Victoire" qui lancera celui-ci avec l'action:
  • Déclencheur - Run nextLevel (checking conditions)
Si on a plus de 2 cartes, il n'y a plus qu'à répéter ceci pour toutes les cartes sauf la dernière et voilà. Les points 1 et 2 cités au début ont été résolus. Pour le point 3 (conserver le héros d'une carte à l'autre), c'est un peu plus compliqué:


Cache du jeu

Pour conserver le héros tel quel d'une carte à l'autre de la campagne, il faut créer un "cache du jeu" dans lequel on enregistrera le héros.

Je fais l'exemple pour un seul héros : toto.

Le cache fonctionne un peu ainsi : à la fin de la carte 1, on "sauve" dans le cache toto pour la carte 2. Au début de la carte 2, on "récupère" le toto pour la carte 2. Si il y a une carte 3, alors à la fin de la carte 2, on "sauve" dans le cache toto pour la carte 3. Au début de la carte 3, on "récupère" le toto pour la carte 3 (dans le cache, ce seront 2 Toto différents).

On est toujours à l'édition de la carte 1. On commence par placer le héros et l'emplacement de départ du Joueur1 où on le désire. Pour l'exemple, je choisis de prendre le héros neutre Belluaire que je mets sur la carte. On crée une variable de type "unité" qu'on appelle Toto (Ctrl+B depuis l'éditeur de déclencheur). Je crée un déclencheur "setHeros" (dans un dossier "Heros") dans lequel je met l'action:
  • Set toto = Belluaire 0001
Ainsi, chaque fois qu'on devra utiliser le héros, on utilisera la variable "toto" correspondante.

Remarque : Ce déclencheur non plus n'a pas d'événement. Il sera lancé par un autre déclencheur dont l'événement sera "map initialization". Ca peut paraître idiot, mais il vaut mieux être structuré dès le début car tout à la fin, il y a beaucoup de déclencheurs dans une carte, et il se passe beaucoup de choses lors de l'initialisation. Je préfère avoir un déclencheur "init" qui en lance 10 autres de différentes catégories qu'avoir un "init" de 3 km de longs et ou on ne s'y retrouve plus.

Il faut qu'à la fin de la partie, toto soit sauvé dans le cache. Dans le dossier "Fin de partie" crée précédemment on met un nouveau déclencheur "sauverCache" dont les actions sont les suivantes:
  • Cache du jeu - Create a game cache from campagneToto. w3v
  • Cache du jeu - Store toto as toto of carte2 in (Last created game cache)
  • Cache du jeu - Save (Last created game cache)
Remarques : on a bien sauvé "toto of carte 2" car c'est toto tel qu'il est destiné pour commencer la carte 2. Mais vous pouvez mettre le nom que vous voulez du moment que vous vous y retrouvez.
Une fois encore, ce déclencheur sera lancé par un autre ("Victoire"), car on n'a pas encore décidé de l'événement qui amènera la victoire.

Pour tester, on peut mettre un tout petit monstre sur la carte (une araignée de niveau 1), et décider momentanément que tuer ce monstre amène une victoire. Pour aller encore plus vite, on peut réduire les points de vie de l'araignée à 1%. On peut enfin créer ce déclencheur "Victoire" dans "Fin de partie".

Evénement :
  • Unité - Araignée sylvestre 0002 meurt
Actions :
  • Déclencheur - Run sauverCache (checking conditions)
  • Déclencheur - Run nextLevel (checking conditions)
  • Partie - Victory Joueur 1 (Rouge) (Montrer dialogs, Montrer scores)
Les déclencheurs crées pour la carte 1 propres à mon exemple se résument ainsi:


Cliquez sur l'image pour l'agrandir

A ce stade, on peut lancer la campagne, et faire la quête 1. Mais quand on passera à la 2, on n'aura pas de héros.

Il reste à éditer la carte 2 pour y récupérer toto qu'on vient de sauver dans le cache : Editeur de campagne, right-click sur la carte 2, "éditer carte". Depuis l'éditeur de déclencheur, Ctrl+B pour créer la variable toto. On crée une région sur la carte là où on veut que notre héros apparaisse (a priori, là ou il y a l'"emplacement de départ"). Dans un dossier "Heros" on crée le déclencheur "setHeros" (sans événement) avec les actions:
  • Cache du jeu - Create a game cache from campagneToto. w3v
  • Cache du jeu - Restore toto as toto of carte2 in (Last created game cache) for Joueur 1 (Rouge) at (Center of Region 0000 ) facing 0. 0
  • Set toto = (Last restored unit)
Il faut encore créer un déclencheur "init" dans "initialisation" qui lance ce déclencheur, et un déclencheur "victoire". Si cette carte n'est pas la dernière, il faut alors recommencer les étapes de la carte 1 pour faire apparaître le bouton 3 lors d'une victoire, et pour sauver "toto as toto of carte3" pour la prochaine carte.

Pour tester la carte, faisons rapidement un déclencheur victoire. Par exemple, on met une deuxième région sur la carte, et on décide que la partie est gagnée si le héros y entre.

La campagne est maintenant terminée à cela près qu'elle est un peu simple... tuer une araignée qui n'a que 10% de ces points de vie et entrer dans une région sur une map sur laquelle il n'y a aucun ennemi...

Mais on peut déjà la tester : on commence avec le belluaire sur la carte 1, on choisit un sort, on tue l'araignée, et on arrive sur la carte 2 avec le sort déjà sélectionné et les points d'XP obtenus en tuant l'araignée... C'est bon !

Les déclencheurs crées pour la carte 2 propres à mon exemple se résument ainsi:

Cliquez sur l'image pour l'agrandir

Remarques : Si vous faites plus que 2 cartes, alors les cartes du milieu (ni la première, ni la dernière) auront 2 accès au cache du jeu : en début de partie pour récupérer le héros et en fin de partie pour le sauver. Il n'est dès lors plus nécessaire de mettre dans "sauverCache" la ligne "create game cache" car ça a déjà été fait lors du "setHeros". Mais si vous le faites, ca marche aussi...

Si vous faites des essais et que vous n'avez pas toujours ce que vous pensiez avoir, pensez à détruire le cache du jeu (dans C:\Program Files\Warcraft III\save\ProfileX). Ou plus simple, faites vos essais avec le profil WorldEdit et détruisez tout le profil.


Remarque importante

Dans les cartes 2 et suivantes, lorsque vous éditez la carte, toto n'est pas présent sur la carte (puisqu'il est crée lors de l'initialisation). Par conséquent, vous n'arrivez plus à l'utiliser dans un déclencheur dont l'événement est de type "specific unit event". C'est un problème qu'on peut résoudre grâce à la variable toto: On utilise un "generic unit event" et une condition "unit comparison". Exemple: vous voulez qu'un déclencheur s'active quand toto est attaqué:

Vous ne pouvez pas utiliser:

Evénement :
  • Unité - toto Est attaqué
Mais :

Evénement:
  • Unité - A Unit Est attaqué
Condition :
  • (Attacked unit) égal à toto

Amélioration importante

Pour toutes sortes de raisons, vous voudrez parfois qu'une de vos carte soit accessible hors de la campagne (ne serait-ce que pour la tester). La solution est d'exporter cette carte depuis l'éditeur de campagne. Mais le problème est qu'en la lançant, vous n'avez pas de héros puisqu'il n'y a pas de cache de jeu ! On peut bien sur la rééditer, mais la solution la plus élégante est d'améliorer dans chaque carte le déclencheur "setHeros" ainsi:
  • Cache du jeu - Create a game cache from campagneToto. w3v
  • Cache du jeu - Restore toto as toto of carte2 in (Last created game cache) for Joueur 1 (Rouge) at (Center of Region 0000 ) facing 0. 0
  • Set toto = (Last restored unit)
  • if (toto différent de Pas d'unité) then do (Skip remaining actions) else (Do nothing)
  • Unité - create 1 Belluaire for Joueur 1 (Rouge) at (Center of Region 0000 ) facing 0. 0
  • Set toto = (Last created unit)

Cliquez sur l'image pour l'agrandir

En gros,et pour ceux qui ne comprennent vraiment pas l'anglais, ce déclencheur crée un héros dans le cas où il n'en trouve pas dans le cache. En prenant cette habitude, les cartes de vos campagne sont toujours accessibles.

Et pour les tricheurs : Si un petit malin joue à votre campagne et décide de tricher lors d'une des maps (il existe des cheats pour avoir directement la victoire) alors le déclencheur "victoire" ne sera pas activé, et le joueur n'aura pas accès à la carte suivante. Il faut parer à ce problème (je ne suis pas fan de tricheurs, mais peut-être une de vos cartes est vraiment trop dur pour certains... ) en mettant dans chaque carte un déclencheur "tricheur":

Evénement :
  • Joueur - Joueur 1 (Rouge) leaves the game with a victory
Action :
  • Déclencheur - Run victoire

Cette fois tout a été dit.

Vous avez tout lu et tout compris mais vous ne voulez pas faire le travail ? Qu'à cela ne tienne, je l'ai fais pour vous. Vous n'avez qu'à télécharger la campagne Toto suivante. Elle comporte 3 cartes. dans la première il faut tuer l'araignée, dans la deuxième il faut marcher sur l'herbe et on peut y ramasser un objet (pour voir si on l'a encore dans la carte 3) et dans la troisième il faut casser les caisses. J'y ai mis l'amélioration de "setHeros" et le déclencheur pour tricheur.

Téléchargement de la carte

Amusez-vous bien et distribuez vos campagnes sur le net.

Aucun commentaire - [Poster un commentaire]


Il n'y a pas de commentaire. Soyez le premier à commenter cette page !

Poster un commentaire

Vous devez vous identifier pour poster un commentaire.
Nombre de visites sur l'accueil depuis la création du site Warcraft III : 8.145.561 visites.
© Copyright 1998-2020 JudgeHype SPRL. Tous droits réservés. Reproduction totale ou partielle interdite sans l'autorisation de l'auteur.