Phasage des Maps - Version 4.x+
Ce tutoriel a été rédigé par Stitch.
Introduction
Le système de phasage des maps permet de modifier l'apparence d'une zone selon la progression du joueur.
Ce mécanisme est utilisé dans les zones de départ comme :
- La transformation du village chez les Worgens
- Les changements de décors chez les Gobelins
- L'évolution de l'Île Vagabonde chez les Pandarens
Ce guide explique comment configurer ce système sur un émulateur 6.x.
Exemple Pratique : ĂŽle Vagabonde (Pandarens)
Les trois états
État initial (Map 860) : Épave de navire présente
Première phase (Map 975) : Épave disparue, crevasse visible
Deuxième phase (Map 976) : Crevasse rebouchée
Identification des maps
- Map principale : ID 860
- Morceaux de map : ID 975 et 976
Les morceaux de map sont identifiables par leur taille réduite et leurs limites invisibles.
1. Configuration des Tables
Table terrain_worldmap
Cette table associe les morceaux de map Ă la map principale.
Structure :
TerrainSwapMap : ID de la map principale
WorldMapArea : ID du morceau de map Ă greffer
Exemple :
INSERT INTO terrain_worldmap (TerrainSwapMap, WorldMapArea) VALUES (860, 975);
Table terrain_phase_info
Cette table définit quelle phase active quel terrain.
Structure :
ID : Numéro de phase
TerrainSwapMap : ID du morceau de map
Exemple :
INSERT INTO terrain_phase_info (ID, TerrainSwapMap) VALUES (171, 975);
Dans cet exemple, la phase 171 active le morceau de map 975.
Table terrain_swap_defaults (optionnel)
Permet de phaser une zone par défaut sans possibilité de basculement.
2. Déclenchement du Phasage
Test manuel
Pour visualiser le changement sans script :
.modify phase 171
Cette commande active/désactive la phase. Le terrain change instantanément.
Activation automatique
Le changement de phase doit être déclenché par :
- Une quête : Récompense qui applique une aura de phase
- Un script SAI : Changement automatique dans une zone
- Un script C++ : Modification directe de la phase du joueur
3. Configuration SmartAI
Activer une phase
Event : Condition de déclenchement (au choix)
Action : ACTION_CROSS_CAST (86) → Spell de phase
- Target Type Caster = 7
Target : TARGET_SELF (1)
Désactiver une phase
Event : Condition de déclenchement (au choix)
Action : ACTION_REMOVEAURASFROMSPELL (28) → Spell de phase
Target : TARGET_ACTION_INVOKER (7)
Important : Utiliser ACTION_CROSS_CAST et non ACTION_CAST car les sorts de phase agissent sur le lanceur.
4. Liste des Sorts de Phase
Sorts disponibles (6.x)
| Spell ID | Phase |
| 70889 | 170 |
| 59074 | 171 |
| 67789 | 179 |
| 68480 | 180 |
| 70105 | 180 |
| 68481 | 181 |
| 68482 | 182 |
| 68483 | 183 |
| 69077 | 184 |
| 75243 | 184 |
| 69078 | 185 |
| 69484 | 186 |
| 69485 | 187 |
| 69486 | 188 |
| 70695 | 189 |
| 70696 | 190 |
| 74093 | 191 |
| 74094 | 192 |
| 74095 | 193 |
| 74096 | 194 |
| 74097 | 195 |
Note : Le sort 75243 (Emerald Dream) ajoute un voile vert qui persiste après déphasage. Utiliser REMOVEAURASFROMSPELL pour le retirer.
5. Gestion des NPCs et GameObjects
Phasage des entités
Après activation d'une phase terrain, les NPCs et objets doivent être phasés séparément.
Problème courant : Les entités restent en phase 0 par défaut et deviennent invisibles.
Solution : Activer plusieurs phases simultanément
- Phase 171 : Affichage du terrain
- Phase 175 : Spawn des NPCs
Commandes utiles
.gobject set phase <N> -- Phaser un objet
.npc set phase <N> -- Phaser un NPC
.modify phase <N> -- Changer la phase du joueur
.debug phase -- Afficher les phases actives
6. Exemple Complet
Scénario : Transformation d'une épave
Objectif : L'épave disparaît après une quête.
Étape 1 : Configuration des tables
-- Associer le morceau 975 Ă la map 860
INSERT INTO terrain_worldmap (TerrainSwapMap, WorldMapArea) VALUES (860, 975);
-- Définir la phase 171 pour le morceau 975
INSERT INTO terrain_phase_info (ID, TerrainSwapMap) VALUES (171, 975);
Étape 2 : Script SAI sur l'objet de quête
-- Activer la phase 171 lors de la validation de la quĂŞte
INSERT INTO smart_scripts VALUES (XXXXX, 0, 0, 'Type Event', 0, 0, 100, 0, 86, 59074, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Activer phase terrain');
Étape 3 : Phaser les nouveaux NPCs
-- Placer les NPCs en phase 175
UPDATE creature SET phaseMask = 175 WHERE guid IN (...);
Ressources
Vidéos de démonstration