Files
felwell-core/sql/sylvania/rivage_1460_etats.sql
T
BlaMacfly 5c8b82338e Coeur de Pierre : l'Eclat sismique d'Azil faisait tomber le serveur
Signale en jeu avec une reproduction exacte : « si on attend la phase
deux sans le frapper, le serveur plante ». Deux vidages memoire l'ont
confirmee, pile en main :

    #0  spell_seismic_shard::HandleScript(SpellEffIndex)
    #1  Spell::HandleEffects
    #2  Spell::DoSpellHitOnUnit
    ...
    #13 InstanceMap::Update

GetDynObject renvoie un pointeur NUL quand l'objet de visee n'existe pas
-- pas encore cree, ou deja expire. La ligne suivante le dereferencait
sans le moindre test :

    DynamicObject* dynamicObject = GetCaster()->GetDynObject(...);
    target->CastSpell(dynamicObject->GetPositionX(), ...);

Le plantage a lieu dans le fil de mise a jour de la carte, donc il
emporte le processus entier, pas seulement la session fautive.

GetCaster() et GetHitUnit() sont verifies au passage : rien ne garantit
leur presence au moment ou l'effet est traite, un lanceur mort entre le
lancement et l'impact suffit. Meme prudence sur le ExitVehicle du script
de changement de siege, juste au-dessus.

RESTE OUVERT, signale par le meme joueur et non traite ici : le deuxieme
boss du donjon se reinitialise des qu'on le deplace, et le bouclier du
dernier boss serait purement visuel, sans absorption.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 23:14:10 +02:00

35 lines
1.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =====================================================================
-- Rivage brisé (carte 1460) — objets affichés comme déjà utilisés
--
-- SIGNALÉ EN JEU : « le gameobject de la flèche n'est physiquement pas
-- visible ni cliquable, à la place il y a un minuscule skin de chien ».
--
-- Les six Flèches de malheur (240194) étaient enregistrées en
-- `state = 2`, soit GO_STATE_ACTIVE_ALTERNATIVE. Le commentaire de notre
-- propre énumération le décrit sans ambiguïté :
-- « show in world as used in alt way and not reset »
-- L'objet est donc affiché dans sa forme CONSOMMÉE dès l'apparition,
-- avec le modèle de remplacement correspondant — et il n'est plus
-- utilisable, puisqu'il se présente comme déjà employé.
--
-- Ce n'était ni le modèle ni l'orientation : `displayId` 37460 existe
-- bien dans GameObjectDisplayInfo du build 7.3.5.26972, avec une boîte
-- englobante de 44 × 44 × 71 unités, et la rotation (0,0,0,1) est
-- l'identité, la même que celle des Cages de la Légion qui s'affichent
-- correctement.
--
-- État attendu : GO_STATE_READY (1), celui de 79 des 101 objets de la
-- carte, dont toutes les cages, les fleurs et les navires.
--
-- PORTÉE : les six flèches uniquement. Les Canons de siège (240214) et
-- deux Portails de la Légion partagent le même défaut apparent, mais
-- rien ne prouve encore que leur état soit fautif — un canon peut
-- légitimement s'afficher chargé. À vérifier en jeu avant d'y toucher.
-- =====================================================================
UPDATE `gameobject`
SET `state` = 1
WHERE `id` = 240194
AND `map` = 1460
AND `state` = 2;