From 883b1373c197d1156dd50e479c1ac7f002e8c08f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 19 Mar 2021 16:20:56 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 9 +++++++-- server/gameserver/creature.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index ccde94a..89294e0 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -372,6 +372,7 @@ void Creature::SelectSkillTargets(Skill* skill, const a8::Vec2& target_pos, std: break; case kST_EnemyAndSelf: { + #if 0 TouchAllLayerHumanList ( [this, skill, &target_pos, &target_list] (Human* hum, bool& stop) @@ -381,6 +382,7 @@ void Creature::SelectSkillTargets(Skill* skill, const a8::Vec2& target_pos, std: target_list.insert(hum); } }); + #endif } break; case kST_SingleEnemyAndSelf: @@ -470,8 +472,10 @@ void Creature::DoSkill(int skill_id, int target_id, const a8::Vec2& target_pos) DoSkillPreProc(skill_id, target_id, target_pos); skill_target_id_ = target_id; skill_target_pos_ = target_pos; - if (CanUseSkill(skill_id)) { + Skill* skill = GetSkill(skill_id); + if (skill && CanUseSkill(skill_id)) { ResetSkill(); + curr_skill_ = skill; playing_skill = true; CurrentSkill()->last_use_frameno = room->GetFrameNo(); if (CurrentSkill()->meta->i->skill_target() == kST_Self @@ -511,6 +515,7 @@ void Creature::DoSkillPostProc(bool used, int skill_id, int target_id, const a8: void Creature::ResetSkill() { + curr_skill_ = nullptr; curr_skill_phase = 0; skill_dir = a8::Vec2(); skill_target_pos_ = a8::Vec2(); @@ -596,7 +601,7 @@ MetaData::SkillPhase* Creature::GetCurrSkillPhase() Skill* Creature::CurrentSkill() { - return nullptr; + return curr_skill_; } void Creature::ProcBuffEffect(Creature* caster, Buff* buff) diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index afd9277..0b2341c 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -90,6 +90,7 @@ private: float skill_param1 = 0; bool playing_skill = false; size_t curr_skill_phase = 0; + Skill* curr_skill_ = nullptr; int skill_target_id_ = 0; a8::Vec2 skill_target_pos_; std::map skill_hash_;