aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2011-06-26 19:32:41 +0200
committerQAston <qaston@gmail.com>2011-06-26 19:32:41 +0200
commite5db97a28ef14bbb7c503da636badbcb5e190184 (patch)
treec2bf57ed8188f600c82c808388b1492b107a9b5e /src/server/game
parentfaaba1aa65c17ca48f4f8d25612e4ff5f4afcd5e (diff)
parente7778c72314cd697814d6a16c3e69c2e4737c3ec (diff)
Merge branch 'master' of https://github.com/TrinityCore/TrinityCore
Diffstat (limited to 'src/server/game')
-rwxr-xr-xsrc/server/game/Grids/Notifiers/GridNotifiers.h6
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp8
2 files changed, 8 insertions, 6 deletions
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h
index 422639c603d..042950a6ddd 100755
--- a/src/server/game/Grids/Notifiers/GridNotifiers.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.h
@@ -805,10 +805,10 @@ namespace Trinity
float i_range;
};
- class AnyUnfriendlyVisibleUnitInObjectRangeCheck
+ class AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck
{
public:
- AnyUnfriendlyVisibleUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range)
+ AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range)
: i_obj(obj), i_funit(funit), i_range(range) {}
bool operator()(Unit* u)
@@ -816,6 +816,8 @@ namespace Trinity
return u->isAlive()
&& i_obj->IsWithinDistInMap(u, i_range)
&& !i_funit->IsFriendlyTo(u)
+ && i_funit->canAttack(u)
+ && u->GetCreatureType() != CREATURE_TYPE_CRITTER
&& i_funit->canSeeOrDetect(u);
}
private:
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index cb60408363d..27a34bb8740 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -5655,11 +5655,11 @@ void AuraEffect::HandlePeriodicDummyAuraTick(Unit* target, Unit* caster) const
Cell cell(p);
cell.data.Part.reserved = ALL_DISTRICT;
- Trinity::AnyUnfriendlyVisibleUnitInObjectRangeCheck u_check(target, target, radius);
- Trinity::UnitListSearcher<Trinity::AnyUnfriendlyVisibleUnitInObjectRangeCheck> checker(target, targets, u_check);
+ Trinity::AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck u_check(target, target, radius);
+ Trinity::UnitListSearcher<Trinity::AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck> checker(target, targets, u_check);
- TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, GridTypeMapContainer > grid_object_checker(checker);
- TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, WorldTypeMapContainer > world_object_checker(checker);
+ TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck>, GridTypeMapContainer > grid_object_checker(checker);
+ TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck>, WorldTypeMapContainer > world_object_checker(checker);
cell.Visit(p, grid_object_checker, *GetBase()->GetOwner()->GetMap(), *target, radius);
cell.Visit(p, world_object_checker, *GetBase()->GetOwner()->GetMap(), *target, radius);