battles/shop.php

380 lines
17 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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 `ashop` 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>