1
This commit is contained in:
parent
aa54d22ca9
commit
b149874f65
@ -46,7 +46,7 @@ void Building::RecalcSelfCollider()
|
||||
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);
|
||||
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());
|
||||
}
|
||||
|
||||
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);
|
||||
cs::MFBuildingFull* p = full_data->mutable_union_obj_3();
|
||||
|
@ -23,8 +23,8 @@ class Building : public Entity
|
||||
virtual ~Building() override;
|
||||
virtual void Initialize() override;
|
||||
void RecalcSelfCollider();
|
||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) 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;
|
||||
virtual void GetAabbBox(AabbCollider& aabb_box) override;
|
||||
|
||||
protected:
|
||||
|
@ -306,7 +306,7 @@ const int DEFAULT_BORN_POINT_Y = 3000;
|
||||
|
||||
const int ADPLAY_BUFFID = 1006;
|
||||
|
||||
const int FIXED_OBJECT_MAXID = 2018;
|
||||
const int FIXED_OBJECT_MAXID = 1024;
|
||||
|
||||
const int MAX_ROOM_IDX = 2018;
|
||||
|
||||
|
@ -10,6 +10,7 @@ class Room;
|
||||
class ColliderComponent;
|
||||
class AabbCollider;
|
||||
class CircleCollider;
|
||||
class Human;
|
||||
class Entity
|
||||
{
|
||||
public:
|
||||
@ -17,8 +18,8 @@ class Entity
|
||||
Entity();
|
||||
virtual ~Entity();
|
||||
virtual void Initialize();
|
||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) {};
|
||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) {};
|
||||
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) {};
|
||||
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) {};
|
||||
virtual float GetSpeed() { return 1.0f;};
|
||||
virtual void GetAabbBox(AabbCollider& aabb_box);
|
||||
virtual void GetCircleBox(CircleCollider& circle_box);
|
||||
|
@ -17,7 +17,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
|
||||
}
|
||||
#endif
|
||||
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) {
|
||||
@ -27,7 +27,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
entity->FillMFObjectPart(room, msg->add_part_objects());
|
||||
entity->FillMFObjectPart(room, (Human*)hum, msg->add_part_objects());
|
||||
}
|
||||
for (auto& itr : hum->del_objects) {
|
||||
msg->add_del_objids(itr);
|
||||
|
@ -105,7 +105,7 @@ float Human::GetSpeed4()
|
||||
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);
|
||||
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());
|
||||
}
|
||||
|
||||
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);
|
||||
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);
|
||||
for (Entity* entity : view_objects) {
|
||||
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;
|
||||
|
@ -152,8 +152,8 @@ class Human : public MoveableEntity
|
||||
virtual void Initialize() override;
|
||||
virtual float GetSpeed() override;
|
||||
virtual float GetSpeed4();
|
||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) 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;
|
||||
virtual void FillMFPlayerStats(cs::MFPlayerStats* stats);
|
||||
virtual void GetAabbBox(AabbCollider& aabb_box);
|
||||
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_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 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);
|
||||
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());
|
||||
}
|
||||
|
||||
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);
|
||||
cs::MFLootFull* p = full_data->mutable_union_obj_5();
|
||||
|
@ -25,8 +25,8 @@ class Loot : public RoomEntity
|
||||
virtual ~Loot() override;
|
||||
virtual void Initialize() override;
|
||||
void RecalcSelfCollider();
|
||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) 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;
|
||||
|
||||
protected:
|
||||
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);
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
cs::MFObstacleFull* p = full_data->mutable_union_obj_2();
|
||||
p->set_obj_uniid(GetEntityUniId());
|
||||
TypeConvert::ToPb(GetPos(), p->mutable_pos());
|
||||
|
@ -29,8 +29,8 @@ class Obstacle : public Entity
|
||||
virtual ~Obstacle() override;
|
||||
virtual void Initialize() override;
|
||||
virtual void RecalcSelfCollider();
|
||||
virtual void FillMFObjectPart(Room* room, cs::MFObjectPart* part_data) override;
|
||||
virtual void FillMFObjectFull(Room* room, cs::MFObjectFull* full_data) 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;
|
||||
virtual void GetAabbBox(AabbCollider& aabb_box) override;
|
||||
virtual void GetCircleBox(CircleCollider& circle_box) override;
|
||||
virtual bool IsDead(Room* room) override;
|
||||
|
@ -137,6 +137,14 @@ struct ObstacleData
|
||||
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 MapService;
|
||||
class Building;
|
||||
|
@ -418,8 +418,8 @@ message MFObjectFull
|
||||
optional MFSmokeFull union_obj_9 = 10;
|
||||
optional MFHeroFull union_obj_10 = 11;
|
||||
|
||||
optional int32 obj_uniid = 100; //唯一id
|
||||
optional int32 object_flags = 101; //对象标志位 1<<0: 存缓存 1<<1:读缓存
|
||||
optional int32 obj_uniid = 14; //唯一id
|
||||
optional int32 object_flags = 15; //对象标志位 1<<0: 存缓存 1<<1:读缓存
|
||||
}
|
||||
|
||||
//活跃玩家数据(当前)
|
||||
|
Loading…
x
Reference in New Issue
Block a user