diff options
Diffstat (limited to 'src/server/scripts/Northrend')
| -rw-r--r-- | src/server/scripts/Northrend/zone_wintergrasp.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/server/scripts/Northrend/zone_wintergrasp.cpp b/src/server/scripts/Northrend/zone_wintergrasp.cpp index 2290a35bfa4..fb981b037aa 100644 --- a/src/server/scripts/Northrend/zone_wintergrasp.cpp +++ b/src/server/scripts/Northrend/zone_wintergrasp.cpp @@ -172,7 +172,7 @@ struct npc_wg_demolisher_engineer : public ScriptedAI private: bool CanBuild() const { - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); + Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(me->GetMap(), BATTLEFIELD_BATTLEID_WG); if (!wintergrasp) return false; @@ -203,7 +203,7 @@ struct npc_wg_spirit_guide : public ScriptedAI if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); + Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(me->GetMap(), BATTLEFIELD_BATTLEID_WG); if (!wintergrasp) return true; @@ -221,7 +221,7 @@ struct npc_wg_spirit_guide : public ScriptedAI uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); CloseGossipMenuFor(player); - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); + Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(me->GetMap(), BATTLEFIELD_BATTLEID_WG); if (wintergrasp) { GraveyardVect gy = wintergrasp->GetGraveyardVector(); @@ -272,7 +272,7 @@ struct npc_wg_queue : public ScriptedAI if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); + Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(me->GetMap(), BATTLEFIELD_BATTLEID_WG); if (!wintergrasp) return true; @@ -300,7 +300,7 @@ struct npc_wg_queue : public ScriptedAI { CloseGossipMenuFor(player); - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); + Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(me->GetMap(), BATTLEFIELD_BATTLEID_WG); if (!wintergrasp) return true; @@ -441,8 +441,8 @@ class spell_wintergrasp_defender_teleport : public SpellScript SpellCastResult CheckCast() { - if (Battlefield* wg = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG)) - if (Player* target = GetExplTargetUnit()->ToPlayer()) + if (Player* target = GetExplTargetUnit()->ToPlayer()) + if (Battlefield* wg = sBattlefieldMgr->GetBattlefieldByBattleId(target->GetMap(), BATTLEFIELD_BATTLEID_WG)) // check if we are in Wintergrasp at all, SotA uses same teleport spells if ((target->GetZoneId() == AREA_WINTERGRASP && target->GetTeamId() != wg->GetDefenderTeam()) || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER)) return SPELL_FAILED_BAD_TARGETS; @@ -528,9 +528,11 @@ class condition_is_wintergrasp_horde : public ConditionScript public: condition_is_wintergrasp_horde() : ConditionScript("condition_is_wintergrasp_horde") { } - bool OnConditionCheck(Condition const* /* condition */, ConditionSourceInfo& /* sourceInfo */) + bool OnConditionCheck(Condition const* /* condition */, ConditionSourceInfo& sourceInfo) { - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); + if (!sourceInfo.mConditionMap) + return false; + Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(sourceInfo.mConditionMap, BATTLEFIELD_BATTLEID_WG); if (wintergrasp->IsEnabled() && wintergrasp->GetDefenderTeam() == TEAM_HORDE) return true; return false; @@ -542,9 +544,11 @@ class condition_is_wintergrasp_alliance : public ConditionScript public: condition_is_wintergrasp_alliance() : ConditionScript("condition_is_wintergrasp_alliance") { } - bool OnConditionCheck(Condition const* /* condition */, ConditionSourceInfo& /* sourceInfo */) + bool OnConditionCheck(Condition const* /* condition */, ConditionSourceInfo& sourceInfo) { - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); + if (!sourceInfo.mConditionMap) + return false; + Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(sourceInfo.mConditionMap, BATTLEFIELD_BATTLEID_WG); if (wintergrasp->IsEnabled() && wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE) return true; return false; |
