game: 이미 같은 부위에 다른 유니크가 있는 경우, 경매 진행 방지

This commit is contained in:
2022-07-17 22:34:05 +09:00
parent 9f4f7a759e
commit eecb4f699b
+17 -4
View File
@@ -54,7 +54,14 @@ class AuctionUniqueItem extends Auction
$availableCnt = 0;
foreach (GameConst::$allItems as $itemType => $itemList) {
$availableCnt += $itemList[$itemKey] ?? 0;
if (!key_exists($itemKey, $itemList)) {
continue;
}
$ownItem = $general->getItem($itemKey);
if ($ownItem !== null && !$ownItem->isBuyable()) {
return '이미 가진 아이템이 있습니다.';
}
$availableCnt += $itemList[$itemKey];
$availableCnt -= $db->queryFirstField('SELECT count(*) FROM `general` WHERE %b = %s', $itemType, $itemKey);
}
@@ -158,8 +165,7 @@ class AuctionUniqueItem extends Auction
ON bid.`auction_id` = max_bid.`auction_id` AND bid.`amount` = max_bid.`max_amount`',
$auctionIDList,
) ?? [], 'auction_id');
}
else{
} else {
$rawHighestBids = [];
}
@@ -177,7 +183,14 @@ class AuctionUniqueItem extends Auction
$bidItemTypes = new Set();
foreach (GameConst::$allItems as $itemType => $itemList) {
if (($itemList[$itemCode] ?? 0) <= 0) {
if (!key_exists($itemCode, $itemList)) {
continue;
}
$ownItem = $this->general->getItem($itemCode);
if ($ownItem !== null && !$ownItem->isBuyable()) {
return '이미 가진 아이템이 있습니다.';
}
if ($itemList[$itemCode] <= 0) {
continue;
}
$bidItemTypes->add($itemType);