package mainline import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "google.golang.org/protobuf/proto" ) //参数校验 func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode) { if req.MainlineId == 0 { code = pb.ErrorCode_ReqParameterError return } return } ///挑战主线关卡 func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode, data proto.Message) { var ( curChapter *pb.DBMainline // 当前章节信息 ) code = this.ChallengeCheck(session, req) if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } // 校验关卡存不存在 curChapter = this.module.modelMainline.getOneChapterInfo(session.GetUserId(), req.ChapterObj) if curChapter == nil { code = pb.ErrorCode_MainlineNotFound return } node := this.module.configure.GetMainlineConfigData(int32(req.MainlineId), curChapter.Intensity) if node == nil { // 配置文件校验 code = pb.ErrorCode_MainlineNotFindChapter return } if node.Route == 1 { if node.Previoustage != curChapter.MainlineId { code = pb.ErrorCode_MainlineNotFindChapter return } } else { for _, v := range curChapter.BranchID { if v == int32(req.MainlineId) { // 重复挑战 code = pb.ErrorCode_MainlineNotFindChapter return } } } code, record := this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ Ptype: pb.PlayType_moonfantasy, Leadpos: req.Leadpos, Teamids: req.Teamids, Mformat: node.FormatList, }) session.SendMsg(string(this.module.GetType()), MainlineChallengeResp, &pb.MainlineChallengeResp{Info: &pb.BattleInfo{ Id: record.Id, Btype: record.Btype, Ptype: record.Ptype, RedCompId: record.RedCompId, Redflist: record.Redflist, BlueCompId: record.BlueCompId, Buleflist: record.Buleflist, }}) return }