diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index f9d0bb0c..424ce2c7 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -1317,8 +1317,13 @@ behaviac::EBTStatus HeroAgent::Pickup() RoomObstacle* ob = curr_pickup_obj_.Get()->AsRoomObstacle(); owner_->AsHuman()->ObstacleInteraction(ob); } else if (curr_pickup_obj_.Get()->IsCar()) { - Car* car = curr_pickup_obj_.Get()->AsCar(); - owner_->AsHuman()->DoGetOn(car->GetUniId()); + if (owner_->HasBuffEffect(kBET_Driver) || + owner_->HasBuffEffect(kBET_Passenger)) { + return behaviac::BT_FAILURE; + } else { + Car* car = curr_pickup_obj_.Get()->AsCar(); + owner_->AsHuman()->DoGetOn(car->GetUniId()); + } } return behaviac::BT_SUCCESS; };