Bläddra i källkod

一键升级bugxiufu

cyzhao 1 år sedan
förälder
incheckning
04d5a21b0b
1 ändrade filer med 18 tillägg och 12 borttagningar
  1. 18 12
      Gameserver/App/process/StoreProc.php

+ 18 - 12
Gameserver/App/process/StoreProc.php

@@ -143,32 +143,38 @@ class StoreProc {
             }
             
             //升级,扣除金币和图纸      
-            while (true) {              
-                $n = count($arr);
-                for($k = 0; $k < $n; $k++){
-                    $equip = new Ins_Equip($arr[$k]);
+            while (true) {
+                $tag = 9999;
+                foreach ($arr as $index => $equip) {
+                    $ins_equip = new Ins_Equip($equip);
                     $lvMo = GameConfig::equip_levelupgrade_getItem($equip->level);
                     $needGold = $lvMo->needGold;
                     $needItemNum = $lvMo->needItemNum;
-                    $neeItemId = $equip->mo()->costTuzhiId;
-
+                    $neeItemId = $ins_equip->mo()->costTuzhiId;
                     if($user->baseInfo->gold >= $needGold && StlUtil::dictHasProperty($user->store->items, $neeItemId) && $user->store->items->$neeItemId >= $needItemNum){
                         $id = $equip->typeId;    
                         $equip->level += 1;
-                        $arr[$k] = $equip;
+                      
                         $equipDic->$id->level += 1;                        
                         $user->baseInfo->Consume_Gold($needGold);
                         $user->store->removeItem($neeItemId, $needItemNum);
-                        
-                    } else {
-                        StlUtil::arrayRemoveAt($arr, $k);
-                    }                              
+                    } else {                        
+                        $tag = $index;
+                        break;                    
+                    }
+                                                          
+                }
+                
+                if($tag != 9999){
+                    if(array_key_exists($tag, $arr)){
+                        StlUtil::arrayRemoveAt($arr, $tag);
+                    } 
                 }
                 
                 if(count($arr) <= 0){
                     break;
                 }
-                
+                               
             }
                                                         
         }