From 9f3f07b50d259998f4c4430c445436cc1ff01fe6 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 25 Mar 2023 23:57:22 +0800 Subject: [PATCH] 1 --- server/gameserver/ability.cc | 20 ++++++++++++++++++++ server/gameserver/ability.h | 10 ++++++++++ 2 files changed, 30 insertions(+) diff --git a/server/gameserver/ability.cc b/server/gameserver/ability.cc index 4a8c01ae..52b031a3 100644 --- a/server/gameserver/ability.cc +++ b/server/gameserver/ability.cc @@ -335,3 +335,23 @@ float Ability::GetFixedSped() { return fixed_speed_; } + +AttrAdditionHandle Ability::AddAttr(int attr_id, float rate) +{ + +} + +void Ability::RemoveAttrAddition(AttrAdditionHandle handler) +{ + +} + +AttrRuduceHandle Ability::DecAttr(int attr_id, float rate) +{ + +} + +void Ability::RemoveAttrRuduce(AttrRuduceHandle handler) +{ + +} diff --git a/server/gameserver/ability.h b/server/gameserver/ability.h index d632e12b..8cc9bded 100644 --- a/server/gameserver/ability.h +++ b/server/gameserver/ability.h @@ -3,6 +3,9 @@ #include "attrdefine.h" #include "weakptr.h" +typedef std::weak_ptr AttrAdditionHandle; +typedef std::weak_ptr AttrRuduceHandle; + class Room; class Human; class Ability @@ -64,10 +67,17 @@ class Ability int GetFixedSpeedTimes(); float GetFixedSped(); + AttrAdditionHandle AddAttr(int attr_id, float rate); + void RemoveAttrAddition(AttrAdditionHandle handler); + AttrRuduceHandle DecAttr(int attr_id, float rate); + void RemoveAttrRuduce(AttrRuduceHandle handler); + private: std::array buff_attr_abs_ = {}; std::array buff_attr_rate_ = {}; std::array buff_attr_flag_ = {}; + std::array, kHAT_End> attr_add_ = {}; + std::array, kHAT_End> attr_dec_ = {}; int speed_addition_times_ = 0; float speed_addition_rate_ = 0;