From 5a39f74711743c17b5afc828a59f927bb052d311 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 23 May 2023 10:35:00 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 10 ++++++++++ server/gameserver/creature.h | 1 + server/gameserver/skill.cc | 5 +++++ server/gameserver/skill.h | 1 + 4 files changed, 17 insertions(+) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 27eccb28..b8567d87 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -3288,3 +3288,13 @@ void Creature::AdjustPos() GetMutablePos().SetZ(0); } } + +Skill* Creature::GetMainSkill() +{ + for (auto& pair : skill_hash_) { + if (pair.second->IsMainSkill()) { + return pair.second.get(); + } + } + return nullptr; +} diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 8817fc9b..fa00c0d0 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -190,6 +190,7 @@ class Creature : public MoveableEntity void ClearBuffList(); void TriggerBuff(Skill* skill, std::set& target_list, BuffTriggerType_e trigger_type); Skill* GetSkill(int skill_id); + Skill* GetMainSkill(); int GetSkillTargetId() { return skill_target_id_; }; void AddSkill(int skill_id); void ClearSkill(); diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 4c917094..84b57381 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -492,3 +492,8 @@ void Skill::CancelMinorMode() } } } + +bool Skill::IsMainSkill() +{ + return owner->GetBattleContext()->IsMainSkill(this); +} diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index b0cad778..4358e511 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -45,6 +45,7 @@ class Skill void CancelMinorMode(); void ProcSkillPhase(const mt::SkillPhase* phase); bool Actived() { return actived_; } + bool IsMainSkill(); private: void InitActiveSkill();