Преглед изворни кода

fix: 合成时消耗掉的装备,清理其装备记录.

wanggangzero пре 6 месеци
родитељ
комит
af6cd8763b
1 измењених фајлова са 12 додато и 6 уклоњено
  1. 12 6
      Gameserver/App/process/StoreProc.php

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

@@ -290,7 +290,8 @@ class StoreProc {
      * @return type
      */
     public static function Equip_OnekeyCompose_new() {
-        $equipDic = ctx()->store(true)->equip;
+        $store = ctx()->store(true);
+        $equipDic = $store->equip;
         $arr = array();                                                         # 待处理装备临时数组
         $composeEquip = array();                                                # 合成记录
         foreach ($equipDic as $equip) {
@@ -335,7 +336,12 @@ class StoreProc {
                 foreach ($composeArr as $val) {                                 # 回收消耗的装备中所含材料
                     self::equipLevelUp_Material_Recovery($val->mo()->rarity, $val->qual, $val->mo()->position, $val->level); # 回收材料
                     StlUtil::dictRemove(ctx()->store(true)->equip, $val->uid);  # 背包删除
-                    StlUtil::arrayRemove($arr, $val);                           # 从arr中删掉已消耗装备
+                    for ($i = 1; $i <= 6; $i++) {                               # 清理装备信息
+                        if ($store->equipLocation->$i == $val->uid) {
+                            StlUtil::dictRemove($store->equipLocation, $i);
+                        }
+                    }
+                    StlUtil::arrayRemove($arr, $val); # 从arr中删掉已消耗装备
                 }
             }
         }
@@ -866,7 +872,7 @@ class StoreProc {
         $tag_index = 0;
         $tag_gem = null;
         foreach ($gemSetSlotDic as $slotId => $gemUid) {
-            if($gemUid == 0){
+            if ($gemUid == 0) {
                 continue;
             }
             $gem = new Ins_Gem(ctx()->store->gemStore->$gemUid);
@@ -887,8 +893,8 @@ class StoreProc {
                         //$gemSetSlotDic->$i = $ins_gem;
                         $go_index = $i;
                         break;
-                    }                        
-                    if($gemSetSlotDic->$i == 0){
+                    }
+                    if ($gemSetSlotDic->$i == 0) {
                         $go_index = $i;
                         break;
                     }
@@ -965,7 +971,7 @@ class StoreProc {
                 if ($uid == $gemUid) {
                     ctx()->store->equip->$eUid->gemSetSlot->$slotId = 0;
                     break 2;
-                }              
+                }
             }
         }