diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 891a93b2..c763d2be 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -3820,3 +3820,16 @@ void Creature::InternalUseSkill() } } } + +void Creature::AddSkillHoldState(int skill_id) +{ + +} + +void Creature::ClearSkillHoldState() +{ + if (skill_hold_skill_id != 0) { + skill_hold_skill_id = 0; + skill_hold_start_frameno = 0; + } +} diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index d2ed3ccd..79c1e76e 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -398,6 +398,8 @@ class Creature : public MoveableEntity void CheckShotHold(); int Throw(int slot, const glm::vec3& bomb_pos, const glm::vec3& bomb_dir, float fly_distance, int estimated_time); + void AddSkillHoldState(int skill_id); + void ClearSkillHoldState(); protected: virtual void OnBuffRemove(Buff& buff); diff --git a/server/gameserver/trigger.cc b/server/gameserver/trigger.cc index 8b0f8195..43c3993e 100644 --- a/server/gameserver/trigger.cc +++ b/server/gameserver/trigger.cc @@ -290,6 +290,11 @@ void Trigger::Die(int killer_id, int weapon_id) owner_->RemoveBuffByUniId(buff_uniid); } } + { + if (owner_->skill_hold_skill_id != 0) { + owner_->ClearSkillHoldState(); + } + } Creature* killer = owner_->room->GetCreatureByUniId(killer_id); TraverseCondBuffs (kEventBuffDid,