From ea40d7cc837e707538b6537eecccee4ad00effd8 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 17 Mar 2021 11:03:44 +0800 Subject: [PATCH] 1 --- server/gameserver/car.h | 1 - server/gameserver/hero.cc | 11 +++++++++-- server/gameserver/hero.h | 1 + server/gameserver/human.h | 1 - server/gameserver/moveableentity.h | 2 ++ server/gameserver/room.cc | 5 ++++- server/gameserver/room.h | 3 ++- server/tools/protobuild/cs_proto.proto | 2 +- 8 files changed, 19 insertions(+), 7 deletions(-) diff --git a/server/gameserver/car.h b/server/gameserver/car.h index ad3e0005..fab9ff26 100644 --- a/server/gameserver/car.h +++ b/server/gameserver/car.h @@ -16,7 +16,6 @@ class Car : public MoveableEntity { public: int car_uniid = 0; - a8::Vec2 move_dir; MetaData::Equip* meta = nullptr; Car(); diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc index 96c6d15e..f32eb3f1 100644 --- a/server/gameserver/hero.cc +++ b/server/gameserver/hero.cc @@ -29,7 +29,7 @@ void Hero::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) cs::MFHeroPart* p = part_data->mutable_union_obj_10(); p->set_obj_uniid(GetEntityUniId()); TypeConvert::ToPb(GetPos(), p->mutable_pos()); - //TypeConvert::ToPb(move_dir, p->mutable_dir()); + TypeConvert::ToPb(move_dir, p->mutable_dir()); } void Hero::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) @@ -38,5 +38,12 @@ void Hero::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) cs::MFHeroFull* p = full_data->mutable_union_obj_10(); p->set_obj_uniid(GetEntityUniId()); TypeConvert::ToPb(GetPos(), p->mutable_pos()); - //TypeConvert::ToPb(move_dir, p->mutable_dir()); + TypeConvert::ToPb(move_dir, p->mutable_dir()); + p->set_heroid(meta->i->id()); + p->set_master_uniid(master ? master->GetEntityUniId() : 0); +} + +void Hero::Update(int delta_time) +{ + ++updated_times_; } diff --git a/server/gameserver/hero.h b/server/gameserver/hero.h index 0f362f56..3bef213a 100644 --- a/server/gameserver/hero.h +++ b/server/gameserver/hero.h @@ -23,6 +23,7 @@ class Hero : public MoveableEntity virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override; virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override; + virtual void Update(int delta_time) override; private: bool later_removed_ = false; diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 04918868..2cdfcac1 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -54,7 +54,6 @@ class Human : public MoveableEntity HumanAbility ability; long long last_shot_frameno_ = 0; - a8::Vec2 move_dir; a8::Vec2 attack_dir; std::function on_loading_bullet; std::function on_move_collision; diff --git a/server/gameserver/moveableentity.h b/server/gameserver/moveableentity.h index fa21ae70..3377365a 100644 --- a/server/gameserver/moveableentity.h +++ b/server/gameserver/moveableentity.h @@ -6,6 +6,8 @@ class MoveableEntity : public RoomEntity { public: + a8::Vec2 move_dir; + virtual void Update(int delta_time) {}; int UpdatedTimes() { return updated_times_;} std::set& GetGridList() { return grid_list_; } diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 77380864..4bb8a28c 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -572,12 +572,15 @@ Car* Room::CreateCar(Human* driver, Hero* Room::CreateHero(Entity* master, MetaData::Player* meta, - const a8::Vec2& pos) + const a8::Vec2& pos, + const a8::Vec2& dir) { Hero* hero = EntityFactory::Instance()->MakeHero(AllocUniid()); hero->meta = meta; + hero->master = master; hero->room = this; hero->SetPos(pos); + hero->move_dir = dir; hero->Initialize(); AddToEntityHash(hero); grid_service->AddHero(hero); diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 7c2d572f..ad6985f2 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -116,7 +116,8 @@ public: const a8::Vec2& pos); Hero* CreateHero(Entity* master, MetaData::Player* meta, - const a8::Vec2& pos); + const a8::Vec2& pos, + const a8::Vec2& dir); void OnHumanDie(Human* hum); void OnHumanRevive(Human* hum); diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 3a216cd4..a006494b 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -385,7 +385,7 @@ message MFHeroFull optional MFVec2 pos = 2; //位置 optional MFVec2 dir = 3; //朝向 optional int32 heroid = 4; //配置表id - optional int32 masert_uniid = 5; //主人id + optional int32 master_uniid = 5; //主人id } //烟雾-部分