package library /* * 单个英雄剧情id 奖励 */ import ( "go_dreamfactory/comm" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) //参数校验 func (this *apiComp) GetStoryRewardCheck(session comm.IUserSession, req *pb.LibraryGetStoryRewardReq) (code pb.ErrorCode) { if req.Oid == "" || req.History == 0 { code = pb.ErrorCode_ReqParameterError } return } func (this *apiComp) GetStoryReward(session comm.IUserSession, req *pb.LibraryGetStoryRewardReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( update map[string]interface{} ) update = make(map[string]interface{}, 0) resp := &pb.LibraryGetStoryRewardResp{} code = this.GetStoryRewardCheck(session, req) if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } _heroFetter := this.module.modelFetter.getOneHeroFetter(session.GetUserId(), req.Oid) if _heroFetter == nil { code = pb.ErrorCode_ReqParameterError return } favorConf, err := this.module.configure.GetFavorability(_heroFetter.Heroid, 1) // 取1级的就可以 if err != nil { code = pb.ErrorCode_ConfigNoFound data.Message = err.Error() return } // 领取传记往事id for _, v := range _heroFetter.History { if v == req.History { // 已经领取过奖励 code = pb.ErrorCode_LibraryReward return } } // 等级规则校验 _len := len(_heroFetter.History) if len(favorConf.Favorlv) < _len { if favorConf.Favorlv[_len] > _heroFetter.Favorlv { // 等级不够 code = pb.ErrorCode_LibraryLvReward return } } for iPos, v := range favorConf.BiographyName { var res []*cfg.Gameatn if v == req.History { if iPos == 0 { res = append(res, favorConf.BiographyReward1...) } else if iPos == 1 { res = append(res, favorConf.BiographyReward2...) } else if iPos == 2 { res = append(res, favorConf.BiographyReward3...) } if len(res) > 0 { if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success { return } } else { this.module.Errorf("领取奖励配置错误:%d", req.History) code = pb.ErrorCode_LibraryLvReward return } break } } _heroFetter.History = append(_heroFetter.History, req.History) update["history"] = _heroFetter.History this.module.modelFetter.modifyHeroFetterDataByObjId(session.GetUserId(), _heroFetter.Id, update) resp.Data = _heroFetter session.SendMsg(string(this.module.GetType()), LibraryGetStoryRewardResp, resp) return }