fix remove buff bug

This commit is contained in:
aozhiwei 2022-07-14 17:46:49 +08:00
parent b0506104c4
commit 1bfdae9d7d
3 changed files with 6 additions and 3 deletions

View File

@ -695,7 +695,7 @@ void Creature::OnBuffRemove(Buff& buff)
break; break;
} }
if (!buff.meta->i->only_server()) { if (!buff.meta->i->only_server()) {
room->frame_event.RemoveBuff(GetWeakPtrRef(), buff.meta->i->buff_id()); room->frame_event.RemoveBuff(GetWeakPtrRef(), &buff);
} }
} }

View File

@ -310,13 +310,16 @@ void FrameEvent::AddBuff(CreatureWeakPtr& sender, Buff* buff)
} }
} }
void FrameEvent::RemoveBuff(CreatureWeakPtr& sender, int buff_id) void FrameEvent::RemoveBuff(CreatureWeakPtr& sender, Buff* buff)
{ {
{ {
cs::MFBuffChg chged_buff_pb; cs::MFBuffChg chged_buff_pb;
chged_buff_pb.set_obj_id(sender.Get()->GetUniId()); chged_buff_pb.set_obj_id(sender.Get()->GetUniId());
chged_buff_pb.set_chg(1); chged_buff_pb.set_chg(1);
buff->FillMFBuff(chged_buff_pb.mutable_buff());
#if 0
chged_buff_pb.mutable_buff()->set_buff_id(buff_id); chged_buff_pb.mutable_buff()->set_buff_id(buff_id);
#endif
chged_buffs_.push_back(std::make_tuple(sender, chged_buff_pb)); chged_buffs_.push_back(std::make_tuple(sender, chged_buff_pb));
} }
{ {

View File

@ -38,7 +38,7 @@ public:
void AddHpChg(CreatureWeakPtr& sender); void AddHpChg(CreatureWeakPtr& sender);
void AddWeaponAmmoChg(CreatureWeakPtr& sender); void AddWeaponAmmoChg(CreatureWeakPtr& sender);
void AddBuff(CreatureWeakPtr& sender, Buff* buff); void AddBuff(CreatureWeakPtr& sender, Buff* buff);
void RemoveBuff(CreatureWeakPtr& sender, int buff_id); void RemoveBuff(CreatureWeakPtr& sender, Buff* buff);
void AddSkillCdChg(CreatureWeakPtr sender, int skill_id, int left_time); void AddSkillCdChg(CreatureWeakPtr sender, int skill_id, int left_time);
void AddSkillCurrTimesChg(CreatureWeakPtr sender, int skill_id, int curr_times); void AddSkillCurrTimesChg(CreatureWeakPtr sender, int skill_id, int curr_times);
void AddItemChg(CreatureWeakPtr& sender, int item_id, int item_num); void AddItemChg(CreatureWeakPtr& sender, int item_id, int item_num);