This commit is contained in:
aozhiwei 2023-03-24 22:37:06 +08:00
parent 04c928af07
commit aad3bd2fbe
3 changed files with 9 additions and 1 deletions

View File

@ -49,6 +49,7 @@ class Buff
bool FreezeOperate();
CreatureWeakPtr& GetCaster();
void SetCaster(Creature* caster);
virtual bool IsValid() { return is_valid_; };
void CalcPassengerShotOffset();
@ -65,6 +66,7 @@ protected:
void ProcSputteringFunc(Bullet* bullet);
protected:
bool is_valid_ = true;
int hold_curr_weapon_idx_ = 0;
std::list<Weapon> hold_weapons_;
std::list<std::weak_ptr<EventHandlerPtr>> event_handlers_;

View File

@ -302,6 +302,9 @@ void FrameEvent::AddWeaponAmmoChg(CreatureWeakPtr& sender)
void FrameEvent::AddBuff(CreatureWeakPtr& sender, Buff* buff)
{
if (!buff->IsValid()) {
return;
}
{
cs::MFBuffChg chged_buff_pb;
chged_buff_pb.set_obj_id(sender.Get()->GetUniId());
@ -322,6 +325,9 @@ void FrameEvent::AddBuff(CreatureWeakPtr& sender, Buff* buff)
void FrameEvent::RemoveBuff(CreatureWeakPtr& sender, Buff* buff)
{
if (!buff->IsValid()) {
return;
}
{
cs::MFBuffChg chged_buff_pb;
chged_buff_pb.set_obj_id(sender.Get()->GetUniId());

View File

@ -61,7 +61,7 @@ static void Creature_FillBuffList(Creature* self, Human* hum, ::google::protobuf
(
[hum, pb_buff_list] (Buff* buff, bool& stop)
{
if (buff->NeedSync(hum)) {
if (buff->NeedSync(hum) && buff->IsValid()) {
auto p = pb_buff_list->Add();
buff->FillMFBuff(p);
}