14 Commits

Author SHA1 Message Date
BlaMacfly fa6d14c4a0 Butin WoD/Legion : brancher les boss sur le Guide d aventure
Signalement Discord : les instances haut niveau ne lachent aucun equipement.

Sur ce core, le butin d equipement des boss modernes ne vient pas de
creature_loot_template mais de Unit::Kill, qui lit creature_template_journal
(entree -> JournalEncounterID) puis tire 2 objets dans JournalEncounterItem.db2
avec le bon masque de difficulte et le bon contexte d objet. Cette table ne
contenait que 45 lignes, toutes Burning Crusade : aucun boss de Draenor ni de
Legion, et ces boss ont lootid = 0. Ils ne lachaient donc rigoureusement rien.

44 correspondances ajoutees, etablies depuis les DB2 officiels du client
(JournalInstance -> JournalEncounter -> JournalEncounterCreature ->
CreatureDisplayInfoID -> creature_template.modelid), une seule creature par
rencontre et uniquement celles sans table de butin, pour ne rien doubler.
Couvre entre autres la Fonderie des Rochenoire (10 boss), les Docks de fer,
Haut-perchoir, le Pic Rochenoire, la Floraison eternelle, le Siege du
Triumvirat (4 boss), le Tombeau de Sargeras (6), Gul dan et Elisande.

Les scripts de generation et de verification sont dans chantiers/butin-journal.
2026-09-10 19:50:19 +02:00
BlaMacfly 70fdf20075 Rivage brise 1460 : les vrais criteres, et le deroule de reference
SIGNALE EN JEU : « j ai passe ma phase 2 et ca m a switche jusqu a la 5
sans rien faire », puis « je suis en phase 4, juste a cote de Varian, et
rien ne se valide ».

Deux causes distinctes.

La plage validait son etape DEUX fois : une fois par les criteres
officiels que le moteur reconnait, une seconde par le CompleteStep()
ajoute par-dessus. Le moteur avancait donc de deux crans. Le forcage est
retire, les criteres suffisent.

L etape « Trouver Varian » guettait une copie invoquee sur la plage,
alors que la carte porte DEJA le vrai Varian en (1120, 2484) parmi les
757 creatures transposees -- comme Vol jin, Sylvanas et Jaina. Le joueur
se tenait devant le bon personnage pendant que le script surveillait un
sosie. On retient desormais celui de la base, distingue par son spawnId,
et on ne le teleporte plus : l etape s appelle « Trouver ».

L etape du portail comptait deux « ancres dimensionnelles » (90637) que
le script fabriquait lui-meme. La video de la bataille affiche « 0/4
Ancres blindees detruites », et le wiki confirme : quatre 101667, dont
la carte porte quinze exemplaires deja poses. Les criteres officiels
45131, 45228 et 45288 sont desormais alimentes.

Le deroule de reference joint croise la video, les DB2 du build et le
wiki. Il revele trois ecarts NON corriges : le commandant Horde est
Azgalor et non Arganoth, l etape 4 Horde vise Sylvanas ET Baine, et
l etape 9 Horde consiste a tenir la crete. Il etablit aussi que nos
dialogues sont inventes -- BroadcastTextId a zero -- et que la replique
de Jaina parlant d ancres « dimensionnelles » est ce qui a produit
l erreur de code de l etape 5.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 11:15:50 +02:00
BlaMacfly b047cb7a02 Reference Legion : premiere section, la campagne du Front-de-Legion
Croisement entre les sources officielles et notre base, pas une fiche
encyclopedique. Les quinze quetes de la campagne existent chez nous avec
donneur et receveur : elle n etait pas cassee, seuls ses deux points
d entree l etaient.

