diff --git a/chantiers/rivage_brise/retour_immunite_1460.sql b/chantiers/rivage_brise/retour_immunite_1460.sql new file mode 100644 index 0000000..a36f889 --- /dev/null +++ b/chantiers/rivage_brise/retour_immunite_1460.sql @@ -0,0 +1,53 @@ +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105176; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105169; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105168; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105171; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105170; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111079; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=90688; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111154; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111089; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=91902; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105166; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105163; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111165; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111153; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111152; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111149; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111148; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=92558; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105192; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105188; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105190; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105185; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105187; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105186; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105181; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105180; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105182; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105179; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111167; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111156; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111088; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111087; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105197; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105189; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111173; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111175; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111174; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105183; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105175; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105174; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105165; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105164; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111157; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111155; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111085; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=111171; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105196; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105167; +UPDATE `creature_template` SET `unit_flags`=33555200 WHERE `entry`=113129; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=90544; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=105172; +UPDATE `creature_template` SET `unit_flags`=33536 WHERE `entry`=94276; +UPDATE `creature_template` SET `unit_flags`=537166592 WHERE `entry`=101632; diff --git a/sql/sylvania/rivage_immunite_1460.sql b/sql/sylvania/rivage_immunite_1460.sql new file mode 100644 index 0000000..6e68832 --- /dev/null +++ b/sql/sylvania/rivage_immunite_1460.sql @@ -0,0 +1,46 @@ +-- ===================================================================== +-- Rivage brisé (carte 1460) — retrait de l'immunité aux joueurs +-- +-- Signalé en jeu : « les démons invoqués c'est ok mais pas les autres +-- au fond ». Les créatures invoquées par le script étaient frappables, +-- les placements statiques non. +-- +-- LA CAUSE, et elle est de mon fait +-- La transposition des modèles de créatures depuis le dump de référence +-- a importé `unit_flags` sur 136 entrées. Parmi les valeurs reprises, +-- 33536 et 537166592 contiennent le bit 256 — UNIT_FLAG_IMMUNE_TO_PC, +-- qui empêche tout joueur d'attaquer la créature. +-- +-- Dans le cœur de référence, un script retire vraisemblablement ce +-- drapeau à l'instant voulu. Le nôtre ne gère aucun drapeau : les +-- démons restaient donc immunisés en permanence. +-- +-- Cela explique aussi pourquoi la sonde ATTDBG ne produisait plus rien : +-- le client refusait de lui-même, sans jamais interroger le serveur. +-- +-- PORTÉE : uniquement les factions HOSTILES — +-- 2780 (30 entrées), 1768 (20 : Anetheron, Balnazzar, Brutallus…), +-- 2878 (Krosus), 14 (Gul'dan), 2877 (Lave gangrenée). +-- +-- Volontairement ÉPARGNÉS, car l'immunité y est légitime : +-- 35, 2876, 2879, 1819 — alliés, prêtres, montures, vaisseaux. +-- +-- UNE SIMPLIFICATION ASSUMÉE +-- Krosus et Gul'dan perdent aussi leur immunité, alors qu'une +-- implémentation fidèle la retirerait au début de leur étape. Notre +-- script ne gère aucun drapeau : la conserver rendrait les étapes 7 et 8 +-- infranchissables. La progression reste pilotée par la machine à états +-- du script. +-- +-- Retour arrière : chantiers/rivage_brise/retour_immunite_1460.sql +-- ===================================================================== + +UPDATE `creature_template` ct + JOIN (SELECT DISTINCT c.id + FROM creature c + JOIN creature_template t ON t.entry = c.id + WHERE c.map = 1460 + AND (t.unit_flags & 256) + AND t.faction IN (2780, 1768, 2877, 2878, 14)) AS cible + ON cible.id = ct.entry + SET ct.unit_flags = ct.unit_flags & ~256;