dev #41
@ -7,6 +7,7 @@ class InventoryItem extends Item
|
|||||||
{
|
{
|
||||||
private $present;
|
private $present;
|
||||||
private $owner_id;
|
private $owner_id;
|
||||||
|
private $db;
|
||||||
private const TOO_MANY_ITEMS_IN_SLOTS = 'Критическая ошибка: Переполнение слота!';
|
private const TOO_MANY_ITEMS_IN_SLOTS = 'Критическая ошибка: Переполнение слота!';
|
||||||
private const UNKNOWN_ITEM_TYPE = 'Неизвестный тип предмета!';
|
private const UNKNOWN_ITEM_TYPE = 'Неизвестный тип предмета!';
|
||||||
private const REQUIREMENTS_NOT_MET = 'Персонаж не соответствует требованиям!';
|
private const REQUIREMENTS_NOT_MET = 'Персонаж не соответствует требованиям!';
|
||||||
@ -20,6 +21,7 @@ class InventoryItem extends Item
|
|||||||
{
|
{
|
||||||
parent::__construct($row);
|
parent::__construct($row);
|
||||||
$this->owner_id = $row->owner_id;
|
$this->owner_id = $row->owner_id;
|
||||||
|
$this->db = DBPDO::INIT();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function printInfo()
|
public function printInfo()
|
||||||
@ -127,4 +129,15 @@ IMG;
|
|||||||
|
|
||||||
return isset($error) ? $error : true;
|
return isset($error) ? $error : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $itemId
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function destroyItem($itemId): bool
|
||||||
|
{
|
||||||
|
$db = new DBPDO();
|
||||||
|
return $db->execute('delete from inventory where dressed_slot = 0 and owner_id = ? and item_id = ?', [$_SESSION['uid'], $itemId]);
|
||||||
|
}
|
||||||
}
|
}
|
@ -468,21 +468,6 @@ function ref_drop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Уничтожить предмет, принадлежащий игроку, вызывающего функцию.
|
|
||||||
* @param $id - ID предмета игрока.
|
|
||||||
* @throws \Krugozor\Database\Mysql\Exception
|
|
||||||
*/
|
|
||||||
function destructitem($id)
|
|
||||||
{
|
|
||||||
global $user;
|
|
||||||
$item = db::c()->query('SELECT 1 FROM inventory WHERE owner_id = ?i AND item_id = ?i', $user->getId(), $id);
|
|
||||||
if ($item->getNumRows()) {
|
|
||||||
db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', $id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// использовать магию
|
// использовать магию
|
||||||
function usemagic($id, $target)
|
function usemagic($id, $target)
|
||||||
{
|
{
|
||||||
@ -543,7 +528,7 @@ function usemagic($id, $target)
|
|||||||
}
|
}
|
||||||
if ($bat) {
|
if ($bat) {
|
||||||
if ($row['maxdur'] <= ($row['duration'] + 1)) {
|
if ($row['maxdur'] <= ($row['duration'] + 1)) {
|
||||||
destructitem($row['id']);
|
\Battles\InventoryItem::destroyItem($row['id']);
|
||||||
} else {
|
} else {
|
||||||
if (!$row['magic']) {
|
if (!$row['magic']) {
|
||||||
db::c()->query('UPDATE `inventory` SET `includemagicdex` =`includemagicdex` - ?i WHERE id = ?i', $bat, $row['id']);
|
db::c()->query('UPDATE `inventory` SET `includemagicdex` =`includemagicdex` - ?i WHERE id = ?i', $bat, $row['id']);
|
||||||
|
@ -12,7 +12,7 @@ $vips = [1 => 0.15, 2 => 0.30, 3 => 0.45];
|
|||||||
function show_item($row, $txt, $place)
|
function show_item($row, $txt, $place)
|
||||||
{
|
{
|
||||||
if (($row['maxdur'] <= $row['duration']) || ($row['dategoden'] && $row['dategoden'] <= time())) {
|
if (($row['maxdur'] <= $row['duration']) || ($row['dategoden'] && $row['dategoden'] <= time())) {
|
||||||
destructitem($row['id']);
|
\Battles\InventoryItem::destroyItem($row['id']);
|
||||||
}
|
}
|
||||||
$r = '';
|
$r = '';
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ if ($user['battle'] > 0) {
|
|||||||
echo "<font color=red><b>Этот свиток нельзя встраивать в предметы!<b></font>";
|
echo "<font color=red><b>Этот свиток нельзя встраивать в предметы!<b></font>";
|
||||||
} else {
|
} else {
|
||||||
// встраиваем
|
// встраиваем
|
||||||
destructitem($svitok['id']);
|
\Battles\InventoryItem::destroyItem($svitok['id']);
|
||||||
echo "<font color=red><b>Свиток \"" . $svitok['name'] . "\" удачно встроен в \"" . $dress['name'] . "\"<b></font>";
|
echo "<font color=red><b>Свиток \"" . $svitok['name'] . "\" удачно встроен в \"" . $dress['name'] . "\"<b></font>";
|
||||||
mysql_query("UPDATE `inventory` SET
|
mysql_query("UPDATE `inventory` SET
|
||||||
" . ($dress['nintel'] < $svitok['nintel'] ? "`nintel`='" . $svitok['nintel'] . "'," : "") . "
|
" . ($dress['nintel'] < $svitok['nintel'] ? "`nintel`='" . $svitok['nintel'] . "'," : "") . "
|
||||||
|
13
main.php
13
main.php
@ -60,13 +60,12 @@ if ($edit) {
|
|||||||
unset($dressing);
|
unset($dressing);
|
||||||
}
|
}
|
||||||
if ($destruct) {
|
if ($destruct) {
|
||||||
$q = db::c()->query('SELECT `id`, `dressed`, `name`, `duration`, `maxdur` FROM `inventory` WHERE `owner` = ?i AND `id` = ?i', $_SESSION['uid'], $destruct);
|
$q = DBPDO::INIT()->ofetch('select name,dressed_slot from inventory where owner_id = ? and item_id = ?', [$user->getId(), $destruct]);
|
||||||
if ($q->getNumRows()) {
|
if ($q) {
|
||||||
$q = $q->fetch_assoc();
|
if (empty($q->dressed_slot)) {
|
||||||
if (empty($q['dressed'])) {
|
InventoryItem::destroyItem($destruct);
|
||||||
destructitem($q['id']);
|
GameLogs::addUserLog($user->getId(), $user->getLogin() . ' выбросил предмет ' . $q->name . ' id:(cap' . $destruct . ')');
|
||||||
GameLogs::addUserLog($user->getId(), $user->getLogin() . ' выбросил предмет ' . $q['name'] . ' id:(cap' . $q['id'] . ')');
|
err('Предмет ' . $q->name . ' выброшен.');
|
||||||
err('Предмет ' . $q['name'] . ' выброшен.');
|
|
||||||
} else {
|
} else {
|
||||||
err('Ошибка: нельзя выбросить одетый предмет!');
|
err('Ошибка: нельзя выбросить одетый предмет!');
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user