From c4b54caae63c3c83be140471064bfce4a6ca5340 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 29 Jul 2020 10:11:01 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 7af4c57..2bdc185 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -467,6 +467,13 @@ void Human::RecalcSelfCollider() } self_collider_->pos = a8::Vec2(); self_collider_->rad = meta->i->radius(); + Buff* buff = GetBuffByEffectId(kBET_Car); + if (buff) { + MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(buff->meta->param4); + if (equip_meta && equip_meta->i->rad() > 1) { + self_collider_->rad = equip_meta->i->rad(); + } + } } bool Human::IsCollisionInMapService() @@ -1264,6 +1271,7 @@ void Human::DoGetDown() room->TakeOffCarObject(loot_uniid, GetPos()); if (car_.meta->i->buffid()) { RemoveBuffById(car_.meta->i->buffid()); + RecalcSelfCollider(); } SyncAroundPlayers(__FILE__, __LINE__, __func__); room->NotifyUiUpdate(); @@ -2856,6 +2864,9 @@ void Human::ProcBuffEffect(Human* caster, Buff* buff) case kBET_Car: { RecalcBuffAttr(); + if (buff->meta->i->buff_effect() == kBET_Car) { + RecalcSelfCollider(); + } } break; case kBET_TurnOver: