Kaynağa Gözat

英雄升级bug

cyzhao 3 yıl önce
ebeveyn
işleme
bafc8db7b7

+ 7 - 2
Gameserver/Amfphp/process/HeroProc.php

@@ -658,13 +658,16 @@ class HeroProc {
 //            return;                                                             # 已达顶级
 //        }
         //$lvs = GameConfig::hero_levelexp_getItem($targetHero->level + 1);
+        //var_dump("totototoxxxx---".$targetHero->xp);
         $targetHero->xp += $totalEXP;
         my_Assert($targetHero->xp >= 0, "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
         $initLevel = $targetHero->level;
         $curLv = 0;
+       
         $heroLvDic = GameConfig::hero_levelexp();
         $f = (array) $heroLvDic;
         ksort($f);
+        //var_dump($f);
         foreach ($f as $lv => $mo) {
             if ($targetHero->xp < $mo->requiredExp) {
                 $curLv = $lv - 1;
@@ -675,15 +678,17 @@ class HeroProc {
                 $curLv = glc()->Hero_Upgrade_BasicMaxLevel;
                 break;
             }
-        }
+        }           
         $targetHero->level = $curLv;
 
         $curStar = $targetHero->curStar; #当前星级
         if ($curStar < 5) {
             $starlimitLv = GameConfig::heroextra_level_tupo_getItem($targetHero->typeId, $curStar + 1)->starlimitLv;
+            //var_dump("star--------".$starlimitLv);
             if ($starlimitLv < $curLv) {
                 $targetHero->level = $starlimitLv;
-                $targetHero->xp = GameConfig::hero_levelexp_getItem($starlimitLv)->needExp;
+                //var_dump("newlevelssttttt--------".GameConfig::hero_levelexp_getItem($starlimitLv)->requiredExp);
+                $targetHero->xp = GameConfig::hero_levelexp_getItem($starlimitLv)->requiredExp;              
             }
         }
 

+ 23 - 0
Gameserver/Public/gamesys/app/providers/retention.php

@@ -8,6 +8,7 @@ include_once dirname(__FILE__) . '/../main.php';
 $params = query_paras();
 $date = $params['date'];
 
+/*---old
 $numbers = array(1, 3, 5, 7, 15, 30);                                           # 留存天数
 $array = array();
 $array2 = array();
@@ -33,6 +34,28 @@ array_map(function ($n)use($date, $tabName, $new, &$array, &$array2) {
     $array2[] = (int) ($total / $new * 100);                                    # 输出
 }, $numbers);
 // 
+*/
+
+//------new----
+$zoneid = 1;//先默认是1,其他区还没有
+$curLoginUidArr = gMem()->hgetall($key);
+
+$numbersArr = array(1, 2, 3, 4, 5, 6,7);
+$day = intval(strtotime($date)/24/60/60);
+foreach ($numbersArr as $type) {
+    $typeDay = intval(strtotime("$day   +$type   day")/24/60/60);
+    $memKey = "gamerun-loginUser-byUid-zone".$zoneid."-day_".$typeDay;
+    
+    $typeArr = gMem()->hgetall($memKey);
+    $retainArr = array();
+    foreach ($curLoginUidArr as $uid=>$val) {
+        if(in_array($uid, $typeArr)){
+            $retainArr[]=$uid;
+        }
+    }
+    
+}
+
 
 $result = new stdClass();
 $result->data1 = $array;