diff --git a/modules/hero/api_awaken.go b/modules/hero/api_awaken.go index 46f3be84a..b4c4f0b80 100644 --- a/modules/hero/api_awaken.go +++ b/modules/hero/api_awaken.go @@ -113,10 +113,8 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c } } - err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 - if err1 != nil { - this.module.Errorf("ChangeHeroProperty err!") - } + this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 + chanegCard = append(chanegCard, _hero) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard}) session.SendMsg(string(this.module.GetType()), Awaken, &pb.HeroAwakenResp{Hero: _hero}) diff --git a/modules/hero/api_resonance.go b/modules/hero/api_resonance.go index 7d149ccce..a28756db1 100644 --- a/modules/hero/api_resonance.go +++ b/modules/hero/api_resonance.go @@ -120,10 +120,7 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR } } - err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 - if err1 != nil { - this.module.Errorf("ChangeHeroProperty err!") - } + this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 changeHero = append(changeHero, _hero) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: changeHero}) diff --git a/modules/hero/api_strengthenUpSkill.go b/modules/hero/api_strengthenUpSkill.go index 68bb6d5ac..8c1f257c8 100644 --- a/modules/hero/api_strengthenUpSkill.go +++ b/modules/hero/api_strengthenUpSkill.go @@ -146,10 +146,8 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt } ChangeList = append(ChangeList, _costHero) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList}) - err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 - if err1 != nil { - this.module.Errorf("ChangeHeroProperty err!") - } + this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 + session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_hero}}) session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero}) return diff --git a/modules/hero/api_strengthenUpStar.go b/modules/hero/api_strengthenUpStar.go index f5ecc81b8..4c0f1c13c 100644 --- a/modules/hero/api_strengthenUpStar.go +++ b/modules/hero/api_strengthenUpStar.go @@ -176,11 +176,8 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr code = pb.ErrorCode_DBError this.module.Errorf("update hero skill failed:%v", err1) } - err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 - if err1 != nil { - code = pb.ErrorCode_Unknown - this.module.Errorf("ChangeHeroProperty err!") - } + this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性 + chanegCard = append(chanegCard, _hero) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard}) session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero}) diff --git a/modules/hero/api_strengthenUplv.go b/modules/hero/api_strengthenUplv.go index c0eb9a498..056448e42 100644 --- a/modules/hero/api_strengthenUplv.go +++ b/modules/hero/api_strengthenUplv.go @@ -67,7 +67,10 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren code = pb.ErrorCode_HeroIsLock return } - + if _expHero.CardType != comm.CardTypeLevel { + code = pb.ErrorCode_HeroTypeErr + return + } if v > _expHero.SameCount { // 校验数量 code = pb.ErrorCode_HeroNoEnough return @@ -77,8 +80,8 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren if expConf != nil { addExp += expConf.Heroexp * v } - costGold = expConf.Needgold * v // 需要消耗的金币 - if _expHero.SameCount < v { // 消耗经验卡片数量不足 + costGold += expConf.Needgold * v // 需要消耗的金币 + if _expHero.SameCount < v { // 消耗经验卡片数量不足 code = pb.ErrorCode_HeroNoEnough return } @@ -96,18 +99,16 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren curLv = _hero.Lv curExp = _hero.Exp // 当前英雄的经验 + maxLv := _hero.Star * comm.HeroStarLvRatio // 校验当前能不能升级 - - if _hero.Lv >= _hero.Star*comm.HeroStarLvRatio { // 达到最大等级 + if _hero.Lv > maxLv { // 达到最大等级 code = pb.ErrorCode_HeroMaxLv return } - var maxLv int32 // 校验等级达到上限 - maxLv = _hero.Star * comm.HeroStarLvRatio _data := this.module.configure.GetHeroLv(curLv) if _data != nil { - if maxLv <= _hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 + if maxLv == _hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 code = pb.ErrorCode_HeroMaxLv return } @@ -142,10 +143,6 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren code = pb.ErrorCode_HeroNoExist return } - if _hero == nil { - code = pb.ErrorCode_HeroNoExist - return - } this.module.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costGold, addExp) @@ -155,14 +152,12 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren return } // 消耗金币 - res := make([]*cfg.Game_atn, 0) _d := &cfg.Game_atn{ A: "attr", T: "gold", N: costGold, } - res = append(res, _d) - code = this.module.ConsumeRes(session, res, true) + code = this.module.ConsumeRes(session, []*cfg.Game_atn{_d}, true) if code != pb.ErrorCode_Success { return } @@ -177,10 +172,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren _changeHero = append(_changeHero, _costExpHero[k]) } - err1 := this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 - if err1 != nil { - this.module.Errorf("ChangeHeroProperty err!") - } + this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性值 _changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变 if newhero != nil { diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index fcb5fbb4c..147bfa3f1 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -55,7 +55,7 @@ func (this *ModelHero) initHero(uid string, heroCfgId string) *pb.DBHero { Energy: make(map[int32]int32), Property: make(map[string]int32), } - this.PropertyCompute(uid, newHero) + this.PropertyCompute(newHero) this.initHeroSkill(newHero) return newHero } @@ -389,7 +389,7 @@ func (this *ModelHero) mergeEnegryProperty(uid string, hero *pb.DBHero, data map //属性计算 - 暂时放在modelHero里实现 //英雄基础属性 + 英雄等级基础属性 * 英雄成长系数 + 英雄星级对应等级属性 * 英雄品质系数 -func (this *ModelHero) PropertyCompute(uid string, hero *pb.DBHero) { +func (this *ModelHero) PropertyCompute(hero *pb.DBHero) { //英雄等级基础属性levelup heroLvCfg := this.moduleHero.configure.GetHeroLv(hero.Lv) @@ -457,11 +457,12 @@ func (this *ModelHero) PropertyCompute(uid string, hero *pb.DBHero) { comm.Atk: int32(math.Floor(atk)), comm.Def: int32(math.Floor(def)), } + } //重新计算英雄属性 func (this *ModelHero) ChangeHeroProperty(session comm.IUserSession, hero *pb.DBHero) (err error) { - this.PropertyCompute(session.GetUserId(), hero) //重新计算 property 的值 + this.PropertyCompute(hero) //重新计算 property 的值 update := map[string]interface{}{ "property": hero.Property, } diff --git a/modules/hero/module.go b/modules/hero/module.go index 833bcc8a3..93ca9aa08 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -92,9 +92,7 @@ func (this *Hero) UpdateEquipment(session comm.IUserSession, hero *pb.DBHero, eq //英雄列表 func (this *Hero) GetHeroList(uid string) []*pb.DBHero { heroes := this.modelHero.getHeroList(uid) - // for _, h := range heroes { - // h.Property = this.modelHero.PropertyCompute(uid, h) - // } + return heroes }