go_dreamfactory/modules/realarena/api_battleexit.go
2024-03-08 17:48:22 +08:00

46 lines
1004 B
Go

package realarena
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) BattleExitCheck(session comm.IUserSession, req *pb.RealArenaBattleExitReq) (errdata *pb.ErrorData) {
return
}
///取消匹配
func (this *apiComp) BattleExit(session comm.IUserSession, req *pb.RealArenaBattleExitReq) (errdata *pb.ErrorData) {
var (
room *Room
ok bool
err error
)
if errdata = this.BattleExitCheck(session, req); errdata != nil {
return
}
this.module.lock.RLock()
room, ok = this.module.rooms[req.Roomid]
this.module.lock.RUnlock()
if ok {
if err = room.UserOffline(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Message: err.Error(),
}
return
}
} else {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Message: "no found room",
}
return
}
session.SendMsg(string(this.module.GetType()), "matchcancel", &pb.RealArenaMatchCancelResp{})
return
}