1
This commit is contained in:
parent
e96243a29a
commit
b8c85a3959
@ -78,5 +78,43 @@ void Car::GetOn(Human* passenger)
|
|||||||
if (later_removed_) {
|
if (later_removed_) {
|
||||||
return;
|
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__);
|
||||||
}
|
}
|
||||||
|
@ -4243,67 +4243,9 @@ void Human::DoGetOnWithLoot(Loot* entity)
|
|||||||
);
|
);
|
||||||
car_->GetOn(this);
|
car_->GetOn(this);
|
||||||
room->NotifyUiUpdate();
|
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)
|
void Human::DoGetOnWithCar(Car* car)
|
||||||
{
|
{
|
||||||
car->GetOn(this);
|
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
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user