From 4e6da489796bfd31e3f82a4150e4b91ff361caec Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 11 Aug 2021 11:16:00 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 4 +++- server/gameserver/creature.h | 2 +- server/gameserver/human.cc | 4 +--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 1e3c9e1..23450ea 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -587,7 +587,9 @@ void Creature::RecalcBuffAttr() void Creature::OnBuffRemove(Buff& buff) { - + if (!buff.meta->i->only_server()) { + room->frame_event.RemoveBuff(GetWeakPtrRef(), buff.meta->i->buff_id()); + } } void Creature::RemoveBuffByEffectId(int buff_effect_id) diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 5c704ea..d65a87c 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -216,11 +216,11 @@ class Creature : public MoveableEntity protected: + virtual void OnBuffRemove(Buff& buff); private: virtual void AddBuffPostProc(Creature* caster, Buff* buff); - virtual void OnBuffRemove(Buff& buff); virtual void DoSkillPreProc(int skill_id, int target_id, const a8::Vec2& target_pos); virtual void DoSkillPostProc(bool used, int skill_id, int target_id, const a8::Vec2& target_pos); diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 96a3551..0f1a8de 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3201,6 +3201,7 @@ void Human::ProcReliveAction() void Human::OnBuffRemove(Buff& buff) { + Creature::OnBuffRemove(buff); switch (buff.meta->i->buff_effect()) { case kBET_Jump: { @@ -3263,9 +3264,6 @@ void Human::OnBuffRemove(Buff& buff) } break; } - if (!buff.meta->i->only_server()) { - room->frame_event.RemoveBuff(GetWeakPtrRef(), buff.meta->i->buff_id()); - } } void Human::OnLand()