Consigne le piege des DEUX scenarios du Rivage brise (1460 intro 7.0 et
1666 assaut 7.2), les trois Khadgar a ne pas confondre, les huit etapes
du scenario 1280 relevees dans les DB2, et deux anomalies : la quete
46832 sans objectif, et un doublon de titre sur 48641.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 23:16:46 +02:00
BlaMacfly 5c4c4b6d7a Chantier Rivage brise : carnet remis a jour apres le portage
Le carnet decrivait un etat du 27/08 ou rien n etait applique. Il note
desormais ce qui est deploye, ce qui reste a verifier en jeu, et la
raison pour laquelle les 5 chemins scriptes avaient ete manques : ils
vivent dans waypoint_data_script, table absente de notre schema.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 23:35:27 +02:00
BlaMacfly a95670ac0a Rivage brise : portage de l'Assaut 7.2 (scenario 1280, carte 1666)
La carte 1666 etait declaree mais entierement vide, et instance_template
y reclamait un script fantome. Les quetes 45102 « Begin the Assault » et
46734 « Assault on Broken Shore » etaient donc infranchissables : elles
relevent de ce scenario, et non de l'introduction 7.0 deja portee sur la
carte 1460.

PORTAGE, PAS TRANSCRIPTION. La source (dufernst/LegionCore-7.3.5, meme
lignee uwow) repose sur quatre extensions que nous n'avons pas :
onScenarionNextStep/getScenarionStep, CRITERIA_TYPE_SCRIPT_EVENT_2,
FunctionProcessor et une surcharge de GetClosestGraveYard. La
progression est donc inversee : au lieu d'etre rappele a chaque etape,
le script alimente les criteres officiels et le moteur avance seul --
la meme architecture que sur la carte 1460.

Les neuf criteres des huit etapes ont ete releves dans les DB2 du build
7.3.5.26972 (ScenarioStep, CriteriaTree, Criteria) et non recopies de la
source ; ils confirment ses identifiants d'asset. Sept sont de type 92
(SEND_EVENT_SCENARIO), un de type 73, un de type 68.

Six ecarts d'API traites, tous constates et non supposes :
InstanceScript(InstanceMap*), Conversation::CreateConversation (Player
n'a pas cette methode -- la source l'appelait sur une creature, cela
n'aurait pas compile), UNIT_NPC_FLAGS avec SetFlag64, DamageTaken a 2
arguments, OnSpellClick a 2, MovePath a 2.

NON PORTE : player_scripts_for_start_assault, qui sondait chaque joueur
a chaque tick pour lui imposer la quete 46730. Un donneur en base fait
le meme travail sans ce cout.

SQL joint :
- rattachement des 5 scripts a leurs 11 entrees, toutes verifiees
  exclusives a la carte 1666 ;
- les 87 points des 5 chemins scriptes. Ils vivaient dans
  waypoint_data_script, table absente de notre schema, d'ou leur oubli
  lors de l'extraction du 27/08. Le 11322708 est le vol d'arrivee :
  l'atteinte de son point 20 declenche l'etape 0, sans lui rien ne
  demarrait ;
- le donneur manquant de 45102, l'archimage Khadgar 116302, deja pose
  chez nous aux coordonnees de la reference mais jamais declare.

Les 593 creatures et 59 objets de la carte etaient generes depuis le
27/08 et n'avaient jamais ete appliques ; ils le sont desormais.

RESERVE : rien de tout ceci n'a ete verifie en jeu. Les credits de quete
116253 et 116279 sont en outre cables sur la fermeture des deux premiers
portails par deduction -- la quete parle de « First » et « Second Legion
Spire destroyed » -- et non sur une donnee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 23:34:53 +02:00
BlaMacfly a4d245ecbe Commandes : .npc add perdait la phase du maitre de jeu
Les PNJ crees en jeu n'etaient visibles qu'en mode MJ. InheritPhaseShift
donnait bien la phase du joueur a la creature, mais SaveToDB n'ecrit que
GetDBPhase() -- la phase DECLAREE EN BASE, nulle pour une creature creee
a la volee. La commande detruit ensuite l'objet et le recree depuis la
ligne enregistree, donc sans phase. Dans une aire phasee, PhaseShift::
CanSee exigeant une intersection, la creature etait invisible a tout
joueur normal ; le mode MJ masquait le defaut, SetAlwaysVisible
court-circuitant le test de phase.

TrinityCore 3.3.5 transmettait la phase explicitement a Create et a
SaveToDB, via un GetPhaseMaskForSpawn qui ignorait volontairement l'etat
« MJ voit tout ». La reecriture du systeme de phases a perdu ce principe :
master a le meme defaut. On le restaure, en annoncant la phase retenue
puisqu'un joueur moderne peut en porter plusieurs alors qu'une ligne de
la table creature n'a qu'un champ.

SQL joint : phase 6666 posee sur l'aubergiste deja pose au port de
Hurlevent, et suppression de 18 options de dialogue de type 1 qui
doublonnaient une option fonctionnelle et se placaient au-dessus d'elle.
Les options porteuses de conditions sont preservees -- une premiere
version avait supprime a tort les options d'Halloween.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 22:21:31 +02:00
SylvaniaCore deploy 3a4c6c01dd Hyjal : parler a Jaina faisait tomber le serveur -- et faction 16 au Rivage brise
1) PLANTAGE DU SERVEUR, cause reelle de la coupure de cette nuit

