diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 52a5d38b..1c4fa2c7 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -154,6 +154,11 @@ int Creature::AddBuff(Creature* caster, std::shared_ptr init_args, std::shared_ptr> buff_vars) { +#ifdef MYDEBUG + if (room->IsDestorying()) { + A8_ABORT(); + } +#endif #ifdef MYDEBUG if (GetHeroMeta()->id() == 60100) { room->BroadcastDebugMsg(a8::Format("add boss buff %d %d", diff --git a/server/gameserver/perf.cc b/server/gameserver/perf.cc index 2c671441..1dfe89ff 100644 --- a/server/gameserver/perf.cc +++ b/server/gameserver/perf.cc @@ -25,7 +25,7 @@ void Perf::UnInit() void Perf::Output() { f8::UdpLog::Instance()->Info - ("perf entity:%d buff:%d bt_co:%d agent:%d c_w_c:%d c_w:%d o_w_c:%d o_w:%d e_w_c:%d e_c:%d", + ("perf entity:%d buff:%d bt_co:%d agent:%d c_w_c:%d c_w:%d o_w_c:%d o_w:%d e_w_c:%d e_c:%d e_h:%d", { entity_num, buff_num, @@ -36,6 +36,7 @@ void Perf::Output() o_wptr_chunk_num, o_wptr_num, e_wptr_chunk_num, - e_wptr_num + e_wptr_num, + event_handler_num }); } diff --git a/server/gameserver/perf.h b/server/gameserver/perf.h index 906c75ee..eb8e57ee 100644 --- a/server/gameserver/perf.h +++ b/server/gameserver/perf.h @@ -23,6 +23,7 @@ private: long long o_wptr_num = 0; long long e_wptr_chunk_num = 0; long long e_wptr_num = 0; + long long event_handler_num = 0; private: void Output(); diff --git a/server/gameserver/trigger.cc b/server/gameserver/trigger.cc index 0b1d87ad..dbc928a9 100644 --- a/server/gameserver/trigger.cc +++ b/server/gameserver/trigger.cc @@ -12,6 +12,7 @@ #include "buff.h" #include "stats.h" #include "team.h" +#include "perf.h" #include "mt/Buff.h" #include "mt/Skill.h" @@ -24,6 +25,17 @@ public: a8::CommonCbProc cb; list_head entry; std::shared_ptr holder; + + EventHandler() + { + ++Perf::Instance()->event_handler_num; + } + + ~EventHandler() + { + --Perf::Instance()->event_handler_num; + } + }; void Trigger::Init()