Livres
Vidéos
On a kidnappé la mariée (2/3) On a kidnappé la mariée (1/3) La Prise du Patriot (5/5) De la délicatesse légendaire du capitaine Ovchenko Map - Conflit Moderne
< plus anciens
On a kidnappé la mariée (3/3) CB Strikes Back (1/3) CB Strikes Back (2/3) CB Strikes Back (3/3) Map - Blindages
plus récents >
RSS
Astuces pour World Editor
samedi 21 octobre 2006 à 19:42
Voici quelques astuces pour rendre vos scénarii Warcraft III vraiment intéressantes. Cette liste est plutôt courte, sachez que vous pouvez poser vos questions et suggestions d'articles sur le forum (lien dans le menu de gauche), dans la partie Bunker, et que vous trouverez éventuellement quelques tutoriaux dans la partie Les Archives.


Mettre des textes en couleurs
Nécessite: Reign of Chaos ou Frozen Throne
Difficulté: 1/5
Pour mettre une remarque dans la description d'une unité, pour faire un écran de chargement convivial ... C'est toujours plus sympa en couleurs ! Et en plus ce n'est pas difficile.
- Vous devez d'abord trouver le numéro de la couleur qui vous intéresse.
- Ecrivez ensuite juste avant la partie de texte à colorer "|cff" (la barre du départ, vous l'obtenez en faisant AltGr + 6) et le numéro de votre couleur.
- Ecrivez à la fin de votre partie de texte "|r" (s'il n'y a rien après vous n'êtes pas obligé de fermer).
=> Ca vous donnera un truc du genre "appuyez |cffFFCC00ici|r" qui s'affichera "appuyez ici"


Changer l'aperçu de votre scénario
Nécessite: Frozen Throne, Photoshop
Difficulté: 2/5
Pour ceux qui n'ont pas envie que l'on voit la minimap en entier lors de l'hébergement de la partie, où qui veulent faire plus joli, voila comment faire pour retirer la stupide minimap et mettre une image à la place (il existe des programmes qui le font, mais voila comment le faire à la main). Il se peut que l'image ne s'affiche pas dans la liste de parties personnalisées B.net, mais elle s'affichera une fois que vous serez dans la partie ou dans la liste que vous obtenez lorsque vous voulez créer une partie personnalisée.
- Ouvrez votre image avec Photoshop et redimensionner en 128x128 pixels,
- Enregistrez la en format Targa (.tga),
- Ouvrez votre scénario avec World Editor,
- Ouvrez l'éditeur d'importations (F12),
- Importez votre image en format Targa,
- Modifiez le chemin de votre image en "war3mapPreview.tga".


Changer la minimap
Nécessite: Frozen Throne, Photoshop
Difficulté: 2/5
Cette technique vous permet de modifier l'image qui se trouve en bas à gauche lors de la partie et qui est censé être une miniature de la carte entière. Notez qu'elle ne change que l'image de fond, les unités, bâtiments et autres icônes de la minimap s'afficheront dessus de la même manière que vous ayez changé cette image ou non. La méthode est la même que celle vue précédemment pour modifier l'aperçu, à quelques détails près:
- Votre image doit être de la taille 256x256 pixels.
- Votre image doit être importée dans votre scénario avec le chemin "war3mapMap.tga"


Cartes des chemins personnalisées
Nécessite: Reign of Chaos ou Frozen Throne, Photoshop
Difficulté: 2/5
Vous aurez sans doute remarqué que les bâtiments ont, à la différence des unités, une "carte des chemins" dans leurs caractéristiques qui correspondent à le forme géométrique verte que vous voyez lorsque vous choisissez l'emplacement où le construire, puis à la place qu'il prend sur la map. Voici quelques règles à respecter pour créer les vôtres:
- Les cartes des chemins sont des fichiers de format targa (.tga) obligatoirement.
- Leur taille sur la map dépend de la taille de l'image, à titre indicatif la carte de la Tour humaine fait 4x4 pixels.
- Utilisez la couleur rose de proportions RGB 255-0-255 pour une partie qui ne sera ni constructible, ni franchissable à pied.
- Utilisez la couleur cyan de proportions RGB 0-255-255 pour une partie qui ne sera pas franchissable par les unités volantes.
- Utilisez la couleur bleue de poportions RGB 0-0-255 pour une partie qui sera franchissable à pied et en volant mais pas constructible.
- Utilisez la couleur noire de proportions RBG 0-0-0 pour une partie qui sera franchissable à pied et en volant et constructible.


Diplomatie fixe ou réglable
Nécessite: Reign of Chaos ou Frozen Throne
Difficulté: 2/5
Derrière ce titre énigmatique se cache en fait plusieurs moyens pour vous de créer, supprimer et permettre au joueurs de faire des alliances.
- Pour définir des alliances en début de partie, vous devez utiliser Scénario/Propriétés Forces (il existe un "Priorité alliances" mais son utilité m'échappe ...). Cochez d'abord "Utiliser Forces personnalisées", puis créez une Force par équipe. Mettez ensuite vos joueurs dans les Forces correspondantes et réglez vos Forces (grâce aux cases à cocher à droite).
- Vous pouvez, et je vous le conseille, verrouiller les équipes, ordinateurs et couleurs à leur place (empêcher de choisir sa couleur, de mettre un joueur là où vous avez mis une IA lors de la création de votre map). Pour cela, cochez simplement la case "Réglages joueurs fixes" dans Propriétés Forces.
- Enfin, si vous voulez que vos joueurs puissent utiliser l'écran des Alliés durant la partie, vous devrez utiliser un déclencheur. Il est simple, le voici (pour le mettre dans votre map, allez dans l'éditeur de déclencheurs, faites nouveau déclencheur et recopiez scrupuleusement ce qui suit):
	
	[Evénements] Map Initialization
	[Actions] (Partie / Set Map Flag) Set Interdire Configuration alliances to Off
	


Déclencheurs - Généralités
Nécessite: Reign of Chaos ou Frozen Throne
Difficulté: 3/5
Bon, il y a tant à dire dessus que ce site ne me suffirait pas ^^. Je vais donc pas trop m'enfoncer et vous expliquer brièvement, après ca sera à vous de trouver (C'est en essayant qu'on apprend ... Vous croyez que j'ai appris comment ?).
- Un déclencheur, c'est apprendre à l'ordinateur à réagir devant une situation donnée. Il est composé de 3 phases : Evénements, Conditions et Actions. Lors de la partie, si un des événements au moins arrive et si toutes les conditions sont respectées, alors les toutes les actions seront exécutées dans l'ordre. Vous devez donc avoir pour un bon déclencheur un événement et plusieurs actions, la condition permet juste d'affiner l'événement. Le mieux pour vous est de regarder les événements qui vous sont proposés pour vous en faire une idée ...
- Lorsque vous créez un déclencheur (utilisez des dossiers sinon vous risquez vite de vous y perdre ...), il est vide. Faites un clic droit puis "Ajouter un événement". Vous devrez ensuite choisir l'événement voulu dans le bandeau déroulant de la ligne créée. Il s'agit le plus souvent d'une phrase à moitié en français et en anglais, avec certaines zones soulignées. Ces zones sont à personnaliser en cliquant dessus. Une seconde fenêtre s'ouvre et vous propose plusieurs choses à y mettre.
- Les conditions et les actions fonctionnent de la même façon. Attention, vous devrez faire correspondre certains termes désignant une unité pour que l'ordinateur comprenne de qui vous parlez (par exemple, si votre événement est qu'une unité meurt, vous parlerez de cette unité morte dans le reste du déclencheur en employant "Dying Unit". "Triggering Unit", donné par défaut, marche dans la plupart des cas mais attention, il s'agit de l'unité qui est sujet de la phrase de l'événement, donc ici l'unité qui est morte puisque dans l'événement c'est elle qui meurt.)
- Au début, ce sera difficile je ne vous le cache pas ... Vous pouvez toujours ouvrir d'autres maps trouvées sur Battle.net et observer comment sont faits les déclencheurs, mais évitez de changer 2 3 trucs et d'effacer le nom de l'auteur pour mettre le votre, car songez au temps que son auteur a du dépenser pour la faire ....
- Rien de tel qu'un bon exemple pour comprendre. Voici un déclencheur assez simple qui permet, lorsqu'un héro du jouer rouge meurt, d'afficher un message.
	
	[Evénements] Unit owned by Joueur Rouge meurt
	[Conditions] (Bollean) Dying unit is a Héro égal à TRUE
	[Actions] (Partie) Display to All Player the text "Un héro est mort."
	