Trace du vidage 3007513 :
  #0 Trinity::Assert(...)
  #1 npc_jaina_proudmoore::OnGossipHello(Player*, Creature*)
  #2 WorldSession::HandleGossipHelloOpcode

hyjal.cpp utilisait ENSURE_AI(hyjalAI, creature->AI()), qui ASSERTE. Or
GetAI() ne fabrique une hyjalAI que si GetHyjalAI() la trouve, donc
uniquement dans l instance du Mont Hyjal. Ailleurs la creature recoit une
IA quelconque et l assertion tue le process.

Declencheur : un exemplaire de Jaina (17772) se trouve sur la carte 0, a
Hurlevent (-8295, 1386), en plus de celui du Mont Hyjal. Lui parler
suffisait a planter le serveur -- faille exploitable par n importe quel
joueur, sans commande ni privilege.

Les 5 occurrences passent en dynamic_cast avec sortie propre.

J avais d abord conclu a une recursion en me fiant a la taille du vidage
(387 Mo contre 133). C ETAIT FAUX : cette taille reflete la memoire
allouee au moment du plantage, pas un debordement de pile. La trace, elle,
etait parfaitement lisible.

2) RIVAGE BRISE : factions demoniaques ramenees a 16

Etabli par TEST A/B, pas par raisonnement. Une seule entree basculee en
faction 16 (Molosse de l effroi gangrene, 90686), toutes choses egales
par ailleurs. Verdict en jeu : « les molosses sont maintenant
attaquables », les autres non.

La sonde SPAWNDBG confirme que seule la faction distingue les deux :
  Felstalker Dreadhound  faction=16    drapeaux=32768 drapeaux2=0  OK
  Felguard Legionnaire   faction=2780  drapeaux=32768 drapeaux2=0  bloque

Pourquoi 2780 echoue reste INEXPLIQUE : FactionTemplate.db2 lui donne
EnemyGroup=15 (ennemi de tous) et sa faction 1786 a ReputationIndex=-1,
donc aucune reputation n intervient. Sur le papier elle devrait etre
hostile. Le refus vient du client, qu aucune sonde serveur ne peut
observer. On retient donc la faction 16, demontree fonctionnelle dans ce
scenario meme -- ecart assume avec la donnee de reference.

101 entrees, 464 spawns. Effet secondaire bienvenu : les demons cessent
de s entretuer (Friend_0=14).

3) COMPTEUR : tout demon compte desormais

Signale : « les molosses sont attaquables mais ne comptent pas dans l
objectif ». OnUnitDeath ne reconnaissait que les cinq entrees invoquees
par le script. On s appuie desormais sur le type demon plutot que sur une
liste de 101 entrees qui vieillirait mal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 10:20:45 +02:00
SylvaniaCore deploy 5408eae697 Rivage brise 1460 : UNIT_FLAG2_UNK5 rendait les demons inattaquables
Signale en jeu, nommement : Gangreseigneur Rakkan, Legionnaire
gangregarde, Molosse de l effroi gangrene. Et l observation decisive :
« les demons inattaquables se battent avec les demons attaquables ».

