package passon import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" ) // 参数校验 func (this *apiComp) InRoomCheck(session comm.IUserSession, req *pb.PassonInRoomReq) (errdata *pb.ErrorData) { if req.Heroid == "" { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: "Heroid is 0", } } return } // /获取系统公告 func (this *apiComp) InRoom(session comm.IUserSession, req *pb.PassonInRoomReq) (errdata *pb.ErrorData) { var ( heros []*pb.DBHero hero *pb.DBHero passon *pb.DBPasson err error ) if errdata = this.InRoomCheck(session, req); errdata != nil { return } heros = this.module.ModuleHero.GetHeroList(session.GetUserId()) if len(heros) <= 5 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_PassonHeroNumNotEnough, Title: pb.ErrorCode_PassonHeroNumNotEnough.ToString(), Message: fmt.Sprintf("heros num is %d", len(heros)), } } for _, v := range heros { if v.Id == req.Heroid { hero = v } } if hero == nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("no found hero:%d", req.Heroid), } return } if hero.Ispasson { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: "already Ispasson", } return } if passon, err = this.module.modelPasson.getUserPasson(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } if hero.Lv >= passon.Passonlv { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("hero lv greater or equal to Passonlv:%d", passon.Passonlv), } return } hero.Ispasson = true session.SendMsg(string(this.module.GetType()), "getlist", &pb.PassonInRoomResp{Heroid: req.Heroid}) return }