diff --git a/classes/ShopItem.php b/classes/ShopItem.php index 34a87b2..0444c14 100644 --- a/classes/ShopItem.php +++ b/classes/ShopItem.php @@ -20,10 +20,15 @@ class ShopItem extends Item /** * Для кнопок управления под картинкой прелмета в зависимости от ситуации. */ - public function printControls() + public function printControls($sell = false) { - $btnPrice = "Купить за " . intval($this->cost) . " кр."; - $btnLink = "/shop.php?buy={$this->id}&rnd=".mt_rand(); + if ($sell) { + $btnPrice = "Продать"; + $btnLink = "/shop.php?sell={$this->id}&rnd=".mt_rand(); + } else { + $btnPrice = "Купить за " . intval($this->cost) . " кр."; + $btnLink = "/shop.php?buy={$this->id}&rnd=" . mt_rand(); + } echo << diff --git a/shop.php b/shop.php index 3183b32..82d4595 100644 --- a/shop.php +++ b/shop.php @@ -13,35 +13,63 @@ if ($user['battle'] != 0) { die(); } -$sellItemId = filter_input(INPUT_GET, 'sellitem'); $saleItems = false; -if ($sellItemId && is_numeric($sellItemId)) { - $dress = db::c()->query('SELECT `id`, `name`, `cost`, `type`, `duration`, `maxdur`, `goden`, `dategoden`, `koll` FROM `inventory` WHERE `dressed` = 0 AND `id` = ?i AND `owner` = ?i', $sellItemId, $user['id'])->fetch_assoc(); - $price = $dress['cost'] * 1; - $kols = ''; - if ($dress['koll']) { - $price *= $dress['koll']; - $kols = '(x' . $dress['koll'] . ')'; +if (false == $saleItems) { + $shopItems = db::c()->query('SELECT `shop`.*, + `magic`.`name` AS `magic_name`, + `magic`.`chanse` AS `magic_chanse`, + `magic`.`time` AS `magic_time`, + `magic`.`file` AS `magic_file`, + `magic`.`targeted` AS `magic_targeted`, + `magic`.`needcharge` AS `magic_needcharge`, + `magic`.`img` AS `magic_img` + +FROM `shop` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `count` > 0 AND `cost` > 0 AND `razdel` = ?i ORDER by `nlevel` ASC, `id` ASC', $shopCategoryTypeNumber); + + $iteminfo = []; + while ($row = $shopItems->fetch_assoc()) { + $iteminfo[] = new ShopItem($row); } - destructitem($dress['id']); - if ($dress['type'] == 12) { - $allcost = round($price * (1 - $dress['duration'] / $dress['maxdur']), 2); - } else { - $allcost = round($price - $dress['duration'] * ($dress['cost'] / ($dress['maxdur'] * 10)), 2); +} else { + $inventoryItems = db::c()->query('SELECT `inventory`.*, + `magic`.`name` AS `magic_name`, + `magic`.`chanse` AS `magic_chanse`, + `magic`.`time` AS `magic_time`, + `magic`.`file` AS `magic_file`, + `magic`.`targeted` AS `magic_targeted`, + `magic`.`needcharge` AS `magic_needcharge`, + `magic`.`img` AS `magic_img` + +FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `dressed` = 0 AND `setsale` = 0 AND `cost` > 0 AND `present` = "?n" AND `tradesale` = 0 AND `podzem` = 0 AND `goden` = 0 AND `owner` = ?i ORDER BY `update` DESC', $_SESSION['uid'], null); + + $iteminfo = []; + while ($row = $inventoryItems->fetch_assoc()) { + $iteminfo[] = new ShopItem($row); } - if ($dress['goden'] != 0) { - $goden_max = $dress['goden'] * 24 * 60; - $goden_left = ($dress['dategoden'] - time()) / 60; - $per = $goden_left / $goden_max; - $allcost = round(($allcost * $per), 2); +} + +$sellItemId = filter_input(INPUT_GET, 'sell'); + +if ($sellItemId) { + $dress = db::c()->query('SELECT `id`, `name`, `cost`, `koll` FROM `inventory` WHERE `dressed` = 0 AND `id` = ?i AND `owner` = ?i', $sellItemId, $user['id'])->fetch_assoc(); + $kols = ''; + if ($dress['koll']) { + $dress['cost'] *= $dress['koll']; + $kols = " (x{$dress['koll']}) "; } - $user['money'] += $allcost; - $deloText = "\"" . $user['login'] . "\" продал в магазин товар : \"" . $dress['name'] . "\" $kols id:(cap" . $dress['id'] . ") [" . $dress['duration'] . "/" . $dress['maxdur'] . "] за " . $allcost . " кр. "; - db::c()->query('UPDATE `users` SET `money` = ?i WHERE `id` = ?i', $user['money'], $user['id']); - db::c()->query('INSERT INTO `delo` (`pers`, `text`, `type`, `date`) VALUES (?i, "?s", 1, ?i)', $user['id'], $deloText, time()); - $status = "Вы продали \"{$dress['name']}\" $kols за " . $allcost . " кр."; + + $allcost = mt_rand(0,$dress['cost']/2); + + #destructitem($dress['id']); + db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', $dress['id']); + + db::c()->query('UPDATE `users` SET `money` = ?i WHERE `id` = ?i', $allcost, $_SESSION['uid']); + $status = "Вы продали «{$dress['name']}» $kols за " . $allcost . " кр."; + + $deloText = "{$user['login']} продал товар «{$dress['name']}»{$kols}id:({$dress['id']}) в магазине за {$allcost} кр."; + addToDelo($deloText); } if (!empty($_GET['buy'])) { @@ -51,7 +79,6 @@ if (!empty($_GET['buy'])) { if (($dress['massa'] + $itemWeight['m']) > (get_meshok())) $status = 'Недостаточно места в рюкзаке.'; elseif ($user['money'] >= $dress['cost'] AND ($dress['count'] > 0 OR $dress['count'] == -1)) { - $newItem = [ 'prototype' => $dress['id'], 'owner' => $user['id'], @@ -177,24 +204,6 @@ switch ($shopCategoryTypeNumber) { $shopCategoryType = "Руны"; break; } - -if (false == $saleItems) { - $shopItems = db::c()->query('SELECT `shop`.*, - `magic`.`name` AS `magic_name`, - `magic`.`chanse` AS `magic_chanse`, - `magic`.`time` AS `magic_time`, - `magic`.`file` AS `magic_file`, - `magic`.`targeted` AS `magic_targeted`, - `magic`.`needcharge` AS `magic_needcharge`, - `magic`.`img` AS `magic_img` - -FROM `shop` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `count` > 0 AND `cost` > 0 AND `razdel` = ?i ORDER by `nlevel` ASC, `id` ASC', $shopCategoryTypeNumber); - - $iteminfo = []; - while ($row = $shopItems->fetch_assoc()) { - $iteminfo[] = new ShopItem($row); - } -} ?> @@ -232,7 +241,7 @@ FROM `shop` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `count` > 0 AND `c

- Вы можете продать ваши предметы за 10% от стоимости. + Вы можете продать ваши предметы за сущие копейки. @@ -242,9 +251,8 @@ FROM `shop` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `count` > 0 AND `c query('SELECT * FROM `inventory` WHERE `owner` = ?i AND `dressed` = 0 AND `setsale` = 0 AND `cost` > 0 AND `present` = "?s" AND `tradesale` = 0 AND `podzem` = 0 ORDER BY `update` DESC', $user['id'], null); + $data = db::c()->query('SELECT * FROM `inventory` WHERE `owner` = ?i AND `dressed` = 0 AND `setsale` = 0 AND `cost` > 0 AND `present` = "?n" AND `tradesale` = 0 AND `podzem` = 0 AND `goden` = 0 ORDER BY `update` DESC', $user['id'], null); while ($row = $data->fetch_assoc()) { - $row['count'] = 1; $price = $row['cost'] * 0.1; if ($row['koll']) { $price *= $row['koll']; @@ -254,17 +262,12 @@ FROM `shop` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `count` > 0 AND `c } else { $allcost = round($price - $row['duration'] * ($row['cost'] / ($row['maxdur'] * 10)), 2); } - if ($row['goden'] != 0) { - $goden_max = $row['goden'] * 24 * 60; - $goden_left = ($row['dategoden'] - time()) / 60; - $per = $goden_left / $goden_max; - $allcost = round(($allcost * $per), 2); - } + ?> -
продать +
продать за