英雄达到最大等级 时候取当前经验有bug
This commit is contained in:
parent
0bff578ca9
commit
9310055d61
@ -113,47 +113,6 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
||||
return
|
||||
}
|
||||
|
||||
_data := this.module.configure.GetHeroLv(curLv)
|
||||
if _data != nil {
|
||||
if maxLv == curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
|
||||
code = pb.ErrorCode_HeroMaxLv
|
||||
return
|
||||
}
|
||||
curExp += addExp // 先把经验加上
|
||||
for {
|
||||
if len(_data.Heroexp) == 0 {
|
||||
break
|
||||
}
|
||||
if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
|
||||
// 超过的经验值
|
||||
leftExp := curExp - _data.Heroexp[0].N
|
||||
this.module.Debugf("经验溢出%d", leftExp)
|
||||
if leftExp >= minAddExp {
|
||||
code = pb.ErrorCode_HeroAddMaxExp
|
||||
return
|
||||
}
|
||||
curLv = maxLv
|
||||
curExp = _data.Heroexp[0].N
|
||||
break
|
||||
}
|
||||
if len(_data.Heroexp) == 0 || _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作
|
||||
break
|
||||
} else { // 升级操作
|
||||
curExp -= _data.Heroexp[0].N
|
||||
curLv += 1 // 经验够了 那么等级+1
|
||||
_data = this.module.configure.GetHeroLv(curLv)
|
||||
if _data == nil { // 等级加失败了 回到原来的等级
|
||||
curLv -= 1
|
||||
break
|
||||
}
|
||||
iLvUp++
|
||||
}
|
||||
}
|
||||
} else {
|
||||
code = pb.ErrorCode_HeroNoExist
|
||||
return
|
||||
}
|
||||
|
||||
this.module.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costGold, addExp)
|
||||
|
||||
// 执行升级逻辑
|
||||
|
@ -518,7 +518,12 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe
|
||||
maxLv = hero.Star * comm.HeroStarLvRatio
|
||||
_data := this.moduleHero.configure.GetHeroLv(curLv)
|
||||
if _data != nil {
|
||||
if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
|
||||
var maxExp int32
|
||||
if _data.Heroexp != nil && len(_data.Heroexp) != 0 {
|
||||
maxExp = _data.Heroexp[0].N
|
||||
}
|
||||
|
||||
if maxLv <= curLv && curExp >= maxExp { // 加经验之前校验是否达到最大等级
|
||||
code = pb.ErrorCode_HeroMaxLv
|
||||
return
|
||||
}
|
||||
@ -527,15 +532,15 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe
|
||||
if len(_data.Heroexp) == 0 {
|
||||
break
|
||||
}
|
||||
if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
|
||||
if maxLv <= curLv && curExp >= maxExp { // 设置最大经验和等级
|
||||
curLv = maxLv
|
||||
curExp = _data.Heroexp[0].N
|
||||
curExp = maxExp
|
||||
break
|
||||
}
|
||||
if _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作
|
||||
if maxExp > curExp { // 经验不够升级则不能执行升级操作
|
||||
break
|
||||
} else { // 升级操作
|
||||
curExp -= _data.Heroexp[0].N
|
||||
curExp -= maxExp
|
||||
curLv += 1 // 经验够了 那么等级+1
|
||||
_data = this.moduleHero.configure.GetHeroLv(curLv)
|
||||
if _data == nil { // 等级加失败了 回到原来的等级
|
||||
|
Loading…
Reference in New Issue
Block a user