From 3a612cabca4fafe7a4c44ad8c2811f450dcccb31 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 3 Jun 2021 13:30:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=BD=E5=85=B7=E5=AE=9A?= =?UTF-8?q?=E8=BA=ABbuff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/car.cc | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/server/gameserver/car.cc b/server/gameserver/car.cc index ff8577f..37a96a8 100644 --- a/server/gameserver/car.cc +++ b/server/gameserver/car.cc @@ -94,10 +94,6 @@ void Car::GetDown(Human* passenger) if (driver_ == passenger) { driver_ = nullptr; } - if (meta->i->buffid()) { - passenger->RemoveBuffById(meta->i->buffid()); - passenger->RecalcSelfCollider(); - } passengers_.erase(passenger); passenger->SetCar(nullptr); passenger->SetSeat(0); @@ -111,6 +107,9 @@ void Car::GetDown(Human* passenger) room->TakeOffCarObject(GetEntityUniId(), GetPos()); RemoveBuffByEffectId(kBET_CarActive); TryAddBuff(this, meta->car_deactive_buff_id); + if (meta->i->buffid() != 0) { + passenger->RemoveBuffById(meta->i->buffid()); + } } SyncAroundPlayers(__FILE__, __LINE__, __func__); room->NotifyUiUpdate(); @@ -159,11 +158,8 @@ void Car::GetOn(Human* passenger) passenger->AddBuff(passenger, buff_meta, 1); } } - { - MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(meta->i->buffid()); - if (buff_meta) { - passenger->AddBuff(passenger, buff_meta, 1); - } + if (meta->i->buffid() != 0) { + passenger->TryAddBuff(passenger, meta->i->buffid()); } passenger->CancelAction(); room->frame_event.AddCarChg(passenger); @@ -318,10 +314,6 @@ void Car::BeKill(int killer_id, const std::string& killer_name, int weapon_id) room->RemoveObjectLater(this); int team_id = 0; for (Human* passenger : passengers_) { - if (meta->i->buffid()) { - passenger->RemoveBuffById(meta->i->buffid()); - passenger->RecalcSelfCollider(); - } team_id = passenger->team_id; passenger->SetCar(nullptr); passenger->SetSeat(0);