Skip to content

Commit 4988b2a

Browse files
Nyeriahdr-jofflclaude
authored
fix(Core/Scripts): Move EasternKingdoms gossip to database (azerothcore#25208)
Co-authored-by: dr-j <dr-j@users.noreply.github.com> Co-authored-by: offl <offl@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 3fa012f commit 4988b2a

4 files changed

Lines changed: 116 additions & 143 deletions

File tree

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
-- Move gossip handling from C++ scripts to database for Augustus the Touched,
2+
-- Parqual Fintallas, and Lokhtos Darkbargainer.
3+
-- Augustus migration based on TC work by dr-j (commit cefed89c38bc)
4+
-- Parqual migration based on TC work by offl (issue #24993, commit 7908b00311)
5+
6+
-- =============================================================================
7+
-- 1. Augustus the Touched (entry 12384)
8+
-- Conditional vendor option if quest 6164 (Augustus' Receipt Book) rewarded.
9+
-- Two gossip texts: 4979 before quest, 4980 after quest.
10+
-- =============================================================================
11+
12+
-- Remove C++ ScriptName
13+
UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` = 12384;
14+
15+
-- Add gossip_menu entry for post-quest text 4980
16+
DELETE FROM `gossip_menu` WHERE `MenuID` = 4085 AND `TextID` = 4980;
17+
INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES (4085, 4980);
18+
19+
-- Conditions on gossip_menu text: 4979 before quest, 4980 after quest
20+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 14 AND `SourceGroup` = 4085 AND `SourceEntry` IN (4979, 4980);
21+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
22+
(14, 4085, 4979, 0, 0, 8, 0, 6164, 0, 0, 1, 0, 0, '', 'Augustus the Touched - Show text 4979 if quest 6164 NOT rewarded'),
23+
(14, 4085, 4980, 0, 0, 8, 0, 6164, 0, 0, 0, 0, 0, '', 'Augustus the Touched - Show text 4980 if quest 6164 rewarded');
24+
25+
-- Condition: show vendor option (MenuID 4085, OptionID 0) only if quest 6164 rewarded
26+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 4085 AND `SourceEntry` = 0;
27+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
28+
(15, 4085, 0, 0, 0, 8, 0, 6164, 0, 0, 0, 0, 0, '', 'Augustus the Touched - Show vendor option only if quest 6164 rewarded');
29+
30+
-- =============================================================================
31+
-- 2. Parqual Fintallas (entry 4488)
32+
-- Test of Lore quiz: 4 answers, wrong ones cast Shame, correct completes quest.
33+
-- =============================================================================
34+
35+
-- Remove C++ ScriptName, set SmartAI
36+
UPDATE `creature_template` SET `ScriptName` = '', `AIName` = 'SmartAI' WHERE `entry` = 4488;
37+
38+
-- Add gossip_menu entry for quiz text (5822) shown during quiz
39+
DELETE FROM `gossip_menu` WHERE `MenuID` = 4764 AND `TextID` = 5822;
40+
INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES (4764, 5822);
41+
42+
-- Condition on gossip_menu text 5822: quest 6628 taken + no Shame aura
43+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 14 AND `SourceGroup` = 4764 AND `SourceEntry` = 5822;
44+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
45+
(14, 4764, 5822, 0, 0, 9, 0, 6628, 0, 0, 0, 0, 0, '', 'Parqual Fintallas - Show quiz text 5822 if quest 6628 taken'),
46+
(14, 4764, 5822, 0, 0, 1, 0, 6767, 0, 0, 1, 0, 0, '', 'Parqual Fintallas - Show quiz text 5822 if player does not have Mark of Shame aura');
47+
48+
-- Conditions on quiz options 0, 1, 2, 3: quest 6628 taken + no Shame aura
49+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 4764 AND `SourceEntry` IN (0, 1, 2, 3);
50+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
51+
-- Option 0: Kel'Thuzad (wrong answer)
52+
(15, 4764, 0, 0, 0, 9, 0, 6628, 0, 0, 0, 0, 0, '', 'Parqual Fintallas - Show option 0 if quest 6628 taken'),
53+
(15, 4764, 0, 0, 0, 1, 0, 6767, 0, 0, 1, 0, 0, '', 'Parqual Fintallas - Show option 0 if no Mark of Shame aura'),
54+
-- Option 1: Gul'dan (wrong answer)
55+
(15, 4764, 1, 0, 0, 9, 0, 6628, 0, 0, 0, 0, 0, '', 'Parqual Fintallas - Show option 1 if quest 6628 taken'),
56+
(15, 4764, 1, 0, 0, 1, 0, 6767, 0, 0, 1, 0, 0, '', 'Parqual Fintallas - Show option 1 if no Mark of Shame aura'),
57+
-- Option 2: Kil'jaeden (wrong answer)
58+
(15, 4764, 2, 0, 0, 9, 0, 6628, 0, 0, 0, 0, 0, '', 'Parqual Fintallas - Show option 2 if quest 6628 taken'),
59+
(15, 4764, 2, 0, 0, 1, 0, 6767, 0, 0, 1, 0, 0, '', 'Parqual Fintallas - Show option 2 if no Mark of Shame aura'),
60+
-- Option 3: Ner'zhul (correct answer)
61+
(15, 4764, 3, 0, 0, 9, 0, 6628, 0, 0, 0, 0, 0, '', 'Parqual Fintallas - Show option 3 if quest 6628 taken'),
62+
(15, 4764, 3, 0, 0, 1, 0, 6767, 0, 0, 1, 0, 0, '', 'Parqual Fintallas - Show option 3 if no Mark of Shame aura');
63+
64+
-- SAI for Parqual Fintallas
65+
DELETE FROM `smart_scripts` WHERE `entryorguid` = 4488 AND `source_type` = 0;
66+
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
67+
-- Option 0 (Kel'Thuzad - wrong): close gossip, then cast Mark of Shame
68+
(4488, 0, 0, 1, 62, 0, 100, 0, 4764, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - On Gossip Select 0 (Kel''Thuzad) - Close Gossip'),
69+
(4488, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 6767, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - Linked - Cast Mark of Shame on Invoker'),
70+
-- Option 1 (Gul'dan - wrong): close gossip, then cast Mark of Shame
71+
(4488, 0, 2, 3, 62, 0, 100, 0, 4764, 1, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - On Gossip Select 1 (Gul''dan) - Close Gossip'),
72+
(4488, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 6767, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - Linked - Cast Mark of Shame on Invoker'),
73+
-- Option 2 (Kil'jaeden - wrong): close gossip, then cast Mark of Shame
74+
(4488, 0, 4, 5, 62, 0, 100, 0, 4764, 2, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - On Gossip Select 2 (Kil''jaeden) - Close Gossip'),
75+
(4488, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 6767, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - Linked - Cast Mark of Shame on Invoker'),
76+
-- Option 3 (Ner'zhul - correct): close gossip, then credit quest 6628
77+
(4488, 0, 6, 7, 62, 0, 100, 0, 4764, 3, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - On Gossip Select 3 (Ner''zhul) - Close Gossip'),
78+
(4488, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 15, 6628, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Parqual Fintallas - Linked - Area Explored Or Event Happens Quest 6628');
79+
80+
-- =============================================================================
81+
-- 3. Lokhtos Darkbargainer (entry 12944)
82+
-- Rep-gated vendor + conditional Thorium Brotherhood contract creation.
83+
-- =============================================================================
84+
85+
-- Remove C++ ScriptName, set SmartAI
86+
UPDATE `creature_template` SET `ScriptName` = '', `AIName` = 'SmartAI' WHERE `entry` = 12944;
87+
88+
-- Replace gossip_menu text: remove default 5834, add rep-conditional texts 3673/3677
89+
DELETE FROM `gossip_menu` WHERE `MenuID` = 4781 AND `TextID` IN (5834, 3673, 3677);
90+
INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES
91+
(4781, 3673),
92+
(4781, 3677);
93+
94+
-- Conditions on gossip_menu text: 3673 below Friendly, 3677 at Friendly+
95+
-- Friendly(4)=16, Honored(5)=32, Revered(6)=64, Exalted(7)=128 => mask 240
96+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 14 AND `SourceGroup` = 4781 AND `SourceEntry` IN (3673, 3677);
97+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
98+
(14, 4781, 3673, 0, 0, 5, 0, 59, 240, 0, 1, 0, 0, '', 'Lokhtos Darkbargainer - Show text 3673 if Thorium Brotherhood rep < Friendly'),
99+
(14, 4781, 3677, 0, 0, 5, 0, 59, 240, 0, 0, 0, 0, '', 'Lokhtos Darkbargainer - Show text 3677 if Thorium Brotherhood rep >= Friendly');
100+
101+
-- Condition on vendor option (MenuID 4781, OptionID 0): rep >= Friendly
102+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 4781 AND `SourceEntry` IN (0, 1);
103+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
104+
-- Option 0 (vendor): requires Friendly rep
105+
(15, 4781, 0, 0, 0, 5, 0, 59, 240, 0, 0, 0, 0, '', 'Lokhtos Darkbargainer - Show vendor option if Thorium Brotherhood rep >= Friendly'),
106+
-- Option 1 (contract): requires quest 7604 NOT rewarded + no item 18628 (incl. bank) + has item 17203
107+
(15, 4781, 1, 0, 0, 8, 0, 7604, 0, 0, 1, 0, 0, '', 'Lokhtos Darkbargainer - Show contract option if quest 7604 NOT rewarded'),
108+
(15, 4781, 1, 0, 0, 2, 0, 18628, 1, 1, 1, 0, 0, '', 'Lokhtos Darkbargainer - Show contract option if player does NOT have Thorium Brotherhood Contract'),
109+
(15, 4781, 1, 0, 0, 2, 0, 17203, 1, 0, 0, 0, 0, '', 'Lokhtos Darkbargainer - Show contract option if player has Sulfuron Ingot');
110+
111+
-- SAI for Lokhtos Darkbargainer: contract spell on gossip select option 1
112+
DELETE FROM `smart_scripts` WHERE `entryorguid` = 12944 AND `source_type` = 0;
113+
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
114+
-- Option 1 (Get contract): close gossip, then invoker casts contract creation spell
115+
(12944, 0, 0, 1, 62, 0, 100, 0, 4781, 1, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Lokhtos Darkbargainer - On Gossip Select 1 (Contract) - Close Gossip'),
116+
(12944, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 134, 23059, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Lokhtos Darkbargainer - Linked - Invoker Cast Create Thorium Brotherhood Contract');

src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -452,59 +452,6 @@ struct npc_phalanx : public ScriptedAI
452452
uint32 _mightyBlowTimer;
453453
};
454454

455-
// npc_lokhtos_darkbargainer
456-
enum LokhtosItems
457-
{
458-
ITEM_THRORIUM_BROTHERHOOD_CONTRACT = 18628,
459-
ITEM_SULFURON_INGOT = 17203
460-
};
461-
462-
enum LokhtosQuests
463-
{
464-
QUEST_A_BINDING_CONTRACT = 7604
465-
};
466-
467-
enum LokhtosSpells
468-
{
469-
SPELL_CREATE_THORIUM_BROTHERHOOD_CONTRACT_DND = 23059
470-
};
471-
472-
struct npc_lokhtos_darkbargainer : public ScriptedAI
473-
{
474-
npc_lokhtos_darkbargainer(Creature* creature) : ScriptedAI(creature) { }
475-
476-
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 action) override
477-
{
478-
ClearGossipMenuFor(player);
479-
if (action == GOSSIP_ACTION_INFO_DEF + 1)
480-
{
481-
CloseGossipMenuFor(player);
482-
player->CastSpell(player, SPELL_CREATE_THORIUM_BROTHERHOOD_CONTRACT_DND, false);
483-
}
484-
if (action == GOSSIP_ACTION_TRADE)
485-
player->GetSession()->SendListInventory(me->GetGUID());
486-
}
487-
488-
void sGossipHello(Player* player) override
489-
{
490-
if (me->IsQuestGiver())
491-
player->PrepareQuestMenu(me->GetGUID());
492-
493-
if (me->IsVendor() && player->GetReputationRank(59) >= REP_FRIENDLY)
494-
AddGossipItemFor(player, 4781, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
495-
496-
if (player->GetQuestRewardStatus(QUEST_A_BINDING_CONTRACT) != 1 &&
497-
!player->HasItemCount(ITEM_THRORIUM_BROTHERHOOD_CONTRACT, 1, true) &&
498-
player->HasItemCount(ITEM_SULFURON_INGOT))
499-
AddGossipItemFor(player, 4781, 1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
500-
501-
if (player->GetReputationRank(59) < REP_FRIENDLY)
502-
SendGossipMenuFor(player, 3673, me->GetGUID());
503-
else
504-
SendGossipMenuFor(player, 3677, me->GetGUID());
505-
}
506-
};
507-
508455
// npc_rocknot
509456
enum RocknotSays
510457
{
@@ -641,7 +588,6 @@ void AddSC_blackrock_depths()
641588
new at_ring_of_law();
642589
RegisterBlackrockDepthsCreatureAI(npc_grimstone);
643590
RegisterBlackrockDepthsCreatureAI(npc_phalanx);
644-
RegisterBlackrockDepthsCreatureAI(npc_lokhtos_darkbargainer);
645591
RegisterBlackrockDepthsCreatureAI(npc_rocknot);
646592
RegisterBlackrockDepthsCreatureAI(brd_ironhand_guardian);
647593
}

src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -296,39 +296,8 @@ class npc_balance_of_light_and_shadow : public CreatureScript
296296
};
297297
};
298298

299-
/*######
300-
## npc_augustus_the_touched
301-
######*/
302-
303-
class npc_augustus_the_touched : public CreatureScript
304-
{
305-
public:
306-
npc_augustus_the_touched() : CreatureScript("npc_augustus_the_touched") { }
307-
308-
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
309-
{
310-
ClearGossipMenuFor(player);
311-
if (action == GOSSIP_ACTION_TRADE)
312-
player->GetSession()->SendListInventory(creature->GetGUID());
313-
return true;
314-
}
315-
316-
bool OnGossipHello(Player* player, Creature* creature) override
317-
{
318-
if (creature->IsQuestGiver())
319-
player->PrepareQuestMenu(creature->GetGUID());
320-
321-
if (creature->IsVendor() && player->GetQuestRewardStatus(6164))
322-
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
323-
324-
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
325-
return true;
326-
}
327-
};
328-
329299
void AddSC_eastern_plaguelands()
330300
{
331301
new npc_eris_hevenfire();
332302
new npc_balance_of_light_and_shadow();
333-
new npc_augustus_the_touched();
334303
}

src/server/scripts/EasternKingdoms/zone_undercity.cpp

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -293,63 +293,6 @@ class npc_highborne_lamenter : public CreatureScript
293293
};
294294
};
295295

296-
/*######
297-
## npc_parqual_fintallas
298-
######*/
299-
300-
enum ParqualFintallas
301-
{
302-
SPELL_MARK_OF_SHAME = 6767,
303-
QUEST_ID_TEST_OF_LORE = 6628,
304-
GOSSIP_MENU_ID_TEST_OF_LORE = 4764,
305-
GOSSIP_TEXTID_PARQUAL_FINTALLAS = 5821,
306-
GOSSIP_TEXTID_TEST_OF_LORE = 5822,
307-
};
308-
309-
class npc_parqual_fintallas : public CreatureScript
310-
{
311-
public:
312-
npc_parqual_fintallas() : CreatureScript("npc_parqual_fintallas") { }
313-
314-
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
315-
{
316-
ClearGossipMenuFor(player);
317-
if (action == GOSSIP_ACTION_INFO_DEF + 1)
318-
{
319-
CloseGossipMenuFor(player);
320-
creature->CastSpell(player, SPELL_MARK_OF_SHAME, false);
321-
}
322-
if (action == GOSSIP_ACTION_INFO_DEF + 2)
323-
{
324-
CloseGossipMenuFor(player);
325-
player->AreaExploredOrEventHappens(6628);
326-
}
327-
return true;
328-
}
329-
330-
bool OnGossipHello(Player* player, Creature* creature) override
331-
{
332-
if (creature->IsQuestGiver())
333-
{
334-
player->PrepareQuestMenu(creature->GetGUID());
335-
}
336-
337-
if (player->GetQuestStatus(QUEST_ID_TEST_OF_LORE) == QUEST_STATUS_INCOMPLETE && !player->HasAura(SPELL_MARK_OF_SHAME))
338-
{
339-
AddGossipItemFor(player, GOSSIP_MENU_ID_TEST_OF_LORE, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
340-
AddGossipItemFor(player, GOSSIP_MENU_ID_TEST_OF_LORE, 1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
341-
AddGossipItemFor(player, GOSSIP_MENU_ID_TEST_OF_LORE, 3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
342-
SendGossipMenuFor(player, GOSSIP_TEXTID_TEST_OF_LORE, creature->GetGUID());
343-
}
344-
else
345-
{
346-
SendGossipMenuFor(player, GOSSIP_TEXTID_PARQUAL_FINTALLAS, creature->GetGUID());
347-
}
348-
349-
return true;
350-
}
351-
};
352-
353296
/*######
354297
## ALLIANCE
355298
#######*/
@@ -4037,7 +3980,6 @@ void AddSC_undercity()
40373980
{
40383981
new npc_lady_sylvanas_windrunner();
40393982
new npc_highborne_lamenter();
4040-
new npc_parqual_fintallas();
40413983

40423984
new npc_varian_wrynn();
40433985
new npc_thrall_bfu();

0 commit comments

Comments
 (0)