diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index abb9a5e..635da43 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -379,51 +379,53 @@ void Buff::ProcSeletTargetWithSelfPos() ( [this, &targets] (Creature* c, bool& stop) { - switch (meta->int_param1) { - case kBST_All: - { - targets.push_back(c); - } - break; - case kBST_Self: - { - if (c == owner) { + if (owner_->GetPos().Distance(c->GetPos()) < meta->int_param3) { + switch (meta->int_param1) { + case kBST_All: + { targets.push_back(c); } - } - break; - case kBST_FriendlyIncludeSelf: - { - if (c->team_id == owner->team_id) { - targets.push_back(c); + break; + case kBST_Self: + { + if (c == owner) { + targets.push_back(c); + } } - } - break; - case kBST_FriendlyExcludeSelf: - { - if (c->team_id == owner->team_id && c != owner) { - targets.push_back(c); + break; + case kBST_FriendlyIncludeSelf: + { + if (c->team_id == owner->team_id) { + targets.push_back(c); + } } - } - break; - case kBST_Enemy: - { - if (c->team_id != owner->team_id) { - targets.push_back(c); + break; + case kBST_FriendlyExcludeSelf: + { + if (c->team_id == owner->team_id && c != owner) { + targets.push_back(c); + } } - } - break; - case kBST_EnemyAndSelf: - { - if (c->team_id != owner->team_id || c == owner) { - targets.push_back(c); + break; + case kBST_Enemy: + { + if (c->team_id != owner->team_id) { + targets.push_back(c); + } } + break; + case kBST_EnemyAndSelf: + { + if (c->team_id != owner->team_id || c == owner) { + targets.push_back(c); + } + } + break; + default: + { + } + break; } - break; - default: - { - } - break; } } );