添加block优化
This commit is contained in:
parent
6d3a3923b4
commit
ee0d56cf03
@ -9,6 +9,11 @@ void FrameData::ClearFrameData(Human* hum)
|
|||||||
if (!new_objects.empty()) {
|
if (!new_objects.empty()) {
|
||||||
new_objects.clear();
|
new_objects.clear();
|
||||||
}
|
}
|
||||||
|
if (!block_objects.empty()) {
|
||||||
|
if (hum->IsAndroid() && !hum->HasObserver()) {
|
||||||
|
block_objects.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!del_objects.empty()) {
|
if (!del_objects.empty()) {
|
||||||
if (!a8::HasBitFlag(hum->status, CS_Disable)) {
|
if (!a8::HasBitFlag(hum->status, CS_Disable)) {
|
||||||
for (auto& itr : del_objects) {
|
for (auto& itr : del_objects) {
|
||||||
|
@ -174,6 +174,13 @@ void FrameMaker::SerializeLootObjects(cs::SMUpdate* msg, Room* room, Human* hum,
|
|||||||
void FrameMaker::SerializeMapBlockObjects(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
void FrameMaker::SerializeMapBlockObjects(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
for (auto itr = framedata->block_objects.begin(); itr != framedata->block_objects.end(); ) {
|
||||||
|
if (framedata->new_objects.size() >= 200) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
framedata->new_objects[itr->first] = itr->second;
|
||||||
|
itr = framedata->block_objects.erase(itr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameMaker::SerializeNewObjects(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
void FrameMaker::SerializeNewObjects(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
||||||
|
@ -817,7 +817,11 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string& killer_name, i
|
|||||||
|
|
||||||
void Human::AddToNewObjects(Entity* entity)
|
void Human::AddToNewObjects(Entity* entity)
|
||||||
{
|
{
|
||||||
framedata_.new_objects[entity->GetUniId()] = entity->GetEntityWeakPtrRef();
|
if (entity->IsEntityType(ET_MapBlock) && MetaMgr::Instance()->async_send_mapblock) {
|
||||||
|
framedata_.block_objects[entity->GetUniId()] = entity->GetEntityWeakPtrRef();
|
||||||
|
} else {
|
||||||
|
framedata_.new_objects[entity->GetUniId()] = entity->GetEntityWeakPtrRef();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Human::AddToPartObjects(Entity* entity)
|
void Human::AddToPartObjects(Entity* entity)
|
||||||
@ -899,7 +903,11 @@ void Human::RemoveObjects(Entity* entity)
|
|||||||
|
|
||||||
void Human::AddOutObjects(Entity* entity)
|
void Human::AddOutObjects(Entity* entity)
|
||||||
{
|
{
|
||||||
framedata_.out_objects.insert(entity->GetUniId());
|
if (entity->IsEntityType(ET_MapBlock) && MetaMgr::Instance()->async_send_mapblock) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
framedata_.out_objects.insert(entity->GetUniId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Human::RemoveOutObjects(Entity* entity)
|
void Human::RemoveOutObjects(Entity* entity)
|
||||||
@ -1300,7 +1308,7 @@ void Human::RemoveObserver(Human* observer)
|
|||||||
|
|
||||||
bool Human::HasObserver()
|
bool Human::HasObserver()
|
||||||
{
|
{
|
||||||
return !observers_.empty();
|
return observers_.size() > 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Human::SendUpdateMsg()
|
void Human::SendUpdateMsg()
|
||||||
|
@ -329,7 +329,14 @@ public:
|
|||||||
MetaMgr::Instance()->newbie_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("newbie_fill_interval", 5000);
|
MetaMgr::Instance()->newbie_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("newbie_fill_interval", 5000);
|
||||||
MetaMgr::Instance()->other_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("other_fill_interval", 2000);
|
MetaMgr::Instance()->other_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("other_fill_interval", 2000);
|
||||||
MetaMgr::Instance()->map_cell_width = MetaMgr::Instance()->GetSysParamAsInt("map_cell_width", 64 * 8);
|
MetaMgr::Instance()->map_cell_width = MetaMgr::Instance()->GetSysParamAsInt("map_cell_width", 64 * 8);
|
||||||
|
#ifdef DEBUG
|
||||||
|
MetaMgr::Instance()->map_cell_width = 512;
|
||||||
|
#endif
|
||||||
MetaMgr::Instance()->bullet_planck_step_length = std::max(15, MetaMgr::Instance()->GetSysParamAsInt("bullet_planck_step_length", 15));
|
MetaMgr::Instance()->bullet_planck_step_length = std::max(15, MetaMgr::Instance()->GetSysParamAsInt("bullet_planck_step_length", 15));
|
||||||
|
MetaMgr::Instance()->async_send_mapblock = MetaMgr::Instance()->GetSysParamAsInt("async_send_mapblock", 0);
|
||||||
|
#ifdef DEBUG
|
||||||
|
MetaMgr::Instance()->async_send_mapblock = 1;
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
METAMGR_READ(prebattle_box_id_chiji, 0);
|
METAMGR_READ(prebattle_box_id_chiji, 0);
|
||||||
}
|
}
|
||||||
|
@ -174,6 +174,8 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
|||||||
int watchable = 0;
|
int watchable = 0;
|
||||||
int prebattle_combine_team = 1;
|
int prebattle_combine_team = 1;
|
||||||
|
|
||||||
|
int async_send_mapblock = 1;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MetaDataLoader* loader_ = nullptr;
|
MetaDataLoader* loader_ = nullptr;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user