diff --git a/server/gameserver/app.cc b/server/gameserver/app.cc index 54634007..a38e7042 100644 --- a/server/gameserver/app.cc +++ b/server/gameserver/app.cc @@ -42,7 +42,7 @@ #include "skillhelper.h" #include "config.h" -#include "mt/Param.h" +#include "mt/MetaMgr.h" struct MsgNode { @@ -206,6 +206,7 @@ bool App::Init(int argc, char* argv[]) SkillHelper::Init(); JsonDataMgr::Instance()->Init(); MetaMgr::Instance()->Init(); + mt::MetaMgr::Instance()->Init(); Config::Instance()->Init(); EntityFactory::Instance()->Init(); uuid.SetMachineId((node_id - 1) * MAX_NODE_ID + instance_id); @@ -261,6 +262,7 @@ void App::UnInit() KillMgr::Instance()->UnInit(); EntityFactory::Instance()->UnInit(); Config::Instance()->UnInit(); + mt::MetaMgr::Instance()->UnInit(); MetaMgr::Instance()->UnInit(); JsonDataMgr::Instance()->UnInit(); f8::BtMgr::Instance()->UnInit(); diff --git a/server/gameserver/mt/MetaMgr.cc b/server/gameserver/mt/MetaMgr.cc index 7a1c26e7..af6ddae8 100644 --- a/server/gameserver/mt/MetaMgr.cc +++ b/server/gameserver/mt/MetaMgr.cc @@ -28,6 +28,22 @@ namespace mt } RegMetaTable(res_path_); + { + for (auto& itr : meta_tables) { + itr->static_pre_init_cb(); + itr->load_cb(); + } + for (int i = 0; i < 3; ++i) { + for (auto& itr : meta_tables) { + if (i < itr->init_cbs.size()) { + itr->init_cbs.at(i)(); + } + } + } + for (auto& itr : meta_tables) { + itr->static_post_init_cb(); + } + } } void MetaMgr::UnInit()