aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts
diff options
context:
space:
mode:
authormegamage <none@none>2008-11-21 10:07:11 -0600
committermegamage <none@none>2008-11-21 10:07:11 -0600
commit71707df1dec2aa77864d9a853c34108bb6021138 (patch)
tree2c1825c5965d15a41c6000ae0ddd4dc911713dd2 /src/bindings/scripts
parent5528b7c512ef7968b11ea93a48364a58b629b18b (diff)
*Let creature search nearby target before enter evade mode
*Add function canStartAttack to reduce code in MoveInLineOfSight *Fix a bug that cancelling bind sight auras may crash the server --HG-- branch : trunk
Diffstat (limited to 'src/bindings/scripts')
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index 0c946b8f26d..ca7dc435b09 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -73,17 +73,7 @@ bool ScriptedAI::IsVisible(Unit* who) const
void ScriptedAI::MoveInLineOfSight(Unit *who)
{
- if(m_creature->getVictim() || !m_creature->IsHostileTo(who) || !who->isInAccessiblePlaceFor(m_creature))
- return;
-
- if(!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
- return;
-
- if(!m_creature->IsWithinDistInMap(who, m_creature->GetAttackDistance(who)) || !m_creature->IsWithinLOSInMap(who))
- return;
-
- if(m_creature->canAttack(who))
- //who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
+ if(!m_creature->getVictim() && m_creature->canStartAttack(who))
AttackStart(who);
}
@@ -679,10 +669,10 @@ void ScriptedAI::DoZoneInCombat(Unit* pUnit)
return;
}
- Map::PlayerList const &PlayerList = map->GetPlayers();
- for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* i_pl = i->getSource())
- if (!i_pl->isAlive())
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ if (Player* i_pl = i->getSource())
+ if (!i_pl->isAlive())
pUnit->AddThreat(i_pl, 0.0f);
}
@@ -725,10 +715,10 @@ void ScriptedAI::DoTeleportAll(float x, float y, float z, float o)
if (!map->IsDungeon())
return;
- Map::PlayerList const &PlayerList = map->GetPlayers();
- for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (Player* i_pl = i->getSource())
- if (!i_pl->isAlive())
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ if (Player* i_pl = i->getSource())
+ if (!i_pl->isAlive())
i_pl->TeleportTo(m_creature->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
}