diff options
8 files changed, 154 insertions, 94 deletions
diff --git a/sql/updates/world/2013_07_15_00_world_gossip.sql b/sql/updates/world/2013_07_15_00_world_gossip.sql new file mode 100644 index 00000000000..33467ad43be --- /dev/null +++ b/sql/updates/world/2013_07_15_00_world_gossip.sql @@ -0,0 +1,25 @@ +-- Add SAI for Sputtervalve <Independent Contractor> Quest 6981 +UPDATE `creature_template` SET `gossip_menu_id`=21,`ScriptName`='' WHERE `entry`=3442; +DELETE FROM `smart_scripts` WHERE `entryorguid`=3442 AND `source_type`=0 AND `id`=1; +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 +(3442, 0, 1, 0, 62, 0, 100, 0, 21, 1, 0, 0, 15, 6981, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Sputtervalve - Gossip Option 1 - Complete quest 6981'); +-- Gossip Menu +DELETE FROM `gossip_menu` WHERE `entry`=21199; +DELETE FROM `gossip_menu` WHERE `entry` IN (21,22,21340); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +('21','518'), ('21','519'), ('22','520'), (21340,2013); +-- Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id`=21; +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(21,0,0, 'How can I help?',1,1,22), +(21,1,0, 'Can you tell me about this shard?',1,1,21340); +-- Gossip Menu Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=21; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,21,518,0,0,27,0,10,3,0,0,'','Gossip text requires level 10 or higher'), +(15,21,519,0,0,27,0,10,2,0,0,'','Gossip text requires lower than level 10'); +-- Gossip Options Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=21; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,21,0,0,0,27,0,10,3,0,0,'','Gossip Option requires level 10 or higher'), +(15,21,1,0,0,9,0,6981,0,0,0,'','Gossip Option requires quest not complete'); diff --git a/sql/updates/world/2013_07_15_01_world_gossip.sql b/sql/updates/world/2013_07_15_01_world_gossip.sql new file mode 100644 index 00000000000..b59feae2c5c --- /dev/null +++ b/sql/updates/world/2013_07_15_01_world_gossip.sql @@ -0,0 +1,15 @@ +-- Gossip fixup for Drull and Tog'thar +UPDATE `creature_template` SET `gossip_menu_id`=262 WHERE `entry`=2239; +DELETE FROM `gossip_menu` WHERE `entry` IN (261,262,263); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +('261','760'), ('262','759'), ('263','762'); +-- Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (262,264); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(262,0,0, 'Where is the key to this lock?',1,1,261), +(264,1,0, 'Where is the key to this lock?',1,1,263); +-- Gossip Options Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (262,264); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,262,0,0,0,9,0,498,0,0,0,'','Gossip Option requires quest not complete'), +(15,264,1,0,0,9,0,498,0,0,0,'','Gossip Option requires quest not complete'); diff --git a/sql/updates/world/2013_07_15_02_world_gossip.sql b/sql/updates/world/2013_07_15_02_world_gossip.sql new file mode 100644 index 00000000000..9e54b17899a --- /dev/null +++ b/sql/updates/world/2013_07_15_02_world_gossip.sql @@ -0,0 +1,8 @@ +-- Gossip fixup for Morridune +UPDATE `creature_template` SET `gossip_menu_id`=321 WHERE `entry`=6729; +DELETE FROM `gossip_menu` WHERE `entry` IN (321); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (321,818); +-- Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (321); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(321,0,0, 'Please port me to Darnassus.',1,1,0); diff --git a/sql/updates/world/2013_07_15_03_world_gossip.sql b/sql/updates/world/2013_07_15_03_world_gossip.sql new file mode 100644 index 00000000000..1193522b273 --- /dev/null +++ b/sql/updates/world/2013_07_15_03_world_gossip.sql @@ -0,0 +1,37 @@ +-- Gossip fixup for Aleanna Edune +UPDATE `creature_template` SET `gossip_menu_id`=361 WHERE `entry`=24734; +DELETE FROM `gossip_menu` WHERE `entry` IN (361); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (361,838); + +-- Gossip fixup for Marli Wishrunner +UPDATE `creature_template` SET `gossip_menu_id`=1421 WHERE `entry`=7773; +DELETE FROM `gossip_menu` WHERE `entry` IN (1421); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (1421,2053); + +-- Gossip fixup for Kalin Windflight "This guy may be missing a script" +UPDATE `creature_template` SET `gossip_menu_id`=1422 WHERE `entry`=7772; +DELETE FROM `gossip_menu` WHERE `entry` IN (1422); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (1422,2054); +-- Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (1422); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(1422,0,1, 'Can you help me get down?',3,128,0); + +-- Gossip fixup for Henry Stern +UPDATE `creature_template` SET `gossip_menu_id`=1443 WHERE `entry`=8696; +DELETE FROM `gossip_menu` WHERE `entry` IN (1442,1443,1444,1501,1502); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(1442,2115),(1443,2113),(1444,2114),(1501,2173),(1502,2174); +-- Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (1443); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(1443,0,0, 'You can cook? So can I! Is there a recipe you can teach me?',1,1,0), +(1443,1,0, 'You''re an alchemist? So am I. Perhaps you can teach me what you know...',1,1,0); + +-- Gossip Options Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1443; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,1443,0,0,0,7,0,185,0,0,0,0,'','Gossip Option requires cooking skill'), +(15,1443,0,0,1,25,0,13028,0,0,1,0,'','Gossip Option requires player not learned spell'), +(15,1443,1,0,0,7,0,171,0,0,0,0,'','Gossip Option requires alchemy skill'), +(15,1443,1,0,1,25,0,3451,0,0,1,0,'','Gossip Option requires player not learned spell'); diff --git a/sql/updates/world/2013_07_16_00_world_misc.sql b/sql/updates/world/2013_07_16_00_world_misc.sql new file mode 100644 index 00000000000..1b9624c5e0b --- /dev/null +++ b/sql/updates/world/2013_07_16_00_world_misc.sql @@ -0,0 +1,19 @@ +-- No longer used as of patch 3.3.0 +DELETE FROM `areatrigger_teleport` WHERE `id`=4156; + +UPDATE `game_graveyard_zone` SET `faction`=469 WHERE `id`=1308; -- Alliance Only + +DELETE FROM `game_graveyard_zone` WHERE `id`=1309; +INSERT INTO `game_graveyard_zone` (`id`, `ghost_zone`, `faction`) VALUES +(1309, 3456, 67); -- Dragonblight, Forsaken East GY - Horde Only + +DELETE FROM `gameobject` WHERE `guid` IN (5216, 5222); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(5216, 202277, 533, 15, 1, 3495.97, -5357.84, 144.9645, 0.5410506, 0, 0, 0, 1, 7200, 255, 1), -- Orb of Naxxramas +(5222, 202278, 533, 15, 1, 2997.675, -3437.799, 304.1996, 1.151916, 0, 0, 0, 1, 7200, 255, 1); -- Orb of Naxxramas + +-- Teleportation positions for Orbs from sniff - TODO: add db coords for spell 72613 +DELETE FROM `spell_target_position` WHERE `id` IN (28444, 72617); +INSERT INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`) VALUES +(28444, 533, 3005.74, -3434.27, 304.196, 0), -- Portal Effect: Deathknight Wing +(72617, 533, 3498.22, -5349.36, 144.969, 1.32679); -- Naxxramas Teleport - Sapphiron Entry diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp index b64c7c199f2..e74ed93bc66 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp @@ -31,8 +31,6 @@ enum Spells SPELL_TELEPORT_DARNASSUS = 9268 }; -#define GOSSIP_ITEM_MORRIDUNE "Please port me to Darnassus" - const Position HomePosition = {-815.817f, -145.299f, -25.870f, 0}; class go_blackfathom_altar : public GameObjectScript @@ -201,32 +199,6 @@ class npc_morridune : public CreatureScript public: npc_morridune() : CreatureScript("npc_morridune") { } - bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) OVERRIDE - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF + 1: - player->TeleportTo(1, 9952.239f, 2284.277f, 1341.394f, 1.595f); - player->CLOSE_GOSSIP_MENU(); - break; - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MORRIDUNE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - return true; - } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_morriduneAI(creature); - } - struct npc_morriduneAI : public npc_escortAI { npc_morriduneAI(Creature* creature) : npc_escortAI(creature) @@ -248,7 +220,17 @@ public: break; } } + + void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) OVERRIDE + { + DoCast(player, SPELL_TELEPORT_DARNASSUS); + } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_morriduneAI(creature); + } }; void AddSC_blackfathom_deeps() diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp index 516cd6a41a2..320c9970077 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp @@ -39,54 +39,64 @@ EndContentData */ enum Spells { - SPELL_GOLDTHORN_TEA = 13028, SPELL_TEACHING_GOLDTHORN_TEA = 13029, - SPELL_MIGHT_TROLLS_BLOOD_POTION = 3451, - SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION = 13030, + SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION = 13030 }; enum Gossips { - GOSSIP_TEXT_TEA_ANSWER = 2114, - GOSSIP_TEXT_POTION_ANSWER = 2115, + GOSSIP_COOKING_SKILL_HIGH = 1444, + GOSSIP_COOKING_SKILL_LOW = 1501, + GOSSIP_ALCHEMY_SKILL_HIGH = 1442, + GOSSIP_ALCHEMY_SKILL_LOW = 1502 }; -#define GOSSIP_ITEM_TEA "Teach me the cooking recipe" -#define GOSSIP_ITEM_POTION "Teach me the alchemy recipe" - class npc_henry_stern : public CreatureScript { public: npc_henry_stern() : CreatureScript("npc_henry_stern") { } - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE + struct npc_henry_sternAI : public ScriptedAI { - player->PlayerTalkClass->ClearMenus(); - if (action == GOSSIP_ACTION_INFO_DEF + 1) - { - player->CastSpell(player, SPELL_TEACHING_GOLDTHORN_TEA, true); - player->SEND_GOSSIP_MENU(GOSSIP_TEXT_TEA_ANSWER, creature->GetGUID()); - } + npc_henry_sternAI(Creature* creature) : ScriptedAI(creature) { } - if (action == GOSSIP_ACTION_INFO_DEF + 2) + void sGossipSelect(Player* player, uint32 /*sender*/, uint32 action) OVERRIDE { - player->CastSpell(player, SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION, true); - player->SEND_GOSSIP_MENU(GOSSIP_TEXT_POTION_ANSWER, creature->GetGUID()); - } + if (action == 0) + { + if (player->GetBaseSkillValue(SKILL_COOKING) >= 175) + { + player->PrepareGossipMenu(me, GOSSIP_COOKING_SKILL_HIGH); + player->SendPreparedGossip(me); + DoCast(player, SPELL_TEACHING_GOLDTHORN_TEA); + } + else + { + player->PrepareGossipMenu(me, GOSSIP_COOKING_SKILL_LOW); + player->SendPreparedGossip(me); + } + } - return true; - } + if (action == 1) + { + if (player->GetBaseSkillValue(SKILL_ALCHEMY) >= 180) + { + player->PrepareGossipMenu(me, GOSSIP_ALCHEMY_SKILL_HIGH); + player->SendPreparedGossip(me); + DoCast(player, SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION); + } + else + { + player->PrepareGossipMenu(me, GOSSIP_ALCHEMY_SKILL_LOW); + player->SendPreparedGossip(me); + } + } + } + }; - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE + CreatureAI* GetAI(Creature* creature) const OVERRIDE { - if (player->GetBaseSkillValue(SKILL_COOKING) >= 175 && !player->HasSpell(SPELL_GOLDTHORN_TEA)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - - if (player->GetBaseSkillValue(SKILL_ALCHEMY) >= 180 && !player->HasSpell(SPELL_MIGHT_TROLLS_BLOOD_POTION)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_POTION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - return true; + return new npc_henry_sternAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp index 92e504aa44c..79299d1b03c 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -171,42 +171,6 @@ public: }; /*###### -## npc_sputtervalve -######*/ - -#define GOSSIP_SPUTTERVALVE "Can you tell me about this shard?" - -class npc_sputtervalve : public CreatureScript -{ -public: - npc_sputtervalve() : CreatureScript("npc_sputtervalve") { } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE - { - player->PlayerTalkClass->ClearMenus(); - if (action == GOSSIP_ACTION_INFO_DEF) - { - player->SEND_GOSSIP_MENU(2013, creature->GetGUID()); - player->AreaExploredOrEventHappens(6981); - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (player->GetQuestStatus(6981) == QUEST_STATUS_INCOMPLETE) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SPUTTERVALVE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - return true; - } - -}; - -/*###### ## npc_taskmaster_fizzule ######*/ |