package hero // //参数校验 // func (this *apiComp) FusionCheck(session comm.IUserSession, req *pb.HeroFusionReq) (errdata *pb.ErrorData) { // if req.HeroId == "" { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ReqParameterError, // Title: pb.ErrorCode_ReqParameterError.ToString(), // } // } // return // } // func (this *apiComp) Fusion(session comm.IUserSession, req *pb.HeroFusionReq) (errdata *pb.ErrorData) { // var ( // totalCount int32 // mapHero map[string]int32 // _costMaphero map[string]*pb.DBHero // ChangeList []*pb.DBHero // 变化的英雄数据 // ) // ChangeList = make([]*pb.DBHero, 0) // _costMaphero = make(map[string]*pb.DBHero, 0) // mapHero = make(map[string]int32) // if errdata = this.FusionCheck(session, req); errdata != nil { // return // } // conf, err := this.module.configure.GetHeroFucionConfig(req.HeroId) // if err != nil { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ConfigNoFound, // 配置没找到 // Title: pb.ErrorCode_ConfigNoFound.ToString(), // Message: err.Error(), // } // return // } // for _, v := range req.Heros { // totalCount += v // } // if totalCount != int32(len(conf.Pointhero)) { // 校验数量 // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ReqParameterError, // Title: pb.ErrorCode_ReqParameterError.ToString(), // } // return // } // for k, v := range req.Heros { // // 校验英雄是否存在 // _obj, c := this.module.GetHeroByObjID(session.GetUserId(), k) // if c != nil { // errdata = c // return // } // mapHero[_obj.HeroID] += v // _costMaphero[k] = _obj // } // for _, v := range conf.Pointhero { // if _, ok := mapHero[v]; ok { // mapHero[v] -= 1 // } else { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ReqParameterError, // Title: pb.ErrorCode_ReqParameterError.ToString(), // } // return // } // } // for _, v := range mapHero { // if v != 0 { // errdata = &pb.ErrorData{ // Code: pb.ErrorCode_ReqParameterError, // Title: pb.ErrorCode_ReqParameterError.ToString(), // } // return // } // } // for k, _ := range req.Heros { // //mapHero[_costMaphero[k].HeroID] // if errdata = this.module.DelCard(session.GetUserId(), _costMaphero[k]); errdata != nil { // return // } // ChangeList = append(ChangeList, _costMaphero[k]) // } // // 获得新卡 // res := &cfg.Gameatn{ // A: "hero", // T: conf.Hero, // N: 1, // } // if errdata = this.module.DispenseRes(session, []*cfg.Gameatn{res}, false); errdata != nil { // this.module.Errorf("err:%v,create hero:%s,uid,%ss", errdata, conf.Hero, session.GetUserId()) // return // } // session.SendMsg(string(this.module.GetType()), HeroFusionResp, &pb.HeroFusionResp{Heroid: conf.Hero}) // // 通过融合获得指定英雄 // // this.module.ModuleRtask.SendToRtask(session, comm.Rtype139, utils.ToInt32(conf.Hero)) // go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype139, utils.ToInt32(conf.Hero))) // return // }