Browse Source

fixed: 英雄加经验算法.

gwang 5 năm trước cách đây
mục cha
commit
2b66e84678
1 tập tin đã thay đổi với 13 bổ sung3 xóa
  1. 13 3
      Gameserver/Amfphp/process/HeroProc.php

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

@@ -225,7 +225,11 @@ class HeroProc {
             $myPacketItems->$costItemId = 0;
         }
         $req->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
-        UserProc::updateUserInfo();                                             # 回写玩家数据
+        if ($targetHero->xp < 0) {
+            
+        } else {
+            UserProc::updateUserInfo();                                             # 回写玩家数据
+        }
         self::CalcUserFightPower($req->zoneid, $req->uid, $req->userInfo->game); # 跟新战力统计
         return Resp::ok($targetHero);
     }
@@ -1057,18 +1061,22 @@ class HeroProc {
         if ($targetHero->level >= $maxLevel) {
             return;                                                             # 已达顶级
         }
-        $lvs = GameConfig::hero_levelexp_getItem($targetHero->level);
+        $lvs = GameConfig::hero_levelexp_getItem($targetHero->level + 1);
         $targetHero->xp += $totalEXP;
+        var_dump("+" . $totalEXP);
         CLog:: Assert("HeroProc", $targetHero->xp >= 0, #
                 "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
-
+        var_dump($targetHero->xp);
+        var_dump($lvs);
         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");
                     $targetHero->xp -= $lvs->needExp;
                 }
 //                $targetHero->maxXp = $lvs->needExp;
@@ -1077,6 +1085,8 @@ class HeroProc {
                 break;
             }
         } // end while
+        CLog:: Assert("HeroProc", $targetHero->xp >= 0, #
+                "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
         $collectHeros->$heroUID = $targetHero;                                  # 更新英雄的数据 
         return $targetHero;                                                     # 将英雄对象返回
     }