diff options
author | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-04-11 23:12:12 +0200 |
---|---|---|
committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-04-11 23:12:12 +0200 |
commit | 5454e10b52c6e8c75afba25a1cc8fb13c6ef8dcc (patch) | |
tree | 4550ff13616242169009c245277bfa454d0e4988 | |
parent | 4e59d0b9228789c2c17c3dc9aa52c9f498b0c0e3 (diff) | |
parent | 870d5d9c45ddf8331f7029072f44f4b1cfa3b54b (diff) |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
3 files changed, 17 insertions, 3 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 9cc9a1bab43..5afbdd5468a 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -52,7 +52,7 @@ GameObject::GameObject() : WorldObject(false), MapObject(), m_spellId = 0; m_cooldownTime = 0; m_goInfo = NULL; - m_ritualOwner = NULL; + m_ritualOwnerGUID = 0; m_goData = NULL; m_DBTableGuid = 0; @@ -1445,9 +1445,16 @@ void GameObject::Use(Unit* user) GameObjectTemplate const* info = GetGOInfo(); + Player* m_ritualOwner = NULL; + if (m_ritualOwnerGUID) + m_ritualOwner = ObjectAccessor::FindPlayer(m_ritualOwnerGUID); + // ritual owner is set for GO's without owner (not summoned) if (!m_ritualOwner && !owner) + { + m_ritualOwnerGUID = player->GetGUID(); m_ritualOwner = player; + } if (owner) { @@ -1518,7 +1525,7 @@ void GameObject::Use(Unit* user) else { // reset ritual for this GO - m_ritualOwner = NULL; + m_ritualOwnerGUID = 0; m_unique_users.clear(); m_usetimes = 0; } diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 77d36e1290c..6a411e3b4a2 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -847,7 +847,7 @@ class GameObject : public WorldObject, public GridObject<GameObject>, public Map // For traps this: spell casting cooldown, for doors/buttons: reset time. std::list<uint32> m_SkillupList; - Player* m_ritualOwner; // used for GAMEOBJECT_TYPE_SUMMONING_RITUAL where GO is not summoned (no owner) + uint64 m_ritualOwnerGUID; // used for GAMEOBJECT_TYPE_SUMMONING_RITUAL where GO is not summoned (no owner) std::set<uint64> m_unique_users; uint32 m_usetimes; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index b5bd510addc..ee27a1524f0 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -393,6 +393,13 @@ class boss_halion : public CreatureScript if (events.IsInPhase(PHASE_TWO)) return; + // Rough radius, it is not an exactly perfect circle + if (me->GetDistance2d(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()) > 48.5f) + { + EnterEvadeMode(); + return; + } + generic_halionAI::UpdateAI(diff); } |