Refactor(Core/Gossip): Replacing old macros with new (#1338)
* Correct support new macro
This commit is contained in:
parent
4abe082190
commit
b6cb9247ba
99 changed files with 2840 additions and 2775 deletions
|
|
@ -8,13 +8,41 @@
|
|||
#include "Player.h"
|
||||
#include "Creature.h"
|
||||
|
||||
void ClearGossipMenuFor(Player* player) { player->PlayerTalkClass->ClearMenus(); }
|
||||
void ClearGossipMenuFor(Player* player)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
}
|
||||
|
||||
// Using provided text, not from DB
|
||||
void AddGossipItemFor(Player* player, uint32 icon, const char* text, uint32 sender, uint32 action) { player->PlayerTalkClass->GetGossipMenu().AddMenuItem(-1, icon, text, sender, action, "", 0); }
|
||||
void AddGossipItemFor(Player* player, uint32 icon, std::string const& text, uint32 sender, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->GetGossipMenu().AddMenuItem(-1, icon, text, sender, action, "", 0);
|
||||
}
|
||||
|
||||
// Using provided texts, not from DB
|
||||
void AddGossipItemFor(Player* player, uint32 icon, const char* text, uint32 sender, uint32 action, const char* popupText, uint32 popupMoney, bool coded) { player->PlayerTalkClass->GetGossipMenu().AddMenuItem(-1, icon, text, sender, action, popupText, popupMoney, coded); }
|
||||
void AddGossipItemFor(Player* player, uint32 icon, std::string const& text, uint32 sender, uint32 action, std::string const& popupText, uint32 popupMoney, bool coded)
|
||||
{
|
||||
player->PlayerTalkClass->GetGossipMenu().AddMenuItem(-1, icon, text, sender, action, popupText, popupMoney, coded);
|
||||
}
|
||||
|
||||
// Uses gossip item info from DB
|
||||
void AddGossipItemFor(Player* player, uint32 gossipMenuID, uint32 gossipMenuItemID, uint32 sender, uint32 action) { player->PlayerTalkClass->GetGossipMenu().AddMenuItem(gossipMenuID, gossipMenuItemID, sender, action); }
|
||||
void SendGossipMenuFor(Player* player, uint32 npcTextID, uint64 const& guid) { player->PlayerTalkClass->SendGossipMenu(npcTextID, guid); }
|
||||
void SendGossipMenuFor(Player* player, uint32 npcTextID, Creature const* creature) { if (creature) SendGossipMenuFor(player, npcTextID, creature->GetGUID()); }
|
||||
void CloseGossipMenuFor(Player* player) { player->PlayerTalkClass->SendCloseGossip(); }
|
||||
void AddGossipItemFor(Player* player, uint32 gossipMenuID, uint32 gossipMenuItemID, uint32 sender, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->GetGossipMenu().AddMenuItem(gossipMenuID, gossipMenuItemID, sender, action);
|
||||
}
|
||||
|
||||
void SendGossipMenuFor(Player* player, uint32 npcTextID, uint64 const& guid)
|
||||
{
|
||||
player->PlayerTalkClass->SendGossipMenu(npcTextID, guid);
|
||||
}
|
||||
|
||||
void SendGossipMenuFor(Player* player, uint32 npcTextID, Creature const* creature)
|
||||
{
|
||||
if (creature)
|
||||
SendGossipMenuFor(player, npcTextID, creature->GetGUID());
|
||||
}
|
||||
|
||||
void CloseGossipMenuFor(Player* player)
|
||||
{
|
||||
player->PlayerTalkClass->SendCloseGossip();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
||||
*
|
||||
*
|
||||
*
|
||||
* This program is free software licensed under GPL version 2
|
||||
* Please see the included DOCS/LICENSE.TXT for more information */
|
||||
|
|
@ -69,19 +69,27 @@ enum eTradeskill
|
|||
};
|
||||
|
||||
class Creature;
|
||||
|
||||
// Clear menu
|
||||
void ClearGossipMenuFor(Player* player);
|
||||
|
||||
// Using provided text, not from DB
|
||||
void AddGossipItemFor(Player* player, uint32 icon, const char* text, uint32 sender, uint32 action);
|
||||
void AddGossipItemFor(Player* player, uint32 icon, std::string const& text, uint32 sender, uint32 action);
|
||||
|
||||
// Using provided texts, not from DB
|
||||
void AddGossipItemFor(Player* player, uint32 icon, const char* text, uint32 sender, uint32 action, const char* popupText, uint32 popupMoney, bool coded);
|
||||
void AddGossipItemFor(Player* player, uint32 icon, std::string const& text, uint32 sender, uint32 action, std::string const& popupText, uint32 popupMoney, bool coded);
|
||||
|
||||
// Uses gossip item info from DB
|
||||
void AddGossipItemFor(Player* player, uint32 gossipMenuID, uint32 gossipMenuItemID, uint32 sender, uint32 action);
|
||||
|
||||
// Send menu text
|
||||
void SendGossipMenuFor(Player* player, uint32 npcTextID, uint64 const& guid);
|
||||
void SendGossipMenuFor(Player* player, uint32 npcTextID, Creature const* creature);
|
||||
|
||||
// Close menu
|
||||
void CloseGossipMenuFor(Player* player);
|
||||
|
||||
// Defined fuctions to use with player.
|
||||
|
||||
/// Old macro. Need delete later
|
||||
// This fuction add's a menu item,
|
||||
// a - Icon Id
|
||||
// b - Text
|
||||
|
|
@ -89,13 +97,13 @@ void CloseGossipMenuFor(Player* player);
|
|||
// d - Action (identifys this Menu Item)
|
||||
// e - Text to be displayed in pop up box
|
||||
// f - Money value in pop up box
|
||||
#define ADD_GOSSIP_ITEM(a, b, c, d) PlayerTalkClass->GetGossipMenu().AddMenuItem(-1, a, b, c, d, "", 0)
|
||||
#define ADD_GOSSIP_ITEM(a, b, c, d) PlayerTalkClass->GetGossipMenu().AddMenuItem(-1, a, b, c, d, "", 0)
|
||||
#define ADD_GOSSIP_ITEM_EXTENDED(a, b, c, d, e, f, g) PlayerTalkClass->GetGossipMenu().AddMenuItem(-1, a, b, c, d, e, f, g)
|
||||
|
||||
// This fuction Sends the current menu to show to client, a - NPCTEXTID(uint32), b - npc guid(uint64)
|
||||
#define SEND_GOSSIP_MENU(a, b) PlayerTalkClass->SendGossipMenu(a, b)
|
||||
#define SEND_GOSSIP_MENU(a, b) PlayerTalkClass->SendGossipMenu(a, b)
|
||||
|
||||
// Closes the Menu
|
||||
#define CLOSE_GOSSIP_MENU() PlayerTalkClass->SendCloseGossip()
|
||||
#define CLOSE_GOSSIP_MENU() PlayerTalkClass->SendCloseGossip()
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2508,9 +2508,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
|
|||
if (e.action.sendGossipMenu.gossipMenuId)
|
||||
player->PrepareGossipMenu(GetBaseObject(), e.action.sendGossipMenu.gossipMenuId, true);
|
||||
else
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
player->SEND_GOSSIP_MENU(e.action.sendGossipMenu.gossipNpcTextId, GetBaseObject()->GetGUID());
|
||||
SendGossipMenuFor(player, e.action.sendGossipMenu.gossipNpcTextId, GetBaseObject()->GetGUID());
|
||||
}
|
||||
|
||||
delete targets;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include "Formulas.h"
|
||||
#include "GameEventMgr.h"
|
||||
#include "GossipDef.h"
|
||||
#include "ScriptedGossip.h"
|
||||
#include "GridNotifiers.h"
|
||||
#include "GridNotifiersImpl.h"
|
||||
#include "Group.h"
|
||||
|
|
@ -914,12 +915,12 @@ bool Creature::isCanInteractWithBattleMaster(Player* player, bool msg) const
|
|||
|
||||
if (!player->GetBGAccessByLevel(bgTypeId))
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (bgTypeId)
|
||||
{
|
||||
case BATTLEGROUND_AV: player->PlayerTalkClass->SendGossipMenu(7616, GetGUID()); break;
|
||||
case BATTLEGROUND_WS: player->PlayerTalkClass->SendGossipMenu(7599, GetGUID()); break;
|
||||
case BATTLEGROUND_AB: player->PlayerTalkClass->SendGossipMenu(7642, GetGUID()); break;
|
||||
case BATTLEGROUND_AV: SendGossipMenuFor(player, 7616, this); break;
|
||||
case BATTLEGROUND_WS: SendGossipMenuFor(player, 7599, this); break;
|
||||
case BATTLEGROUND_AB: SendGossipMenuFor(player, 7642, this); break;
|
||||
case BATTLEGROUND_EY:
|
||||
case BATTLEGROUND_NA:
|
||||
case BATTLEGROUND_BE:
|
||||
|
|
@ -927,7 +928,7 @@ bool Creature::isCanInteractWithBattleMaster(Player* player, bool msg) const
|
|||
case BATTLEGROUND_RL:
|
||||
case BATTLEGROUND_SA:
|
||||
case BATTLEGROUND_DS:
|
||||
case BATTLEGROUND_RV: player->PlayerTalkClass->SendGossipMenu(10024, GetGUID()); break;
|
||||
case BATTLEGROUND_RV: SendGossipMenuFor(player, 10024, this); break;
|
||||
default: break;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "SpellInfo.h"
|
||||
#include "SpellScript.h"
|
||||
#include "GossipDef.h"
|
||||
#include "ScriptedGossip.h"
|
||||
#include "CreatureAI.h"
|
||||
#include "Player.h"
|
||||
#include "WorldPacket.h"
|
||||
|
|
@ -765,7 +766,7 @@ bool ScriptMgr::OnQuestAccept(Player* player, Item* item, Quest const* quest)
|
|||
#endif
|
||||
|
||||
GET_SCRIPT_RET(ItemScript, item->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnQuestAccept(player, item, quest);
|
||||
}
|
||||
|
||||
|
|
@ -857,7 +858,7 @@ bool ScriptMgr::OnGossipHello(Player* player, Creature* creature)
|
|||
return true;
|
||||
#endif
|
||||
GET_SCRIPT_RET(CreatureScript, creature->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnGossipHello(player, creature);
|
||||
}
|
||||
|
||||
|
|
@ -893,7 +894,7 @@ bool ScriptMgr::OnQuestAccept(Player* player, Creature* creature, Quest const* q
|
|||
ASSERT(quest);
|
||||
|
||||
GET_SCRIPT_RET(CreatureScript, creature->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnQuestAccept(player, creature, quest);
|
||||
}
|
||||
|
||||
|
|
@ -904,7 +905,7 @@ bool ScriptMgr::OnQuestSelect(Player* player, Creature* creature, Quest const* q
|
|||
ASSERT(quest);
|
||||
|
||||
GET_SCRIPT_RET(CreatureScript, creature->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnQuestSelect(player, creature, quest);
|
||||
}
|
||||
|
||||
|
|
@ -915,7 +916,7 @@ bool ScriptMgr::OnQuestComplete(Player* player, Creature* creature, Quest const*
|
|||
ASSERT(quest);
|
||||
|
||||
GET_SCRIPT_RET(CreatureScript, creature->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnQuestComplete(player, creature, quest);
|
||||
}
|
||||
|
||||
|
|
@ -927,12 +928,12 @@ bool ScriptMgr::OnQuestReward(Player* player, Creature* creature, Quest const* q
|
|||
#ifdef ELUNA
|
||||
if (sEluna->OnQuestReward(player, creature, quest, opt))
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
GET_SCRIPT_RET(CreatureScript, creature->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnQuestReward(player, creature, quest, opt);
|
||||
}
|
||||
|
||||
|
|
@ -942,7 +943,7 @@ uint32 ScriptMgr::GetDialogStatus(Player* player, Creature* creature)
|
|||
ASSERT(creature);
|
||||
|
||||
GET_SCRIPT_RET(CreatureScript, creature->GetScriptId(), tmpscript, DIALOG_STATUS_SCRIPTED_NO_STATUS);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->GetDialogStatus(player, creature);
|
||||
}
|
||||
|
||||
|
|
@ -980,7 +981,7 @@ bool ScriptMgr::OnGossipHello(Player* player, GameObject* go)
|
|||
return true;
|
||||
#endif
|
||||
GET_SCRIPT_RET(GameObjectScript, go->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnGossipHello(player, go);
|
||||
}
|
||||
|
||||
|
|
@ -1016,7 +1017,7 @@ bool ScriptMgr::OnQuestAccept(Player* player, GameObject* go, Quest const* quest
|
|||
ASSERT(quest);
|
||||
|
||||
GET_SCRIPT_RET(GameObjectScript, go->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnQuestAccept(player, go, quest);
|
||||
}
|
||||
|
||||
|
|
@ -1034,7 +1035,7 @@ bool ScriptMgr::OnQuestReward(Player* player, GameObject* go, Quest const* quest
|
|||
return false;
|
||||
#endif
|
||||
GET_SCRIPT_RET(GameObjectScript, go->GetScriptId(), tmpscript, false);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->OnQuestReward(player, go, quest, opt);
|
||||
}
|
||||
|
||||
|
|
@ -1044,7 +1045,7 @@ uint32 ScriptMgr::GetDialogStatus(Player* player, GameObject* go)
|
|||
ASSERT(go);
|
||||
|
||||
GET_SCRIPT_RET(GameObjectScript, go->GetScriptId(), tmpscript, DIALOG_STATUS_SCRIPTED_NO_STATUS);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
return tmpscript->GetDialogStatus(player, go);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ class go_shadowforge_brazier : public GameObjectScript
|
|||
public:
|
||||
go_shadowforge_brazier() : GameObjectScript("go_shadowforge_brazier") { }
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
if (InstanceScript* instance = go->GetInstanceScript())
|
||||
{
|
||||
|
|
@ -398,46 +398,46 @@ class npc_kharan_mighthammer : public CreatureScript
|
|||
public:
|
||||
npc_kharan_mighthammer() : CreatureScript("npc_kharan_mighthammer") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(2475, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, 2475, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
player->SEND_GOSSIP_MENU(2476, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
SendGossipMenuFor(player, 2476, creature->GetGUID());
|
||||
break;
|
||||
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
player->SEND_GOSSIP_MENU(2477, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
SendGossipMenuFor(player, 2477, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(2478, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, 2478, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
|
||||
player->SEND_GOSSIP_MENU(2479, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
|
||||
SendGossipMenuFor(player, 2479, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+6:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_8, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
|
||||
player->SEND_GOSSIP_MENU(2480, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_8, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
|
||||
SendGossipMenuFor(player, 2480, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+7:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_9, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8);
|
||||
player->SEND_GOSSIP_MENU(2481, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_9, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8);
|
||||
SendGossipMenuFor(player, 2481, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+8:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_10, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
|
||||
player->SEND_GOSSIP_MENU(2482, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_10, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
|
||||
SendGossipMenuFor(player, 2482, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+9:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (player->GetTeamId() == TEAM_HORDE)
|
||||
player->AreaExploredOrEventHappens(QUEST_4001);
|
||||
else
|
||||
|
|
@ -447,21 +447,21 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_4001) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
if (player->GetQuestStatus(4342) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
|
||||
if (player->GetTeamId() == TEAM_HORDE)
|
||||
player->SEND_GOSSIP_MENU(2473, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2473, creature->GetGUID());
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(2474, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2474, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -492,12 +492,12 @@ class npc_lokhtos_darkbargainer : public CreatureScript
|
|||
public:
|
||||
npc_lokhtos_darkbargainer() : CreatureScript("npc_lokhtos_darkbargainer") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_CREATE_THORIUM_BROTHERHOOD_CONTRACT_DND, false);
|
||||
}
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
|
|
@ -506,25 +506,25 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor() && player->GetReputationRank(59) >= REP_FRIENDLY)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_ITEM_SHOW_ACCESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_ITEM_SHOW_ACCESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (player->GetQuestRewardStatus(QUEST_A_BINDING_CONTRACT) != 1 &&
|
||||
!player->HasItemCount(ITEM_THRORIUM_BROTHERHOOD_CONTRACT, 1, true) &&
|
||||
player->HasItemCount(ITEM_SULFURON_INGOT))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GET_CONTRACT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_GET_CONTRACT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
}
|
||||
|
||||
if (player->GetReputationRank(59) < REP_FRIENDLY)
|
||||
player->SEND_GOSSIP_MENU(3673, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 3673, creature->GetGUID());
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(3677, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 3677, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -556,12 +556,12 @@ public:
|
|||
return dughal_stormwingAI;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(false, true, player->GetGUID());
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_IN_PROGRESS);
|
||||
|
|
@ -569,12 +569,12 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_JAIL_BREAK) == QUEST_STATUS_INCOMPLETE && instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUGHAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(2846, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DUGHAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 2846, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1070,10 +1070,10 @@ public:
|
|||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(false, true, player->GetGUID());
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_IN_PROGRESS);
|
||||
|
|
@ -1081,12 +1081,12 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_JAIL_BREAK) == QUEST_STATUS_INCOMPLETE && instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Get out of here, Tobias, you're free!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(2847, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Get out of here, Tobias, you're free!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 2847, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,25 +36,25 @@ class boss_gloomrel : public CreatureScript
|
|||
public:
|
||||
boss_gloomrel() : CreatureScript("boss_gloomrel") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
player->SEND_GOSSIP_MENU(2606, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
SendGossipMenuFor(player, 2606, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+11:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_LEARN_SMELT, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
|
||||
player->SEND_GOSSIP_MENU(2604, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
|
||||
SendGossipMenuFor(player, 2604, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+22:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (InstanceScript* instance = creature->GetInstanceScript())
|
||||
{
|
||||
//are 5 minutes expected? go template may have data to despawn when used at quest
|
||||
|
|
@ -65,15 +65,15 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestRewardStatus(QUEST_SPECTRAL_CHALICE) == 1 && player->GetSkillValue(SKILL_MINING) >= DATA_SKILLPOINT_MIN && !player->HasSpell(SPELL_SMELT_DARK_IRON))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
if (player->GetQuestRewardStatus(QUEST_SPECTRAL_CHALICE) == 0 && player->GetSkillValue(SKILL_MINING) >= DATA_SKILLPOINT_MIN)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TRIBUTE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_TRIBUTE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
@ -95,17 +95,17 @@ class boss_doomrel : public CreatureScript
|
|||
public:
|
||||
boss_doomrel() : CreatureScript("boss_doomrel") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_DOOMREL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(2605, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SELECT_DOOMREL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 2605, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
//start event here
|
||||
creature->setFaction(FACTION_HOSTILE);
|
||||
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
|
|
@ -118,15 +118,15 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(2601, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 2601, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_doomrelAI>(creature);
|
||||
}
|
||||
|
|
@ -145,7 +145,7 @@ public:
|
|||
uint32 DemonArmor_Timer;
|
||||
bool Voidwalkers;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
ShadowVolley_Timer = 10000;
|
||||
Immolate_Timer = 18000;
|
||||
|
|
@ -164,11 +164,11 @@ public:
|
|||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
}
|
||||
|
||||
void EnterEvadeMode()
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
me->RemoveAllAuras();
|
||||
me->DeleteThreatList();
|
||||
|
|
@ -180,12 +180,12 @@ public:
|
|||
instance->SetData64(DATA_EVENSTARTER, 0);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
instance->SetData(DATA_GHOSTKILL, 1);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -372,7 +372,7 @@ public:
|
|||
if (!instance || instance->GetBossState(BOSS_NEFARIAN) == DONE)
|
||||
return;
|
||||
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
Talk(SAY_GAMESBEGIN_1);
|
||||
BeginEvent(player);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ class go_orb_of_domination : public GameObjectScript
|
|||
public:
|
||||
go_orb_of_domination() : GameObjectScript("go_orb_of_domination") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (InstanceScript* instance = go->GetInstanceScript())
|
||||
if (instance->GetData(DATA_EGG_EVENT) != DONE)
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ public:
|
|||
{
|
||||
if (sender == GOSSIP_ID && action == 0)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
BeginSpeech(player);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,13 +66,13 @@ class boss_majordomo : public CreatureScript
|
|||
{
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (urand(0, 99) < 25)
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
Talk(SAY_AGGRO);
|
||||
|
|
@ -84,7 +84,7 @@ class boss_majordomo : public CreatureScript
|
|||
me->CallForHelp(30);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (instance->GetBossState(BOSS_MAJORDOMO_EXECUTUS) != DONE)
|
||||
{
|
||||
|
|
@ -163,7 +163,7 @@ class boss_majordomo : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void DoAction(int32 action)
|
||||
void DoAction(int32 action) override
|
||||
{
|
||||
if (action == ACTION_START_RAGNAROS && events.GetNextEventTime(EVENT_OUTRO_2) == 0)
|
||||
{
|
||||
|
|
@ -180,21 +180,21 @@ class boss_majordomo : public CreatureScript
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_HELLO, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SELECT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, GOSSIP_HELLO, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->AI()->DoAction(ACTION_START_RAGNAROS);
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_majordomoAI>(creature);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ public:
|
|||
}
|
||||
else
|
||||
me->GetMotionMaster()->MovePoint(MovePhase, IntroWay[MovePhase][0], IntroWay[MovePhase][1], IntroWay[MovePhase][2]);
|
||||
|
||||
|
||||
MovePhase = 0;
|
||||
}
|
||||
|
||||
|
|
@ -295,14 +295,14 @@ public:
|
|||
{
|
||||
DoCastVictim(SPELL_BELLOWING_ROAR);
|
||||
BellowingRoarTimer = urand(30000, 40000);
|
||||
} else
|
||||
} else
|
||||
BellowingRoarTimer -= diff;
|
||||
|
||||
if (SmolderingBreathTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SMOLDERING_BREATH);
|
||||
SmolderingBreathTimer = 20000;
|
||||
} else
|
||||
} else
|
||||
SmolderingBreathTimer -= diff;
|
||||
|
||||
if (CharredEarthTimer <= diff)
|
||||
|
|
@ -310,7 +310,7 @@ public:
|
|||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_CHARRED_EARTH);
|
||||
CharredEarthTimer = 20000;
|
||||
} else
|
||||
} else
|
||||
CharredEarthTimer -= diff;
|
||||
|
||||
if (TailSweepTimer <= diff)
|
||||
|
|
@ -319,7 +319,7 @@ public:
|
|||
if (!me->HasInArc(M_PI, target))
|
||||
DoCast(target, SPELL_TAIL_SWEEP);
|
||||
TailSweepTimer = 15000;
|
||||
} else
|
||||
} else
|
||||
TailSweepTimer -= diff;
|
||||
|
||||
if (SearingCindersTimer <= diff)
|
||||
|
|
@ -327,7 +327,7 @@ public:
|
|||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_SEARING_CINDERS);
|
||||
SearingCindersTimer = 10000;
|
||||
} else
|
||||
} else
|
||||
SearingCindersTimer -= diff;
|
||||
|
||||
uint32 Prozent = uint32(me->GetHealthPct());
|
||||
|
|
@ -363,7 +363,7 @@ public:
|
|||
DoCastVictim(SPELL_RAIN_OF_BONES);
|
||||
RainBones = true;
|
||||
SmokingBlastTimer = 20000;
|
||||
} else
|
||||
} else
|
||||
RainofBonesTimer -= diff;
|
||||
|
||||
if (DistractingAshTimer <= diff)
|
||||
|
|
@ -371,7 +371,7 @@ public:
|
|||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_DISTRACTING_ASH);
|
||||
DistractingAshTimer = 2000; //timer wrong
|
||||
} else
|
||||
} else
|
||||
DistractingAshTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -381,7 +381,7 @@ public:
|
|||
{
|
||||
DoCastVictim(SPELL_SMOKING_BLAST);
|
||||
SmokingBlastTimer = 1500; //timer wrong
|
||||
} else
|
||||
} else
|
||||
SmokingBlastTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -390,7 +390,7 @@ public:
|
|||
if (Unit* target = SelectTarget(SELECT_TARGET_FARTHEST, 0))
|
||||
DoCast(target, SPELL_FIREBALL_BARRAGE);
|
||||
FireballBarrageTimer = 20000;
|
||||
} else
|
||||
} else
|
||||
FireballBarrageTimer -= diff;
|
||||
|
||||
if (FlyTimer <= diff) //landing
|
||||
|
|
@ -401,7 +401,7 @@ public:
|
|||
me->GetMotionMaster()->MovePoint(3, IntroWay[3][0], IntroWay[3][1], IntroWay[3][2]);
|
||||
|
||||
Flying = true;
|
||||
} else
|
||||
} else
|
||||
FlyTimer -= diff;
|
||||
}
|
||||
}
|
||||
|
|
@ -414,14 +414,15 @@ class go_blackened_urn : public GameObjectScript
|
|||
public:
|
||||
go_blackened_urn() : GameObjectScript("go_blackened_urn") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, GameObject *pGo)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (InstanceScript* pInstance = pGo->GetInstanceScript())
|
||||
if (InstanceScript* pInstance = go->GetInstanceScript())
|
||||
{
|
||||
if (pInstance->GetData(DATA_NIGHTBANE) != DONE && !pGo->FindNearestCreature(NPC_NIGHTBANE, 40.0f))
|
||||
if (Creature *cr = ObjectAccessor::GetCreature(*pPlayer, pInstance->GetData64(DATA_NIGHTBANE)))
|
||||
if (pInstance->GetData(DATA_NIGHTBANE) != DONE && !go->FindNearestCreature(NPC_NIGHTBANE, 40.0f))
|
||||
if (Creature *cr = ObjectAccessor::GetCreature(*player, pInstance->GetData64(DATA_NIGHTBANE)))
|
||||
cr->GetMotionMaster()->MovePoint(0, IntroWay[0][0], IntroWay[0][1], IntroWay[0][2]);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ public:
|
|||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
} else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -204,21 +204,21 @@ public:
|
|||
{
|
||||
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0), SPELL_WATERBOLT);
|
||||
WaterBoltTimer = TitoDied ? 1500 : 5000;
|
||||
} else
|
||||
} else
|
||||
WaterBoltTimer -= diff;
|
||||
|
||||
if (FearTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SCREAM);
|
||||
FearTimer = 30000;
|
||||
} else
|
||||
} else
|
||||
FearTimer -= diff;
|
||||
|
||||
if (!SummonedTito)
|
||||
{
|
||||
if (SummonTitoTimer <= diff)
|
||||
SummonTito();
|
||||
else
|
||||
else
|
||||
SummonTitoTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -250,7 +250,7 @@ public:
|
|||
YipTimer = 10000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
|
@ -277,7 +277,7 @@ public:
|
|||
{
|
||||
DoCastVictim(SPELL_YIPPING);
|
||||
YipTimer = 10000;
|
||||
} else
|
||||
} else
|
||||
YipTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
@ -388,7 +388,7 @@ public:
|
|||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
} else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -399,7 +399,7 @@ public:
|
|||
{
|
||||
DoCastVictim(SPELL_BRAIN_BASH);
|
||||
BrainBashTimer = 15000;
|
||||
} else
|
||||
} else
|
||||
BrainBashTimer -= diff;
|
||||
|
||||
if (BrainWipeTimer <= diff)
|
||||
|
|
@ -407,7 +407,7 @@ public:
|
|||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_BRAIN_WIPE);
|
||||
BrainWipeTimer = 20000;
|
||||
} else
|
||||
} else
|
||||
BrainWipeTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
@ -497,7 +497,7 @@ public:
|
|||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
} else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -508,7 +508,7 @@ public:
|
|||
{
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
CleaveTimer = 5000;
|
||||
} else
|
||||
} else
|
||||
CleaveTimer -= diff;
|
||||
|
||||
if (RustCount < 8)
|
||||
|
|
@ -519,7 +519,7 @@ public:
|
|||
Talk(EMOTE_RUST);
|
||||
DoCast(me, SPELL_RUST);
|
||||
RustTimer = 6000;
|
||||
} else
|
||||
} else
|
||||
RustTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -608,7 +608,7 @@ public:
|
|||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
AggroTimer = 0;
|
||||
} else
|
||||
} else
|
||||
AggroTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -619,21 +619,21 @@ public:
|
|||
{
|
||||
DoCastVictim(SPELL_MANGLE);
|
||||
MangleTimer = urand(5000, 8000);
|
||||
} else
|
||||
} else
|
||||
MangleTimer -= diff;
|
||||
|
||||
if (ShredTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SHRED);
|
||||
ShredTimer = urand(10000, 15000);
|
||||
} else
|
||||
} else
|
||||
ShredTimer -= diff;
|
||||
|
||||
if (ScreamTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_FRIGHTENED_SCREAM);
|
||||
ScreamTimer = urand(20000, 30000);
|
||||
} else
|
||||
} else
|
||||
ScreamTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
@ -710,14 +710,14 @@ public:
|
|||
if (Creature* Cyclone = DoSpawnCreature(CREATURE_CYCLONE, float(urand(0, 9)), float(urand(0, 9)), 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000))
|
||||
Cyclone->CastSpell(Cyclone, SPELL_CYCLONE_VISUAL, true);
|
||||
CycloneTimer = 22000;
|
||||
} else
|
||||
} else
|
||||
CycloneTimer -= diff;
|
||||
|
||||
if (ChainLightningTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_CHAIN_LIGHTNING);
|
||||
ChainLightningTimer = 8000;
|
||||
} else
|
||||
} else
|
||||
ChainLightningTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
@ -764,7 +764,7 @@ public:
|
|||
me->GetRandomNearPosition(pos, 10);
|
||||
me->GetMotionMaster()->MovePoint(0, pos);
|
||||
MoveTimer = urand(3000, 5000);
|
||||
} else
|
||||
} else
|
||||
MoveTimer -= diff;
|
||||
}
|
||||
};
|
||||
|
|
@ -797,9 +797,9 @@ class npc_grandmother : public CreatureScript
|
|||
public:
|
||||
npc_grandmother() : CreatureScript("npc_grandmother") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
if (Creature* pBigBadWolf = creature->SummonCreature(CREATURE_BIG_BAD_WOLF, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS))
|
||||
|
|
@ -811,10 +811,10 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_GRANDMA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(8990, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_GRANDMA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, 8990, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -927,7 +927,7 @@ public:
|
|||
|
||||
ChaseTimer = 40000;
|
||||
}
|
||||
} else
|
||||
} else
|
||||
ChaseTimer -= diff;
|
||||
|
||||
if (IsChasing)
|
||||
|
|
@ -937,14 +937,14 @@ public:
|
|||
{
|
||||
DoCastVictim(SPELL_TERRIFYING_HOWL);
|
||||
FearTimer = urand(25000, 35000);
|
||||
} else
|
||||
} else
|
||||
FearTimer -= diff;
|
||||
|
||||
if (SwipeTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_WIDE_SWIPE);
|
||||
SwipeTimer = urand(25000, 30000);
|
||||
} else
|
||||
} else
|
||||
SwipeTimer -= diff;
|
||||
}
|
||||
};
|
||||
|
|
@ -1314,7 +1314,7 @@ public:
|
|||
JulianneDead = false;
|
||||
ResurrectTimer = 10000;
|
||||
}
|
||||
} else
|
||||
} else
|
||||
ResurrectTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -1326,14 +1326,14 @@ public:
|
|||
DoCast(target, SPELL_BACKWARD_LUNGE);
|
||||
BackwardLungeTimer = urand(15000, 30000);
|
||||
}
|
||||
} else
|
||||
} else
|
||||
BackwardLungeTimer -= diff;
|
||||
|
||||
if (DaringTimer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_DARING);
|
||||
DaringTimer = urand(20000, 40000);
|
||||
} else
|
||||
} else
|
||||
DaringTimer -= diff;
|
||||
|
||||
if (DeadlySwatheTimer <= diff)
|
||||
|
|
@ -1341,14 +1341,14 @@ public:
|
|||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_DEADLY_SWATHE);
|
||||
DeadlySwatheTimer = urand(15000, 25000);
|
||||
} else
|
||||
} else
|
||||
DeadlySwatheTimer -= diff;
|
||||
|
||||
if (PoisonThrustTimer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_POISON_THRUST);
|
||||
PoisonThrustTimer = urand(10000, 20000);
|
||||
} else
|
||||
} else
|
||||
PoisonThrustTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
@ -1364,7 +1364,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
{
|
||||
Talk(SAY_JULIANNE_ENTER);
|
||||
EntryYellTimer = 0;
|
||||
} else
|
||||
} else
|
||||
EntryYellTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -1376,7 +1376,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->setFaction(16);
|
||||
AggroYellTimer = 0;
|
||||
} else
|
||||
} else
|
||||
AggroYellTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -1389,7 +1389,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
Phase = PHASE_ROMULO;
|
||||
SummonRomuloTimer = 10000;
|
||||
DrinkPoisonTimer = 0;
|
||||
} else
|
||||
} else
|
||||
DrinkPoisonTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -1407,7 +1407,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
pRomulo->setFaction(16);
|
||||
}
|
||||
SummonedRomulo = true;
|
||||
} else
|
||||
} else
|
||||
SummonRomuloTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -1424,7 +1424,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
|
||||
ResurrectSelfTimer = 0;
|
||||
ResurrectTimer = 1000;
|
||||
} else
|
||||
} else
|
||||
ResurrectSelfTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -1444,7 +1444,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
RomuloDead = false;
|
||||
ResurrectTimer = 10000;
|
||||
}
|
||||
} else
|
||||
} else
|
||||
ResurrectTimer -= diff;
|
||||
}
|
||||
|
||||
|
|
@ -1453,21 +1453,21 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_BLINDING_PASSION);
|
||||
BlindingPassionTimer = urand(30000, 45000);
|
||||
} else
|
||||
} else
|
||||
BlindingPassionTimer -= diff;
|
||||
|
||||
if (DevotionTimer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_DEVOTION);
|
||||
DevotionTimer = urand(15000, 45000);
|
||||
} else
|
||||
} else
|
||||
DevotionTimer -= diff;
|
||||
|
||||
if (PowerfulAttractionTimer <= diff)
|
||||
{
|
||||
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0), SPELL_POWERFUL_ATTRACTION);
|
||||
PowerfulAttractionTimer = urand(5000, 30000);
|
||||
} else
|
||||
} else
|
||||
PowerfulAttractionTimer -= diff;
|
||||
|
||||
if (EternalAffectionTimer <= diff)
|
||||
|
|
@ -1480,7 +1480,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
|||
} else DoCast(me, SPELL_ETERNAL_AFFECTION);
|
||||
|
||||
EternalAffectionTimer = urand(45000, 60000);
|
||||
} else
|
||||
} else
|
||||
EternalAffectionTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ public:
|
|||
bool PerformanceReady;
|
||||
bool RaidWiped;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
m_uiSpotlightGUID = 0;
|
||||
|
||||
|
|
@ -160,9 +160,9 @@ public:
|
|||
Start(false, false);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void WaypointReached(uint32 waypointId)
|
||||
void WaypointReached(uint32 waypointId) override
|
||||
{
|
||||
switch (waypointId)
|
||||
{
|
||||
|
|
@ -266,7 +266,7 @@ public:
|
|||
RaidWiped = false;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
|
||||
|
|
@ -326,31 +326,31 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
npc_barnesAI* pBarnesAI = CAST_AI(npc_barnes::npc_barnesAI, creature->AI());
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, OZ_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(8971, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, OZ_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, 8971, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
pBarnesAI->StartEvent();
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
pBarnesAI->m_uiEventId = EVENT_OZ;
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
pBarnesAI->m_uiEventId = EVENT_HOOD;
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
pBarnesAI->m_uiEventId = EVENT_RAJ;
|
||||
break;
|
||||
}
|
||||
|
|
@ -358,39 +358,39 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (InstanceScript* instance = creature->GetInstanceScript())
|
||||
{
|
||||
// Check for death of Moroes and if opera event is not done already
|
||||
if (instance->GetBossState(DATA_MOROES) == DONE && instance->GetBossState(DATA_OPERA_PERFORMANCE) != DONE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, OZ_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, OZ_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
if (player->IsGameMaster())
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, OZ_GM_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, OZ_GM_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, OZ_GM_GOSSIP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_DOT, OZ_GM_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_DOT, OZ_GM_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_DOT, OZ_GM_GOSSIP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
}
|
||||
|
||||
if (npc_barnesAI* pBarnesAI = CAST_AI(npc_barnes::npc_barnesAI, creature->AI()))
|
||||
{
|
||||
if (!pBarnesAI->RaidWiped)
|
||||
player->SEND_GOSSIP_MENU(8970, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 8970, creature->GetGUID());
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(8975, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 8975, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(8978, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 8978, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_barnesAI(creature);
|
||||
}
|
||||
|
|
@ -550,7 +550,7 @@ public:
|
|||
arca->DespawnOrUnsummon(100);
|
||||
|
||||
return 5000;
|
||||
default:
|
||||
default:
|
||||
return 2000;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -164,12 +164,12 @@ class npc_death_knight_initiate : public CreatureScript
|
|||
public:
|
||||
npc_death_knight_initiate() : CreatureScript("npc_death_knight_initiate") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (player->IsInCombat() || creature->IsInCombat())
|
||||
return true;
|
||||
|
|
@ -186,7 +186,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_DEATH_CHALLENGE) == QUEST_STATUS_INCOMPLETE && creature->IsFullHealth())
|
||||
{
|
||||
|
|
@ -197,14 +197,14 @@ public:
|
|||
return true;
|
||||
|
||||
if (!creature->AI()->GetData(player->GetGUIDLow()))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ACCEPT_DUEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ACCEPT_DUEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_death_knight_initiateAI(creature);
|
||||
}
|
||||
|
|
@ -219,7 +219,7 @@ public:
|
|||
std::set<uint32> playerGUIDs;
|
||||
uint32 timer = 0;
|
||||
|
||||
uint32 GetData(uint32 data) const
|
||||
uint32 GetData(uint32 data) const override
|
||||
{
|
||||
if (data == DATA_IN_PROGRESS)
|
||||
return _duelInProgress;
|
||||
|
|
@ -227,7 +227,7 @@ public:
|
|||
return playerGUIDs.find(data) != playerGUIDs.end();
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
_duelInProgress = false;
|
||||
_duelGUID = 0;
|
||||
|
|
@ -237,7 +237,7 @@ public:
|
|||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_15);
|
||||
}
|
||||
|
||||
void SpellHit(Unit* caster, const SpellInfo* pSpell)
|
||||
void SpellHit(Unit* caster, const SpellInfo* pSpell) override
|
||||
{
|
||||
if (!_duelInProgress && pSpell->Id == SPELL_DUEL)
|
||||
{
|
||||
|
|
@ -257,7 +257,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (attacker && _duelInProgress && attacker->IsControlledByPlayer())
|
||||
{
|
||||
|
|
@ -281,7 +281,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (timer != 0)
|
||||
{
|
||||
|
|
@ -508,7 +508,7 @@ public:
|
|||
events.RepeatEvent(1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
|
@ -894,7 +894,7 @@ class go_acherus_soul_prison : public GameObjectScript
|
|||
public:
|
||||
go_acherus_soul_prison() : GameObjectScript("go_acherus_soul_prison") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (Creature* anchor = go->FindNearestCreature(29521, 15))
|
||||
if (uint64 prisonerGUID = anchor->AI()->GetGUID())
|
||||
|
|
@ -1121,7 +1121,7 @@ class go_inconspicuous_mine_car : public GameObjectScript
|
|||
public:
|
||||
go_inconspicuous_mine_car() : GameObjectScript("go_inconspicuous_mine_car") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (player->GetQuestStatus(12701) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
|
|
@ -1139,6 +1139,7 @@ public:
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ const Position LightOfDawnPos[] =
|
|||
{2270.99f, -5278.00f, 81.89f, 0} // 15 Tirion Fordring loc4
|
||||
};
|
||||
|
||||
const Position LightOfDawnFightPos[] =
|
||||
const Position LightOfDawnFightPos[] =
|
||||
{
|
||||
{2279.68f, -5256.75f, 79.79f, 4.8f},
|
||||
{2280.40f, -5276.56f, 82.11f, 4.8f},
|
||||
|
|
@ -322,30 +322,30 @@ class npc_highlord_darion_mograine : public CreatureScript
|
|||
public:
|
||||
npc_highlord_darion_mograine() : CreatureScript("npc_highlord_darion_mograine") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_highlord_darion_mograineAI(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(12801) == QUEST_STATUS_INCOMPLETE && !creature->AI()->GetData(WORLD_STATE_SOLDIERS_ENABLE))
|
||||
player->ADD_GOSSIP_ITEM(0, "I am ready, Highlord. Let the siege of Light's Hope begin!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, 0, "I am ready, Highlord. Let the siege of Light's Hope begin!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
creature->AI()->DoAction(ACTION_START_EVENT);
|
||||
}
|
||||
return true;
|
||||
|
|
@ -667,7 +667,7 @@ public:
|
|||
summons.DespawnEntry(NPC_ACHERUS_GHOUL);
|
||||
summons.DespawnEntry(NPC_WARRIOR_OF_THE_FROZEN_WASTES);
|
||||
summons.DespawnEntry(NPC_FLESH_BEHEMOTH);
|
||||
summons.DespawnEntry(NPC_DEFENDER_OF_THE_LIGHT);
|
||||
summons.DespawnEntry(NPC_DEFENDER_OF_THE_LIGHT);
|
||||
|
||||
if (Creature* orbaz = GetEntryFromSummons(NPC_ORBAZ_BLOODBANE))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -646,100 +646,100 @@ class npc_fairbanks : public CreatureScript
|
|||
public:
|
||||
npc_fairbanks() : CreatureScript("npc_fairbanks") { }
|
||||
|
||||
bool OnGossipHello(Player* plr, Creature* npc)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
plr->ADD_GOSSIP_ITEM(0, "Curse? What's going on here, Fairbanks?", GOSSIP_SENDER_MAIN, 1);
|
||||
plr->SEND_GOSSIP_MENU(100100, npc->GetGUID());
|
||||
AddGossipItemFor(player, 0, "Curse? What's going on here, Fairbanks?", GOSSIP_SENDER_MAIN, 1);
|
||||
SendGossipMenuFor(player, 100100, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* plr, Creature* npc, uint32 /*Sender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 uiAction) override
|
||||
{
|
||||
plr->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
switch (uiAction)
|
||||
{
|
||||
case 1:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "Mograine?", GOSSIP_SENDER_MAIN, 2);
|
||||
plr->SEND_GOSSIP_MENU(100101, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "Mograine?", GOSSIP_SENDER_MAIN, 2);
|
||||
SendGossipMenuFor(player, 100101, creature->GetGUID());
|
||||
return true;
|
||||
case 2:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "What do you mean?", GOSSIP_SENDER_MAIN, 3);
|
||||
plr->SEND_GOSSIP_MENU(100102, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "What do you mean?", GOSSIP_SENDER_MAIN, 3);
|
||||
SendGossipMenuFor(player, 100102, creature->GetGUID());
|
||||
return true;
|
||||
case 3:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "I still do not fully understand.", GOSSIP_SENDER_MAIN, 4);
|
||||
plr->SEND_GOSSIP_MENU(100103, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "I still do not fully understand.", GOSSIP_SENDER_MAIN, 4);
|
||||
SendGossipMenuFor(player, 100103, creature->GetGUID());
|
||||
return true;
|
||||
case 4:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "Incredible story. So how did he die?", GOSSIP_SENDER_MAIN, 5);
|
||||
plr->SEND_GOSSIP_MENU(100104, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "Incredible story. So how did he die?", GOSSIP_SENDER_MAIN, 5);
|
||||
SendGossipMenuFor(player, 100104, creature->GetGUID());
|
||||
return true;
|
||||
case 5:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "You mean...", GOSSIP_SENDER_MAIN, 6);
|
||||
plr->SEND_GOSSIP_MENU(100105, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "You mean...", GOSSIP_SENDER_MAIN, 6);
|
||||
SendGossipMenuFor(player, 100105, creature->GetGUID());
|
||||
return true;
|
||||
case 6:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "How do you know all of this?", GOSSIP_SENDER_MAIN, 7);
|
||||
plr->SEND_GOSSIP_MENU(100106, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "How do you know all of this?", GOSSIP_SENDER_MAIN, 7);
|
||||
SendGossipMenuFor(player, 100106, creature->GetGUID());
|
||||
return true;
|
||||
case 7:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "A thousand? For one man?", GOSSIP_SENDER_MAIN, 8);
|
||||
plr->SEND_GOSSIP_MENU(100107, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "A thousand? For one man?", GOSSIP_SENDER_MAIN, 8);
|
||||
SendGossipMenuFor(player, 100107, creature->GetGUID());
|
||||
return true;
|
||||
case 8:
|
||||
npc->HandleEmoteCommand(5);
|
||||
plr->ADD_GOSSIP_ITEM(0, "Yet? Yet what?", GOSSIP_SENDER_MAIN, 9);
|
||||
plr->SEND_GOSSIP_MENU(100108, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(5);
|
||||
AddGossipItemFor(player, 0, "Yet? Yet what?", GOSSIP_SENDER_MAIN, 9);
|
||||
SendGossipMenuFor(player, 100108, creature->GetGUID());
|
||||
return true;
|
||||
case 9:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "And did he?", GOSSIP_SENDER_MAIN, 10);
|
||||
plr->SEND_GOSSIP_MENU(100109, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "And did he?", GOSSIP_SENDER_MAIN, 10);
|
||||
SendGossipMenuFor(player, 100109, creature->GetGUID());
|
||||
return true;
|
||||
case 10:
|
||||
npc->HandleEmoteCommand(274);
|
||||
plr->ADD_GOSSIP_ITEM(0, "Continue please, Fairbanks.", GOSSIP_SENDER_MAIN, 11);
|
||||
plr->SEND_GOSSIP_MENU(100110, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(274);
|
||||
AddGossipItemFor(player, 0, "Continue please, Fairbanks.", GOSSIP_SENDER_MAIN, 11);
|
||||
SendGossipMenuFor(player, 100110, creature->GetGUID());
|
||||
return true;
|
||||
case 11:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "You mean...", GOSSIP_SENDER_MAIN, 12);
|
||||
plr->SEND_GOSSIP_MENU(100111, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "You mean...", GOSSIP_SENDER_MAIN, 12);
|
||||
SendGossipMenuFor(player, 100111, creature->GetGUID());
|
||||
return true;
|
||||
case 12:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "You were right, Fairbanks. That is tragic.", GOSSIP_SENDER_MAIN, 13);
|
||||
plr->SEND_GOSSIP_MENU(100112, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "You were right, Fairbanks. That is tragic.", GOSSIP_SENDER_MAIN, 13);
|
||||
SendGossipMenuFor(player, 100112, creature->GetGUID());
|
||||
return true;
|
||||
case 13:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "And you did...", GOSSIP_SENDER_MAIN, 14);
|
||||
plr->SEND_GOSSIP_MENU(100113, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "And you did...", GOSSIP_SENDER_MAIN, 14);
|
||||
SendGossipMenuFor(player, 100113, creature->GetGUID());
|
||||
return true;
|
||||
case 14:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "You tell an incredible tale, Fairbanks. What of the blade? Is it beyond redemption?", GOSSIP_SENDER_MAIN, 15);
|
||||
plr->SEND_GOSSIP_MENU(100114, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "You tell an incredible tale, Fairbanks. What of the blade? Is it beyond redemption?", GOSSIP_SENDER_MAIN, 15);
|
||||
SendGossipMenuFor(player, 100114, creature->GetGUID());
|
||||
return true;
|
||||
case 15:
|
||||
npc->HandleEmoteCommand(1);
|
||||
plr->ADD_GOSSIP_ITEM(0, "But his son is dead.", GOSSIP_SENDER_MAIN, 16);
|
||||
plr->SEND_GOSSIP_MENU(100115, npc->GetGUID());
|
||||
creature->HandleEmoteCommand(1);
|
||||
AddGossipItemFor(player, 0, "But his son is dead.", GOSSIP_SENDER_MAIN, 16);
|
||||
SendGossipMenuFor(player, 100115, creature->GetGUID());
|
||||
return true;
|
||||
case 16:
|
||||
plr->SEND_GOSSIP_MENU(100116, npc->GetGUID());
|
||||
SendGossipMenuFor(player, 100116, creature->GetGUID());
|
||||
// todo: we need to play these 3 emote in sequence, we play only the last one right now.
|
||||
npc->HandleEmoteCommand(274);
|
||||
npc->HandleEmoteCommand(1);
|
||||
npc->HandleEmoteCommand(397);
|
||||
creature->HandleEmoteCommand(274);
|
||||
creature->HandleEmoteCommand(1);
|
||||
creature->HandleEmoteCommand(397);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -750,12 +750,12 @@ public:
|
|||
{
|
||||
npc_fairbanksAI(Creature* creature) : SmartAI(creature) { }
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
SayAshbringer = false;
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (who && who->GetDistance2d(me) < 2.0f)
|
||||
if (Player* player = who->ToPlayer())
|
||||
|
|
@ -776,7 +776,7 @@ public:
|
|||
bool SayAshbringer = false;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fairbanksAI(creature);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,41 +131,41 @@ class npc_zulaman_hostage : public CreatureScript
|
|||
bool IsLoot;
|
||||
uint64 PlayerGUID;
|
||||
|
||||
void Reset() { }
|
||||
void Reset() override { }
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID))
|
||||
player->SendLoot(me->GetGUID(), LOOT_CORPSE);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 /*diff*/)
|
||||
void UpdateAI(uint32 /*diff*/) override
|
||||
{
|
||||
if (IsLoot)
|
||||
DoCast(me, 7, false);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_zulaman_hostageAI(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
|
@ -189,6 +189,7 @@ class npc_zulaman_hostage : public CreatureScript
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
@ -256,195 +257,195 @@ enum Weapons
|
|||
|
||||
class npc_harrison_jones : public CreatureScript
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
npc_harrison_jones() : CreatureScript("npc_harrison_jones")
|
||||
npc_harrison_jones() : CreatureScript("npc_harrison_jones")
|
||||
{
|
||||
}
|
||||
|
||||
struct npc_harrison_jonesAI : public ScriptedAI
|
||||
{
|
||||
npc_harrison_jonesAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
struct npc_harrison_jonesAI : public ScriptedAI
|
||||
InstanceScript* instance;
|
||||
|
||||
uint8 _gongEvent;
|
||||
uint32 _gongTimer;
|
||||
uint64 uiTargetGUID;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
npc_harrison_jonesAI(Creature* creature) : ScriptedAI(creature)
|
||||
_gongEvent = 0;
|
||||
_gongTimer = 0;
|
||||
uiTargetGUID = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
|
||||
void sGossipSelect(Player* player, uint32 sender, uint32 action)
|
||||
{
|
||||
if (me->GetCreatureTemplate()->GossipMenuId == sender && !action)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
CloseGossipMenuFor(player);
|
||||
me->SetFacingToObject(player);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
Talk(SAY_HARRISON_0);
|
||||
_gongEvent = GONG_EVENT_1;
|
||||
_gongTimer = 4000;
|
||||
}
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint8 _gongEvent;
|
||||
uint32 _gongTimer;
|
||||
uint64 uiTargetGUID;
|
||||
|
||||
void Reset()
|
||||
void SpellHit(Unit*, const SpellInfo* spell)
|
||||
{
|
||||
if (spell->Id == SPELL_COSMETIC_SPEAR_THROW)
|
||||
{
|
||||
_gongEvent = 0;
|
||||
_gongTimer = 0;
|
||||
uiTargetGUID = 0;
|
||||
me->RemoveAllAuras();
|
||||
me->SetEntry(NPC_HARRISON_JONES_2);
|
||||
me->SetDisplayId(MODEL_HARRISON_JONES_2);
|
||||
me->SetTarget(0);
|
||||
me->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_DEAD);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
instance->SetData(DATA_GONGEVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
|
||||
void sGossipSelect(Player* player, uint32 sender, uint32 action)
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
if (_gongEvent)
|
||||
{
|
||||
if (me->GetCreatureTemplate()->GossipMenuId == sender && !action)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
me->SetFacingToObject(player);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
Talk(SAY_HARRISON_0);
|
||||
_gongEvent = GONG_EVENT_1;
|
||||
_gongTimer = 4000;
|
||||
}
|
||||
}
|
||||
|
||||
void SpellHit(Unit*, const SpellInfo* spell)
|
||||
{
|
||||
if (spell->Id == SPELL_COSMETIC_SPEAR_THROW)
|
||||
if (_gongTimer <= diff)
|
||||
{
|
||||
me->RemoveAllAuras();
|
||||
me->SetEntry(NPC_HARRISON_JONES_2);
|
||||
me->SetDisplayId(MODEL_HARRISON_JONES_2);
|
||||
me->SetTarget(0);
|
||||
me->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_DEAD);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
instance->SetData(DATA_GONGEVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
if (_gongEvent)
|
||||
{
|
||||
if (_gongTimer <= diff)
|
||||
switch (_gongEvent)
|
||||
{
|
||||
switch (_gongEvent)
|
||||
{
|
||||
case GONG_EVENT_1:
|
||||
me->GetMotionMaster()->MovePath(HARRISON_MOVE_1, false);
|
||||
_gongEvent = GONG_EVENT_2;
|
||||
_gongTimer = 12000;
|
||||
break;
|
||||
case GONG_EVENT_2:
|
||||
me->SetFacingTo(6.235659f);
|
||||
Talk(SAY_HARRISON_1);
|
||||
DoCast(me, SPELL_BANGING_THE_GONG);
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_MACE));
|
||||
me->SetSheath(SHEATH_STATE_MELEE);
|
||||
_gongEvent = GONG_EVENT_3;
|
||||
_gongTimer = 4000;
|
||||
break;
|
||||
case GONG_EVENT_3:
|
||||
if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG)))
|
||||
gong->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
_gongEvent = GONG_EVENT_4;
|
||||
_gongTimer = 105000;
|
||||
break;
|
||||
case GONG_EVENT_4:
|
||||
me->RemoveAura(SPELL_BANGING_THE_GONG);
|
||||
if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG)))
|
||||
gong->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
case GONG_EVENT_1:
|
||||
me->GetMotionMaster()->MovePath(HARRISON_MOVE_1, false);
|
||||
_gongEvent = GONG_EVENT_2;
|
||||
_gongTimer = 12000;
|
||||
break;
|
||||
case GONG_EVENT_2:
|
||||
me->SetFacingTo(6.235659f);
|
||||
Talk(SAY_HARRISON_1);
|
||||
DoCast(me, SPELL_BANGING_THE_GONG);
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_MACE));
|
||||
me->SetSheath(SHEATH_STATE_MELEE);
|
||||
_gongEvent = GONG_EVENT_3;
|
||||
_gongTimer = 4000;
|
||||
break;
|
||||
case GONG_EVENT_3:
|
||||
if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG)))
|
||||
gong->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
_gongEvent = GONG_EVENT_4;
|
||||
_gongTimer = 105000;
|
||||
break;
|
||||
case GONG_EVENT_4:
|
||||
me->RemoveAura(SPELL_BANGING_THE_GONG);
|
||||
if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetData64(GO_STRANGE_GONG)))
|
||||
gong->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// trigger or gong will need to be scripted to set IN_PROGRESS after enough hits.
|
||||
// This is temp workaround.
|
||||
instance->SetData(DATA_GONGEVENT, IN_PROGRESS); // to be removed.
|
||||
// trigger or gong will need to be scripted to set IN_PROGRESS after enough hits.
|
||||
// This is temp workaround.
|
||||
instance->SetData(DATA_GONGEVENT, IN_PROGRESS); // to be removed.
|
||||
|
||||
if (instance->GetData(DATA_GONGEVENT) == IN_PROGRESS)
|
||||
if (instance->GetData(DATA_GONGEVENT) == IN_PROGRESS)
|
||||
{
|
||||
// Players are Now Saved to instance at SPECIAL (Player should be notified?)
|
||||
me->GetMotionMaster()->MovePath(HARRISON_MOVE_2, false);
|
||||
_gongEvent = GONG_EVENT_5;
|
||||
_gongTimer = 5000;
|
||||
}
|
||||
else
|
||||
{
|
||||
_gongTimer = 1000;
|
||||
_gongEvent = GONG_EVENT_9;
|
||||
}
|
||||
break;
|
||||
case GONG_EVENT_5:
|
||||
me->SetEntry(NPC_HARRISON_JONES_1);
|
||||
me->SetDisplayId(MODEL_HARRISON_JONES_1);
|
||||
Talk(SAY_HARRISON_2);
|
||||
_gongTimer = 12000;
|
||||
_gongEvent = GONG_EVENT_6;
|
||||
break;
|
||||
case GONG_EVENT_6:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
|
||||
Talk(SAY_HARRISON_3);
|
||||
_gongTimer = 7000;
|
||||
_gongEvent = GONG_EVENT_7;
|
||||
break;
|
||||
case GONG_EVENT_7:
|
||||
if (!uiTargetGUID)
|
||||
{
|
||||
std::list<Creature*> targetList;
|
||||
GetCreatureListWithEntryInGrid(targetList, me, NPC_AMANISHI_GUARDIAN, 26.0f);
|
||||
if (!targetList.empty())
|
||||
{
|
||||
// Players are Now Saved to instance at SPECIAL (Player should be notified?)
|
||||
me->GetMotionMaster()->MovePath(HARRISON_MOVE_2, false);
|
||||
_gongEvent = GONG_EVENT_5;
|
||||
_gongTimer = 5000;
|
||||
}
|
||||
else
|
||||
{
|
||||
_gongTimer = 1000;
|
||||
_gongEvent = GONG_EVENT_9;
|
||||
}
|
||||
break;
|
||||
case GONG_EVENT_5:
|
||||
me->SetEntry(NPC_HARRISON_JONES_1);
|
||||
me->SetDisplayId(MODEL_HARRISON_JONES_1);
|
||||
Talk(SAY_HARRISON_2);
|
||||
_gongTimer = 12000;
|
||||
_gongEvent = GONG_EVENT_6;
|
||||
break;
|
||||
case GONG_EVENT_6:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
|
||||
Talk(SAY_HARRISON_3);
|
||||
_gongTimer = 7000;
|
||||
_gongEvent = GONG_EVENT_7;
|
||||
break;
|
||||
case GONG_EVENT_7:
|
||||
if (!uiTargetGUID)
|
||||
{
|
||||
std::list<Creature*> targetList;
|
||||
GetCreatureListWithEntryInGrid(targetList, me, NPC_AMANISHI_GUARDIAN, 26.0f);
|
||||
if (!targetList.empty())
|
||||
for (std::list<Creature*>::const_iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
|
||||
{
|
||||
for (std::list<Creature*>::const_iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
|
||||
if (Creature* ptarget = *itr)
|
||||
{
|
||||
if (Creature* ptarget = *itr)
|
||||
if (ptarget->GetPositionX() > 120)
|
||||
{
|
||||
if (ptarget->GetPositionX() > 120)
|
||||
{
|
||||
ptarget->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_SPEAR));
|
||||
ptarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
ptarget->SetReactState(REACT_PASSIVE);
|
||||
ptarget->AI()->SetData(0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ptarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
ptarget->SetReactState(REACT_PASSIVE);
|
||||
ptarget->AI()->SetData(0, 2);
|
||||
}
|
||||
ptarget->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_SPEAR));
|
||||
ptarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
ptarget->SetReactState(REACT_PASSIVE);
|
||||
ptarget->AI()->SetData(0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ptarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
ptarget->SetReactState(REACT_PASSIVE);
|
||||
ptarget->AI()->SetData(0, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_MASSIVE_GATE)))
|
||||
gate->SetGoState(GO_STATE_ACTIVE);
|
||||
_gongTimer = 2000;
|
||||
_gongEvent = GONG_EVENT_8;
|
||||
break;
|
||||
case GONG_EVENT_8:
|
||||
DoCast(me, SPELL_STEALTH);
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(0));
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->GetMotionMaster()->MovePath(HARRISON_MOVE_3, false);
|
||||
_gongTimer = 1000;
|
||||
_gongEvent = 0;
|
||||
break;
|
||||
case GONG_EVENT_9:
|
||||
me->GetMotionMaster()->MovePoint(0, 120.687f, 1674.0f, 42.0217f);
|
||||
_gongTimer = 12000;
|
||||
_gongEvent = GONG_EVENT_10;
|
||||
break;
|
||||
case GONG_EVENT_10:
|
||||
me->SetFacingTo(1.59044f);
|
||||
_gongEvent = 11;
|
||||
_gongTimer = 6000;
|
||||
break;
|
||||
case GONG_EVENT_11:
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_MASSIVE_GATE)))
|
||||
gate->SetGoState(GO_STATE_ACTIVE);
|
||||
_gongTimer = 2000;
|
||||
_gongEvent = GONG_EVENT_8;
|
||||
break;
|
||||
case GONG_EVENT_8:
|
||||
DoCast(me, SPELL_STEALTH);
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(0));
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->GetMotionMaster()->MovePath(HARRISON_MOVE_3, false);
|
||||
_gongTimer = 1000;
|
||||
_gongEvent = 0;
|
||||
break;
|
||||
case GONG_EVENT_9:
|
||||
me->GetMotionMaster()->MovePoint(0, 120.687f, 1674.0f, 42.0217f);
|
||||
_gongTimer = 12000;
|
||||
_gongEvent = GONG_EVENT_10;
|
||||
break;
|
||||
case GONG_EVENT_10:
|
||||
me->SetFacingTo(1.59044f);
|
||||
_gongEvent = 11;
|
||||
_gongTimer = 6000;
|
||||
break;
|
||||
case GONG_EVENT_11:
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
|
||||
instance->SetData(DATA_GONGEVENT, NOT_STARTED);
|
||||
_gongEvent = 0;
|
||||
_gongTimer = 1000;
|
||||
break;
|
||||
}
|
||||
instance->SetData(DATA_GONGEVENT, NOT_STARTED);
|
||||
_gongEvent = 0;
|
||||
_gongTimer = 1000;
|
||||
break;
|
||||
}
|
||||
else
|
||||
_gongTimer -= diff;
|
||||
}
|
||||
else
|
||||
_gongTimer -= diff;
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return GetInstanceAI<npc_harrison_jonesAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return GetInstanceAI<npc_harrison_jonesAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_banging_the_gong : public SpellScriptLoader
|
||||
|
|
|
|||
|
|
@ -410,7 +410,7 @@ class go_gong_of_bethekk : public GameObjectScript
|
|||
{
|
||||
public: go_gong_of_bethekk() : GameObjectScript("go_gong_of_bethekk") { }
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
if (go->GetInstanceScript())
|
||||
{
|
||||
|
|
@ -418,6 +418,7 @@ class go_gong_of_bethekk : public GameObjectScript
|
|||
go->SendCustomAnim(0);
|
||||
go->SummonCreature(NPC_ARLOKK, PosSummonArlokk[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 600000);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -340,23 +340,23 @@ class npc_augustus_the_touched : public CreatureScript
|
|||
public:
|
||||
npc_augustus_the_touched() : CreatureScript("npc_augustus_the_touched") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor() && player->GetQuestRewardStatus(6164))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
@ -375,15 +375,15 @@ class npc_darrowshire_spirit : public CreatureScript
|
|||
public:
|
||||
npc_darrowshire_spirit() : CreatureScript("npc_darrowshire_spirit") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
player->SEND_GOSSIP_MENU(3873, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 3873, creature->GetGUID());
|
||||
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_darrowshire_spiritAI(creature);
|
||||
}
|
||||
|
|
@ -392,13 +392,13 @@ public:
|
|||
{
|
||||
npc_darrowshire_spiritAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
DoCast(me, SPELL_SPIRIT_SPAWNIN);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -38,51 +38,51 @@ class npc_mountaineer_pebblebitty : public CreatureScript
|
|||
public:
|
||||
npc_mountaineer_pebblebitty() : CreatureScript("npc_mountaineer_pebblebitty") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(1833, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_MP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 1833, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->SEND_GOSSIP_MENU(1834, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_MP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, 1834, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
player->SEND_GOSSIP_MENU(1835, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_MP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
SendGossipMenuFor(player, 1835, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
player->SEND_GOSSIP_MENU(1836, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_MP4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, 1836, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
player->SEND_GOSSIP_MENU(1837, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_MP5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
SendGossipMenuFor(player, 1837, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+6:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
player->SEND_GOSSIP_MENU(1838, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_MP6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
SendGossipMenuFor(player, 1838, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+7:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (!player->GetQuestRewardStatus(3181) == 1)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_MP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,40 +112,40 @@ class npc_lady_katrana_prestor : public CreatureScript
|
|||
public:
|
||||
npc_lady_katrana_prestor() : CreatureScript("npc_lady_katrana_prestor") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(2694, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 2694, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(2695, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 2695, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->SEND_GOSSIP_MENU(2696, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, 2696, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AreaExploredOrEventHappens(4185);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(4185) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(2693, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2693, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ enum Sylvanas
|
|||
SAY_SUNSORROW_WHISPER = 0,
|
||||
|
||||
SOUND_CREDIT = 10896,
|
||||
|
||||
|
||||
NPC_HIGHBORNE_LAMENTER = 21628,
|
||||
NPC_HIGHBORNE_BUNNY = 21641,
|
||||
NPC_AMBASSADOR_SUNSORROW = 16287,
|
||||
|
|
@ -310,15 +310,15 @@ public:
|
|||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_MARK_OF_SHAME, false);
|
||||
}
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+2)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AreaExploredOrEventHappens(6628);
|
||||
}
|
||||
return true;
|
||||
|
|
@ -331,13 +331,13 @@ public:
|
|||
|
||||
if (player->GetQuestStatus(6628) == QUEST_STATUS_INCOMPLETE && !player->HasAura(SPELL_MARK_OF_SHAME))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HPF1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HPF2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HPF3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(5822, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HPF1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HPF2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HPF3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, 5822, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(5821, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 5821, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -937,11 +937,13 @@ public:
|
|||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (auto ai = CAST_AI(npc_varian_wrynn::npc_varian_wrynnAI, creature->AI()))
|
||||
{
|
||||
ai->Start(true, true, player->GetGUID());
|
||||
|
|
@ -952,8 +954,10 @@ public:
|
|||
ai->SetDespawnAtEnd(false);
|
||||
ai->SetDespawnAtFar(false);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -963,9 +967,9 @@ public:
|
|||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_BATTLE_A) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WRYNN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WRYNN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2267,12 +2271,14 @@ public:
|
|||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (auto thrall_ai = CAST_AI(npc_thrall_bfu::npc_thrall_bfuAI, creature->AI()))
|
||||
{
|
||||
if (Creature* sylvannas = GetClosestCreatureWithEntry(creature, NPC_SYLVANAS, 50.0f))
|
||||
|
|
@ -2288,6 +2294,7 @@ public:
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2297,9 +2304,9 @@ public:
|
|||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_BATTLE_H) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_THRALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_THRALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,56 +41,56 @@ class npcs_dithers_and_arbington : public CreatureScript
|
|||
public:
|
||||
npcs_dithers_and_arbington() : CreatureScript("npcs_dithers_and_arbington") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_TRADE:
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(3980, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, 3980, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(3981, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, 3981, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(3982, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, 3982, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(3983, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, 3983, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, 17529, false);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (player->GetQuestRewardStatus(5237) || player->GetQuestRewardStatus(5238))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HDA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HDA3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HDA4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
player->SEND_GOSSIP_MENU(3985, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HDA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HDA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HDA3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HDA4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
SendGossipMenuFor(player, 3985, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -115,18 +115,18 @@ class npc_myranda_the_hag : public CreatureScript
|
|||
public:
|
||||
npc_myranda_the_hag() : CreatureScript("npc_myranda_the_hag") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_SCARLET_ILLUSION, false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -134,12 +134,12 @@ public:
|
|||
if (player->GetQuestRewardStatus(QUEST_FIND_MYRANDA) &&
|
||||
!player->GetQuestRewardStatus(QUEST_IN_DREAMS) && !player->HasAura(SPELL_SCARLET_ILLUSION))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ILLUSION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(4773, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ILLUSION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 4773, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -362,7 +362,7 @@ public:
|
|||
|
||||
struct npc_costumed_orphan_matronAI : public ScriptedAI
|
||||
{
|
||||
npc_costumed_orphan_matronAI(Creature *c) : ScriptedAI(c)
|
||||
npc_costumed_orphan_matronAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -370,7 +370,7 @@ public:
|
|||
bool allowQuest;
|
||||
uint64 horseGUID;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
eventStarted = 0;
|
||||
allowQuest = false;
|
||||
|
|
@ -402,7 +402,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void DoAction(int32 param)
|
||||
void DoAction(int32 param) override
|
||||
{
|
||||
if (param == ACTION_START_EVENT)
|
||||
{
|
||||
|
|
@ -420,7 +420,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 param) const
|
||||
uint32 GetData(uint32 param) const override
|
||||
{
|
||||
if (param == DATA_ALLOW_START)
|
||||
return allowQuest;
|
||||
|
|
@ -428,7 +428,7 @@ public:
|
|||
return 0;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (eventStarted)
|
||||
{
|
||||
|
|
@ -442,7 +442,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
QuestRelationBounds pObjectQR = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
|
||||
QuestRelationBounds pObjectQIR = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
|
||||
|
|
@ -494,7 +494,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest)
|
||||
bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest) override
|
||||
{
|
||||
if ((quest->GetQuestId() == QUEST_LET_THE_FIRES_COME_A || quest->GetQuestId() == QUEST_LET_THE_FIRES_COME_H) && !creature->AI()->GetData(DATA_ALLOW_START))
|
||||
creature->AI()->DoAction(ACTION_START_EVENT);
|
||||
|
|
@ -502,7 +502,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_costumed_orphan_matronAI (pCreature);
|
||||
}
|
||||
|
|
@ -921,7 +921,7 @@ class boss_headless_horseman : public CreatureScript
|
|||
for (std::list<Creature*>::iterator itr = unitList.begin(); itr != unitList.end(); ++itr)
|
||||
(*itr)->ToCreature()->DespawnOrUnsummon(500);
|
||||
|
||||
|
||||
|
||||
Map::PlayerList const& players = me->GetMap()->GetPlayers();
|
||||
if (!players.isEmpty() && players.begin()->GetSource() && players.begin()->GetSource()->GetGroup())
|
||||
sLFGMgr->FinishDungeon(players.begin()->GetSource()->GetGroup()->GetGUID(), 285, me->FindMap());
|
||||
|
|
@ -962,7 +962,7 @@ class boss_headless_horseman : public CreatureScript
|
|||
events.CancelEvent(EVENT_HORSEMAN_CONFLAGRATION);
|
||||
events.CancelEvent(EVENT_SUMMON_PUMPKIN);
|
||||
me->MonsterYell("Here's my body, fit and pure! Now, your blackened souls I'll cure!", LANG_UNIVERSAL, 0);
|
||||
|
||||
|
||||
if (phase == 1)
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_CONFLAGRATION, 6000);
|
||||
else if (phase == 2)
|
||||
|
|
@ -980,7 +980,7 @@ class boss_headless_horseman : public CreatureScript
|
|||
{
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, 0);
|
||||
me->StopMoving();
|
||||
|
||||
|
||||
me->SetInCombatWithZone();
|
||||
inFight = true;
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_FOLLOW, 500);
|
||||
|
|
@ -1036,7 +1036,7 @@ class boss_headless_horseman : public CreatureScript
|
|||
phase = 0;
|
||||
inFight = false;
|
||||
health = 0;
|
||||
|
||||
|
||||
me->SetDisableGravity(true);
|
||||
me->SetSpeed(MOVE_WALK, 5.0f, true);
|
||||
}
|
||||
|
|
@ -1253,7 +1253,7 @@ class boss_headless_horseman_head : public CreatureScript
|
|||
damage = 0;
|
||||
me->RemoveAllAuras();
|
||||
me->CastSpell(me, SPELL_HEAD_DAMAGED_INFO, true);
|
||||
me->CastSpell(me, SPELL_THROW_HEAD_BACK, true);
|
||||
me->CastSpell(me, SPELL_THROW_HEAD_BACK, true);
|
||||
if (Unit* owner = GetOwner())
|
||||
owner->RemoveAura(SPELL_HORSEMAN_IMMUNITY);
|
||||
}
|
||||
|
|
@ -1377,7 +1377,7 @@ void AddSC_event_hallows_end_scripts()
|
|||
new spell_hallows_end_put_costume("spell_hallows_end_leper_costume", SPELL_LEPER_GNOME_COSTUME_MALE, SPELL_LEPER_GNOME_COSTUME_FEMALE);
|
||||
new spell_hallows_end_put_costume("spell_hallows_end_ghost_costume", SPELL_GHOST_COSTUME_MALE, SPELL_GHOST_COSTUME_FEMALE);
|
||||
new spell_hallows_end_put_costume("spell_hallows_end_ninja_costume", SPELL_NINJA_COSTUME_MALE, SPELL_NINJA_COSTUME_FEMALE);
|
||||
|
||||
|
||||
// Quests
|
||||
new npc_hallows_end_train_fire();
|
||||
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ class go_midsummer_bonfire : public GameObjectScript
|
|||
public:
|
||||
go_midsummer_bonfire() : GameObjectScript("go_midsummer_bonfire") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
// we know that there is only one gossip.
|
||||
player->CastSpell(player, SPELL_STAMP_OUT_BONFIRE, true);
|
||||
return true;
|
||||
|
|
@ -37,7 +37,7 @@ class npc_midsummer_bonfire : public CreatureScript
|
|||
|
||||
struct npc_midsummer_bonfireAI : public ScriptedAI
|
||||
{
|
||||
npc_midsummer_bonfireAI(Creature* c) : ScriptedAI(c)
|
||||
npc_midsummer_bonfireAI(Creature* c) : ScriptedAI(c)
|
||||
{
|
||||
me->IsAIEnabled = true;
|
||||
goGUID = 0;
|
||||
|
|
@ -47,7 +47,7 @@ class npc_midsummer_bonfire : public CreatureScript
|
|||
me->RemoveGameObject(go, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint64 goGUID;
|
||||
|
||||
void SpellHit(Unit*, SpellInfo const* spellInfo)
|
||||
|
|
@ -86,7 +86,7 @@ class npc_midsummer_torch_target : public CreatureScript
|
|||
|
||||
struct npc_midsummer_torch_targetAI : public ScriptedAI
|
||||
{
|
||||
npc_midsummer_torch_targetAI(Creature* c) : ScriptedAI(c)
|
||||
npc_midsummer_torch_targetAI(Creature* c) : ScriptedAI(c)
|
||||
{
|
||||
teleTimer = 0;
|
||||
startTimer = 1;
|
||||
|
|
@ -114,7 +114,7 @@ class npc_midsummer_torch_target : public CreatureScript
|
|||
{
|
||||
return seer->GetGUID() == playerGUID;
|
||||
}
|
||||
|
||||
|
||||
void SpellHit(Unit* caster, SpellInfo const* spellInfo)
|
||||
{
|
||||
if (posVec.empty())
|
||||
|
|
@ -273,7 +273,7 @@ public:
|
|||
class spell_midsummer_ribbon_pole_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_midsummer_ribbon_pole_AuraScript)
|
||||
|
||||
|
||||
void HandleEffectPeriodic(AuraEffect const * /*aurEff*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
|
|
@ -340,7 +340,7 @@ public:
|
|||
}
|
||||
|
||||
uint64 torchGUID;
|
||||
|
||||
|
||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
Unit* ar = GetTarget();
|
||||
|
|
@ -573,4 +573,4 @@ void AddSC_event_midsummer_scripts()
|
|||
new spell_midsummer_torch_quest();
|
||||
new spell_midsummer_fling_torch();
|
||||
new spell_midsummer_juggling_torch();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,9 +41,9 @@ class npc_jaina_proudmoore : public CreatureScript
|
|||
public:
|
||||
npc_jaina_proudmoore() : CreatureScript("npc_jaina_proudmoore") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
|
||||
switch (action)
|
||||
{
|
||||
|
|
@ -66,7 +66,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
|
||||
if (ai->EventBegun)
|
||||
|
|
@ -75,20 +75,20 @@ public:
|
|||
uint32 RageEncounter = ai->GetInstanceData(DATA_RAGEWINTERCHILLEVENT);
|
||||
uint32 AnetheronEncounter = ai->GetInstanceData(DATA_ANETHERONEVENT);
|
||||
if (RageEncounter == NOT_STARTED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEGIN_ALLY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEGIN_ALLY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
else if (RageEncounter == DONE && AnetheronEncounter == NOT_STARTED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ANETHERON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ANETHERON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
else if (RageEncounter == DONE && AnetheronEncounter == DONE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RETREAT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_RETREAT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
|
||||
if (player->IsGameMaster())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 907, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
if (!creature->GetInstanceScript())
|
||||
return NULL;
|
||||
|
|
@ -120,9 +120,9 @@ class npc_thrall : public CreatureScript
|
|||
public:
|
||||
npc_thrall() : CreatureScript("npc_thrall") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
|
||||
ai->DeSpawnVeins();//despawn the alliance veins
|
||||
switch (action)
|
||||
|
|
@ -146,7 +146,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
|
||||
if (ai->EventBegun)
|
||||
|
|
@ -159,21 +159,21 @@ public:
|
|||
uint32 KazrogalEvent = ai->GetInstanceData(DATA_KAZROGALEVENT);
|
||||
uint32 AzgalorEvent = ai->GetInstanceData(DATA_AZGALOREVENT);
|
||||
if (KazrogalEvent == NOT_STARTED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEGIN_HORDE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEGIN_HORDE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
else if (KazrogalEvent == DONE && AzgalorEvent == NOT_STARTED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AZGALOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AZGALOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
else if (AzgalorEvent == DONE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RETREAT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_RETREAT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
}
|
||||
|
||||
if (player->IsGameMaster())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 907, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
if (!creature->GetInstanceScript())
|
||||
return NULL;
|
||||
|
|
@ -201,7 +201,7 @@ class npc_tyrande_whisperwind : public CreatureScript
|
|||
public:
|
||||
npc_tyrande_whisperwind() : CreatureScript("npc_tyrande_whisperwind") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
if (!creature->GetInstanceScript())
|
||||
return NULL;
|
||||
|
|
@ -212,9 +212,9 @@ public:
|
|||
return ai;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
ItemPosCountVec dest;
|
||||
|
|
@ -223,20 +223,20 @@ public:
|
|||
if (Item* item = player->StoreNewItem(dest, ITEM_TEAR_OF_GODDESS, true))
|
||||
player->SendNewItem(item, 1, true, false, true);
|
||||
|
||||
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 907, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
|
||||
uint32 AzgalorEvent = ai->GetInstanceData(DATA_AZGALOREVENT);
|
||||
|
||||
// Only let them get item if Azgalor is dead.
|
||||
if (AzgalorEvent == DONE && !player->HasItemCount(ITEM_TEAR_OF_GODDESS))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TYRANDE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_TYRANDE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, 907, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ enum Says
|
|||
SAY_PHASE201 = 10,
|
||||
SAY_PHASE203 = 11,
|
||||
SAY_PHASE205 = 12,
|
||||
SAY_PHASE208 = 13,
|
||||
SAY_PHASE208 = 13,
|
||||
SAY_PHASE209 = 14,
|
||||
SAY_PHASE210 = 15,
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ enum Says
|
|||
SAY_PHASE117 = 1,
|
||||
|
||||
//Cityman
|
||||
SAY_PHASE202 = 0,
|
||||
SAY_PHASE202 = 0,
|
||||
|
||||
//Crazyman
|
||||
SAY_PHASE204 = 0,
|
||||
|
|
@ -278,7 +278,7 @@ class npc_arthas : public CreatureScript
|
|||
public:
|
||||
npc_arthas() : CreatureScript("npc_arthas") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
{
|
||||
|
|
@ -287,35 +287,35 @@ public:
|
|||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
creature->AI()->DoAction(ACTION_START_CITY);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_3, creature->GetGUID());
|
||||
ClearGossipMenuFor(player);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
SendGossipMenuFor(player, GOSSIP_MENU_ARTHAS_3, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
// Start Town Hall part
|
||||
creature->AI()->DoAction(ACTION_START_TOWN_HALL);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
// After killing epoch
|
||||
creature->AI()->DoAction(ACTION_START_SECRET_PASSAGE);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->SetTarget(0);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
creature->AI()->DoAction(ACTION_START_LAST_CITY);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+6:
|
||||
creature->AI()->DoAction(ACTION_START_MALGANIS);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -323,7 +323,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
InstanceScript* pInstance = creature->GetInstanceScript();
|
||||
if (!pInstance)
|
||||
|
|
@ -332,30 +332,30 @@ public:
|
|||
switch (pInstance->GetData(DATA_ARTHAS_EVENT))
|
||||
{
|
||||
case COS_PROGRESS_FINISHED_INTRO:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_1, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, GOSSIP_MENU_ARTHAS_1, creature->GetGUID());
|
||||
break;
|
||||
case COS_PROGRESS_REACHED_TOWN_HALL:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_2, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, GOSSIP_MENU_ARTHAS_2, creature->GetGUID());
|
||||
break;
|
||||
case COS_PROGRESS_KILLED_EPOCH:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_4, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
SendGossipMenuFor(player, GOSSIP_MENU_ARTHAS_4, creature->GetGUID());
|
||||
break;
|
||||
case COS_PROGRESS_LAST_CITY:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_5, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, GOSSIP_MENU_ARTHAS_5, creature->GetGUID());
|
||||
break;
|
||||
case COS_PROGRESS_BEFORE_MALGANIS:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_6, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
|
||||
SendGossipMenuFor(player, GOSSIP_MENU_ARTHAS_6, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_arthasAI(creature);
|
||||
}
|
||||
|
|
@ -380,31 +380,31 @@ public:
|
|||
void ScheduleNextEvent(uint32 currentEvent, uint32 time);
|
||||
void SummonNextWave();
|
||||
void ReorderInstance(uint32 data);
|
||||
void EnterCombat(Unit* /*who*/);
|
||||
void EnterCombat(Unit* /*who*/) override ;
|
||||
void SendNextWave(uint32 entry);
|
||||
void SpawnTimeRift();
|
||||
|
||||
void JustDied(Unit*)
|
||||
void JustDied(Unit*) override
|
||||
{
|
||||
RemoveEscortState(STATE_ESCORT_ESCORTING);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_REPOSITION, 2);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* cr)
|
||||
void JustSummoned(Creature* cr) override
|
||||
{
|
||||
summons.Summon(cr);
|
||||
}
|
||||
|
||||
void SummonedCreatureDespawn(Creature* cr) { summons.Despawn(cr); }
|
||||
void SummonedCreatureDespawn(Creature* cr) override { summons.Despawn(cr); }
|
||||
|
||||
void SummonedCreatureDies(Creature* cr, Unit*)
|
||||
void SummonedCreatureDies(Creature* cr, Unit*) override
|
||||
{
|
||||
if (pInstance && pInstance->GetData(DATA_ARTHAS_EVENT) > COS_PROGRESS_FINISHED_INTRO && pInstance->GetData(DATA_ARTHAS_EVENT) < COS_PROGRESS_REACHED_TOWN_HALL)
|
||||
SendNextWave(cr->GetEntry());
|
||||
}
|
||||
|
||||
void DoAction(int32 param)
|
||||
void DoAction(int32 param) override
|
||||
{
|
||||
if (param == ACTION_START_EVENT)
|
||||
{
|
||||
|
|
@ -482,7 +482,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
actionEvents.Reset();
|
||||
combatEvents.Reset();
|
||||
|
|
@ -503,7 +503,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 uiPointId)
|
||||
void WaypointReached(uint32 uiPointId) override
|
||||
{
|
||||
switch(uiPointId)
|
||||
{
|
||||
|
|
@ -652,7 +652,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
|
||||
|
|
@ -673,7 +673,7 @@ public:
|
|||
for (int i = 0; i < 3; ++i)
|
||||
if (Creature *horse = me->SummonCreature(NPC_HORSE_ESCORT, EventPos[EVENT_SRC_HORSE1+i], TEMPSUMMON_DEAD_DESPAWN, 180000))
|
||||
horse->GetMotionMaster()->MovePoint(0, EventPos[EVENT_DST_HORSE1+i], false);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+1:
|
||||
|
|
@ -691,7 +691,7 @@ public:
|
|||
case EVENT_ACTION_PHASE1+3:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE102);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 8000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+4:
|
||||
|
|
@ -711,7 +711,7 @@ public:
|
|||
case EVENT_ACTION_PHASE1+6:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE105);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+7:
|
||||
|
|
@ -721,7 +721,7 @@ public:
|
|||
case EVENT_ACTION_PHASE1+8:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE107);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 6000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+9:
|
||||
|
|
@ -731,7 +731,7 @@ public:
|
|||
case EVENT_ACTION_PHASE1+10:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE109);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 8000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+11:
|
||||
|
|
@ -741,7 +741,7 @@ public:
|
|||
case EVENT_ACTION_PHASE1+12:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE111);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+13:
|
||||
|
|
@ -751,7 +751,7 @@ public:
|
|||
case EVENT_ACTION_PHASE1+14:
|
||||
if (Creature* jaina = GetEventNpc(NPC_JAINA))
|
||||
jaina->AI()->Talk(SAY_PHASE113);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 2500);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+15:
|
||||
|
|
@ -761,7 +761,7 @@ public:
|
|||
case EVENT_ACTION_PHASE1+16:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE115);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+17:
|
||||
|
|
@ -881,7 +881,7 @@ public:
|
|||
case EVENT_ACTION_PHASE2+5:
|
||||
if (Creature* malganis = GetEventNpc(NPC_MAL_GANIS))
|
||||
malganis->AI()->Talk(SAY_PHASE207);
|
||||
|
||||
|
||||
ScheduleNextEvent(currentEvent, 15000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE2+6:
|
||||
|
|
@ -908,7 +908,7 @@ public:
|
|||
case EVENT_ACTION_PHASE2+8:
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_START_WAVES, 1);
|
||||
|
||||
|
||||
SummonNextWave();
|
||||
actionEvents.PopEvent();
|
||||
break;
|
||||
|
|
@ -1130,7 +1130,7 @@ public:
|
|||
Talk(SAY_PHASE503);
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
ScheduleNextEvent(currentEvent, 5000);
|
||||
ScheduleNextEvent(currentEvent, 5000);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE5+2:
|
||||
me->SetFacingTo(5.28f);
|
||||
|
|
@ -1140,7 +1140,7 @@ public:
|
|||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED);
|
||||
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_EXIT_GATE)))
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
|
||||
if (!me->GetMap()->GetPlayers().isEmpty())
|
||||
if (Player* player = me->GetMap()->GetPlayers().getFirst()->GetSource())
|
||||
player->SummonGameObject(DUNGEON_MODE(GO_MALGANIS_CHEST_N, GO_MALGANIS_CHEST_H), 2288.35f, 1498.73f, 128.414f, -0.994837f, 0, 0, 0, 0, 0);
|
||||
|
|
@ -1174,18 +1174,18 @@ public:
|
|||
case EVENT_COMBAT_HEALTH_CHECK:
|
||||
if (HealthBelowPct(40))
|
||||
me->CastSpell(me, SPELL_ARTHAS_HOLY_LIGHT, false);
|
||||
|
||||
|
||||
combatEvents.RepeatEvent(1000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
Creature* npc_arthas::npc_arthasAI::GetEventNpc(uint32 entry)
|
||||
{
|
||||
Creature* npc_arthas::npc_arthasAI::GetEventNpc(uint32 entry)
|
||||
{
|
||||
for (SummonList::iterator i = summons.begin(); i != summons.end();)
|
||||
{
|
||||
Creature* summon = ObjectAccessor::GetCreature(*me, *i);
|
||||
|
|
@ -1217,7 +1217,7 @@ void npc_arthas::npc_arthasAI::SummonNextWave()
|
|||
uint32 tableId = waveGroupId;
|
||||
if (tableId > 4)
|
||||
tableId--;
|
||||
|
||||
|
||||
for (uint32 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i)
|
||||
me->SummonCreature(/*entry*/(uint32)WavesLocations[tableId][i][0], WavesLocations[tableId][i][1], WavesLocations[tableId][i][2], WavesLocations[tableId][i][3], WavesLocations[tableId][i][4]);
|
||||
}
|
||||
|
|
@ -1248,7 +1248,7 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
|
|||
case COS_PROGRESS_KILLED_SALRAMM:
|
||||
SetNextWaypoint(12, false);
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
|
||||
|
||||
if (data == COS_PROGRESS_FINISHED_CITY_INTRO)
|
||||
{
|
||||
eventInRun = true;
|
||||
|
|
@ -1400,7 +1400,7 @@ class npc_cos_chromie_start : public CreatureScript
|
|||
public:
|
||||
npc_cos_chromie_start() : CreatureScript("npc_cos_chromie_start") { }
|
||||
|
||||
bool OnQuestAccept(Player* , Creature* creature, const Quest* pQuest)
|
||||
bool OnQuestAccept(Player* , Creature* creature, const Quest* pQuest) override
|
||||
{
|
||||
if (pQuest->GetQuestId() == QUEST_DISPELLING_ILLUSIONS)
|
||||
if (InstanceScript* pInstance = creature->GetInstanceScript())
|
||||
|
|
@ -1409,7 +1409,7 @@ class npc_cos_chromie_start : public CreatureScript
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
// final menu id, show crates if hidden and add item if missing
|
||||
if (player->PlayerTalkClass->GetGossipMenu().GetMenuId() == 9595)
|
||||
|
|
@ -1447,7 +1447,7 @@ class npc_cos_chromie_middle : public CreatureScript
|
|||
public:
|
||||
npc_cos_chromie_middle() : CreatureScript("npc_cos_chromie_middle") { }
|
||||
|
||||
bool OnQuestAccept(Player* , Creature* creature, const Quest* pQuest)
|
||||
bool OnQuestAccept(Player* , Creature* creature, const Quest* pQuest) override
|
||||
{
|
||||
if (pQuest->GetQuestId() == QUEST_A_ROYAL_ESCORT)
|
||||
if (InstanceScript* pInstance = creature->GetInstanceScript())
|
||||
|
|
@ -1457,7 +1457,7 @@ class npc_cos_chromie_middle : public CreatureScript
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
if (!creature->GetInstanceScript() || creature->GetInstanceScript()->GetData(DATA_ARTHAS_EVENT) != COS_PROGRESS_CRATES_FOUND)
|
||||
return true;
|
||||
|
|
@ -1469,7 +1469,7 @@ class npc_cos_chromie_middle : public CreatureScript
|
|||
return false;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
{
|
||||
|
|
@ -1479,7 +1479,7 @@ class npc_cos_chromie_middle : public CreatureScript
|
|||
|
||||
if (!creature->GetInstanceScript() || creature->GetInstanceScript()->GetData(DATA_ARTHAS_EVENT) != COS_PROGRESS_CRATES_FOUND)
|
||||
return true;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
@ -1504,7 +1504,7 @@ class npc_cos_stratholme_citizien : public CreatureScript
|
|||
InstanceScript* pInstance;
|
||||
uint32 allowTimer;
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
locked = false;
|
||||
|
|
@ -1598,7 +1598,7 @@ class npc_cos_stratholme_citizien : public CreatureScript
|
|||
{
|
||||
return new npc_cos_stratholme_citizienAI(creature);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
void AddSC_culling_of_stratholme()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ enum Events
|
|||
EVENT_SET_FACING = 9,
|
||||
EVENT_KILL_ARMORER = 10,
|
||||
EVENT_TALK_KILL_ARMORER = 11,
|
||||
|
||||
|
||||
EVENT_DRESSING_KNEEL = 20,
|
||||
EVENT_DRESSING_ARMOR = 21,
|
||||
EVENT_DRESSING_STAND = 22,
|
||||
|
|
@ -182,12 +182,12 @@ class npc_thrall_old_hillsbrad : public CreatureScript
|
|||
public:
|
||||
npc_thrall_old_hillsbrad() : CreatureScript("npc_thrall_old_hillsbrad") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_thrall_old_hillsbradAI>(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
if (!instance)
|
||||
|
|
@ -206,15 +206,15 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
GossipMenuItemData const* gossipMenuItemData = player->PlayerTalkClass->GetGossipMenu().GetItemData(0);
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
if (!instance || (gossipMenuItemData && gossipMenuItemData->GossipActionMenuId != 0))
|
||||
return false;
|
||||
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
creature->AI()->DoAction(instance->GetData(DATA_ESCORT_PROGRESS));
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
|
@ -228,7 +228,7 @@ public:
|
|||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void DoAction(int32 param)
|
||||
void DoAction(int32 param) override
|
||||
{
|
||||
switch (param)
|
||||
{
|
||||
|
|
@ -267,7 +267,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void WaypointStart(uint32 waypointId)
|
||||
void WaypointStart(uint32 waypointId) override
|
||||
{
|
||||
switch (waypointId)
|
||||
{
|
||||
|
|
@ -277,7 +277,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 waypointId)
|
||||
void WaypointReached(uint32 waypointId) override
|
||||
{
|
||||
switch (waypointId)
|
||||
{
|
||||
|
|
@ -420,7 +420,7 @@ public:
|
|||
me->SetSpeed(MOVE_RUN, SPEED_RUNNING);
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 point)
|
||||
void MovementInform(uint32 type, uint32 point) override
|
||||
{
|
||||
npc_escortAI::MovementInform(type, point);
|
||||
if (type == POINT_MOTION_TYPE && point == 0xFFFFFF /*POINT_LAST_POINT*/)
|
||||
|
|
@ -432,7 +432,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*)
|
||||
void EnterCombat(Unit*) override
|
||||
{
|
||||
combatEvents.Reset();
|
||||
combatEvents.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
|
||||
|
|
@ -449,7 +449,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
_mounted = false;
|
||||
events.Reset();
|
||||
|
|
@ -458,28 +458,29 @@ public:
|
|||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
|
||||
instance->SetData(DATA_THRALL_REPOSITION, 1);
|
||||
|
||||
|
||||
uint32 data = instance->GetData(DATA_ESCORT_PROGRESS);
|
||||
if (data >= ENCOUNTER_PROGRESS_THRALL_ARMORED)
|
||||
ReorderInstance(data);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit*)
|
||||
void KilledUnit(Unit*) override
|
||||
{
|
||||
Talk(SAY_RANDOM_KILL);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon)
|
||||
void JustSummoned(Creature* summon) override
|
||||
{
|
||||
if (summon->GetEntry() == NPC_INFINITE_SLAYER || summon->GetEntry() == NPC_INFINITE_SABOTEUR || summon->GetEntry() == NPC_INFINITE_DEFILER)
|
||||
summon->GetMotionMaster()->MovePoint(10, 2634.25f, 672.01f, 54.445f);
|
||||
|
||||
summons.Summon(summon);
|
||||
}
|
||||
void SummonedCreatureDespawn(Creature* summon) { summons.Despawn(summon); }
|
||||
void SummonedCreatureDies(Creature* summon, Unit*) { summons.Despawn(summon); }
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
void SummonedCreatureDespawn(Creature* summon) override { summons.Despawn(summon); }
|
||||
void SummonedCreatureDies(Creature* summon, Unit*) override { summons.Despawn(summon); }
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
{
|
||||
if (killer == me)
|
||||
return;
|
||||
|
|
@ -494,7 +495,7 @@ public:
|
|||
me->SetRespawnTime(DAY);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
|
||||
|
|
@ -760,7 +761,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateEscortAI(uint32 diff)
|
||||
void UpdateEscortAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
@ -794,7 +795,7 @@ public:
|
|||
Start(true, true);
|
||||
SetEscortPaused(true);
|
||||
SetDespawnAtEnd(false);
|
||||
|
||||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP|UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
||||
if (data < ENCOUNTER_PROGRESS_THRALL_ARMORED)
|
||||
|
|
@ -826,7 +827,7 @@ public:
|
|||
SetNextWaypoint(61, false);
|
||||
break;
|
||||
case ENCOUNTER_PROGRESS_TARETHA_MEET:
|
||||
SetNextWaypoint(95, false);
|
||||
SetNextWaypoint(95, false);
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TARETHA_GUID)))
|
||||
Taretha->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
|
|
@ -848,12 +849,12 @@ class npc_taretha : public CreatureScript
|
|||
public:
|
||||
npc_taretha() : CreatureScript("npc_taretha") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_tarethaAI>(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, Creature* /*creature*/)
|
||||
bool OnGossipHello(Player* /*player*/, Creature* /*creature*/) override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -867,14 +868,14 @@ public:
|
|||
|
||||
InstanceScript* instance;
|
||||
|
||||
void DoAction(int32 /*param*/)
|
||||
void DoAction(int32 /*param*/) override
|
||||
{
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->RemoveAllAuras();
|
||||
Start(false, true);
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 waypointId)
|
||||
void WaypointReached(uint32 waypointId) override
|
||||
{
|
||||
if (waypointId == 7)
|
||||
{
|
||||
|
|
@ -888,14 +889,14 @@ public:
|
|||
me->SetVisible(false);
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
me->CastSpell(me, SPELL_SHADOW_PRISON, true);
|
||||
}
|
||||
|
||||
void AttackStart(Unit*) { }
|
||||
void MoveInLineOfSight(Unit*) { }
|
||||
void AttackStart(Unit*) override { }
|
||||
void MoveInLineOfSight(Unit*) override { }
|
||||
};
|
||||
|
||||
};
|
||||
|
|
|
|||
|
|
@ -266,22 +266,22 @@ class boss_ossirian : public CreatureScript
|
|||
|
||||
class go_ossirian_crystal : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_ossirian_crystal() : GameObjectScript("go_ossirian_crystal") { }
|
||||
public:
|
||||
go_ossirian_crystal() : GameObjectScript("go_ossirian_crystal") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
{
|
||||
InstanceScript* Instance = player->GetInstanceScript();
|
||||
if (!Instance)
|
||||
return false;
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
InstanceScript* Instance = player->GetInstanceScript();
|
||||
if (!Instance)
|
||||
return false;
|
||||
|
||||
Creature* Ossirian = player->FindNearestCreature(NPC_OSSIRIAN, 30.0f);
|
||||
if (!Ossirian || Instance->GetBossState(DATA_OSSIRIAN) != IN_PROGRESS)
|
||||
return false;
|
||||
Creature* Ossirian = player->FindNearestCreature(NPC_OSSIRIAN, 30.0f);
|
||||
if (!Ossirian || Instance->GetBossState(DATA_OSSIRIAN) != IN_PROGRESS)
|
||||
return false;
|
||||
|
||||
Ossirian->AI()->DoAction(ACTION_TRIGGER_WEAKNESS);
|
||||
return true;
|
||||
}
|
||||
Ossirian->AI()->DoAction(ACTION_TRIGGER_WEAKNESS);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_ossirian()
|
||||
|
|
|
|||
|
|
@ -304,24 +304,24 @@ public:
|
|||
|
||||
class go_naga_brazier : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_naga_brazier() : GameObjectScript("go_naga_brazier") { }
|
||||
public:
|
||||
go_naga_brazier() : GameObjectScript("go_naga_brazier") { }
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
if (Creature* creature = GetClosestCreatureWithEntry(go, NPC_MUGLASH, INTERACTION_DISTANCE*2))
|
||||
{
|
||||
if (Creature* creature = GetClosestCreatureWithEntry(go, NPC_MUGLASH, INTERACTION_DISTANCE*2))
|
||||
if (npc_muglash::npc_muglashAI* pEscortAI = CAST_AI(npc_muglash::npc_muglashAI, creature->AI()))
|
||||
{
|
||||
if (npc_muglash::npc_muglashAI* pEscortAI = CAST_AI(npc_muglash::npc_muglashAI, creature->AI()))
|
||||
{
|
||||
creature->AI()->Talk(SAY_MUG_BRAZIER_WAIT);
|
||||
creature->AI()->Talk(SAY_MUG_BRAZIER_WAIT);
|
||||
|
||||
pEscortAI->_isBrazierExtinguished = true;
|
||||
return false;
|
||||
}
|
||||
pEscortAI->_isBrazierExtinguished = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_ashenvale()
|
||||
|
|
|
|||
|
|
@ -131,56 +131,56 @@ class npc_loramus_thalipedes : public CreatureScript
|
|||
public:
|
||||
npc_loramus_thalipedes() : CreatureScript("npc_loramus_thalipedes") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AreaExploredOrEventHappens(2744);
|
||||
break;
|
||||
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21);
|
||||
player->SEND_GOSSIP_MENU(1813, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21);
|
||||
SendGossipMenuFor(player, 1813, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+21:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
|
||||
player->SEND_GOSSIP_MENU(1814, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
|
||||
SendGossipMenuFor(player, 1814, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+22:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 23);
|
||||
player->SEND_GOSSIP_MENU(1815, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 23);
|
||||
SendGossipMenuFor(player, 1815, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+23:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 24);
|
||||
player->SEND_GOSSIP_MENU(1816, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 24);
|
||||
SendGossipMenuFor(player, 1816, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+24:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 25);
|
||||
player->SEND_GOSSIP_MENU(1817, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SELECT_LT5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 25);
|
||||
SendGossipMenuFor(player, 1817, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+25:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AreaExploredOrEventHappens(3141);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(2744) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_LT1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_LT1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
if (player->GetQuestStatus(3141) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_LT2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_LT2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -282,7 +282,7 @@ public:
|
|||
{
|
||||
npc_rizzle_sprysprocketAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
SpellEscapeTimer = 1300;
|
||||
TeleportTimer = 3500;
|
||||
|
|
@ -299,9 +299,9 @@ public:
|
|||
Reached = false;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void AttackStart(Unit* who)
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!who || PlayerGUID)
|
||||
return;
|
||||
|
|
@ -317,15 +317,15 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/)
|
||||
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
me->CastSpell(player, SPELL_GIVE_SOUTHFURY_MOONSTONE, true);
|
||||
MustDieTimer = 3000;
|
||||
MustDie = true;
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id)
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
{
|
||||
if (type != POINT_MOTION_TYPE)
|
||||
return;
|
||||
|
|
@ -340,7 +340,7 @@ public:
|
|||
ContinueWP = true;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (MustDie)
|
||||
{
|
||||
|
|
@ -438,16 +438,18 @@ public:
|
|||
bool Reached;
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) != QUEST_STATUS_INCOMPLETE)
|
||||
return true;
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_GET_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(10811, creature->GetGUID());
|
||||
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_GET_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 10811, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_rizzle_sprysprocketAI(creature);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ public:
|
|||
|
||||
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
me->setFaction(FACTION_HOSTILE);
|
||||
me->Attack(player, true);
|
||||
}
|
||||
|
|
@ -551,7 +551,7 @@ class go_ravager_cage : public GameObjectScript
|
|||
public:
|
||||
go_ravager_cage() : GameObjectScript("go_ravager_cage") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(QUEST_STRENGTH_ONE) == QUEST_STATUS_INCOMPLETE)
|
||||
|
|
@ -703,23 +703,23 @@ class npc_stillpine_capitive : public CreatureScript
|
|||
|
||||
class go_bristlelimb_cage : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_bristlelimb_cage() : GameObjectScript("go_bristlelimb_cage") { }
|
||||
public:
|
||||
go_bristlelimb_cage() : GameObjectScript("go_bristlelimb_cage") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
if (player->GetQuestStatus(QUEST_THE_PROPHECY_OF_AKIDA) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
if (player->GetQuestStatus(QUEST_THE_PROPHECY_OF_AKIDA) == QUEST_STATUS_INCOMPLETE)
|
||||
if (Creature* capitive = go->FindNearestCreature(NPC_STILLPINE_CAPITIVE, 5.0f, true))
|
||||
{
|
||||
if (Creature* capitive = go->FindNearestCreature(NPC_STILLPINE_CAPITIVE, 5.0f, true))
|
||||
{
|
||||
go->ResetDoorOrButton();
|
||||
CAST_AI(npc_stillpine_capitive::npc_stillpine_capitiveAI, capitive->AI())->StartMoving(player);
|
||||
return false;
|
||||
}
|
||||
go->ResetDoorOrButton();
|
||||
CAST_AI(npc_stillpine_capitive::npc_stillpine_capitiveAI, capitive->AI())->StartMoving(player);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_azuremyst_isle()
|
||||
|
|
|
|||
|
|
@ -439,10 +439,9 @@ public:
|
|||
{
|
||||
npc_threshwackonatorAI(Creature* creature) : FollowerAI(creature) { }
|
||||
|
||||
void Reset() { }
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
void Reset() override { }
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
FollowerAI::MoveInLineOfSight(who);
|
||||
|
||||
|
|
@ -467,12 +466,12 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (npc_threshwackonatorAI* pThreshAI = CAST_AI(npc_threshwackonator::npc_threshwackonatorAI, creature->AI()))
|
||||
{
|
||||
|
|
@ -484,16 +483,16 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_GYROMAST_REV) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_INSERT_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_INSERT_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_threshwackonatorAI(creature);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ class npc_cork_gizelton : public CreatureScript
|
|||
{
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, summons[i]))
|
||||
summon->DespawnOrUnsummon();
|
||||
|
||||
|
||||
summons[i] = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -198,7 +198,7 @@ class npc_cork_gizelton : public CreatureScript
|
|||
summons[1] = cr->GetGUID();
|
||||
if ((cr = me->SummonCreature(NPC_CARAVAN_KODO, *me)))
|
||||
summons[2] = cr->GetGUID();
|
||||
|
||||
|
||||
SummonsFollow();
|
||||
}
|
||||
|
||||
|
|
@ -442,12 +442,12 @@ public:
|
|||
{
|
||||
npc_aged_dying_ancient_kodoAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
void JustRespawned()
|
||||
void JustRespawned() override
|
||||
{
|
||||
me->UpdateEntry(RAND(NPC_AGED_KODO, NPC_DYING_KODO, NPC_ANCIENT_KODO), NULL, false);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (who->GetEntry() == NPC_SMEED && me->IsWithinDistInMap(who, 10.0f) && !me->HasAura(SPELL_KODO_KOMBO_GOSSIP))
|
||||
{
|
||||
|
|
@ -460,7 +460,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void SpellHit(Unit* caster, SpellInfo const* spell)
|
||||
void SpellHit(Unit* caster, SpellInfo const* spell) override
|
||||
{
|
||||
if (spell->Id == SPELL_KODO_KOMBO_ITEM)
|
||||
{
|
||||
|
|
@ -483,7 +483,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->HasAura(SPELL_KODO_KOMBO_PLAYER_BUFF) && creature->HasAura(SPELL_KODO_KOMBO_DESPAWN_BUFF))
|
||||
{
|
||||
|
|
@ -491,11 +491,11 @@ public:
|
|||
player->RemoveAurasDueToSpell(SPELL_KODO_KOMBO_PLAYER_BUFF);
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_aged_dying_ancient_kodoAI(creature);
|
||||
}
|
||||
|
|
@ -592,7 +592,7 @@ class go_demon_portal : public GameObjectScript
|
|||
public:
|
||||
go_demon_portal() : GameObjectScript("go_demon_portal") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_PORTAL_OF_THE_LEGION) == QUEST_STATUS_INCOMPLETE && !go->FindNearestCreature(NPC_DEMON_GUARDIAN, 5.0f, true))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -43,26 +43,26 @@ class npc_lady_jaina_proudmoore : public CreatureScript
|
|||
public:
|
||||
npc_lady_jaina_proudmoore() : CreatureScript("npc_lady_jaina_proudmoore") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_SENDER_INFO)
|
||||
{
|
||||
player->SEND_GOSSIP_MENU(7012, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7012, creature->GetGUID());
|
||||
player->CastSpell(player, SPELL_JAINAS_AUTOGRAPH, false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_JAINAS_AUTOGRAPH) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_JAINA, GOSSIP_SENDER_MAIN, GOSSIP_SENDER_INFO);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_JAINA, GOSSIP_SENDER_MAIN, GOSSIP_SENDER_INFO);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -83,27 +83,27 @@ class npc_nat_pagle : public CreatureScript
|
|||
public:
|
||||
npc_nat_pagle() : CreatureScript("npc_nat_pagle") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor() && player->GetQuestRewardStatus(QUEST_NATS_MEASURING_TAPE))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
player->SEND_GOSSIP_MENU(7640, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
SendGossipMenuFor(player, 7640, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(7638, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7638, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,18 +42,18 @@ class npcs_riverbreeze_and_silversky : public CreatureScript
|
|||
public:
|
||||
npcs_riverbreeze_and_silversky() : CreatureScript("npcs_riverbreeze_and_silversky") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_CENARION_BEACON, false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -64,24 +64,24 @@ public:
|
|||
{
|
||||
if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_A))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->SEND_GOSSIP_MENU(2848, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, 2848, creature->GetGUID());
|
||||
} else if (player->GetTeamId() == TEAM_HORDE)
|
||||
player->SEND_GOSSIP_MENU(2845, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2845, creature->GetGUID());
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(2844, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2844, creature->GetGUID());
|
||||
}
|
||||
|
||||
if (creatureId == NPC_MAYBESS_RIVERBREEZE)
|
||||
{
|
||||
if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_H))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->SEND_GOSSIP_MENU(2849, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, 2849, creature->GetGUID());
|
||||
} else if (player->GetTeamId() == TEAM_ALLIANCE)
|
||||
player->SEND_GOSSIP_MENU(2843, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2843, creature->GetGUID());
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(2842, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2842, creature->GetGUID());
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -30,28 +30,28 @@ class npc_gregan_brewspewer : public CreatureScript
|
|||
public:
|
||||
npc_gregan_brewspewer() : CreatureScript("npc_gregan_brewspewer") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
player->SEND_GOSSIP_MENU(2434, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
SendGossipMenuFor(player, 2434, creature->GetGUID());
|
||||
}
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor() && player->GetQuestStatus(3909) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(2433, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 2433, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,45 +50,45 @@ class npc_bunthen_plainswind : public CreatureScript
|
|||
public:
|
||||
npc_bunthen_plainswind() : CreatureScript("npc_bunthen_plainswind") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (player->getClass() == CLASS_DRUID && player->GetTeamId() == TEAM_HORDE)
|
||||
player->ActivateTaxiPathTo(TAXI_PATH_ID_HORDE);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->SEND_GOSSIP_MENU(5373, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 5373, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->SEND_GOSSIP_MENU(5376, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 5376, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->getClass() != CLASS_DRUID)
|
||||
player->SEND_GOSSIP_MENU(4916, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4916, creature->GetGUID());
|
||||
else if (player->GetTeamId() != TEAM_HORDE)
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_SEA_LION_ALLY) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
|
||||
player->SEND_GOSSIP_MENU(4917, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4917, creature->GetGUID());
|
||||
}
|
||||
else if (player->getClass() == CLASS_DRUID && player->GetTeamId() == TEAM_HORDE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_THUNDER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_THUNDER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
if (player->GetQuestStatus(QUEST_SEA_LION_HORDE) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
|
||||
player->SEND_GOSSIP_MENU(4918, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4918, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -109,25 +109,25 @@ class npc_great_bear_spirit : public CreatureScript
|
|||
public:
|
||||
npc_great_bear_spirit() : CreatureScript("npc_great_bear_spirit") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(4721, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BEAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 4721, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(4733, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BEAR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 4733, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->SEND_GOSSIP_MENU(4734, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BEAR4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, 4734, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->SEND_GOSSIP_MENU(4735, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4735, creature->GetGUID());
|
||||
if (player->GetQuestStatus(5929) == QUEST_STATUS_INCOMPLETE)
|
||||
player->AreaExploredOrEventHappens(5929);
|
||||
if (player->GetQuestStatus(5930) == QUEST_STATUS_INCOMPLETE)
|
||||
|
|
@ -137,16 +137,16 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
//ally or horde quest
|
||||
if (player->GetQuestStatus(5929) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(5930) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(4719, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BEAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, 4719, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(4718, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4718, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -165,45 +165,45 @@ class npc_silva_filnaveth : public CreatureScript
|
|||
public:
|
||||
npc_silva_filnaveth() : CreatureScript("npc_silva_filnaveth") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (player->getClass() == CLASS_DRUID && player->GetTeamId() == TEAM_ALLIANCE)
|
||||
player->ActivateTaxiPathTo(TAXI_PATH_ID_ALLY);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->SEND_GOSSIP_MENU(5374, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 5374, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->SEND_GOSSIP_MENU(5375, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 5375, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->getClass() != CLASS_DRUID)
|
||||
player->SEND_GOSSIP_MENU(4913, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4913, creature->GetGUID());
|
||||
else if (player->GetTeamId() != TEAM_ALLIANCE)
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_SEA_LION_HORDE) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
|
||||
player->SEND_GOSSIP_MENU(4915, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4915, creature->GetGUID());
|
||||
}
|
||||
else if (player->getClass() == CLASS_DRUID && player->GetTeamId() == TEAM_ALLIANCE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RUTHERAN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_RUTHERAN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
if (player->GetQuestStatus(QUEST_SEA_LION_ALLY) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
|
||||
player->SEND_GOSSIP_MENU(4914, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 4914, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,56 +143,56 @@ class npc_thrall_warchief : public CreatureScript
|
|||
public:
|
||||
npc_thrall_warchief() : CreatureScript("npc_thrall_warchief") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_STW1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(5733, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_STW1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, 5733, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_STW2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
player->SEND_GOSSIP_MENU(5734, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_STW2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
SendGossipMenuFor(player, 5734, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_STW3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
player->SEND_GOSSIP_MENU(5735, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_STW3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
SendGossipMenuFor(player, 5735, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_STW4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(5736, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_STW4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, 5736, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_STW5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
|
||||
player->SEND_GOSSIP_MENU(5737, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_STW5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
|
||||
SendGossipMenuFor(player, 5737, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+6:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_STW6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
|
||||
player->SEND_GOSSIP_MENU(5738, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_STW6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
|
||||
SendGossipMenuFor(player, 5738, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+7:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AreaExploredOrEventHappens(QUEST_6566);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_6566) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HTW, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HTW, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_thrall_warchiefAI(creature);
|
||||
}
|
||||
|
|
@ -204,15 +204,15 @@ public:
|
|||
uint32 ChainLightningTimer;
|
||||
uint32 ShockTimer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
ChainLightningTimer = 2000;
|
||||
ShockTimer = 8000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
@ -232,7 +232,6 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_orgrimmar()
|
||||
|
|
|
|||
|
|
@ -57,63 +57,63 @@ class npcs_rutgar_and_frankal : public CreatureScript
|
|||
public:
|
||||
npcs_rutgar_and_frankal() : CreatureScript("npcs_rutgar_and_frankal") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(7755, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 7755, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(7756, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 7756, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->SEND_GOSSIP_MENU(7757, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, 7757, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
player->SEND_GOSSIP_MENU(7758, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
SendGossipMenuFor(player, 7758, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
player->SEND_GOSSIP_MENU(7759, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, 7759, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
player->SEND_GOSSIP_MENU(7760, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
SendGossipMenuFor(player, 7760, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 6:
|
||||
player->SEND_GOSSIP_MENU(7761, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7761, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_RUTGAR, 0);
|
||||
break;
|
||||
|
||||
case GOSSIP_ACTION_INFO_DEF + 9:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM11, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
player->SEND_GOSSIP_MENU(7762, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM11, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
SendGossipMenuFor(player, 7762, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 10:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM12, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
player->SEND_GOSSIP_MENU(7763, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM12, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
SendGossipMenuFor(player, 7763, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 11:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM13, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
player->SEND_GOSSIP_MENU(7764, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM13, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
SendGossipMenuFor(player, 7764, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 12:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM14, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
player->SEND_GOSSIP_MENU(7765, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM14, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
SendGossipMenuFor(player, 7765, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 13:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM15, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
player->SEND_GOSSIP_MENU(7766, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM15, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
SendGossipMenuFor(player, 7766, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 14:
|
||||
player->SEND_GOSSIP_MENU(7767, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7767, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_FRANKAL, 0);
|
||||
break;
|
||||
|
|
@ -121,7 +121,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -129,14 +129,14 @@ public:
|
|||
if (player->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
|
||||
creature->GetEntry() == 15170 &&
|
||||
!player->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
if (player->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
|
||||
creature->GetEntry() == 15171 &&
|
||||
player->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
|
||||
|
||||
player->SEND_GOSSIP_MENU(7754, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7754, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1299,7 +1299,7 @@ class go_wind_stone : public GameObjectScript
|
|||
}
|
||||
|
||||
public:
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
uint8 rank = GetPlayerRank(player);
|
||||
|
||||
|
|
@ -1309,7 +1309,7 @@ class go_wind_stone : public GameObjectScript
|
|||
case GOSSIPID_LESSER_WS:
|
||||
{
|
||||
if (rank >= 1) // 1 or 2 or 3
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
else
|
||||
{
|
||||
go->CastSpell(player, SPELL_PUNISHMENT);
|
||||
|
|
@ -1318,19 +1318,19 @@ class go_wind_stone : public GameObjectScript
|
|||
|
||||
uint8 item = GetItems(player, TEMPLAR);
|
||||
if (item & FIRE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
if (item & WATER)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
if (item & EARTH)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
if (item & AIR)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
break;
|
||||
}
|
||||
case GOSSIPID_WS:
|
||||
{
|
||||
if (rank >= 2) // 2 or 3
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DUKE_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
else
|
||||
{
|
||||
go->CastSpell(player, SPELL_PUNISHMENT);
|
||||
|
|
@ -1339,19 +1339,19 @@ class go_wind_stone : public GameObjectScript
|
|||
|
||||
uint8 item = GetItems(player, DUKE);
|
||||
if (item & FIRE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DUKE_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
if (item & WATER)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DUKE_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
if (item & EARTH)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DUKE_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
if (item & AIR)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DUKE_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
break;
|
||||
}
|
||||
case GOSSIPID_GREATER_WS:
|
||||
{
|
||||
if (rank == 3) // 3
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ROYAL_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
else
|
||||
{
|
||||
go->CastSpell(player, SPELL_PUNISHMENT);
|
||||
|
|
@ -1360,26 +1360,26 @@ class go_wind_stone : public GameObjectScript
|
|||
|
||||
uint8 item = GetItems(player, ROYAL);
|
||||
if (item & FIRE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ROYAL_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
if (item & WATER)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ROYAL_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
if (item & EARTH)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ROYAL_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
if (item & AIR)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ROYAL_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(gossipId, go), go->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(gossipId, go), go->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
player->PlayerTalkClass->SendCloseGossip();
|
||||
|
||||
switch (action)
|
||||
|
|
|
|||
|
|
@ -37,40 +37,40 @@ class npc_braug_dimspirit : public CreatureScript
|
|||
public:
|
||||
npc_braug_dimspirit() : CreatureScript("npc_braug_dimspirit") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, 6766, false);
|
||||
|
||||
}
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+2)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AreaExploredOrEventHappens(6627);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(6627) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HBD1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HBD2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HBD3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HBD4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HBD5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HBD1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HBD2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HBD3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HBD4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HBD5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(5820, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 5820, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(5819, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 5819, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -279,7 +279,7 @@ class npc_steward_of_time : public CreatureScript
|
|||
public:
|
||||
npc_steward_of_time() : CreatureScript("npc_steward_of_time") { }
|
||||
|
||||
bool OnQuestAccept(Player* player, Creature* /*creature*/, Quest const* quest)
|
||||
bool OnQuestAccept(Player* player, Creature* /*creature*/, Quest const* quest) override
|
||||
{
|
||||
if (quest->GetQuestId() == 10279) //Quest: To The Master's Lair
|
||||
player->CastSpell(player, 34891, true); //(Flight through Caverns)
|
||||
|
|
@ -287,27 +287,27 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
player->CastSpell(player, 34891, true); //(Flight through Caverns)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(10279) == QUEST_STATUS_INCOMPLETE || player->GetQuestRewardStatus(10279))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_FLIGHT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(9978, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_FLIGHT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 9978, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(9977, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9977, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -330,48 +330,48 @@ class npc_stone_watcher_of_norgannon : public CreatureScript
|
|||
public:
|
||||
npc_stone_watcher_of_norgannon() : CreatureScript("npc_stone_watcher_of_norgannon") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->SEND_GOSSIP_MENU(1675, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, 1675, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(1676, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, 1676, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
player->SEND_GOSSIP_MENU(1677, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
SendGossipMenuFor(player, 1677, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
player->SEND_GOSSIP_MENU(1678, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
SendGossipMenuFor(player, 1678, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
player->SEND_GOSSIP_MENU(1679, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
|
||||
SendGossipMenuFor(player, 1679, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AreaExploredOrEventHappens(2954);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(2954) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(1674, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 1674, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,23 +43,23 @@ class npc_beaten_corpse : public CreatureScript
|
|||
public:
|
||||
npc_beaten_corpse() : CreatureScript("npc_beaten_corpse") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF +1)
|
||||
{
|
||||
player->SEND_GOSSIP_MENU(3558, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 3558, creature->GetGUID());
|
||||
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_LOST_IN_BATTLE) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_LOST_IN_BATTLE) == QUEST_STATUS_COMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CORPSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_CORPSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(3557, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 3557, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -282,30 +282,30 @@ class npc_plucky : public CreatureScript
|
|||
public:
|
||||
npc_plucky() : CreatureScript("npc_plucky") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CompleteQuest(QUEST_SCOOP);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_SCOOP) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_P, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_P, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(738, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 738, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pluckyAI(creature);
|
||||
}
|
||||
|
|
@ -317,7 +317,7 @@ public:
|
|||
uint32 NormFaction;
|
||||
uint32 ResetTimer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
ResetTimer = 120000;
|
||||
|
||||
|
|
@ -330,7 +330,7 @@ public:
|
|||
DoCast(me, SPELL_PLUCKY_CHICKEN, false);
|
||||
}
|
||||
|
||||
void ReceiveEmote(Player* player, uint32 TextEmote)
|
||||
void ReceiveEmote(Player* player, uint32 TextEmote) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_SCOOP) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
|
|
@ -356,7 +356,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 Diff)
|
||||
void UpdateAI(uint32 Diff) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
{
|
||||
|
|
@ -392,7 +392,7 @@ class go_panther_cage : public GameObjectScript
|
|||
public:
|
||||
go_panther_cage() : GameObjectScript("go_panther_cage") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(5151) == QUEST_STATUS_INCOMPLETE)
|
||||
|
|
|
|||
|
|
@ -36,31 +36,31 @@ class npc_cairne_bloodhoof : public CreatureScript
|
|||
public:
|
||||
npc_cairne_bloodhoof() : CreatureScript("npc_cairne_bloodhoof") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_SENDER_INFO)
|
||||
{
|
||||
player->CastSpell(player, 23123, false);
|
||||
player->SEND_GOSSIP_MENU(7014, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7014, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(925) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HCB, GOSSIP_SENDER_MAIN, GOSSIP_SENDER_INFO);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HCB, GOSSIP_SENDER_MAIN, GOSSIP_SENDER_INFO);
|
||||
|
||||
player->SEND_GOSSIP_MENU(7013, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7013, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_cairne_bloodhoofAI(creature);
|
||||
}
|
||||
|
|
@ -75,7 +75,7 @@ public:
|
|||
uint32 ThunderclapTimer;
|
||||
uint32 UppercutTimer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
BerserkerChargeTimer = 30000;
|
||||
CleaveTimer = 5000;
|
||||
|
|
@ -84,9 +84,9 @@ public:
|
|||
UppercutTimer = 10000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
@ -125,7 +125,6 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_thunder_bluff()
|
||||
|
|
|
|||
|
|
@ -211,24 +211,24 @@ class npc_rivern_frostwind : public CreatureScript
|
|||
public:
|
||||
npc_rivern_frostwind() : CreatureScript("npc_rivern_frostwind") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor() && player->GetReputationRank(589) == REP_EXALTED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -762,7 +762,8 @@ class go_elune_fire : public GameObjectScript
|
|||
{
|
||||
public:
|
||||
go_elune_fire() : GameObjectScript("go_elune_fire") { }
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
// Check if we are using the torches or the altar
|
||||
bool isAltar = false;
|
||||
|
|
@ -775,6 +776,7 @@ public:
|
|||
if (npc_ranshalla::npc_ranshallaAI* escortAI = dynamic_cast<npc_ranshalla::npc_ranshallaAI*>(ranshalla->AI()))
|
||||
escortAI->DoContinueEscort(isAltar);
|
||||
}
|
||||
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ public:
|
|||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_PRINCE_TALDARAM_EVENT, IN_PROGRESS);
|
||||
|
||||
|
||||
Talk(SAY_AGGRO);
|
||||
ScheduleEvents();
|
||||
|
||||
|
|
@ -253,7 +253,7 @@ public:
|
|||
|
||||
if (vanishTarget && victim->GetGUID() == vanishTarget)
|
||||
ScheduleEvents();
|
||||
|
||||
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
};
|
||||
|
|
@ -331,17 +331,17 @@ class go_prince_taldaram_sphere : public GameObjectScript
|
|||
public:
|
||||
go_prince_taldaram_sphere() : GameObjectScript("go_prince_taldaram_sphere") { }
|
||||
|
||||
bool OnGossipHello(Player * /*pPlayer*/, GameObject *pGO)
|
||||
bool OnGossipHello(Player * /*pPlayer*/, GameObject *go) override
|
||||
{
|
||||
InstanceScript *pInstance = pGO->GetInstanceScript();
|
||||
InstanceScript *pInstance = go->GetInstanceScript();
|
||||
if (!pInstance)
|
||||
return false;
|
||||
|
||||
Creature *pPrinceTaldaram = ObjectAccessor::GetCreature(*pGO, pInstance->GetData64(DATA_PRINCE_TALDARAM));
|
||||
Creature *pPrinceTaldaram = ObjectAccessor::GetCreature(*go, pInstance->GetData64(DATA_PRINCE_TALDARAM));
|
||||
if (pPrinceTaldaram && pPrinceTaldaram->IsAlive())
|
||||
{
|
||||
pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
pGO->SetGoState(GO_STATE_ACTIVE);
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
if (pInstance->GetData(DATA_SPHERE_EVENT) == NOT_STARTED)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -18,12 +18,12 @@ class npc_announcer_toc5 : public CreatureScript
|
|||
public:
|
||||
npc_announcer_toc5() : CreatureScript("npc_announcer_toc5") {}
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!pCreature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
||||
InstanceScript* pInstance = pCreature->GetInstanceScript();
|
||||
InstanceScript* pInstance = creature->GetInstanceScript();
|
||||
if (!pInstance)
|
||||
return true;
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ public:
|
|||
switch (pInstance->GetData(DATA_INSTANCE_PROGRESS))
|
||||
{
|
||||
case INSTANCE_PROGRESS_INITIAL:
|
||||
if (!pPlayer->GetVehicle())
|
||||
if (!player->GetVehicle())
|
||||
{
|
||||
if (pInstance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_HORDE)
|
||||
gossipTextId = 15043; //Horde text
|
||||
|
|
@ -41,55 +41,55 @@ public:
|
|||
else
|
||||
{
|
||||
gossipTextId = 14688;
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT1a, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1338);
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT1b, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1341);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_START_EVENT1a, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1338);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_START_EVENT1b, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1341);
|
||||
}
|
||||
break;
|
||||
case INSTANCE_PROGRESS_CHAMPIONS_DEAD:
|
||||
gossipTextId = 14737;
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1339);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_START_EVENT2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1339);
|
||||
break;
|
||||
case INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED:
|
||||
gossipTextId = 14738;
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1340);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_START_EVENT3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1340);
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
|
||||
pPlayer->SEND_GOSSIP_MENU(gossipTextId, pCreature->GetGUID());
|
||||
SendGossipMenuFor(player, gossipTextId, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
if( !pCreature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) )
|
||||
if(!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
||||
InstanceScript* pInstance = pCreature->GetInstanceScript();
|
||||
if( !pInstance )
|
||||
InstanceScript* pInstance = creature->GetInstanceScript();
|
||||
if(!pInstance)
|
||||
return true;
|
||||
|
||||
if( uiAction == GOSSIP_ACTION_INFO_DEF+1338 || uiAction == GOSSIP_ACTION_INFO_DEF+1341 || uiAction == GOSSIP_ACTION_INFO_DEF+1339 || uiAction == GOSSIP_ACTION_INFO_DEF+1340 )
|
||||
if(uiAction == GOSSIP_ACTION_INFO_DEF+1338 || uiAction == GOSSIP_ACTION_INFO_DEF+1341 || uiAction == GOSSIP_ACTION_INFO_DEF+1339 || uiAction == GOSSIP_ACTION_INFO_DEF+1340)
|
||||
{
|
||||
pInstance->SetData(DATA_ANNOUNCER_GOSSIP_SELECT, (uiAction == GOSSIP_ACTION_INFO_DEF+1341 ? 1 : 0));
|
||||
pCreature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_announcer_toc5AI(pCreature);
|
||||
return new npc_announcer_toc5AI(creature);
|
||||
}
|
||||
|
||||
struct npc_announcer_toc5AI : public CreatureAI
|
||||
{
|
||||
npc_announcer_toc5AI(Creature *pCreature) : CreatureAI(pCreature) {}
|
||||
npc_announcer_toc5AI(Creature *creature) : CreatureAI(creature) {}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
InstanceScript* pInstance = me->GetInstanceScript();
|
||||
if( !pInstance )
|
||||
|
|
@ -99,13 +99,13 @@ public:
|
|||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // removed during black knight scene
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (damage >= me->GetHealth()) // for bk scene so strangulate doesn't kill him
|
||||
damage = me->GetHealth()-1;
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 /*id*/)
|
||||
void MovementInform(uint32 type, uint32 /*id*/) override
|
||||
{
|
||||
if (type != EFFECT_MOTION_TYPE)
|
||||
return;
|
||||
|
|
@ -118,7 +118,7 @@ public:
|
|||
Unit::Kill(me, me); // for bk scene, die after knockback
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 /*diff*/) {}
|
||||
void UpdateAI(uint32 /*diff*/) override { }
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -2436,17 +2436,17 @@ class go_toc_champions_cache : public GameObjectScript
|
|||
public:
|
||||
go_toc_champions_cache() : GameObjectScript("go_toc_champions_cache") { }
|
||||
|
||||
bool OnGossipHello(Player* plr, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (plr->IsGameMaster())
|
||||
if (player->IsGameMaster())
|
||||
return false;
|
||||
|
||||
if (!go->loot.items.size())
|
||||
return false;
|
||||
|
||||
for( std::vector<LootItem>::iterator itr = go->loot.items.begin(); itr != go->loot.items.end(); ++itr )
|
||||
for(std::vector<LootItem>::iterator itr = go->loot.items.begin(); itr != go->loot.items.end(); ++itr)
|
||||
if( ItemTemplate const *iProto = sObjectMgr->GetItemTemplate((*itr).itemid) )
|
||||
if( ((iProto->Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY) && plr->GetTeamId() != TEAM_HORDE) || ((iProto->Flags2 & ITEM_FLAGS_EXTRA_ALLIANCE_ONLY) && plr->GetTeamId() != TEAM_ALLIANCE) )
|
||||
if( ((iProto->Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY) && player->GetTeamId() != TEAM_HORDE) || ((iProto->Flags2 & ITEM_FLAGS_EXTRA_ALLIANCE_ONLY) && player->GetTeamId() != TEAM_ALLIANCE) )
|
||||
if (!((*itr).is_looted))
|
||||
{
|
||||
(*itr).count = 0;
|
||||
|
|
|
|||
|
|
@ -556,7 +556,7 @@ class npc_essence_of_twin : public CreatureScript
|
|||
public:
|
||||
npc_essence_of_twin() : CreatureScript("npc_essence_of_twin") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
switch( creature->GetEntry() )
|
||||
{
|
||||
|
|
@ -655,7 +655,7 @@ public:
|
|||
default:
|
||||
break;
|
||||
}
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -21,17 +21,17 @@ class npc_announcer_toc10 : public CreatureScript
|
|||
public:
|
||||
npc_announcer_toc10() : CreatureScript("npc_announcer_toc10") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if( !pCreature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) )
|
||||
if(!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
||||
InstanceScript* pInstance = pCreature->GetInstanceScript();
|
||||
if( !pInstance )
|
||||
InstanceScript* pInstance = creature->GetInstanceScript();
|
||||
if(!pInstance)
|
||||
return true;
|
||||
|
||||
uint32 gossipTextId = 0;
|
||||
switch( pInstance->GetData(TYPE_INSTANCE_PROGRESS) )
|
||||
switch(pInstance->GetData(TYPE_INSTANCE_PROGRESS))
|
||||
{
|
||||
case INSTANCE_PROGRESS_INITIAL:
|
||||
gossipTextId = MSG_TESTED;
|
||||
|
|
@ -46,33 +46,33 @@ public:
|
|||
gossipTextId = MSG_CRUSADERS;
|
||||
break;
|
||||
case INSTANCE_PROGRESS_DONE:
|
||||
pCreature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "We are ready!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1337);
|
||||
pPlayer->SEND_GOSSIP_MENU(gossipTextId, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "We are ready!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1337);
|
||||
SendGossipMenuFor(player, gossipTextId, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*sender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 uiAction) override
|
||||
{
|
||||
if( !pCreature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) )
|
||||
if( !creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) )
|
||||
return true;
|
||||
|
||||
InstanceScript* pInstance = pCreature->GetInstanceScript();
|
||||
InstanceScript* pInstance = creature->GetInstanceScript();
|
||||
if( !pInstance )
|
||||
return true;
|
||||
|
||||
if( uiAction == GOSSIP_ACTION_INFO_DEF+1337 )
|
||||
{
|
||||
pInstance->SetData(TYPE_ANNOUNCER_GOSSIP_SELECT, 0);
|
||||
pCreature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -42,12 +42,12 @@ public:
|
|||
|
||||
EventMap events;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
}
|
||||
|
||||
void DoAction(int32 a)
|
||||
void DoAction(int32 a) override
|
||||
{
|
||||
if (a == 1)
|
||||
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
|
|
@ -58,7 +58,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.GetEvent())
|
||||
|
|
@ -166,7 +166,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -174,22 +174,22 @@ public:
|
|||
if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
{
|
||||
if (creature->GetEntry() == NPC_JAINA_PART1)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "What would you have of me, my lady?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "What would you have of me, my lady?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
else
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "What would you have of me, Banshee Queen?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "What would you have of me, Banshee Queen?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(15207, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 15207, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch(uiAction)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (creature->AI())
|
||||
creature->AI()->DoAction(1);
|
||||
break;
|
||||
|
|
@ -198,7 +198,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI *GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fos_leaderAI(creature);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class npc_hor_leader : public CreatureScript
|
|||
public:
|
||||
npc_hor_leader() : CreatureScript("npc_hor_leader") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
|
@ -94,24 +94,24 @@ public:
|
|||
{
|
||||
QuestStatus status = player->GetQuestStatus(creature->GetEntry() == NPC_SYLVANAS_PART1 ? QUEST_DELIVRANCE_FROM_THE_PIT_H2 : QUEST_DELIVRANCE_FROM_THE_PIT_A2);
|
||||
if (status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
|
||||
player->ADD_GOSSIP_ITEM(0, "Can you remove the sword?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, 0, "Can you remove the sword?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
// once last quest is completed, she offers this shortcut of the starting event
|
||||
status = player->GetQuestStatus(creature->GetEntry() == NPC_SYLVANAS_PART1 ? QUEST_WRATH_OF_THE_LICH_KING_H2 : QUEST_WRATH_OF_THE_LICH_KING_A2);
|
||||
if (status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
|
||||
{
|
||||
if (creature->GetEntry() == NPC_SYLVANAS_PART1)
|
||||
player->ADD_GOSSIP_ITEM(0, "Dark Lady, I think I hear Arthas coming. Whatever you're going to do, do it quickly.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, 0, "Dark Lady, I think I hear Arthas coming. Whatever you're going to do, do it quickly.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
else
|
||||
player->ADD_GOSSIP_ITEM(0, "My Lady, I think I hear Arthas coming. Whatever you're going to do, do it quickly.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, 0, "My Lady, I think I hear Arthas coming. Whatever you're going to do, do it quickly.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
|
@ -126,17 +126,17 @@ public:
|
|||
|
||||
instance->SetData(DATA_BATTERED_HILT, 1);
|
||||
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (uiAction)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (creature->AI())
|
||||
creature->AI()->DoAction(ACTION_START_INTRO);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (creature->AI())
|
||||
creature->AI()->DoAction(ACTION_SKIP_INTRO);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
|
@ -146,7 +146,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_leaderAI(creature);
|
||||
}
|
||||
|
|
@ -166,7 +166,7 @@ public:
|
|||
bool first;
|
||||
bool shortver;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
shortver = false;
|
||||
events.Reset();
|
||||
|
|
@ -180,7 +180,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void DoAction(int32 actionId)
|
||||
void DoAction(int32 actionId) override
|
||||
{
|
||||
switch(actionId)
|
||||
{
|
||||
|
|
@ -193,7 +193,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.ExecuteEvent())
|
||||
|
|
@ -1452,7 +1452,7 @@ public:
|
|||
me->SetHealth(me->GetMaxHealth()*3/4);
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->IsNonMeleeSpellCast(false, true, true))
|
||||
return;
|
||||
|
||||
|
|
@ -1597,12 +1597,12 @@ class npc_hor_leader_second : public CreatureScript
|
|||
public:
|
||||
npc_hor_leader_second() : CreatureScript("npc_hor_leader_second") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 /*uiAction*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 /*uiAction*/) override
|
||||
{
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
if (InstanceScript* pInstance = creature->GetInstanceScript())
|
||||
if (!pInstance->GetData(DATA_LICH_KING))
|
||||
|
|
@ -1615,7 +1615,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_leader_secondAI(creature);
|
||||
}
|
||||
|
|
@ -1633,13 +1633,13 @@ public:
|
|||
EventMap events;
|
||||
uint8 currentStopPoint;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
currentStopPoint = 0;
|
||||
events.Reset();
|
||||
}
|
||||
|
||||
void DoAction(int32 actionId)
|
||||
void DoAction(int32 actionId) override
|
||||
{
|
||||
switch(actionId)
|
||||
{
|
||||
|
|
@ -1657,7 +1657,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32& dmg, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit*, uint32& dmg, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (dmg >= me->GetHealth())
|
||||
dmg = me->GetHealth()-1;
|
||||
|
|
@ -1674,13 +1674,13 @@ public:
|
|||
me->GetMotionMaster()->MoveSplinePath(&path);
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 /*id*/)
|
||||
void MovementInform(uint32 type, uint32 /*id*/) override
|
||||
{
|
||||
if (type == ESCORT_MOTION_TYPE && me->movespline->Finalized())
|
||||
events.ScheduleEvent(EVENT_SAY_LEADER_STOP_TEXT, 1000);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.ExecuteEvent())
|
||||
|
|
|
|||
|
|
@ -515,14 +515,14 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
_instance = me->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
_events.Reset();
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
|
||||
void DoAction(int32 action)
|
||||
void DoAction(int32 action) override
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
|
|
@ -551,7 +551,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
_events.ScheduleEvent(EVENT_INTRO_HORDE_2, 5000, 0, PHASE_INTRO_H);
|
||||
_events.ScheduleEvent(EVENT_INTRO_HORDE_3, 18500, 0, PHASE_INTRO_H);
|
||||
_instance->HandleGameObject(_instance->GetData64(GO_SAURFANG_S_DOOR), true);
|
||||
|
||||
|
||||
if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetData64(GO_SCOURGE_TRANSPORTER_SAURFANG)))
|
||||
{
|
||||
_instance->HandleGameObject(0, false, teleporter);
|
||||
|
|
@ -575,7 +575,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
_events.ScheduleEvent(EVENT_OUTRO_HORDE_1, 10000);
|
||||
_events.ScheduleEvent(EVENT_OUTRO_HORDE_2, 18000);
|
||||
_events.ScheduleEvent(EVENT_OUTRO_HORDE_3, 24000);*/
|
||||
|
||||
|
||||
}
|
||||
break;
|
||||
case ACTION_EVADE:
|
||||
|
|
@ -603,7 +603,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
|
||||
void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
|
||||
{
|
||||
if (spell->Id == SPELL_GRIP_OF_AGONY)
|
||||
{
|
||||
|
|
@ -612,7 +612,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id)
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
{
|
||||
if (type == POINT_MOTION_TYPE)
|
||||
{
|
||||
|
|
@ -650,7 +650,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
_events.Update(diff);
|
||||
switch (_events.ExecuteEvent())
|
||||
|
|
@ -733,25 +733,25 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
std::list<Creature*> _guardList;
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != IN_PROGRESS)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "We are ready to go, High Overlord. The Lich King must fall!", 631, -ACTION_START_EVENT);
|
||||
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "We are ready to go, High Overlord. The Lich King must fall!", 631, -ACTION_START_EVENT);
|
||||
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != IN_PROGRESS)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
if (action == -ACTION_START_EVENT)
|
||||
creature->AI()->DoAction(ACTION_START_EVENT);
|
||||
}
|
||||
|
|
@ -759,7 +759,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetIcecrownCitadelAI<npc_high_overlord_saurfangAI>(creature);
|
||||
}
|
||||
|
|
@ -777,14 +777,14 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
|
|||
_instance = me->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
_events.Reset();
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
|
||||
void DoAction(int32 action)
|
||||
void DoAction(int32 action) override
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
|
|
@ -862,7 +862,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
|
||||
void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
|
||||
{
|
||||
if (spell->Id == SPELL_GRIP_OF_AGONY)
|
||||
{
|
||||
|
|
@ -871,7 +871,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id)
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
{
|
||||
if (type == POINT_MOTION_TYPE)
|
||||
{
|
||||
|
|
@ -891,7 +891,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
_events.Update(diff);
|
||||
switch (_events.ExecuteEvent())
|
||||
|
|
@ -947,25 +947,25 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
|
|||
std::list<Creature*> _guardList;
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != IN_PROGRESS)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(0, "Let it begin...", 631, -ACTION_START_EVENT + 1);
|
||||
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
AddGossipItemFor(player, 0, "Let it begin...", 631, -ACTION_START_EVENT + 1);
|
||||
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != IN_PROGRESS)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
if (action == -ACTION_START_EVENT + 1)
|
||||
creature->AI()->DoAction(ACTION_START_EVENT);
|
||||
}
|
||||
|
|
@ -973,7 +973,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetIcecrownCitadelAI<npc_muradin_bronzebeard_iccAI>(creature);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1826,7 +1826,7 @@ class npc_alchemist_adrianna : public CreatureScript
|
|||
public:
|
||||
npc_alchemist_adrianna() : CreatureScript("npc_alchemist_adrianna") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (InstanceScript* instance = creature->GetInstanceScript())
|
||||
if (instance->GetBossState(DATA_ROTFACE) == DONE && instance->GetBossState(DATA_FESTERGUT) == DONE && !creature->FindCurrentSpellBySpellId(SPELL_HARVEST_BLIGHT_SPECIMEN) && !creature->FindCurrentSpellBySpellId(SPELL_HARVEST_BLIGHT_SPECIMEN25))
|
||||
|
|
@ -2569,7 +2569,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -2634,7 +2634,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -2689,7 +2689,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -2751,7 +2751,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -2870,7 +2870,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -2916,7 +2916,7 @@ public:
|
|||
SeveredEssenceSpellInfo sesi_spells[] =
|
||||
{
|
||||
{CLASS_SHAMAN, 71938, 5000, 1, 0.0f},
|
||||
{CLASS_PALADIN, 57767, 8000, 2, 30.0f},
|
||||
{CLASS_PALADIN, 57767, 8000, 2, 30.0f},
|
||||
{CLASS_WARLOCK, 71937, 10000, 1, 0.0f},
|
||||
{CLASS_DEATH_KNIGHT, 49576, 15000, 1, 30.0f},
|
||||
{CLASS_ROGUE, 71933, 8000, 1, 0.0f},
|
||||
|
|
@ -2993,7 +2993,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -3092,7 +3092,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -3241,7 +3241,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -3273,13 +3273,13 @@ class npc_icc_buff_switcher : public CreatureScript
|
|||
public:
|
||||
npc_icc_buff_switcher() : CreatureScript("npc_icc_buff_switcher") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
if ((creature->GetEntry() == NPC_GARROSH_HELLSCREAM && player->PlayerTalkClass->GetGossipMenu().GetMenuId() == 11206) || (creature->GetEntry() == NPC_KING_VARIAN_WRYNN && player->PlayerTalkClass->GetGossipMenu().GetMenuId() == 11204))
|
||||
{
|
||||
if (!player->GetGroup() || !player->GetGroup()->isRaidGroup() || !player->GetGroup()->IsLeader(player->GetGUID()))
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
ChatHandler(player->GetSession()).PSendSysMessage("Only the raid leader can turn off the buff.");
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3288,7 +3288,7 @@ public:
|
|||
inst->SetData(DATA_BUFF_AVAILABLE, 0);
|
||||
if (creature->GetEntry() == NPC_GARROSH_HELLSCREAM)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -3382,7 +3382,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
|
|
@ -3571,7 +3571,7 @@ class npc_icc_gauntlet_controller : public CreatureScript
|
|||
{
|
||||
if (me->GetDistance(itr->GetSource()) > 100.0f || !itr->GetSource()->IsAlive() || itr->GetSource()->IsGameMaster())
|
||||
continue;
|
||||
|
||||
|
||||
events.ScheduleEvent(EVENT_CHECK_FIGHT, 1000);
|
||||
return;
|
||||
}
|
||||
|
|
@ -3673,7 +3673,7 @@ class npc_icc_putricades_trap : public CreatureScript
|
|||
{
|
||||
if (me->GetDistance(itr->GetSource()) > 100.0f || !itr->GetSource()->IsAlive() || itr->GetSource()->IsGameMaster())
|
||||
continue;
|
||||
|
||||
|
||||
events.ScheduleEvent(EVENT_CHECK_FIGHT, 1000);
|
||||
return;
|
||||
}
|
||||
|
|
@ -3726,7 +3726,7 @@ class at_icc_putricide_trap : public AreaTriggerScript
|
|||
at_icc_putricide_trap() : AreaTriggerScript("at_icc_putricide_trap") { }
|
||||
|
||||
bool OnTrigger(Player* player, AreaTrigger const* /*areaTrigger*/)
|
||||
{
|
||||
{
|
||||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
if (instance->GetData(DATA_PUTRICIDE_TRAP_STATE) == NOT_STARTED && !player->IsGameMaster())
|
||||
if (Creature* trap = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_PUTRICADES_TRAP)))
|
||||
|
|
|
|||
|
|
@ -16,32 +16,33 @@ class icecrown_citadel_teleport : public GameObjectScript
|
|||
public:
|
||||
icecrown_citadel_teleport() : GameObjectScript("icecrown_citadel_teleport") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (go->GetEntry() != GO_SCOURGE_TRANSPORTER_FIRST)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to Light's Hammer.", GOSSIP_SENDER_ICC_PORT, LIGHT_S_HAMMER_TELEPORT); // M_PI + M_PI/6
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to Light's Hammer.", GOSSIP_SENDER_ICC_PORT, LIGHT_S_HAMMER_TELEPORT); // M_PI + M_PI/6
|
||||
|
||||
if (InstanceScript* instance = go->GetInstanceScript())
|
||||
{
|
||||
if (instance->GetBossState(DATA_LORD_MARROWGAR) == DONE && go->GetEntry() != 202245)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Oratory of the Damned.", GOSSIP_SENDER_ICC_PORT, ORATORY_OF_THE_DAMNED_TELEPORT); // M_PI + M_PI/6
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Oratory of the Damned.", GOSSIP_SENDER_ICC_PORT, ORATORY_OF_THE_DAMNED_TELEPORT); // M_PI + M_PI/6
|
||||
if (instance->GetBossState(DATA_LADY_DEATHWHISPER) == DONE && go->GetEntry() != 202243)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Rampart of Skulls.", GOSSIP_SENDER_ICC_PORT, RAMPART_OF_SKULLS_TELEPORT); // M_PI/6
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Rampart of Skulls.", GOSSIP_SENDER_ICC_PORT, RAMPART_OF_SKULLS_TELEPORT); // M_PI/6
|
||||
if (instance->GetBossState(DATA_ICECROWN_GUNSHIP_BATTLE) == DONE && go->GetEntry() != 202244)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Deathbringer's Rise.", GOSSIP_SENDER_ICC_PORT, DEATHBRINGER_S_RISE_TELEPORT); // M_PI/6
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Deathbringer's Rise.", GOSSIP_SENDER_ICC_PORT, DEATHBRINGER_S_RISE_TELEPORT); // M_PI/6
|
||||
if (instance->GetData(DATA_COLDFLAME_JETS) == DONE && go->GetEntry() != 202235)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Upper Spire.", GOSSIP_SENDER_ICC_PORT, UPPER_SPIRE_TELEPORT); // M_PI/6
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Upper Spire.", GOSSIP_SENDER_ICC_PORT, UPPER_SPIRE_TELEPORT); // M_PI/6
|
||||
if (instance->GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE && instance->GetBossState(DATA_SINDRAGOSA_GAUNTLET) == DONE && go->GetEntry() != 202246)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to Sindragosa's Lair", GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT); // M_PI*3/2 + M_PI/6
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to Sindragosa's Lair", GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT); // M_PI*3/2 + M_PI/6
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(go), go->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(go), go->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
SpellInfo const* spell = sSpellMgr->GetSpellInfo(action);
|
||||
if (!spell)
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ public:
|
|||
{
|
||||
pInstance = me->GetInstanceScript();
|
||||
}
|
||||
|
||||
|
||||
InstanceScript* pInstance;
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
|
|
@ -262,7 +262,7 @@ public:
|
|||
|
||||
void SpellHit(Unit * /*caster*/, const SpellInfo *spell)
|
||||
{
|
||||
if (spell->Id == SPELL_POWER_SPARK_MALYGOS_BUFF)
|
||||
if (spell->Id == SPELL_POWER_SPARK_MALYGOS_BUFF)
|
||||
{
|
||||
if (!bLockHealthCheck)
|
||||
{
|
||||
|
|
@ -552,7 +552,7 @@ public:
|
|||
events.RescheduleEvent(EVENT_SPELL_ARCANE_OVERLOAD, 8000, 1);
|
||||
events.RescheduleEvent(EVENT_MOVE_TO_SURGE_OF_POWER, 55000, 1);
|
||||
events.RescheduleEvent(EVENT_CHECK_TRASH_DEAD, 3000, 1);
|
||||
|
||||
|
||||
for (int i=0; i<MAX_NEXUS_LORDS; i++)
|
||||
{
|
||||
float dist = 22.0f;
|
||||
|
|
@ -937,7 +937,7 @@ public:
|
|||
CheckTimer = 1000;
|
||||
MoveTimer = 0;
|
||||
}
|
||||
|
||||
|
||||
InstanceScript* pInstance;
|
||||
uint16 CheckTimer;
|
||||
uint16 MoveTimer;
|
||||
|
|
@ -1435,15 +1435,15 @@ public:
|
|||
|
||||
|
||||
class go_the_focusing_iris : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
{
|
||||
public:
|
||||
go_the_focusing_iris() : GameObjectScript("go_the_focusing_iris") { }
|
||||
|
||||
bool OnGossipHello(Player* user, GameObject* go)
|
||||
bool OnGossipHello(Player* user, GameObject* go) override
|
||||
{
|
||||
if (!user || !go)
|
||||
return true;
|
||||
|
||||
|
||||
if (InstanceScript* pInstance = go->GetInstanceScript())
|
||||
pInstance->SetData(DATA_IRIS_ACTIVATED, 0);
|
||||
|
||||
|
|
@ -1527,4 +1527,4 @@ void AddSC_boss_malygos()
|
|||
new npc_eoe_wyrmrest_skytalon();
|
||||
|
||||
new spell_eoe_ph3_surge_of_power();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,54 +72,54 @@ class npc_oculus_drakegiver : public CreatureScript
|
|||
public:
|
||||
npc_oculus_drakegiver() : CreatureScript("npc_oculus_drakegiver") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if( pCreature->IsQuestGiver() )
|
||||
pPlayer->PrepareQuestMenu(pCreature->GetGUID());
|
||||
if(creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if( pCreature->GetInstanceScript()->GetData(DATA_DRAKOS) == DONE )
|
||||
if(creature->GetInstanceScript()->GetData(DATA_DRAKOS) == DONE)
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_DRAKES, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_DRAKES, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_DRAKES, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_DRAKES, creature->GetGUID());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
pPlayer->PlayerTalkClass->GetGossipMenu().ClearMenu();
|
||||
switch(pCreature->GetEntry())
|
||||
player->PlayerTalkClass->GetGossipMenu().ClearMenu();
|
||||
switch(creature->GetEntry())
|
||||
{
|
||||
case NPC_VERDISA:
|
||||
switch(uiAction)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
if (!HAS_ESSENCE(pPlayer))
|
||||
if (!HAS_ESSENCE(player))
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA1, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_VERDISA1, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA2, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_VERDISA2, creature->GetGUID());
|
||||
}
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
{
|
||||
ItemPosCountVec dest;
|
||||
uint8 msg = pPlayer->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_EMERALD_ESSENCE, 1);
|
||||
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_EMERALD_ESSENCE, 1);
|
||||
if (msg == EQUIP_ERR_OK)
|
||||
pPlayer->StoreNewItem(dest, ITEM_EMERALD_ESSENCE, true);
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
player->StoreNewItem(dest, ITEM_EMERALD_ESSENCE, true);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
if (!HAS_ESSENCE(pPlayer))
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA3, pCreature->GetGUID());
|
||||
if (!HAS_ESSENCE(player))
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_VERDISA3, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
|
@ -127,31 +127,31 @@ public:
|
|||
switch(uiAction)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
if (!HAS_ESSENCE(pPlayer))
|
||||
if (!HAS_ESSENCE(player))
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ1, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_BELGARISTRASZ1, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ2, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_BELGARISTRASZ2, creature->GetGUID());
|
||||
}
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
{
|
||||
ItemPosCountVec dest;
|
||||
uint8 msg = pPlayer->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_RUBY_ESSENCE, 1);
|
||||
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_RUBY_ESSENCE, 1);
|
||||
if (msg == EQUIP_ERR_OK)
|
||||
pPlayer->StoreNewItem(dest, ITEM_RUBY_ESSENCE, true);
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
player->StoreNewItem(dest, ITEM_RUBY_ESSENCE, true);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
if (!HAS_ESSENCE(pPlayer))
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ3, pCreature->GetGUID());
|
||||
if (!HAS_ESSENCE(player))
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_BELGARISTRASZ3, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
|
@ -159,31 +159,33 @@ public:
|
|||
switch(uiAction)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
if (!HAS_ESSENCE(pPlayer))
|
||||
if (!HAS_ESSENCE(player))
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS1, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_ETERNOS1, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS2, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_ETERNOS2, creature->GetGUID());
|
||||
}
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
{
|
||||
ItemPosCountVec dest;
|
||||
uint8 msg = pPlayer->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_AMBER_ESSENCE, 1);
|
||||
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_AMBER_ESSENCE, 1);
|
||||
if (msg == EQUIP_ERR_OK)
|
||||
pPlayer->StoreNewItem(dest, ITEM_AMBER_ESSENCE, true);
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
player->StoreNewItem(dest, ITEM_AMBER_ESSENCE, true);
|
||||
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
if (!HAS_ESSENCE(pPlayer))
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS3, pCreature->GetGUID());
|
||||
if (!HAS_ESSENCE(player))
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_ETERNOS3, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
|
@ -198,14 +200,14 @@ class npc_oculus_drake : public CreatureScript
|
|||
public:
|
||||
npc_oculus_drake() : CreatureScript("npc_oculus_drake") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_oculus_drakeAI (pCreature);
|
||||
return new npc_oculus_drakeAI (creature);
|
||||
}
|
||||
|
||||
struct npc_oculus_drakeAI : public VehicleAI
|
||||
{
|
||||
npc_oculus_drakeAI(Creature *pCreature) : VehicleAI(pCreature)
|
||||
npc_oculus_drakeAI(Creature *creature) : VehicleAI(creature)
|
||||
{
|
||||
m_pInstance = me->GetInstanceScript();
|
||||
JustSummoned = true;
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ static Yells Conversation[]=
|
|||
{14253, "So that was the problem? Now I'm makin' progress...", NPC_BRANN, 195000},
|
||||
{13767, "Critical threat index. Void analysis diverted. Initiating sanitization protocol.", NPC_ABEDNEUM, 205000},
|
||||
{14254, "Hang on! Nobody's gonna' be sanitized as long as I have a say in it!", NPC_BRANN, 215000},
|
||||
{14255, "Ha! The old magic fingers finally won through! Now let's get down to--", NPC_BRANN, 295000},
|
||||
{14255, "Ha! The old magic fingers finally won through! Now let's get down to--", NPC_BRANN, 295000},
|
||||
{13768, "Alert: security fail-safes deactivated. Beginning memory purge and... ", NPC_ABEDNEUM, 303000},
|
||||
//The fight is completed at this point.
|
||||
{14256, "Purge? No no no no no.. where did I-- Aha, this should do the trick...", NPC_BRANN, 310000},
|
||||
|
|
@ -150,81 +150,81 @@ class brann_bronzebeard : public CreatureScript
|
|||
public:
|
||||
brann_bronzebeard() : CreatureScript("brann_bronzebeard") { }
|
||||
|
||||
bool OnGossipHello(Player *player, Creature *pCreature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
InstanceScript* pInstance = (pCreature->GetInstanceScript());
|
||||
InstanceScript* pInstance = (creature->GetInstanceScript());
|
||||
|
||||
player->TalkedToCreature(pCreature->GetEntry(), pCreature->GetGUID());
|
||||
player->PrepareGossipMenu(pCreature, 0, true);
|
||||
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
|
||||
player->PrepareGossipMenu(creature, 0, true);
|
||||
if (pInstance)
|
||||
{
|
||||
uint32 brann = pInstance->GetData(BRANN_BRONZEBEARD);
|
||||
switch (brann)
|
||||
{
|
||||
case 1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
break;
|
||||
case 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
break;
|
||||
case 3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
break;
|
||||
case 4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
|
||||
break;
|
||||
case 5:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
}
|
||||
player->SEND_GOSSIP_MENU(TEXT_ID_START, pCreature->GetGUID());
|
||||
SendGossipMenuFor(player, TEXT_ID_START, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player *player, Creature *pCreature, uint32 /*sender*/, uint32 action )
|
||||
bool OnGossipSelect(Player *player, Creature *creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
if (action)
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
pCreature->AI()->DoAction(ACTION_START_EVENT);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
creature->AI()->DoAction(ACTION_START_EVENT);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
pCreature->AI()->DoAction(ACTION_START_TRIBUNAL);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
creature->AI()->DoAction(ACTION_START_TRIBUNAL);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
pCreature->AI()->DoAction(ACTION_GO_TO_SJONNIR);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
creature->AI()->DoAction(ACTION_GO_TO_SJONNIR);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
pCreature->AI()->DoAction(ACTION_WIPE_START);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
creature->AI()->DoAction(ACTION_WIPE_START);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
pCreature->AI()->DoAction(ACTION_OPEN_DOOR);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
creature->AI()->DoAction(ACTION_OPEN_DOOR);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new brann_bronzebeardAI (pCreature);
|
||||
return new brann_bronzebeardAI (creature);
|
||||
}
|
||||
|
||||
struct brann_bronzebeardAI : public npc_escortAI
|
||||
{
|
||||
|
||||
brann_bronzebeardAI(Creature *c) : npc_escortAI(c), summons(me)
|
||||
{
|
||||
{
|
||||
AbedneumGUID = MarnakGUID = KaddrakGUID = 0;
|
||||
pInstance = c->GetInstanceScript();
|
||||
}
|
||||
|
|
@ -245,7 +245,7 @@ public:
|
|||
Creature *cr;
|
||||
if ((cr = GetAbedneum())) cr->DespawnOrUnsummon();
|
||||
if ((cr = GetMarnak())) cr->DespawnOrUnsummon();
|
||||
if ((cr = GetKaddrak())) cr->DespawnOrUnsummon();
|
||||
if ((cr = GetKaddrak())) cr->DespawnOrUnsummon();
|
||||
SwitchHeadVisaul(0x7, false);
|
||||
}
|
||||
|
||||
|
|
@ -283,21 +283,21 @@ public:
|
|||
TalkEvent = false;
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 id);
|
||||
void WaypointReached(uint32 id) override;
|
||||
void InitializeEvent();
|
||||
|
||||
Creature* GetAbedneum() { return ObjectAccessor::GetCreature(*me, AbedneumGUID); }
|
||||
Creature* GetMarnak() { return ObjectAccessor::GetCreature(*me, MarnakGUID); }
|
||||
Creature* GetKaddrak() { return ObjectAccessor::GetCreature(*me, KaddrakGUID); }
|
||||
|
||||
void MoveInLineOfSight(Unit* /*pWho*/) { }
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
{
|
||||
void MoveInLineOfSight(Unit* /*pWho*/) override { }
|
||||
void DamageTaken(Unit*, uint32 &damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (damage && pInstance)
|
||||
pInstance->SetData(DATA_BRANN_ACHIEVEMENT, false);
|
||||
}
|
||||
|
||||
void Reset()
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
RemoveEscortState(0x7); // all states
|
||||
SetDespawnAtFar(false);
|
||||
|
|
@ -312,13 +312,13 @@ public:
|
|||
{
|
||||
pInstance->SetData(BRANN_BRONZEBEARD, 1);
|
||||
pInstance->SetData(DATA_BRANN_ACHIEVEMENT, true);
|
||||
|
||||
|
||||
if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE)
|
||||
pInstance->SetData(BRANN_BRONZEBEARD, (pInstance->GetData(BOSS_SJONNIR) == DONE) ? 5 : 4);
|
||||
}
|
||||
}
|
||||
|
||||
void DoAction(int32 action)
|
||||
void DoAction(int32 action) override
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
|
|
@ -334,7 +334,7 @@ public:
|
|||
me->setFaction(i->GetSource()->getFaction());
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
SetEscortPaused(false);
|
||||
InitializeEvent();
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
|
|
@ -378,7 +378,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* cr)
|
||||
void JustSummoned(Creature* cr) override
|
||||
{
|
||||
if (cr->GetEntry() == NPC_ABEDNEUM || cr->GetEntry() == NPC_KADDRAK || cr->GetEntry() == NPC_MARNAK)
|
||||
cr->SetCanFly(true);
|
||||
|
|
@ -386,7 +386,7 @@ public:
|
|||
summons.Summon(cr);
|
||||
}
|
||||
|
||||
void UpdateEscortAI(uint32 diff)
|
||||
void UpdateEscortAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
|
|
@ -499,7 +499,7 @@ public:
|
|||
}
|
||||
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
||||
|
||||
|
||||
// Spawn Chest and quest credit
|
||||
if (Player *plr = SelectTargetFromPlayerList(200.0f))
|
||||
|
|
@ -513,7 +513,7 @@ public:
|
|||
|
||||
plr->GroupEventHappens(QUEST_HALLS_OF_STONE, me);
|
||||
}
|
||||
|
||||
|
||||
events.ScheduleEvent(EVENT_GO_TO_SJONNIR, 279000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -530,7 +530,7 @@ public:
|
|||
case EVENT_END:
|
||||
{
|
||||
events.Reset();
|
||||
if (pInstance)
|
||||
if (pInstance)
|
||||
pInstance->SetData(BRANN_BRONZEBEARD, 6);
|
||||
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
|
@ -560,13 +560,14 @@ public:
|
|||
cs->PlayDirectSound(Conversation[SpeechCount].sound);
|
||||
}
|
||||
|
||||
if (SpeechCount < 38)
|
||||
if (SpeechCount < 38)
|
||||
SpeechPause = Conversation[SpeechCount++].timer;
|
||||
else
|
||||
TalkEvent = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SummonCreatures(uint32 entry, uint8 count)
|
||||
{
|
||||
for (int i = 0; i < count; ++i)
|
||||
|
|
@ -581,12 +582,12 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
ResetEvent();
|
||||
if(pInstance)
|
||||
{
|
||||
if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) != DONE)
|
||||
if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) != DONE)
|
||||
pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, NOT_STARTED);
|
||||
}
|
||||
}
|
||||
|
|
@ -632,10 +633,10 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id)
|
|||
switch (id)
|
||||
{
|
||||
// Stop before stairs and ask to start
|
||||
case 9:
|
||||
case 9:
|
||||
SetEscortPaused(true);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
if (pInstance)
|
||||
if (pInstance)
|
||||
pInstance->SetData(BRANN_BRONZEBEARD, 2);
|
||||
|
||||
break;
|
||||
|
|
@ -681,9 +682,9 @@ class dark_rune_protectors : public CreatureScript
|
|||
public:
|
||||
dark_rune_protectors() : CreatureScript("dark_rune_protectors") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new dark_rune_protectorsAI (pCreature);
|
||||
return new dark_rune_protectorsAI (creature);
|
||||
}
|
||||
|
||||
struct dark_rune_protectorsAI : public ScriptedAI
|
||||
|
|
@ -691,7 +692,7 @@ public:
|
|||
dark_rune_protectorsAI(Creature *c) : ScriptedAI(c) { }
|
||||
|
||||
EventMap events;
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
}
|
||||
|
|
@ -705,7 +706,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
|
|
@ -739,9 +740,9 @@ class dark_rune_stormcaller : public CreatureScript
|
|||
public:
|
||||
dark_rune_stormcaller() : CreatureScript("dark_rune_stormcaller") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new dark_rune_stormcallerAI (pCreature);
|
||||
return new dark_rune_stormcallerAI (creature);
|
||||
}
|
||||
|
||||
struct dark_rune_stormcallerAI : public ScriptedAI
|
||||
|
|
@ -749,7 +750,7 @@ public:
|
|||
dark_rune_stormcallerAI(Creature *c) : ScriptedAI(c) { }
|
||||
|
||||
EventMap events;
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
}
|
||||
|
|
@ -795,20 +796,20 @@ class iron_golem_custodian : public CreatureScript
|
|||
public:
|
||||
iron_golem_custodian() : CreatureScript("iron_golem_custodian") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new iron_golem_custodianAI (pCreature);
|
||||
return new iron_golem_custodianAI (creature);
|
||||
}
|
||||
|
||||
struct iron_golem_custodianAI : public ScriptedAI
|
||||
{
|
||||
iron_golem_custodianAI(Creature *c) : ScriptedAI(c) { }
|
||||
EventMap events;
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit *)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_IGC_CRUSH, 6000);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
#include "Player.h"
|
||||
#include "Opcodes.h"
|
||||
|
||||
enum LeviathanSpells
|
||||
enum LeviathanSpells
|
||||
{
|
||||
// Leviathan basic
|
||||
SPELL_PURSUED = 62374,
|
||||
|
|
@ -514,19 +514,19 @@ void boss_flame_leviathan::boss_flame_leviathanAI::ActivateTowers()
|
|||
me->AddLootMode(1<<_towersCount);
|
||||
switch (i)
|
||||
{
|
||||
case EVENT_TOWER_OF_LIFE_DESTROYED:
|
||||
case EVENT_TOWER_OF_LIFE_DESTROYED:
|
||||
me->AddAura(SPELL_TOWER_OF_LIFE, me);
|
||||
events.RescheduleEvent(EVENT_FREYA, 30000);
|
||||
break;
|
||||
case EVENT_TOWER_OF_STORM_DESTROYED:
|
||||
case EVENT_TOWER_OF_STORM_DESTROYED:
|
||||
me->AddAura(SPELL_TOWER_OF_STORMS, me);
|
||||
events.RescheduleEvent(EVENT_THORIMS_HAMMER, 60000);
|
||||
break;
|
||||
case EVENT_TOWER_OF_FROST_DESTROYED:
|
||||
case EVENT_TOWER_OF_FROST_DESTROYED:
|
||||
me->AddAura(SPELL_TOWER_OF_FROST, me);
|
||||
events.RescheduleEvent(EVENT_HODIRS_FURY, 20000);
|
||||
break;
|
||||
case EVENT_TOWER_OF_FLAMES_DESTROYED:
|
||||
case EVENT_TOWER_OF_FLAMES_DESTROYED:
|
||||
me->AddAura(SPELL_TOWER_OF_FLAMES, me);
|
||||
events.RescheduleEvent(EVENT_MIMIRONS_INFERNO, 42000);
|
||||
break;
|
||||
|
|
@ -895,7 +895,7 @@ public:
|
|||
struct npc_freya_wardAI : public NullCreatureAI
|
||||
{
|
||||
npc_freya_wardAI(Creature *c) : NullCreatureAI(c), summons(c)
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
SummonList summons;
|
||||
|
|
@ -975,7 +975,7 @@ public:
|
|||
struct npc_hodirs_furyAI : public NullCreatureAI
|
||||
{
|
||||
npc_hodirs_furyAI(Creature *c) : NullCreatureAI(c)
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
uint32 _timeToHit;
|
||||
|
|
@ -1035,7 +1035,7 @@ public:
|
|||
_switchTargetTimer = 0;
|
||||
}
|
||||
else
|
||||
_switchTargetTimer = 25000;
|
||||
_switchTargetTimer = 25000;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -1117,7 +1117,7 @@ public:
|
|||
struct npc_thorims_hammerAI : public NullCreatureAI
|
||||
{
|
||||
npc_thorims_hammerAI(Creature *c) : NullCreatureAI(c)
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
uint32 _beamTimer;
|
||||
|
|
@ -1216,9 +1216,9 @@ public:
|
|||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->GetInstanceScript() && creature->GetInstanceScript()->GetData(TYPE_LEVIATHAN) == NOT_STARTED && !creature->AI()->GetData(DATA_EVENT_STARTED))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Activate secondary defensive systems.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Activate secondary defensive systems.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1228,15 +1228,15 @@ public:
|
|||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
creature->MonsterSay("Activating secondary defensive systems will result in the extermination of unauthorized life forms via orbital emplacements. You are an unauthorized life form.", LANG_UNIVERSAL, 0);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Confirmed.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
ClearGossipMenuFor(player);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Confirmed.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
creature->MonsterSay("Security override permitted. Secondary defensive systems activated. Backup deactivation for secondary systems can be accessed via individual generators located on the concourse. ", LANG_UNIVERSAL, 0);
|
||||
creature->AI()->DoAction(ACTION_START_NORGANNON_EVENT);
|
||||
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1427,7 +1427,7 @@ public:
|
|||
void Say(std::string text, bool self)
|
||||
{
|
||||
WorldPacket data;
|
||||
|
||||
|
||||
if (self)
|
||||
ChatHandler::BuildChatPacket(data, CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, me, nullptr, text);
|
||||
else if (Creature* c = ObjectAccessor::GetCreature(*me, _pentarusGUID))
|
||||
|
|
@ -1524,9 +1524,9 @@ public:
|
|||
{
|
||||
npc_brann_radioAI(Creature* c) : NullCreatureAI(c)
|
||||
{
|
||||
_lock = (me->GetInstanceScript() && me->GetInstanceScript()->GetData(TYPE_LEVIATHAN) > NOT_STARTED);
|
||||
_lock = (me->GetInstanceScript() && me->GetInstanceScript()->GetData(TYPE_LEVIATHAN) > NOT_STARTED);
|
||||
_helpLock = _lock;
|
||||
}
|
||||
}
|
||||
|
||||
bool _lock;
|
||||
bool _helpLock;
|
||||
|
|
@ -1549,7 +1549,7 @@ public:
|
|||
{
|
||||
if (who->GetTypeId() != TYPEID_PLAYER && !who->IsVehicle())
|
||||
return;
|
||||
|
||||
|
||||
// ENGAGE
|
||||
if (!_helpLock && me->GetDistance2d(-508.898f, -32.9631f) < 5.0f)
|
||||
{
|
||||
|
|
@ -1637,7 +1637,7 @@ public:
|
|||
|
||||
struct npc_storm_beacon_spawnAI : public NullCreatureAI
|
||||
{
|
||||
npc_storm_beacon_spawnAI(Creature* c) : NullCreatureAI(c)
|
||||
npc_storm_beacon_spawnAI(Creature* c) : NullCreatureAI(c)
|
||||
{
|
||||
_amount = 0;
|
||||
_checkTimer = 0;
|
||||
|
|
@ -1678,7 +1678,7 @@ public:
|
|||
|
||||
struct boss_flame_leviathan_safety_containerAI : public NullCreatureAI
|
||||
{
|
||||
boss_flame_leviathan_safety_containerAI(Creature *c) : NullCreatureAI(c)
|
||||
boss_flame_leviathan_safety_containerAI(Creature *c) : NullCreatureAI(c)
|
||||
{
|
||||
_allowTimer = 0;
|
||||
}
|
||||
|
|
@ -1694,7 +1694,7 @@ public:
|
|||
liquid->CastSpell(liquid, SPELL_LIQUID_PYRITE, true);
|
||||
liquid->CastSpell(liquid, SPELL_DUST_CLOUD_IMPACT, true);
|
||||
}
|
||||
|
||||
|
||||
me->DespawnOrUnsummon(1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1726,8 +1726,8 @@ public:
|
|||
|
||||
struct npc_mechanoliftAI : public NullCreatureAI
|
||||
{
|
||||
npc_mechanoliftAI(Creature *c) : NullCreatureAI(c)
|
||||
{
|
||||
npc_mechanoliftAI(Creature *c) : NullCreatureAI(c)
|
||||
{
|
||||
me->SetSpeed(MOVE_RUN, rand_norm()+0.5f);
|
||||
}
|
||||
|
||||
|
|
@ -2341,7 +2341,7 @@ class achievement_flame_leviathan_towers : public AchievementCriteriaScript
|
|||
{
|
||||
return target && _towerCount <= target->GetAI()->GetData(DATA_GET_TOWER_COUNT);
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
uint32 const _towerCount;
|
||||
};
|
||||
|
|
@ -2375,7 +2375,7 @@ class achievement_flame_leviathan_garage : public AchievementCriteriaScript
|
|||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
uint32 const _entry1;
|
||||
uint32 const _entry2;
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ public:
|
|||
|
||||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
|
||||
switch( events.GetEvent() )
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -463,7 +463,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
UpdateVictim();
|
||||
|
||||
|
||||
timer += diff;
|
||||
if (timer >= 2000)
|
||||
{
|
||||
|
|
@ -673,7 +673,7 @@ class go_ulduar_pure_saronite_deposit : public GameObjectScript
|
|||
public:
|
||||
go_ulduar_pure_saronite_deposit() : GameObjectScript("go_ulduar_pure_saronite_deposit") { }
|
||||
|
||||
bool OnGossipHello(Player* plr, GameObject* go)
|
||||
bool OnGossipHello(Player* plr, GameObject* go) override
|
||||
{
|
||||
if (plr->IsGameMaster())
|
||||
return false;
|
||||
|
|
@ -707,4 +707,4 @@ void AddSC_boss_vezax()
|
|||
new achievement_shadowdodger();
|
||||
|
||||
new go_ulduar_pure_saronite_deposit();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -775,7 +775,7 @@ public:
|
|||
Creature* LMK2 = GetLMK2();
|
||||
Creature* VX001 = GetVX001();
|
||||
Creature* ACU = GetACU();
|
||||
|
||||
|
||||
if (!VX001 || !LMK2 || !ACU)
|
||||
return;
|
||||
|
||||
|
|
@ -1113,7 +1113,7 @@ public:
|
|||
cannon->ExitVehicle();
|
||||
me->GetMotionMaster()->MoveCharge(2795.076f, 2598.616f, 364.32f, 21.0f);
|
||||
if (Creature* c = GetMimiron())
|
||||
c->AI()->SetData(0, 1);
|
||||
c->AI()->SetData(0, 1);
|
||||
}
|
||||
}
|
||||
else if (Phase == 4)
|
||||
|
|
@ -1752,7 +1752,7 @@ public:
|
|||
me->UpdatePosition(2744.65f, 2569.46f, 381.34f, M_PI, false);
|
||||
|
||||
if (Creature* c = GetMimiron())
|
||||
c->AI()->SetData(0, 3);
|
||||
c->AI()->SetData(0, 3);
|
||||
}
|
||||
}
|
||||
else if (Phase == 4)
|
||||
|
|
@ -2164,7 +2164,7 @@ public:
|
|||
me->CastSpell(me, SPELL_BEAM_BLUE, true);
|
||||
option = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
|
|
@ -2276,25 +2276,24 @@ public:
|
|||
};
|
||||
|
||||
class go_ulduar_do_not_push_this_button : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_ulduar_do_not_push_this_button() : GameObjectScript("go_ulduar_do_not_push_this_button") { }
|
||||
{
|
||||
public:
|
||||
go_ulduar_do_not_push_this_button() : GameObjectScript("go_ulduar_do_not_push_this_button") { }
|
||||
|
||||
bool OnGossipHello(Player* Player, GameObject* GO)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if( !Player || !GO )
|
||||
if(!player || !go)
|
||||
return true;
|
||||
|
||||
InstanceScript* pInstance = GO->GetInstanceScript();
|
||||
if (pInstance)
|
||||
if (InstanceScript* instance = go->GetInstanceScript())
|
||||
{
|
||||
if( pInstance->GetData(TYPE_MIMIRON) != NOT_STARTED )
|
||||
if(instance->GetData(TYPE_MIMIRON) != NOT_STARTED)
|
||||
return false;
|
||||
|
||||
if (Creature* c = ObjectAccessor::GetCreature(*GO, pInstance->GetData64(TYPE_MIMIRON)))
|
||||
if (Creature* c = ObjectAccessor::GetCreature(*go, instance->GetData64(TYPE_MIMIRON)))
|
||||
{
|
||||
c->AI()->SetData(0, 7);
|
||||
c->AI()->AttackStart(Player);
|
||||
c->AI()->AttackStart(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2621,4 +2620,4 @@ void AddSC_boss_mimiron()
|
|||
new achievement_mimiron_set_up_us_the_bomb_11();
|
||||
new achievement_mimiron_set_up_us_the_bomb_12();
|
||||
new achievement_mimiron_set_up_us_the_bomb_13();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -457,7 +457,7 @@ public:
|
|||
me->RemoveAura(SPELL_CHAIN_4);
|
||||
}
|
||||
me->CastSpell(me, SPELL_WINGBUFFET, true);
|
||||
|
||||
|
||||
if( (me->GetHealth()*100) / me->GetMaxHealth() < 50 ) // start phase 3
|
||||
{
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
|
|
@ -583,7 +583,7 @@ class npc_ulduar_expedition_commander : public CreatureScript
|
|||
public:
|
||||
npc_ulduar_expedition_commander() : CreatureScript("npc_ulduar_expedition_commander") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!player || !creature)
|
||||
return true;
|
||||
|
|
@ -599,12 +599,12 @@ class npc_ulduar_expedition_commander : public CreatureScript
|
|||
if (!razorscale || razorscale->IsInCombat())
|
||||
return true;
|
||||
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, TEXT_GOSSIP_ACTION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->PlayerTalkClass->SendGossipMenu(40100, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, TEXT_GOSSIP_ACTION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, 40100, creature);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
if (!player || !creature)
|
||||
return true;
|
||||
|
|
@ -636,7 +636,7 @@ class npc_ulduar_expedition_commander : public CreatureScript
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_ulduar_expedition_commanderAI>(creature);
|
||||
}
|
||||
|
|
@ -650,7 +650,7 @@ class npc_ulduar_expedition_commander : public CreatureScript
|
|||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (_introSpoken)
|
||||
return;
|
||||
|
|
@ -687,7 +687,7 @@ public:
|
|||
|
||||
InstanceScript* pInstance;
|
||||
uint8 repairPoints;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
repairPoints = 0;
|
||||
|
|
@ -877,11 +877,11 @@ public:
|
|||
};
|
||||
|
||||
class go_ulduar_working_harpoon : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_ulduar_working_harpoon() : GameObjectScript("go_ulduar_working_harpoon") { }
|
||||
{
|
||||
public:
|
||||
go_ulduar_working_harpoon() : GameObjectScript("go_ulduar_working_harpoon") { }
|
||||
|
||||
bool OnGossipHello(Player* user, GameObject* go)
|
||||
bool OnGossipHello(Player* user, GameObject* go) override
|
||||
{
|
||||
if( !user || !go )
|
||||
return true;
|
||||
|
|
@ -926,7 +926,7 @@ public:
|
|||
if( uint64 g = pInstance->GetData64(npc) )
|
||||
if( Creature* hfs = ObjectAccessor::GetCreature(*go, g) )
|
||||
hfs->AI()->SetData(3, spell);
|
||||
|
||||
|
||||
go->SetLootState(GO_JUST_DEACTIVATED);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ enum ThorimSpells
|
|||
SPELL_LIGHTNING_CHARGE_BUFF = 62279,
|
||||
SPELL_LIGHTNING_PILLAR_P2 = 62976,
|
||||
SPELL_LIGHTNING_ORB_CHARGER = 62278,
|
||||
|
||||
|
||||
// SIF
|
||||
SPELL_TOUCH_OF_DOMINION = 62507,
|
||||
SPELL_SIF_TRANSFORM = 64778,
|
||||
|
|
@ -328,7 +328,7 @@ public:
|
|||
bool _hardMode;
|
||||
bool _isHitAllowed;
|
||||
bool _isAlly;
|
||||
uint8 _trashCounter;
|
||||
uint8 _trashCounter;
|
||||
|
||||
InstanceScript* m_pInstance;
|
||||
EventMap events;
|
||||
|
|
@ -371,10 +371,10 @@ public:
|
|||
me->SummonCreature(_isAlly ? NPC_CAPTURED_MERCENARY_SOLDIER_ALLY : NPC_CAPTURED_MERCENARY_SOLDIER_HORDE, 2127.24f, -251.309f, 419.793f, 5.89921f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
|
||||
me->SummonCreature(_isAlly ? NPC_CAPTURED_MERCENARY_SOLDIER_ALLY : NPC_CAPTURED_MERCENARY_SOLDIER_HORDE, 2120.1f, -258.99f, 419.764f, 6.24828f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
|
||||
me->SummonCreature(_isAlly ? NPC_CAPTURED_MERCENARY_SOLDIER_ALLY : NPC_CAPTURED_MERCENARY_SOLDIER_HORDE, 2123.32f, -254.771f, 419.789f, 6.17846f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
|
||||
|
||||
|
||||
// Captured Mercenary Captain 32908
|
||||
me->SummonCreature(_isAlly ? NPC_CAPTURED_MERCENARY_CAPTAIN_ALLY : NPC_CAPTURED_MERCENARY_CAPTAIN_HORDE, 2131.31f, -259.182f, 419.974f, 5.91667f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
|
||||
|
||||
|
||||
// Dark Rune Acolyte (arena) 32886
|
||||
me->SummonCreature(NPC_DARK_RUNE_ACOLYTE_I, 2129.09f, -277.142f, 419.756f, 1.22173f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
|
||||
|
||||
|
|
@ -395,7 +395,7 @@ public:
|
|||
|
||||
// Runic Colossus 32872
|
||||
me->SummonCreature(NPC_RUNIC_COLOSSUS, 2227.5f, -396.179f, 412.176f, 1.79769f);
|
||||
|
||||
|
||||
// Ancient Rune Giant 32873
|
||||
me->SummonCreature(NPC_ANCIENT_RUNE_GIANT, 2134.57f, -440.318f, 438.331f, 0.226893f);
|
||||
|
||||
|
|
@ -540,7 +540,7 @@ public:
|
|||
{
|
||||
if (m_pInstance)
|
||||
m_pInstance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, 64980 /*SIFFED ACHIEVEMENT*/);
|
||||
|
||||
|
||||
_hardMode = true;
|
||||
EntryCheckPredicate pred(NPC_SIF);
|
||||
summons.DoAction(ACTION_SIF_JOIN_FIGHT, pred);
|
||||
|
|
@ -567,7 +567,7 @@ public:
|
|||
|
||||
me->MonsterYell("Stay your arms! I yield!", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_DEFEATED);
|
||||
|
||||
|
||||
events.SetPhase(EVENT_PHASE_OUTRO);
|
||||
events.ScheduleEvent(EVENT_THORIM_OUTRO1, 2000, 0, EVENT_PHASE_OUTRO);
|
||||
|
||||
|
|
@ -950,7 +950,7 @@ public:
|
|||
struct boss_thorim_lightning_orbAI : public npc_escortAI
|
||||
{
|
||||
boss_thorim_lightning_orbAI(Creature* pCreature) : npc_escortAI(pCreature)
|
||||
{
|
||||
{
|
||||
InitWaypoint();
|
||||
Reset();
|
||||
Start(false, true, 0);
|
||||
|
|
@ -1036,7 +1036,7 @@ public:
|
|||
struct boss_thorim_sif_blizzardAI : public npc_escortAI
|
||||
{
|
||||
boss_thorim_sif_blizzardAI(Creature* pCreature) : npc_escortAI(pCreature)
|
||||
{
|
||||
{
|
||||
InitWaypoint();
|
||||
Reset();
|
||||
Start(false, true, 0);
|
||||
|
|
@ -1088,8 +1088,8 @@ public:
|
|||
|
||||
uint32 _resetTimer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
void Reset()
|
||||
{
|
||||
_resetTimer = 0;
|
||||
me->SetControlled(true, UNIT_STATE_STUNNED);
|
||||
me->SetDisableGravity(true);
|
||||
|
|
@ -1242,7 +1242,7 @@ public:
|
|||
case EVENT_CM_SOLDIER_S:
|
||||
if (me->GetDistance(me->GetVictim()) > 8)
|
||||
me->CastSpell(me->GetVictim(), SPELL_SHOOT, false);
|
||||
|
||||
|
||||
events.RepeatEvent(1500);
|
||||
break;
|
||||
case EVENT_CM_CAPTAIN_D:
|
||||
|
|
@ -1310,7 +1310,7 @@ public:
|
|||
events.ScheduleEvent(EVENT_IH_GUARD_CLEAVE, 6000);
|
||||
events.ScheduleEvent(EVENT_IH_GUARD_HAMSTRING, 9000);
|
||||
events.ScheduleEvent(EVENT_IH_GUARD_SHIELD_SMASH, 15000);
|
||||
|
||||
|
||||
if (Creature* runeGiant = me->FindNearestCreature(NPC_ANCIENT_RUNE_GIANT, 200.0f))
|
||||
runeGiant->AI()->DoAction(ACTION_IRON_HONOR_DIED);
|
||||
}
|
||||
|
|
@ -1476,7 +1476,7 @@ public:
|
|||
_nextTriggerPos += 16.0f;
|
||||
if (_nextTriggerPos > -260.0f)
|
||||
events.PopEvent();
|
||||
else
|
||||
else
|
||||
events.RescheduleEvent(EVENT_RC_RUNIC_SMASH_TRIGGER, 500);
|
||||
|
||||
RunRunicSmash(true);
|
||||
|
|
@ -1744,16 +1744,16 @@ public:
|
|||
};
|
||||
|
||||
class go_thorim_lever : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_thorim_lever() : GameObjectScript("go_thorim_lever") { }
|
||||
{
|
||||
public:
|
||||
go_thorim_lever() : GameObjectScript("go_thorim_lever") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, GameObject* pGo)
|
||||
bool OnGossipHello(Player* pPlayer, GameObject* go) override
|
||||
{
|
||||
if (GameObject *g = pPlayer->FindNearestGameObject(GO_ARENA_LEVER_GATE, 50))
|
||||
g->UseDoorOrButton();
|
||||
|
||||
pGo->UseDoorOrButton();
|
||||
go->UseDoorOrButton();
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
@ -1824,7 +1824,7 @@ class achievement_thorim_stand_in_the_lightning : public AchievementCriteriaScri
|
|||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*player, instance->GetData64(TYPE_THORIM)))
|
||||
return cr->AI()->GetData(DATA_HIT_BY_LIGHTNING);
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
@ -1839,7 +1839,7 @@ class achievement_thorim_lose_your_illusion : public AchievementCriteriaScript
|
|||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*player, instance->GetData64(TYPE_THORIM)))
|
||||
return cr->AI()->GetData(DATA_LOSE_YOUR_ILLUSION);
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
@ -1862,7 +1862,7 @@ void AddSC_boss_thorim()
|
|||
// Mini bosses
|
||||
new boss_thorim_runic_colossus();
|
||||
new boss_thorim_ancient_rune_giant();
|
||||
|
||||
|
||||
// GOs
|
||||
new go_thorim_lever();
|
||||
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ enum YoggSaronSounds
|
|||
SARA_P1_CAST2 = 15774,
|
||||
SARA_P1_KILL1 = 15778,
|
||||
SARA_P1_KILL2 = 15779,
|
||||
|
||||
|
||||
SARA_P2_START = 15754,
|
||||
SARA_P2_CAST1 = 15776,
|
||||
SARA_P2_CAST2 = 15777,
|
||||
|
|
@ -403,7 +403,7 @@ public:
|
|||
me->SetVisible(true);
|
||||
me->SetDisplayId(me->GetNativeDisplayId());
|
||||
me->SetDisableGravity(true);
|
||||
EnableSara(false);
|
||||
EnableSara(false);
|
||||
SpawnClouds();
|
||||
|
||||
_initFight = 1;
|
||||
|
|
@ -558,7 +558,7 @@ public:
|
|||
me->PlayDirectSound(_secondPhase ? SARA_P2_CAST1 : SARA_P1_CAST2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KilledUnit(Unit* who)
|
||||
{
|
||||
if (who->GetTypeId() != TYPEID_PLAYER)
|
||||
|
|
@ -611,7 +611,7 @@ public:
|
|||
|
||||
EntryCheckPredicate pred3(NPC_THORIM_KEEPER);
|
||||
summons.DoAction(ACTION_THORIM_START_STORM, pred3);
|
||||
|
||||
|
||||
if (!(_keepersGUID[0] && _keepersGUID[1] && _keepersGUID[2] && _keepersGUID[3]) && me->GetMap()->Is25ManRaid())
|
||||
summons.DoAction(ACTION_YOGG_SARON_HARD_MODE, pred2);
|
||||
|
||||
|
|
@ -724,7 +724,7 @@ public:
|
|||
else if (_p2TalkTimer >= 44500 && _p2TalkTimer < 60000)
|
||||
{
|
||||
me->MonsterYell("Cower before my true form.", LANG_UNIVERSAL, 0);
|
||||
_p2TalkTimer = 60000;
|
||||
_p2TalkTimer = 60000;
|
||||
}
|
||||
else if (_p2TalkTimer >= 64000)
|
||||
{
|
||||
|
|
@ -772,7 +772,7 @@ public:
|
|||
EntryCheckPredicate pred(NPC_YOGG_SARON);
|
||||
summons.DoAction(ACTION_YOGG_SARON_APPEAR, pred);
|
||||
events.RescheduleEvent(EVENT_SARA_P2_SPAWN_START_TENTACLES, 500, 0, EVENT_PHASE_TWO);
|
||||
|
||||
|
||||
// Spawn Brain!
|
||||
me->SummonCreature(NPC_BRAIN_OF_YOGG_SARON, 1981.3f, -25.43f, 265);
|
||||
break;
|
||||
|
|
@ -838,8 +838,8 @@ public:
|
|||
events.ScheduleEvent(EVENT_SARA_P2_MALADY, 7000, 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_PSYCHOSIS, 3000, 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_DEATH_RAY, 15000, 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_SUMMON_T1, 50000+urand(0,10000), 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_SUMMON_T2, 15000+urand(0,5000) , 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_SUMMON_T1, 50000+urand(0,10000), 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_SUMMON_T2, 15000+urand(0,5000) , 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_SUMMON_T3, 30000+urand(0,10000), 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_BRAIN_LINK, 0, 0, EVENT_PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SARA_P2_OPEN_PORTALS, 60000, 0, EVENT_PHASE_TWO);
|
||||
|
|
@ -1012,7 +1012,7 @@ public:
|
|||
_usedInsane = false;
|
||||
summons.DespawnAll();
|
||||
events.Reset();
|
||||
|
||||
|
||||
uint8 _count = 4;
|
||||
me->SetLootMode(31); // 1 + 2 + 4 + 8 + 16, remove with watchers addition
|
||||
if (m_pInstance)
|
||||
|
|
@ -1048,13 +1048,13 @@ public:
|
|||
{
|
||||
summons.DespawnAll();
|
||||
events.Reset();
|
||||
|
||||
|
||||
me->MonsterYell("Your fate is sealed. The end of days is finally upon you and ALL who inhabit this miserable little seedling. Uulwi ifis halahs gag erh'ongg w'ssh.", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(YS_P3_DEATH);
|
||||
|
||||
if (m_pInstance)
|
||||
{
|
||||
m_pInstance->SetData(TYPE_YOGGSARON, DONE);
|
||||
m_pInstance->SetData(TYPE_YOGGSARON, DONE);
|
||||
if (Creature* sara = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(NPC_SARA)))
|
||||
sara->AI()->DoAction(ACTION_YOGG_SARON_DEATH);
|
||||
if (GameObject* go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_YOGG_SARON_DOORS)))
|
||||
|
|
@ -1250,7 +1250,7 @@ public:
|
|||
|
||||
me->SummonCreature(NPC_LAUGHING_SKULL, 2133.09f, 15.341f, 239.72f, 4.0724f);
|
||||
me->SummonCreature(NPC_LAUGHING_SKULL, 2065.83f, 12.3772f, 239.792f, 5.49789f);
|
||||
|
||||
|
||||
// Aspects
|
||||
me->SummonCreature(NPC_ALEXTRASZA, 2091.92f, -25.8f, 242.647f, 0);
|
||||
me->SummonCreature(NPC_YSERA, 2116, -25.8f, 242.647f, 3.14f);
|
||||
|
|
@ -1435,7 +1435,7 @@ public:
|
|||
{
|
||||
me->CastSpell(me, SPELL_DEATH_RAY_DAMAGE_VISUAL, true);
|
||||
me->CastSpell(me, SPELL_DEATH_RAY_DAMAGE, true);
|
||||
|
||||
|
||||
_startTimer = 0;
|
||||
me->SetSpeed(MOVE_WALK, 2);
|
||||
me->SetSpeed(MOVE_RUN, 2);
|
||||
|
|
@ -1697,7 +1697,7 @@ class boss_yoggsaron_descend_portal : public CreatureScript
|
|||
public:
|
||||
boss_yoggsaron_descend_portal() : CreatureScript("boss_yoggsaron_descend_portal") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!creature->GetUInt32Value(UNIT_NPC_FLAGS))
|
||||
return true;
|
||||
|
|
@ -1707,7 +1707,7 @@ public:
|
|||
case ACTION_ILLUSION_ICECROWN: player->CastSpell(player, SPELL_TELEPORT_TO_ICECROWN, true); break;
|
||||
case ACTION_ILLUSION_STORMWIND: player->CastSpell(player, SPELL_TELEPORT_TO_STORMWIND, true); break;
|
||||
}
|
||||
|
||||
|
||||
creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
creature->DespawnOrUnsummon(1000);
|
||||
return true;
|
||||
|
|
@ -2546,7 +2546,7 @@ class spell_yogg_saron_empowered : public SpellScriptLoader
|
|||
{
|
||||
Unit* target = GetUnitOwner();
|
||||
uint8 stack = std::min(uint8(target->GetHealthPct()/10), (uint8)9);
|
||||
|
||||
|
||||
if (!stack)
|
||||
{
|
||||
target->RemoveAura(SPELL_EMPOWERED);
|
||||
|
|
@ -2892,10 +2892,10 @@ class achievement_yogg_saron_darkness : public AchievementCriteriaScript
|
|||
if (player->GetInstanceScript())
|
||||
if (Creature* sara = ObjectAccessor::GetCreature(*player, player->GetInstanceScript()->GetData64(NPC_SARA)))
|
||||
return sara->GetAI()->GetData(DATA_GET_KEEPERS_COUNT) <= _keepersCount;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
uint32 const _keepersCount;
|
||||
};
|
||||
|
|
@ -2913,10 +2913,10 @@ class achievement_yogg_saron_he_waits_dreaming : public AchievementCriteriaScrip
|
|||
if (player->GetInstanceScript())
|
||||
if (Creature* sara = ObjectAccessor::GetCreature(*player, player->GetInstanceScript()->GetData64(NPC_BRAIN_OF_YOGG_SARON)))
|
||||
return sara->GetAI()->GetData(DATA_GET_CURRENT_ILLUSION) == _requiredIllusion;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
uint8 const _requiredIllusion;
|
||||
};
|
||||
|
|
@ -2947,7 +2947,7 @@ void AddSC_boss_yoggsaron()
|
|||
new boss_yoggsaron_keeper();
|
||||
new boss_yoggsaron_descend_portal();
|
||||
new boss_yoggsaron_influence_tentacle();
|
||||
new boss_yoggsaron_immortal_guardian();
|
||||
new boss_yoggsaron_immortal_guardian();
|
||||
new boss_yoggsaron_lich_king();
|
||||
new boss_yoggsaron_llane();
|
||||
new boss_yoggsaron_neltharion();
|
||||
|
|
|
|||
|
|
@ -25,44 +25,44 @@ class go_ulduar_teleporter : public GameObjectScript
|
|||
public:
|
||||
go_ulduar_teleporter() : GameObjectScript("ulduar_teleporter") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
InstanceScript* pInstance = go->GetInstanceScript();
|
||||
if (!pInstance)
|
||||
return true;
|
||||
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Expedition Base Camp.", GOSSIP_SENDER_MAIN, BASE_CAMP);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Expedition Base Camp.", GOSSIP_SENDER_MAIN, BASE_CAMP);
|
||||
if (pInstance->GetData(TYPE_LEVIATHAN) >= DONE) // count special
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Formation Grounds.", GOSSIP_SENDER_MAIN, GROUNDS);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Formation Grounds.", GOSSIP_SENDER_MAIN, GROUNDS);
|
||||
if (pInstance->GetData(TYPE_LEVIATHAN) == DONE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Colossal Forge.", GOSSIP_SENDER_MAIN, FORGE);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Colossal Forge.", GOSSIP_SENDER_MAIN, FORGE);
|
||||
if (pInstance->GetData(TYPE_XT002) == DONE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Scrapyard.", GOSSIP_SENDER_MAIN, SCRAPYARD);
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Antechamber of Ulduar.", GOSSIP_SENDER_MAIN, ANTECHAMBER);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Scrapyard.", GOSSIP_SENDER_MAIN, SCRAPYARD);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Antechamber of Ulduar.", GOSSIP_SENDER_MAIN, ANTECHAMBER);
|
||||
if (pInstance->GetData(TYPE_KOLOGARN) == DONE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Shattered Walkway.", GOSSIP_SENDER_MAIN, WALKWAY);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Shattered Walkway.", GOSSIP_SENDER_MAIN, WALKWAY);
|
||||
if (pInstance->GetData(TYPE_AURIAYA) == DONE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Conservatory of Life.", GOSSIP_SENDER_MAIN, CONSERVATORY);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Conservatory of Life.", GOSSIP_SENDER_MAIN, CONSERVATORY);
|
||||
if (pInstance->GetData(DATA_CALL_TRAM))
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Spark of Imagination.", GOSSIP_SENDER_MAIN, SPARK);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Spark of Imagination.", GOSSIP_SENDER_MAIN, SPARK);
|
||||
if (pInstance->GetData(TYPE_VEZAX) == DONE)
|
||||
player->ADD_GOSSIP_ITEM(0, "Teleport to the Prison of Yogg-Saron.", GOSSIP_SENDER_MAIN, MADNESS);
|
||||
AddGossipItemFor(player, 0, "Teleport to the Prison of Yogg-Saron.", GOSSIP_SENDER_MAIN, MADNESS);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(14424, go->GetGUID());
|
||||
SendGossipMenuFor(player, 14424, go->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* /*go*/, uint32 sender, uint32 action) override
|
||||
{
|
||||
if (sender != GOSSIP_SENDER_MAIN || !player->getAttackers().empty())
|
||||
return true;
|
||||
|
|
@ -71,31 +71,31 @@ public:
|
|||
{
|
||||
case BASE_CAMP:
|
||||
player->TeleportTo(603, -706.122f, -92.6024f, 429.876f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case GROUNDS:
|
||||
player->TeleportTo(603, 131.248f, -35.3802f, 409.804f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case FORGE:
|
||||
player->TeleportTo(603, 553.233f, -12.3247f, 409.679f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case SCRAPYARD:
|
||||
player->TeleportTo(603, 926.292f, -11.4635f, 418.595f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case ANTECHAMBER:
|
||||
player->TeleportTo(603, 1498.09f, -24.246f, 420.967f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case WALKWAY:
|
||||
player->TeleportTo(603, 1859.45f, -24.1f, 448.9f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case CONSERVATORY:
|
||||
player->TeleportTo(603, 2086.27f, -24.3134f, 421.239f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case MADNESS:
|
||||
player->TeleportTo(603, 1854.8f, -11.46f, 334.57f, 4.8f);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
case SPARK:
|
||||
player->TeleportTo(603, 2517.9f, 2568.9f, 412.7f, 0);
|
||||
player->CLOSE_GOSSIP_MENU(); break;
|
||||
CloseGossipMenuFor(player); break;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -107,14 +107,14 @@ class npc_ulduar_keeper : public CreatureScript
|
|||
public:
|
||||
npc_ulduar_keeper() : CreatureScript("npc_ulduar_keeper_gossip") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Lend us your aid, keeper. Together we shall defeat Yogg-Saron.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Lend us your aid, keeper. Together we shall defeat Yogg-Saron.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* /*player*/, Creature* creature, uint32 /*uiSender*/, uint32 /*uiAction*/)
|
||||
bool OnGossipSelect(Player* /*player*/, Creature* creature, uint32 /*uiSender*/, uint32 /*uiAction*/) override
|
||||
{
|
||||
creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
uint8 _keeper = 0;
|
||||
|
|
@ -184,14 +184,14 @@ class npc_ulduar_snow_mound : public CreatureScript
|
|||
public:
|
||||
npc_ulduar_snow_mound() : CreatureScript("npc_ulduar_snow_mound") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_ulduar_snow_moundAI(pCreature);
|
||||
return new npc_ulduar_snow_moundAI(creature);
|
||||
}
|
||||
|
||||
struct npc_ulduar_snow_moundAI : public ScriptedAI
|
||||
{
|
||||
npc_ulduar_snow_moundAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
npc_ulduar_snow_moundAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
activated = false;
|
||||
me->CastSpell(me, 64615, true);
|
||||
|
|
@ -230,14 +230,14 @@ class npc_ulduar_storm_tempered_keeper : public CreatureScript
|
|||
public:
|
||||
npc_ulduar_storm_tempered_keeper() : CreatureScript("npc_ulduar_storm_tempered_keeper") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_ulduar_storm_tempered_keeperAI(pCreature);
|
||||
return new npc_ulduar_storm_tempered_keeperAI(creature);
|
||||
}
|
||||
|
||||
struct npc_ulduar_storm_tempered_keeperAI : public ScriptedAI
|
||||
{
|
||||
npc_ulduar_storm_tempered_keeperAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
npc_ulduar_storm_tempered_keeperAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
otherGUID = 0;
|
||||
}
|
||||
|
|
@ -319,14 +319,14 @@ class npc_ulduar_arachnopod_destroyer : public CreatureScript
|
|||
public:
|
||||
npc_ulduar_arachnopod_destroyer() : CreatureScript("npc_ulduar_arachnopod_destroyer") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_ulduar_arachnopod_destroyerAI(pCreature);
|
||||
return new npc_ulduar_arachnopod_destroyerAI(creature);
|
||||
}
|
||||
|
||||
struct npc_ulduar_arachnopod_destroyerAI : public ScriptedAI
|
||||
{
|
||||
npc_ulduar_arachnopod_destroyerAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
npc_ulduar_arachnopod_destroyerAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
_spawnedMechanic = false;
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, 64919, true); // Ice Nova from Ice Turret
|
||||
|
|
@ -480,14 +480,14 @@ class go_call_tram : public GameObjectScript
|
|||
public:
|
||||
go_call_tram() : GameObjectScript("go_call_tram") { }
|
||||
|
||||
bool OnGossipHello(Player* /*pPlayer*/, GameObject* pGo)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
InstanceScript* pInstance = pGo->GetInstanceScript();
|
||||
InstanceScript* pInstance = go->GetInstanceScript();
|
||||
|
||||
if (!pInstance)
|
||||
return false;
|
||||
|
||||
switch(pGo->GetEntry())
|
||||
switch(go->GetEntry())
|
||||
{
|
||||
case 194914:
|
||||
case 194438:
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ public:
|
|||
uint8 Counter;
|
||||
uint8 RandomUnfreeze[4];
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
|
|
@ -137,7 +137,7 @@ public:
|
|||
}
|
||||
while (!good);
|
||||
}
|
||||
|
||||
|
||||
events.Reset();
|
||||
summons.DoAction(ACTION_DESPAWN_ADDS);
|
||||
summons.DespawnAll();
|
||||
|
|
@ -306,7 +306,7 @@ public:
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
|
@ -352,7 +352,7 @@ public:
|
|||
EventMap events;
|
||||
SummonList summons;
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
summons.DespawnAll();
|
||||
events.Reset();
|
||||
|
|
@ -444,9 +444,9 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
{
|
||||
if (m_pInstance)
|
||||
if (m_pInstance)
|
||||
{
|
||||
if (Creature *palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
|
||||
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
|
||||
|
|
@ -479,7 +479,7 @@ public:
|
|||
InstanceScript *m_pInstance;
|
||||
EventMap events;
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
|
@ -554,9 +554,9 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
{
|
||||
if (m_pInstance)
|
||||
if (m_pInstance)
|
||||
{
|
||||
if (Creature *palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
|
||||
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
|
||||
|
|
@ -581,7 +581,7 @@ public:
|
|||
|
||||
struct npc_ravenous_furbolgAI : public ScriptedAI
|
||||
{
|
||||
npc_ravenous_furbolgAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
npc_ravenous_furbolgAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
m_pInstance = pCreature->GetInstanceScript();
|
||||
}
|
||||
|
|
@ -589,7 +589,7 @@ public:
|
|||
InstanceScript *m_pInstance;
|
||||
EventMap events;
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
|
@ -662,9 +662,9 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
{
|
||||
if (m_pInstance)
|
||||
if (m_pInstance)
|
||||
{
|
||||
if (Creature *palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
|
||||
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
|
||||
|
|
@ -689,7 +689,7 @@ public:
|
|||
|
||||
struct npc_frenzied_worgenAI : public ScriptedAI
|
||||
{
|
||||
npc_frenzied_worgenAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
npc_frenzied_worgenAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
m_pInstance = pCreature->GetInstanceScript();
|
||||
}
|
||||
|
|
@ -697,7 +697,7 @@ public:
|
|||
InstanceScript *m_pInstance;
|
||||
EventMap events;
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
|
@ -770,9 +770,9 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
{
|
||||
if (m_pInstance)
|
||||
if (m_pInstance)
|
||||
{
|
||||
if (Creature *palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
|
||||
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
|
||||
|
|
@ -782,20 +782,20 @@ public:
|
|||
};
|
||||
|
||||
class go_palehoof_sphere : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_palehoof_sphere() : GameObjectScript("go_palehoof_sphere") { }
|
||||
{
|
||||
public:
|
||||
go_palehoof_sphere() : GameObjectScript("go_palehoof_sphere") { }
|
||||
|
||||
bool OnGossipHello(Player * /*pPlayer*/, GameObject *pGO)
|
||||
bool OnGossipHello(Player * /*pPlayer*/, GameObject *go) override
|
||||
{
|
||||
InstanceScript *pInstance = pGO->GetInstanceScript();
|
||||
InstanceScript *pInstance = go->GetInstanceScript();
|
||||
|
||||
Creature *pPalehoof = ObjectAccessor::GetCreature(*pGO, pInstance ? pInstance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
|
||||
Creature *pPalehoof = ObjectAccessor::GetCreature(*go, pInstance ? pInstance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
|
||||
if (pPalehoof && pPalehoof->IsAlive())
|
||||
{
|
||||
// maybe these are hacks :(
|
||||
pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
pGO->SetGoState(GO_STATE_ACTIVE);
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
pPalehoof->AI()->DoAction(ACTION_START_EVENT);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ public:
|
|||
{
|
||||
if (IsHeroic())
|
||||
m_pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_LODI_DODI);
|
||||
|
||||
|
||||
m_pInstance->SetData(DATA_SKADI_THE_RUTHLESS, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ public:
|
|||
|
||||
void DoAction(int32 param)
|
||||
{
|
||||
|
||||
|
||||
if (param == ACTION_PHASE2)
|
||||
{
|
||||
SecondPhase = true;
|
||||
|
|
@ -306,7 +306,7 @@ public:
|
|||
AchievementHitCount++;
|
||||
if (AchievementHitCount >= 3 && m_pInstance)
|
||||
m_pInstance->SetData(DATA_SKADI_ACHIEVEMENT, true);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -333,7 +333,7 @@ public:
|
|||
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH_N, true);
|
||||
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 471.0f, -484.7f, 105, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
|
||||
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH_N, true);
|
||||
|
||||
|
||||
for (uint8 j = 0; j < 7; j++)
|
||||
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 477.0f, -507.0f+(j*3), 105.0f, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
|
||||
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH_N, true);
|
||||
|
|
@ -351,7 +351,7 @@ public:
|
|||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
if (m_pInstance)
|
||||
if (m_pInstance)
|
||||
m_pInstance->SetData(SKADI_IN_RANGE, 1);
|
||||
|
||||
me->MonsterTextEmote(EMOTE_IN_RANGE, 0, true);
|
||||
|
|
@ -408,7 +408,7 @@ public:
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
RemoveSkadi(true);
|
||||
}
|
||||
|
||||
|
|
@ -460,7 +460,7 @@ public:
|
|||
me->CastSpell(me, SPELL_FLAME_VISUAL, false);
|
||||
}
|
||||
|
||||
if (m_pInstance)
|
||||
if (m_pInstance)
|
||||
m_pInstance->SetData(SKADI_IN_RANGE, 0);
|
||||
|
||||
currentPos = targetPoint;
|
||||
|
|
@ -486,13 +486,13 @@ public:
|
|||
};
|
||||
|
||||
class go_harpoon_canon : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_harpoon_canon() : GameObjectScript("go_harpoon_canon") { }
|
||||
{
|
||||
public:
|
||||
go_harpoon_canon() : GameObjectScript("go_harpoon_canon") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, GameObject* pGO)
|
||||
bool OnGossipHello(Player* pPlayer, GameObject* go) override
|
||||
{
|
||||
InstanceScript *m_pInstance = pGO->GetInstanceScript();
|
||||
InstanceScript *m_pInstance = go->GetInstanceScript();
|
||||
if (m_pInstance && m_pInstance->GetData(DATA_SKADI_THE_RUTHLESS) == IN_PROGRESS)
|
||||
if (m_pInstance->GetData(SKADI_IN_RANGE) == 1)
|
||||
{
|
||||
|
|
@ -509,7 +509,7 @@ public:
|
|||
|
||||
grauf->AI()->DoAction(ACTION_MYGIRL_ACHIEVEMENT);
|
||||
}
|
||||
pGO->CastSpell((Unit*)NULL, SPELL_LAUNCH_HARPOON);
|
||||
go->CastSpell((Unit*)NULL, SPELL_LAUNCH_HARPOON);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ class go_vh_activation_crystal : public GameObjectScript
|
|||
public:
|
||||
go_vh_activation_crystal() : GameObjectScript("go_vh_activation_crystal") { }
|
||||
|
||||
bool OnGossipHello(Player* /*pPlayer*/, GameObject* pGo)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
if (InstanceScript* pInstance = pGo->GetInstanceScript())
|
||||
if (InstanceScript* pInstance = go->GetInstanceScript())
|
||||
pInstance->SetData(DATA_ACTIVATE_DEFENSE_SYSTEM, 1);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -41,42 +41,43 @@ class npc_vh_sinclari : public CreatureScript
|
|||
public:
|
||||
npc_vh_sinclari() : CreatureScript("npc_vh_sinclari") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (InstanceScript* pInstance = pCreature->GetInstanceScript())
|
||||
if (InstanceScript* pInstance = creature->GetInstanceScript())
|
||||
switch (pInstance->GetData(DATA_ENCOUNTER_STATUS))
|
||||
{
|
||||
case NOT_STARTED:
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
pPlayer->SEND_GOSSIP_MENU(13853, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_START_EVENT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, 13853, creature->GetGUID());
|
||||
break;
|
||||
case IN_PROGRESS:
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_I_WANT_IN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
pPlayer->SEND_GOSSIP_MENU(13853, pCreature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_I_WANT_IN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
SendGossipMenuFor(player, 13853, creature->GetGUID());
|
||||
break;
|
||||
default: // DONE or invalid
|
||||
pPlayer->SEND_GOSSIP_MENU(13910, pCreature->GetGUID());
|
||||
SendGossipMenuFor(player, 13910, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
pPlayer->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
switch(uiAction)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
if (InstanceScript *pInstance = pCreature->GetInstanceScript())
|
||||
CloseGossipMenuFor(player);
|
||||
if (InstanceScript *pInstance = creature->GetInstanceScript())
|
||||
pInstance->SetData(DATA_START_INSTANCE, 1);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
pPlayer->SEND_GOSSIP_MENU(13854, pCreature->GetGUID());
|
||||
SendGossipMenuFor(player, 13854, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
pPlayer->NearTeleportTo(playerTeleportPosition.GetPositionX(), playerTeleportPosition.GetPositionY(), playerTeleportPosition.GetPositionZ(), playerTeleportPosition.GetOrientation(), true);
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
player->NearTeleportTo(playerTeleportPosition.GetPositionX(), playerTeleportPosition.GetPositionY(), playerTeleportPosition.GetPositionZ(), playerTeleportPosition.GetOrientation(), true);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -101,9 +102,9 @@ class npc_vh_teleportation_portal : public CreatureScript
|
|||
public:
|
||||
npc_vh_teleportation_portal() : CreatureScript("npc_vh_teleportation_portal") { }
|
||||
|
||||
CreatureAI* GetAI(Creature *pCreature) const
|
||||
CreatureAI* GetAI(Creature *creature) const
|
||||
{
|
||||
return new npc_vh_teleportation_portalAI(pCreature);
|
||||
return new npc_vh_teleportation_portalAI(creature);
|
||||
}
|
||||
|
||||
struct npc_vh_teleportation_portalAI : public NullCreatureAI
|
||||
|
|
@ -390,7 +391,7 @@ struct violet_hold_trashAI : public npc_escortAI
|
|||
***********/
|
||||
|
||||
enum AzureInvaderSpells
|
||||
{
|
||||
{
|
||||
SPELL_CLEAVE = 15496,
|
||||
SPELL_IMPALE_N = 58459,
|
||||
SPELL_IMPALE_H = 59256,
|
||||
|
|
@ -470,9 +471,9 @@ class npc_azure_invader : public CreatureScript
|
|||
public:
|
||||
npc_azure_invader() : CreatureScript("npc_azure_invader") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_invaderAI (pCreature);
|
||||
return new npc_azure_invaderAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_invaderAI : public violet_hold_trashAI
|
||||
|
|
@ -543,9 +544,9 @@ class npc_azure_binder : public CreatureScript
|
|||
public:
|
||||
npc_azure_binder() : CreatureScript("npc_azure_binder") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_binderAI (pCreature);
|
||||
return new npc_azure_binderAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_binderAI : public violet_hold_trashAI
|
||||
|
|
@ -616,9 +617,9 @@ class npc_azure_mage_slayer : public CreatureScript
|
|||
public:
|
||||
npc_azure_mage_slayer() : CreatureScript("npc_azure_mage_slayer") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_mage_slayerAI (pCreature);
|
||||
return new npc_azure_mage_slayerAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_mage_slayerAI : public violet_hold_trashAI
|
||||
|
|
@ -671,9 +672,9 @@ class npc_azure_raider : public CreatureScript
|
|||
public:
|
||||
npc_azure_raider() : CreatureScript("npc_azure_raider") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_raiderAI (pCreature);
|
||||
return new npc_azure_raiderAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_raiderAI : public violet_hold_trashAI
|
||||
|
|
@ -718,9 +719,9 @@ class npc_azure_stalker : public CreatureScript
|
|||
public:
|
||||
npc_azure_stalker() : CreatureScript("npc_azure_stalker") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_stalkerAI (pCreature);
|
||||
return new npc_azure_stalkerAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_stalkerAI : public violet_hold_trashAI
|
||||
|
|
@ -779,9 +780,9 @@ class npc_azure_spellbreaker : public CreatureScript
|
|||
public:
|
||||
npc_azure_spellbreaker() : CreatureScript("npc_azure_spellbreaker") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_spellbreakerAI (pCreature);
|
||||
return new npc_azure_spellbreakerAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_spellbreakerAI : public violet_hold_trashAI
|
||||
|
|
@ -854,9 +855,9 @@ class npc_azure_captain : public CreatureScript
|
|||
public:
|
||||
npc_azure_captain() : CreatureScript("npc_azure_captain") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_captainAI (pCreature);
|
||||
return new npc_azure_captainAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_captainAI : public violet_hold_trashAI
|
||||
|
|
@ -901,9 +902,9 @@ class npc_azure_sorceror : public CreatureScript
|
|||
public:
|
||||
npc_azure_sorceror() : CreatureScript("npc_azure_sorceror") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_sorcerorAI (pCreature);
|
||||
return new npc_azure_sorcerorAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_sorcerorAI : public violet_hold_trashAI
|
||||
|
|
@ -964,9 +965,9 @@ class npc_azure_saboteur : public CreatureScript
|
|||
public:
|
||||
npc_azure_saboteur() : CreatureScript("npc_azure_saboteur") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_azure_saboteurAI (pCreature);
|
||||
return new npc_azure_saboteurAI (creature);
|
||||
}
|
||||
|
||||
struct npc_azure_saboteurAI : public npc_escortAI
|
||||
|
|
@ -1145,11 +1146,12 @@ class go_violet_hold_gate_lever : public GameObjectScript
|
|||
public:
|
||||
go_violet_hold_gate_lever() : GameObjectScript("go_violet_hold_gate_lever") { }
|
||||
|
||||
bool OnGossipHello(Player* plr, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (GameObject* gate = go->GetMap()->GetGameObject(MAKE_NEW_GUID(61606, 193019, HIGHGUID_GAMEOBJECT)))
|
||||
if (gate->getLootState() == GO_READY)
|
||||
gate->UseDoorOrButton(0, false, plr);
|
||||
gate->UseDoorOrButton(0, false, player);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -275,24 +275,24 @@ class npc_corastrasza : public CreatureScript
|
|||
public:
|
||||
npc_corastrasza() : CreatureScript("npc_corastrasza") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_ACES_HIGH) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_ACES_HIGH_DAILY) == QUEST_STATUS_INCOMPLETE) //It's the same dragon for both quests.
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_C_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_C_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
player->CastSpell(player, SPELL_SUMMON_WYRMREST_SKYTALON, true);
|
||||
player->CastSpell(player, SPELL_WYRMREST_SKYTALON_RIDE_PERIODIC, true);
|
||||
|
|
@ -321,23 +321,23 @@ class npc_iruk : public CreatureScript
|
|||
public:
|
||||
npc_iruk() : CreatureScript("npc_iruk") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_SPIRITS_WATCH_OVER_US) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_I, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_I, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXT_I, creature->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_I, creature);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->CastSpell(player, SPELL_CREATURE_TOTEM_OF_ISSLIRUK, true);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
|
||||
}
|
||||
|
|
@ -1106,7 +1106,7 @@ public:
|
|||
|
||||
uint64 uiPlayerGUID;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
if (uiEmoteState)
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, uiEmoteState);
|
||||
|
|
@ -1124,7 +1124,7 @@ public:
|
|||
me->RestoreFaction();
|
||||
}
|
||||
|
||||
void DoAction(int32 /*iParam*/)
|
||||
void DoAction(int32 /*iParam*/) override
|
||||
{
|
||||
me->StopMoving();
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
|
|
@ -1134,7 +1134,7 @@ public:
|
|||
uiEventPhase = 1;
|
||||
}
|
||||
|
||||
void SetGUID(uint64 uiGuid, int32 /*iId*/)
|
||||
void SetGUID(uint64 uiGuid, int32 /*iId*/) override
|
||||
{
|
||||
uiPlayerGUID = uiGuid;
|
||||
}
|
||||
|
|
@ -1146,7 +1146,7 @@ public:
|
|||
AttackStart(player);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 uiDiff)
|
||||
void UpdateAI(uint32 uiDiff) override
|
||||
{
|
||||
if (uiEventTimer && uiEventTimer <= uiDiff)
|
||||
{
|
||||
|
|
@ -1207,12 +1207,12 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hidden_cultistAI(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
uint32 uiGossipText = 0;
|
||||
const char* charGossipItem;
|
||||
|
|
@ -1237,23 +1237,23 @@ public:
|
|||
}
|
||||
|
||||
if (player->HasAura(SPELL_RIGHTEOUS_VISION) && player->GetQuestStatus(QUEST_THE_HUNT_IS_ON) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, charGossipItem, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, charGossipItem, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
player->SEND_GOSSIP_MENU(uiGossipText, creature->GetGUID());
|
||||
SendGossipMenuFor(player, uiGossipText, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->AI()->SetGUID(player->GetGUID());
|
||||
creature->AI()->DoAction(1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ enum DisguiseEvent
|
|||
ACTION_SHIRTS = 2,
|
||||
ACTION_PANTS = 3,
|
||||
ACTION_UNMENTIONABLES = 4,
|
||||
|
||||
|
||||
EVENT_INTRO_DH1 = 1,
|
||||
EVENT_INTRO_DH2 = 2,
|
||||
EVENT_INTRO_DH3 = 3,
|
||||
|
|
@ -133,13 +133,13 @@ public:
|
|||
{
|
||||
npc_shandy_dalaranAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
_events.Reset();
|
||||
_aquanosGUID = 0;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 /*data*/)
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 /*data*/) override
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
|
|
@ -177,8 +177,8 @@ public:
|
|||
Talk(SAY_SHANDY_WATER + _lSource - 1);
|
||||
_canWash = true;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
_events.Update(diff);
|
||||
switch (_events.GetEvent())
|
||||
|
|
@ -193,7 +193,7 @@ public:
|
|||
_events.ScheduleEvent(EVENT_INTRO_DH3, 6000);
|
||||
else
|
||||
RollTask();
|
||||
|
||||
|
||||
_events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_DH3:
|
||||
|
|
@ -202,7 +202,7 @@ public:
|
|||
_events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_DH4:
|
||||
Talk(SAY_SHANDY5);
|
||||
Talk(SAY_SHANDY5);
|
||||
_events.ScheduleEvent(EVENT_INTRO_DH5, 3000);
|
||||
_events.PopEvent();
|
||||
break;
|
||||
|
|
@ -234,30 +234,30 @@ public:
|
|||
bool _canWash;
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_SUITABLE_DISGUISE_A) == QUEST_STATUS_INCOMPLETE ||
|
||||
if (player->GetQuestStatus(QUEST_SUITABLE_DISGUISE_A) == QUEST_STATUS_INCOMPLETE ||
|
||||
player->GetQuestStatus(QUEST_SUITABLE_DISGUISE_H) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
if(player->GetTeamId() == TEAM_ALLIANCE)
|
||||
player->ADD_GOSSIP_ITEM(0, "Arcanist Tybalin said you might be able to lend me a certain tabard.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, 0, "Arcanist Tybalin said you might be able to lend me a certain tabard.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
else
|
||||
player->ADD_GOSSIP_ITEM(0, "Magister Hathorel said you might be able to lend me a certain tabard.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, 0, "Magister Hathorel said you might be able to lend me a certain tabard.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
creature->AI()->SetData(ACTION_SHANDY_INTRO, 0);
|
||||
break;
|
||||
|
|
@ -265,7 +265,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_shandy_dalaranAI(creature);
|
||||
}
|
||||
|
|
@ -760,7 +760,7 @@ public:
|
|||
}
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -247,15 +247,15 @@ class go_the_pearl_of_the_depths : public GameObjectScript
|
|||
public:
|
||||
go_the_pearl_of_the_depths() : GameObjectScript("go_the_pearl_of_the_depths") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, GameObject* pGo)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if( !pPlayer || !pGo )
|
||||
if(!player || !go)
|
||||
return true;
|
||||
|
||||
Creature* t = pPlayer->FindNearestCreature(NPC_CONVERSING_WITH_THE_DEPTHS_TRIGGER, 10.0f, true);
|
||||
if( t && t->AI() && CAST_AI(npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, t->AI()) )
|
||||
if( !CAST_AI(npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, t->AI())->running )
|
||||
CAST_AI(npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, t->AI())->Start(pPlayer->GetGUID());
|
||||
Creature* t = player->FindNearestCreature(NPC_CONVERSING_WITH_THE_DEPTHS_TRIGGER, 10.0f, true);
|
||||
if(t && t->AI() && CAST_AI(npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, t->AI()))
|
||||
if(!CAST_AI(npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, t->AI())->running)
|
||||
CAST_AI(npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, t->AI())->Start(player->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -343,7 +343,7 @@ public:
|
|||
{
|
||||
return NPC_INFINITE_ASSAILANT+urand(0,2);
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
|
|
@ -462,15 +462,15 @@ public:
|
|||
struct npc_future_youAI : public ScriptedAI
|
||||
{
|
||||
npc_future_youAI(Creature* c) : ScriptedAI(c) {}
|
||||
|
||||
void EnterEvadeMode()
|
||||
|
||||
void EnterEvadeMode()
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
|
||||
me->ClearUnitState(UNIT_STATE_EVADE);
|
||||
}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
void Reset()
|
||||
{
|
||||
if (me->ToTempSummon() && me->ToTempSummon()->GetSummoner())
|
||||
me->setFaction(me->ToTempSummon()->GetSummoner()->getFaction());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public:
|
|||
owner->CastSpell(owner, 44463, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SpellHit(Unit* caster, const SpellInfo* spellInfo)
|
||||
{
|
||||
if (caster && spellInfo->Id == 44454)
|
||||
|
|
@ -93,9 +93,9 @@ public:
|
|||
setphase(phase);
|
||||
timer = 0;
|
||||
}
|
||||
|
||||
|
||||
timer += diff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
|
@ -326,7 +326,7 @@ class npc_razael_and_lyana : public CreatureScript
|
|||
public:
|
||||
npc_razael_and_lyana() : CreatureScript("npc_razael_and_lyana") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -337,35 +337,35 @@ public:
|
|||
case NPC_RAZAEL:
|
||||
if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_RAZAEL))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_RAZAEL_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_RAZAEL1, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_RAZAEL_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL1, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case NPC_LYANA:
|
||||
if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_LYANA))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LYANA_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_LYANA1, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LYANA_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA1, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_RAZAEL2, creature->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL2, creature->GetGUID());
|
||||
player->TalkedToCreature(NPC_RAZAEL, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_LYANA2, creature->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA2, creature->GetGUID());
|
||||
player->TalkedToCreature(NPC_LYANA, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,8 +123,8 @@ public:
|
|||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* creature)
|
||||
{
|
||||
void JustSummoned(Creature* creature)
|
||||
{
|
||||
summons.Summon(creature);
|
||||
if (creature->GetEntry() != NPC_PRINCE)
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
|
||||
|
|
@ -191,7 +191,7 @@ public:
|
|||
me->MonsterYell("Khit'rix the Dark Master has been defeated by $N and his band of companions. Let the next challenge be issued!", LANG_UNIVERSAL, ObjectAccessor::GetPlayer(*me, playerGUID));
|
||||
break;
|
||||
case QUEST_BFV_SIGRID:
|
||||
me->MonsterYell("$N has defeated Sigrid Iceborn for a second time. Well, this time he did it with the help of his friends, but a win is a win!", LANG_UNIVERSAL, ObjectAccessor::GetPlayer(*me, playerGUID));
|
||||
me->MonsterYell("$N has defeated Sigrid Iceborn for a second time. Well, this time he did it with the help of his friends, but a win is a win!", LANG_UNIVERSAL, ObjectAccessor::GetPlayer(*me, playerGUID));
|
||||
break;
|
||||
case QUEST_BFV_CARNAGE:
|
||||
me->MonsterYell("The horror known as Carnage is no more. Could it be that $N is truly worthy of battle in Valhalas? We shall see.", LANG_UNIVERSAL, ObjectAccessor::GetPlayer(*me, playerGUID));
|
||||
|
|
@ -368,7 +368,7 @@ public:
|
|||
CombatAI::Reset();
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
attackTimer += diff;
|
||||
if (attackTimer >= 1500)
|
||||
|
|
@ -459,7 +459,7 @@ class npc_lord_arete : public CreatureScript
|
|||
{
|
||||
_landgrenGUID = 0;
|
||||
_landgrenSoulGUID = 0;
|
||||
|
||||
|
||||
events.Reset();
|
||||
events.RescheduleEvent(EVENT_START, 1000);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
|
|
@ -617,7 +617,7 @@ class npc_boneguard_footman : public CreatureScript
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ScriptedAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
|
@ -666,9 +666,9 @@ class npc_tirions_gambit_tirion : public CreatureScript
|
|||
public:
|
||||
npc_tirions_gambit_tirion(): CreatureScript("npc_tirions_gambit_tirion"){}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->AI()->DoAction(ACTION_START_EVENT);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -682,20 +682,19 @@ class npc_tirions_gambit_tirion : public CreatureScript
|
|||
EventMap events;
|
||||
SummonList summons;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
me->setActive(false);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data)
|
||||
void SetData(uint32 type, uint32 data) override
|
||||
{
|
||||
if (type == 1 && data == 1)
|
||||
events.ScheduleEvent(EVENT_SCENE_0+30, 10000);
|
||||
}
|
||||
|
||||
|
||||
void DoAction(int32 param)
|
||||
void DoAction(int32 param) override
|
||||
{
|
||||
if (param == ACTION_START_EVENT)
|
||||
{
|
||||
|
|
@ -718,7 +717,7 @@ class npc_tirions_gambit_tirion : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon)
|
||||
void JustSummoned(Creature* summon) override
|
||||
{
|
||||
summons.Summon(summon);
|
||||
if (summon->GetEntry() == NPC_CHOSEN_ZEALOT || summon->GetEntry() == NPC_TIRION_LICH_KING)
|
||||
|
|
@ -731,12 +730,12 @@ class npc_tirions_gambit_tirion : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void SummonedCreatureDespawn(Creature* summon)
|
||||
void SummonedCreatureDespawn(Creature* summon) override
|
||||
{
|
||||
summons.Despawn(summon);
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 pointId)
|
||||
void WaypointReached(uint32 pointId) override
|
||||
{
|
||||
switch (pointId)
|
||||
{
|
||||
|
|
@ -797,7 +796,7 @@ class npc_tirions_gambit_tirion : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateEscortAI(uint32 diff)
|
||||
void UpdateEscortAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.ExecuteEvent())
|
||||
|
|
@ -1016,7 +1015,7 @@ class npc_tirions_gambit_tirion : public CreatureScript
|
|||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_tirions_gambit_tirionAI(creature);
|
||||
}
|
||||
|
|
@ -1123,7 +1122,7 @@ class spell_charge_shield_bomber : public SpellScriptLoader
|
|||
Aura* aura = ship->GetAura(SPELL_INFRA_GREEN_SHIELD);
|
||||
if (!aura)
|
||||
return;
|
||||
|
||||
|
||||
aura->ModStackAmount(GetEffectValue() - 1);
|
||||
}
|
||||
|
||||
|
|
@ -1304,7 +1303,7 @@ class npc_infra_green_bomber_generic : public CreatureScript
|
|||
me->MonsterTextEmote("Your Vehicle is burning!", GetSummoner(), true);
|
||||
passenger->AddAura(SPELL_BURNING, passenger);
|
||||
}
|
||||
|
||||
|
||||
for (uint8 seat = 3; seat <= 5; ++seat)
|
||||
if (Unit* banner = kit->GetPassenger(seat))
|
||||
if (!banner->HasAura(SPELL_COSMETIC_FIRE))
|
||||
|
|
@ -1373,7 +1372,7 @@ class npc_infra_green_bomber_generic : public CreatureScript
|
|||
if (Unit* banner = kit->GetPassenger(seat))
|
||||
if (banner->HasAura(SPELL_COSMETIC_FIRE))
|
||||
fireCount++;
|
||||
|
||||
|
||||
if (fireCount)
|
||||
Unit::DealDamage(me, me, 3000*fireCount, NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_FIRE);
|
||||
else // Heal
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ public:
|
|||
events.RescheduleEvent(EVENT_ARTRUIS_HP_CHECK, 1000);
|
||||
events.RescheduleEvent(EVENT_ARTRUIS_TALK1, 6000);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
if (GameObject* go = me->SummonGameObject(GO_ARTRUIS_PHYLACTERY, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 600000))
|
||||
|
|
@ -312,7 +312,7 @@ public:
|
|||
uint8 playeraction;
|
||||
|
||||
npc_still_at_it_triggerAI(Creature* pCreature) : NullCreatureAI(pCreature) {}
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
running = false;
|
||||
|
|
@ -357,7 +357,7 @@ public:
|
|||
{
|
||||
currentstep++;
|
||||
uint8 s = urand(0,2);
|
||||
|
||||
|
||||
if (Creature* th = ObjectAccessor::GetCreature(*me, thunderbrewGUID))
|
||||
th->HandleEmoteCommand(EMOTE_ONESHOT_CHEER_NO_SHEATHE);
|
||||
|
||||
|
|
@ -447,7 +447,7 @@ class npc_mcmanus : public CreatureScript
|
|||
public:
|
||||
npc_mcmanus() : CreatureScript("npc_mcmanus") {}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!player)
|
||||
return true;
|
||||
|
|
@ -456,13 +456,13 @@ public:
|
|||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(12644) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I'm ready to start the distillation, uh, Tipsy.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "I'm ready to start the distillation, uh, Tipsy.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
if (!player)
|
||||
return true;
|
||||
|
|
@ -479,7 +479,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
@ -489,7 +489,7 @@ class go_pressure_valve : public GameObjectScript
|
|||
public:
|
||||
go_pressure_valve() : GameObjectScript("go_pressure_valve") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (!player)
|
||||
return true;
|
||||
|
|
@ -508,7 +508,7 @@ class go_brazier : public GameObjectScript
|
|||
public:
|
||||
go_brazier() : GameObjectScript("go_brazier") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (!player)
|
||||
return true;
|
||||
|
|
@ -585,33 +585,33 @@ class npc_vekjik : public CreatureScript
|
|||
public:
|
||||
npc_vekjik() : CreatureScript("npc_vekjik") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_MAKING_PEACE) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_VEKJIK_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VEKJIK1, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_VEKJIK_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_VEKJIK1, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_VEKJIK_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VEKJIK2, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_VEKJIK_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_VEKJIK2, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->AI()->Talk(SAY_TEXTID_VEKJIK1, player);
|
||||
player->AreaExploredOrEventHappens(QUEST_MAKING_PEACE);
|
||||
//creature->CastSpell(player, SPELL_FREANZYHEARTS_FURY, true);
|
||||
|
|
@ -647,34 +647,34 @@ class npc_avatar_of_freya : public CreatureScript
|
|||
public:
|
||||
npc_avatar_of_freya() : CreatureScript("npc_avatar_of_freya") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_FREYA_PACT) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXTID_AVATAR1, creature->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_AVATAR1, creature);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXTID_AVATAR2, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_AVATAR2, creature);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXTID_AVATAR3, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_AVATAR3, creature);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->CastSpell(player, SPELL_FREYA_CONVERSATION, true);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -1074,32 +1074,32 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_adventurous_dwarfAI(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_12634) != QUEST_STATUS_INCOMPLETE)
|
||||
return false;
|
||||
|
||||
if (player->GetItemCount(ITEM_ORANGE) < 1)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OPTION_ORANGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_OPTION_ORANGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
if (player->GetItemCount(ITEM_BANANAS) < 2)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OPTION_BANANAS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_OPTION_BANANAS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
|
||||
if (player->GetItemCount(ITEM_PAPAYA) < 1)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OPTION_PAPAYA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_OPTION_PAPAYA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
|
||||
player->PlayerTalkClass->SendGossipMenu(GOSSIP_MENU_DWARF, creature->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_MENU_DWARF, creature);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
uint32 spellId = 0;
|
||||
|
||||
switch (action)
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ public:
|
|||
uint32 hpTimer;
|
||||
bool charging;
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
spellTimer = 0;
|
||||
hpTimer = 0;
|
||||
|
|
@ -244,12 +244,12 @@ public:
|
|||
{
|
||||
events.Reset();
|
||||
if (me->GetEntry() == NPC_TIME_LOST_PROTO_DRAKE)
|
||||
{
|
||||
{
|
||||
events.ScheduleEvent(SPELL_TIME_SHIFT, 10000);
|
||||
events.ScheduleEvent(SPELL_TIME_LAPSE, 5000);
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
events.ScheduleEvent(SPELL_FROST_BREATH, 8000);
|
||||
events.ScheduleEvent(SPELL_FROST_CLEAVE, 5000);
|
||||
}
|
||||
|
|
@ -344,7 +344,7 @@ public:
|
|||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset()
|
||||
{
|
||||
me->SetRegeneratingHealth(true);
|
||||
me->SetSpeed(MOVE_RUN, 1.14f, true); // ZOMG!
|
||||
|
|
@ -470,7 +470,7 @@ public:
|
|||
if (setCharm)
|
||||
{
|
||||
setCharm = false;
|
||||
|
||||
|
||||
if (Player* charmer = GetValidPlayer())
|
||||
{
|
||||
me->setFaction(16);
|
||||
|
|
@ -747,7 +747,7 @@ public:
|
|||
{
|
||||
if (sender == GOSSIP_ID && action == GOSSIP_OPTION_ID)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
me->setFaction(113);
|
||||
npc_escortAI::Start(true, true, player->GetGUID());
|
||||
}
|
||||
|
|
@ -783,7 +783,7 @@ class npc_roxi_ramrocket : public CreatureScript
|
|||
public:
|
||||
npc_roxi_ramrocket() : CreatureScript("npc_roxi_ramrocket") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
//Quest Menu
|
||||
if (creature->IsQuestGiver())
|
||||
|
|
@ -791,20 +791,20 @@ public:
|
|||
|
||||
//Trainer Menu
|
||||
if ( creature->IsTrainer() )
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
//Vendor Menu
|
||||
if ( creature->IsVendor() )
|
||||
if (player->HasSpell(SPELL_MECHANO_HOG) || player->HasSpell(SPELL_MEKGINEERS_CHOPPER))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_TRAIN:
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ class npc_wg_demolisher_engineer : public CreatureScript
|
|||
public:
|
||||
npc_wg_demolisher_engineer() : CreatureScript("npc_wg_demolisher_engineer") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -138,24 +138,24 @@ class npc_wg_demolisher_engineer : public CreatureScript
|
|||
if (canBuild(creature))
|
||||
{
|
||||
if (player->HasAura(SPELL_CORPORAL))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
else if (player->HasAura(SPELL_LIEUTENANT))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
}
|
||||
}
|
||||
else
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_DEMO4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender */ , uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender */ , uint32 action) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (canBuild(creature))
|
||||
{
|
||||
|
|
@ -200,7 +200,7 @@ class npc_wg_spirit_guide : public CreatureScript
|
|||
public:
|
||||
npc_wg_spirit_guide() : CreatureScript("npc_wg_spirit_guide") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -212,15 +212,15 @@ class npc_wg_spirit_guide : public CreatureScript
|
|||
GraveyardVect graveyard = wintergrasp->GetGraveyardVector();
|
||||
for (uint8 i = 0; i < graveyard.size(); i++)
|
||||
if (graveyard[i]->GetControlTeamId() == player->GetTeamId())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, sObjectMgr->GetTrinityStringForDBCLocale(((BfGraveyardWG*)graveyard[i])->GetTextId()), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + i);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, sObjectMgr->GetTrinityStringForDBCLocale(((BfGraveyardWG*)graveyard[i])->GetTextId()), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + i);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature */ , uint32 /*sender */ , uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature */ , uint32 /*sender */ , uint32 action) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
|
||||
if (wintergrasp)
|
||||
|
|
@ -241,14 +241,14 @@ class npc_wg_spirit_guide : public CreatureScript
|
|||
me->setActive(true);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 /* diff */)
|
||||
void UpdateAI(uint32 /*diff*/) override
|
||||
{
|
||||
if (!me->HasUnitState(UNIT_STATE_CASTING))
|
||||
DoCast(me, SPELL_CHANNEL_SPIRIT_HEAL);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI *GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_wg_spirit_guideAI(creature);
|
||||
}
|
||||
|
|
@ -274,7 +274,7 @@ class npc_wg_queue : public CreatureScript
|
|||
public:
|
||||
npc_wg_queue() : CreatureScript("npc_wg_queue") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!sWorld->getBoolConfig(CONFIG_MINIGOB_MANABONK))
|
||||
return false;
|
||||
|
|
@ -288,8 +288,8 @@ class npc_wg_queue : public CreatureScript
|
|||
|
||||
if (wintergrasp->IsWarTime())
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT_19, "Queue for Wintergrasp.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(wintergrasp->GetDefenderTeam()? WG_NPCQUEUE_TEXT_H_WAR : WG_NPCQUEUE_TEXT_A_WAR, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT_19, "Queue for Wintergrasp.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, wintergrasp->GetDefenderTeam()? WG_NPCQUEUE_TEXT_H_WAR : WG_NPCQUEUE_TEXT_A_WAR, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -297,18 +297,18 @@ class npc_wg_queue : public CreatureScript
|
|||
player->SendUpdateWorldState(4354, time(NULL) + timer);
|
||||
if (timer < 15 * MINUTE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Queue for Wintergrasp.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(wintergrasp->GetDefenderTeam() ? WG_NPCQUEUE_TEXT_H_QUEUE : WG_NPCQUEUE_TEXT_A_QUEUE, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Queue for Wintergrasp.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, wintergrasp->GetDefenderTeam() ? WG_NPCQUEUE_TEXT_H_QUEUE : WG_NPCQUEUE_TEXT_A_QUEUE, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(wintergrasp->GetDefenderTeam() ? WG_NPCQUEUE_TEXT_H_NOWAR : WG_NPCQUEUE_TEXT_A_NOWAR, creature->GetGUID());
|
||||
SendGossipMenuFor(player, wintergrasp->GetDefenderTeam() ? WG_NPCQUEUE_TEXT_H_NOWAR : WG_NPCQUEUE_TEXT_A_NOWAR, creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature */ , uint32 /*sender */ , uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature */ , uint32 /*sender */ , uint32 /*action*/) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
|
||||
if (!wintergrasp)
|
||||
|
|
@ -339,7 +339,7 @@ class npc_wg_queue : public CreatureScript
|
|||
|
||||
EventMap events;
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (CONFIG_WINTERGRASP_ENABLE == false)
|
||||
return;
|
||||
|
|
@ -382,7 +382,7 @@ class npc_wg_queue : public CreatureScript
|
|||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_wg_queueAI(creature);
|
||||
}
|
||||
|
|
@ -393,7 +393,7 @@ class npc_wg_quest_giver : public CreatureScript
|
|||
public:
|
||||
npc_wg_quest_giver() : CreatureScript("npc_wg_quest_giver") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -566,12 +566,12 @@ class npc_wg_quest_giver : public CreatureScript
|
|||
}
|
||||
}
|
||||
}
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
uint32 GetDialogStatus(Player* player, Creature* creature)
|
||||
{
|
||||
uint32 GetDialogStatus(Player* player, Creature* creature) override
|
||||
{
|
||||
QuestRelationBounds qr = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
|
||||
QuestRelationBounds qir = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
|
||||
QuestGiverStatus result = DIALOG_STATUS_NONE;
|
||||
|
|
@ -768,7 +768,7 @@ class go_wg_vehicle_teleporter : public GameObjectScript
|
|||
if (IsFriendly(passenger))
|
||||
if (Creature* teleportTrigger = passenger->SummonTrigger(go->GetPositionX()-60.0f, go->GetPositionY(), go->GetPositionZ()+1.0f, cVeh->GetOrientation(), 1000))
|
||||
return teleportTrigger;
|
||||
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ public:
|
|||
|
||||
};
|
||||
|
||||
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
|
||||
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) override
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_ALCHEMIST_APPRENTICE)
|
||||
if (creature->AI() && CAST_AI(npc_finklestein::npc_finklesteinAI, creature->AI()))
|
||||
|
|
@ -171,31 +171,31 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_ALCHEMIST_APPRENTICE) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
if (creature->AI() && CAST_AI(npc_finklestein::npc_finklesteinAI, creature->AI()))
|
||||
if (!CAST_AI(npc_finklestein::npc_finklesteinAI, creature->AI())->IsPlayerOnTask(player->GetGUID()))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I'm ready to begin. What is the first ingredient you require?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "I'm ready to begin. What is the first ingredient you require?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
if (creature->AI() && CAST_AI(npc_finklestein::npc_finklesteinAI, creature->AI()))
|
||||
CAST_AI(npc_finklestein::npc_finklesteinAI, creature->AI())->StartNextTask(player->GetGUID(), 1);
|
||||
}
|
||||
|
|
@ -203,7 +203,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI *GetAI(Creature* creature) const
|
||||
CreatureAI *GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_finklesteinAI(creature);
|
||||
}
|
||||
|
|
@ -214,7 +214,7 @@ class go_finklestein_cauldron : public GameObjectScript
|
|||
public:
|
||||
go_finklestein_cauldron() : GameObjectScript("go_finklestein_cauldron") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
Creature* finklestein = go->FindNearestCreature(NPC_FINKLESTEIN, 30.0f, true);
|
||||
if (finklestein && finklestein->AI())
|
||||
|
|
@ -580,7 +580,7 @@ public:
|
|||
playerGUID = 0;
|
||||
EnterEvadeMode();
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (me->getFaction() == 35 || me->HasUnitState(UNIT_STATE_CASTING|UNIT_STATE_STUNNED))
|
||||
|
|
@ -856,7 +856,7 @@ public:
|
|||
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RECRUIT_1, 100);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
me->CastSpell(player, SPELL_QUEST_CREDIT, true);
|
||||
me->SetFacingToObject(player);
|
||||
}
|
||||
|
|
@ -889,7 +889,7 @@ class go_scourge_enclosure : public GameObjectScript
|
|||
public:
|
||||
go_scourge_enclosure() : GameObjectScript("go_scourge_enclosure") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(QUEST_OUR_ONLY_HOPE) == QUEST_STATUS_INCOMPLETE)
|
||||
|
|
|
|||
|
|
@ -793,7 +793,7 @@ class npc_akama_illidan : public CreatureScript
|
|||
|
||||
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
me->setActive(true);
|
||||
|
||||
|
|
|
|||
|
|
@ -411,7 +411,7 @@ class npc_akama_shade : public CreatureScript
|
|||
{
|
||||
if (action == 0)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
events2.ScheduleEvent(EVENT_AKAMA_START_ENCOUNTER, 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ class boss_the_lurker_below : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
if (target)
|
||||
if (target)
|
||||
me->AttackerStateUpdate(target);
|
||||
else if ((target = SelectTarget(SELECT_TARGET_RANDOM, 0)))
|
||||
me->CastSpell(target, SPELL_WATER_BOLT, false);
|
||||
|
|
@ -199,7 +199,7 @@ class go_strange_pool : public GameObjectScript
|
|||
public:
|
||||
go_strange_pool() : GameObjectScript("go_strange_pool") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (InstanceScript* instance = go->GetInstanceScript())
|
||||
if (roll_chance_i(instance->GetBossState(DATA_THE_LURKER_BELOW) != DONE ? 25 : 0) && !instance->IsEncounterInProgress())
|
||||
|
|
|
|||
|
|
@ -318,46 +318,46 @@ class go_ahune_ice_stone : public GameObjectScript
|
|||
public:
|
||||
go_ahune_ice_stone() : GameObjectScript("go_ahune_ice_stone") { }
|
||||
|
||||
bool OnGossipHello(Player *pPlayer, GameObject *pGO)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (!pPlayer || !pGO)
|
||||
if (!player || !go)
|
||||
return true;
|
||||
if (!pPlayer->HasItemCount(ITEM_MAGMA_TOTEM))
|
||||
if (!player->HasItemCount(ITEM_MAGMA_TOTEM))
|
||||
return true;
|
||||
if (pGO->FindNearestCreature(NPC_AHUNE, 200.0f, true))
|
||||
if (go->FindNearestCreature(NPC_AHUNE, 200.0f, true))
|
||||
return true;
|
||||
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Disturb the stone and summon Lord Ahune.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1337);
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXT_ID, pGO->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Disturb the stone and summon Lord Ahune.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1337);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_ID, go->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player *pPlayer, GameObject *pGO, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
if (!pPlayer || !pGO)
|
||||
if (!player || !go)
|
||||
return true;
|
||||
if (action != GOSSIP_ACTION_INFO_DEF+1337)
|
||||
return true;
|
||||
if (!pPlayer->HasItemCount(ITEM_MAGMA_TOTEM))
|
||||
if (!player->HasItemCount(ITEM_MAGMA_TOTEM))
|
||||
return true;
|
||||
if (pGO->FindNearestCreature(NPC_AHUNE, 200.0f, true))
|
||||
if (go->FindNearestCreature(NPC_AHUNE, 200.0f, true))
|
||||
return true;
|
||||
|
||||
if (Creature* c = pGO->SummonCreature(NPC_AHUNE, AhuneSummonPos, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
if (Creature* c = go->SummonCreature(NPC_AHUNE, AhuneSummonPos, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
{
|
||||
pPlayer->DestroyItemCount(ITEM_MAGMA_TOTEM, 1, true, false);
|
||||
pPlayer->AreaExploredOrEventHappens(QUEST_SUMMON_AHUNE); // auto rewarded
|
||||
player->DestroyItemCount(ITEM_MAGMA_TOTEM, 1, true, false);
|
||||
player->AreaExploredOrEventHappens(QUEST_SUMMON_AHUNE); // auto rewarded
|
||||
|
||||
c->SetVisible(false);
|
||||
c->SetDisplayId(AHUNE_DEFAULT_MODEL);
|
||||
c->SetFloatValue(UNIT_FIELD_COMBATREACH, 18.0f);
|
||||
CAST_AI(boss_ahune::boss_ahuneAI, c->AI())->InvokerGUID = pPlayer->GetGUID();
|
||||
if (Creature* bunny = pGO->SummonCreature(NPC_AHUNE_SUMMON_LOC_BUNNY, AhuneSummonPos, TEMPSUMMON_TIMED_DESPAWN, 12000))
|
||||
if (Creature* crystal_trigger = pGO->SummonCreature(WORLD_TRIGGER, pGO->GetPositionX(), pGO->GetPositionY(), 5.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 12000))
|
||||
CAST_AI(boss_ahune::boss_ahuneAI, c->AI())->InvokerGUID = player->GetGUID();
|
||||
if (Creature* bunny = go->SummonCreature(NPC_AHUNE_SUMMON_LOC_BUNNY, AhuneSummonPos, TEMPSUMMON_TIMED_DESPAWN, 12000))
|
||||
if (Creature* crystal_trigger = go->SummonCreature(WORLD_TRIGGER, go->GetPositionX(), go->GetPositionY(), 5.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 12000))
|
||||
crystal_trigger->CastSpell(bunny, SPELL_STARTING_BEAM, false);
|
||||
}
|
||||
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class go_main_chambers_access_panel : public GameObjectScript
|
|||
public:
|
||||
go_main_chambers_access_panel() : GameObjectScript("go_main_chambers_access_panel") { }
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
InstanceScript* instance = go->GetInstanceScript();
|
||||
if (!instance)
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ class boss_broggok : public CreatureScript
|
|||
me->CastSpell(me, SPELL_POISON_CLOUD, false);
|
||||
events.RepeatEvent(20000);
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
@ -138,7 +138,7 @@ class go_broggok_lever : public GameObjectScript
|
|||
public:
|
||||
go_broggok_lever() : GameObjectScript("go_broggok_lever") {}
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
if (InstanceScript* instance = go->GetInstanceScript())
|
||||
if (instance->GetData(DATA_BROGGOK) != DONE && instance->GetData(DATA_BROGGOK) != IN_PROGRESS)
|
||||
|
|
|
|||
|
|
@ -890,7 +890,7 @@ class go_simon_cluster : public GameObjectScript
|
|||
public:
|
||||
go_simon_cluster() : GameObjectScript("go_simon_cluster") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (Creature* bunny = go->FindNearestCreature(NPC_SIMON_BUNNY, 12.0f, true))
|
||||
bunny->AI()->SetData(go->GetEntry(), 0);
|
||||
|
|
@ -916,16 +916,16 @@ class go_apexis_relic : public GameObjectScript
|
|||
public:
|
||||
go_apexis_relic() : GameObjectScript("go_apexis_relic") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
player->PrepareGossipMenu(go, go->GetGOInfo()->questgiver.gossipID);
|
||||
player->SendPreparedGossip(go);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
bool large = (go->GetEntry() == GO_APEXIS_MONUMENT);
|
||||
if (player->HasItemCount(ITEM_APEXIS_SHARD, large ? 35 : 1))
|
||||
|
|
|
|||
|
|
@ -276,42 +276,43 @@ enum CorkiData
|
|||
class go_corkis_prison : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_corkis_prison() : GameObjectScript("go_corkis_prison") { }
|
||||
go_corkis_prison() : GameObjectScript("go_corkis_prison") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
{
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
if (go->GetEntry() == GO_CORKIS_PRISON)
|
||||
{
|
||||
if (Creature* corki = go->FindNearestCreature(NPC_CORKI, 25, true))
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+5, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_1, 0);
|
||||
}
|
||||
}
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
if (go->GetEntry() == GO_CORKIS_PRISON)
|
||||
{
|
||||
if (Creature* corki = go->FindNearestCreature(NPC_CORKI, 25, true))
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+5, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (go->GetEntry() == GO_CORKIS_PRISON_2)
|
||||
{
|
||||
if (Creature* corki = go->FindNearestCreature(NPC_CORKI_2, 25, true))
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()-5, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_2, 0);
|
||||
}
|
||||
}
|
||||
if (go->GetEntry() == GO_CORKIS_PRISON_2)
|
||||
{
|
||||
if (Creature* corki = go->FindNearestCreature(NPC_CORKI_2, 25, true))
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()-5, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_2, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (go->GetEntry() == GO_CORKIS_PRISON_3)
|
||||
{
|
||||
if (Creature* corki = go->FindNearestCreature(NPC_CORKI_3, 25, true))
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+4, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_3, 0);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (go->GetEntry() == GO_CORKIS_PRISON_3)
|
||||
{
|
||||
if (Creature* corki = go->FindNearestCreature(NPC_CORKI_3, 25, true))
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+4, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_3, 0);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
class npc_corki : public CreatureScript
|
||||
|
|
@ -567,24 +568,26 @@ enum FindingTheSurvivorsData
|
|||
|
||||
class go_warmaul_prison : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_warmaul_prison() : GameObjectScript("go_warmaul_prison") { }
|
||||
public:
|
||||
go_warmaul_prison() : GameObjectScript("go_warmaul_prison") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
|
||||
if (player->GetQuestStatus(QUEST_FINDING_THE_SURVIVORS) != QUEST_STATUS_INCOMPLETE)
|
||||
return false;
|
||||
|
||||
if (Creature* prisoner = go->FindNearestCreature(NPC_MAGHAR_PRISONER, 5.0f))
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(QUEST_FINDING_THE_SURVIVORS) != QUEST_STATUS_INCOMPLETE)
|
||||
return false;
|
||||
player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0);
|
||||
|
||||
if (Creature* prisoner = go->FindNearestCreature(NPC_MAGHAR_PRISONER, 5.0f))
|
||||
{
|
||||
player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0);
|
||||
|
||||
prisoner->AI()->Talk(SAY_FREE, player);
|
||||
prisoner->DespawnOrUnsummon(6000);
|
||||
}
|
||||
return true;
|
||||
prisoner->AI()->Talk(SAY_FREE, player);
|
||||
prisoner->DespawnOrUnsummon(6000);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_nagrand()
|
||||
|
|
|
|||
|
|
@ -53,12 +53,7 @@ enum saeed
|
|||
class npc_captain_saeed : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_captain_saeed() : CreatureScript("npc_captain_saeed") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_captain_saeedAI(creature);
|
||||
}
|
||||
npc_captain_saeed() : CreatureScript("npc_captain_saeed") { }
|
||||
|
||||
struct npc_captain_saeedAI : public npc_escortAI
|
||||
{
|
||||
|
|
@ -68,7 +63,7 @@ class npc_captain_saeed : public CreatureScript
|
|||
EventMap events;
|
||||
bool started, fight;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
if (!summons.empty())
|
||||
{
|
||||
|
|
@ -87,7 +82,7 @@ class npc_captain_saeed : public CreatureScript
|
|||
me->RestoreFaction();
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (Player* player = GetPlayerForEscort())
|
||||
if (me->GetDistance(who) < 10.0f && !me->GetVictim())
|
||||
|
|
@ -100,7 +95,7 @@ class npc_captain_saeed : public CreatureScript
|
|||
npc_escortAI::MoveInLineOfSight(who);
|
||||
}
|
||||
|
||||
void SetGUID(uint64 playerGUID, int32 type)
|
||||
void SetGUID(uint64 playerGUID, int32 type) override
|
||||
{
|
||||
if (type == DATA_START_ENCOUNTER)
|
||||
{
|
||||
|
|
@ -137,7 +132,7 @@ class npc_captain_saeed : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void EnterEvadeMode()
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
if (fight)
|
||||
SetEscortPaused(false);
|
||||
|
|
@ -165,7 +160,7 @@ class npc_captain_saeed : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 i)
|
||||
void WaypointReached(uint32 i) override
|
||||
{
|
||||
Player* player = GetPlayerForEscort();
|
||||
if (!player)
|
||||
|
|
@ -188,12 +183,12 @@ class npc_captain_saeed : public CreatureScript
|
|||
}
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
SummonsAction(who);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
Player* player = GetPlayerForEscort();
|
||||
if (player)
|
||||
|
|
@ -202,12 +197,12 @@ class npc_captain_saeed : public CreatureScript
|
|||
summons.DespawnAll();
|
||||
}
|
||||
|
||||
void CorpseRemoved(uint32&)
|
||||
void CorpseRemoved(uint32&) override
|
||||
{
|
||||
summons.DespawnAll();
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 data) const
|
||||
uint32 GetData(uint32 data) const override
|
||||
{
|
||||
if (data == 1)
|
||||
return (uint32)started;
|
||||
|
|
@ -215,7 +210,7 @@ class npc_captain_saeed : public CreatureScript
|
|||
return 0;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
|
||||
|
|
@ -248,10 +243,9 @@ class npc_captain_saeed : public CreatureScript
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
creature->AI()->SetGUID(player->GetGUID(), DATA_START_ENCOUNTER);
|
||||
|
|
@ -262,11 +256,11 @@ class npc_captain_saeed : public CreatureScript
|
|||
creature->AI()->SetGUID(player->GetGUID(), DATA_START_FIGHT);
|
||||
}
|
||||
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -274,15 +268,20 @@ class npc_captain_saeed : public CreatureScript
|
|||
if (player->GetQuestStatus(QUEST_DIMENSIUS_DEVOURING) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
if (!creature->AI()->GetData(1))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Let's move out.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Let's move out.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
else
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Let's start the battle.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Let's start the battle.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_captain_saeedAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -603,27 +602,27 @@ public:
|
|||
//if (quest->GetQuestId() == QUEST_DIMENSIUS)
|
||||
//creature->AI()->Talk(WHISPER_DABIRI, player);
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
creature->CastSpell(player, SPELL_PHASE_DISTRUPTOR, false);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_ON_NETHERY_WINGS) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(29778))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public:
|
|||
class spell_q10563_q10596_to_legion_hold_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_q10563_q10596_to_legion_hold_AuraScript)
|
||||
|
||||
|
||||
void HandleEffectRemove(AuraEffect const * /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (Player* player = GetTarget()->ToPlayer())
|
||||
|
|
@ -641,21 +641,21 @@ class npc_drake_dealer_hurlunk : public CreatureScript
|
|||
public:
|
||||
npc_drake_dealer_hurlunk() : CreatureScript("npc_drake_dealer_hurlunk") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsVendor() && player->GetReputationRank(1015) == REP_EXALTED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -673,9 +673,9 @@ class npcs_flanis_swiftwing_and_kagrosh : public CreatureScript
|
|||
public:
|
||||
npcs_flanis_swiftwing_and_kagrosh() : CreatureScript("npcs_flanis_swiftwing_and_kagrosh") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
ItemPosCountVec dest;
|
||||
|
|
@ -683,7 +683,7 @@ public:
|
|||
if (msg == EQUIP_ERR_OK)
|
||||
{
|
||||
player->StoreNewItem(dest, 30658, 1, true);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
}
|
||||
}
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+2)
|
||||
|
|
@ -693,20 +693,20 @@ public:
|
|||
if (msg == EQUIP_ERR_OK)
|
||||
{
|
||||
player->StoreNewItem(dest, 30659, 1, true);
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(10583) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(30658, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(0, GOSSIP_HSK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, 0, GOSSIP_HSK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
if (player->GetQuestStatus(10601) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(30659, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(0, GOSSIP_HSK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, 0, GOSSIP_HSK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,28 +45,28 @@ class npc_raliq_the_drunk : public CreatureScript
|
|||
public:
|
||||
npc_raliq_the_drunk() : CreatureScript("npc_raliq_the_drunk") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->setFaction(FACTION_HOSTILE_RD);
|
||||
creature->AI()->AttackStart(player);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_CRACK_SKULLS) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_RALIQ, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_RALIQ, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(9440, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9440, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_raliq_the_drunkAI(creature);
|
||||
}
|
||||
|
|
@ -81,13 +81,13 @@ public:
|
|||
uint32 m_uiNormFaction;
|
||||
uint32 Uppercut_Timer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
Uppercut_Timer = 5000;
|
||||
me->RestoreFaction();
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
@ -126,7 +126,7 @@ class npc_salsalabim : public CreatureScript
|
|||
public:
|
||||
npc_salsalabim() : CreatureScript("npc_salsalabim") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_10004) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
|
|
@ -137,12 +137,12 @@ public:
|
|||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_salsalabimAI(creature);
|
||||
}
|
||||
|
|
@ -153,13 +153,13 @@ public:
|
|||
|
||||
uint32 MagneticPull_Timer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
MagneticPull_Timer = 15000;
|
||||
me->RestoreFaction();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* done_by, uint32 &damage, DamageEffectType, SpellSchoolMask)
|
||||
void DamageTaken(Unit* done_by, uint32 &damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
// xinef: some corrections
|
||||
if (done_by)
|
||||
|
|
@ -172,7 +172,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
@ -204,28 +204,28 @@ class npc_shattrathflaskvendors : public CreatureScript
|
|||
public:
|
||||
npc_shattrathflaskvendors() : CreatureScript("npc_shattrathflaskvendors") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->GetEntry() == 23484)
|
||||
{
|
||||
// Aldor vendor
|
||||
if (creature->IsVendor() && (player->GetReputationRank(932) == REP_EXALTED) && (player->GetReputationRank(935) == REP_EXALTED) && (player->GetReputationRank(942) == REP_EXALTED))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
player->SEND_GOSSIP_MENU(11085, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
SendGossipMenuFor(player, 11085, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
player->SEND_GOSSIP_MENU(11083, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 11083, creature->GetGUID());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -234,12 +234,12 @@ public:
|
|||
// Scryers vendor
|
||||
if (creature->IsVendor() && (player->GetReputationRank(934) == REP_EXALTED) && (player->GetReputationRank(935) == REP_EXALTED) && (player->GetReputationRank(942) == REP_EXALTED))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
player->SEND_GOSSIP_MENU(11085, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
SendGossipMenuFor(player, 11085, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
player->SEND_GOSSIP_MENU(11084, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 11084, creature->GetGUID());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -258,21 +258,21 @@ class npc_zephyr : public CreatureScript
|
|||
public:
|
||||
npc_zephyr() : CreatureScript("npc_zephyr") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
player->CastSpell(player, 37778, false);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetReputationRank(989) >= REP_REVERED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HZ, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HZ, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -427,26 +427,26 @@ class npc_ishanah : public CreatureScript
|
|||
public:
|
||||
npc_ishanah() : CreatureScript("npc_ishanah") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
player->SEND_GOSSIP_MENU(9458, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9458, creature->GetGUID());
|
||||
else if (action == GOSSIP_ACTION_INFO_DEF+2)
|
||||
player->SEND_GOSSIP_MENU(9459, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9459, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, ISANAH_GOSSIP_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, ISANAH_GOSSIP_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, ISANAH_GOSSIP_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, ISANAH_GOSSIP_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class spell_q10930_big_bone_worm : public SpellScriptLoader
|
|||
PrepareAuraScript(spell_q10930_big_bone_worm_AuraScript);
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
{
|
||||
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
|
||||
return;
|
||||
|
||||
|
|
@ -524,17 +524,17 @@ class npc_floon : public CreatureScript
|
|||
public:
|
||||
npc_floon() : CreatureScript("npc_floon") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FLOON2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->SEND_GOSSIP_MENU(9443, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FLOON2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
SendGossipMenuFor(player, 9443, creature->GetGUID());
|
||||
}
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->setFaction(FACTION_HOSTILE_FL);
|
||||
creature->AI()->Talk(SAY_FLOON_ATTACK, player);
|
||||
creature->AI()->AttackStart(player);
|
||||
|
|
@ -542,16 +542,16 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_CRACK_SKULLS) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FLOON1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FLOON1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(9442, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9442, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_floonAI(creature);
|
||||
}
|
||||
|
|
@ -568,7 +568,7 @@ public:
|
|||
uint32 Frostbolt_Timer;
|
||||
uint32 FrostNova_Timer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
Silence_Timer = 2000;
|
||||
Frostbolt_Timer = 4000;
|
||||
|
|
@ -577,9 +577,9 @@ public:
|
|||
me->setFaction(m_uiNormFaction);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
@ -763,9 +763,9 @@ class go_skull_pile : public GameObjectScript
|
|||
public:
|
||||
go_skull_pile() : GameObjectScript("go_skull_pile") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN: SendActionMenu(player, go, action); break;
|
||||
|
|
@ -773,17 +773,17 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if ((player->GetQuestStatus(11885) == QUEST_STATUS_INCOMPLETE) || player->GetQuestRewardStatus(11885))
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_S_DARKSCREECHER_AKKARAI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_S_KARROG, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_S_GEZZARAK_THE_HUNTRESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_S_VAKKIZ_THE_WINDRAGER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_DARKSCREECHER_AKKARAI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_KARROG, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_GEZZARAK_THE_HUNTRESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_VAKKIZ_THE_WINDRAGER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(go->GetGOInfo()->questgiver.gossipID, go->GetGUID());
|
||||
SendGossipMenuFor(player, go->GetGOInfo()->questgiver.gossipID, go->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -821,24 +821,24 @@ class npc_slim : public CreatureScript
|
|||
public:
|
||||
npc_slim() : CreatureScript("npc_slim") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsVendor() && player->GetReputationRank(FACTION_CONSORTIUM) >= REP_FRIENDLY)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
player->SEND_GOSSIP_MENU(9896, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
SendGossipMenuFor(player, 9896, creature->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(9895, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9895, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class npc_natrualist_bite : public CreatureScript
|
|||
public:
|
||||
npc_natrualist_bite() : CreatureScript("npc_natrualist_bite") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
uint32 menuId = creature->AI()->GetData(1) ? 7540 : 7520;
|
||||
player->PrepareGossipMenu(creature, menuId, false);
|
||||
|
|
@ -47,10 +47,10 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
ClearGossipMenuFor(player);
|
||||
CloseGossipMenuFor(player);
|
||||
if (creature->AI()->GetData(1))
|
||||
{
|
||||
creature->CastSpell(player, SPELL_MARK_OF_BITE, true);
|
||||
|
|
@ -84,7 +84,8 @@ public:
|
|||
}
|
||||
|
||||
uint8 _spoken;
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (!_spoken && !me->IsHostileTo(who))
|
||||
{
|
||||
|
|
@ -93,11 +94,19 @@ public:
|
|||
}
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
}
|
||||
void EnterCombat(Unit*) { _spoken = 2; }
|
||||
uint32 GetData(uint32) const { return _spoken == 2; }
|
||||
|
||||
void EnterCombat(Unit*) override
|
||||
{
|
||||
_spoken = 2;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32) const override
|
||||
{
|
||||
return _spoken == 2;
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_natrualist_biteAI (creature);
|
||||
}
|
||||
|
|
@ -135,24 +144,24 @@ class npcs_ashyen_and_keleth : public CreatureScript
|
|||
public:
|
||||
npcs_ashyen_and_keleth() : CreatureScript("npcs_ashyen_and_keleth") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetReputationRank(942) > REP_NEUTRAL)
|
||||
{
|
||||
if (creature->GetEntry() == NPC_ASHYEN)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_ASH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_ASH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
if (creature->GetEntry() == NPC_KELETH)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_KEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_KEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
}
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+1)
|
||||
{
|
||||
creature->setPowerType(POWER_MANA);
|
||||
|
|
@ -214,7 +223,7 @@ public:
|
|||
creature->AI()->Talk(GOSSIP_REWARD_BLESS);
|
||||
}
|
||||
}
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
|
||||
}
|
||||
return true;
|
||||
|
|
@ -249,16 +258,16 @@ public:
|
|||
uint32 m_uiNormFaction;
|
||||
uint32 LightningBolt_Timer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
LightningBolt_Timer = 2000;
|
||||
if (me->getFaction() != m_uiNormFaction)
|
||||
me->setFaction(m_uiNormFaction);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
|
@ -273,26 +282,26 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_cooshcooshAI(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_CRACK_SKULLS) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_COOSH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_COOSH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(9441, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9441, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->setFaction(FACTION_HOSTILE_CO);
|
||||
creature->AI()->AttackStart(player);
|
||||
}
|
||||
|
|
@ -313,28 +322,28 @@ class npc_elder_kuruti : public CreatureScript
|
|||
public:
|
||||
npc_elder_kuruti() : CreatureScript("npc_elder_kuruti") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(9803) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
player->SEND_GOSSIP_MENU(9226, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9226, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(9227, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 9227, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(9229, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 9229, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
{
|
||||
|
|
@ -350,7 +359,7 @@ public:
|
|||
else
|
||||
player->SendEquipError(msg, NULL, NULL, itemId);
|
||||
}
|
||||
player->SEND_GOSSIP_MENU(9231, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 9231, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -366,19 +375,19 @@ class npc_mortog_steamhead : public CreatureScript
|
|||
public:
|
||||
npc_mortog_steamhead() : CreatureScript("npc_mortog_steamhead") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsVendor() && player->GetReputationRank(942) == REP_EXALTED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
return true;
|
||||
|
|
@ -480,26 +489,26 @@ class npc_timothy_daniels : public CreatureScript
|
|||
public:
|
||||
npc_timothy_daniels() : CreatureScript("npc_timothy_daniels") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_POISONS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_POISONS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TIMOTHY_DANIELS_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TIMOTHY_DANIELS_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_TIMOTHY_DANIELS1, creature->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_TIMOTHY_DANIELS1, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_TRADE:
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public:
|
|||
{
|
||||
uint64 ownerGUID;
|
||||
EventMap events;
|
||||
npc_pet_gen_soul_trader_beaconAI(Creature *c) : ScriptedAI(c)
|
||||
npc_pet_gen_soul_trader_beaconAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_INITIAL_TALK, 0);
|
||||
|
|
@ -164,7 +164,7 @@ enum eArgentPony
|
|||
SPELL_AURA_SHOP_S = 67377,
|
||||
SPELL_AURA_BANK_S = 67368,
|
||||
SPELL_AURA_TIRED_S = 67401,
|
||||
|
||||
|
||||
SPELL_AURA_BANK_G = 68849,
|
||||
SPELL_AURA_POSTMAN_G = 68850,
|
||||
SPELL_AURA_SHOP_G = 68851,
|
||||
|
|
@ -214,7 +214,7 @@ public:
|
|||
|
||||
struct npc_pet_gen_argent_pony_bridleAI : public ScriptedAI
|
||||
{
|
||||
npc_pet_gen_argent_pony_bridleAI(Creature *c) : ScriptedAI(c)
|
||||
npc_pet_gen_argent_pony_bridleAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
_state = ARGENT_PONY_STATE_NONE;
|
||||
_init = false;
|
||||
|
|
@ -223,7 +223,7 @@ public:
|
|||
memset(_banners, 0, sizeof(_banners));
|
||||
}
|
||||
|
||||
void EnterEvadeMode()
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
if (Unit* owner = me->GetCharmerOrOwner())
|
||||
{
|
||||
|
|
@ -232,7 +232,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
if (_init)
|
||||
return;
|
||||
|
|
@ -292,7 +292,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
_mountTimer += diff;
|
||||
if (_mountTimer > 5000)
|
||||
|
|
@ -310,15 +310,15 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 param) const
|
||||
uint32 GetData(uint32 param) const override
|
||||
{
|
||||
if (param == 0)
|
||||
return _state;
|
||||
|
||||
|
||||
return _banners[param];
|
||||
}
|
||||
|
||||
void DoAction(int32 param)
|
||||
void DoAction(int32 param) override
|
||||
{
|
||||
if (param > 60000)
|
||||
{
|
||||
|
|
@ -330,7 +330,7 @@ public:
|
|||
|
||||
_state = param;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
bool _init;
|
||||
uint8 _state;
|
||||
|
|
@ -339,7 +339,7 @@ public:
|
|||
uint32 _lastAura;
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetGUID() != creature->GetOwnerGUID())
|
||||
return true;
|
||||
|
|
@ -348,24 +348,24 @@ public:
|
|||
{
|
||||
uint8 _state = creature->AI()->GetData(0 /*GET_DATA_STATE*/);
|
||||
if (_state == ARGENT_PONY_STATE_ENCH || _state == ARGENT_PONY_STATE_VENDOR)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Visit a trader.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, "Visit a trader.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
if (_state == ARGENT_PONY_STATE_ENCH || _state == ARGENT_PONY_STATE_BANK)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Visit a bank.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_BANK);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Visit a bank.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_BANK);
|
||||
if (_state == ARGENT_PONY_STATE_ENCH || _state == ARGENT_PONY_STATE_MAILBOX)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Visit a mailbox.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_MAILBOX);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Visit a mailbox.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_MAILBOX);
|
||||
}
|
||||
|
||||
for (uint8 i = RACE_HUMAN; i < MAX_RACES; ++i)
|
||||
if (creature->AI()->GetData(i) == uint32(true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, argentBanners[i].text, GOSSIP_SENDER_MAIN, argentBanners[i].spell);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, argentBanners[i].text, GOSSIP_SENDER_MAIN, argentBanners[i].spell);
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 action) override
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
uint32 spellId = 0;
|
||||
switch (action)
|
||||
{
|
||||
|
|
@ -408,7 +408,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pet_gen_argent_pony_bridleAI (creature);
|
||||
}
|
||||
|
|
@ -433,7 +433,7 @@ public:
|
|||
|
||||
struct npc_pet_gen_target_following_bombAI : public NullCreatureAI
|
||||
{
|
||||
npc_pet_gen_target_following_bombAI(Creature *c) : NullCreatureAI(c)
|
||||
npc_pet_gen_target_following_bombAI(Creature *c) : NullCreatureAI(c)
|
||||
{
|
||||
checkTimer = 0;
|
||||
bombSpellId = 0;
|
||||
|
|
@ -488,7 +488,7 @@ public:
|
|||
|
||||
struct npc_pet_gen_gnomish_flame_turretAI : public ScriptedAI
|
||||
{
|
||||
npc_pet_gen_gnomish_flame_turretAI(Creature *c) : ScriptedAI(c)
|
||||
npc_pet_gen_gnomish_flame_turretAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
checkTimer = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class go_noblegarden_colored_egg : public GameObjectScript
|
|||
public:
|
||||
go_noblegarden_colored_egg() : GameObjectScript("go_noblegarden_colored_egg") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*pGO*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (roll_chance_i(5))
|
||||
player->CastSpell(player, 61734, true); // SPELL NOBLEGARDEN BUNNY
|
||||
|
|
@ -60,7 +60,7 @@ class go_seer_of_zebhalak : public GameObjectScript
|
|||
public:
|
||||
go_seer_of_zebhalak() : GameObjectScript("go_seer_of_zebhalak") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*pGO*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (player->GetQuestStatus(12007) == QUEST_STATUS_INCOMPLETE)
|
||||
player->CastSpell(player, 47293, true);
|
||||
|
|
@ -73,16 +73,16 @@ class go_mistwhisper_treasure : public GameObjectScript
|
|||
public:
|
||||
go_mistwhisper_treasure() : GameObjectScript("go_mistwhisper_treasure") { }
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, GameObject *pGo)
|
||||
bool OnGossipHello(Player* pPlayer, GameObject *go) override
|
||||
{
|
||||
if (!pGo->FindNearestCreature(28105, 30.0f)) // Tartek
|
||||
if (!go->FindNearestCreature(28105, 30.0f)) // Tartek
|
||||
{
|
||||
if (Creature *cr = pGo->SummonCreature(28105, 6708.7f, 5115.45f, -18.3f, 0.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
|
||||
if (Creature *cr = go->SummonCreature(28105, 6708.7f, 5115.45f, -18.3f, 0.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
|
||||
{
|
||||
cr->MonsterYell("My treasure! You no steal from Tartek, dumb big-tongue traitor thing. Tartek and nasty dragon going to kill you! You so dumb.", LANG_UNIVERSAL, 0);
|
||||
cr->AI()->AttackStart(pPlayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
@ -127,11 +127,11 @@ class go_arena_ready_marker : public GameObjectScript
|
|||
public:
|
||||
go_arena_ready_marker() : GameObjectScript("go_arena_ready_marker") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject * /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject * /*go*/) override
|
||||
{
|
||||
if (Battleground* bg = player->GetBattleground())
|
||||
bg->ReadyMarkerClicked(player);
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
@ -161,7 +161,7 @@ class go_ethereum_prison : public GameObjectScript
|
|||
public:
|
||||
go_ethereum_prison() : GameObjectScript("go_ethereum_prison") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
int Random = rand() % (sizeof(NpcPrisonEntry) / sizeof(uint32));
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ class go_ethereum_stasis : public GameObjectScript
|
|||
public:
|
||||
go_ethereum_stasis() : GameObjectScript("go_ethereum_stasis") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
int Random = rand() % (sizeof(NpcStasisEntry) / sizeof(uint32));
|
||||
|
||||
|
|
@ -230,7 +230,7 @@ class go_resonite_cask : public GameObjectScript
|
|||
public:
|
||||
go_resonite_cask() : GameObjectScript("go_resonite_cask") { }
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
// xinef: prevent spawning hundreds of them
|
||||
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER && !go->FindNearestCreature(NPC_GOGGEROC, 20.0f))
|
||||
|
|
@ -329,7 +329,7 @@ class go_cat_figurine : public GameObjectScript
|
|||
public:
|
||||
go_cat_figurine() : GameObjectScript("go_cat_figurine") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
player->CastSpell(player, SPELL_SUMMON_GHOST_SABER, true);
|
||||
return false;
|
||||
|
|
@ -350,7 +350,7 @@ class go_gilded_brazier : public GameObjectScript
|
|||
public:
|
||||
go_gilded_brazier() : GameObjectScript("go_gilded_brazier") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
|
||||
{
|
||||
|
|
@ -373,7 +373,7 @@ class go_tablet_of_madness : public GameObjectScript
|
|||
public:
|
||||
go_tablet_of_madness() : GameObjectScript("go_tablet_of_madness") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (player->HasSkill(SKILL_ALCHEMY) && player->GetSkillValue(SKILL_ALCHEMY) >= 300 && !player->HasSpell(24266))
|
||||
player->CastSpell(player, 24267, false);
|
||||
|
|
@ -392,7 +392,7 @@ public:
|
|||
go_tablet_of_the_seven() : GameObjectScript("go_tablet_of_the_seven") { }
|
||||
|
||||
//TODO: use gossip option ("Transcript the Tablet") instead, if Trinity adds support.
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (go->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
|
||||
return true;
|
||||
|
|
@ -413,7 +413,7 @@ class go_jump_a_tron : public GameObjectScript
|
|||
public:
|
||||
go_jump_a_tron() : GameObjectScript("go_jump_a_tron") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (player->GetQuestStatus(10111) == QUEST_STATUS_INCOMPLETE)
|
||||
player->CastSpell(player, 33382, true);
|
||||
|
|
@ -436,7 +436,7 @@ class go_sacred_fire_of_life : public GameObjectScript
|
|||
public:
|
||||
go_sacred_fire_of_life() : GameObjectScript("go_sacred_fire_of_life") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
|
||||
player->SummonCreature(NPC_ARIKARA, -5008.338f, -2118.894f, 83.657f, 0.874f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
|
||||
|
|
@ -464,7 +464,7 @@ class go_shrine_of_the_birds : public GameObjectScript
|
|||
public:
|
||||
go_shrine_of_the_birds() : GameObjectScript("go_shrine_of_the_birds") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
uint32 BirdEntry = 0;
|
||||
|
||||
|
|
@ -507,7 +507,7 @@ class go_southfury_moonstone : public GameObjectScript
|
|||
public:
|
||||
go_southfury_moonstone() : GameObjectScript("go_southfury_moonstone") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
//implicitTarget=48 not implemented as of writing this code, and manual summon may be just ok for our purpose
|
||||
//player->CastSpell(player, SPELL_SUMMON_RIZZLE, false);
|
||||
|
|
@ -536,7 +536,7 @@ class go_tele_to_dalaran_crystal : public GameObjectScript
|
|||
public:
|
||||
go_tele_to_dalaran_crystal() : GameObjectScript("go_tele_to_dalaran_crystal") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (player->GetQuestRewardStatus(QUEST_TELE_CRYSTAL_FLAG))
|
||||
return false;
|
||||
|
|
@ -556,7 +556,7 @@ class go_tele_to_violet_stand : public GameObjectScript
|
|||
public:
|
||||
go_tele_to_violet_stand() : GameObjectScript("go_tele_to_violet_stand") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (player->GetQuestRewardStatus(QUEST_LEARN_LEAVE_RETURN) || player->GetQuestStatus(QUEST_LEARN_LEAVE_RETURN) == QUEST_STATUS_INCOMPLETE)
|
||||
return false;
|
||||
|
|
@ -586,38 +586,38 @@ class go_fel_crystalforge : public GameObjectScript
|
|||
public:
|
||||
go_fel_crystalforge() : GameObjectScript("go_fel_crystalforge") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
|
||||
player->PrepareQuestMenu(go->GetGUID()); /* return true*/
|
||||
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->CastSpell(player, SPELL_CREATE_1_FLASK_OF_BEAST, false);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->CastSpell(player, SPELL_CREATE_5_FLASK_OF_BEAST, false);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -645,38 +645,38 @@ class go_bashir_crystalforge : public GameObjectScript
|
|||
public:
|
||||
go_bashir_crystalforge() : GameObjectScript("go_bashir_crystalforge") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
|
||||
player->PrepareQuestMenu(go->GetGUID()); /* return true*/
|
||||
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->CastSpell(player, SPELL_CREATE_1_FLASK_OF_SORCERER, false);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->CastSpell(player, SPELL_CREATE_5_FLASK_OF_SORCERER, false);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_TEXT, go->GetGUID());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -697,7 +697,7 @@ class go_scourge_cage : public GameObjectScript
|
|||
public:
|
||||
go_scourge_cage() : GameObjectScript("go_scourge_cage") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (Creature* pNearestPrisoner = go->FindNearestCreature(NPC_SCOURGE_PRISONER, 5.0f, true))
|
||||
|
|
@ -725,7 +725,7 @@ class go_arcane_prison : public GameObjectScript
|
|||
public:
|
||||
go_arcane_prison() : GameObjectScript("go_arcane_prison") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
// xinef: prevent spawning hundreds of them
|
||||
if (player->GetQuestStatus(QUEST_PRISON_BREAK) == QUEST_STATUS_INCOMPLETE && !go->FindNearestCreature(25318, 20.0f))
|
||||
|
|
@ -760,7 +760,7 @@ class go_jotunheim_cage : public GameObjectScript
|
|||
public:
|
||||
go_jotunheim_cage() : GameObjectScript("go_jotunheim_cage") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
Creature* pPrisoner = go->FindNearestCreature(NPC_EBON_BLADE_PRISONER_HUMAN, 5.0f, true);
|
||||
|
|
@ -810,12 +810,12 @@ class go_table_theka : public GameObjectScript
|
|||
public:
|
||||
go_table_theka() : GameObjectScript("go_table_theka") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_SPIDER_GOLD) == QUEST_STATUS_INCOMPLETE)
|
||||
player->AreaExploredOrEventHappens(QUEST_SPIDER_GOLD);
|
||||
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_TABLE_THEKA, go->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_TABLE_THEKA, go->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -839,7 +839,7 @@ class go_inconspicuous_landmark : public GameObjectScript
|
|||
_lastUsedTime = time(NULL);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/)
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (player->HasItemCount(ITEM_CUERGOS_KEY))
|
||||
return true;
|
||||
|
|
@ -992,7 +992,7 @@ class go_dragonflayer_cage : public GameObjectScript
|
|||
public:
|
||||
go_dragonflayer_cage() : GameObjectScript("go_dragonflayer_cage") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(QUEST_PRISONERS_OF_WYRMSKULL) != QUEST_STATUS_INCOMPLETE)
|
||||
|
|
@ -1048,26 +1048,26 @@ class go_amberpine_outhouse : public GameObjectScript
|
|||
public:
|
||||
go_amberpine_outhouse() : GameObjectScript("go_amberpine_outhouse") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
QuestStatus status = player->GetQuestStatus(QUEST_DOING_YOUR_DUTY);
|
||||
if (status == QUEST_STATUS_INCOMPLETE || status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_USE_OUTHOUSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_VACANT, go->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_USE_OUTHOUSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_OUTHOUSE_VACANT, go->GetGUID());
|
||||
}
|
||||
else
|
||||
player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_INUSE, go->GetGUID());
|
||||
SendGossipMenuFor(player, GOSSIP_OUTHOUSE_INUSE, go->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF +1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
Creature* target = GetClosestCreatureWithEntry(player, NPC_OUTHOUSE_BUNNY, 3.0f);
|
||||
if (target)
|
||||
{
|
||||
|
|
@ -1081,7 +1081,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->GetSession()->SendNotification(GO_ANDERHOLS_SLIDER_CIDER_NOT_FOUND);
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1104,7 +1104,7 @@ class go_hive_pod : public GameObjectScript
|
|||
public:
|
||||
go_hive_pod() : GameObjectScript("go_hive_pod") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
player->SendLoot(go->GetGUID(), LOOT_CORPSE);
|
||||
|
||||
|
|
@ -1123,7 +1123,7 @@ class go_massive_seaforium_charge : public GameObjectScript
|
|||
public:
|
||||
go_massive_seaforium_charge() : GameObjectScript("go_massive_seaforium_charge") { }
|
||||
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go)
|
||||
bool OnGossipHello(Player* /*player*/, GameObject* go) override
|
||||
{
|
||||
go->SetLootState(GO_JUST_DEACTIVATED);
|
||||
return true;
|
||||
|
|
@ -1143,27 +1143,27 @@ enum MissingFriends
|
|||
|
||||
class go_veil_skith_cage : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_veil_skith_cage() : GameObjectScript("go_veil_skith_cage") { }
|
||||
public:
|
||||
go_veil_skith_cage() : GameObjectScript("go_veil_skith_cage") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(QUEST_MISSING_FRIENDS) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
std::list<Creature*> childrenList;
|
||||
GetCreatureListWithEntryInGrid(childrenList, go, NPC_CAPTIVE_CHILD, INTERACTION_DISTANCE);
|
||||
for (std::list<Creature*>::const_iterator itr = childrenList.begin(); itr != childrenList.end(); ++itr)
|
||||
{
|
||||
player->KilledMonsterCredit(NPC_CAPTIVE_CHILD, (*itr)->GetGUID());
|
||||
(*itr)->DespawnOrUnsummon(5000);
|
||||
(*itr)->GetMotionMaster()->MovePoint(1, go->GetPositionX()+5, go->GetPositionY(), go->GetPositionZ());
|
||||
(*itr)->AI()->Talk(SAY_FREE_0);
|
||||
(*itr)->GetMotionMaster()->Clear();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
{
|
||||
go->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(QUEST_MISSING_FRIENDS) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
std::list<Creature*> childrenList;
|
||||
GetCreatureListWithEntryInGrid(childrenList, go, NPC_CAPTIVE_CHILD, INTERACTION_DISTANCE);
|
||||
for (std::list<Creature*>::const_iterator itr = childrenList.begin(); itr != childrenList.end(); ++itr)
|
||||
{
|
||||
player->KilledMonsterCredit(NPC_CAPTIVE_CHILD, (*itr)->GetGUID());
|
||||
(*itr)->DespawnOrUnsummon(5000);
|
||||
(*itr)->GetMotionMaster()->MovePoint(1, go->GetPositionX()+5, go->GetPositionY(), go->GetPositionZ());
|
||||
(*itr)->AI()->Talk(SAY_FREE_0);
|
||||
(*itr)->GetMotionMaster()->Clear();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_go_scripts()
|
||||
|
|
|
|||
|
|
@ -19,38 +19,38 @@ class npc_innkeeper : public CreatureScript
|
|||
public:
|
||||
npc_innkeeper() : CreatureScript("npc_innkeeper") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (IsEventActive(HALLOWEEN_EVENTID) && !player->HasAura(SPELL_TRICKED_OR_TREATED))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Trick or Treat!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Trick or Treat!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID);
|
||||
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->IsInnkeeper())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Make this inn my home.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INN);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Make this inn my home.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INN);
|
||||
|
||||
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID && IsEventActive(HALLOWEEN_EVENTID) && !player->HasAura(SPELL_TRICKED_OR_TREATED))
|
||||
{
|
||||
player->CastSpell(player, SPELL_TRICKED_OR_TREATED, true);
|
||||
creature->CastSpell(player, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true);
|
||||
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
switch (action)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -394,7 +394,7 @@ void ProcessCastaction(Player* player, Creature* creature, uint32 spellId, uint3
|
|||
}
|
||||
else
|
||||
player->SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, creature, 0, 0);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
}
|
||||
|
||||
void ProcessUnlearnAction(Player* player, Creature* creature, uint32 spellId, uint32 alternativeSpellId, int32 cost)
|
||||
|
|
@ -417,7 +417,7 @@ void ProcessUnlearnAction(Player* player, Creature* creature, uint32 spellId, ui
|
|||
}
|
||||
else
|
||||
player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, NULL, NULL);
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
}
|
||||
|
||||
/*###
|
||||
|
|
@ -434,16 +434,16 @@ public:
|
|||
return (player->HasSpell(S_TRANSMUTE) || player->HasSpell(S_ELIXIR) || player->HasSpell(S_POTION));
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->IsTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
if (player->HasSkill(SKILL_ALCHEMY) && player->GetBaseSkillValue(SKILL_ALCHEMY) >= 350 && player->getLevel() > 67)
|
||||
{
|
||||
|
|
@ -453,27 +453,27 @@ public:
|
|||
{
|
||||
case N_TRAINER_TRANSMUTE: //Zarevhi
|
||||
if (!HasAlchemySpell(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRANSMUTE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRANSMUTE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
if (player->HasSpell(S_TRANSMUTE))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_TRANSMUTE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_TRANSMUTE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
break;
|
||||
case N_TRAINER_ELIXIR: //Lorokeem
|
||||
if (!HasAlchemySpell(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELIXIR, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELIXIR, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
if (player->HasSpell(S_ELIXIR))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_ELIXIR, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_ELIXIR, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
break;
|
||||
case N_TRAINER_POTION: //Lauranna Thar'well
|
||||
if (!HasAlchemySpell(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_POTION, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_POTION, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
if (player->HasSpell(S_POTION))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_POTION, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_POTION, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -517,19 +517,19 @@ public:
|
|||
switch (creature->GetEntry())
|
||||
{
|
||||
case N_TRAINER_TRANSMUTE:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_ELIXIR:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELIXIR, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELIXIR, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_POTION:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_POTION, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_POTION, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -542,27 +542,27 @@ public:
|
|||
switch (creature->GetEntry())
|
||||
{
|
||||
case N_TRAINER_TRANSMUTE: //Zarevhi
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_ELIXIR: //Lorokeem
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_ELIXIR, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_ELIXIR, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_POTION: //Lauranna Thar'well
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_POTION, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_POTION, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
|
|
@ -599,16 +599,16 @@ public:
|
|||
return (player->HasSpell(S_HAMMER) || player->HasSpell(S_AXE) || player->HasSpell(S_SWORD));
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->IsTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
uint32 creatureId = creature->GetEntry();
|
||||
//WEAPONSMITH & ARMORSMITH
|
||||
|
|
@ -621,19 +621,19 @@ public:
|
|||
case N_TRAINER_SMITHOMNI1: //Myolor Sunderfury
|
||||
case N_TRAINER_SMITHOMNI2: //Krathok Moltenfist
|
||||
if (!player->HasSpell(S_ARMOR) && !player->HasSpell(S_WEAPON))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARMOR_LEARN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ARMOR_LEARN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
if (!player->HasSpell(S_WEAPON) && !player->HasSpell(S_ARMOR))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WEAPON_LEARN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WEAPON_LEARN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
break;
|
||||
case N_TRAINER_WEAPON1: //Ironus Coldsteel
|
||||
case N_TRAINER_WEAPON2: //Borgosh Corebender
|
||||
if (player->HasSpell(S_WEAPON))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WEAPON_UNLEARN, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WEAPON_UNLEARN, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
break;
|
||||
case N_TRAINER_ARMOR1: //Grumnus Steelshaper
|
||||
case N_TRAINER_ARMOR2: //Okothos Ironrager
|
||||
if (player->HasSpell(S_ARMOR))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARMOR_UNLEARN, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ARMOR_UNLEARN, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -645,26 +645,26 @@ public:
|
|||
{
|
||||
case N_TRAINER_HAMMER: //Lilith the Lithe
|
||||
if (!HasWeaponSub(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_HAMMER, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_HAMMER, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
if (player->HasSpell(S_HAMMER))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_HAMMER, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_HAMMER, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
break;
|
||||
case N_TRAINER_AXE: //Kilram
|
||||
if (!HasWeaponSub(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_AXE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_AXE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
if (player->HasSpell(S_AXE))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_AXE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_AXE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
break;
|
||||
case N_TRAINER_SWORD: //Seril Scourgebane
|
||||
if (!HasWeaponSub(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SWORD, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_SWORD, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
if (player->HasSpell(S_SWORD))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_SWORD, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_SWORD, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -688,7 +688,7 @@ public:
|
|||
//Unlearn Armor/Weapon
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
if (HasWeaponSub(player))
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
else
|
||||
ProcessUnlearnAction(player, creature, S_UNLEARN_WEAPON, S_REP_ARMOR, DoLowUnlearnCost(player));
|
||||
break;
|
||||
|
|
@ -725,19 +725,19 @@ public:
|
|||
switch (creature->GetEntry())
|
||||
{
|
||||
case N_TRAINER_HAMMER:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_HAMMER, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_HAMMER, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID (TALK_HAMMER_LEARN)
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_AXE:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_AXE, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_AXE, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID (TALK_AXE_LEARN)
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_SWORD:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SWORD, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_SWORD, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID (TALK_SWORD_LEARN)
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -753,33 +753,33 @@ public:
|
|||
case N_TRAINER_WEAPON2: //Borgosh Corebender
|
||||
case N_TRAINER_ARMOR1: //Grumnus Steelshaper
|
||||
case N_TRAINER_ARMOR2: //Okothos Ironrager
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SMITH_SPEC, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ARMORORWEAPON, DoLowUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_SMITH_SPEC, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ARMORORWEAPON, DoLowUnlearnCost(player), false);
|
||||
//unknown textID (TALK_UNLEARN_AXEORWEAPON)
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
|
||||
case N_TRAINER_HAMMER:
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_HAMMER, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_HAMMER, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
|
||||
//unknown textID (TALK_HAMMER_UNLEARN)
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_AXE:
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_AXE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_AXE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
|
||||
//unknown textID (TALK_AXE_UNLEARN)
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_SWORD:
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SWORD, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_SWORD, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
|
||||
//unknown textID (TALK_SWORD_UNLEARN)
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
|
|
@ -847,7 +847,7 @@ public:
|
|||
return res;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
uint32 npcTextId = 0;
|
||||
std::string gossipItem;
|
||||
|
|
@ -881,17 +881,17 @@ public:
|
|||
}
|
||||
|
||||
if (canLearn)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, gossipItem, creature->GetEntry(), GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, gossipItem, creature->GetEntry(), GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(npcTextId ? npcTextId : player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, npcTextId ? npcTextId : player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (sender != creature->GetEntry())
|
||||
return true;
|
||||
|
|
@ -930,16 +930,16 @@ public:
|
|||
return (player->HasSpell(S_DRAGON) || player->HasSpell(S_ELEMENTAL) || player->HasSpell(S_TRIBAL));
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->IsTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
// pussywizard: NO UNLEARNING! LEATHERWORKING SPECIALTY IS A PERMANENT DECISION AND CANNOT BE CHANGED IN ANY WAY!
|
||||
// pussywizard: CAN RE-LEARN ONLY THE ONE FOR WHICH QUEST IS COMPLETED!
|
||||
|
|
@ -951,22 +951,22 @@ public:
|
|||
case N_TRAINER_DRAGON1: //Peter Galen
|
||||
case N_TRAINER_DRAGON2: //Thorkaf Dragoneye
|
||||
if (!HasLeatherSpecialty(player) && (player->GetQuestRewardStatus(5141) || player->GetQuestRewardStatus(5145)))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_DRAGON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_DRAGON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
break;
|
||||
case N_TRAINER_ELEMENTAL1: //Sarah Tanner
|
||||
case N_TRAINER_ELEMENTAL2: //Brumn Winterhoof
|
||||
if (!HasLeatherSpecialty(player) && (player->GetQuestRewardStatus(5144) || player->GetQuestRewardStatus(5146)))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELEMENTAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELEMENTAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
break;
|
||||
case N_TRAINER_TRIBAL1: //Caryssia Moonhunter
|
||||
case N_TRAINER_TRIBAL2: //Se'Jib
|
||||
if (!HasLeatherSpecialty(player) && (player->GetQuestRewardStatus(5143) || player->GetQuestRewardStatus(5148)))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRIBAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRIBAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -993,9 +993,9 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
|
|
@ -1020,16 +1020,16 @@ public:
|
|||
return (player->HasSpell(S_MOONCLOTH) || player->HasSpell(S_SHADOWEAVE) || player->HasSpell(S_SPELLFIRE));
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->IsVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->IsTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
//TAILORING SPEC
|
||||
if (player->HasSkill(SKILL_TAILORING) && player->GetBaseSkillValue(SKILL_TAILORING) >= 350 && player->getLevel() > 59)
|
||||
|
|
@ -1040,27 +1040,27 @@ public:
|
|||
{
|
||||
case N_TRAINER_SPELLFIRE: //Gidge Spellweaver
|
||||
if (!HasTailorSpell(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SPELLFIRE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_SPELLFIRE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
if (player->HasSpell(S_SPELLFIRE))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_SPELLFIRE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_SPELLFIRE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
break;
|
||||
case N_TRAINER_MOONCLOTH: //Nasmara Moonsong
|
||||
if (!HasTailorSpell(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_MOONCLOTH, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_MOONCLOTH, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
if (player->HasSpell(S_MOONCLOTH))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_MOONCLOTH, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_MOONCLOTH, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
break;
|
||||
case N_TRAINER_SHADOWEAVE: //Andrion Darkspinner
|
||||
if (!HasTailorSpell(player))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SHADOWEAVE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_SHADOWEAVE, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
if (player->HasSpell(S_SHADOWEAVE))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_SHADOWEAVE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_UNLEARN_SHADOWEAVE, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1104,19 +1104,19 @@ public:
|
|||
switch (creature->GetEntry())
|
||||
{
|
||||
case N_TRAINER_SPELLFIRE:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_MOONCLOTH:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_SHADOWEAVE:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, action);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, action);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1129,27 +1129,27 @@ public:
|
|||
switch (creature->GetEntry())
|
||||
{
|
||||
case N_TRAINER_SPELLFIRE: //Gidge Spellweaver
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_MOONCLOTH: //Nasmara Moonsong
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
case N_TRAINER_SHADOWEAVE: //Andrion Darkspinner
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
|
||||
//unknown textID ()
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
|
|
@ -1177,7 +1177,7 @@ class go_evil_book_for_dummies : public GameObjectScript
|
|||
public:
|
||||
go_evil_book_for_dummies() : GameObjectScript("go_evil_book_for_dummies") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* gameobject)
|
||||
bool OnGossipHello(Player* player, GameObject* gameobject) override
|
||||
{ //TAILORING SPEC
|
||||
if (player->HasSkill(SKILL_ENGINEERING) && player->GetBaseSkillValue(SKILL_ENGINEERING) >= 225 && player->getLevel() >= 35)
|
||||
{
|
||||
|
|
@ -1185,21 +1185,21 @@ public:
|
|||
{
|
||||
if (player->HasSpell(S_GOBLIN)) // Has Goblin specialization
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_GOBLIN, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 3, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_GOBLIN, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 3, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
}
|
||||
else if (player->HasSpell(S_GNOMISH)) // Has Gnomish specialization
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_GNOMISH, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_GNOMISH, GOSSIP_SENDER_UNLEARN, GOSSIP_ACTION_INFO_DEF + 4, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
}
|
||||
else // does not have any specialization
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_CHAT, GOSSIP_LEARN_GOBLIN, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 1, BOX_LEARN_ENGIN_SPEC, DoLearnCost(player), false);
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(GOSSIP_ICON_CHAT, GOSSIP_LEARN_GNOMISH, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 2, BOX_LEARN_ENGIN_SPEC, DoLearnCost(player), false);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_GOBLIN, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 1, BOX_LEARN_ENGIN_SPEC, DoLearnCost(player), false);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_GNOMISH, GOSSIP_SENDER_LEARN, GOSSIP_ACTION_INFO_DEF + 2, BOX_LEARN_ENGIN_SPEC, DoLearnCost(player), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1232,13 +1232,13 @@ public:
|
|||
{
|
||||
// Goblin
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_GOBLIN, GOSSIP_SENDER_CHECK, uiAction);
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_GOBLIN, GOSSIP_SENDER_CHECK, uiAction);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
break;
|
||||
// Gnomish
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_GNOMISH, GOSSIP_SENDER_CHECK, uiAction);
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LEARN_GNOMISH, GOSSIP_SENDER_CHECK, uiAction);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1249,20 +1249,20 @@ public:
|
|||
{
|
||||
// Goblin
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_GOBLIN, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_GOBLIN, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
break;
|
||||
// Gnomish
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_GNOMISH, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
AddGossipItemFor(player, 0, GOSSIP_UNLEARN_GNOMISH, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ENGIN_SPEC, DoHighUnlearnCost(player), false);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(gameobject), gameobject->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, GameObject* gameobject, uint32 uiSender, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, GameObject* gameobject, uint32 uiSender, uint32 uiAction) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch(uiSender)
|
||||
{
|
||||
case GOSSIP_SENDER_LEARN: SendActionMenu(player, gameobject, uiAction); break;
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class npc_taxi : public CreatureScript
|
|||
public:
|
||||
npc_taxi() : CreatureScript("npc_taxi") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -59,220 +59,220 @@ public:
|
|||
{
|
||||
case 17435: // Azuremyst Isle - Susurrus
|
||||
if (player->HasItemCount(23843, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SUSURRUS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SUSURRUS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
break;
|
||||
case 20903: // Netherstorm - Protectorate Nether Drake
|
||||
if (player->GetQuestStatus(10438) == QUEST_STATUS_INCOMPLETE && player->HasItemCount(29778))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_NETHER_DRAKE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_NETHER_DRAKE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
break;
|
||||
case 29154: // Stormwind City - Thargold Ironwing
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_IRONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_IRONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
break;
|
||||
case 19409: // Hellfire Peninsula - Wing Commander Dabir'ee
|
||||
//Mission: The Murketh and Shaadraz Gateways
|
||||
if (player->GetQuestStatus(10146) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DABIREE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DABIREE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
|
||||
//Shatter Point
|
||||
if (!player->GetQuestRewardStatus(10340))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DABIREE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DABIREE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
break;
|
||||
case 20235: // Hellfire Peninsula - Gryphoneer Windbellow
|
||||
//Mission: The Abyssal Shelf || Return to the Abyssal Shelf
|
||||
if (player->GetQuestStatus(10163) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(10346) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WINDBELLOW1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WINDBELLOW1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
|
||||
//Go to the Front
|
||||
if (player->GetQuestStatus(10382) != QUEST_STATUS_NONE && !player->GetQuestRewardStatus(10382))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WINDBELLOW2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WINDBELLOW2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
break;
|
||||
case 19401: // Hellfire Peninsula - Wing Commander Brack
|
||||
//Mission: The Murketh and Shaadraz Gateways
|
||||
if (player->GetQuestStatus(10129) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BRACK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BRACK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
|
||||
//Mission: The Abyssal Shelf || Return to the Abyssal Shelf
|
||||
if (player->GetQuestStatus(10162) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(10347) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BRACK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BRACK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
|
||||
//Spinebreaker Post
|
||||
if (player->GetQuestStatus(10242) == QUEST_STATUS_COMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BRACK3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_BRACK3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
break;
|
||||
case 23413: // Blade's Edge Mountains - Skyguard Handler Irena
|
||||
if (player->GetReputationRank(1031) >= REP_HONORED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_IRENA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_IRENA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
break;
|
||||
case 25059: // Isle of Quel'Danas - Ayren Cloudbreaker
|
||||
if (player->GetQuestStatus(11532) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(11533) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CLOUDBREAKER1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_CLOUDBREAKER1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
|
||||
if (player->GetQuestStatus(11542) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(11543) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CLOUDBREAKER2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_CLOUDBREAKER2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
break;
|
||||
case 25236: // Isle of Quel'Danas - Unrestrained Dragonhawk
|
||||
if (player->GetQuestStatus(11542) == QUEST_STATUS_COMPLETE || player->GetQuestStatus(11543) == QUEST_STATUS_COMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DRAGONHAWK, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DRAGONHAWK, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
break;
|
||||
case 20162: // Netherstorm - Veronia
|
||||
//Behind Enemy Lines
|
||||
if (player->GetQuestStatus(10652) != QUEST_STATUS_REWARDED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_VERONIA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_VERONIA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
|
||||
break;
|
||||
case 23415: // Terokkar Forest - Skyguard Handler Deesak
|
||||
if (player->GetReputationRank(1031) >= REP_HONORED)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEESAK, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 16);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_DEESAK, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 16);
|
||||
break;
|
||||
case 27575: // Dragonblight - Lord Afrasastrasz
|
||||
// middle -> ground
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_AFRASASTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 17);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_AFRASASTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 17);
|
||||
// middle -> top
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_AFRASASTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 18);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_AFRASASTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 18);
|
||||
break;
|
||||
case 26443: // Dragonblight - Tariolstrasz //need to check if quests are required before gossip available (12123, 12124)
|
||||
// ground -> top
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TARIOLSTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 19);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TARIOLSTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 19);
|
||||
// ground -> middle
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TARIOLSTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TARIOLSTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20);
|
||||
break;
|
||||
case 26949: // Dragonblight - Torastrasza
|
||||
// top -> middle
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21);
|
||||
// top -> ground
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
|
||||
break;
|
||||
case 23704: // Dustwallow Marsh - Cassa Crimsonwing
|
||||
if (player->GetQuestStatus(11142) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CRIMSONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_CRIMSONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
|
||||
break;
|
||||
case 17209:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 26);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 27);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 28);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 26);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 27);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_WILLIAMKEILAR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 28);
|
||||
break;
|
||||
}
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
//spellId is correct, however it gives flight a somewhat funny effect //TaxiPath 506.
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 32474, true);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(627); //TaxiPath 627 (possibly 627+628(152->153->154->155))
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 53335, true); //TaxiPath 1041 (Stormwind Harbor)
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 33768, true); //TaxiPath 585 (Gateways Murket and Shaadraz)
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 35069, true); //TaxiPath 612 (Taxi - Hellfire Peninsula - Expedition Point to Shatter Point)
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 6:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 33899, true); //TaxiPath 589 (Aerial Assault Flight (Alliance))
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 7:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 35065, true); //TaxiPath 607 (Taxi - Hellfire Peninsula - Shatter Point to Beach Head)
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 8:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 33659, true); //TaxiPath 584 (Gateways Murket and Shaadraz)
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 9:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 33825, true); //TaxiPath 587 (Aerial Assault Flight (Horde))
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 10:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 34578, true); //TaxiPath 604 (Taxi - Reaver's Fall to Spinebreaker Ridge)
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 11:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 41278, true); //TaxiPath 706
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 12:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 45071, true); //TaxiPath 779
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 13:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 45113, true); //TaxiPath 784
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 14:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 45353, true); //TaxiPath 788
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 15:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 34905, true); //TaxiPath 606
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 16:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 41279, true); //TaxiPath 705 (Taxi - Skettis to Skyguard Outpost)
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 17:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(882);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 18:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(881);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 19:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(878);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 20:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(883);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 21:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(880);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 22:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(879);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 23:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 43074, true); //TaxiPath 736
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 24:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
//player->ActivateTaxiPathTo(738);
|
||||
player->CastSpell(player, 43136, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 25:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, 42295, true);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 26:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(494);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 27:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(495);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 28:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->ActivateTaxiPathTo(496);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public:
|
|||
|
||||
struct npc_elder_clearwaterAI : public ScriptedAI
|
||||
{
|
||||
npc_elder_clearwaterAI(Creature *c) : ScriptedAI(c)
|
||||
npc_elder_clearwaterAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_CLEARWATER_ANNOUNCE, 1000, 1, 0);
|
||||
|
|
@ -87,7 +87,7 @@ public:
|
|||
bool startWarning;
|
||||
bool finishWarning;
|
||||
|
||||
uint32 GetData(uint32 type) const
|
||||
uint32 GetData(uint32 type) const override
|
||||
{
|
||||
if (type == DATA_DERBY_FINISHED)
|
||||
return (uint32)finished;
|
||||
|
|
@ -95,13 +95,13 @@ public:
|
|||
return 0;
|
||||
}
|
||||
|
||||
void DoAction(int32 param)
|
||||
void DoAction(int32 param) override
|
||||
{
|
||||
if (param == DATA_DERBY_FINISHED)
|
||||
finished = true;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
|
|
@ -142,7 +142,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
QuestRelationBounds pObjectQR;
|
||||
QuestRelationBounds pObjectQIR;
|
||||
|
|
@ -181,18 +181,18 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OnQuestReward(Player* player, Creature* creature, Quest const* quest, uint32 /*opt*/)
|
||||
bool OnQuestReward(Player* player, Creature* creature, Quest const* quest, uint32 /*opt*/) override
|
||||
{
|
||||
if (!creature->AI()->GetData(DATA_DERBY_FINISHED) && quest->GetQuestId() == QUEST_FISHING_DERBY)
|
||||
{
|
||||
creature->AI()->DoAction(DATA_DERBY_FINISHED);
|
||||
sCreatureTextMgr->SendChat(creature, CLEARWATER_SAY_WINNER, player, CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, TEXT_RANGE_MAP);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_elder_clearwaterAI (pCreature);
|
||||
}
|
||||
|
|
@ -218,7 +218,7 @@ public:
|
|||
|
||||
struct npc_riggle_bassbaitAI : public ScriptedAI
|
||||
{
|
||||
npc_riggle_bassbaitAI(Creature *c) : ScriptedAI(c)
|
||||
npc_riggle_bassbaitAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_RIGGLE_ANNOUNCE, 1000, 1, 0);
|
||||
|
|
@ -232,7 +232,7 @@ public:
|
|||
bool startWarning;
|
||||
bool finishWarning;
|
||||
|
||||
uint32 GetData(uint32 type) const
|
||||
uint32 GetData(uint32 type) const override
|
||||
{
|
||||
if (type == DATA_ANGLER_FINISHED)
|
||||
return (uint32)finished;
|
||||
|
|
@ -240,13 +240,13 @@ public:
|
|||
return 0;
|
||||
}
|
||||
|
||||
void DoAction(int32 param)
|
||||
void DoAction(int32 param) override
|
||||
{
|
||||
if (param == DATA_ANGLER_FINISHED)
|
||||
finished = true;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
|
|
@ -281,16 +281,16 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!creature->AI()->GetData(DATA_ANGLER_FINISHED))
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnQuestReward(Player* player, Creature* creature, Quest const* quest, uint32 /*opt*/)
|
||||
bool OnQuestReward(Player* player, Creature* creature, Quest const* quest, uint32 /*opt*/) override
|
||||
{
|
||||
if (!creature->AI()->GetData(DATA_ANGLER_FINISHED) && quest->GetQuestId() == QUEST_MASTER_ANGLER)
|
||||
{
|
||||
|
|
@ -300,8 +300,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_riggle_bassbaitAI (pCreature);
|
||||
}
|
||||
|
|
@ -659,21 +658,21 @@ class npc_lunaclaw_spirit : public CreatureScript
|
|||
public:
|
||||
npc_lunaclaw_spirit() : CreatureScript("npc_lunaclaw_spirit") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (player->GetQuestStatus(QUEST_BODY_HEART_A) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_BODY_HEART_H) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GRANT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_GRANT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
player->SEND_GOSSIP_MENU(TEXT_ID_DEFAULT, creature->GetGUID());
|
||||
SendGossipMenuFor(player, TEXT_ID_DEFAULT, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->SEND_GOSSIP_MENU(TEXT_ID_PROGRESS, creature->GetGUID());
|
||||
SendGossipMenuFor(player, TEXT_ID_PROGRESS, creature->GetGUID());
|
||||
player->AreaExploredOrEventHappens(player->GetTeamId() == TEAM_ALLIANCE ? QUEST_BODY_HEART_A : QUEST_BODY_HEART_H);
|
||||
}
|
||||
return true;
|
||||
|
|
@ -706,16 +705,16 @@ public:
|
|||
|
||||
uint32 ResetFlagTimer;
|
||||
|
||||
void Reset()
|
||||
void Reset() override
|
||||
{
|
||||
ResetFlagTimer = 120000;
|
||||
me->setFaction(FACTION_CHICKEN);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { }
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
// Reset flags after a certain time has passed so that the next player has to start the 'event' again
|
||||
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
|
||||
|
|
@ -733,7 +732,7 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void ReceiveEmote(Player* player, uint32 emote)
|
||||
void ReceiveEmote(Player* player, uint32 emote) override
|
||||
{
|
||||
switch (emote)
|
||||
{
|
||||
|
|
@ -1552,7 +1551,7 @@ class npc_sayge : public CreatureScript
|
|||
public:
|
||||
npc_sayge() : CreatureScript("npc_sayge") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
|
@ -1565,11 +1564,11 @@ public:
|
|||
player->HasSpellCooldown(SPELL_AGI) ||
|
||||
player->HasSpellCooldown(SPELL_STM) ||
|
||||
player->HasSpellCooldown(SPELL_SPI))
|
||||
player->SEND_GOSSIP_MENU(7393, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7393, creature->GetGUID());
|
||||
else
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_SAYGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(7339, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HELLO_SAYGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 7339, creature->GetGUID());
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -1580,50 +1579,50 @@ public:
|
|||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
player->SEND_GOSSIP_MENU(7340, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, 7340, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE5, GOSSIP_SENDER_MAIN + 1, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE6, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE7, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(7341, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE5, GOSSIP_SENDER_MAIN + 1, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE6, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE7, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, 7341, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE8, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE9, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE10, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(7361, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE8, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE9, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE10, GOSSIP_SENDER_MAIN + 2, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, 7361, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE11, GOSSIP_SENDER_MAIN + 6, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE12, GOSSIP_SENDER_MAIN + 7, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE13, GOSSIP_SENDER_MAIN + 8, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(7362, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE11, GOSSIP_SENDER_MAIN + 6, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE12, GOSSIP_SENDER_MAIN + 7, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE13, GOSSIP_SENDER_MAIN + 8, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, 7362, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE14, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE15, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE16, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF);
|
||||
player->SEND_GOSSIP_MENU(7363, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE14, GOSSIP_SENDER_MAIN + 5, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE15, GOSSIP_SENDER_MAIN + 4, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE16, GOSSIP_SENDER_MAIN + 3, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, 7363, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE17, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
player->SEND_GOSSIP_MENU(7364, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_SENDACTION_SAYGE17, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
SendGossipMenuFor(player, 7364, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 6:
|
||||
creature->CastSpell(player, SPELL_FORTUNE, false);
|
||||
player->SEND_GOSSIP_MENU(7365, creature->GetGUID());
|
||||
SendGossipMenuFor(player, 7365, creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
|
|
@ -1755,56 +1754,56 @@ class npc_wormhole : public CreatureScript
|
|||
bool _showUnderground;
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsSummon())
|
||||
{
|
||||
if (player == creature->ToTempSummon()->GetSummoner())
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
|
||||
if (creature->AI()->GetData(DATA_SHOW_UNDERGROUND))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
|
||||
player->PlayerTalkClass->SendGossipMenu(TEXT_WORMHOLE, creature->GetGUID());
|
||||
SendGossipMenuFor(player, TEXT_WORMHOLE, creature);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1: // Borean Tundra
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_BOREAN_TUNDRA, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2: // Howling Fjord
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_HOWLING_FJORD, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3: // Sholazar Basin
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_SHOLAZAR_BASIN, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4: // Icecrown
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_ICECROWN, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5: // Storm peaks
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_STORM_PEAKS, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 6: // Underground
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
creature->CastSpell(player, SPELL_UNDERGROUND, false);
|
||||
break;
|
||||
}
|
||||
|
|
@ -1812,7 +1811,7 @@ class npc_wormhole : public CreatureScript
|
|||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_wormholeAI(creature);
|
||||
}
|
||||
|
|
@ -1837,7 +1836,6 @@ public:
|
|||
{
|
||||
npc_pet_trainerAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
|
||||
void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override
|
||||
{
|
||||
if (menuId == PET_UNLEARN && gossipListId == YES_PLEASE_DO)
|
||||
|
|
@ -1907,90 +1905,90 @@ class npc_locksmith : public CreatureScript
|
|||
public:
|
||||
npc_locksmith() : CreatureScript("npc_locksmith") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
// Arcatraz Key
|
||||
if (player->GetQuestRewardStatus(QUEST_HOW_TO_BRAKE_IN_TO_THE_ARCATRAZ) && !player->HasItemCount(ITEM_ARCATRAZ_KEY, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_ARCATRAZ_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_ARCATRAZ_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
// Shadowforge Key
|
||||
if (player->GetQuestRewardStatus(QUEST_DARK_IRON_LEGACY) && !player->HasItemCount(ITEM_SHADOWFORGE_KEY, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_SHADOWFORGE_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_SHADOWFORGE_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
|
||||
// Skeleton Key
|
||||
if ((player->GetQuestRewardStatus(QUEST_THE_KEY_TO_SCHOLOMANCE_A) || player->GetQuestRewardStatus(QUEST_THE_KEY_TO_SCHOLOMANCE_H)) &&
|
||||
!player->HasItemCount(ITEM_SKELETON_KEY, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_SKELETON_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_SKELETON_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
|
||||
// Shatered Halls Key
|
||||
if ((player->GetQuestRewardStatus(QUEST_HOTTER_THAN_HELL_A) || player->GetQuestRewardStatus(QUEST_HOTTER_THAN_HELL_H)) &&
|
||||
!player->HasItemCount(ITEM_SHATTERED_HALLS_KEY, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_SHATTERED_HALLS_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_SHATTERED_HALLS_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
|
||||
// Master's Key
|
||||
if (player->GetQuestRewardStatus(QUEST_RETURN_TO_KHAGDAR) && !player->HasItemCount(ITEM_THE_MASTERS_KEY, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_THE_MASTERS_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_THE_MASTERS_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
|
||||
// Violet Hold Key
|
||||
if (player->GetQuestRewardStatus(QUEST_CONTAINMENT) && !player->HasItemCount(ITEM_VIOLET_HOLD_KEY, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_VIOLET_HOLD_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_VIOLET_HOLD_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
|
||||
// Essence-Infused Moonstone
|
||||
if (player->GetQuestRewardStatus(QUEST_ETERNAL_VIGILANCE) && !player->HasItemCount(ITEM_ESSENCE_INFUSED_MOONSTONE, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_ESSENCE_INFUSED_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_ESSENCE_INFUSED_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
|
||||
// Key to the Focusing Iris
|
||||
if (player->GetQuestRewardStatus(QUEST_KEY_TO_THE_FOCUSING_IRIS) && !player->HasItemCount(ITEM_KEY_TO_THE_FOCUSING_IRIS, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
|
||||
// Heroic Key to the Focusing Iris
|
||||
if (player->GetQuestRewardStatus(QUEST_HC_KEY_TO_THE_FOCUSING_IRIS) && !player->HasItemCount(ITEM_HC_KEY_TO_THE_FOCUSING_IRIS, 1, true))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_HC_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LOST_HC_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_ARCATRAZ_KEY, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_SHADOWFORGE_KEY, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_SKELETON_KEY, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_SHATTERED_HALLS_KEY, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_THE_MASTERS_KEY, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 6:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_VIOLET_HOLD_KEY, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 7:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_ESSENCE_INFUSED_MOONSTONE, false);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 8:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AddItem(ITEM_KEY_TO_THE_FOCUSING_IRIS, 1);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 9:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CloseGossipMenuFor(player);
|
||||
player->AddItem(ITEM_HC_KEY_TO_THE_FOCUSING_IRIS, 1);
|
||||
break;
|
||||
}
|
||||
|
|
@ -2012,17 +2010,17 @@ class npc_experience : public CreatureScript
|
|||
public:
|
||||
npc_experience() : CreatureScript("npc_experience") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXT_EXP, creature->GetGUID());
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_XP_OFF, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_XP_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_EXP, creature);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
ClearGossipMenuFor(player);
|
||||
bool noXPGain = player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
|
||||
bool doSwitch = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue