380 lines
17 KiB
PHP
380 lines
17 KiB
PHP
<?php
|
||
ob_start();
|
||
session_start();
|
||
if (!isset($_SESSION['uid'])) {
|
||
header("Location: index.php");
|
||
}
|
||
include("config.php");
|
||
include("functions.php");
|
||
|
||
if ($user['room'] != 22) {
|
||
header("Location: main.php");
|
||
die();
|
||
}
|
||
if ($user['battle'] != 0) {
|
||
header('location: fbattle.php');
|
||
die();
|
||
}
|
||
|
||
$sellItemId = empty($_GET['sellitem']) ?: $_GET['sellitem'];
|
||
|
||
if ($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'] . ')';
|
||
}
|
||
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);
|
||
}
|
||
|
||
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);
|
||
}
|
||
$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());
|
||
echo "<b style='color: red;'>Вы продали \"{$dress['name']}\" $kols за " . $allcost . " кр.</b>";
|
||
}
|
||
|
||
if (isset($_GET['set']) OR isset($_POST['set'])) {
|
||
$set = empty($_GET['set']) ?: $_GET['set'];
|
||
$set = empty($_POST['set']) ?: $_POST['set'];
|
||
|
||
$count = isset($_GET['count']) && is_numeric($_GET['count']) ? $_GET['count'] : 0;
|
||
$count = isset($_POST['count']) && is_numeric($_POST['count']) ? $_POST['count'] : 0;
|
||
|
||
if ($count < 1) {
|
||
$count = 0;
|
||
$count_ok = 0;
|
||
} else $count_ok = 1;
|
||
|
||
$dress = db::c()->query('SELECT * FROM `shop` WHERE `id`=?i', $set)->fetch_assoc();
|
||
if ($count_ok == 0) {
|
||
err('Неправильно введено количество.');
|
||
} elseif (($dress['massa'] * $count + $itemWeight['m']) > (get_meshok())) {
|
||
err('Недостаточно места в рюкзаке.');
|
||
} elseif ($count_ok == 1 && ($user['money'] >= ($dress['cost'] * $count)) && ($dress['count'] >= $count)) {
|
||
|
||
$newItem = [
|
||
'prototype' => $dress['id'],
|
||
'owner' => $user['id'],
|
||
'name' => $dress['name'], //s
|
||
'type' => $dress['type'],
|
||
'massa' => $dress['massa'],
|
||
'cost' => $dress['cost'],
|
||
'img' => $dress['img'], //s
|
||
'maxdur' => $dress['maxdur'],
|
||
'isrep' => $dress['isrep'],
|
||
'gsila' => $dress['gsila'],
|
||
'glovk' => $dress['glovk'],
|
||
'ginta' => $dress['ginta'],
|
||
'gintel' => $dress['gintel'],
|
||
'ghp' => $dress['ghp'],
|
||
'gnoj' => $dress['gnoj'],
|
||
'gtopor' => $dress['gtopor'],
|
||
'gdubina' => $dress['gdubina'],
|
||
'gmech' => $dress['gmech'],
|
||
'gfire' => $dress['gfire'],
|
||
'gwater' => $dress['gwater'],
|
||
'gair' => $dress['gair'],
|
||
'gearth' => $dress['gearth'],
|
||
'glight' => $dress['glight'],
|
||
'ggray' => $dress['ggray'],
|
||
'gdark' => $dress['gdark'],
|
||
'needident' => $dress['needident'],
|
||
'nsila' => $dress['nsila'],
|
||
'nlovk' => $dress['nlovk'],
|
||
'ninta' => $dress['ninta'],
|
||
'nintel' => $dress['nintel'],
|
||
'nmudra' => $dress['nmudra'],
|
||
'nvinos' => $dress['nvinos'],
|
||
'nnoj' => $dress['nnoj'],
|
||
'ntopor' => $dress['ntopor'],
|
||
'ndubina' => $dress['ndubina'],
|
||
'nmech' => $dress['nmech'],
|
||
'bron1' => $dress['bron1'],
|
||
'bron2' => $dress['bron2'],
|
||
'bron3' => $dress['bron3'],
|
||
'bron4' => $dress['bron4'],
|
||
'minu' => $dress['minu'],
|
||
'maxu' => $dress['maxu'],
|
||
'magic' => $dress['magic'],
|
||
'nlevel' => $dress['nlevel'],
|
||
'nalign' => $dress['nalign'],
|
||
'dategoden' => $dress['dategoden'],
|
||
'goden' => $dress['goden'],
|
||
'otdel' => $dress['otdel'],//s
|
||
'gmp' => $dress['gmp'],
|
||
'gmeshok' => $dress['gmeshok'],
|
||
'encicl' => $dress['encicl'],//s
|
||
'artefact' => $dress['artefact'],
|
||
'koll' => $dress['koll']
|
||
];
|
||
|
||
for ($k = 1; $k <= $_GET['count']; $k++) {
|
||
db::c()->query('INSERT INTO `inventory` SET ?A[?i,?i,"?s",?i,?i,?i,"?s",?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,"?s",?i,?i,"?s",?i,?i]', $newItem);
|
||
db::c()->query('UPDATE `shop` SET `count` = `count` - ?i WHERE `id` =?i', $count, $set);
|
||
echo "<b style='color: red'>Вы купили {$count} шт. \"{$dress['name']}\".</b>";
|
||
$user['money'] -= $count * $dress['cost'];
|
||
db::c()->query('UPDATE `users` set `money` = ?i WHERE `id` = ?i', $user['money'], $user['id']);
|
||
$invdb = db::c()->query('SELECT `id` FROM `inventory` WHERE `name` = "?s" ORDER BY `id` DESC LIMIT ?i', $dress['name'], $count);
|
||
if ($count == 1) {
|
||
$dressinv = $invdb->fetch_assoc();
|
||
$dressid = "cap" . $dressinv['id'];
|
||
$dresscount = " ";
|
||
} else {
|
||
$dressid = "";
|
||
while ($dressinv = $invdb->fetch_assoc()) {
|
||
$dressid .= "cap" . $dressinv['id'] . ",";
|
||
}
|
||
$dresscount = "(x" . $count . ") ";
|
||
}
|
||
$allcost = $count * $dress['cost'];
|
||
$deloText = "\"" . $user['login'] . "\" купил товар : \"" . $dress['name'] . "\" " . $dresscount . " id:(" . $dressid . ") [0/" . $dress['maxdur'] . "] за " . $allcost . " кр.";
|
||
db::c()->query('INSERT INTO `delo` (`pers`, `text`, `type`, `date`) VALUES (?i, "?s", 1, ?i', $user['id'], $deloText, time());
|
||
}
|
||
|
||
} else {
|
||
echo "<b style='color: red;'>Недостаточно денег или нет вещей в наличии.</b>";
|
||
}
|
||
}
|
||
$itemWeight = db::c()->query('SELECT sum(`massa`) AS `m` FROM `inventory` WHERE `owner` = ?i AND `dressed` = 0 AND `setsale` = 0', $user['id'])->fetch_assoc();
|
||
|
||
$shopItemType = empty($_POST['sale']) ?: $_POST['sale'];
|
||
$shopItemTypeNumber = empty($_GET['otdel']) ?: $_GET['otdel'];
|
||
switch ($shopItemTypeNumber) {
|
||
default:
|
||
$shopItemType = "кастеты,ножи";
|
||
$_GET['otdel'] = 1;
|
||
break;
|
||
case 1:
|
||
$shopItemType = "кастеты,ножи";
|
||
break;
|
||
case 11:
|
||
$shopItemType = "топоры";
|
||
break;
|
||
case 12:
|
||
$shopItemType = "дубины,булавы";
|
||
break;
|
||
case 13:
|
||
$shopItemType = "мечи";
|
||
break;
|
||
case 14:
|
||
$shopItemType = "луки и арбалеты";
|
||
break;
|
||
case 2:
|
||
$shopItemType = "сапоги";
|
||
break;
|
||
case 21:
|
||
$shopItemType = "перчатки";
|
||
break;
|
||
case 22:
|
||
$shopItemType = "легкая броня";
|
||
break;
|
||
case 23:
|
||
$shopItemType = "тяжелая броня";
|
||
break;
|
||
case 24:
|
||
$shopItemType = "шлемы";
|
||
break;
|
||
case 3:
|
||
$shopItemType = "Щиты";
|
||
break;
|
||
case 4:
|
||
$shopItemType = "Ювелирные товары: серьги";
|
||
break;
|
||
case 41:
|
||
$shopItemType = "Ювелирные товары: ожерелья";
|
||
break;
|
||
case 42:
|
||
$shopItemType = "Ювелирные товары: кольца";
|
||
break;
|
||
case 5:
|
||
$shopItemType = "Заклинания: нейтральные";
|
||
break;
|
||
case 51:
|
||
$shopItemType = "Заклинания: боевые и защитные";
|
||
break;
|
||
case 6:
|
||
$shopItemType = "Амуниция";
|
||
break;
|
||
case 52:
|
||
$shopItemType = "Руны";
|
||
break;
|
||
}
|
||
|
||
?>
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<link href="css/main.css" rel="stylesheet"/>
|
||
<script src="js/jquery-1.7.2.min.js"></script>
|
||
<script src="js/jquery.simplemodal.js"></script>
|
||
<script src="js/jquery.ui.js?100"></script>
|
||
<script src="js/mi.js"></script>
|
||
<link rel="stylesheet" href="css/bkstyle.css?101"/>
|
||
<link rel="stylesheet" href="css/mi.css"/>
|
||
<style>
|
||
.row {
|
||
font-family: Tahoma, sans-serif;
|
||
font-size: 13px;
|
||
}
|
||
</style>
|
||
<script>
|
||
function addCountItems(name, txt) {
|
||
new miDialog({title: 'Купить неск. штук'}, {byu: 1}, function () {
|
||
document.location = '/shop.php?' + $.param(this.data);
|
||
},
|
||
$('<div style="text-align: center;"><b>' + txt + '</b></div>').append(miDialog._oneInput({
|
||
name: 'count',
|
||
onkeyup: 'return proverka(this);',
|
||
onchange: 'return proverka(this);'
|
||
}), miDialog._hiddenInput({name: 'set', value: name})), {width: 250});
|
||
}
|
||
|
||
function proverka(input) {
|
||
input.value = input.value.replace(/[^\d]/g, '');
|
||
}
|
||
|
||
function leave() {
|
||
top.frames['main'].location = 'city.php?cp'
|
||
}
|
||
</script>
|
||
</head>
|
||
<body>
|
||
<h1>Государственный магазин</h1>
|
||
<a href=# onclick=leave()> ← выйти на Центральную площадь</a>
|
||
<TABLE border=0 width=100% cellspacing="0" cellpadding="4">
|
||
<TR>
|
||
<TD valign=top align=left>
|
||
<!--Магазин-->
|
||
<TABLE border=0 width=100% cellspacing="0" cellpadding="0" bgcolor="#A5A5A5">
|
||
<TR>
|
||
<TD align=center>
|
||
Отдел "<?= $shopItemType ?>"
|
||
</TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>
|
||
<TABLE BORDER=0 WIDTH=100% CELLSPACING="1" CELLPADDING="2" BGCOLOR="#A5A5A5">
|
||
<?php
|
||
if ($_REQUEST['sale']) {
|
||
// Выбираем всё потому что эту выборку потом использует showitem();
|
||
$data = db::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);
|
||
while ($row = $data->fetch_assoc()) {
|
||
$row['count'] = 1;
|
||
if ($i == 0) {
|
||
$i = 1;
|
||
$color = '#C7C7C7';
|
||
} else {
|
||
$i = 0;
|
||
$color = '#D5D5D5';
|
||
}
|
||
|
||
$price = $row['cost'] * 1;
|
||
if ($data['koll']) {
|
||
$price *= $data['koll'];
|
||
}
|
||
if ($row['type'] == 12) {
|
||
$allcost = round($price * (1 - $row['duration'] / $row['maxdur']), 2);
|
||
} 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);
|
||
}
|
||
?>
|
||
<tr bgcolor="<?= $color ?>">
|
||
<td align=center style='width: 150px;'>
|
||
<img src="i/sh/<?= $row['img'] ?>" border=0>
|
||
<br><a href="shop.php?sellitem=<?= $row['id'] ?>&sid=&sale=1">продать
|
||
за <?= $allcost ?></a>
|
||
</td>
|
||
<td valign=top class="row">
|
||
<?php showitem($row); ?>
|
||
</td>
|
||
</tr>
|
||
|
||
<?php
|
||
}
|
||
} else {
|
||
$data = db::c()->query('SELECT `id`, `img`, `name` FROM `shop` WHERE `count` > 0 AND `razdel` = ?i ORDER by `nlevel` ASC, `id` ASC', $shopItemTypeNumber);
|
||
while ($row = $data->fetch_assoc()) {
|
||
if ($i == 0) {
|
||
$i = 1;
|
||
$color = '#C7C7C7';
|
||
} else {
|
||
$i = 0;
|
||
$color = '#D5D5D5';
|
||
}
|
||
?>
|
||
<tr bgcolor="<?= $color ?>">
|
||
<td align=center style='width: 150px;'>
|
||
<img src="i/sh/<?= $row['img'] ?>" border=0>
|
||
<br>
|
||
<a href="shop.php?otdel=<?= $_GET['otdel'] ?>&set=<?= $row['id'] ?>&rnd=<?= mt_rand() ?>">купить</a>
|
||
<IMG SRC="i/up.gif" WIDTH=11 HEIGHT=11 BORDER=0 ALT="Купить несколько штук"
|
||
style="cursor:hand"
|
||
onclick="addCountItems('<?= $row['id'] ?>', '<?= $row['name'] ?>')">
|
||
</td>
|
||
<td valign=top>
|
||
<?= show_shop_items($row['id']) ?>
|
||
</td>
|
||
</tr>
|
||
<?php
|
||
}
|
||
}
|
||
?>
|
||
</TABLE>
|
||
</TD>
|
||
</TR>
|
||
</TABLE>
|
||
</TD>
|
||
<TD valign=top width=280>
|
||
<B>Масса всех ваших вещей: <?= $itemWeight['m'] ?>/<?= get_meshok() ?>
|
||
<BR>У вас в наличии: <span style="color: #339900;"><?= $user['money'] ?></span> кр.</B>
|
||
<hr>
|
||
<INPUT TYPE="submit" value="Продать вещи" name="sale"><BR><br/>
|
||
<dl>
|
||
<dt><b>Оружие:</b></dt>
|
||
<dd><a href="shop.php?otdel=1&rnd=<?= mt_rand() ?>">кастеты,ножи</a></dd>
|
||
<dd><a href="shop.php?otdel=11&rnd=<?= mt_rand() ?>">топоры</a></dd>
|
||
<dd><a href="shop.php?otdel=12&rnd=<?= mt_rand() ?>">дубины,булавы</a></dd>
|
||
<dd><a href="shop.php?otdel=13&rnd=<?= mt_rand() ?>">мечи</a></dd>
|
||
<dt><b>Одежда:</b></dt>
|
||
<dd><a href="shop.php?otdel=24&rnd=<?= mt_rand() ?>">шлемы</a></dd>
|
||
<dd><a href="shop.php?otdel=23&rnd=<?= mt_rand() ?>">тяжелая броня</a></dd>
|
||
<dd><a href="shop.php?otdel=22&rnd=<?= mt_rand() ?>">легкая броня</a></dd>
|
||
<dd><a href="shop.php?otdel=3&rnd=<?= mt_rand() ?>">щиты</a></dd>
|
||
<dd><a href="shop.php?otdel=21&rnd=<?= mt_rand() ?>">перчатки</a></dd>
|
||
<dd><a href="shop.php?otdel=2&rnd=<?= mt_rand() ?>">сапоги</a></dd>
|
||
<dt><b>Ювелирные товары:</b></dt>
|
||
<dd><a href="shop.php?otdel=4&rnd=<?= mt_rand() ?>">серьги</a></dd>
|
||
<dd><a href="shop.php?otdel=41&rnd=<?= mt_rand() ?>">ожерелья</a></dd>
|
||
<dd><a href="shop.php?otdel=42&rnd=<?= mt_rand() ?>">кольца</a></dd>
|
||
<dt><b>Магия:</b></dt>
|
||
<dd><a href="shop.php?otdel=51&rnd=<?= mt_rand() ?>">боевые</a></dd>
|
||
<dd><a href="shop.php?otdel=5&rnd=<?= mt_rand() ?>">разные</a></dd>
|
||
<dt><b>Разное:</b></dt>
|
||
<dd><a href="shop.php?otdel=6&rnd=<?= mt_rand() ?>">амуниция</a></dd>
|
||
</dl>
|
||
<div id="hint3" class="ahint"></div>
|
||
</TD>
|
||
</TR>
|
||
</TABLE>
|
||
</BODY>
|
||
</HTML>
|