aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp2
-rwxr-xr-xsrc/server/game/Battlegrounds/Battleground.cpp8
-rwxr-xr-xsrc/server/game/Battlegrounds/Battleground.h2
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundAB.cpp19
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundAV.cpp24
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundBE.cpp16
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp11
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundEY.cpp33
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundNA.cpp12
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundRL.cpp13
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundRV.cpp9
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundWS.cpp16
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.cpp3
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.h1
14 files changed, 73 insertions, 96 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index db79925cc7f..32b9f8b5903 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -1268,7 +1268,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (!IsSmart())
break;
- CAST_AI(SmartAI, me->AI())->SetFly(e.action.setFly.fly ? false : true);
+ CAST_AI(SmartAI, me->AI())->SetFly(e.action.setFly.fly ? true : false);
break;
}
case SMART_ACTION_SET_RUN:
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 978e6eee3d9..0b7b6cd6f75 100755
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -1958,3 +1958,11 @@ void Battleground::RewardXPAtKill(Player* killer, Player* victim)
if (sWorld->getBoolConfig(CONFIG_BG_XP_FOR_KILL) && killer && victim)
killer->RewardPlayerAndGroupAtKill(victim, true);
}
+
+void Battleground::HandleAreaTrigger(Player* player, uint32 trigger)
+{
+ sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger %u in Battleground %u. Player coords (x: %f, y: %f, z: %f)",
+ trigger, player->GetMapId(), player->GetPositionX(), player->GetPositionY(), player->GetPositionZ());
+ if (player->isGameMaster())
+ player->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", trigger);
+}
diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h
index 67f51990c87..d7b203a6faf 100755
--- a/src/server/game/Battlegrounds/Battleground.h
+++ b/src/server/game/Battlegrounds/Battleground.h
@@ -510,7 +510,7 @@ class Battleground
// Triggers handle
// must be implemented in BG subclass
- virtual void HandleAreaTrigger(Player* /*Source*/, uint32 /*Trigger*/) {}
+ virtual void HandleAreaTrigger(Player* /*Source*/, uint32 /*Trigger*/);
// must be implemented in BG subclass if need AND call base class generic code
virtual void HandleKillPlayer(Player* player, Player* killer);
virtual void HandleKillUnit(Creature* /*unit*/, Player* /*killer*/);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
index 365ffb853d2..dfd7af583a5 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
@@ -210,24 +210,24 @@ void BattlegroundAB::RemovePlayer(Player* /*player*/, uint64 /*guid*/, uint32 /*
}
-void BattlegroundAB::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundAB::HandleAreaTrigger(Player* player, uint32 trigger)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- switch (Trigger)
+ switch (trigger)
{
case 3948: // Arathi Basin Alliance Exit.
- if (Source->GetTeam() != ALLIANCE)
- Source->GetSession()->SendAreaTriggerMessage("Only The Alliance can use that portal");
+ if (player->GetTeam() != ALLIANCE)
+ player->GetSession()->SendAreaTriggerMessage("Only The Alliance can use that portal");
else
- Source->LeaveBattleground();
+ player->LeaveBattleground();
break;
case 3949: // Arathi Basin Horde Exit.
- if (Source->GetTeam() != HORDE)
- Source->GetSession()->SendAreaTriggerMessage("Only The Horde can use that portal");
+ if (player->GetTeam() != HORDE)
+ player->GetSession()->SendAreaTriggerMessage("Only The Horde can use that portal");
else
- Source->LeaveBattleground();
+ player->LeaveBattleground();
break;
case 3866: // Stables
case 3869: // Gold Mine
@@ -238,8 +238,7 @@ void BattlegroundAB::HandleAreaTrigger(Player* Source, uint32 Trigger)
case 4021: // Unk2
//break;
default:
- //sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- //Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
index 37072866238..aeebfb945f9 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
@@ -489,27 +489,25 @@ void BattlegroundAV::RemovePlayer(Player* player, uint64 /*guid*/, uint32 /*team
player->RemoveAurasDueToSpell(AV_BUFF_H_CAPTAIN);
}
-void BattlegroundAV::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundAV::HandleAreaTrigger(Player* player, uint32 trigger)
{
- // this is wrong way to implement these things. On official it done by gameobject spell cast.
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- uint32 SpellId = 0;
- switch (Trigger)
+ switch (trigger)
{
case 95:
case 2608:
- if (Source->GetTeam() != ALLIANCE)
- Source->GetSession()->SendAreaTriggerMessage("Only The Alliance can use that portal");
+ if (player->GetTeam() != ALLIANCE)
+ player->GetSession()->SendAreaTriggerMessage("Only The Alliance can use that portal");
else
- Source->LeaveBattleground();
+ player->LeaveBattleground();
break;
case 2606:
- if (Source->GetTeam() != HORDE)
- Source->GetSession()->SendAreaTriggerMessage("Only The Horde can use that portal");
+ if (player->GetTeam() != HORDE)
+ player->GetSession()->SendAreaTriggerMessage("Only The Horde can use that portal");
else
- Source->LeaveBattleground();
+ player->LeaveBattleground();
break;
case 3326:
case 3327:
@@ -520,13 +518,9 @@ void BattlegroundAV::HandleAreaTrigger(Player* Source, uint32 Trigger)
//Source->Unmount();
break;
default:
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
-// Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
-
- if (SpellId)
- Source->CastSpell(Source, SpellId, true);
}
void BattlegroundAV::UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp
index 78cf6b9863f..4b34422f31b 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundBE.cpp
@@ -105,30 +105,20 @@ bool BattlegroundBE::HandlePlayerUnderMap(Player* player)
return true;
}
-void BattlegroundBE::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundBE::HandleAreaTrigger(Player* player, uint32 trigger)
{
- // this is wrong way to implement these things. On official it done by gameobject spell cast.
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- //uint32 SpellId = 0;
- //uint64 buff_guid = 0;
- switch (Trigger)
+ switch (trigger)
{
case 4538: // buff trigger?
- //buff_guid = BgObjects[BG_BE_OBJECT_BUFF_1];
- break;
case 4539: // buff trigger?
- //buff_guid = BgObjects[BG_BE_OBJECT_BUFF_2];
break;
default:
- sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
-
- //if (buff_guid)
- // HandleTriggerBuff(buff_guid, Source);
}
void BattlegroundBE::FillInitialWorldStates(WorldPacket &data)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
index 20eba2a7f67..be947458964 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
@@ -181,18 +181,18 @@ void BattlegroundDS::HandleKillPlayer(Player* player, Player* killer)
CheckArenaWinConditions();
}
-void BattlegroundDS::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundDS::HandleAreaTrigger(Player* player, uint32 trigger)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- switch (Trigger)
+ switch (trigger)
{
case 5347:
case 5348:
// Remove effects of Demonic Circle Summon
- if (Source->HasAura(48018))
- Source->RemoveAurasDueToSpell(48018);
+ if (player->HasAura(48018))
+ player->RemoveAurasDueToSpell(48018);
// Someone has get back into the pipes and the knockback has already been performed,
// so we reset the knockback count for kicking the player again into the arena.
@@ -200,8 +200,7 @@ void BattlegroundDS::HandleAreaTrigger(Player* Source, uint32 Trigger)
setPipeKnockBackCount(0);
break;
default:
- sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index 35ea94ba607..bad56a95cfb 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -368,35 +368,35 @@ void BattlegroundEY::RemovePlayer(Player* player, uint64 guid, uint32 /*team*/)
}
}
-void BattlegroundEY::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundEY::HandleAreaTrigger(Player* player, uint32 trigger)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- if (!Source->isAlive()) //hack code, must be removed later
+ if (!player->isAlive()) //hack code, must be removed later
return;
- switch (Trigger)
+ switch (trigger)
{
case TR_BLOOD_ELF_POINT:
- if (m_PointState[BLOOD_ELF] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[BLOOD_ELF] == Source->GetTeam())
- if (m_FlagState && GetFlagPickerGUID() == Source->GetGUID())
- EventPlayerCapturedFlag(Source, BG_EY_OBJECT_FLAG_BLOOD_ELF);
+ if (m_PointState[BLOOD_ELF] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[BLOOD_ELF] == player->GetTeam())
+ if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
+ EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_BLOOD_ELF);
break;
case TR_FEL_REAVER_POINT:
- if (m_PointState[FEL_REAVER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[FEL_REAVER] == Source->GetTeam())
- if (m_FlagState && GetFlagPickerGUID() == Source->GetGUID())
- EventPlayerCapturedFlag(Source, BG_EY_OBJECT_FLAG_FEL_REAVER);
+ if (m_PointState[FEL_REAVER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[FEL_REAVER] == player->GetTeam())
+ if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
+ EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_FEL_REAVER);
break;
case TR_MAGE_TOWER_POINT:
- if (m_PointState[MAGE_TOWER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[MAGE_TOWER] == Source->GetTeam())
- if (m_FlagState && GetFlagPickerGUID() == Source->GetGUID())
- EventPlayerCapturedFlag(Source, BG_EY_OBJECT_FLAG_MAGE_TOWER);
+ if (m_PointState[MAGE_TOWER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[MAGE_TOWER] == player->GetTeam())
+ if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
+ EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_MAGE_TOWER);
break;
case TR_DRAENEI_RUINS_POINT:
- if (m_PointState[DRAENEI_RUINS] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[DRAENEI_RUINS] == Source->GetTeam())
- if (m_FlagState && GetFlagPickerGUID() == Source->GetGUID())
- EventPlayerCapturedFlag(Source, BG_EY_OBJECT_FLAG_DRAENEI_RUINS);
+ if (m_PointState[DRAENEI_RUINS] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[DRAENEI_RUINS] == player->GetTeam())
+ if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
+ EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_DRAENEI_RUINS);
break;
case 4512:
case 4515:
@@ -411,8 +411,7 @@ void BattlegroundEY::HandleAreaTrigger(Player* Source, uint32 Trigger)
case 5866:
break;
default:
- sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundNA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundNA.cpp
index f39b1ba5540..6c45d4a8873 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundNA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundNA.cpp
@@ -102,26 +102,20 @@ bool BattlegroundNA::HandlePlayerUnderMap(Player* player)
return true;
}
-void BattlegroundNA::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundNA::HandleAreaTrigger(Player* player, uint32 trigger)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- //uint32 SpellId = 0;
- //uint64 buff_guid = 0;
- switch (Trigger)
+ switch (trigger)
{
case 4536: // buff trigger?
case 4537: // buff trigger?
break;
default:
- sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
-
- //if (buff_guid)
- // HandleTriggerBuff(buff_guid, Source);
}
void BattlegroundNA::FillInitialWorldStates(WorldPacket &data)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundRL.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundRL.cpp
index 7fa9980a77c..3dd4fb32da4 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundRL.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundRL.cpp
@@ -102,27 +102,20 @@ bool BattlegroundRL::HandlePlayerUnderMap(Player* player)
return true;
}
-void BattlegroundRL::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundRL::HandleAreaTrigger(Player* player, uint32 trigger)
{
- // this is wrong way to implement these things. On official it done by gameobject spell cast.
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- //uint32 SpellId = 0;
- //uint64 buff_guid = 0;
- switch (Trigger)
+ switch (trigger)
{
case 4696: // buff trigger?
case 4697: // buff trigger?
break;
default:
- sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
-
- //if (buff_guid)
- // HandleTriggerBuff(buff_guid, Source);
}
void BattlegroundRL::FillInitialWorldStates(WorldPacket &data)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundRV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundRV.cpp
index 769df5445c7..2cc48648022 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundRV.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundRV.cpp
@@ -148,12 +148,12 @@ bool BattlegroundRV::HandlePlayerUnderMap(Player* player)
return true;
}
-void BattlegroundRV::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundRV::HandleAreaTrigger(Player* player, uint32 trigger)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- switch (Trigger)
+ switch (trigger)
{
case 5224:
case 5226:
@@ -162,8 +162,7 @@ void BattlegroundRV::HandleAreaTrigger(Player* Source, uint32 Trigger)
case 5474:
break;
default:
- sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
}
@@ -247,4 +246,4 @@ void BattlegroundRV::TogglePillarCollision()
}
SetPillarCollision(!apply);
-} \ No newline at end of file
+}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
index dd94606b4cd..a50553d2fa3 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
@@ -595,15 +595,14 @@ void BattlegroundWS::UpdateTeamScore(uint32 team)
UpdateWorldState(BG_WS_FLAG_CAPTURES_HORDE, GetTeamScore(team));
}
-void BattlegroundWS::HandleAreaTrigger(Player* Source, uint32 Trigger)
+void BattlegroundWS::HandleAreaTrigger(Player* player, uint32 trigger)
{
- // this is wrong way to implement these things. On official it done by gameobject spell cast.
if (GetStatus() != STATUS_IN_PROGRESS)
return;
//uint32 SpellId = 0;
//uint64 buff_guid = 0;
- switch (Trigger)
+ switch (trigger)
{
case 3686: // Alliance elixir of speed spawn. Trigger not working, because located inside other areatrigger, can be replaced by IsWithinDist(object, dist) in Battleground::Update().
//buff_guid = BgObjects[BG_WS_OBJECT_SPEEDBUFF_1];
@@ -625,13 +624,13 @@ void BattlegroundWS::HandleAreaTrigger(Player* Source, uint32 Trigger)
break;
case 3646: // Alliance Flag spawn
if (_flagState[BG_TEAM_HORDE] && !_flagState[BG_TEAM_ALLIANCE])
- if (GetFlagPickerGUID(BG_TEAM_HORDE) == Source->GetGUID())
- EventPlayerCapturedFlag(Source);
+ if (GetFlagPickerGUID(BG_TEAM_HORDE) == player->GetGUID())
+ EventPlayerCapturedFlag(player);
break;
case 3647: // Horde Flag spawn
if (_flagState[BG_TEAM_ALLIANCE] && !_flagState[BG_TEAM_HORDE])
- if (GetFlagPickerGUID(BG_TEAM_ALLIANCE) == Source->GetGUID())
- EventPlayerCapturedFlag(Source);
+ if (GetFlagPickerGUID(BG_TEAM_ALLIANCE) == player->GetGUID())
+ EventPlayerCapturedFlag(player);
break;
case 3649: // unk1
case 3688: // unk2
@@ -639,8 +638,7 @@ void BattlegroundWS::HandleAreaTrigger(Player* Source, uint32 Trigger)
case 4629: // unk4
break;
default:
- sLog->outError(LOG_FILTER_BATTLEGROUND, "WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger);
- Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger);
+ Battleground::HandleAreaTrigger(player, trigger);
break;
}
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index f6a2c56b794..917c4cd7f90 100755
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -223,6 +223,9 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
case RELATION_PASSENGER_OF:
condMeets = unit->IsOnVehicle(toUnit);
break;
+ case RELATION_CREATED_BY:
+ condMeets = unit->GetCreatorGUID() == toUnit->GetGUID();
+ break;
}
}
}
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index bd72015d76f..57af0562dcd 100755
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -144,6 +144,7 @@ enum RelationType
RELATION_IN_RAID_OR_PARTY,
RELATION_OWNED_BY,
RELATION_PASSENGER_OF,
+ RELATION_CREATED_BY,
RELATION_MAX
};