From b18ef9040bfa99c5f3e4d23f6c63dbc9f5bf4034 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 25 May 2021 17:06:27 +0800 Subject: [PATCH] 1 --- server/gameserver/buff.cc | 5 +++++ server/gameserver/framemaker.cc | 5 +++++ server/gameserver/room.cc | 2 +- server/tools/protobuild/cs_proto.proto | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 1816410..c720b20 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -25,6 +25,11 @@ void Buff::FillMFBuff(cs::MFBuff* buff_pb) buff_pb->set_buff_id(meta->i->buff_id()); buff_pb->set_left_time(GetLeftTime()); buff_pb->set_lasting_time(GetLastingTime()); + if (owner->IsHuman() && + (meta->i->buff_effect() == kBET_Driver || + meta->i->buff_effect() == kBET_Passenger)) { + buff_pb->add_params(((Human*)owner)->GetCar()->meta->i->id()); + } } void Buff::ProcDelayAddBuff(Creature* caster) diff --git a/server/gameserver/framemaker.cc b/server/gameserver/framemaker.cc index adbbded..80db542 100644 --- a/server/gameserver/framemaker.cc +++ b/server/gameserver/framemaker.cc @@ -32,6 +32,11 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(Human* hum) } if (hum->IsPlayer()) { itr->FillMFObjectFull(room, (Human*)hum, msg->add_full_objects()); +#ifdef DEBUG + if (itr->GetEntityType() == ET_Car) { + hum->SendDebugMsg(a8::Format("载具出现", {})); + } +#endif } #ifdef DEBUG if (App::Instance()->HasFlag(2) && itr->GetEntityType() == ET_Player) { diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index f31c055..bda3582 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -592,12 +592,12 @@ Car* Room::CreateCar(Human* driver, } car->Initialize(); AddToEntityHash(car); + AddToMoveableHash(car); grid_service->AddCreature(car); car->RefreshView(); for (int buff_id : car->hero_meta_->init_buffs) { car->MustBeAddBuff(car, buff_id); } - car->BroadcastFullState(this); return car; } diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 535ff99..aec49f6 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -707,6 +707,7 @@ message MFBuff optional int32 buff_id = 1; //buff id optional float left_time = 2; //剩余时间(单位毫秒) optional float lasting_time = 3; //持续时间(总时间毫秒) + repeated float params = 4; //当是驾驶员或者乘客状时 params[0]:car_id } //buff变更