aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2014_04_20_02_world_creature_text.sql (renamed from sql/updates/world/2014_04_20_02_creature_text.sql)0
-rw-r--r--sql/updates/world/2014_04_20_03_world_gossip_menu_option.sql (renamed from sql/updates/world/2014_04_20_03_gossip_menu_option.sql)0
-rw-r--r--sql/updates/world/2014_04_21_05_world_gossip_menu.sql13
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp49
5 files changed, 28 insertions, 39 deletions
diff --git a/sql/updates/world/2014_04_20_02_creature_text.sql b/sql/updates/world/2014_04_20_02_world_creature_text.sql
index 0a5a064a72d..0a5a064a72d 100644
--- a/sql/updates/world/2014_04_20_02_creature_text.sql
+++ b/sql/updates/world/2014_04_20_02_world_creature_text.sql
diff --git a/sql/updates/world/2014_04_20_03_gossip_menu_option.sql b/sql/updates/world/2014_04_20_03_world_gossip_menu_option.sql
index 7e6b7224173..7e6b7224173 100644
--- a/sql/updates/world/2014_04_20_03_gossip_menu_option.sql
+++ b/sql/updates/world/2014_04_20_03_world_gossip_menu_option.sql
diff --git a/sql/updates/world/2014_04_21_05_world_gossip_menu.sql b/sql/updates/world/2014_04_21_05_world_gossip_menu.sql
new file mode 100644
index 00000000000..9403c6f4de4
--- /dev/null
+++ b/sql/updates/world/2014_04_21_05_world_gossip_menu.sql
@@ -0,0 +1,13 @@
+UPDATE `creature_template` SET `gossip_menu_id`=1080, `speed_walk`=1, `speed_run`=1.142857, `rangeattacktime`=2000 WHERE `entry`=7998;
+
+DELETE FROM `gossip_menu` WHERE `entry`=1080;
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(1080, 1693); -- 7998
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=1080;
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES
+(1080, 0, 0, 'I am ready to begin.', 4084, 1, 1, 0, 0, '', 0); -- 7998
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1080;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1080,0,0,0,13,1,1,0,0,0,0,0,'','Show gossip option only if Blastmaster Emi Encounter is not started');
diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp
index 369a8e87289..51eea4c2c6f 100644
--- a/src/server/scripts/Commands/cs_quest.cpp
+++ b/src/server/scripts/Commands/cs_quest.cpp
@@ -91,13 +91,8 @@ public:
// ok, normal (creature/GO starting) quest
if (player->CanAddQuest(quest, true))
- {
player->AddQuestAndCheckCompletion(quest, NULL);
- if (player->CanCompleteQuest(entry))
- player->CompleteQuest(entry);
- }
-
return true;
}
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
index 9962ace5b94..7d80d0c20b7 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
@@ -24,17 +24,13 @@ Script Data End */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "gnomeregan.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "Player.h"
-
-#define GOSSIP_START_EVENT "I am ready to begin."
+#include "gnomeregan.h"
enum BlastmasterEmi
{
- GOSSIP_TEXT_EMI = 1693,
-
SAY_BLASTMASTER_0 = 0,
SAY_BLASTMASTER_1 = 1,
SAY_BLASTMASTER_2 = 2,
@@ -93,34 +89,6 @@ public:
return GetInstanceAI<npc_blastmaster_emi_shortfuseAI>(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF+1)
- {
- if (npc_escortAI* pEscortAI = CAST_AI(npc_blastmaster_emi_shortfuse::npc_blastmaster_emi_shortfuseAI, creature->AI()))
- pEscortAI->Start(true, false, player->GetGUID());
-
- creature->setFaction(player->getFaction());
- creature->AI()->SetData(1, 0);
-
- player->CLOSE_GOSSIP_MENU();
- }
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
- {
- InstanceScript* instance = creature->GetInstanceScript();
-
- if (instance && instance->GetData(TYPE_EVENT) == NOT_STARTED)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
-
- player->SEND_GOSSIP_MENU(GOSSIP_TEXT_EMI, creature->GetGUID());
-
- return true;
- }
-
struct npc_blastmaster_emi_shortfuseAI : public npc_escortAI
{
npc_blastmaster_emi_shortfuseAI(Creature* creature) : npc_escortAI(creature)
@@ -152,6 +120,19 @@ public:
}
}
+ void sGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) OVERRIDE
+ {
+ if (gossipListId == 0)
+ {
+ Start(true, false, player->GetGUID());
+
+ me->setFaction(player->getFaction());
+ SetData(1, 0);
+
+ player->PlayerTalkClass->SendCloseGossip();
+ }
+ }
+
void NextStep(uint32 uiTimerStep, bool bNextStep = true, uint8 uiPhaseStep = 0)
{
uiTimer = uiTimerStep;