Scripts/EasternKingdoms: move Alchemist Arbington and Apothecary Dithers core script to DB

(cherry picked from commit 23329790d2)
This commit is contained in:
Wyreth
2017-10-21 12:09:10 +02:00
committed by funjoker
parent f79480bf9d
commit a3a91dadad
2 changed files with 66 additions and 96 deletions

View File

@@ -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'");

View File

@@ -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();
}