diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 75351e7..2dff71a 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -811,7 +811,6 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) void Creature::Initialize() { MoveableEntity::Initialize(); - skill_xtimer_attacher_.xtimer = &room->xtimer; } void Creature::AddSkill(int skill_id) @@ -821,6 +820,7 @@ void Creature::AddSkill(int skill_id) Skill* skill = new Skill; skill->owner = this; skill->meta = skill_meta; + skill->xtimer_attacher.xtimer = &room->xtimer; skill_hash_[skill_id] = skill; } } diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index a141df7..cea678a 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -93,6 +93,5 @@ private: int skill_target_id_ = 0; a8::Vec2 skill_target_pos_; std::map skill_hash_; - a8::XTimerAttacher skill_xtimer_attacher_; std::map passive_skill_metas_; }; diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index 3323096..57b3d88 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -12,6 +12,7 @@ class Skill Creature* owner = nullptr; MetaData::Skill* meta = nullptr; long long last_use_frameno = 0; + a8::XTimerAttacher xtimer_attacher; int GetCd(); int GetLeftTime();