From cdbd277987a2acc0f686b75c3ddc0c007ca2cd82 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 5 Mar 2021 17:46:05 +0800 Subject: [PATCH] add hero --- server/gameserver/constant.h | 2 +- server/gameserver/hero.cc | 42 ++++++++++++++++++++++++++++++++++++ server/gameserver/hero.h | 26 ++++++++++++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 server/gameserver/hero.cc create mode 100644 server/gameserver/hero.h diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index ef1b4fc..7d1841d 100755 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -252,7 +252,7 @@ enum EntityType_e //ET_Decal = 7, //ET_Projectile = 8, //ET_Smoke = 9, - //ET_Hero = 10, + ET_Hero = 10, ET_Car = 11, ET_Bullet = 20, diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc new file mode 100644 index 0000000..96c6d15 --- /dev/null +++ b/server/gameserver/hero.cc @@ -0,0 +1,42 @@ +#include "precompile.h" + +#include "hero.h" +#include "human.h" +#include "room.h" +#include "metamgr.h" +#include "loot.h" +#include "perfmonitor.h" +#include "typeconvert.h" + +Hero::Hero():MoveableEntity() +{ + ++PerfMonitor::Instance()->entity_num[ET_Hero]; +} + +Hero::~Hero() +{ + --PerfMonitor::Instance()->entity_num[ET_Hero]; +} + +void Hero::Initialize() +{ + MoveableEntity::Initialize(); +} + +void Hero::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) +{ + part_data->set_object_type(ET_Hero); + 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()); +} + +void Hero::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) +{ + full_data->set_object_type(ET_Hero); + 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()); +} diff --git a/server/gameserver/hero.h b/server/gameserver/hero.h new file mode 100644 index 0000000..515e46f --- /dev/null +++ b/server/gameserver/hero.h @@ -0,0 +1,26 @@ +#pragma once + +#include "moveableentity.h" + +#include "cs_proto.pb.h" + +namespace MetaData +{ + struct Equip; +} + +class Human; +class Room; +class Hero : public MoveableEntity +{ + public: + Hero(); + virtual ~Hero() override; + virtual void Initialize() override; + virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override; + virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override; + + private: + bool later_removed_ = false; + +};