diff --git a/server/gameserver/handlermgr.cc b/server/gameserver/handlermgr.cc index be39efe6..abac0e8d 100644 --- a/server/gameserver/handlermgr.cc +++ b/server/gameserver/handlermgr.cc @@ -60,6 +60,13 @@ static void _GMOpsServerInfo(std::shared_ptr request) request->resp_xobj->SetVal("instance_id", App::Instance()->GetInstanceId()); } +static void _GMOpsTerminate(std::shared_ptr request) +{ + request->resp_xobj->SetVal("errcode", 0); + request->resp_xobj->SetVal("errmsg", ""); + App::Instance()->Terminate(); +} + static void _GMStatGetRealTimeOnline(std::shared_ptr request) { request->resp_xobj->SetVal("errcode", 0); @@ -76,6 +83,7 @@ void HandlerMgr::Init() RegisterGMMsgHandler("Ops@stopService", _GMOpsStopService); RegisterGMMsgHandler("Ops@startService", _GMOpsStartService); RegisterGMMsgHandler("Ops@serverInfo", _GMOpsServerInfo); + RegisterGMMsgHandler("Ops@terminate", _GMOpsTerminate); RegisterGMMsgHandler("Stat@getRealTimeOnline", _GMStatGetRealTimeOnline); f8::MsgQueue::Instance()->RegisterCallBack (