Signale en jeu, capture a l appui : « ce sont bien des ennemis mais
flagues en allie » -- plaques de nom vertes sur les Legionnaires
gangregarde.
Sur les 156 entrees placees, 729 spawns sur 757 portaient la faction 35,
amicale envers tous. Comparaison avec creature_template du dump de
reference : 135 entrees divergeaient. Ce trou est ANTERIEUR a l import
des placements, qui ne touche pas creature_template -- c est une valeur
par defaut posee sur ces PNJ de Legion dans notre base.
Repartition retablie :
2780 441 creatures les demons de la Legion (hostiles)
2879 105 les PNJ Alliance
2876 67 les PNJ Horde
1768 23 les demons nommes (Anetheron, Balnazzar, Brutallus)
35 74 ce qui doit rester neutre : canons, vehicules,
navires, declencheurs invisibles
PRUDENCE OBSERVEE : creature_template.faction agit PARTOUT, pas seulement
sur la carte visee. Les 4 entrees possedant un spawn hors de la carte
1460 ont donc ete EXCLUES du correctif -- ce sont des declencheurs
invisibles (General Purpose Bunny) et un matelot, pour lesquels la
faction 35 est correcte. Portee reelle : 135 entrees exclusives a 1460.
Fichier de retour arriere joint (chantiers/rivage_brise/), reconstruit
depuis les valeurs en place avant modification.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Chantier — Assaut du Rivage brisé (carte 1666)
État au 27/08/2026. Rien n'est appliqué au serveur à ce stade.
Le blocage d'origine
instance_template réclame pour la carte 1666 un script nommé
scenario_7.2_broken_shore_intro qui n'existe nulle part dans notre code —
script fantôme. La table scenarios n'a par ailleurs aucune ligne pour cette
carte. Conséquence : les quêtes 45102 Begin the Assault et
46734 Assault on Broken Shore sont infranchissables.
Ce qui a été rassemblé
Source : dufernst/LegionCore-7.3.5 (même lignée uwow que notre fork).
| Élément | Volume | Emplacement |
|---|---|---|
| Script du scénario | 500 lignes | reference/AssaultBrokenShore.cpp |
| Script d'instance | 308 lignes | reference/instance_AssaultBrokenShore.cpp |
| Placements de créatures | 593 spawns, 67 entrées | à extraire du dump |
| Placements d'objets | 59 spawns, 52 entrées | à extraire du dump |
Le dump complet (LegionCore_world_2020_04_25.zip, 39 Mo compressés / 232 Mo)
n'est pas versionné : il se retélécharge depuis le dépôt de référence,
chemin sql/base/.
Ce que notre base possède déjà
- Les 67 modèles de créatures : présents, aucun manquant.
- Les 52 modèles d'objets : présents, aucun manquant.
- Les répliques françaises de Vol'jin (90708) et Sylvanas (90709), y compris la blessure empoisonnée qui déclenche la retraite. Ces deux-là n'ont cependant aucun spawn ni script.
Décisions de transposition, établies sur données
Les deux schémas divergent. Correspondances retenues :
| Référence | Nous | Décision |
|---|---|---|
spawnMask = 4096 |
spawnDifficulties |
'12' — 4096 = 2¹², et la difficulté 12 est « Normal Scenario » (type instance 5) d'après Difficulty.db2 du build 7.3.5.26972 |
phaseMask = 1 |
phaseUseFlags, PhaseGroup |
valeurs neutres : aucun phasage réel à transposer |
PhaseId |
PhaseId |
direct — vaut '' sauf 3 créatures à 7043 |
guid |
guid |
renumérotés au-dessus de nos maxima (créature 290000114, objet 210120986) |
| — | terrainSwapMap |
-1, valeur employée par nos autres instances |
npcflag2, AiID, MovementID, MeleeID, isActive, skipClone, personal_size, isTeemingSpawn |
— | abandonnées, ces colonnes n'existent pas chez nous |
Dépendances découvertes, à ne pas oublier
- 180 créatures sur 593 ont
MovementType = 2: elles suivent des chemins. Sans extraction dewaypoint_datapour leurs GUID, elles apparaîtront figées. - 12 créatures portent
AiID = 7424, une table d'IA propre au cœur de référence que nous n'avons pas. Ce comportement sera perdu et devra être refait autrement — probablement en SmartAI. - Le dump contient
scenario_data,scenario_poi,scenario_poi_pointsetscenario_step_spells: la déclaration du scénario s'y trouve aussi. - Le script s'enregistre sous
instance_AssaultBrokenShorealors que notreinstance_templateréclamescenario_7.2_broken_shore_intro. À raccorder.
Piège rencontré, à retenir
Le premier extracteur écrit pour ce travail renvoyait zéro ligne pour la
carte 1666, ce qui aurait fait conclure à tort que la référence ne contenait
rien. Cause : dans ce dump, une instruction insert into s'étale sur
plusieurs lignes, et l'analyse ligne à ligne ne voyait que la première.
C'est un contrôle de cohérence — vérifier que le parseur trouvait bien des lignes sur des cartes connues — qui a révélé le bug. Toujours valider un extracteur sur un cas positif connu avant de croire un résultat négatif.
Reste à faire
- Extraire et transposer les 593 + 59 placements.
- Extraire les chemins des 180 créatures mobiles.
- Transposer la déclaration du scénario.
- Porter les 808 lignes de C++ et les adapter à notre API, qui a divergé
(
MoveJump,SetFacingTo,GetEffectdiffèrent déjà — constaté ailleurs). - Raccorder le nom de script.
- Refaire autrement le comportement des 12 créatures à
AiID.