From b573c649bfe334fa39cd26f04a8d4a1f07b0ba4c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 13 Jul 2019 15:35:24 +0800 Subject: [PATCH] 1 --- server/gameserver/frameevent.cc | 9 +++++++++ server/gameserver/frameevent.h | 1 + server/gameserver/human.cc | 3 +++ server/gameserver/human.h | 1 + 4 files changed, 14 insertions(+) diff --git a/server/gameserver/frameevent.cc b/server/gameserver/frameevent.cc index 1c19e4e..39cb8d4 100644 --- a/server/gameserver/frameevent.cc +++ b/server/gameserver/frameevent.cc @@ -205,6 +205,15 @@ void FrameEvent::RemoveBuff(Human* hum, int buff_id) } } +void FrameEvent::AddPropertyChg(Human* hum) +{ + for (auto& cell : hum->grid_list) { + for (auto& hum : cell->human_list) { + hum->property_chged_humans_.insert(hum); + } + } +} + void FrameEvent::Clear() { if (!explosions_.empty()) { diff --git a/server/gameserver/frameevent.h b/server/gameserver/frameevent.h index 8ac19d4..93a803a 100644 --- a/server/gameserver/frameevent.h +++ b/server/gameserver/frameevent.h @@ -22,6 +22,7 @@ public: void AddRevive(Human* hum); void AddBuff(Human* hum, Buff* buff); void RemoveBuff(Human* hum, int buff_id); + void AddPropertyChg(Human* hum); void Clear(); private: diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 208cf57..880581b 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1694,6 +1694,9 @@ void Human::ClearFrameData() if (!dead_objs_.empty()) { dead_objs_.clear(); } + if (!property_chged_humans_.empty()) { + property_chged_humans_.clear(); + } } void Human::DeadDrop() diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 1371060..91fce3d 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -250,6 +250,7 @@ protected: std::vector chged_buffs_; std::vector revive_objs_; std::vector dead_objs_; + std::set property_chged_humans_; std::set observers_; Human* follow_target_ = nullptr; bool follow_synced_active_player = false;