aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/World/go_scripts.cpp47
1 files changed, 25 insertions, 22 deletions
diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp
index 866b6c38d5c..37da71a1a72 100644
--- a/src/server/scripts/World/go_scripts.cpp
+++ b/src/server/scripts/World/go_scripts.cpp
@@ -1192,9 +1192,10 @@ class go_massive_seaforium_charge : public GameObjectScript
enum OfKeysAndCages
{
- QUEST_OF_KEYS_AND_CAGES = 11231,
- NPC_GJALERBRON_PRISONER = 24035,
- SAY_FREE = 0,
+ QUEST_ALLIANCE_OF_KEYS_AND_CAGES = 11231,
+ QUEST_HORDE_OF_KEYS_AND_CAGES = 11265,
+ NPC_GJALERBRON_PRISONER = 24035,
+ SAY_FREE = 0,
};
class go_gjalerbron_cage : public GameObjectScript
@@ -1204,7 +1205,8 @@ class go_gjalerbron_cage : public GameObjectScript
bool OnGossipHello(Player* player, GameObject* go)
{
- if (player->GetQuestStatus(QUEST_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE)
+ if ((player->GetTeamId() == TEAM_ALLIANCE && player->GetQuestStatus(QUEST_ALLIANCE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE) ||
+ (player->GetTeamId() == TEAM_HORDE && player->GetQuestStatus(QUEST_HORDE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE))
{
if (Creature* prisoner = go->FindNearestCreature(NPC_GJALERBRON_PRISONER, 5.0f))
{
@@ -1228,24 +1230,25 @@ class go_gjalerbron_cage : public GameObjectScript
class go_large_gjalerbron_cage : public GameObjectScript
{
public:
- go_large_gjalerbron_cage() : GameObjectScript("go_large_gjalerbron_cage") { }
-
- bool OnGossipHello(Player* player, GameObject* go)
- {
- if (player->GetQuestStatus(QUEST_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE)
- {
- std::list<Creature*> prisonerList;
- GetCreatureListWithEntryInGrid(prisonerList, go, NPC_GJALERBRON_PRISONER, INTERACTION_DISTANCE);
- for (std::list<Creature*>::const_iterator itr = prisonerList.begin(); itr != prisonerList.end(); ++itr)
- {
- go->UseDoorOrButton();
- player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, (*itr)->GetGUID());
- (*itr)->ForcedDespawn(6000);
- (*itr)->AI()->Talk(SAY_FREE);
- }
- }
- return false;
- }
+ go_large_gjalerbron_cage() : GameObjectScript("go_large_gjalerbron_cage") { }
+
+ bool OnGossipHello(Player* player, GameObject* go)
+ {
+ if ((player->GetTeamId() == TEAM_ALLIANCE && player->GetQuestStatus(QUEST_ALLIANCE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE) ||
+ (player->GetTeamId() == TEAM_HORDE && player->GetQuestStatus(QUEST_HORDE_OF_KEYS_AND_CAGES) == QUEST_STATUS_INCOMPLETE))
+ {
+ std::list<Creature*> prisonerList;
+ GetCreatureListWithEntryInGrid(prisonerList, go, NPC_GJALERBRON_PRISONER, INTERACTION_DISTANCE);
+ for (std::list<Creature*>::const_iterator itr = prisonerList.begin(); itr != prisonerList.end(); ++itr)
+ {
+ go->UseDoorOrButton();
+ player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, (*itr)->GetGUID());
+ (*itr)->ForcedDespawn(6000);
+ (*itr)->AI()->Talk(SAY_FREE);
+ }
+ }
+ return false;
+ }
};
void AddSC_go_scripts()