Функция получения строки таблицы о предмете по слоту в котором он находится у игрока.

This commit is contained in:
Igor Barkov (iwork) 2021-01-25 20:01:42 +02:00
parent d2dd113338
commit 96544d50ea

View File

@ -5,6 +5,9 @@
* Time: 22:41 * Time: 22:41
*/ */
namespace Battles; namespace Battles;
use db;
use Krugozor\Database\Mysql\Exception;
class DressedItems class DressedItems
{ {
private $DB; private $DB;
@ -25,15 +28,20 @@ class DressedItems
private function getDressedItems() private function getDressedItems()
{ {
try { try {
$this->DB = \db::c()->query('SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot > 0', $this->USERID); $this->DB = db::c()->query('SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot > 0', $this->USERID);
} catch (\Exception $e) { } catch (\Exception $e) {
echo '<div class="debug">Не прогрузилась таблица inventory (*) для класса DressedItems.</div>'; echo '<div class="debug">Не прогрузилась таблица inventory (*) для класса DressedItems.</div>';
} }
} }
private function getDressedItemById($item_id) private static function getDressedItemById($item_id)
{ {
return \db::c()->query('SELECT * FROM inventory WHERE item_id = ?i AND dressed_slot > 0', $item_id)->fetch_assoc(); return db::c()->query('SELECT * FROM inventory WHERE item_id = ?i AND dressed_slot > 0', $item_id)->fetch_assoc();
}
public static function getDressedItemBySlot($itemSlot, $ownerId)
{
return db::c()->query('SELECT * FROM battles.inventory WHERE owner_id = ?i AND dressed_slot = ?i', $ownerId, $itemSlot)->fetch_assoc();
} }
private function getBonusesFromDressedItems() private function getBonusesFromDressedItems()
@ -53,7 +61,7 @@ SELECT SUM(add_strength) as sum_strength,
SUM(add_max_physical_damage) as sum_max_phys_damage SUM(add_max_physical_damage) as sum_max_phys_damage
FROM inventory WHERE owner_id = ?i AND dressed_slot > 0 FROM inventory WHERE owner_id = ?i AND dressed_slot > 0
SQL; SQL;
$this->DBSUM = \db::c()->query($query, $this->USERID)->fetch_assoc(); $this->DBSUM = db::c()->query($query, $this->USERID)->fetch_assoc();
} catch (\Exception $e) { } catch (\Exception $e) {
echo '<div class="debug">Не прогрузилась таблица inventory (SUM) для класса DressedItems:' . $e . '</div>'; echo '<div class="debug">Не прогрузилась таблица inventory (SUM) для класса DressedItems:' . $e . '</div>';
} }
@ -127,14 +135,14 @@ SQL;
* Снимает с предмета статус одетого на персонажа в определённом слоте персонажа. * Снимает с предмета статус одетого на персонажа в определённом слоте персонажа.
* @param $slot_id - номер слота. * @param $slot_id - номер слота.
* *
* @throws \Krugozor\Database\Mysql\Exception * @throws Exception
*/ */
public function undressItem($slot_id) public function undressItem($slot_id)
{ {
self::getItemsInSlots(); self::getItemsInSlots();
// Проверяем, что используется один из 12 слотов и наличие предмета в слоте. // Проверяем, что используется один из 12 слотов и наличие предмета в слоте.
if (in_array($slot_id, Item::ITEM_TYPES_ALLOWED_IN_SLOTS) && $this->dressedItem[$slot_id]) { if (in_array($slot_id, Item::ITEM_TYPES_ALLOWED_IN_SLOTS) && $this->dressedItem[$slot_id]) {
\db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i AND owner_id = ?i', $slot_id, $this->USERID); db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i AND owner_id = ?i', $slot_id, $this->USERID);
} }
} }