diff --git a/sql/sylvania/rivage_faction_2898.sql b/sql/sylvania/rivage_faction_2898.sql new file mode 100644 index 0000000..055ff30 --- /dev/null +++ b/sql/sylvania/rivage_faction_2898.sql @@ -0,0 +1,39 @@ +-- ===================================================================== +-- Rivage brisé — les démons passent en faction 2898 +-- +-- ÉTABLI PAR TEST EN JEU, et il résout le paradoxe d'août. +-- +-- En août on avait basculé tous les démons de cette carte en faction 16 +-- parce que la 2780 les rendait inattaquables — sans comprendre +-- pourquoi, la théorie disant l'inverse. La 16 fonctionnait, on l'a +-- prise. +-- +-- Ce qu'on ignorait, c'est le prix : la faction 16 porte +-- `EnemyGroup = 1`, elle n'est hostile QU'AUX JOUEURS. Nos alliés, eux, +-- ont `EnemyGroup = 0` et une liste d'ennemis qui désigne la faction +-- 1786. Alliés et démons ne se reconnaissaient donc pas — d'où les +-- soldats qui entrent en combat puis n'ont personne à frapper, relevé +-- par la sonde : « liste de menace vide », onze fois pour la garde +-- royale gilnéenne, dix fois pour Jaina, dix fois pour Varian. +-- +-- On avait réparé le joueur en supprimant la bataille. +-- +-- La 2898 porte la faction 1786 comme la 2780, mais avec +-- `EnemyGroup = 15` — hostile à tous les groupes, joueurs compris. +-- Vérifié en jeu sur le Molosse de l'effroi gangrené : attaquable. +-- +-- PORTÉE : uniquement les entrées exclusives à la carte 1460, comme en +-- août. Celles partagées avec d'autres cartes sont écartées. +-- +-- Retour arrière : rebasculer les mêmes entrées en 16. +-- ===================================================================== + +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.`faction` = 16 + AND c.`id` NOT IN (SELECT DISTINCT `id` FROM `creature` WHERE `map` <> 1460)) AS cible + ON cible.`id` = ct.`entry` + SET ct.`faction` = 2898; diff --git a/sql/sylvania/rivage_posture.sql b/sql/sylvania/rivage_posture.sql index c2036b1..3005b8b 100644 --- a/sql/sylvania/rivage_posture.sql +++ b/sql/sylvania/rivage_posture.sql @@ -1,30 +1,279 @@ -- ===================================================================== --- Rivage brisé — les alliés en position de combat +-- Rivage brisé — posture et armement des alliés -- --- DEMANDÉ EN JEU : « tous les PNJ alliés doivent être en --- .npc playemote 27 ». +-- SIGNALÉ EN JEU : « les PNJ ont bien leurs armes mais pas de posture +-- de combat actif ». -- --- L'emote 27 est EMOTE_STATE_READY_UNARMED, une posture d'état — donc --- permanente, contrairement aux emotes ponctuelles. Des soldats plantés --- au repos au milieu d'une bataille, c'était l'essentiel du « ça n'a --- pas d'âme » signalé plus tôt. +-- 131 alliés armés passent en EMOTE_STATE_READY1H (333), arme au +-- clair. Les 132 sans équipement gardent une posture neutre : leur +-- donner une attitude armée les ferait mimer une arme absente. -- --- Elle se pose dans `creature_addon`, table qui ne contenait AUCUNE --- ligne pour cette carte — d'où l'absence totale de posture, d'aura et --- d'emote sur les 748 créatures. --- --- PORTÉE : les 263 créatures alliées de la carte 1460, reconnues à leur --- faction — 2879 Alliance, 2876 Horde, 35 amical à tous, 1819. Les --- démons en faction 16 sont écartés : ils ont leur propre animation de --- combat, et une posture d'état la figerait. +-- La table creature_addon ne contenait AUCUNE ligne pour cette carte +-- avant aujourd hui, d où l absence totale de posture. -- ===================================================================== -INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, - `emote`, `aiAnimKit`, `movementAnimKit`, - `meleeAnimKit`, `visibilityDistanceType`, `auras`) -SELECT c.`guid`, 0, 0, 0, 1, 0, 0, 0, 0, 0, '' - FROM `creature` c - JOIN `creature_template` ct ON ct.`entry` = c.`id` - WHERE c.`map` = 1460 - AND ct.`faction` IN (2879, 2876, 35, 1819) -ON DUPLICATE KEY UPDATE `emote` = 0; +DELETE a FROM `creature_addon` a JOIN `creature` c ON c.`guid` = a.`guid` WHERE c.`map` = 1460; + +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200017,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200022,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200023,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200026,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200027,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200032,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200035,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200037,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200038,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200041,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200042,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200043,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200044,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200045,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200046,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200047,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200048,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200049,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200050,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200051,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200052,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200053,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200054,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200055,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200058,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200059,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200060,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200061,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200062,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200063,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200064,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200065,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200067,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200069,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200071,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200072,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200073,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200075,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200077,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200078,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200083,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200085,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200086,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200087,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200088,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200090,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200091,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200094,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200095,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200109,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200115,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200117,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200119,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200120,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200121,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200122,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200123,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200124,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200125,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200126,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200127,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200128,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200129,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200130,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200131,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200132,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200133,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200134,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200135,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200136,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200137,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200138,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200139,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200145,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200156,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200164,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200167,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200168,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200169,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200186,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200223,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200224,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200225,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200226,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200227,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200228,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200229,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200230,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200231,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200232,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200233,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200234,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200235,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200236,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200237,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200238,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200239,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200240,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200241,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200242,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200243,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200244,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200245,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200246,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200247,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200248,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200249,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200295,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200322,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200323,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200324,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200325,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200326,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200327,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200328,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200330,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200331,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200332,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200333,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200334,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200335,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200336,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200337,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200338,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200339,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200340,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200341,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200342,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200343,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200344,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200345,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200346,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200347,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200348,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200349,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200350,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200351,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200352,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200353,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200354,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200355,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200356,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200357,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200359,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200363,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200364,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200365,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200366,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200367,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200368,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200369,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200370,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200371,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200372,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200373,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200374,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200375,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200376,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200377,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200378,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200379,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200380,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200381,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200382,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200383,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200402,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200403,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200404,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200405,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200406,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200407,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200408,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200409,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200410,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200411,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200412,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200413,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200414,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200415,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200416,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200417,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200418,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200420,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200421,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200422,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200423,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200424,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200425,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200426,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200427,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200428,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200429,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200430,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200433,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200434,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200435,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200436,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200443,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200444,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200526,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200527,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200528,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200573,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200599,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200632,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200642,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200644,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200645,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200646,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200647,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200648,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200649,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200650,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200651,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200652,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200653,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200654,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200655,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200656,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200657,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200658,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200664,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200665,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200666,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200667,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200668,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200669,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200670,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200671,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200672,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200673,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200674,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200675,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200677,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200678,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200679,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200680,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200681,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200682,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200683,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200685,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200690,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200714,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200716,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200717,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200718,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200720,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200722,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200725,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200731,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200733,0,0,0,1,0,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200734,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200742,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200743,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200744,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200745,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200746,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200747,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200748,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200749,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200750,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200751,0,0,0,1,333,0,0,0,0,""); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`aiAnimKit`,`movementAnimKit`,`meleeAnimKit`,`visibilityDistanceType`,`auras`) VALUES (290200752,0,0,0,1,333,0,0,0,0,""); diff --git a/src/server/game/Mercenary/MercenaryMgr.cpp b/src/server/game/Mercenary/MercenaryMgr.cpp index 33df800..c0be794 100644 --- a/src/server/game/Mercenary/MercenaryMgr.cpp +++ b/src/server/game/Mercenary/MercenaryMgr.cpp @@ -361,7 +361,7 @@ bool MercenaryMgr::FindCandidate(Player* owner, uint8 role, uint32& accountId, u return false; } -MercenaryResult MercenaryMgr::Summon(Player* owner, uint8 role, Creature* portal) +MercenaryResult MercenaryMgr::Summon(Player* owner, uint8 role, Creature* portal, bool freeOfCharge) { if (!m_enabled) return MERC_ERR_DISABLED; @@ -396,7 +396,7 @@ MercenaryResult MercenaryMgr::Summon(Player* owner, uint8 role, Creature* portal return MERC_ERR_GROUP_FULL; } - if (!owner->HasEnoughMoney(uint64(m_cost))) + if (!freeOfCharge && !owner->HasEnoughMoney(uint64(m_cost))) return MERC_ERR_NO_MONEY; uint32 accountId = 0; @@ -410,8 +410,9 @@ MercenaryResult MercenaryMgr::Summon(Player* owner, uint8 role, Creature* portal if (!session) return MERC_ERR_NO_BOT; - // Le mercenaire existe : on encaisse. - owner->ModifyMoney(-int64(m_cost)); + // Le mercenaire existe : on encaisse, sauf recrutement offert. + if (!freeOfCharge) + owner->ModifyMoney(-int64(m_cost)); uint32 const level = PlayerBotSetting::CheckMaxLevel(owner->getLevel()); diff --git a/src/server/game/Mercenary/MercenaryMgr.h b/src/server/game/Mercenary/MercenaryMgr.h index 6de7600..e33b3a2 100644 --- a/src/server/game/Mercenary/MercenaryMgr.h +++ b/src/server/game/Mercenary/MercenaryMgr.h @@ -110,7 +110,12 @@ class TC_GAME_API MercenaryMgr // Verifie, encaisse et lance l invocation. Le prelevement n a lieu que // si un mercenaire du role demande a effectivement ete reserve. // "portal" est la structure invoquante : le mercenaire en sortira. - MercenaryResult Summon(Player* owner, uint8 role, Creature* portal = nullptr); + // « freeOfCharge » saute la verification et le prelevement : il sert + // aux recrutements que le jeu offre, comme l escorte fournie a + // l entree d un scenario. Le contrat reste identique par ailleurs, + // rupture au premier depart du groupe comprise. + MercenaryResult Summon(Player* owner, uint8 role, Creature* portal = nullptr, + bool freeOfCharge = false); void Update(uint32 diff); diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index f64fabc..3edc131 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -180,7 +180,30 @@ WorldSession::~WorldSession() while (_recvQueue.next(packet)) delete packet; - LoginDatabase.PExecute("UPDATE account SET online = 0 WHERE id = %u;", GetAccountId()); // One-time query + // ================================================================= + // SylvaniaCore : ne plus ecrire en base une fois l'arret engage. + // + // Chaque arret du serveur produisait un vidage memoire de 120 Mo : + // #4 World::~World() + // #3 PlayerBotSession::~PlayerBotSession() + // #2 WorldSession::~WorldSession() + // #1 DatabaseWorkerPool::Execute() + // #5 __run_exit_handlers + // Le monde est detruit par les gestionnaires de sortie, donc APRES + // le demontage du reservoir de connexions : la requete ci-dessous + // ecrivait dans un objet deja liberé. + // + // Ces faux plantages noient les vrais -- on a passe du temps cette + // semaine a trier des vidages qui n'etaient que des arrets propres. + // + // Sauter la requete est sans consequence : Main.cpp remet DEJA tous + // les comptes et personnages du royaume hors ligne au demarrage. + // + // IsStopped() est statique et lit un booleen statique : il reste + // consultable pendant la destruction, contrairement a sWorld. + // ================================================================= + if (!World::IsStopped()) + LoginDatabase.PExecute("UPDATE account SET online = 0 WHERE id = %u;", GetAccountId()); } bool WorldSession::PlayerDisconnected() const diff --git a/src/server/scripts/BrokenIsles/Scenario/scenario_broken_shore_intro.cpp b/src/server/scripts/BrokenIsles/Scenario/scenario_broken_shore_intro.cpp index 5c74620..68a245a 100644 --- a/src/server/scripts/BrokenIsles/Scenario/scenario_broken_shore_intro.cpp +++ b/src/server/scripts/BrokenIsles/Scenario/scenario_broken_shore_intro.cpp @@ -17,6 +17,9 @@ #include "GameObject.h" #include "ObjectMgr.h" #include "TaskScheduler.h" +#include "MercenaryMgr.h" +#include "Chat.h" +#include "Group.h" enum BrokenShoreData { @@ -288,6 +291,54 @@ struct scenario_broken_shore_intro : public InstanceScript // objectif « embarquement » (Alliance) : credite aussi ici au cas ou player->KilledMonsterCredit(NPC_CREDIT_SHIP); + // ============================================================= + // ESCORTE_MERCENAIRE + // + // DEMANDE : « cree le systeme de groupe avec playerbot pour le + // scenario, avec un groupe complet heal tank dps », en reprenant + // le principe des mercenaires mais declenche a l entree. + // + // Le scenario officiel se joue en groupe, constitue par la file + // d attente. Faute de ce systeme, on offre une escorte : un + // protecteur, un guerisseur et deux combattants, gratuitement. + // + // Le contrat reste celui des mercenaires -- rupture au premier + // depart du groupe -- mais sans prelevement : le jeu la fournit, + // le joueur ne l a pas louee. + // + // On ne complete que ce qui manque : un joueur deja accompagne + // garde ses compagnons. + // ============================================================= + if (sMercenaryMgr->IsEnabled()) + { + uint32 place = MERCENARY_GROUP_SIZE - 1; + if (Group* groupe = player->GetGroup()) + place = (groupe->GetMembersCount() < MERCENARY_GROUP_SIZE) + ? MERCENARY_GROUP_SIZE - groupe->GetMembersCount() : 0; + + static uint8 const composition[] = { ROLE_TANK, ROLE_HEALER, ROLE_DAMAGE, ROLE_DAMAGE }; + + // SIGNALE EN JEU : « une se superpose a la meme position ». + // On espace les arrivees d'une seconde et demie : le module + // pose chaque mercenaire aupres de son employeur, et deux + // invocations simultanees se retrouvent au meme point. + uint8 recrutes = 0; + for (uint8 i = 0; i < 4 && recrutes < place; ++i) + { + uint8 const role = composition[i]; + Player* employeur = player; + scheduler.Schedule(Milliseconds(1500 * (i + 1)), [employeur, role](TaskContext) + { + sMercenaryMgr->Summon(employeur, role, nullptr, true); + }); + ++recrutes; + } + + if (recrutes) + ChatHandler(player->GetSession()).PSendSysMessage( + "Une escorte de %u combattants se joint a vous pour l'assaut.", recrutes); + } + if (!introDone) { introDone = true; @@ -343,6 +394,10 @@ struct scenario_broken_shore_intro : public InstanceScript { case NPC_KING_VARIAN: placedVarianGUID = creature->GetGUID(); break; case NPC_VOLJIN: placedVoljinGUID = creature->GetGUID(); break; + case NPC_JAINA: jainaGUID = creature->GetGUID(); break; + case NPC_SYLVANAS: sylvanasGUID = creature->GetGUID(); break; + case NPC_GENN: gennGUID = creature->GetGUID(); break; + case NPC_THRALL: thrallGUID = creature->GetGUID(); break; case NPC_TIRION_POSE: tirionGUID = creature->GetGUID(); break; case NPC_GULDAN_POSE: guldanGUID = creature->GetGUID(); break; case NPC_KROSUS: krosusGUID = creature->GetGUID(); break; @@ -420,34 +475,71 @@ struct scenario_broken_shore_intro : public InstanceScript void StartIntro() { - FactionAnchors const& a = Anchors(); + // ============================================================= + // CAST DEJA POSE SUR LA CARTE : plus aucune invocation. + // + // SIGNALE EN JEU : « je n'avais pas remarque mais a cette + // position il y a un 2e Genn Grisetete et une 2e Jaina ». + // + // Troisieme fois que ce defaut se manifeste -- apres Varian, + // puis Tirion et Krosus. La carte porte TOUTE la distribution, + // a l'endroit qui lui revient : + // Genn Grisetete (487, 2052) a 49 m du debarquement + // Jaina (491, 2047) a 56 m + // Vol'jin, Thrall (568-572, 1882-1887) plage Horde + // Baine, Sylvanas (992-1000, 1874-1881) + // Mekkatorque, Varian (1117-1120, 2471-2484) + // + // Le script en fabriquait des copies au point d'ancrage, d'ou + // les doublons. On retient les vraies dans OnCreatureCreate et + // on ne convoque plus personne. + // + // Le chef de faction n'ouvre plus la scene : sur la plage, ce + // sont Genn et Jaina cote Alliance, Vol'jin cote Horde. Varian + // est ailleurs -- c'est tout l'objet de l'etape « Trouver + // Varian » d'aller le chercher. + // ============================================================= + leaderGUID = (team == TEAM_HORDE) ? placedVoljinGUID : placedVarianGUID; - // debarquement : chef de faction + escorte - if (Creature* leader = Summon(LeaderEntry(), a.beach)) - { - leaderGUID = leader->GetGUID(); - leader->AI()->Talk(0); - } - if (team == TEAM_HORDE) - { - if (Creature* sylvanas = SummonAt(NPC_SYLVANAS, a.beach, 4.0f, 4.0f)) - sylvanasGUID = sylvanas->GetGUID(); - SummonAt(NPC_BAINE, a.beach, -4.0f, 4.0f); - SummonAt(NPC_THRALL, a.beach, 4.0f, -4.0f); - } - else - { - if (Creature* jaina = SummonAt(NPC_JAINA, a.beach, 4.0f, 4.0f)) - jainaGUID = jaina->GetGUID(); - SummonAt(NPC_GENN, a.beach, -4.0f, 4.0f); - SummonAt(NPC_MEKKATORQUE, a.beach, 4.0f, -4.0f); - } - for (uint8 i = 0; i < 4; ++i) - SummonAt(TroopEntry(), a.beach, -8.0f + i * 5.0f, -8.0f); + if (Creature* orateur = instance->GetCreature(team == TEAM_HORDE ? placedVoljinGUID : gennGUID)) + orateur->AI()->Talk(0); - // etape 0 « The Broken Shore » : courte mise en scene puis assaut - scheduler.Schedule(Seconds(12), [this](TaskContext /*context*/) + // ============================================================= + // ATTEINDRE_LA_PLAGE + // + // L'etape 1 s'intitule « Rendez-vous au rivage Brise » : elle se + // joue depuis le pont du navire, et ne s'acheve qu'une fois le + // joueur debarque. Une minuterie de douze secondes la validait + // sans lui -- et comme le client mettait ce temps a charger la + // zone, il se retrouvait deja en phase 2 a son arrivee. + // + // On attend desormais qu'il pose le pied sur le sable, a moins + // de 40 metres du point de debarquement. + // ============================================================= + scheduler.Schedule(Seconds(3), [this](TaskContext context) { + if (stage != STAGE_INTRO) + return; + + // SIGNALE EN JEU : « je reste bloque en p1 ». Le pont du + // navire est a 52 metres du point de debarquement, donc hors + // du cercle de 40 que j'exigeais : selon l'endroit ou le + // joueur descendait, il n'y entrait jamais. Porte a 90, ce + // qui couvre toute la greve devant le navire. + bool debarque = false; + Position const& plage = Anchors().beach; + DoOnPlayers([&debarque, &plage](Player* player) + { + if (player->GetExactDist2d(plage.GetPositionX(), plage.GetPositionY()) < 90.0f) + debarque = true; + }); + + if (!debarque) + { + context.Repeat(Seconds(3)); + return; + } + // PLUS AUCUNE VAGUE. Le script a ete ecrit quand la carte // etait VIDE : il fabriquait ses propres ennemis partout. // Elle porte desormais 748 creatures posees, et ces @@ -584,7 +676,10 @@ struct scenario_broken_shore_intro : public InstanceScript // switche jusqu'a la 5 sans rien faire »). stage = STAGE_COMMANDER; - if (Creature* arganoth = Summon(NPC_ARGANOTH, Anchors().commander)) + // Arganoth est POSE sur la carte en (613, 2085) : quatrieme + // occurrence du meme defaut, apres Varian, Tirion, Krosus et la + // distribution de la plage. On emploie celui de la base. + if (Creature* arganoth = instance->GetCreature(arganothGUID)) { arganoth->AI()->Talk(0); arganoth->SetInCombatWithZone(); @@ -991,6 +1086,8 @@ private: ObjectGuid tirionGUID; ObjectGuid krosusGUID; ObjectGuid arganothGUID; + ObjectGuid gennGUID; + ObjectGuid thrallGUID; ObjectGuid guldanGUID; TaskScheduler scheduler; }; diff --git a/src/server/scripts/EasternKingdoms/Zones/zone_eastern_kingdoms_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/Zones/zone_eastern_kingdoms_stormwind_city.cpp index 35a14f6..88c4920 100644 --- a/src/server/scripts/EasternKingdoms/Zones/zone_eastern_kingdoms_stormwind_city.cpp +++ b/src/server/scripts/EasternKingdoms/Zones/zone_eastern_kingdoms_stormwind_city.cpp @@ -15,6 +15,7 @@ * with this program. If not, see . */ +#include "Chat.h" #include "LFGMgr.h" #include "LFGQueue.h" #include "LFGPackets.h" @@ -340,12 +341,56 @@ public: player->PlayerTalkClass->ClearMenus(); player->PlayerTalkClass->SendCloseGossip(); - // Embarquement pour la Rive Brisee : credit du bateau puis entree dans le scenario 786 (map 1460) - if (player->GetQuestStatus(42740) == QUEST_STATUS_INCOMPLETE) + + // ============================================================= + // SylvaniaCore : on embarque, on n'atterrit pas sur le sable. + // + // SIGNALE EN JEU : « quand on rejoint le Rivage brise on spawn + // sur un bateau en mouvement qui se dirige vers la plage, on + // n'est pas teleporte directement sur la plage ». Confirme par + // la video : la premiere phase s'intitule « Rendez-vous au + // rivage Brise » et se joue depuis le pont d'un navire. + // + // Ce script deposait le joueur en (443.8, 2076.1, 1.2), le + // point d'ancrage de la plage -- une coordonnee inventee. + // + // Le sort 199358 porte la destination OFFICIELLE dans + // spell_target_position : (441.2, 2023.75, 4.44), c'est-a-dire + // le pont de l'Alliance Battleship, pose en (440, 2025). La + // ligne est marquee VerifiedBuild 27843 : c'est de la donnee + // Blizzard, pas une deduction. + // ============================================================= + // SIGNALE EN JEU : « le gossip d'Angelica ne declenche plus + // rien ». Deux causes, corrigees ensemble. + // + // Le lancement du sort 199358 n'aboutissait pas -- rien dans le + // journal, donc il n'etait meme pas tente. On teleporte + // directement aux coordonnees que ce sort porte dans + // spell_target_position, ce qui revient au meme sans dependre + // de la presence du sort cote serveur. + // + // Et la condition exigeait que la quete 42740 soit EN COURS : + // deja rendue ou pas encore prise, l'option restait muette. + // On accepte desormais aussi la quete achevee mais non rendue, + // et on laisse repasser ceux qui l'ont terminee -- refaire le + // scenario ne doit pas etre interdit. + float const PONT_DU_NAVIRE_X = 441.2f; + float const PONT_DU_NAVIRE_Y = 2023.75f; + float const PONT_DU_NAVIRE_Z = 4.44f; + + QuestStatus const etat = player->GetQuestStatus(42740); + if (etat == QUEST_STATUS_INCOMPLETE || etat == QUEST_STATUS_COMPLETE || + etat == QUEST_STATUS_REWARDED) { - player->KilledMonsterCredit(creature->GetEntry()); - player->TeleportTo(1460, 443.8f, 2076.1f, 1.2f, 0.4f); + if (etat == QUEST_STATUS_INCOMPLETE) + player->KilledMonsterCredit(creature->GetEntry()); + + player->TeleportTo(1460, PONT_DU_NAVIRE_X, PONT_DU_NAVIRE_Y, + PONT_DU_NAVIRE_Z, 0.4f); } + else + ChatHandler(player->GetSession()).PSendSysMessage( + "Prenez d'abord la quete La bataille du rivage Brise."); return true; };