Déclencheurs - Avancé
Nécessite: Reign of Chaos ou Frozen Throne
Difficulté: 4/5
Vous avez réussi à faire quelques déclencheurs basiques ? C'est bien. Vous allez pouvoir passer aux choses sérieuses ... World Edit regorge de fonctions qui ne demandent qu'à être utilisées ... Voici des explications sur quelques unes d'entre elles:

And/Or : Grâce à ces fonctions, vous allez pouvoir compliquer vos déclencheurs. Elles sont à utiliser dans les conditions, et permettent comme elles l'indiquent de dire "ou" et "et". Ainsi, il suffit qu'une des conditions placée dans une ligne "Or" soit vérifiée pour que la ligne soit acceptée (même si la 2eme condition n'est pas vérifiée). Vous pouvez utiliser "Or - Multiples Fonctions" pour faire de même avec plusieurs fonctions. Le "And" est moins utile, puisque lorsque vous créez une nouvelle ligne de condition, c'est un And qui la relie aux autres (c'est à dire que ces 2 lignes doivent être vérifiées pour que les actions soient effectuées). Elle vous servira surtout couplé à des "Or", pour dire "soit ces 2 conditions sont vérifiées, soit ces 2 autres sont vérifiées".

Sons : Les sons sont plus délicats puisqu'il vous faut utiliser également l'éditeur de son. Pour ajouter un son à votre map (même une voix de warcraft), vous devez la sélectionner dans le menu de gauche et utiliser l'icône "Utiliser comme son" (haut parleur jaune). Une fois passé à droite, vous pouvez le modifier. Pensez à décocher "son 3D" si vous voulez que l'on puisse l'entendre n'importe où sur la map. Pour jouer ce son en cours de partie, vous devrez utiliser une Action "Play Sound" dans un déclencheur.


Déclencheurs - Variables
Nécessite: Reign of Chaos ou Frozen Throne
Difficulté: 4/5
Les variables sont un des meilleurs outils du programmeur. Et en plus c'est pas compliqué, une fois qu'on a saisi le concept. Une variable donc, c'est comme un pseudonyme pour n'importe quoi, sachant qu'on peut changer à tout moment qui se cache derrière ce pseudonyme. Ainsi je peux créer une variable que j'appelle "robert", et décider à Map initialization que "robert" correspond à un fantassin particulier, puis dans un autre déclencheur avec un autre événement que "robert" corresponde maintenant à un fusilier particulier. L'intérêt, c'est que vous pouvez faire référence dans vos déclencheurs à une variable plutôt qu'à une unité, ainsi vous pouvez utiliser le même déclencheur pour différentes unités. Un p'tit exemple pour bien saisir:

	[Evénements] Map initialization
	[Actions] (Set variable) Set robert egal à Fantassin 0105

	[Evénements] Elapsed game time is 25.00 second
	[Actions] (Set variable) Set robert egal à Fusilier 0210
	
	[Evénements] A unit meurt
	[Actions] (Unité / Kill) Kill robert
	
Dans un tel exemple, si le troisième déclencheur se déclenche avant le second (donc avant 25 secondes de jeu), la variable "robert" correspondra à Fantassin 0105 et c'est cette unité là qui sera tuée par le déclencheur. Par contre si ce troisième déclencheur de déclenche après le second (après 25 secondes de jeu), la variable "robert" correspondra désormais à Fusilier 0210, et c'est cette unité là qui sera tuée, le fantassin 0105 quand à lui ne sera pas inquiété.
Maintenant que vous avez saisi l'idée, vous remarquerez en créant vos variables dans l'éditeur de déclencheur (en cliquant sur le X jaune dans la barre du haut) que les variables peuvent avoir plusieurs type. En effet vous pouvez adapter ce concept à toute sorte de variable, des comptes à rebours, des unités, des régions, des déclencheurs ...


Déclencheurs - For each Integer A do
Nécessite: Reign of Chaos ou Frozen Throne
Difficulté: 5/5
Encore une action bien utile mais un peu délicate, comme son nom l'indique en anglais cette action réalise la ou les actions qui lui sont associées autant de fois qu'il y a de nombres entiers entre les bornes qu'on lui fourni. En plus de cette utilisation basique, il vous fournit une variable, integer A ou B (ou une autre si vous choisissez For each integer Variable plutôt que integer A ou B) qui augmente d'un à chacune des actions qu'il effectue en partant de la première borne que vous lui fournissez jusqu'à la seconde. Très utile pour appliquer une action à chaque joueur, voyez plutôt:


	[Actions] For each integer A from 1 to 12 do (Joueur / Set property) Set Player(integer A) Or actuel to 500


En une seule ligne vous fixez l'or des 12 joueurs à 500, en effet cette ligne va effectuer:
Pour integer A egal à 1, Set Player(1) Or actuel to 500
Pour integer A egal à 2, Set Player(2) Or actuel to 500
etc ... Il vous faut par contre utiliser "Conversion - Convert player index to player" pour obtenir cette appellation Player(numéro). Enfin lorsque vous maîtriserez cela, vous pourrez même tenter d'imbriquer des "For each integer" l'un dans l'autre (d'où l'intérêt d'avoir un integer A et un integer B), mais prévoyez l'aspirine ...


Déclencheurs - Variables à déploiement
Nécessite: Reign of Chaos ou Frozen Throne, connaissance des variables classiques
Difficulté: 5/5
Les variables à déploiement sont des variables comme les autres auxquelles vous avez coché la case "déploiement" dans leurs options (la taille correspond au nombre de variables à remplir avec la valeur initiale, laissez 1 ça suffira), ces variables sont encore plus intéressantes mais aussi plus délicates à manier. Là encore il y a un concept à saisir, qui devrait venir facilement si vous avez compris les variables classiques. Une variable à déploiement donc n'est pas une variable mais une infinité (8192 maximum en fait, mais bon je pense pas que vous irez jusque là ...), regroupées derrière un seul nom. Pour accéder à chacune de ces variables stockées derrière cet unique nom, vous devez donc en plus du nom de la variable donner le numéro de la variable que vous voulez, ainsi si on reprend notre exemple précédent "robert [1]" ne correspond pas forcément à la même unité que "robert [2]" qui ne correspond pas à "robert [3]" etc ...
Pourquoi ne pas créer plusieurs variables classiques dans ce cas me direz vous. Parce que ce classement par nombre peut être très utile en coopération avec des "For Each integer A" (voir plus haut), ou par exemple en faisant coïncider ce numéro de variable avec le numéro de joueur ... Vous économiserez ainsi plusieurs dizaines de if/then/else et de lignes d'actions inutiles en voulant appliquer une variable classique à chaque joueur. Petit exemple:

	[Evénements] Map initialization
	[Actions] (Set variable) Set or1 egal à Joueur 1 (Rouge) Or actuel
	[Actions] (Set variable) Set or2 egal à Joueur 2 (Bleu) Or actuel
	[Actions] ...
	
	[Evénements] Map initialization
	[Actions] For each integer A from 1 to 12 do (Set variable) Set or [integer A] egal à Player(integer A) Or actuel

C'est quand même plus sympa une seule ligne au lieu de 12 ? Au fait, petit conseil né de mon expérience personnelle, n'utilisez jamais de déploiement sur un "compteur" (compte à rebours), ça ne marche pas. Il ne prend pas en compte le déploiement et agit comme une variable classique.