1
This commit is contained in:
parent
aa54d22ca9
commit
b149874f65
@ -46,7 +46,7 @@ void Building::RecalcSelfCollider()
|
|||||||
AutoAdjust(collider_list);
|
AutoAdjust(collider_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Building::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
void Building::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data)
|
||||||
{
|
{
|
||||||
part_data->set_object_type(ET_Building);
|
part_data->set_object_type(ET_Building);
|
||||||
cs::MFBuildingPart* p = part_data->mutable_union_obj_3();
|
cs::MFBuildingPart* p = part_data->mutable_union_obj_3();
|
||||||
@ -54,7 +54,7 @@ void Building::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
|||||||
TypeConvert::ToPb(GetPos(), p->mutable_pos());
|
TypeConvert::ToPb(GetPos(), p->mutable_pos());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Building::FillMFObjectFull(Room* room, cs::MFObjectFull* full_data)
|
void Building::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data)
|
||||||
{
|
{
|
||||||
full_data->set_object_type(ET_Building);
|
full_data->set_object_type(ET_Building);
|
||||||
cs::MFBuildingFull* p = full_data->mutable_union_obj_3();
|
cs::MFBuildingFull* p = full_data->mutable_union_obj_3();
|
||||||
|
@ -23,8 +23,8 @@ class Building : public Entity
|
|||||||
virtual ~Building() override;
|
virtual ~Building() override;
|
||||||
virtual void Initialize() override;
|
virtual void Initialize() override;
|
||||||
void RecalcSelfCollider();
|
void RecalcSelfCollider();
|
||||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
|
||||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) override;
|
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
|
||||||
virtual void GetAabbBox(AabbCollider& aabb_box) override;
|
virtual void GetAabbBox(AabbCollider& aabb_box) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -306,7 +306,7 @@ const int DEFAULT_BORN_POINT_Y = 3000;
|
|||||||
|
|
||||||
const int ADPLAY_BUFFID = 1006;
|
const int ADPLAY_BUFFID = 1006;
|
||||||
|
|
||||||
const int FIXED_OBJECT_MAXID = 2018;
|
const int FIXED_OBJECT_MAXID = 1024;
|
||||||
|
|
||||||
const int MAX_ROOM_IDX = 2018;
|
const int MAX_ROOM_IDX = 2018;
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ class Room;
|
|||||||
class ColliderComponent;
|
class ColliderComponent;
|
||||||
class AabbCollider;
|
class AabbCollider;
|
||||||
class CircleCollider;
|
class CircleCollider;
|
||||||
|
class Human;
|
||||||
class Entity
|
class Entity
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -17,8 +18,8 @@ class Entity
|
|||||||
Entity();
|
Entity();
|
||||||
virtual ~Entity();
|
virtual ~Entity();
|
||||||
virtual void Initialize();
|
virtual void Initialize();
|
||||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) {};
|
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) {};
|
||||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) {};
|
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) {};
|
||||||
virtual float GetSpeed() { return 1.0f;};
|
virtual float GetSpeed() { return 1.0f;};
|
||||||
virtual void GetAabbBox(AabbCollider& aabb_box);
|
virtual void GetAabbBox(AabbCollider& aabb_box);
|
||||||
virtual void GetCircleBox(CircleCollider& circle_box);
|
virtual void GetCircleBox(CircleCollider& circle_box);
|
||||||
|
@ -17,7 +17,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (hum->IsPlayer()) {
|
if (hum->IsPlayer()) {
|
||||||
itr->FillMFObjectFull(room, msg->add_full_objects());
|
itr->FillMFObjectFull(room, (Human*)hum, msg->add_full_objects());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (auto& itr : hum->part_objects) {
|
for (auto& itr : hum->part_objects) {
|
||||||
@ -27,7 +27,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
|
|||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
entity->FillMFObjectPart(room, msg->add_part_objects());
|
entity->FillMFObjectPart(room, (Human*)hum, msg->add_part_objects());
|
||||||
}
|
}
|
||||||
for (auto& itr : hum->del_objects) {
|
for (auto& itr : hum->del_objects) {
|
||||||
msg->add_del_objids(itr);
|
msg->add_del_objids(itr);
|
||||||
|
@ -105,7 +105,7 @@ float Human::GetSpeed4()
|
|||||||
return meta->i->move_speed4();
|
return meta->i->move_speed4();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Human::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
void Human::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data)
|
||||||
{
|
{
|
||||||
part_data->set_object_type(ET_Player);
|
part_data->set_object_type(ET_Player);
|
||||||
cs::MFPlayerPart* p = part_data->mutable_union_obj_1();
|
cs::MFPlayerPart* p = part_data->mutable_union_obj_1();
|
||||||
@ -114,7 +114,7 @@ void Human::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
|||||||
TypeConvert::ToPb(attack_dir, p->mutable_dir());
|
TypeConvert::ToPb(attack_dir, p->mutable_dir());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Human::FillMFObjectFull(Room* room, cs::MFObjectFull* full_data)
|
void Human::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data)
|
||||||
{
|
{
|
||||||
full_data->set_object_type(ET_Player);
|
full_data->set_object_type(ET_Player);
|
||||||
cs::MFPlayerFull* p = full_data->mutable_union_obj_1();
|
cs::MFPlayerFull* p = full_data->mutable_union_obj_1();
|
||||||
@ -3190,7 +3190,7 @@ void Human::NotifyObservers(cs::SMUpdate* msg, cs::MFActivePlayerData* active_pl
|
|||||||
GetViewObjects(view_objects);
|
GetViewObjects(view_objects);
|
||||||
for (Entity* entity : view_objects) {
|
for (Entity* entity : view_objects) {
|
||||||
if (new_objects.find(entity) == new_objects.end()) {
|
if (new_objects.find(entity) == new_objects.end()) {
|
||||||
entity->FillMFObjectFull(room, msg->add_full_objects());
|
entity->FillMFObjectFull(room, this, msg->add_full_objects());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
refreshed_view = true;
|
refreshed_view = true;
|
||||||
|
@ -152,8 +152,8 @@ class Human : public MoveableEntity
|
|||||||
virtual void Initialize() override;
|
virtual void Initialize() override;
|
||||||
virtual float GetSpeed() override;
|
virtual float GetSpeed() override;
|
||||||
virtual float GetSpeed4();
|
virtual float GetSpeed4();
|
||||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
|
||||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) override;
|
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
|
||||||
virtual void FillMFPlayerStats(cs::MFPlayerStats* stats);
|
virtual void FillMFPlayerStats(cs::MFPlayerStats* stats);
|
||||||
virtual void GetAabbBox(AabbCollider& aabb_box);
|
virtual void GetAabbBox(AabbCollider& aabb_box);
|
||||||
virtual bool IsDead(Room* room) override;
|
virtual bool IsDead(Room* room) override;
|
||||||
@ -357,7 +357,7 @@ private:
|
|||||||
std::array<float, kHAT_End> buff_attr_abs_ = {};
|
std::array<float, kHAT_End> buff_attr_abs_ = {};
|
||||||
std::array<float, kHAT_End> buff_attr_rate_ = {};
|
std::array<float, kHAT_End> buff_attr_rate_ = {};
|
||||||
|
|
||||||
std::array<unsigned char,FIXED_OBJECT_MAXID> fixed_object_sync_flags_ = {};
|
std::array<ObjectSyncFlags, FIXED_OBJECT_MAXID> fixed_object_sync_flags_ = {};
|
||||||
|
|
||||||
bool already_report_battle_ = false;
|
bool already_report_battle_ = false;
|
||||||
bool sent_battlereport_ = false;
|
bool sent_battlereport_ = false;
|
||||||
|
@ -29,7 +29,7 @@ void Loot::RecalcSelfCollider()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void Loot::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
void Loot::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data)
|
||||||
{
|
{
|
||||||
part_data->set_object_type(ET_Loot);
|
part_data->set_object_type(ET_Loot);
|
||||||
cs::MFLootPart* p = part_data->mutable_union_obj_5();
|
cs::MFLootPart* p = part_data->mutable_union_obj_5();
|
||||||
@ -37,7 +37,7 @@ void Loot::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
|||||||
TypeConvert::ToPb(GetPos(), p->mutable_pos());
|
TypeConvert::ToPb(GetPos(), p->mutable_pos());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Loot::FillMFObjectFull(Room* room, cs::MFObjectFull* full_data)
|
void Loot::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data)
|
||||||
{
|
{
|
||||||
full_data->set_object_type(ET_Loot);
|
full_data->set_object_type(ET_Loot);
|
||||||
cs::MFLootFull* p = full_data->mutable_union_obj_5();
|
cs::MFLootFull* p = full_data->mutable_union_obj_5();
|
||||||
|
@ -25,8 +25,8 @@ class Loot : public RoomEntity
|
|||||||
virtual ~Loot() override;
|
virtual ~Loot() override;
|
||||||
virtual void Initialize() override;
|
virtual void Initialize() override;
|
||||||
void RecalcSelfCollider();
|
void RecalcSelfCollider();
|
||||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
|
||||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) override;
|
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Loot();
|
Loot();
|
||||||
|
@ -99,7 +99,7 @@ void Obstacle::RecalcSelfCollider()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Obstacle::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
void Obstacle::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data)
|
||||||
{
|
{
|
||||||
part_data->set_object_type(ET_Obstacle);
|
part_data->set_object_type(ET_Obstacle);
|
||||||
cs::MFObstaclePart* p = part_data->mutable_union_obj_2();
|
cs::MFObstaclePart* p = part_data->mutable_union_obj_2();
|
||||||
@ -108,9 +108,10 @@ void Obstacle::FillMFObjectPart(Room* room, cs::MFObjectPart* part_data)
|
|||||||
p->set_scale(1.0f);
|
p->set_scale(1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Obstacle::FillMFObjectFull(Room* room, cs::MFObjectFull* full_data)
|
void Obstacle::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data)
|
||||||
{
|
{
|
||||||
full_data->set_object_type(ET_Obstacle);
|
full_data->set_object_type(ET_Obstacle);
|
||||||
|
|
||||||
cs::MFObstacleFull* p = full_data->mutable_union_obj_2();
|
cs::MFObstacleFull* p = full_data->mutable_union_obj_2();
|
||||||
p->set_obj_uniid(GetEntityUniId());
|
p->set_obj_uniid(GetEntityUniId());
|
||||||
TypeConvert::ToPb(GetPos(), p->mutable_pos());
|
TypeConvert::ToPb(GetPos(), p->mutable_pos());
|
||||||
|
@ -29,8 +29,8 @@ class Obstacle : public Entity
|
|||||||
virtual ~Obstacle() override;
|
virtual ~Obstacle() override;
|
||||||
virtual void Initialize() override;
|
virtual void Initialize() override;
|
||||||
virtual void RecalcSelfCollider();
|
virtual void RecalcSelfCollider();
|
||||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
|
||||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) override;
|
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
|
||||||
virtual void GetAabbBox(AabbCollider& aabb_box) override;
|
virtual void GetAabbBox(AabbCollider& aabb_box) override;
|
||||||
virtual void GetCircleBox(CircleCollider& circle_box) override;
|
virtual void GetCircleBox(CircleCollider& circle_box) override;
|
||||||
virtual bool IsDead(Room* room) override;
|
virtual bool IsDead(Room* room) override;
|
||||||
|
@ -137,6 +137,14 @@ struct ObstacleData
|
|||||||
DoorState_e door_state = DoorStateClose;
|
DoorState_e door_state = DoorStateClose;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
struct ObjectSyncFlags
|
||||||
|
{
|
||||||
|
unsigned char flags = 0;
|
||||||
|
unsigned char last_sync_frameno = 0;
|
||||||
|
};
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
class GridService;
|
class GridService;
|
||||||
class MapService;
|
class MapService;
|
||||||
class Building;
|
class Building;
|
||||||
|
@ -418,8 +418,8 @@ message MFObjectFull
|
|||||||
optional MFSmokeFull union_obj_9 = 10;
|
optional MFSmokeFull union_obj_9 = 10;
|
||||||
optional MFHeroFull union_obj_10 = 11;
|
optional MFHeroFull union_obj_10 = 11;
|
||||||
|
|
||||||
optional int32 obj_uniid = 100; //唯一id
|
optional int32 obj_uniid = 14; //唯一id
|
||||||
optional int32 object_flags = 101; //对象标志位 1<<0: 存缓存 1<<1:读缓存
|
optional int32 object_flags = 15; //对象标志位 1<<0: 存缓存 1<<1:读缓存
|
||||||
}
|
}
|
||||||
|
|
||||||
//活跃玩家数据(当前)
|
//活跃玩家数据(当前)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user