diff --git a/server/gameserver/ability.cc b/server/gameserver/ability.cc index 72d7712f..c661c5cc 100644 --- a/server/gameserver/ability.cc +++ b/server/gameserver/ability.cc @@ -620,15 +620,25 @@ float Ability::GetPolyAttr(int attr_id) bool Ability::HasPolyAttr(int attr_id) { - return false; + return HasAddAttr(attr_id) || HasDecAttr(attr_id); } bool Ability::HasAddAttr(int attr_id) { + if (IsValidHumanAttr(attr_id)) { + return !list_empty(&std::get<1>(attr_add_[attr_id])); + } if (IsValidHumanVirtualAttr(attr_id)) { + return !list_empty(&std::get<1>(vattr_add_[attr_id - kHVAT_Begin])); + } return false; } bool Ability::HasDecAttr(int attr_id) { + if (IsValidHumanAttr(attr_id)) { + return !list_empty(&std::get<1>(attr_dec_[attr_id])); + } if (IsValidHumanVirtualAttr(attr_id)) { + return !list_empty(&std::get<1>(vattr_dec_[attr_id - kHVAT_Begin])); + } return false; }