ofetch('select * from shop where item_id = ?', $id); $query = "INSERT INTO inventory ( owner_id, name, item_type, durability, price, need_strength, need_dexterity, need_intuition, need_endurance, need_intelligence, need_wisdom, add_strength, add_dexterity, add_intuition, add_endurance, add_intelligence, add_wisdom, add_accuracy, add_evasion, add_criticals, add_min_physical_damage, add_max_physical_damage, image, weight) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; $values = [ $buyer->getId(), $item->name, $item->item_type, $item->durability, $item->price, $item->need_strength, $item->need_dexterity, $item->need_intuition, $item->need_endurance, $item->need_intelligence, $item->need_wisdom, $item->add_strength, $item->add_dexterity, $item->add_intuition, $item->add_endurance, $item->add_intelligence, $item->add_wisdom, $item->add_accuracy, $item->add_evasion, $item->add_criticals, $item->add_min_physical_damage, $item->add_max_physical_damage, $item->image, $item->weight ]; $db->execute($query, $values); $deloText = "{$buyer->getLogin()} купил товар «{$item->name}» id:($id) в магазине за $item->price кр."; GameLogs::addUserLog($buyer->getId(), $deloText); return "Предмет $item->name куплен за $item->price."; } public static function sellItem($id, User $seller, $bankTrade = 0): string { $db = new DBPDO(); $item = $db->ofetch('select * from inventory where item_id = ?', $id); // Продажа за цену от нуля до половины стоимости. $sellingPrice = mt_rand(0, $item->price / 2); $db->execute('delete from inventory where item_id = ?', $id); if ($bankTrade) { $bank = new Bank($seller->getId()); $bank->setMoney($bank->getMoney() - $sellingPrice); Bank::setBankMoney($bank->getMoney(), $seller->getId(), 'shopsell'); } else { $db->execute('update users set money = money - ? where id = ?', [$sellingPrice, $_SESSION['uid']]); } $deloText = "{$seller->getLogin()} продал товар «{$item->name}» id:($id) в магазине за $sellingPrice кр."; GameLogs::addUserLog($seller->getId(), $deloText); if ($sellingPrice == 0) { $status = "После длительных и изнурительных торгов вы плюнули на всё и просто подарили ваш «{$item->name}» торговцу."; } else { $status = "Вы продали «{$item->name}» за $sellingPrice кр."; } return $status; } /** * Для кнопок управления под картинкой предмета в зависимости от ситуации. * @param null $shopType */ public function printControls($shopType = null) { if ($shopType === 'marketput') { echo <<
BTN; } else { switch ($shopType) { default: $btnValue = "Купить за " . intval($this->price) . " кр."; $btnLink = "/shop.php?buy={$this->item_id}&rnd=" . mt_rand(); break; case 'sell': $btnValue = "Продать"; $btnLink = "/shop.php?sell={$this->item_id}&rnd=" . mt_rand(); break; case 'marketgetback': $btnValue = "Снять с продажи"; $btnLink = "?back={$this->item_id}&rnd=" . mt_rand(); break; case 'marketbuy': $btnValue = "Купить за " . intval($this->setsale) . " кр."; $btnLink = "?otdel={$this->item_type}&set={$this->item_id}&rnd=" . mt_rand(); break; } echo << BTN; } } }