LA CAUSE EST DE MON FAIT. La transposition des modeles a importe
unit_flags2 sur 147 entrees. Ces creatures valaient 0 avant ; elles ont
recu 2097152, soit 0x200000 -- UNIT_FLAG2_UNK5.

CE DRAPEAU EST PARTICULIER : notre serveur l IGNORE totalement, aucune
de ses verifications ne le consulte. Le client, lui, l interprete et
refuse de designer la creature comme cible.

C est ce qui explique le symptome le plus deroutant de la serie : la
sonde posee dans _IsValidAttackTarget n a JAMAIS produit la moindre
ligne pour ces creatures. Le client refusait de lui-meme, sans jamais
interroger le serveur. L ABSENCE DE TRACE ETAIT L INFORMATION -- j ai
mis trois tours a la lire comme telle.

CORRELATION QUI TRANCHE :
  demons INVOQUES (attaquables) : unit_flags2 = 0
  demons STATIQUES (bloques)    : bit 0x200000 present
  67 entrees, 420 spawns.

Seul ce bit est retire, le reste de la colonne est preserve. Le serveur
ne s en sert pas : le retrait ne peut rien casser cote logique.

Egalement dans ce lot, deux sondes conservees le temps de la validation :
ATTDBG (recentree sur les factions 2780/1768) et SPAWNDBG (etat reel des
creatures a leur creation). Deux divergences d API relevees au passage :
getFaction() et getLevel(), en minuscule dans ce fork.

Retour arriere joint.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 22:51:16 +02:00
SylvaniaCore deploy 995122dc78 Rivage brise 1460 : les demons statiques etaient immunises aux joueurs
Signale en jeu : « les demons invoques c est ok mais pas les autres au
fond ». Les creatures invoquees par le script etaient frappables, les
placements statiques non.

LA CAUSE EST DE MON FAIT. La transposition des modeles d hier a importe
unit_flags sur 136 entrees. Parmi les valeurs reprises, 33536 et
537166592 contiennent le bit 256 -- UNIT_FLAG_IMMUNE_TO_PC. Dans le
coeur de reference un script retire vraisemblablement ce drapeau au bon
moment ; le notre ne gere aucun drapeau, les demons restaient donc
immunises en permanence.

Cela explique aussi pourquoi la sonde ATTDBG ne produisait plus rien : le
client refusait de lui-meme, sans jamais interroger le serveur. L absence
de trace etait l information.

PORTEE : uniquement les factions HOSTILES -- 2780 (30 entrees), 1768
(20 : Anetheron, Balnazzar, Brutallus...), 2878 (Krosus), 14 (Gul dan),
2877 (Lave gangrenee). Soit 53 entrees.

EPARGNES car l immunite y est legitime : factions 35, 2876, 2879, 1819 --
allies, pretres, montures, vaisseaux. 13 entrees conservees.

SIMPLIFICATION ASSUMEE : Krosus et Gul dan perdent aussi leur immunite,
alors qu une implementation fidele la retirerait au debut de leur etape.
Notre script ne gere aucun drapeau : la conserver rendrait les etapes 7
et 8 infranchissables. La progression reste pilotee par la machine a
etats du script.

Retour arriere joint.

A NOTER, non traite : les modeles de Varian (90713) et Jaina (90714)
sont ceux d anciennes versions. Le dump de reference ne stocke aucun
modele dans creature_template -- ses affichages viennent d ailleurs. Une
autre source sera necessaire. Cosmetique, non bloquant.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 22:22:13 +02:00
SylvaniaCore deploy 6219d00c06 Rivage brise 1460 : les modeles de creatures etaient des souches
Signale en jeu : « exemple lui n est pas attaquable », capture d un
.npc info montrant Felguard Legionnaire (109591) en Level: 1.

