diff options
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index e00b2446010..123dbbcf2eb 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -12943,8 +12943,25 @@ bool Unit::IsInRaidWith(Unit const *unit) const return false; } -void Unit::GetRaidMember(std::list<Unit*> &TagUnitMap, float radius) +void Unit::GetRaidMember(std::list<Unit*> &nearMembers, float radius) { + Player *owner = GetCharmerOrOwnerPlayerOrPlayerItself(); + if(!owner) + return; + + Group *pGroup = owner->GetGroup(); + if(!pGroup) + return; + + for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) + { + Player* Target = itr->getSource(); + + // IsHostileTo check duel and controlled by enemy + if( Target && Target != this && Target->isAlive() + && IsWithinDistInMap(Target, radius) && !IsHostileTo(Target) ) + nearMembers.push_back(Target); + } } void Unit::GetPartyMember(std::list<Unit*> &TagUnitMap, float radius) |