This commit is contained in:
aozhiwei 2021-03-05 15:04:12 +08:00
parent e96243a29a
commit b8c85a3959
2 changed files with 39 additions and 59 deletions

View File

@ -78,5 +78,43 @@ void Car::GetOn(Human* passenger)
if (later_removed_) {
return;
}
if (meta->int_param2 <= 0) {
abort();
}
if (meta->int_param2 <= passengers_.size()) {
return;
}
if (passengers_.find(passenger) != passengers_.end()) {
return;
}
if (passenger->GetCar()) {
return;
}
for (auto hum : passengers_) {
if (hum->team_id != passenger->team_id) {
return;
}
}
passengers_.insert(passenger);
if (!driver_) {
driver_ = passenger;
}
passenger->SetCar(this);
passenger->SetPos(GetPos());
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff
(driver_ == passenger ? DRIVER_BUFFID : PASSENGER_BUFFID);
if (buff_meta) {
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);
}
}
passenger->CancelAction();
room->frame_event.AddCarChg(passenger);
SyncAroundPlayers(__FILE__, __LINE__, __func__);
}

View File

@ -4243,67 +4243,9 @@ void Human::DoGetOnWithLoot(Loot* entity)
);
car_->GetOn(this);
room->NotifyUiUpdate();
#if 0
SetCar(car_);
SetSeat(0);
SetPos(entity->GetPos());
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(DRIVER_BUFFID);
if (buff_meta) {
AddBuff(this, buff_meta, 1);
}
}
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(car_->meta->i->buffid());
if (buff_meta) {
AddBuff(this, buff_meta, 1);
}
}
CancelAction();
SyncAroundPlayers(__FILE__, __LINE__, __func__);
room->TakeOnCarObject(car_->car_uniid);
#endif
}
void Human::DoGetOnWithCar(Car* car)
{
car->GetOn(this);
#if 0
if (teammate->team_id != team_id) {
return;
}
if (teammate->GetEntityUniId() == GetEntityUniId()) {
return;
}
if (teammate->IsDead(room)) {
return;
}
if (!teammate->HasBuffEffect(kBET_Driver)) {
return;
}
if (GetCar()) {
return;
}
if (!teammate->GetCar()) {
return;
}
teammate->GetCar()->PassengerGetOn(this);
SetCar(teammate->GetCar());
SetPos(teammate->GetPos());
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(PASSENGER_BUFFID);
if (buff_meta) {
AddBuff(this, buff_meta, 1);
}
}
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(car_->meta->i->buffid());
if (buff_meta) {
AddBuff(this, buff_meta, 1);
}
}
CancelAction();
SyncAroundPlayers(__FILE__, __LINE__, __func__);
#endif
}