Browse Source

fixed: 英雄经验计算bug.

gwang 4 years ago
parent
commit
834bd9a2c5
1 changed files with 5 additions and 3 deletions
  1. 5 3
      Gameserver/Amfphp/process/HeroProc.php

+ 5 - 3
Gameserver/Amfphp/process/HeroProc.php

@@ -228,7 +228,7 @@ class HeroProc {
         }
         $req->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
         if ($targetHero->xp < 0) {
-            
+            Err(ErrCode::err_innerfault, "英雄经验出错");
         } else {
             UserProc::updateUserInfo();                                             # 回写玩家数据
         }
@@ -1076,14 +1076,16 @@ class HeroProc {
         while ($targetHero->xp >= $lvs->needExp) {
             if ($targetHero->level < $maxLevel) {                               # 如果未到达最大等级
                 $targetHero->level += 1;
-                $lvs = GameConfig::hero_levelexp_getItem($targetHero->level);
                 if ($targetHero->level >= $maxLevel) {
 //                    echoLine("maxlevel");
                     $targetHero->xp = $lvs->needExp;
                 } else {
-//                    echoLine("targetHero->xp -= $lvs->needExp");
+//                    echoLine("$targetHero->xp -= $lvs->needExp");
                     $targetHero->xp -= $lvs->needExp;
                 }
+//                var_dump($targetHero->level);
+                $lvs = GameConfig::hero_levelexp_getItem($targetHero->level + 1);
+//                var_dump($lvs);
 //                $targetHero->maxXp = $lvs->needExp;
             } else {                                                            # 如果已到达最大等级则仅补齐缺失的经验即可
                 $targetHero->xp = $targetHero->maxXp;                           # 经验不能超过最大值