67 lines
2.6 KiB
Go
67 lines
2.6 KiB
Go
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/netlib"
|
|
"mongo.games.com/goserver/core/transact"
|
|
)
|
|
|
|
var CoinSceneChangePacket = &common.WGCoinSceneChange{}
|
|
|
|
type CoinSceneChangeTransactHandler struct {
|
|
}
|
|
|
|
func (this *CoinSceneChangeTransactHandler) OnExcute(tNode *transact.TransNode, ud interface{}) transact.TransExeResult {
|
|
logger.Logger.Trace("CoinSceneChangeTransactHandler.OnExcute ")
|
|
err := netlib.UnmarshalPacketNoPackId(ud.([]byte), CoinSceneChangePacket)
|
|
if err == nil {
|
|
player := base.PlayerMgrSington.GetPlayerBySnId(CoinSceneChangePacket.SnId)
|
|
if player == nil {
|
|
logger.Logger.Tracef("CoinSceneChangeTransactHandler.OnExcute player == nil snid=%v", CoinSceneChangePacket.SnId)
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
if player.GetScene() == nil {
|
|
logger.Logger.Tracef("CoinSceneChangeTransactHandler.OnExcute player.GetScene() == nil snid=%v expect=%v", CoinSceneChangePacket.SnId, CoinSceneChangePacket.SceneId)
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
if !player.GetScene().CanChangeCoinScene(player) {
|
|
logger.Logger.Tracef("CoinSceneChangeTransactHandler.OnExcute !GetScene().CanChangeCoinScene snid=%v sceneid=%v state=%v", CoinSceneChangePacket.SnId, player.GetScene().SceneId, player.GetScene().SceneState.GetState())
|
|
return transact.TransExeResult_Failed
|
|
}
|
|
|
|
if player.GetScene().HasPlayer(player) {
|
|
player.GetScene().PlayerLeave(player, common.PlayerLeaveReason_ChangeCoinScene, true)
|
|
} else {
|
|
player.GetScene().AudienceLeave(player, common.PlayerLeaveReason_ChangeCoinScene)
|
|
}
|
|
|
|
return transact.TransExeResult_Success
|
|
}
|
|
logger.Logger.Trace("CoinSceneChangeTransactHandler.OnExcute failed")
|
|
return transact.TransExeResult_Failed
|
|
}
|
|
|
|
func (this *CoinSceneChangeTransactHandler) OnCommit(tNode *transact.TransNode) transact.TransExeResult {
|
|
logger.Logger.Trace("CoinSceneChangeTransactHandler.OnCommit ")
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
func (this *CoinSceneChangeTransactHandler) OnRollBack(tNode *transact.TransNode) transact.TransExeResult {
|
|
logger.Logger.Trace("CoinSceneChangeTransactHandler.OnRollBack ")
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
func (this *CoinSceneChangeTransactHandler) OnChildTransRep(tNode *transact.TransNode, hChild transact.TransNodeID,
|
|
retCode int, ud interface{}) transact.TransExeResult {
|
|
logger.Logger.Trace("CoinSceneChangeTransactHandler.OnChildTransRep ")
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
func init() {
|
|
transact.RegisteHandler(common.TransTypeCoinSceneChange, &CoinSceneChangeTransactHandler{})
|
|
}
|