Nos creature_template de l epoque Legion sont des SOUCHES : sur les 152
entrees exclusives a cette carte, 141 etaient au niveau 1. La faction,
corrigee au tour precedent, n etait que la partie visible du trou.

Divergences relevees face au dump de reference :
  minlevel   150/152      unit_flags2  147/152
  maxlevel   145/152      unit_flags   136/152
  unit_class  62/152      speed_run     55/152
  AIName      32/152      speed_walk    12/152

151 entrees corrigees. Il ne reste que 6 souches : les entrees partagees
avec d autres cartes, volontairement ecartees comme pour les factions --
ce sont des declencheurs invisibles.

EXCLUS VOLONTAIREMENT du correctif, malgre leurs divergences :
  AIName      -- transposer pourrait defaire un comportement pose
                 sciemment chez nous.
  flags_extra -- porte des drapeaux que le coeur calcule lui-meme, dont
                 CREATURE_FLAG_EXTRA_DUNGEON_BOSS pose au chargement
                 depuis instance_encounters.

Verification prealable ecrite : un comparateur colonne par colonne
(chantiers/rivage_brise/outils/comparer_templates.py) a mesure les
divergences avant toute modification, plutot que de transposer en bloc.
La faction n y figurait plus, confirmant que le correctif precedent avait
bien pris et que l outil dit vrai.

Retour arriere joint, reconstruit depuis les valeurs d avant correction.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 16:06:07 +02:00
SylvaniaCore deploy 483b3c02bc Rivage brise 1460 : les demons etaient flagues en allies
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>
2026-08-28 15:19:13 +02:00
SylvaniaCore deploy c8f1d570e1 Rivage brise : placements des cartes 1460 et 1666, generateur unifie
NON APPLIQUES au serveur. Verses pour relecture.

DECOUVERTE QUI RECADRE LE CHANTIER
Il y a DEUX Rivages brises, et je preparais le second en premier :
  carte 1460 -- le lancement de Legion (Voljin, Varian, la defaite),
               c est le contenu de la video fournie ;
  carte 1666 -- l assaut de la 7.2 (Kalgorath, Arganoth, Mephistroth).

Pour la 1460, NOTRE SCRIPT EXISTE DEJA : scenario_broken_shore_intro.cpp,
464 lignes, correctement rattache -- instance_template reclame
scenario_broken_shore_intro et c est exactement le nom sous lequel il
s enregistre (RegisterInstanceScript, map 1460). Son scenario est aussi
deja declare (786). Il ne lui manquait QUE les placements. Aucun portage
C++ n est necessaire pour cette carte.

VERIFICATION CROISEE faite avant de generer : sur les 17 entrees que le
script attend, 10 sont placees dans la reference (Voljin, Sylvanas,
Baine, Thrall, Varian, Jaina, Mekkatorque, Genn, Krosus, Arganoth) et
les 7 autres sont INVOQUEES par le script lui-meme (Khadgar l.335,
ancres l.370-371, Tirion l.380, Guldan l.398, troupes via TroopEntry,
credit de fin l.431). La repartition est donc coherente.

CONTENU
  carte 1460 : 757 creatures, 101 objets, 84 chemins (526 points)
  carte 1666 : 593 creatures, 59 objets, 180 chemins (1495 points)
  Toutes les creatures mobiles ont leur chemin, aucune orpheline.

BUG RATTRAPE A LA VALIDATION
Une premiere version de l outil, obtenue en substituant mecaniquement le
numero de carte, produisait pour la 1460 un fichier dont les DELETE
visaient encore la 1666 : il aurait vide la mauvaise carte et laisse
l autre intacte. Le generateur est reecrit, le numero de carte ne vit
plus qu a un seul endroit, et la difficulte est desormais DEDUITE du
spawnMask (verifiee puissance de 2, uniforme) au lieu d etre codee.

VALIDATION en base jetable pour les deux fichiers : import reussi,
comptages exacts, zero creature hors carte, zero mauvaise difficulte,
zero mobile sans chemin, zero collision de GUID avec la base reelle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 23:50:14 +02:00
SylvaniaCore deploy bab69fab2d Rivage brise : SQL de placement genere (593 creatures, 59 objets, 180 chemins)
NON APPLIQUE au serveur. Le fichier est verse pour relecture.

