From 1efa6d0aaf1569c349c5d96376ffa9bfbe9a89b9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 6 May 2021 16:22:48 +0800 Subject: [PATCH] 1 --- server/gameserver/car.cc | 2 ++ server/gameserver/car.h | 1 + server/gameserver/framemaker.cc | 1 + server/tools/protobuild/cs_proto.proto | 2 ++ 4 files changed, 6 insertions(+) diff --git a/server/gameserver/car.cc b/server/gameserver/car.cc index 0ea70e4..fe905de 100644 --- a/server/gameserver/car.cc +++ b/server/gameserver/car.cc @@ -35,6 +35,7 @@ void Car::Initialize() weapons[GUN_SLOT1].Recalc(); SetCurrWeapon(&weapons[GUN_SLOT1]); } + born_frameno_ = room->GetFrameNo(); } void Car::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) @@ -60,6 +61,7 @@ void Car::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) auto less_data = p->add_passengers(); hum->FillMFObjectLess(room, hum, less_data); } + p->set_born_frameno(ceil(born_frameno_ / 2.0)); } void Car::GetDown(Human* passenger) diff --git a/server/gameserver/car.h b/server/gameserver/car.h index 870d646..2760ba2 100644 --- a/server/gameserver/car.h +++ b/server/gameserver/car.h @@ -34,6 +34,7 @@ class Car : public Creature int AllocSeat(); private: + long long born_frameno_ = 0; bool later_removed_ = false; Human* driver_ = nullptr; std::set passengers_; diff --git a/server/gameserver/framemaker.cc b/server/gameserver/framemaker.cc index e006aaf..55bcb31 100644 --- a/server/gameserver/framemaker.cc +++ b/server/gameserver/framemaker.cc @@ -13,6 +13,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(Human* hum) cs::SMUpdate* msg = new cs::SMUpdate; { Room* room = hum->room; + msg->set_frameno(room->GetFrameNo() / 2); if (room->GetGasData().gas_mode == GasJump) { cs::MFPlane* p = msg->mutable_plane(); TypeConvert::ToPb(room->plane.start_point, p->mutable_start_point()); diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 23ec08d..2b10a96 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -441,6 +441,7 @@ message MFCarFull !!!注意这里只返回客户端必要的用于显示玩家外观的信息而不是全量信息 */ repeated MFPlayerFull passengers = 6; + optional int32 born_frameno = 8; //出生帧号 born_frameno == SMUpdate.frmanoe时表示在当前这帧出生 } //对象信息-部分 @@ -1057,6 +1058,7 @@ message SMUpdate //一下字段只有僵尸模式才有效 repeated MFPosition object_positions = 43; //对象坐标信息,如果对象已经在part_objects则可能不发,这时客户端可以读取part_objects里的左边更新小地图 optional int32 game_left_time = 45; //游戏剩余时间(毫秒, 战斗开始后字段才有意义) + optional int32 frameno = 46; } //滚动消息