属性优化

This commit is contained in:
meixiongfeng 2022-07-26 23:14:52 +08:00
parent 49fc4d1d50
commit 6953df5cd2
7 changed files with 23 additions and 42 deletions

View File

@ -113,10 +113,8 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
} }
} }
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
if err1 != nil {
this.module.Errorf("ChangeHeroProperty err!")
}
chanegCard = append(chanegCard, _hero) chanegCard = append(chanegCard, _hero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard}) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
session.SendMsg(string(this.module.GetType()), Awaken, &pb.HeroAwakenResp{Hero: _hero}) session.SendMsg(string(this.module.GetType()), Awaken, &pb.HeroAwakenResp{Hero: _hero})

View File

@ -120,10 +120,7 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
} }
} }
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
if err1 != nil {
this.module.Errorf("ChangeHeroProperty err!")
}
changeHero = append(changeHero, _hero) changeHero = append(changeHero, _hero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: changeHero}) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: changeHero})

View File

@ -146,10 +146,8 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
} }
ChangeList = append(ChangeList, _costHero) ChangeList = append(ChangeList, _costHero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList}) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
if err1 != nil {
this.module.Errorf("ChangeHeroProperty err!")
}
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_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}) session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero})
return return

View File

@ -176,11 +176,8 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
this.module.Errorf("update hero skill failed:%v", err1) this.module.Errorf("update hero skill failed:%v", err1)
} }
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性
if err1 != nil {
code = pb.ErrorCode_Unknown
this.module.Errorf("ChangeHeroProperty err!")
}
chanegCard = append(chanegCard, _hero) chanegCard = append(chanegCard, _hero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard}) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero}) session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero})

View File

@ -67,7 +67,10 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
code = pb.ErrorCode_HeroIsLock code = pb.ErrorCode_HeroIsLock
return return
} }
if _expHero.CardType != comm.CardTypeLevel {
code = pb.ErrorCode_HeroTypeErr
return
}
if v > _expHero.SameCount { // 校验数量 if v > _expHero.SameCount { // 校验数量
code = pb.ErrorCode_HeroNoEnough code = pb.ErrorCode_HeroNoEnough
return return
@ -77,8 +80,8 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
if expConf != nil { if expConf != nil {
addExp += expConf.Heroexp * v addExp += expConf.Heroexp * v
} }
costGold = expConf.Needgold * v // 需要消耗的金币 costGold += expConf.Needgold * v // 需要消耗的金币
if _expHero.SameCount < v { // 消耗经验卡片数量不足 if _expHero.SameCount < v { // 消耗经验卡片数量不足
code = pb.ErrorCode_HeroNoEnough code = pb.ErrorCode_HeroNoEnough
return return
} }
@ -96,18 +99,16 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
curLv = _hero.Lv curLv = _hero.Lv
curExp = _hero.Exp // 当前英雄的经验 curExp = _hero.Exp // 当前英雄的经验
maxLv := _hero.Star * comm.HeroStarLvRatio
// 校验当前能不能升级 // 校验当前能不能升级
if _hero.Lv > maxLv { // 达到最大等级
if _hero.Lv >= _hero.Star*comm.HeroStarLvRatio { // 达到最大等级
code = pb.ErrorCode_HeroMaxLv code = pb.ErrorCode_HeroMaxLv
return return
} }
var maxLv int32 // 校验等级达到上限
maxLv = _hero.Star * comm.HeroStarLvRatio
_data := this.module.configure.GetHeroLv(curLv) _data := this.module.configure.GetHeroLv(curLv)
if _data != nil { 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 code = pb.ErrorCode_HeroMaxLv
return return
} }
@ -142,10 +143,6 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
code = pb.ErrorCode_HeroNoExist code = pb.ErrorCode_HeroNoExist
return return
} }
if _hero == nil {
code = pb.ErrorCode_HeroNoExist
return
}
this.module.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costGold, addExp) 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 return
} }
// 消耗金币 // 消耗金币
res := make([]*cfg.Game_atn, 0)
_d := &cfg.Game_atn{ _d := &cfg.Game_atn{
A: "attr", A: "attr",
T: "gold", T: "gold",
N: costGold, N: costGold,
} }
res = append(res, _d) code = this.module.ConsumeRes(session, []*cfg.Game_atn{_d}, true)
code = this.module.ConsumeRes(session, res, true)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
@ -177,10 +172,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
_changeHero = append(_changeHero, _costExpHero[k]) _changeHero = append(_changeHero, _costExpHero[k])
} }
err1 := this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性值
if err1 != nil {
this.module.Errorf("ChangeHeroProperty err!")
}
_changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变 _changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变
if newhero != nil { if newhero != nil {

View File

@ -55,7 +55,7 @@ func (this *ModelHero) initHero(uid string, heroCfgId string) *pb.DBHero {
Energy: make(map[int32]int32), Energy: make(map[int32]int32),
Property: make(map[string]int32), Property: make(map[string]int32),
} }
this.PropertyCompute(uid, newHero) this.PropertyCompute(newHero)
this.initHeroSkill(newHero) this.initHeroSkill(newHero)
return newHero return newHero
} }
@ -389,7 +389,7 @@ func (this *ModelHero) mergeEnegryProperty(uid string, hero *pb.DBHero, data map
//属性计算 - 暂时放在modelHero里实现 //属性计算 - 暂时放在modelHero里实现
//英雄基础属性 + 英雄等级基础属性 * 英雄成长系数 + 英雄星级对应等级属性 * 英雄品质系数 //英雄基础属性 + 英雄等级基础属性 * 英雄成长系数 + 英雄星级对应等级属性 * 英雄品质系数
func (this *ModelHero) PropertyCompute(uid string, hero *pb.DBHero) { func (this *ModelHero) PropertyCompute(hero *pb.DBHero) {
//英雄等级基础属性levelup //英雄等级基础属性levelup
heroLvCfg := this.moduleHero.configure.GetHeroLv(hero.Lv) 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.Atk: int32(math.Floor(atk)),
comm.Def: int32(math.Floor(def)), comm.Def: int32(math.Floor(def)),
} }
} }
//重新计算英雄属性 //重新计算英雄属性
func (this *ModelHero) ChangeHeroProperty(session comm.IUserSession, hero *pb.DBHero) (err error) { 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{}{ update := map[string]interface{}{
"property": hero.Property, "property": hero.Property,
} }

View File

@ -92,9 +92,7 @@ func (this *Hero) UpdateEquipment(session comm.IUserSession, hero *pb.DBHero, eq
//英雄列表 //英雄列表
func (this *Hero) GetHeroList(uid string) []*pb.DBHero { func (this *Hero) GetHeroList(uid string) []*pb.DBHero {
heroes := this.modelHero.getHeroList(uid) heroes := this.modelHero.getHeroList(uid)
// for _, h := range heroes {
// h.Property = this.modelHero.PropertyCompute(uid, h)
// }
return heroes return heroes
} }