Transpose depuis le dump world de dufernst/LegionCore-7.3.5 vers notre
schema. Le generateur est pilote par les NOMS de colonnes et s arrete
plutot que de produire un decalage silencieux si un schema bouge.

CONTENU
  593 creatures, 59 objets, 180 chemins (1495 points). Les 180 creatures
  a MovementType=2 ont TOUTES leur chemin : aucune orpheline.

DECISIONS etablies sur donnees
  spawnMask 4096 = 2^12 -> spawnDifficulties '12', la difficulte 12 etant
  « Normal Scenario » d apres Difficulty.db2 du build 7.3.5.26972.
  GUID renumerotes a partir de 290100000 et 210200000, au-dessus de nos
  maxima 290000114 et 210120986.
  PhaseId : chaine vide cote reference -> 0 chez nous (colonne entiere).

VALIDATION faite dans une base jetable, pas sur dc_world :
  import reussi, comptages exacts, et cinq controles a zero -- aucune
  creature hors carte, aucune difficulte erronee, aucune mobile sans
  chemin, aucun chemin orphelin, aucune position nulle. Aucune collision
  de GUID avec la base reelle. La carte 1666 y est actuellement vide,
  donc le DELETE d en-tete n efface rien.

Repartition en altitude coherente : 454 creatures au sol, 64 au-dessus de
600 (aeronefs presumes, a confirmer en jeu).

ABANDONNE faute d equivalent : npcflag2, AiID, MovementID, MeleeID,
isActive, skipClone, personal_size, isTeemingSpawn. 12 creatures
portaient AiID=7424 : leur comportement est perdu et reste a refaire.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 23:39:09 +02:00
SylvaniaCore deploy 15ac8dbd7a Chantier Rivage brise : materiel de reference et outillage d extraction
Rien n est applique au serveur. Ce commit ne fait que persister le
travail de reperage, qui vivait dans /home/ubuntu/tmp et aurait ete
perdu.

LE BLOCAGE. instance_template reclame pour la carte 1666 un script
nomme scenario_7.2_broken_shore_intro qui n existe nulle part dans notre
code -- script fantome. La table scenarios n a aucune ligne pour cette
carte. Les quetes 45102 et 46734 sont donc infranchissables.

RASSEMBLE depuis dufernst/LegionCore-7.3.5 (meme lignee uwow) :
 - AssaultBrokenShore.cpp (500 lignes) et instance_AssaultBrokenShore.cpp
   (308 lignes) ;
 - reperage de 593 placements de creatures (67 entrees) et 59 placements
   d objets (52 entrees) sur la carte 1666, dans le dump world du depot.

NOTRE BASE possede deja les 67 modeles de creatures et les 52 modeles
d objets -- aucun manquant. Elle possede aussi les repliques francaises
de Vol jin (90708) et Sylvanas (90709), qui n ont ni spawn ni script.

DECISIONS DE TRANSPOSITION etablies sur donnees, pas supposees :
 - spawnMask 4096 = 2^12 -> spawnDifficulties '12', la difficulte 12
   etant « Normal Scenario » d apres Difficulty.db2 du build 7.3.5.26972 ;
 - GUID renumerotes au-dessus de nos maxima (290000114 / 210120986) ;
 - huit colonnes de la reference sans equivalent chez nous, abandonnees.

DEPENDANCES DECOUVERTES : 180 des 593 creatures ont MovementType 2 et
suivent donc des chemins a extraire aussi ; 12 portent un AiID renvoyant
a une table propre au coeur de reference, comportement a refaire.

PIEGE CONSIGNE dans le README : le premier extracteur renvoyait zero
ligne, ce qui aurait fait conclure a tort que la reference etait vide.
Les instructions insert du dump s etalent sur plusieurs lignes. C est un
controle sur cas positif connu qui a revele le bug.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 23:33:32 +02:00