mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 06:21:28 +00:00
[Spells] Update to target types Beam and Cone to ignore invalid targets. (#2080)
This commit is contained in:
parent
35b35f85cf
commit
34dc081306
@ -5457,6 +5457,15 @@ void EntityList::GetTargetsForConeArea(Mob *start, float min_radius, float radiu
|
||||
++it;
|
||||
continue;
|
||||
}
|
||||
if (ptr->IsClient() && !ptr->CastToClient()->ClientFinishedLoading()) {
|
||||
++it;
|
||||
continue;
|
||||
}
|
||||
if (ptr->IsAura() || ptr->IsTrap()) {
|
||||
++it;
|
||||
continue;
|
||||
}
|
||||
|
||||
float x_diff = ptr->GetX() - start->GetX();
|
||||
float y_diff = ptr->GetY() - start->GetY();
|
||||
float z_diff = ptr->GetZ() - start->GetZ();
|
||||
|
||||
@ -6372,6 +6372,23 @@ void Mob::BeamDirectional(uint16 spell_id, int16 resist_adjust)
|
||||
}
|
||||
}
|
||||
|
||||
if (!beneficial_targets) {
|
||||
if (!IsAttackAllowed((*iter), true)) {
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (IsAttackAllowed((*iter), true)) {
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
if (CheckAggro((*iter))) {
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//# shortest distance from line to target point
|
||||
float d = std::abs((*iter)->GetY() - m * (*iter)->GetX() - b) / sqrt(m * m + 1);
|
||||
|
||||
@ -6447,6 +6464,23 @@ void Mob::ConeDirectional(uint16 spell_id, int16 resist_adjust)
|
||||
}
|
||||
}
|
||||
|
||||
if (!beneficial_targets) {
|
||||
if (!IsAttackAllowed((*iter), true)) {
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (IsAttackAllowed((*iter), true)) {
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
if (CheckAggro((*iter))) {
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (angle_start > angle_end) {
|
||||
if ((heading_to_target >= angle_start && heading_to_target <= 360.0f) ||
|
||||
(heading_to_target >= 0.0f && heading_to_target <= angle_end)) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user