diff --git a/server/gameserver/ability.cc b/server/gameserver/ability.cc index 31749ec0..13a2a88d 100644 --- a/server/gameserver/ability.cc +++ b/server/gameserver/ability.cc @@ -21,7 +21,15 @@ struct AttrRuduce Ability::Ability(CreatureWeakPtr owner) { - + for (auto& tuple : attr_add_) { + std::get<0>(tuple) = .0f; + INIT_LIST_HEAD(&std::get<1>(tuple)); + } + for (auto& tuple : attr_dec_) { + std::get<0>(tuple) = .0f; + INIT_LIST_HEAD(&std::get<1>(tuple)); + } + Clear(); } float Ability::GetAttrAbs(int attr_id) @@ -61,6 +69,14 @@ void Ability::Clear() buff_attr_abs_ = {}; buff_attr_rate_ = {}; buff_attr_flag_ = {}; + for (auto& tuple : attr_add_) { + std::get<0>(tuple) = .0f; + INIT_LIST_HEAD(&std::get<1>(tuple)); + } + for (auto& tuple : attr_dec_) { + std::get<0>(tuple) = .0f; + INIT_LIST_HEAD(&std::get<1>(tuple)); + } } float* Ability::GetBuffAttrAbsPtr(int attr_id)