From 11bf7385543db2909c9bba8fe3c78d45b0e0c7e0 Mon Sep 17 00:00:00 2001 From: SylvaniaCore deploy Date: Mon, 17 Aug 2026 11:32:14 +0200 Subject: [PATCH] Horde Druid 60896 : fin des cadavres ambulants sur lIle Vagabonde curhealth=0 en base + RegenHealth=0 au template => SetSpawnHealth() appelle SetHealth(0) sur une creature pourtant vivante : le client laffiche en cadavre pendant que le serveur continue sa patrouille. Alignement sur lentree jumelle 60770, deja a RegenHealth=1. Co-Authored-By: Claude Opus 4.8 --- sql/sylvania/horde_druid_60896.sql | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sql/sylvania/horde_druid_60896.sql diff --git a/sql/sylvania/horde_druid_60896.sql b/sql/sylvania/horde_druid_60896.sql new file mode 100644 index 0000000..cce7bd7 --- /dev/null +++ b/sql/sylvania/horde_druid_60896.sql @@ -0,0 +1,36 @@ +-- ===================================================================== +-- Horde Druid (60896) — cadavres ambulants sur l'Île Vagabonde +-- +-- Symptôme signalé en jeu (GUID 21001619) : le PNJ est affiché mort par +-- le client, mais il continue de parcourir son chemin de patrouille. +-- +-- Cause : dans `Creature::SetSpawnHealth()`, la vie du spawn n'est lue +-- depuis `creature.curhealth` QUE si le template a `RegenHealth = 0` ; +-- sinon la créature apparaît à sa vie maximale. Or ce core ne traite pas +-- `curhealth = 0` comme « pleine vie » : il appelle littéralement +-- SetHealth(0). La créature reste donc VIVANTE côté serveur (deathState +-- ALIVE, IA et points de passage actifs) alors que le client, qui ne voit +-- que 0 PV, l'affiche en cadavre. +-- +-- Sur cette base, 1 961 spawns de l'île ont `curhealth = 0` sans que cela +-- se voie : leur template a `RegenHealth = 1`, la valeur est donc ignorée. +-- Seuls 36 spawns du serveur cumulent `curhealth = 0` ET `RegenHealth = 0` : +-- * 22 « Injured Sailor » (55999) — statiques, drapeau STUNNED, immunités +-- et clic-sort de sauvetage : ce sont des blessés couchés VOULUS, on n'y +-- touche pas. +-- * 13 « Horde Druid » (60896) — dont les 2 seuls qui patrouillent +-- (21001619 et 21001822), d'où le cadavre ambulant. +-- * 1 « Refurbished Steam Tank » (29144, carte 0) — hors périmètre, mais +-- même défaut : à surveiller côté Forgefer. +-- +-- Correctif : `RegenHealth = 1` sur l'entrée 60896, ce qui l'aligne sur son +-- entrée jumelle 60770 (« Horde Druid » strictement identique : même niveau, +-- même classe, mêmes drapeaux, même HealthModifier) déjà à 1. Le 0 était du +-- bruit d'import, pas une intention de design : aucun script ne maintient +-- ces druides à une vie fixe (aucune ligne dans smart_scripts pour 60896). +-- +-- Nécessite un redémarrage : les spawns déjà en jeu conservent leurs 0 PV +-- jusqu'à leur prochaine réapparition. +-- ===================================================================== + +UPDATE `creature_template` SET `RegenHealth`=1 WHERE `entry`=60896;