aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSpp- <spp@jorge.gr>2011-08-30 13:44:14 +0200
committerSpp- <spp@jorge.gr>2011-08-30 13:44:14 +0200
commitfcf58e706280f0b0029908d9dce2e9c744227830 (patch)
tree9f7a67e18f7acd4d2d90ddbb8fd0ecdca6cad72f /src
parentd498a5b68f7dfea3d5de45eb6d8eac9c902de6a8 (diff)
Core/AI: Fix a crash in UnitAI
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/AI/CoreAI/UnitAI.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp
index 91de52db9f8..b6517e3396b 100755
--- a/src/server/game/AI/CoreAI/UnitAI.cpp
+++ b/src/server/game/AI/CoreAI/UnitAI.cpp
@@ -42,22 +42,26 @@ void UnitAI::DoMeleeAttackIfReady()
if (me->HasUnitState(UNIT_STAT_CASTING))
return;
+ Unit *victim = me->getVictim();
+ if (!victim || !victim->IsInWorld())
+ return;
+
//Make sure our attack is ready and we aren't currently casting before checking distance
if (me->isAttackReady())
{
//If we are within range melee the target
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(victim))
{
- me->AttackerStateUpdate(me->getVictim());
+ me->AttackerStateUpdate(victim);
me->resetAttackTimer();
}
}
if (me->haveOffhandWeapon() && me->isAttackReady(OFF_ATTACK))
{
//If we are within range melee the target
- if (me->IsWithinMeleeRange(me->getVictim()))
+ if (me->IsWithinMeleeRange(victim))
{
- me->AttackerStateUpdate(me->getVictim(), OFF_ATTACK);
+ me->AttackerStateUpdate(victim, OFF_ATTACK);
me->resetAttackTimer(OFF_ATTACK);
}
}