From a001cd6468cc088707ca58ec96af4cf4b9ce5af6 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 4 Mar 2021 19:58:45 +0800 Subject: [PATCH] 1 --- server/gameserver/car.cc | 44 ++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/server/gameserver/car.cc b/server/gameserver/car.cc index 90c34d0..f8cb574 100644 --- a/server/gameserver/car.cc +++ b/server/gameserver/car.cc @@ -36,9 +36,15 @@ void Car::GetDown(Human* passenger) if (passengers.find(passenger) == passengers.end()) { return; } + if (driver == passenger) { + driver = nullptr; + } + if (meta->i->buffid()) { + passenger->RemoveBuffById(meta->i->buffid()); + passenger->RecalcSelfCollider(); + } passengers.erase(passenger); if (passengers.empty()) { - driver = nullptr; int loot_uniid = room->CreateLoot(meta->i->id(), GetPos(), 1, 1); Entity* loot_entity = room->GetEntityByUniId(loot_uniid); if (loot_entity && loot_entity->IsEntityType(ET_Loot)) { @@ -50,33 +56,13 @@ void Car::GetDown(Human* passenger) loot_entity->GetPos()); } room->TakeOffCarObject(loot_uniid, GetPos()); - if (meta->i->buffid()) { - passenger->RemoveBuffById(meta->i->buffid()); - passenger->RecalcSelfCollider(); - } - passenger->SyncAroundPlayers(__FILE__, __LINE__, __func__); - passenger->room->NotifyUiUpdate(); - passenger->SetCar(nullptr); - passenger->SetSeat(0); - passenger->car_weapon = Weapon(); - passenger->CancelAction(); - passenger->RemoveBuffByEffectId(kBET_Driver); - passenger->RemoveBuffByEffectId(kBET_Passenger); - room->frame_event.AddCarChg(passenger); - } else { - if (driver == passenger) { - driver = nullptr; - } - if (meta->i->buffid()) { - passenger->RemoveBuffById(meta->i->buffid()); - passenger->RecalcSelfCollider(); - } - passenger->SetCar(nullptr); - passenger->SetSeat(0); - passenger->car_weapon = Weapon(); - passenger->CancelAction(); - passenger->RemoveBuffByEffectId(kBET_Driver); - passenger->RemoveBuffByEffectId(kBET_Passenger); - room->frame_event.AddCarChg(passenger); } + passenger->SetCar(nullptr); + passenger->SetSeat(0); + passenger->car_weapon = Weapon(); + passenger->CancelAction(); + passenger->RemoveBuffByEffectId(kBET_Driver); + passenger->RemoveBuffByEffectId(kBET_Passenger); + room->frame_event.AddCarChg(passenger); + SyncAroundPlayers(__FILE__, __LINE__, __func__); }