dressitem использовала несуществующую ячейку БД.

This commit is contained in:
lopar 2020-08-29 14:50:16 +03:00
parent 98a4138b83
commit c004531440

View File

@ -320,11 +320,11 @@ function dressitem($id)
//работаем с нормальными слотами
if (!$itemInSlotQuantity) {
// просто одеваем предмет
db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE id = ?i', $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 = item_type WHERE id = ?i', $id);
db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i', $id);
} else {
// невозможная ситуация - два предмета в одиночном слоте. критическая ошибка, запись в лог, раздевание.
$error = ERROR_TOO_MANY_ITEMS_IN_SLOTS;
@ -334,17 +334,17 @@ function dressitem($id)
// работаем с кольцами
if (!$itemInSlotQuantity) {
// просто одеваем предмет в слот 9
db::c()->query('UPDATE inventory SET dressed_slot = 9 WHERE id = ?i', $id);
db::c()->query('UPDATE inventory SET dressed_slot = 9 WHERE item_id = ?i', $id);
} elseif ($itemInSlotQuantity > 0 && $itemInSlotQuantity < 3) {
// Сравниваем массив колец и массив слотов для колец.
$emptyRingSlots = array_diff([9,10,11], $itemInSlot);
// Сортируем массив свободных слотов по возрастанию.
sort($emptyRingSlots);
// Одеваем предмет в первый свободный слот.
db::c()->query('UPDATE inventory SET dressed_slot = ?i WHERE id = ?i',$emptyRingSlots[0], $id);
db::c()->query('UPDATE inventory SET dressed_slot = ?i WHERE item_id = ?i',$emptyRingSlots[0], $id);
} elseif ($itemInSlotQuantity === 3) {
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = 11');
db::c()->query('UPDATE inventory SET dressed_slot = 11 WHERE id = ?i', $id);
db::c()->query('UPDATE inventory SET dressed_slot = 11 WHERE item_id = ?i', $id);
// снимаем предмет из слота 11 и одеваем вместо
} else {
// невозможная ситуация - больше трёх предметов на три слота. критическая ошибка, запись в лог, раздевание.