master
6 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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> |
||
|
|
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>
|
||
|
|
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>
|
||
|
|
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>
|
||
|
|
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> |
||
|
|
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> |