battles/repair.php

507 lines
25 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
session_start();
if ($_SESSION['uid'] == null) header("Location: index.php");
require_once("functions.php");
$d = db::c()->query('SELECT SUM(`massa`) FROM `inventory` WHERE `dressed` = 0 AND `owner` = ?i', $_SESSION['uid'])->fetch_assoc();
if ($user['room'] != 23) {
header("Location: main.php");
die();
}
if ($user['battle'] != 0) {
header('location: fbattle.php');
die();
}
// Гравировка 30 кред. Максимум 32 символа.
if (input::post('gravirovka_text') AND input::post('itemId')) {
if (30 <= $user['money']) {
if (33 > iconv_strlen(input::post('gravirovka_text'))) {
db::c()->query('UPDATE `inventory` SET `text` = "?s" WHERE `dressed` = 0 AND `setsale` = 0 AND `owner` = ?i AND `id` = ?i', input::post('gravirovka_text'), $_SESSION['uid'], input::post('itemId'));
db::c()->query('UPDATE `users` SET `money` = `money` - 30 WHERE `id` = ?i', $_SESSION['uid']);
$status = 'Гравировка добавлена!';
} else $status = 'Превышен лимит в 32 символа!';
} else $status = 'Недостаточно денег!';
}
// Снять гравировку.
if (input::post('gravirovka_remove')) {
if (30 <= $user['money']) {
db::c()->query('UPDATE `inventory` SET `text` = ?n WHERE `dressed` = 0 AND `setsale` = 0 AND `id` = ?i AND `owner` = ?i', null, input::post('gravirovka_remove'), $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `money` = `money` - 30 WHERE `id` = ?i', $_SESSION['uid']);
$status = 'Гравировка удалена!';
} else $status = 'Недостаточно денег!';
}
// Ремонт 0,5 кред за единицу.
if (input::post('action') == 'repair' AND input::post('itemId')) {
$q = db::c()->query('SELECT `name`, `duration` FROM `inventory` WHERE id = ?i', input::post('itemId'))->fetch_assoc();
if (ceil($q['duration'] / 2) < $user['money']) {
db::c()->query('UPDATE `inventory` SET `maxdur` = `maxdur` - 1, `duration` = 0 WHERE `dressed` = 0 AND `setsale` = 0 AND `id` = ?i AND `owner` = ?i', input::post('itemId'), $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', ceil($q['duration'] / 2), $_SESSION['uid']);
addToDelo('Отремонтирован предмет «' . $q['name'] . '» id:(' . input::post('itemId') . ') за ' . ceil($q['duration'] / 2) . ' кр.');
$status = 'Предмет отремонтирован!';
} else $status = 'Недостаточно денег!';
}
// Перезарядка магии
if ($_GET['it']) {
$row = mysql_fetch_array(mysql_query("SELECT * FROM `inventory` WHERE `owner` = '{$user['id']}' AND `dressed` = 0 AND `includemagicmax` > 0 AND `id` = '{$_GET['it']}' LIMIT 1;"));
if ($user['money'] < $row['includemagiccost'] && $row['includemagicdex'] == 0) {
$err = "<font color=red><b>У вас не хватает денег на перезарядку.</b></font>";
} else {
if ($row['includemagicuses'] <= 1) {
$onecost = $row['includemagiccost'];
$err = "<font color=red><b>Мы сожалеем, свиток исчерпал все свои ресурсы, и мы уже не можем его перезарядить.</b></font>";
mysql_query("UPDATE `users` set `money` = `money`- '" . ($row['includemagiccost']) . "' WHERE id = {$user['id']}");
mysql_query("INSERT INTO `delo` (`id` , `author` ,`pers`, `text`, `type`, `date`) VALUES ('','0','{$user['id']}','Перезаряжена магия \"" . $row['name'] . "\" id:(cap" . $row['id'] . ") [" . $newduration . "/" . $row['maxdur'] . "] у \"" . $user['login'] . "\" за " . round($onecost, 2) . " кр. ',1,'" . time() . "');");
mysql_query("UPDATE `inventory` SET `includemagic` = '', `includemagicdex` = '', `includemagicmax` = '', `includemagicname` = '', `includemagicuses` = '', `includemagiccost` = '' WHERE `id` = '{$_GET['it']}' LIMIT 1;");
} else {
$onecost = $row['includemagiccost'];
$err = "<font color=red><b>Магия успешно перезаряжена.</b></font>";
mysql_query("UPDATE `users` set `money` = `money`- '" . ($row['includemagiccost']) . "' WHERE id = {$user['id']}");
mysql_query("INSERT INTO `delo` (`id` , `author` ,`pers`, `text`, `type`, `date`) VALUES ('','0','{$user['id']}','Перезаряжена магия \"" . $row['name'] . "\" id:(cap" . $row['id'] . ") [" . $newduration . "/" . $row['maxdur'] . "] у \"" . $user['login'] . "\" за " . round($onecost, 2) . " кр. ',1,'" . time() . "');");
mysql_query("UPDATE `inventory` SET `includemagicdex` = `includemagicmax`, `includemagicuses` = `includemagicuses`-1 WHERE `id` = '{$_GET['it']}' LIMIT 1;");
}
}
}
// Модификация предмета
if ($_GET['mf']) {
$row = mysql_fetch_array(mysql_query("SELECT * FROM `inventory` WHERE `type` < 12 AND `type` != 3 AND `owner` = '{$_SESSION['uid']}' AND `dressed` = 0 AND `id` = '{$_GET['mf']}' AND `name` NOT LIKE '% (мф)%' LIMIT 1;"));
if ($user['money'] < $row['cost'] OR !$row) {
$err = "<font color=red><b>У вас не хватает денег на модификацию.</b></font>";
} else {
srand(make_seed());
$type = rand(1, 4);
$mfintel = round($user['intel'] / 5 - 10);
if ($mfintel > -1) {
$mfintel = -1;
}
$statintel = round($user['intel'] / 25 - 2);
if ($statintel > -1) {
$statintel = -1;
}
$nstatintel = round(2 - $user['intel'] / 25);
if ($nstatintel < 1) {
$statintel = 1;
}
srand(make_seed());
$mf1 = rand($mfintel, 10);
srand(make_seed());
$mf2 = rand($mfintel, 10);
srand(make_seed());
$st1 = rand($statintel, 2);
srand(make_seed());
$st2 = rand(-2, $nstatintel);
srand(make_seed());
$min = rand($statintel, 2);
srand(make_seed());
$max = rand($statintel, 4);
switch ($type) {
case 1:
// крит
$mfkrit = $mf1;
$mfantiuvorot = $mf2;
$inta = $st1;
$hp = rand(0, 15);
$ninta = $st2;
break;
case 2:
// ловкость
$mfuvorot = $mf1;
$mfantikrit = $mf2;
$lovk = $st1;
$hp = rand(1, 15);
$nlovk = $st2;
break;
case 3:
// сила
$mfminu = $min;
$mfmaxu = $max;
$sila = $st1;
$hp = rand(6, 20);
$nsila = $st2;
$mfantikrit = $mf2;
break;
case 4:
// вынос
$nvinos = $st2;
$mfantikrit = $mf1;
$bron1 = rand(0, 3);
$bron2 = rand(0, 3);
$bron3 = rand(0, 3);
$bron4 = rand(0, 3);
$hp = rand(0, 15);
break;
}
if (mysql_query("UPDATE `inventory` SET
`ghp` = `ghp`+'" . (int)$hp . "',
`bron1` = `bron1`+'" . (int)$bron1 . "',
`bron2` = `bron2`+'" . (int)$bron2 . "',
`bron3` = `bron3`+'" . (int)$bron3 . "',
`bron4` = `bron4`+'" . (int)$bron4 . "',
`mfkrit` = `mfkrit`+'" . (int)$mfkrit . "',
`mfakrit` = `mfakrit`+'" . (int)$mfantikrit . "',
`mfuvorot` = `mfuvorot`+'" . (int)$mfuvorot . "',
`mfauvorot` = `mfauvorot`+'" . (int)$mfantiuvorot . "',
`gsila` = `gsila`+'" . (int)$sila . "',
`glovk` = `glovk`+'" . (int)$lovk . "',
`ginta` = `ginta`+'" . (int)$inta . "',
`nsila` = `nsila`+'" . (int)$nsila . "',
`nlovk` = `nlovk`+'" . (int)$nlovk . "',
`ninta` = `ninta`+'" . (int)$ninta . "',
`nvinos` = `nvinos`+'" . (int)$nvinos . "',
`cost` = `cost` + '" . round($row['cost'] / 2) . "',
`name` = CONCAT(`name`, ' (мф)')
WHERE `id` = '{$_GET['mf']}' LIMIT 1;")) {
//echo $row['cost'];
mysql_query("UPDATE `users` set `money` = `money`- '" . ($row['cost']) . "' WHERE id = {$_SESSION['uid']}");
mysql_query("INSERT INTO `delo` (`id` , `author` ,`pers`, `text`, `type`, `date`) VALUES ('','0','{$_SESSION['uid']}','Моцифицирована вещь \"" . $row['name'] . "\" id:(cap" . $row['id'] . ") [" . $newduration . "/" . $row['maxdur'] . "] у \"" . $user['login'] . "\" за " . round($onecost, 2) . " кр. ',1,'" . time() . "');");
$err = "<font color=red><b>Вещь модифицирована.</b></font>";
}
}
}
// Подгонка предмета
if ($_GET['podgon']) {
$row = mysql_fetch_array(mysql_query("SELECT * FROM `inventory` WHERE `type` < 12 AND `type` != 3 AND `owner` = '{$user['id']}' AND `dressed` = 0 AND `id` = '{$_GET['podgon']}' AND `modif`='1' AND `podgon`<'5' LIMIT 1;"));
if ($row['point'] > 0) {
$cost = round(($row['point'] / 2), 0);
} else {
$cost = round(($row['cost'] / 2), 0);
}
if ($user['money'] < $cost || !$row) {
$err = "<font color=red><b>У вас не хватает денег на подгонку.</b></font>";
} else {
$kol_mf = round($row['mfkrit'] + $row['mfakrit'] + $row['mfuvorot'] + $row['mfauvorot'], 0);
if ($row['podgon'] == 0) {
if ($row['point'] > 0) {
$new_cena = round(($row['point'] * 20) / 100, 0);
$sql = '`point` = `point`+' . $new_cena;
$user['doblest'] -= $cost;
$usql = '`doblest` = "' . $user['doblest'] . '"';
$cost_t = 'реп';
} else {
$new_cena = round(($row['cost'] * 20) / 100, 0);
$sql = '`cost` = `cost`+' . $new_cena;
$user['money'] -= $cost;
$usql = '`money` = "' . $user['money'] . '"';
$cost_t = 'кр';
}
$gmf = 2;
} elseif ($row['podgon'] == 1) {
if ($row['point'] > 0) {
$new_cena = round(($row['point'] * 20) / 100, 0);
$sql = '`point` = `point`+' . $new_cena;
$user['doblest'] -= $cost;
$usql = '`doblest` = "' . $user['doblest'] . '"';
$cost_t = 'реп';
} else {
$new_cena = round(($row['cost'] * 20) / 100, 0);
$sql = '`cost` = `cost`+' . $new_cena;
$user['money'] -= $cost;
$usql = '`money` = "' . $user['money'] . '"';
$cost_t = 'кр';
}
$gmf = 3;
} elseif ($row['podgon'] == 2) {
if ($row['point'] > 0) {
$new_cena = round(($row['point'] * 40) / 100, 0);
$sql = '`point` = `point`+' . $new_cena;
$user['doblest'] -= $cost;
$usql = '`doblest` = "' . $user['doblest'] . '"';
$cost_t = 'реп';
} else {
$new_cena = round(($row['cost'] * 40) / 100, 0);
$sql = '`cost` = `cost`+' . $new_cena;
$user['money'] -= $cost;
$usql = '`money` = "' . $user['money'] . '"';
$cost_t = 'кр';
}
$gmf = 4;
} elseif ($row['podgon'] == 3) {
if ($row['point'] > 0) {
$new_cena = round(($row['point'] * 70) / 100, 0);
$sql = '`point` = `point`+' . $new_cena;
$user['doblest'] -= $cost;
$usql = '`doblest` = "' . $user['doblest'] . '"';
$cost_t = 'реп';
} else {
$new_cena = round(($row['cost'] * 70) / 100, 0);
$sql = '`cost` = `cost`+' . $new_cena;
$user['money'] -= $cost;
$usql = '`money` = "' . $user['money'] . '"';
$cost_t = 'кр';
}
$gmf = 6;
} elseif ($row['podgon'] == 4) {
if ($row['point'] > 0) {
$new_cena = round(($row['point'] * 100) / 100, 0);
$sql = '`point` = `point`+' . $new_cena;
$user['doblest'] -= $cost;
$usql = '`doblest` = "' . $user['doblest'] . '"';
$cost_t = 'реп';
} else {
$new_cena = round(($row['cost'] * 100) / 100, 0);
$sql = '`cost` = `cost`+' . $new_cena;
$user['money'] -= $cost;
$usql = '`money` = "' . $user['money'] . '"';
$cost_t = 'кр';
}
$gmf = 10;
}
if ($row['mfkrit'] == 0 && $row['mfakrit'] == 0 && $row['mfuvorot'] == 0 && $row['mfauvorot'] == 0) {
$gmf = 0;
}
if (mysql_query("UPDATE `inventory` SET
`free_mf` = `free_mf`+'" . (int)$gmf . "',
$sql,
`podgon`=`podgon`+'1'
WHERE `id` = '{$_GET['podgon']}' LIMIT 1")) {
mysql_query("UPDATE `users` set $usql WHERE id = {$user['id']}");
mysql_query("INSERT INTO `delo` (`author` ,`pers`, `text`, `type`, `date`) VALUES ('0','{$user['id']}','Подогнана вещь \"" . $row['name'] . "\" id:(cap" . $row['id'] . ") [" . $newduration . "/" . $row['maxdur'] . "] у \"" . $user['login'] . "\" за " . round($cost, 2) . " " . $cost_t . ". ',1,'" . time() . "');");
$err = "<font color=red><b>Вещь подогнана.</b></font>";
}
}
}
if (input::post('goto') == 'remont') {
$remont_query = db::c()->query('SELECT `id`,`name`,`img`,`duration`,`maxdur` FROM `inventory` WHERE `type` < 12 AND `dressed` = 0 AND `isrep` = 1 AND `setsale` = 0 AND `duration` > 0 AND `owner` = ?i ORDER BY `update` DESC', $_SESSION['uid']);
}
if (input::post('goto') == 'gravirovka') {
$gravirovka_query = db::c()->query('SELECT `id`,`name`,`img`,`text` FROM `inventory` WHERE `owner` = ?i AND `dressed` = 0 AND `type` = 3 AND `name` NOT LIKE "?S" AND `setsale` = 0 OR `text` <> "?s" AND `owner` = ?i AND `dressed` = 0 AND `setsale` = 0 ORDER by `update` DESC', $_SESSION['uid'], '%Букет%', '', $_SESSION['uid']);
}
?>
<HTML>
<HEAD>
<meta charset="utf-8">
<link rel=stylesheet href="css/main.css">
<link href="css/secondary.css" rel="stylesheet"/>
</HEAD>
<body>
<h1>Ремонтная мастерская</h1>
<a href=# onclick=leave()> ← выйти из мастерской</a><br>
<div class="appblock appblock-main">
<span class="legend">Информация</span>
<span class="wrap">Кредиты<span class="num"><?= $user['money'] ?></span></span>
<span class="wrap">Масса вещей<span class="num"><?= getItemsMassaInfo() ?></span></span>
</div>
<div class="appblock">
<span class="legend">Зал ремонта</span>
<form method="post">
<input type="hidden" name="goto" value="remont">
<input type="submit" value="Войти">
</form>
<span class="wrap">Починка поврежденных предметов. В процессе ремонта состояние предмета
уменьшится на единицу!</span>
</div>
<div class="appblock">
<span class="legend">Зал гравировки</span>
<form method="post">
<input type="hidden" name="goto" value="gravirovka">
<input type="submit" value="Войти">
</form>
<span class="wrap">Нанесение надписей на оружие и удаление надписей из любого обмундирования.
Максимум 32 символа!</span>
</div>
<div class="appblock">
<span class="legend">Зал зачарований</span>
<form method="post">
<input type="hidden" name="goto" value="magic">
<input type="submit" value="Войти">
</form>
<span class="wrap">Перезарядка встроеной магии. Если в предмет встроена магия, мы поможем ее перезарядить
за умеренную плату. Учтите, ничто не вечно под луной, в том числе и магия, рано или поздно встроенный
свиток исчерпает все свои ресурсы, и мы уже не сможем его перезарядить.</span>
</div>
<div class="appblock">
<span class="legend">Зал модификаций</span>
<form method="post">
<input type="hidden" name="goto" value="modding">
<input type="submit" value="Войти">
</form>
<span class="wrap">Модификация предметов. Наши мастера помогут вам модифицировать ваши доспехи. К сожалению,
технология не позволяет повторно модифицировать вещи. Чем выше у вас интеллект, тем яснее вы сможете
объяснить мастерам желаемый результат. Результат может быть непредсказуем!</span>
</div>
<div class="appblock">
<span class="legend">Экспериментальный цех</span>
<form method="post">
<input type="hidden" name="goto" value="modding">
<input type="submit" value="Войти">
</form>
<span class="wrap">Подгонка предметов. И прочие нерегулярные штуки.</span>
</div>
<div style="clear: both;">
<?php if (isset($status)): ?>
<span class="wrap"><?= $status ?></span>
<?php endif; ?>
</div>
<?php if (input::post('goto') == 'remont'):
while ($row = $remont_query->fetch_assoc()): ?>
<div class="appblock">
<span class="legend"><?= $row['name'] ?></span>
<span class="wrap">Состояние предмета<span class="num"><?= $row['duration'] ?>/<?= $row['maxdur'] ?></span></span>
<span class="wrap">Стоимость услуги<span class="num"><?= ceil($row['duration'] / 2) ?></span></span>
<div style="text-align: center">
<img src="i/sh/<?= $row['img'] ?>">
<form method="post">
<input type="hidden" name="itemId" value="<?= $row['id'] ?>">
<input type="hidden" name="action" value="repair">
<input type="submit" value="Ремонт">
</form>
</div>
</div>
<?php endwhile; endif; ?>
<?php if (input::post('goto') == 'gravirovka'):
while ($row = $gravirovka_query->fetch_assoc()): ?>
<div class="appblock">
<span class="legend"><?= $row['name'] ?></span>
<span class="wrap">Стоимость услуги<span class="num">30</span></span>
<div style="text-align: center">
<?php if (empty($row['text'])): ?>
<form method="post" id="gravirovka">
<input maxlength="32" placeholder="Текст гравировки" name="gravirovka_text">
<br><img src="i/sh/<?= $row['img'] ?>"><br>
<input type="hidden" name="itemId" value="<?= $row['id'] ?>">
<input type="submit" value="Добавить надпись">
</form>
<?php else: ?>
<form method="post" id="gravirovka">
<input value="<?= $row['text'] ?>" readonly title>
<br><img src="i/sh/<?= $row['img'] ?>"><br>
<input type="hidden" name="gravirovka_remove" value="<?= $row['id'] ?>">
<input type="submit" value="Удалить надпись">
</form>
<?php endif; ?>
</div>
</div>
<?php endwhile; endif; ?>
<TABLE width=100%>
<TR>
<INPUT TYPE="hidden" name="sid" value="">
<INPUT TYPE="hidden" name="id" value="1">
<TD valign=top align=left>
<TABLE WIDTH=100% BGCOLOR="#A5A5A5">
<?php
if (input::post('goto') == 'magic') {
$data = mysql_query("SELECT * FROM `inventory` WHERE `owner` = '{$user['id']}' AND `dressed` = 0 AND `includemagicmax` > 0 AND `setsale`=0 ORDER by `update` DESC; ");
while ($row = mysql_fetch_array($data)) {
$row['count'] = 1;
if ($i == 0) {
$i = 1;
$color = '#C7C7C7';
} else {
$i = 0;
$color = '#D5D5D5';
}
?>
<TR bgcolor=<?= $color ?>>
<TD align=center><IMG SRC="i/sh/<?= $row['img'] ?>" BORDER=0>";
<BR>
<small>
<?
if ($row['includemagicdex'] == 0) {
?><A HREF="?razdel=2&it=<?= $row['id'] ?>">Перезарядить
за <?= $row['includemagiccost'] ?> кр.</A><BR><?
} else {
echo 'Не нуждается в перезарядке';
}
?>
</small>
</TD>
<TD valign=top><?= showitem($row) ?></TD>
</TR>
<?php
}
}
if (input::post('goto') == 'modding') {
$data = mysql_query("SELECT * FROM `inventory` WHERE `type` < 12 AND `type` != 3 AND `owner` = '{$_SESSION['uid']}' AND `dressed` = 0 AND `name` NOT LIKE '% (мф)%' AND `name` NOT LIKE '%Букет%' AND `setsale`=0 ORDER by `update` DESC; ");
while ($row = mysql_fetch_array($data)) {
$row['count'] = 1;
if ($i == 0) {
$i = 1;
$color = '#C7C7C7';
} else {
$i = 0;
$color = '#D5D5D5';
}
?>
<TR bgcolor=<?= $color ?>>
<TD align=center><IMG SRC="i/sh/<?= $row['img'] ?>" BORDER=0>";
<BR>
<small>
<A HREF="?razdel=3&mf=<?= $row['id'] ?>"
onClick="if(!confirm('Вы действительно хотите модифицировать эту вещь?')){ return false;}">Модифицировать
за <?= $row['cost'] ?> кр.</A><BR>
</small>
</TD>
<TD valign=top><?= showitem($row) ?></TD>
</TR>
<?php
}
}
if (input::post('goto') == 'podgon') {
$data = mysql_query("SELECT * FROM `inventory` WHERE `type` < 12 AND `type` != 3 AND `owner` = '{$user['id']}' AND `dressed` = 0 AND `modif`='1' AND `podgon`<'5' AND `name` NOT LIKE '%Букет%' AND `setsale`=0 ORDER by `update` DESC; ");
while ($row = mysql_fetch_array($data)) {
$row['count'] = 1;
if ($i == 0) {
$i = 1;
$color = '#C7C7C7';
} else {
$i = 0;
$color = '#D5D5D5';
}
?>
<TR bgcolor=<?= $color ?>>
<TD align=center><IMG SRC="i/sh/<?= $row['img'] ?>" BORDER=0>";
<BR>
<small>
<?
if ($row['point'] > 0) {
$babki = round(($row['point'] / 2), 0);
$cost_t = 'Реп';
} else {
$babki = round(($row['cost'] / 2), 0);
$cost_t = 'Кр';
}
?>
<A HREF="?razdel=4&podgon=<?= $row['id'] ?>"
onclick="if(!confirm('Вы действительно хотите подогнать эту вещь?')){ return false;}">Подогнать
за <?= $babki ?> <?= $cost_t ?>.</A><BR>
</small>
</TD>
<TD valign=top><?= showitem($row) ?></TD>
</TR>
<?php
}
}
?>
</TABLE>
</TD>
</TR>
</TABLE>
<script>
function leave() {
top.frames['main'].location = 'city.php?cp'
}
</script>
</body>
</html>