diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 4b89cb87..42b2c476 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -131,7 +131,7 @@ void Buff::InternalTimerAddBuff() auto caster_state = std::make_shared(); caster_.Get()->FillSkillCasterState(caster_state.get()); - const mt::Skill* skill = caster_.Get()->CurrentSkill() ? caster_.Get()->CurrentSkill()->meta : nullptr; + const mt::Skill* skill = caster_.Get()->CurrentSkillMeta(); auto timer_func = [this, caster_state, skill] (int event, const a8::Args* args) { diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index e2f94a76..a729f82d 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -1148,6 +1148,12 @@ Skill* Creature::CurrentSkill() return curr_skill_; } +const mt::Skill* Creature::CurrentSkillMeta() +{ + const mt::Skill* skill_meta = CurrentSkill() ? CurrentSkill()->meta : nullptr; + return skill_meta; +} + void Creature::ActiveAllSkill() { for (auto& pair : skill_hash_) { diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index aeac7ae6..c74ad46f 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -178,6 +178,7 @@ class Creature : public MoveableEntity ); void ResetSkill(); Skill* CurrentSkill(); + const mt::Skill* CurrentSkillMeta(); void ActiveAllSkill(); const mt::SkillPhase* GetCurrSkillPhase(); bool CanSee(const Creature* c) const;