mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
Scripts/EasternKingdoms: move Alchemist Arbington and Apothecary Dithers core script to DB
(cherry picked from commit 23329790d2)
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI", `ScriptName`="" WHERE `entry` IN (11056, 11057);
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (3223, 3224, 3225, 3226, 3227, 3228);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 3223, 0, 0, 0, 8, 0, 5230, 0, 0, 0, 0, 0, "", "Gossip option 0 requires quest 'Return to the Bulwark' rewarded"),
|
||||
(15, 3223, 1, 0, 0, 8, 0, 5230, 0, 0, 0, 0, 0, "", "Gossip option 1 requires quest 'Return to the Bulwark' rewarded"),
|
||||
(15, 3223, 2, 0, 0, 8, 0, 5232, 0, 0, 0, 0, 0, "", "Gossip option 2 requires quest 'Return to the Bulwark' rewarded"),
|
||||
(15, 3223, 3, 0, 0, 8, 0, 5234, 0, 0, 0, 0, 0, "", "Gossip option 3 requires quest 'Return to the Bulwark' rewarded"),
|
||||
(15, 3223, 4, 0, 0, 8, 0, 5236, 0, 0, 0, 0, 0, "", "Gossip option 4 requires quest 'Return to the Bulwark' rewarded"),
|
||||
(15, 3228, 0, 0, 0, 8, 0, 5217, 0, 0, 0, 0, 0, "", "Gossip option 0 requires quest 'Return to Chillwind Camp' rewarded"),
|
||||
(15, 3228, 1, 0, 0, 8, 0, 5217, 0, 0, 0, 0, 0, "", "Gossip option 1 requires quest 'Return to Chillwind Camp' rewarded"),
|
||||
(15, 3228, 2, 0, 0, 8, 0, 5220, 0, 0, 0, 0, 0, "", "Gossip option 2 requires quest 'Return to Chillwind Camp' rewarded"),
|
||||
(15, 3228, 3, 0, 0, 8, 0, 5223, 0, 0, 0, 0, 0, "", "Gossip option 3 requires quest 'Return to Chillwind Camp' rewarded"),
|
||||
(15, 3228, 4, 0, 0, 8, 0, 5226, 0, 0, 0, 0, 0, "", "Gossip option 4 requires quest 'Return to Chillwind Camp' rewarded"),
|
||||
(15, 3224, 0, 0, 0, 2, 0, 13370, 1, 1, 1, 0, 0, "", "Gossip option requires item 'Vitreous Focuser' not in inventory or bank"),
|
||||
(15, 3225, 0, 0, 0, 2, 0, 13370, 1, 1, 1, 0, 0, "", "Gossip option requires item 'Vitreous Focuser' not in inventory or bank"),
|
||||
(15, 3226, 0, 0, 0, 2, 0, 13370, 1, 1, 1, 0, 0, "", "Gossip option requires item 'Vitreous Focuser' not in inventory or bank"),
|
||||
(15, 3227, 0, 0, 0, 2, 0, 13370, 1, 1, 1, 0, 0, "", "Gossip option requires item 'Vitreous Focuser' not in inventory or bank");
|
||||
|
||||
DELETE FROM `gossip_menu_option` WHERE `MenuID` IN (3223, 3224, 3225, 3226, 3227, 3228, 3229);
|
||||
INSERT INTO `gossip_menu_option` (`MenuID`, `OptionIndex`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `VerifiedBuild`) VALUES
|
||||
(3223, 0, 1, "I wish to purchase arcane quickener from you.", 6513, 3, 1, 0),
|
||||
(3223, 1, 0, "What's needed for the cauldron at Felstone Field?", 6516, 1, 1, 0),
|
||||
(3223, 2, 0, "What's needed for the cauldron at Dalson's Tears?", 6517, 1, 1, 0),
|
||||
(3223, 3, 0, "What's needed for the cauldron at the Writhing Haunt?", 6518, 1, 1, 0),
|
||||
(3223, 4, 0, "What's needed for the cauldron at Gahrron's Withering?", 6519, 1, 1, 0),
|
||||
(3228, 0, 1, "I wish to purchase arcane quickener from you.", 6513, 3, 1, 0),
|
||||
(3228, 1, 0, "What's needed for the cauldron at Felstone Field?", 6516, 1, 1, 0),
|
||||
(3228, 2, 0, "What's needed for the cauldron at Dalson's Tears?", 6517, 1, 1, 0),
|
||||
(3228, 3, 0, "What's needed for the cauldron at the Writhing Haunt?", 6518, 1, 1, 0),
|
||||
(3228, 4, 0, "What's needed for the cauldron at Gahrron's Withering?", 6519, 1, 1, 0),
|
||||
(3224, 0, 0, "I need a Vitreous Focuser.", 6531, 1, 1, 0),
|
||||
(3225, 0, 0, "I need a Vitreous Focuser.", 6531, 1, 1, 0),
|
||||
(3226, 0, 0, "I need a Vitreous Focuser.", 6531, 1, 1, 0),
|
||||
(3227, 0, 0, "I need a Vitreous Focuser.", 6531, 1, 1, 0);
|
||||
|
||||
|
||||
DELETE FROM `gossip_menu_option_action` WHERE `MenuId` IN (3223, 3228);
|
||||
INSERT INTO `gossip_menu_option_action` (`MenuId`, `OptionIndex`, `ActionMenuId`, `ActionPoiId`) VALUES
|
||||
(3223, 1, 3224, 0),
|
||||
(3223, 2, 3225, 0),
|
||||
(3223, 3, 3226, 0),
|
||||
(3223, 4, 3227, 0),
|
||||
(3228, 1, 3224, 0),
|
||||
(3228, 2, 3225, 0),
|
||||
(3228, 3, 3226, 0),
|
||||
(3228, 4, 3227, 0);
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (11056, 11057) AND `source_type`=0;
|
||||
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`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(11056, 0, 0, 1, 62, 0, 100, 0, 3224, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Close Gossip"),
|
||||
(11056, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Cast 'Vitreous Focuser'"),
|
||||
(11056, 0, 2, 3, 62, 0, 100, 0, 3225, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Close Gossip"),
|
||||
(11056, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Cast 'Vitreous Focuser'"),
|
||||
(11056, 0, 4, 5, 62, 0, 100, 0, 3226, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Close Gossip"),
|
||||
(11056, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Cast 'Vitreous Focuser'"),
|
||||
(11056, 0, 6, 7, 62, 0, 100, 0, 3227, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Close Gossip"),
|
||||
(11056, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Alchemist Arbington - On Gossip Option Selected - Cast 'Vitreous Focuser'"),
|
||||
(11057, 0, 0, 1, 62, 0, 100, 0, 3224, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Close Gossip"),
|
||||
(11057, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Cast 'Vitreous Focuser'"),
|
||||
(11057, 0, 2, 3, 62, 0, 100, 0, 3225, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Close Gossip"),
|
||||
(11057, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Cast 'Vitreous Focuser'"),
|
||||
(11057, 0, 4, 5, 62, 0, 100, 0, 3226, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Close Gossip"),
|
||||
(11057, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Cast 'Vitreous Focuser'"),
|
||||
(11057, 0, 6, 7, 62, 0, 100, 0, 3227, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Close Gossip"),
|
||||
(11057, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 17529, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Apothecary Dithers - On Gossip Option Selected - Cast 'Vitreous Focuser'");
|
||||
@@ -18,12 +18,11 @@
|
||||
/* ScriptData
|
||||
SDName: Western_Plaguelands
|
||||
SD%Complete: 90
|
||||
SDComment: Quest support: 5097, 5098, 5216, 5219, 5222, 5225, 5229, 5231, 5233, 5235. To obtain Vitreous Focuser (could use more spesifics about gossip items)
|
||||
SDComment: Quest support: 5097, 5098, 5216, 5219, 5222, 5225, 5229, 5231, 5233, 5235.
|
||||
SDCategory: Western Plaguelands
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
npcs_dithers_and_arbington
|
||||
npc_the_scourge_cauldron
|
||||
npc_andorhal_tower
|
||||
EndContentData */
|
||||
@@ -34,99 +33,6 @@ EndContentData */
|
||||
#include "Player.h"
|
||||
#include "WorldSession.h"
|
||||
|
||||
/*######
|
||||
## npcs_dithers_and_arbington
|
||||
######*/
|
||||
|
||||
enum DithersAndArbington
|
||||
{
|
||||
GOSSIP_ITEM_ID_FELSTONE_FIELD = 0,
|
||||
GOSSIP_ITEM_ID_DALSON_S_TEARS = 1,
|
||||
GOSSIP_ITEM_ID_WRITHING_HAUNT = 2,
|
||||
GOSSIP_ITEM_ID_GAHRRON_S_WITH = 3,
|
||||
GOSSIP_MENU_ID_LETS_GET_TO_WORK = 3223,
|
||||
GOSSIP_MENU_ID_VITREOUS_FOCUSER = 3229,
|
||||
NPC_TEXT_OSSEOUS_AGITATORS = 3980,
|
||||
NPC_TEXT_SOMATIC_INTENSIFIERS_1 = 3981,
|
||||
NPC_TEXT_SOMATIC_INTENSIFIERS_2 = 3982,
|
||||
NPC_TEXT_ECTOPLASMIC_RESONATORS = 3983,
|
||||
NPC_TEXT_LET_S_GET_TO_WORK = 3985,
|
||||
QUEST_MISSION_ACCOMPLISHED_H = 5237,
|
||||
QUEST_MISSION_ACCOMPLISHED_A = 5238,
|
||||
CREATE_ITEM_VITREOUS_FOCUSER = 17529
|
||||
};
|
||||
|
||||
class npcs_dithers_and_arbington : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npcs_dithers_and_arbington() : CreatureScript("npcs_dithers_and_arbington") { }
|
||||
|
||||
struct npcs_dithers_and_arbingtonAI : public ScriptedAI
|
||||
{
|
||||
npcs_dithers_and_arbingtonAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
|
||||
{
|
||||
uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_TRADE:
|
||||
player->GetSession()->SendListInventory(me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_VITREOUS_FOCUSER, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, NPC_TEXT_OSSEOUS_AGITATORS, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_VITREOUS_FOCUSER, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, NPC_TEXT_SOMATIC_INTENSIFIERS_1, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_VITREOUS_FOCUSER, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, NPC_TEXT_SOMATIC_INTENSIFIERS_2, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_VITREOUS_FOCUSER, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, NPC_TEXT_ECTOPLASMIC_RESONATORS, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5:
|
||||
CloseGossipMenuFor(player);
|
||||
DoCast(player, CREATE_ITEM_VITREOUS_FOCUSER, false);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GossipHello(Player* player) override
|
||||
{
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
if (me->IsVendor())
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (player->GetQuestRewardStatus(QUEST_MISSION_ACCOMPLISHED_H) || player->GetQuestRewardStatus(QUEST_MISSION_ACCOMPLISHED_A))
|
||||
{
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_LETS_GET_TO_WORK, GOSSIP_ITEM_ID_FELSTONE_FIELD, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_LETS_GET_TO_WORK, GOSSIP_ITEM_ID_DALSON_S_TEARS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_LETS_GET_TO_WORK, GOSSIP_ITEM_ID_WRITHING_HAUNT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_ID_LETS_GET_TO_WORK, GOSSIP_ITEM_ID_GAHRRON_S_WITH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
SendGossipMenuFor(player, NPC_TEXT_LET_S_GET_TO_WORK, me->GetGUID());
|
||||
}
|
||||
else
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npcs_dithers_and_arbingtonAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_the_scourge_cauldron
|
||||
######*/
|
||||
@@ -247,7 +153,6 @@ public:
|
||||
|
||||
void AddSC_western_plaguelands()
|
||||
{
|
||||
new npcs_dithers_and_arbington();
|
||||
new npc_the_scourge_cauldron();
|
||||
new npc_andorhal_tower();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user