package transact import ( "mongo.games.com/game/common" "mongo.games.com/game/gamesrv/base" "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/transact" "mongo.games.com/goserver/srvlib" "time" ) func init() { transact.RegisteHandler(common.TransTypeStopServer, &transact.TransHanderWrapper{ OnExecuteWrapper: transact.OnExecuteWrapper(func(tNode *transact.TransNode, ud interface{}) transact.TransExeResult { logger.Logger.Infof("StopApi start TransTypeStopServer OnExecuteWrapper %x", tNode.MyTnp.TId) base.SceneMgrSington.DestoryAllScene() //通知机器人关闭 npcSess := srvlib.ServerSessionMgrSington.GetSession(common.GetSelfAreaId(), common.RobotServerType, common.RobotServerId) if npcSess != nil { tnp := &transact.TransNodeParam{ Tt: common.TransTypeStopServer, Ot: transact.TransOwnerType(common.RobotServerType), Oid: common.RobotServerId, AreaID: common.GetSelfAreaId(), Tct: transact.TransactCommitPolicy_TwoPhase, } tNode.StartChildTrans(tnp, nil, time.Second*5) logger.Logger.Infof("StopApi start TransTypeStopServer StartChildTrans srvid:%v srvtype:%v", common.RobotServerId, common.RobotServerType) } return transact.TransExeResult_Success }), OnCommitWrapper: transact.OnCommitWrapper(func(tNode *transact.TransNode) transact.TransExeResult { logger.Logger.Info("StopApi start TransTypeStopServer OnCommitWrapper") return transact.TransExeResult_Success }), OnRollBackWrapper: transact.OnRollBackWrapper(func(tNode *transact.TransNode) transact.TransExeResult { logger.Logger.Info("StopApi start TransTypeStopServer OnRollBackWrapper") return transact.TransExeResult_Success }), OnChildRespWrapper: transact.OnChildRespWrapper(func(tNode *transact.TransNode, hChild transact.TransNodeID, retCode int, ud interface{}) transact.TransExeResult { logger.Logger.Infof("StopApi start TransTypeStopServer OnChildRespWrapper ret:%v childid:%x", retCode, hChild) return transact.TransExeResult(retCode) }), }) }