diff --git a/webapp/controller/BagController.class.php b/webapp/controller/BagController.class.php index 96eec645..929209c6 100644 --- a/webapp/controller/BagController.class.php +++ b/webapp/controller/BagController.class.php @@ -380,6 +380,9 @@ class BagController extends BaseAuthedController { private function openBattleBox($itemDb,$itemMeta,$itemNum){ $costItems = mt\Item::getUseCostItems($itemMeta); if (count($costItems) > 0){ + foreach ($costItems as &$item){ + $item['item_num'] *= $itemNum; + } $lackItem = null; if (!$this->_hasEnoughItems($costItems, $lackItem)) { $this->_rspErr(3, $this->_getLackItemErrMsg($lackItem)); @@ -394,15 +397,29 @@ class BagController extends BaseAuthedController { $luckyParam = \mt\Parameter::getVal('economy_account_luck_K',0); $luckyMaxPro = \mt\Parameter::getVal('economy_account_luck_E',0); $prob = $luckyMaxPro * ($lucky / ($lucky+$luckyParam)); - $times = $this->proEffect($prob,1); - $items = \services\LootService::dropOutItem($itemMeta['loot']); - if ($times > 0){ - foreach ($items as &$item){ - $item['item_num'] += $item['item_num']*$times; + $items = array(); + for ($i=0;$i<$itemNum;$i++){ + $times = $this->proEffect($prob,1); + $itemsTemp = \services\LootService::dropOutItem($itemMeta['loot']); + if ($times > 0){ + foreach ($itemsTemp as $item){ + $item['item_num'] += $item['item_num']*$times; + array_push($items,$item); + } + }else{ + foreach ($itemsTemp as $item){ + array_push($items,$item); + } } } + + + }else{ $items = \services\LootService::dropOutItem($itemMeta['loot']); + foreach ($items as &$item){ + $item['item_num'] *= $itemNum; + } } if (count($costItems) > 0){ $this->_decItems($costItems); @@ -410,7 +427,7 @@ class BagController extends BaseAuthedController { $this->_decItems(array( array( 'item_id' => $itemMeta['id'], - 'item_num' => 1 + 'item_num' => $itemNum ) )); $this->_addItems($items,$this->awardService,$this->propertyChgService);