diff options
Diffstat (limited to 'src/bindings/scripts/include')
| -rw-r--r-- | src/bindings/scripts/include/sc_creature.cpp | 10 | ||||
| -rw-r--r-- | src/bindings/scripts/include/sc_creature.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp index 3e7a1a39878..aa2a3fbf324 100644 --- a/src/bindings/scripts/include/sc_creature.cpp +++ b/src/bindings/scripts/include/sc_creature.cpp @@ -644,6 +644,16 @@ void BossAI::_EnterCombat() instance->SetBossState(bossId, IN_PROGRESS); } +void BossAI::TeleportCheaters() +{ + float x, y, z; + me->GetPosition(x, y, z); + std::list<HostilReference*> &m_threatlist = me->getThreatManager().getThreatList(); + for(std::list<HostilReference*>::iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr) + if((*itr)->getTarget()->GetTypeId() == TYPEID_PLAYER && !CheckBoundary((*itr)->getTarget())) + (*itr)->getTarget()->NearTeleportTo(x, y, z, 0); +} + bool BossAI::CheckBoundary(Unit *who) { if(!boundary || !who) diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h index 95bcadaceeb..6208d10c39e 100644 --- a/src/bindings/scripts/include/sc_creature.h +++ b/src/bindings/scripts/include/sc_creature.h @@ -233,6 +233,7 @@ struct TRINITY_DLL_DECL BossAI : public ScriptedAI return false; } bool CheckBoundary(Unit *who); + void TeleportCheaters(); }; #endif |
