aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2015-09-25 15:14:53 +0200
committerMitchesD <majklprofik@seznam.cz>2015-10-16 12:45:53 +0200
commit0bf78d57611d0606650aebb513a15e69227ac476 (patch)
tree7d72e0e832c8b17c97f2adcb2236d9ec7354d6d6 /src
parent89357f5425355c99648bcb142a8dc7cec9bcd132 (diff)
Custom logic for putting people in combat instead of relying on CreatureAI or Creature methods.
(cherry picked from commit 6a8524c068d418092c193a3419b65818f3fd3443)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index f44d1eb2680..26ee5329808 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -553,10 +553,25 @@ void Creature::Update(uint32 diff)
if (m_combatPulseTime == 0)
{
- if (AI())
- AI()->DoZoneInCombat();
- else
- SetInCombatWithZone();
+ Map::PlayerList const &players = GetMap()->GetPlayers();
+ if (!players.isEmpty())
+ for (Map::PlayerList::const_iterator it = players.begin(); it != players.end(); ++it)
+ {
+ if (Player* player = it->GetSource())
+ {
+ if (player->IsGameMaster())
+ continue;
+
+ if (player->IsAlive() && this->IsHostileTo(player))
+ {
+ if (CanHaveThreatList())
+ AddThreat(player, 0.0f);
+ this->SetInCombatWith(player);
+ player->SetInCombatWith(this);
+ }
+ }
+ }
+
m_combatPulseTime = m_combatPulseDelay * IN_MILLISECONDS;
}
}