From 63baa4584bcc770b495cc19807a1272e3f9d10f4 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 18 Jul 2019 19:07:03 +0800 Subject: [PATCH] 1 --- server/gameserver/human.h | 3 +++ server/gameserver/playermgr.cc | 1 + server/gameserver/types.cc | 6 ++++++ server/gameserver/types.h | 9 +++++++++ server/tools/protobuild/cs_proto.proto | 9 ++++++++- 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 86960f9..efd3073 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -13,6 +13,7 @@ namespace MetaData struct Skill; struct Tank; struct SkillPhase; + struct Driver; } enum HumanStatus @@ -43,6 +44,7 @@ class Human : public Entity MetaData::Tank* skin_meta = nullptr; MetaData::Skill* skill_meta = nullptr; MetaData::Tank* skin_jlf_meta = nullptr; + MetaData::Driver* driver_meta = nullptr; HumanAbility ability; int born_point = 0; int last_attacker_id = 0; @@ -65,6 +67,7 @@ class Human : public Entity int action_item_id = 0; int action_target_id = 0; Skin skin_jlf; + Driver driver; int backpack = 0; int helmet = 0; int chest = 0; diff --git a/server/gameserver/playermgr.cc b/server/gameserver/playermgr.cc index 684e667..98c7b8b 100644 --- a/server/gameserver/playermgr.cc +++ b/server/gameserver/playermgr.cc @@ -80,6 +80,7 @@ Player* PlayerMgr::CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJ } } hum->SetSkinInfo(msg.baseskin()); + hum->driver.FromPB(&msg.driver()); socket_hash_[socket] = hum; return hum; } diff --git a/server/gameserver/types.cc b/server/gameserver/types.cc index 95f1004..6ac8af5 100644 --- a/server/gameserver/types.cc +++ b/server/gameserver/types.cc @@ -25,3 +25,9 @@ void Skin::ToPB(cs::MFSkin* pb_obj) pb_obj->set_skin_id(skin_id); pb_obj->set_skin_lv(skin_lv); } + +void Driver::FromPB(const cs::MFDriver* pb_obj) +{ + driver_id = pb_obj->driver_id(); + driver_lv = pb_obj->driver_lv(); +} diff --git a/server/gameserver/types.h b/server/gameserver/types.h index 4548dd7..a1d838f 100755 --- a/server/gameserver/types.h +++ b/server/gameserver/types.h @@ -24,6 +24,7 @@ namespace cs { class MFWeapon; class MFSkin; + class MFDriver; } struct GasData @@ -63,6 +64,14 @@ struct Skin void ToPB(cs::MFSkin* pb_obj); }; +struct Driver +{ + int driver_id = 0; + int driver_lv = 0; + + void FromPB(const cs::MFDriver* pb_obj); +}; + struct PlayerStats { int kills = 0; diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 60a96a4..b0de4c2 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -563,6 +563,13 @@ message MFBuffChg optional MFBuff buff = 3; //buff } +//驾驶员 +message MFDriver +{ + optional int32 driver_id = 1; //驾驶员id + optional int32 driver_lv = 2; //驾驶员等级 +} + //end mfmsg //加入 @@ -587,8 +594,8 @@ message CMJoin repeated MFWeapon weapons = 17; //武器列表 repeated MFSkin skins = 18; //皮肤列表 key: 皮肤id value:皮肤等级 repeated int32 prepare_items = 19; //战斗前准备道具 战前准备护盾存到energy_shield - optional string from_appid = 21; //from_appid + optional MFDriver driver = 22; //驾驶员 } //移动