Кольца стакались в одном слоте потому что у них один тип.

This commit is contained in:
lopar 2020-08-29 16:44:08 +03:00
parent bab8ccf6bb
commit 6c37d1ce1b

View File

@ -315,8 +315,11 @@ function dressitem($id)
$itemInSlotRow = db::c()->query('SELECT dressed_slot FROM inventory WHERE owner_id = ?i AND dressed_slot > 0 AND item_type = ?i', $_SESSION['uid'], $selectedItem->item_type);
$itemInSlotQuantity = $itemInSlotRow->getNumRows();
if ($itemInSlotQuantity) {
$itemInSlot = $itemInSlotRow->fetch_assoc_array();
print_r($itemInSlot['dressed_slot']).'<br>';
//$itemInSlot = $itemInSlotRow->fetch_assoc();
while ($row = $itemInSlotRow->fetch_assoc()) {
$itemInSlot[] = $row;
}
print_r($itemInSlot).'<br>';
}
if (in_array($selectedItem->item_type,[HELMET,ARMOR,LEGS,BOOTS,GLOVES,WEAPON,SHIELD,BELT,AMULET])) {
//работаем с нормальными слотами
@ -325,7 +328,7 @@ function dressitem($id)
db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i', $id);
} elseif ($itemInSlotQuantity === 1) {
// снимаем предмет и одеваем вместо
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i', $itemInSlot['dressed_slot']);
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i', $itemInSlot);
db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i', $id);
} else {
// невозможная ситуация - два предмета в одиночном слоте. критическая ошибка, запись в лог, раздевание.
@ -340,7 +343,7 @@ function dressitem($id)
} elseif ($itemInSlotQuantity > 0 && $itemInSlotQuantity < 3) {
// Сравниваем массив колец и массив слотов для колец.
//FIXME Два кольца стакаются в среднем слоте!
$emptyRingSlots = array_diff([9,10,11], $itemInSlot['dressed_slot']);
$emptyRingSlots = array_diff([9,10,11], $itemInSlot);
// Сортируем массив свободных слотов по возрастанию.
sort($emptyRingSlots);
print_r($emptyRingSlots);