Rivage brise : Tirion introuvable, allies desarmes, intro inaudible
SIGNALE EN JEU : « p7 Tirion reste muet, le script ne se lance plus, mais Krosus est bien combattable ». Un seul defaut, deux symptomes. La verification de proximite sortait SANS SE REPLANIFIER quand Tirion n'etait pas encore charge -- sa zone se trouve a l'autre bout de la carte, et la grille ne se peuple qu'a l'approche du joueur. Au premier passage, deux secondes apres la fin de l'etape 6, il n'existait pas : la tache mourait la, definitivement. D'ou Tirion muet, et d'ou Krosus combattable, puisque c'est cette meme scene qui devait le figer. Le meme Repeat existait deja dans la detection de Varian ; je ne l'avais pas reporte ici. « Varian a un dialogue audio au lancement de la campagne, il ne se declenche pas. » StartIntro etait appele DANS OnPlayerEnter, pendant l'ajout du joueur a la carte : le cri partait quand le client chargeait encore la zone. Decale de quatre secondes. Corrige au passage le demarrage direct en phase 2, meme cause -- les douze secondes de la premiere phase s'ecoulaient avant l'arrivee effective. « Tous les PNJ allies doivent porter leurs armes. » L'etat de fourreau ne suffisait pas : il n'y avait rien a degainer. Sur les 51 entrees alliees de la carte, seules QUATRE avaient un equipement defini. Trente equipements recuperes du creature_equip_template de la reference : 131 spawns sont desormais armes, contre 11. Les 263 allies passent aussi en arme degainee, sans emote d'etat -- l'emote 27 demandee est celle du combat A MAINS NUES et aurait range leurs armes. Sans emote forcee, le client joue l'attitude propre a l'arme reellement portee, hache a deux mains comme epee courte. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
-- =====================================================================
|
||||
-- Rivage brisé — armer les alliés
|
||||
--
|
||||
-- SIGNALÉ EN JEU : « les PNJ ne portent encore aucune arme ».
|
||||
--
|
||||
-- L'état de fourreau ne suffisait pas : il n'y avait rien à
|
||||
-- dégainer. Sur les 51 entrées alliées de la carte, seules QUATRE
|
||||
-- avaient un équipement défini — les 47 autres n'ont jamais eu
|
||||
-- d'arme, ni en base ni sur leur modèle.
|
||||
--
|
||||
-- Source : creature_equip_template du dump de référence
|
||||
-- dufernst/LegionCore-7.3.5, qui les renseigne. 30 équipements
|
||||
-- pour autant d'entrées.
|
||||
--
|
||||
-- Les spawns de la carte qui n'en portaient aucun se voient
|
||||
-- attribuer le jeu numéro 1 de leur entrée, quand il existe.
|
||||
-- =====================================================================
|
||||
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90708,1,140776,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90709,1,2179,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90710,1,58367,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90711,1,140777,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90712,1,140546,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90713,1,45899,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90714,1,139131,0,12869) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90716,1,53096,0,11587) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (90717,1,139132,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (91353,1,45726,0,45727) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (91949,1,0,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (91951,1,13262,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (92074,1,73008,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (92122,1,0,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (92586,1,0,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (93704,1,13631,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (94209,1,1899,0,117413) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (94223,1,40595,0,40596) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97496,1,45726,0,45727) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97502,1,40595,0,40596) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97503,1,1899,0,117413) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97521,1,140546,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97525,1,12754,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97526,1,5286,0,5286) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97527,1,2176,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (97528,1,2176,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (110941,1,40595,0,40596) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (112879,1,73008,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (112920,1,0,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
INSERT INTO `creature_equip_template` (`CreatureID`,`ID`,`ItemID1`,`ItemID2`,`ItemID3`) VALUES (112921,1,0,0,0) ON DUPLICATE KEY UPDATE `ItemID1`=VALUES(`ItemID1`), `ItemID2`=VALUES(`ItemID2`), `ItemID3`=VALUES(`ItemID3`);
|
||||
|
||||
UPDATE `creature` c
|
||||
JOIN `creature_equip_template` e ON e.`CreatureID` = c.`id` AND e.`ID` = 1
|
||||
SET c.`equipment_id` = 1
|
||||
WHERE c.`map` = 1460 AND c.`equipment_id` = 0;
|
||||
@@ -0,0 +1,30 @@
|
||||
-- =====================================================================
|
||||
-- Rivage brisé — les alliés en position de combat
|
||||
--
|
||||
-- DEMANDÉ EN JEU : « tous les PNJ alliés doivent être en
|
||||
-- .npc playemote 27 ».
|
||||
--
|
||||
-- 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.
|
||||
--
|
||||
-- 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.
|
||||
-- =====================================================================
|
||||
|
||||
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;
|
||||
@@ -292,7 +292,21 @@ struct scenario_broken_shore_intro : public InstanceScript
|
||||
{
|
||||
introDone = true;
|
||||
team = player->GetTeamId();
|
||||
StartIntro();
|
||||
|
||||
// =====================================================
|
||||
// SIGNALE EN JEU : « Varian a un dialogue audio au
|
||||
// lancement de la campagne, il ne se declenche pas ».
|
||||
//
|
||||
// StartIntro etait appele DANS OnPlayerEnter, c'est-a-dire
|
||||
// pendant l'ajout du joueur a la carte. Le cri partait
|
||||
// alors que le client chargeait encore la zone : il ne le
|
||||
// recevait jamais. On laisse quatre secondes au client pour
|
||||
// se poser avant d'ouvrir la scene.
|
||||
// =====================================================
|
||||
scheduler.Schedule(Seconds(4), [this](TaskContext /*c*/)
|
||||
{
|
||||
StartIntro();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -738,9 +752,18 @@ struct scenario_broken_shore_intro : public InstanceScript
|
||||
if (stage != STAGE_HIGHLORD)
|
||||
return;
|
||||
|
||||
// SIGNALE EN JEU : « p7 Tirion reste muet, le script ne se
|
||||
// lance plus ». La tache sortait SANS SE REPLANIFIER quand
|
||||
// Tirion n'etait pas encore charge -- sa zone se trouve a
|
||||
// l'autre bout de la carte, la grille n'est peuplee qu'a
|
||||
// l'approche du joueur. Elle mourait donc au premier
|
||||
// passage, et la scene n'avait plus aucune chance de partir.
|
||||
Creature* tirion = instance->GetCreature(tirionGUID);
|
||||
if (!tirion)
|
||||
{
|
||||
context.Repeat(Seconds(2));
|
||||
return;
|
||||
}
|
||||
|
||||
bool atteint = false;
|
||||
DoOnPlayers([&atteint, tirion](Player* player)
|
||||
|
||||
Reference in New Issue
Block a user