diff --git a/modules/hero/api_strengthenUplv.go b/modules/hero/api_strengthenUplv.go index 8c2791148..91fadbe6b 100644 --- a/modules/hero/api_strengthenUplv.go +++ b/modules/hero/api_strengthenUplv.go @@ -119,6 +119,9 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren } curExp += addExp // 先把经验加上 for { + if len(_data.Heroexp) == 0 { + break + } if maxLv <= _hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 // 超过的经验值 leftExp := curExp - _data.Heroexp[0].N @@ -131,7 +134,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren curExp = _data.Heroexp[0].N break } - if _data.Heroexp == nil || _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作 + if len(_data.Heroexp) == 0 || _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作 break } else { // 升级操作 curExp -= _data.Heroexp[0].N diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index dba76ef0e..86847d7b6 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -480,6 +480,9 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe } curExp += exp // 先把经验加上 for { // 死循环判断一键升级 + if len(_data.Heroexp) == 0 { + break + } if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 curLv = maxLv curExp = _data.Heroexp[0].N