Чистка оптимизация и унификация кода.

This commit is contained in:
lopar 2020-08-30 02:21:22 +03:00
parent 8a2dfea36b
commit 427149b90e
16 changed files with 2119 additions and 2019 deletions

View File

@ -202,10 +202,6 @@ $aligns = db::c()->query('SELECT `img`,`align`,`name` FROM `aligns` ORDER BY `al
<legend><a href='#' onclick='show("sk3")'>Кланы</a></legend> <legend><a href='#' onclick='show("sk3")'>Кланы</a></legend>
<div id=sk3 style='display:none;'> <div id=sk3 style='display:none;'>
<?php <?php
// $cl_reg_ar=mysql_query("SELECT * FROM `reg_klan` LIMIT 1");
// $cl_reg_curr=mysql_fetch_assoc($cl_reg_ar);
// $cl_reg_ar = $db->query('SELECT * FROM `reg_klan` LIMIT 1');
$cl_reg_curr = db::c()->query('SELECT * FROM `reg_klan` LIMIT 1')->fetch_assoc(); $cl_reg_curr = db::c()->query('SELECT * FROM `reg_klan` LIMIT 1')->fetch_assoc();
// Clan adder : add clan // Clan adder : add clan
if ($_POST['clan_reg'] == 'add_clan') { if ($_POST['clan_reg'] == 'add_clan') {
@ -213,67 +209,42 @@ $aligns = db::c()->query('SELECT `img`,`align`,`name` FROM `aligns` ORDER BY `al
$ser_cl_rights[$cl_reg_curr['owner']][0] = 1; $ser_cl_rights[$cl_reg_curr['owner']][0] = 1;
$ser_cl_rights[$cl_reg_curr['owner']][1] = 1; $ser_cl_rights[$cl_reg_curr['owner']][1] = 1;
$cl_rights = serialize($ser_cl_rights); $cl_rights = serialize($ser_cl_rights);
// $add_clan = mysql_query('
// INSERT INTO `clans` (`short`, `name`, `descr`, `glava`, `vozm`, `align`, `homepage`)
// VALUES ("'.$cl_reg_curr['abr'].'", "'.$cl_reg_curr['name'].'", "'.$cl_reg_curr['descr'].'",
// "'.$cl_reg_curr['owner'].'", "'.$cl_rights.'", "'.$cl_reg_curr['align'].'", "'.$cl_reg_curr['http'].'")
// ');
$add_clan = db::c()->query('INSERT INTO `clans` (`short`, `name`, `descr`, `glava`, `vozm`, `align`) VALUES ("?s","?s","?s","?s","?s",?i)', $add_clan = db::c()->query('INSERT INTO `clans` (`short`, `name`, `descr`, `glava`, `vozm`, `align`) VALUES ("?s","?s","?s","?s","?s",?i)',
$cl_reg_curr['abbr'], $cl_reg_curr['name'], $cl_reg_curr['descr'], $cl_reg_curr['owner'], $cl_rights, $cl_reg_curr['align']); $cl_reg_curr['abbr'], $cl_reg_curr['name'], $cl_reg_curr['descr'], $cl_reg_curr['owner'], $cl_rights, $cl_reg_curr['align']);
if ($add_clan) { if ($add_clan) {
echo("<p>Заявка на клан <b>" . $cl_reg_curr['name'] . "</b> подтверждена успешно!</p>"); echo "<p>Заявка на клан <b>" . $cl_reg_curr['name'] . "</b> подтверждена успешно!</p>";
// $cl_reg_tmp=mysql_fetch_assoc(mysql_query("select * from clans where name='".$cl_reg_curr['name']."'"));
// mysql_query("delete from reg_klan where id='".$cl_reg_curr['id']."'");
// $clan_msg_rec_q = $db->query('SELECT FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner']);
// $clan_msg_rec=mysql_fetch_assoc(mysql_query("SELECT * FROM USERS where id='".$cl_reg_curr['owner']."'"));
// mysql_query("update users set align='".$cl_reg_curr['align']."',klan='".$cl_reg_tmp['id']."',status='<font color=#008080><b>Глава клана</b></font>' where id='".$cl_reg_curr['owner']."'");
db::c()->query('DELETE FROM `reg_klan` WHERE `id` = ?i', $cl_reg_curr['id']); db::c()->query('DELETE FROM `reg_klan` WHERE `id` = ?i', $cl_reg_curr['id']);
$cl_reg_tmp = db::c()->query('SELECT `id` FROM `clans` WHERE `name` = "?s"', $cl_reg_curr['name'])->fetch_assoc(); $cl_reg_tmp = db::c()->query('SELECT `id` FROM `clans` WHERE `name` = "?s"', $cl_reg_curr['name'])->fetch_assoc();
$clan_msg_rec = db::c()->query('SELECT FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner'])->fetch_assoc(); $clan_msg_rec = db::c()->query('SELECT login FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner'])->fetch_assoc();
db::c()->query('UPDATE `users` SET `align` = ?i, `klan` = ?i, `status` = "?s" WHERE `id` = ?i', $cl_reg_curr['align'], $cl_reg_tmp['id'], "<b style='color:#008080'>Глава клана</b>", $cl_reg_curr['owner']); db::c()->query('UPDATE `users` SET `align` = ?i, `klan` = ?i, `status` = "?s" WHERE `id` = ?i', $cl_reg_curr['align'], $cl_reg_tmp['id'], "<b style='color:#008080'>Глава клана</b>", $cl_reg_curr['owner']);
$_POST['grn'] = $clan_msg_rec['login']; $_POST['grn'] = $clan_msg_rec['login'];
$_POST['gr'] = "Ваша заявка на создание клана " . $cl_reg_curr['name'] . " принята!"; $_POST['gr'] = "Ваша заявка на создание клана " . $cl_reg_curr['name'] . " принята!";
} else echo("Ошибка подтверждения регистрации!"); } else {
echo "Ошибка подтверждения регистрации!";
}
} elseif ($_POST['clan_reg'] == 'not_add_clan') { /* Clan ader : don't add clan*/ } elseif ($_POST['clan_reg'] == 'not_add_clan') { /* Clan ader : don't add clan*/
echo("<p>Заявка на клан <b>" . $cl_reg_curr['name'] . "</b> отклонена!</p>"); echo "<p>Заявка на клан <b>" . $cl_reg_curr['name'] . "</b> отклонена!</p>";
// mysql_query("delete from reg_klan where id='".$cl_reg_curr['id']."'");
// $clan_msg_rec=mysql_fetch_assoc(mysql_query("SELECT * FROM USERS where id='".$cl_reg_curr['owner']."'"));
db::c()->query('DELETE FROM `reg_klan` WHERE `id` = ?i', $cl_reg_curr['id']); db::c()->query('DELETE FROM `reg_klan` WHERE `id` = ?i', $cl_reg_curr['id']);
// $clan_msg_rec_q = $db->query('SELECT FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner']); $clan_msg_rec = db::c()->query('SELECT login FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner'])->fetch_assoc();
$clan_msg_rec = db::c()->query('SELECT FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner'])->fetch_assoc();
$_POST['grn'] = $clan_msg_rec['login']; $_POST['grn'] = $clan_msg_rec['login'];
$_POST['gr'] = "Ваша заявка на создание клана " . $cl_reg_curr['name'] . " отклонена!"; $_POST['gr'] = "Ваша заявка на создание клана " . $cl_reg_curr['name'] . " отклонена!";
// Moneyback
$clan_moneyback = 1200;
// switch($cl_reg_curr['align']) {
// case 2:$clan_moneyback=1200;break;
// case 3:$clan_moneyback=1200;break;
// case 6:$clan_moneyback=1200;break;
// };
// $temp=mysql_query("UPDATE `users` set `money` = money+'$clan_moneyback' WHERE `id` = '".$cl_reg_curr['owner']."' LIMIT 1;");
$temp = db::c()->query('UPDATE `users` SET `money` = `money` + ?i WHERE `id` = ?i LIMIT 1', $clan_moneyback, $cl_reg_curr['owner']);
// if(!($temp)) echo(mysql_error()); /*В теории сейчас в класс вшит обработчик ошибок.*/
} }
// $clan_q_base=mysql_query("select * from reg_klan");
// $clan_q=mysql_num_rows($clan_q_base);
$clan_q = db::c()->query('SELECT * FROM `reg_klan`')->getNumRows(); $clan_q = db::c()->query('SELECT * FROM `reg_klan`')->getNumRows();
// Clan adder // Clan adder
if ($clan_q) { if ($clan_q) {
echo("<p>Заявок в очереди на рассмотрение: <b>$clan_q</b></p>"); echo "<p>Заявок в очереди на рассмотрение: <b>$clan_q</b></p>";
// $clan_msg_rec=mysql_fetch_assoc(mysql_query("SELECT * FROM USERS where id='".$cl_reg_curr['owner']."'"));
// if ($_POST['clan_reg']) mysql_query("delete from reg_klan where id='".$cl_reg_curr['id']."'");
$clan_msg_rec = db::c()->query('SELECT * FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner'])->fetch_assoc(); $clan_msg_rec = db::c()->query('SELECT * FROM `users` WHERE `id` = ?i', $cl_reg_curr['owner'])->fetch_assoc();
if ($_POST['clan_reg']) db::c()->query('DELETE FROM `reg_klan` WHERE `id` = ?i', $cl_reg_curr['id']); if ($_POST['clan_reg']) {
echo("<p>Текущая заявка:</p>"); db::c()->query('DELETE FROM `reg_klan` WHERE `id` = ?i', $cl_reg_curr['id']);
}
echo "<p>Текущая заявка:</p>";
echo "<table class='adm'><tr><th>Прислал</th><th>Название</th><th>Краткое название</th><th>Сайт</th><th>Направленность</th><th>Описание</th><th>Дата/Время подачи</th></tr>"; echo "<table class='adm'><tr><th>Прислал</th><th>Название</th><th>Краткое название</th><th>Сайт</th><th>Направленность</th><th>Описание</th><th>Дата/Время подачи</th></tr>";
echo "<tr><td>{$cl_reg_curr['owner']} aka {$clan_msg_rec['login']}</td><td>{$cl_reg_curr['name']}</td><td>{$cl_reg_curr['abr']}</td><td>{$cl_reg_curr['http']}</td><td>{$cl_reg_curr['align']}</td><td>{$cl_reg_curr['descr']}</td><td>{$cl_reg_curr['date']}</td></tr>"; echo "<tr><td>{$cl_reg_curr['owner']} aka {$clan_msg_rec['login']}</td><td>{$cl_reg_curr['name']}</td><td>{$cl_reg_curr['abr']}</td><td>{$cl_reg_curr['http']}</td><td>{$cl_reg_curr['align']}</td><td>{$cl_reg_curr['descr']}</td><td>{$cl_reg_curr['date']}</td></tr>";
echo "</table>"; echo "</table>";
echo("<p><input type='radio' name='clan_reg' value='add_clan' >Подтвердить&nbsp;<br /><input type='radio' name='clan_reg' value='not_add_clan' >Отменить&nbsp;<br /><input type='submit' value='Закончить' ></p>"); echo "<p><input type='radio' name='clan_reg' value='add_clan' >Подтвердить&nbsp;<br /><input type='radio' name='clan_reg' value='not_add_clan' >Отменить&nbsp;<br /><input type='submit' value='Закончить' ></p>";
} else echo("Заявки на регистрацию кланов отсутствуют"); } else {
echo "Заявки на регистрацию кланов отсутствуют";
}
?> ?>
</div> </div>
</fieldset> </fieldset>
@ -291,7 +262,7 @@ $aligns = db::c()->query('SELECT `img`,`align`,`name` FROM `aligns` ORDER BY `al
<td><input name="name" placeholder="Название"></td> <td><input name="name" placeholder="Название"></td>
</tr> </tr>
<tr> <tr>
<td><input name="img" placeholder="Картинка"></td> <td><input name="image" placeholder="Картинка"></td>
</tr> </tr>
<tr> <tr>
<td><select name="shop"> <td><select name="shop">
@ -306,132 +277,59 @@ $aligns = db::c()->query('SELECT `img`,`align`,`name` FROM `aligns` ORDER BY `al
<td><input name=count placeholder="Количество (шт.)"></td> <td><input name=count placeholder="Количество (шт.)"></td>
</tr> </tr>
<tr> <tr>
<td><select name="type"> <td><select name="item_type">
<option value="0" selected disabled>Тип предмета</option> <option value="0" selected disabled>Тип предмета</option>
<option value="3">Оружие</option> <option value="1">Шлем</option>
<option value="11">Сапоги</option> <option value="2">Броня</option>
<option value="9">Перчатки</option> <option value="3">Поножи</option>
<option value="4">Броня</option> <option value="4">Сапоги</option>
<option value="8">Шлемы</option> <option value="5">Перчатки</option>
<option value="10">Щиты</option> <option value="6">Оружие</option>
<option value="1">Серьги</option> <option value="7">Щит</option>
<option value="2">Ожерелья</option> <option value="8">Пояс</option>
<option value="5">Кольца</option> <option value="9">Кольцо</option>
<option value="12">Заклинания</option> <option value="10">Амулет</option>
<option value="20">Расходник</option>
<option value="50">Всё остальное</option>
<option value="100">Хлам</option>
</select></td> </select></td>
</tr> </tr>
<tr> <tr>
<td><input name=massa placeholder="Масса"></td> <td><input name=weight placeholder="Масса"></td>
</tr> </tr>
<tr> <tr>
<td><input name=needident placeholder="Нужно идентифицировать">чекбокс?</td> <td><input name=durability placeholder="Макс. износ"></td>
</tr> </tr>
<tr> <tr>
<td><input name=letter placeholder="Кол-во знаков">что это?</td> <td><input name=price placeholder="Цена (кр.)"></td>
</tr>
<tr>
<td><input name=isrep placeholder="Подлежит ремонту">чекбокс?</td>
</tr>
<tr>
<td><input name=goden placeholder="Годен (дней)"></td>
</tr>
<tr>
<td><select name="razdel">
<option value="0" selected disabled>Раздел магазина</option>
<option value="1">Оружие: Кастеты, ножи</option>
<option value="11">Оружие: Топоры</option>
<option value="12">Оружие: Дубины, Булавы</option>
<option value="13">Оружие: Мечи</option>
<option disabled>--------------------</option>
<option value="2">Одежда: Сапоги</option>
<option value="21">Одежда: Перчатки</option>
<option value="22">Одежда: Броня: легкая</option>
<option value="23">Одежда: Броня: тяжелая</option>
<option value="24">Одежда: Шлемы</option>
<option value="3">Щиты</option>
<option disabled>--------------------</option>
<option value="4">Ювелирные товары: Серьги</option>
<option value="41">Ювелирные товары: Ожерелья</option>
<option value="42">Ювелирные товары: Кольца</option>
<option disabled>--------------------</option>
<option value="5">Заклинания: Нейтральные</option>
<option value="51">Заклинания: Боевые, Защитные</option>
<option value="6">Аммуниция</option>
<option disabled>--------------------</option>
<option value="7">Артефакты: Букеты</option>
</select></td>
</tr>
<tr>
<td><input name=maxdur placeholder="Макс. износ"></td>
</tr>
<tr>
<td><input name=cost placeholder="Цена (кр.)"></td>
</tr>
<tr>
<td><input name=ecost placeholder="Цена (екр.)"></td>
</tr> </tr>
</table> </table>
<table class="additem"> <table class="additem">
<th>Требования</th> <th>Требования</th>
<tr> <tr>
<td><input name=nlevel placeholder="Уровень"></td> <td><input name=need_level placeholder="Уровень"></td>
</tr> </tr>
<tr> <tr>
<td><input name=nsila placeholder="Сила"></td> <td><input name=need_strength placeholder="Сила"></td>
</tr> </tr>
<tr> <tr>
<td><input name=nlovk placeholder="Ловкость"></td> <td><input name=need_dexterity placeholder="Ловкость"></td>
</tr> </tr>
<tr> <tr>
<td><input name=ninta placeholder="Интуиция"></td> <td><input name=need_intuition placeholder="Интуиция"></td>
</tr> </tr>
<tr> <tr>
<td><input name=nvinos placeholder="Выносливость"></td> <td><input name=need_endurance placeholder="Выносливость"></td>
</tr> </tr>
<tr> <tr>
<td><input name=nintel placeholder="Интеллект"></td> <td><input name=need_intelligence placeholder="Интеллект"></td>
</tr> </tr>
<tr> <tr>
<td><input name=nmudra placeholder="Мудрость"></td> <td><input name=need_wisdom placeholder="Мудрость"></td>
</tr>
<tr>
<td><input name=nnoj placeholder="Ум.ножи"></td>
</tr>
<tr>
<td><input name=ntopor placeholder="Ум.топоры"></td>
</tr>
<tr>
<td><input name=ndubina placeholder="Ум.дубины"></td>
</tr>
<tr>
<td><input name=nmech placeholder="Ум.мечи"></td>
</tr>
<tr>
<td><input name=nalign placeholder="Склонность"></td>
</tr>
<tr>
<td><input name=nfire placeholder="Мастерство огня"></td>
</tr>
<tr>
<td><input name=nwater placeholder="Мастерство воды"></td>
</tr>
<tr>
<td><input name=nair placeholder="Мастерство воздуха"></td>
</tr>
<tr>
<td><input name=nearth placeholder="Мастерство земли"></td>
</tr>
<tr>
<td><input name=nlight placeholder="Светлая магия"></td>
</tr>
<tr>
<td><input name=ngray placeholder="Серая магия"></td>
</tr>
<tr>
<td><input name=ndark placeholder="Темная магия"></td>
</tr> </tr>
<th>Характеристики</th> <th>Характеристики</th>
<tr> <tr>
<td><input name=minu placeholder="Мин.урон"></td> <td><input name=minu placeholder="Мин.урон"></td>
@ -571,7 +469,6 @@ switch ($_POST['use']) { /* Подключаем строго тот свито
case "ct3": case "ct3":
include("../magic/ct3.php"); include("../magic/ct3.php");
break; break;
case "sleep": case "sleep":
include("../magic/sleep.php"); include("../magic/sleep.php");
break; break;
@ -605,7 +502,6 @@ switch ($_POST['use']) { /* Подключаем строго тот свито
case "ldadd": case "ldadd":
include("../magic/ldadd.php"); include("../magic/ldadd.php");
break; break;
case "attack": case "attack":
include("../magic/eattack.php"); include("../magic/eattack.php");
break; break;
@ -621,7 +517,6 @@ switch ($_POST['use']) { /* Подключаем строго тот свито
case "attackk_open": case "attackk_open":
include("../magic/attackk_open.php"); include("../magic/attackk_open.php");
break; break;
case "pal_off": case "pal_off":
include("../magic/pal_off.php"); include("../magic/pal_off.php");
break; break;
@ -672,7 +567,6 @@ switch ($_POST['use']) { /* Подключаем строго тот свито
echo "<div class=abils><span class='legend'>Абилки:</span>Пока что привязаны к общей системе. Работают выборочно.<br>"; echo "<div class=abils><span class='legend'>Абилки:</span>Пока что привязаны к общей системе. Работают выборочно.<br>";
$script_name = $magic_name = ''; $script_name = $magic_name = '';
foreach ($moj as $k => $v) { foreach ($moj as $k => $v) {
#echo $k;
switch ($k) { /* 45 скриптов на 36 умелок? Неплохо… */ switch ($k) { /* 45 скриптов на 36 умелок? Неплохо… */
case "vip": case "vip":
$script_name = "vipad"; $script_name = "vipad";
@ -856,7 +750,9 @@ foreach ($moj as $k => $v) {
break; break;
} }
# Эта строка генерирует свитки с навыком. Но нам нужен просто перечень всего… # Эта строка генерирует свитки с навыком. Но нам нужен просто перечень всего…
if ($script_name) print "<a onclick=\"$script_name('$magic_name','$k','target','target1') \" href='#'><img src='i/magic/" . $k . ".gif' title='" . $magic_name . "'></a>&nbsp;"; if ($script_name) {
print "<a onclick=\"$script_name('$magic_name','$k','target','target1') \" href='#'><img src='i/magic/" . $k . ".gif' title='" . $magic_name . "'></a>&nbsp;";
}
} }
echo "</div>"; echo "</div>";
?> ?>
@ -872,31 +768,6 @@ echo "</div>";
<button onclick="vipad('Test','0','0','0')">vipad</button> <button onclick="vipad('Test','0','0','0')">vipad</button>
<button onclick="runmagicgold('Test','0','0','0')">new window test</button> <button onclick="runmagicgold('Test','0','0','0')">new window test</button>
<form method='post'>
<legend>Выдать чёртов ВИП
<small>и переписать функцию выдачи как будет время</small>
</legend>
<input name="target">
<select name="vip_type">
<option selected disabled>Тип</option>
<option value=1>Silver</option>
<option value=2>Gold</option>
<option value=3>Platinum</option>
</select>
<select name="time">
<option selected disabled>Срок</option>
<option value="1">1 Месяц</option>
<option value="2">2 Месяца</option>
<option value="3">3 Месяца</option>
<option value="4">4 Месяца</option>
<option value="5">5 Месяцев</option>
<option value="6">6 Месяцев</option>
<option value="99999999">Бесконечно</option>
</select>
<input type="hidden" name="use" value="vip">
<input type="submit">
</form>
<form method='post'> <form method='post'>
<legend>Добавить в «дело» игрока заметку о нарушении правил, прокрутке и пр.</legend> <legend>Добавить в «дело» игрока заметку о нарушении правил, прокрутке и пр.</legend>
<input name='ldnick' placeholder='Логин'> <input name='ldtext' size='50' placeholder='Сообщение'> <input name='ldnick' placeholder='Логин'> <input name='ldtext' size='50' placeholder='Сообщение'>
@ -995,8 +866,12 @@ if ($_POST['login'] && $_POST['krest']) {
$rang = ''; $rang = '';
break; break;
} }
if ($_POST['krest'] == -1) db::c()->query('UPDATE `users` SET `align`="?s", `status`="?s" WHERE `login` = "?s" LIMIT 1;', '0', '', $_POST['login']); if ($_POST['krest'] == -1) {
else db::c()->query('UPDATE `users` SET `align` = "?s", `status` = "?s" WHERE `login` = "?s"', $_POST['krest'], $rang, $_POST['login']); db::c()->query('UPDATE `users` SET `align`="?s", `status`="?s" WHERE `login` = "?s" LIMIT 1;', '0', '', $_POST['login']);
}
else {
db::c()->query('UPDATE `users` SET `align` = "?s", `status` = "?s" WHERE `login` = "?s"', $_POST['krest'], $rang, $_POST['login']);
}
} }
@ -1206,9 +1081,7 @@ if ($_POST['login'] && $_POST['krest']) {
Hint3Name = ''; Hint3Name = '';
Hint3Closed = false; Hint3Closed = false;
} }
</script>
<script>
var xmlHttpp = []; var xmlHttpp = [];
function ajax_func(func, iid, getpar, postpar) { function ajax_func(func, iid, getpar, postpar) {

View File

@ -8,37 +8,42 @@
session_start(); session_start();
require_once "../functions.php"; require_once "../functions.php";
if (empty($user['admin'])) { if (!$user->admin) {
echo "<!DOCTYPE HTML><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL {$_SERVER['SCRIPT_NAME']} was not found on this server.</p><hr><address>Apache/2.2.22 (@RELEASE@) Server at Hetzner Datacenter 426</address></body></html>"; header("HTTP/1.0 404 Not Found");
exit; exit;
} }
if (isset($_POST['player'])) { $player = $_POST['player'] ?? null;
$p = db::c()->query('SELECT `id`, `login` FROM `users` WHERE `id` = "?s" OR `login` = "?s"', $_POST['player'], $_POST['player'])->fetch_assoc(); $undress_char = $_POST['undress_char'] ?? null;
$_SESSION['player_id'] = $p['id']; $end = $_POST['end'] ?? null;
$_SESSION['player_name'] = $p['login']; $del = $_POST['del'] ?? null;
if ($player) {
$row = db::c()->query('SELECT id, login FROM users WHERE id = "?s" OR login = "?s"', $player, $player)->fetch_assoc();
$_SESSION['player_id'] = $row['id'];
$_SESSION['player_name'] = $row['login'];
unset($row);
} }
if ($undress_char) {
if (isset($_POST['undress_char'])) undressall($_SESSION['player_id']); undressall($_SESSION['player_id']);
}
if (isset($_POST['end'])) { if ($end) {
unset($_SESSION['player_id']); unset($_SESSION['player_id']);
unset($_SESSION['player_name']); unset($_SESSION['player_name']);
} }
if (isset($_SESSION['player_id'])) {
if (isset($_SESSION['player_id'])) $inv = db::c()->query('SELECT item_id, name, image FROM inventory WHERE owner = ?i ORDER BY id DESC', $_SESSION['player_id']);
$inv = db::c()->query('SELECT `id`,`name`,`koll`,`img` FROM `inventory` WHERE `owner` = ?i ORDER BY `id` DESC', $_SESSION['player_id']); }
if ($del) {
if (input::post('del')) { $itemdel = db::c()->query('SELECT item_type, dressed_slot FROM inventory WHERE id=?i', $del)->fetch_assoc();
$itemdel = db::c()->query('SELECT `type`,`dressed` FROM `inventory` WHERE `id`=?i', input::post('del'))->fetch_assoc(); if ($itemdel['dressed_slot'] == 1) {
if ($itemdel['dressed'] == 1) { dropitem($itemdel['item_type']);
dropitem($itemdel['type']); if ($itemdel['item_type'] == 5) {
if ($itemdel['type'] == 5) {
dropitem(6); dropitem(6);
dropitem(7); dropitem(7);
} }
} }
db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', input::post('del')); db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', $del);
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>

1678
cave.php

File diff suppressed because it is too large Load Diff

188
clan.php
View File

@ -1,84 +1,104 @@
<?php <?php
ob_start("ob_gzhandler"); ob_start("ob_gzhandler");
session_start(); session_start();
if ($_SESSION['uid'] == null) header("Location: index.php"); if (empty($_SESSION['uid'])) {
include_once 'config.php'; header("Location: index.php");
}
include_once 'functions.php'; include_once 'functions.php';
$status = null; if (!$user->clan) {
$action = filter_input(INPUT_POST,'action');
$login = filter_input(INPUT_POST,'login');
if (!$user['klan']) {
die(err('Вы не состоите в клане!')); die(err('Вы не состоите в клане!'));
} }
$klan = db::c()->query('SELECT * FROM `clans` WHERE `id` = ?i', $user['klan'])->fetch_assoc(); try {
$polno = []; $clanRow = db::c()->query('SELECT * FROM `clans` WHERE `id` = ?i', $user['klan'])->fetch_assoc();
$polno = unserialize($klan['vozm']); $polno = unserialize($clanRow['vozm']) ?? [];
} catch (Exception $e) {
echo "MYSQL_ERROR: Таблицы clans не существует! Вся панель — одна сплошная ошибка!";
}
define('COST_ADD_MEMBER', 100);
define('COST_REMOVE_MEMBER', 30);
define('CASTLE_REPUTATION_NEEDED', 1000000);
define('CASTLE_COST', 25000);
$status = null;
$action = $_POST['action'] ?? 0;
$login = $_POST['login'] ?? 0;
$zamok = $_POST['zamok'] ?? null;
$kr = $_POST['kr'] ?? null;
$kolv = $_POST['kolv'] ?? null;
$newClanStatus = $_POST['new_status'] ?? null;
$vin = $_POST['vin'] ?? null;
$tus = $_POST['tus'] ?? null;
if (isset($_POST['zamok'])) { if ($zamok) {
db::c()->query('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?i', $_SESSION['uid']); db::c()->query('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?i', $_SESSION['uid']);
$status = "Начат сбор средств на строительство Кланового Замка."; $status = "Начат сбор средств на строительство Кланового Замка.";
header("Location: clan.php"); header("Location: clan.php");
} }
if ($kr && $kolv > 0) {
if (isset($_POST['kr']) && ($_POST['kolv'] > 0)) { if ($user->money >= $kolv) {
if ($user['money'] >= $_POST['kolv']) { db::c()->query('UPDATE `clans` SET `zbor` = `zbor` + ?i WHERE `id` = ?i', $kolv, $user->clan);
db::c()->query('UPDATE `clans` SET `zbor` = `zbor` + ?i WHERE `id` = ?i', $_POST['kolv'], $user['klan']); db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $kolv, $user->id);
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $_POST['kolv'], $user['id']);
header("Location: clan.php"); header("Location: clan.php");
} else $status = 'Не хватает денег!'; } else {
$status = 'Не хватает денег!';
}
} }
if ($login && $action == 'add_member' && $polno[$user['id']][0] == 1) {
if (!empty($login) AND $action == 'add_member' AND $polno[$user['id']][0] == 1) { $sok = db::c()->query('SELECT id, level, clan FROM users WHERE align = 0 AND login = "?s"', $login)->fetch_assoc();
$sok = db::c()->query('SELECT `id`,`level`,`klan` FROM `users` WHERE `align` = 0 AND `login` = "?s"', $login)->fetch_assoc(); $proverka = db::c()->query('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?i', $sok['id'])->getNumRows();
$proverka = db::c()->query('SELECT 1 FROM `effects` WHERE `type` = 20 AND `owner` = ?i', $sok['id'])->getNumRows(); if (!$proverka) {
if (!$proverka) echo "Нет проверки!"; echo "Нет проверки!";
elseif (!empty($sok['klan'])) echo 'Персонаж уже состоит в клане!'; } elseif ($sok['clan']) {
elseif ($sok['level'] > 0 && $user['money'] >= 100) { echo 'Персонаж уже состоит в клане!';
db::c()->query('UPDATE `users` SET `money` = `money` - 100 WHERE `id` = ?i', $_SESSION['uid']); } elseif ($sok['level'] > 0 && $user->money >= COST_ADD_MEMBER) {
db::c()->query('UPDATE `users` SET `status` = "?s", `klan` = "?s", `align` = ?i WHERE `id` = ?i', 'Боец', $klan['id'], $klan['align'], $sok['id']); db::c()->query('UPDATE users SET money = money - ?i WHERE `id` = ?i', COST_ADD_MEMBER, $_SESSION['uid']);
db::c()->query('UPDATE users SET clan = "?s", align = ?i WHERE id = ?i', $clanRow['id'], $clanRow['align'], $sok['id']);
$status = 'Персонаж «' . $login . '» успешно принят в клан.'; $status = 'Персонаж «' . $login . '» успешно принят в клан.';
} else $status = 'Не хватает денег, или персонажа не существует.'; } else {
$status = 'Не хватает денег, или персонажа не существует.';
}
} }
if ($login && $action == 'remove_member' && $polno[$user['id']][0] == 1) {
if (!empty($login) AND $action == 'remove_member' AND $polno[$user['id']][0] == 1) { $sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc();
$sok = db::c()->query('SELECT `id` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc(); if ($sok['id'] != $clanRow['glava'] && $user->money >= COST_REMOVE_MEMBER) {
if ($sok['id'] != $klan['glava'] AND $user['money'] >= 30) { db::c()->query('UPDATE users SET money = money - ?i WHERE id = ?i', COST_REMOVE_MEMBER, $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `money` = `money` - 30 WHERE `id` = ?i', $_SESSION['uid']); db::c()->query('UPDATE users SET clan = "?s", align = 0 WHERE id = ?i', '', $sok['id']);
db::c()->query('UPDATE `users` SET `klan` = null, `align` = 0 WHERE `id` = ?i', $sok['id']);
$status = 'Персонаж «' . $login . '» покинул клан.'; $status = 'Персонаж «' . $login . '» покинул клан.';
} }
} }
if ($login && $action == 'change_owner' && $clanRow['glava'] == $_SESSION['uid']) {
if (!empty($login) AND $action == 'change_owner' AND $klan['glava'] == $_SESSION['uid']) { $sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc();
$sok = db::c()->query('SELECT `id` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc(); db::c()->query('UPDATE clans SET glava = ?i WHERE id = ?i', $sok['id'], $clanRow['id']);
db::c()->query('UPDATE `clans` SET `glava` = ?i WHERE `id` = ?i', $sok['id'], $klan['id']); db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', '', $sok['id']);
db::c()->query('UPDATE `users` SET `status` = null WHERE `id` = ?i', $sok['id']); db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', 'Боец', $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `status` = "?s" WHERE `id` = ?i', 'Боец', $_SESSION['uid']); $clanRow['glava'] = $sok['id'];
$klan['glava'] = $sok['id'];
} }
if ($login && $action == 'edit_status') {
if (!empty($login) AND $action == 'edit_status') { $sok = db::c()->query('SELECT id, status FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc();
$sok = db::c()->query('SELECT `id`, `status` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc(); if ($sok['id'] != $clanRow['glava']) {
if ($sok['id'] != $klan['glava']) { if ($newClanStatus) {
if (!empty($_POST['new_status'])) { $st = strip_tags(str_replace("&lt;", "<", str_replace("&gt;", ">", $newClanStatus)), "<B><I><U>");
$st = strip_tags(str_replace("&lt;", "<", str_replace("&gt;", ">", $_POST['new_status'])), "<B><I><U>"); db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', $st, $sok['id']);
db::c()->query('UPDATE `users` SET `status` = "?s" WHERE `id` = ?i', $st, $sok['id']);
$sok['status'] = $st; $sok['status'] = $st;
} }
if ($klan['glava'] == $_SESSION['uid']) { if ($clanRow['glava'] == $_SESSION['uid']) {
if (!empty($_POST['vin'])) $polno[$sok['id']][0] = 1; if ($vin) {
else $polno[$sok['id']][0] = 0; $polno[$sok['id']][0] = 1;
} else {
if (!empty($_POST['tus'])) $polno[$sok['id']][1] = 1; $polno[$sok['id']][0] = 0;
else $polno[$sok['id']][1] = 0; }
if ($tus) {
db::c()->query('UPDATE `clans` SET `vozm` = "?s" WHERE `id` = ?i', serialize($polno), $klan['id']); $polno[$sok['id']][1] = 1;
} else {
$polno[$sok['id']][1] = 0;
}
db::c()->query('UPDATE clans SET vozm = "?s" WHERE id = ?i', serialize($polno), $clanRow['id']);
}
} else {
$status = 'Главу клана редактировать запрещено!';
} }
} else $status = 'Главу клана редактировать запрещено!';
} }
$clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `room`, `align`, (select `id` from `online` WHERE `date` >= ?i AND `id` = users.`id`) AS `online` FROM `users` WHERE `klan` = ?i ORDER BY `online` DESC , `login` ASC', (time() - 60), $klan['id']); $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `room`, `align`, (select `id` from `online` WHERE `date` >= ?i AND `id` = users.`id`) AS `online` FROM `users` WHERE `klan` = ?i ORDER BY `online` DESC , `login` ASC', (time() - 60), $clanRow['id']);
?> ?>
<!doctype html> <!doctype html>
@ -89,36 +109,38 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
</head> </head>
<body> <body>
<div> <div>
<button onclick="location.href='main.php'">Вернуться</button> <?php if (!empty($status)) err($status); ?></div> <button onclick="location.href='main.php'">Вернуться</button>
<?php if (!empty($status)) {err($status);} ?>
</div>
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td> <td>
<p style="width: 50%; vertical-align: top;" rowspan=2> <p style="width: 50%; vertical-align: top;" rowspan=2>
<h3><img src="./i/clan/<?= $klan['short'] ?>.gif"><?= $klan['name'] ?></h3> <h3><img src="./i/clan/<?= $clanRow['short'] ?>.gif"><?= $clanRow['name'] ?></h3>
Количество рейтинговых очков клана: <span Количество рейтинговых очков клана: <span
style="color: #428f21; font-size: larger;"><?= $klan['rating'] ?></span><br> style="color: #428f21; font-size: larger;"><?= $clanRow['rating'] ?></span><br>
<?php if ($polno[$user['id']][0] == 1): ?> <?php if ($polno[$user['id']][0] == 1): ?>
<div> <div>
<span id="add_member"> <span id="add_member">
<input type="submit" onclick="use('add_member')" value="Принять в клан"> <input type="submit" onclick="use('add_member')" value="Принять в клан">
</span> </span>
(стоимость услуги: <B>100</B> кр.) (стоимость услуги: <B><?= COST_ADD_MEMBER ?></B> кр.)
</div> </div>
<div> <div>
<span id="remove_member"> <span id="remove_member">
<input type="submit" onclick="use('remove_member')" value="Выгнать из клана"> <input type="submit" onclick="use('remove_member')" value="Выгнать из клана">
</span> </span>
(стоимость услуги: <B>30</B> кр.) (стоимость услуги: <B><?= COST_REMOVE_MEMBER ?></B> кр.)
</div> </div>
<?php endif; ?> <?php endif; ?>
<?php if ($polno[$user['id']][1] == 1 OR $klan['glava'] == $user['id']): ?> <?php if ($polno[$user['id']][1] == 1 || $clanRow['glava'] == $user['id']): ?>
<?php if (!empty($login) AND $action == 'edit_status' AND $sok['id'] != $klan['glava']): ?> <?php if ($login && $action == 'edit_status' && $sok['id'] != $clanRow['glava']): ?>
<form method='post'> <form method='post'>
<input placeholder='Статус' name='new_status'> <input placeholder='Статус' name='new_status'>
<input type="hidden" name="login" value="<?= $login ?>"> <input type="hidden" name="login" value="<?= $login ?>">
<?php if ($klan['glava'] == $user['id']): ?> <?php if ($clanRow['glava'] == $user['id']): ?>
<?php if ($polno[$sok['id']][0] == 1): ?> <?php if ($polno[$sok['id']][0] == 1): ?>
<br><input type=checkbox name=vin checked> Может принимать/выгонять членов клана <br><input type=checkbox name=vin checked> Может принимать/выгонять членов клана
<?php else: ?> <?php else: ?>
@ -142,37 +164,37 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
<?php endif; ?> <?php endif; ?>
<?php endif; ?> <?php endif; ?>
<?php if ($klan['glava'] == $user['id']): ?> <?php if ($clanRow['glava'] == $user['id']): ?>
<div> <div>
<span id="change_owner"> <span id="change_owner">
<input type="submit" onclick="use('change_owner')" value="Сменить главу клана"> <input type="submit" onclick="use('change_owner')" value="Сменить главу клана">
</span> </span>
(сложить с себя полномочия, назначив <b style="color: teal;">Главой Клана</b> другого персонажа) (сложить с себя полномочия, назначив <b style="color: teal;">Главой Клана</b> другого персонажа)
</div> </div>
<?php if (empty($klan['zamok'])): ?> <?php if (empty($clanRow['zamok'])): ?>
<?php if ($klan['rating'] < 1000000): ?> <?php if ($clanRow['rating'] < CASTLE_REPUTATION_NEEDED): ?>
Недостаточно рейтинга для постройки замка. <?= showProgressBar($klan['rating'], 1000000) ?> Недостаточно рейтинга для постройки замка. <?= showProgressBar($clanRow['rating'], CASTLE_REPUTATION_NEEDED) ?>
<?php else: ?> <?php else: ?>
<form method="post"> <form method="post">
<button type="submit" name="zamok" value="zamok">Построить Замок</button> <button type="submit" name="zamok" value="zamok">Построить Замок</button>
(собрать силами всего клана 25000 кр.)<BR> (собрать силами всего клана <?= CASTLE_COST ?> кр.)<BR>
</form> </form>
<?php endif; ?> <?php endif; ?>
<?php endif; ?> <?php endif; ?>
<?php endif; ?> <?php endif; ?>
<?php if ($klan['zamok'] == 1): ?> <?php if ($clanRow['zamok'] == 1): ?>
<p> <p>
<?php if ($klan['zbor'] < 25000): ?> <?php if ($clanRow['zbor'] < CASTLE_COST): ?>
Сбор средств на постройку кланового замка: Сбор средств на постройку кланового замка:
<?= showProgressBar($klan['zbor'], 25000) ?> <?= showProgressBar($clanRow['zbor'], CASTLE_COST) ?>
<form method="post"> <form method="post">
<input name="kolv" size="10"> <input name="kolv" size="10">
<button type="submit" name="kr" value="kr">Пожертвовать</button> <button type="submit" name="kr" value="kr">Пожертвовать</button>
</form> </form>
<?php else: ?> <?php else: ?>
Средства на постройку кланового замка собраны! Средства на постройку кланового замка собраны!
<?= showProgressBar(25000, 25000) ?> <?= showProgressBar(CASTLE_COST, CASTLE_COST) ?>
<?php endif; ?> <?php endif; ?>
<?php endif; ?> <?php endif; ?>
</td> </td>
@ -186,11 +208,19 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
</tr> </tr>
<?php <?php
while ($row = $clan_memberlist->fetch_assoc()): while ($row = $clan_memberlist->fetch_assoc()):
if ($row['id'] == $klan['glava']) $row['status'] = '<b style="color: #008080;">Глава клана</b>'; if ($row['id'] == $clanRow['glava']) {
if (empty($row['status'])) $row['status'] = 'Боец'; $row['status'] = '<b style="color: #008080;">Глава клана</b>';
if (empty($row['online'])) $rrm = 'Персонаж не в игре'; }
elseif ($row['room'] > 500 AND $row['room'] < 561) $rrm = 'Башня смерти'; if (empty($row['status'])) {
else $rrm = $rooms[$row['room']]; $row['status'] = 'Боец';
}
if (empty($row['online'])) {
$rrm = 'Персонаж не в игре';
} elseif ($row['room'] > 500 && $row['room'] < 561) {
$rrm = 'Башня смерти';
} else {
$rrm = $rooms[$row['room']];
}
?> ?>
<tr> <tr>
<td><?= Nick::id($row['id'])->full() ?></td> <td><?= Nick::id($row['id'])->full() ?></td>

View File

@ -41,6 +41,9 @@ class User
// Пока несуществующие, для совместимости. // Пока несуществующие, для совместимости.
public $married = 'Someone или нет.'; public $married = 'Someone или нет.';
public $experience = 200; public $experience = 200;
public $battle = 0;
public $in_tower = 0; // Скорее башню похороним чем запустим...
public $zayavka = 0;
// Динамически рассчитываемые // Динамически рассчитываемые
public $maxHealth = 5; public $maxHealth = 5;
public $maxMana = 5; public $maxMana = 5;

View File

@ -1567,7 +1567,7 @@ class fbattle
include "../darkness_quest.php"; include "../darkness_quest.php";
$this->exp[$v] = round($this->exp[$v]); $this->exp[$v] = round($this->exp[$v]);
$dop_exp = check_proc($this->user['id']); $dop_exp = 100; //процент опыта
if ($dop_exp > 100) { if ($dop_exp > 100) {
$add = ($dop_exp - 100); $add = ($dop_exp - 100);
$this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0); $this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0);
@ -1641,7 +1641,7 @@ class fbattle
} }
$this->exp[$v] = round($this->exp[$v]); $this->exp[$v] = round($this->exp[$v]);
$dop_exp = check_proc($this->user['id']); $dop_exp = 100; //процент опыта
if ($dop_exp > 100) { if ($dop_exp > 100) {
$add = ($dop_exp - 100); $add = ($dop_exp - 100);
$this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0); $this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0);

View File

@ -1,31 +0,0 @@
<?php
/**
* Copyright (c) 2018.
* Author: Igor Barkov <lopar.4ever@gmail.com>
* Project name: Battles-Game
*/
class input
{
public static function get($name) {
$var = trim(filter_input(INPUT_GET,$name));
if (isset($var) AND !empty($var))
return $var;
else return null;
}
public static function post($name) {
$var = trim(filter_input(INPUT_POST,$name));
if (isset($var) AND !empty($var))
return $var;
else return null;
}
public static function check($name) {
# Срезаем с значения переменной табы, пробелы, другие невидимые символы по краям.
# Проверяем, что у переменной точно есть значение.
if (!empty(trim(filter_input(INPUT_GET,$name)))) return trim(filter_input(INPUT_GET,$name));
if (!empty(trim(filter_input(INPUT_POST,$name)))) return trim(filter_input(INPUT_POST,$name));
return null;
}
}

View File

@ -1,46 +1,49 @@
<?php <?php
ob_start("ob_gzhandler"); ob_start("ob_gzhandler");
session_start(); session_start();
if ($_SESSION['uid'] == null) header("Location: index.php"); if (empty($_SESSION['uid'])) {
header("Location: index.php");
}
require_once 'config.php'; require_once 'config.php';
$friendadd = $_POST['friendadd'] ?? null;
if (input::post('friendadd')) { $friendremove = $_POST['friendremove'] ?? null;
$q = db::c()->query('SELECT `id` FROM `users` WHERE `login` = "?s"', input::post('friendadd'))->fetch_assoc(); $friendedit = $_POST['friendedit'] ?? null;
$comment = $_POST['comment'] ?? '';
if ($friendadd) {
$q = db::c()->query('SELECT `id` FROM `users` WHERE `login` = "?s"', $friendadd)->fetch_assoc();
$q2 = db::c()->query('SELECT 1 FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']); $q2 = db::c()->query('SELECT 1 FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']);
if (!$q['id']) {
if (!$q['id']) $status = 'Персонаж не найден.'; $status = 'Персонаж не найден.';
elseif ($q['id'] == $_SESSION['uid']) $status = 'Себя добавить нельзя.'; } elseif ($q['id'] == $_SESSION['uid']) {
elseif ($q2->getNumRows()) $status = 'Персонаж уже есть в списке.'; $status = 'Себя добавить нельзя.';
else { } elseif ($q2->getNumRows()) {
db::c()->query('INSERT INTO `friends` (`user`, `friend`, `comment`) VALUES (?i,?i,"?s")', $_SESSION['uid'], $q['id'], input::post('comment')); $status = 'Персонаж уже есть в списке.';
} else {
db::c()->query('INSERT INTO `friends` (`user`, `friend`, `comment`) VALUES (?i,?i,"?s")', $_SESSION['uid'], $q['id'], $comment);
$status = 'Контакт добавлен.'; $status = 'Контакт добавлен.';
} }
} }
if ($friendremove) {
if (input::post('friendremove')) { $q = db::c()->query('SELECT `id` FROM `users` WHERE `login` = "?s"', $friendremove)->fetch_assoc();
$q = db::c()->query('SELECT `id` FROM `users` WHERE `login` = "?s"', input::post('friendremove'))->fetch_assoc();
$q2 = db::c()->query('SELECT 1 FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']); $q2 = db::c()->query('SELECT 1 FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']);
if (!$q['id'] || !$q2->getNumRows()) {
if (!$q['id'] OR !$q2->getNumRows()) $status = 'Персонаж не найден.'; $status = 'Персонаж не найден.';
else { } else {
db::c()->query('DELETE FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']); db::c()->query('DELETE FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']);
$status = 'Контакт удалён.'; $status = 'Контакт удалён.';
} }
} }
if ($friendedit) {
if (input::post('friendedit')) { $q = db::c()->query('SELECT `id` FROM `users` WHERE `login` = "?s"', $friendedit)->fetch_assoc();
$q = db::c()->query('SELECT `id` FROM `users` WHERE `login` = "?s"', input::post('friendedit'))->fetch_assoc();
$q2 = db::c()->query('SELECT 1 FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']); $q2 = db::c()->query('SELECT 1 FROM `friends` WHERE `user` = ?i AND `friend` = ?i', $_SESSION['uid'], $q['id']);
if (!$q2['friend']) {
if (!$q2['friend']) $status = 'Персонаж не найден.'; $status = 'Персонаж не найден.';
else { } else {
db::c()->query('UPDATE `friends` SET `comment` = "?s" WHERE `user` = ?i AND `friend` = ?i', input::post('comment'), $_SESSION['uid'], $q['id']); db::c()->query('UPDATE `friends` SET `comment` = "?s" WHERE `user` = ?i AND `friend` = ?i', $comment, $_SESSION['uid'], $q['id']);
$status = 'Контакт изменён.'; $status = 'Контакт изменён.';
} }
} }
$admins_list = db::c()->query('SELECT `id` FROM `users` WHERE `admin` = 1 ORDER BY `login`', (time() - 60));
$admins_list = db::c()->query('SELECT `id` FROM `users` WHERE `admin` = 1 ORDER BY `login` ASC', (time() - 60));
$contacts_list = db::c()->query('SELECT `friend`,`comment` FROM `friends` WHERE `friend` > 0 AND `user` = ?i', $_SESSION['uid']); $contacts_list = db::c()->query('SELECT `friend`,`comment` FROM `friends` WHERE `friend` > 0 AND `user` = ?i', $_SESSION['uid']);
?> ?>
<!doctype html> <!doctype html>
@ -84,9 +87,8 @@ $contacts_list = db::c()->query('SELECT `friend`,`comment` FROM `friends` WHERE
<small><?= $row['comment'] ?></small> <small><?= $row['comment'] ?></small>
</TD> </TD>
<TD width="1%"> <TD width="1%">
<input type='button' style="background: darkgrey; border: 1px solid grey; border-radius: 2px;" value="Редактировать" <input type='button' style="background: darkgrey; border: 1px solid grey; border-radius: 2px;" value="Редактировать" onclick='use("comment","wow")'>
onclick='use("comment","wow")'> <!-- editcontact("<?= $us['login'] ?>", "<?= $row['comment'] ?>") -->
<!-- editcontact("<?= $us['login'] ?>", "<?= $row['comment'] ?>") -->
</TD> </TD>
</TR> </TR>
<? endwhile; ?> <? endwhile; ?>
@ -149,7 +151,7 @@ $contacts_list = db::c()->query('SELECT `friend`,`comment` FROM `friends` WHERE
} }
function use(option, placeholder) { function use(option, placeholder) {
document.getElementById(option).innerHTML = "<form method='post'><input placeholder='"+placeholder+"' name='"+option+"'><input value='Ок' type='submit'></form>"; document.getElementById(option).innerHTML = "<form method='post'><input placeholder='" + placeholder + "' name='" + option + "'><input value='Ок' type='submit'></form>";
} }
</script> </script>
</body> </body>

View File

@ -335,7 +335,7 @@ class fbattle
} }
$this->exp[$v] = round($this->exp[$v]); $this->exp[$v] = round($this->exp[$v]);
$dop_exp = check_proc($this->user['id']); $dop_exp = 100; //процент опыта
if ($dop_exp > 100) { if ($dop_exp > 100) {
$add = ($dop_exp - 100); $add = ($dop_exp - 100);
$this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0); $this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0);
@ -406,7 +406,7 @@ class fbattle
} }
$this->exp[$v] = round($this->exp[$v]); $this->exp[$v] = round($this->exp[$v]);
$dop_exp = check_proc($this->user['id']); $dop_exp = 100; //процент опыта
if ($dop_exp > 100) { if ($dop_exp > 100) {
$add = ($dop_exp - 100); $add = ($dop_exp - 100);
$this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0); $this->exp[$v] += round(($this->exp[$v] * $add) / 100, 0);

View File

@ -356,7 +356,7 @@ $fbattle = new fbattle($user['battle']);
$ads = '.'; $ads = '.';
} }
echo '<center><br /><b><font color=red>Бой закончен! Всего вами нанесено урона ' . $damage[$user['id']] . ' HP. Получено опыта ' . (int)$exp[$user['id']] . ' (' . check_proc($user['id']) . '%)' . $ads . '</FONT></B><br /><input type="submit" value="Вернуться" name="end" /><br /></center>'; echo '<center><br /><b><font color=red>Бой закончен! Всего вами нанесено урона ' . $damage[$user['id']] . ' HP. Получено опыта ' . (int)$exp[$user['id']] . ' (100%)' . $ads . '</FONT></B><br /><input type="submit" value="Вернуться" name="end" /><br /></center>';
} }
} else { } else {
?> ?>

View File

@ -200,38 +200,6 @@ function savecavedata($cavedata, $caveleader, $floor)
fclose($f1); fclose($f1);
} }
function topsethp()
{
global $user;
if ($user['hp'] >= $user['maxhp'] || $user['battle']) {
return "top.setHP($user[hp], $user[maxhp], 0)";
}
$fulltime = timetoheals($user);
$delay = round(1 / ($user['maxhp'] / $fulltime) * 1000);
return "top.setHP($user[hp], $user[maxhp], $delay);";
}
function check_proc($u)
{
$r = 100;
$usr = db::c()->query('SELECT `id`, `vip`, `vip_time` FROM `users` WHERE `id` = ?i', $u)->fetch_assoc_array();
if ($usr['vip_time'] > time()) {
if ($usr['vip'] == 1) {
$r += 10;
} elseif ($usr['vip'] == 2) {
$r += 15;
} elseif ($usr['vip'] == 3) {
$r += 20;
}
}
$effes = db::c()->query('SELECT SUM(`proc_exp`) AS `sums` FROM `effects` WHERE proc_exp > 0 AND owner = ?i', $usr['id'])->fetch_assoc_array();
if ($effes['sums'] > 0) {
$r += $effes['sums'];
}
return $r;
}
function GiveExp($id, $exp) function GiveExp($id, $exp)
{ {
db::c()->query('UPDATE users SET exp = exp + ?i WHERE id = ?i', $exp, $id); db::c()->query('UPDATE users SET exp = exp + ?i WHERE id = ?i', $exp, $id);
@ -242,31 +210,13 @@ function GiveRep($id, $rep)
db::c()->query('UPDATE users SET doblest = (doblest + ?i), rep_laba = (rep_laba + ?i) WHERE `id` = ?i', $rep, $rep, $id); db::c()->query('UPDATE users SET doblest = (doblest + ?i), rep_laba = (rep_laba + ?i) WHERE `id` = ?i', $rep, $rep, $id);
} }
// полоска НР
function setHP($hp, $maxhp)
{
if ($hp < $maxhp * 0.33) {
$polosa = 'i/1red.gif';
} elseif ($hp < $maxhp * 0.66) {
$polosa = 'i/1yellow.gif';
} else {
$polosa = 'i/1green.gif';
}
$polosa_width = (122 * ($hp / $maxhp));
$silver_polosa_width = (122 - 122 * ($hp / $maxhp));
return <<<HTML
<IMG SRC=i/herz.gif WIDTH=10 HEIGHT=10 ALT="Уровень жизни">
<IMG SRC=$polosa WIDTH=$polosa_width HEIGHT=10 ALT="Уровень жизни" id=HP1>
<IMG SRC=i/1silver.gif WIDTH=$silver_polosa_width HEIGHT=10 ALT="Уровень жизни" id=HP2>
<span id='hp_value'>$hp / $maxhp</span>
HTML;
}
/** /**
* @param $current * Генератор прогрессбара.
* @param $maximum * @param $current - Текущее значение.
* @param $maximum - Максимальное значение.
* @param string $line_color - Цвет полоски прогрессбара.
* @param string $bg_color - Фон прогрессбара.
* @return string
*/ */
function showProgressBar($current, $maximum, $line_color = 'limegreen', $bg_color = 'silver') function showProgressBar($current, $maximum, $line_color = 'limegreen', $bg_color = 'silver')
{ {
@ -471,18 +421,6 @@ function show_eff_inf($u, $type)
return $r; return $r;
} }
function timetoheals($user)
{
$efs = db::c()->query('SELECT SUM(`speed`) AS `speed` FROM `effects` WHERE `owner` = ?i', $user['id'])->fetch_assoc_array();
$efs['speed'] += 0;
if ($efs['speed'] > 0) {
$fulltime = $efs['speed'] * 2000;
} else {
$fulltime = 2000;
}
return $fulltime;
}
/** /**
* @param $time * @param $time
* @param $vars * @param $vars
@ -499,32 +437,9 @@ function addActions($time, $vars, $vls, $uid)
return $ins; return $ins;
} }
function undressall($user_id)
function plusorminus($n, $shownum = 1)
{ {
if (empty($shownum)) { db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12 AND owner_id = ?i', $user_id);
if ($n >= 2) {
return "++";
}
if ($n > 0) {
return "+";
}
if ($n < 0) {
return "-";
}
}
if ($n >= 0) {
return "+$n";
} else {
return $n;
}
}
function undressall($id)
{
for ($i = 1; $i <= 26; $i++) {
dropitemid($i, $id);
}
} }
function dropitemid($slot, $id) function dropitemid($slot, $id)
@ -941,7 +856,7 @@ function destructitem($id)
} }
// использовать магию // использовать магию
function usemagic($id) function usemagic($id, $target)
{ {
global $user; global $user;
$row = db::c()->query('SELECT * FROM `inventory` WHERE `owner` = ?i AND id = ?i', $user['id'], $id)->fetch_assoc_array(); $row = db::c()->query('SELECT * FROM `inventory` WHERE `owner` = ?i AND id = ?i', $user['id'], $id)->fetch_assoc_array();

View File

@ -56,7 +56,7 @@ if($user['room'] == 1052) {
$dies = mysql_fetch_array(mysql_query('SELECT COUNT(`id`) FROM `laba_act` WHERE `uid` = "'.$user['id'].'" AND `lib` = "'.$user['laba'].'" AND `vars` = "dielaba" LIMIT 1')); $dies = mysql_fetch_array(mysql_query('SELECT COUNT(`id`) FROM `laba_act` WHERE `uid` = "'.$user['id'].'" AND `lib` = "'.$user['laba'].'" AND `vars` = "dielaba" LIMIT 1'));
$dies = $dies[0]; $dies = $dies[0];
$map_d = json_decode($map['data']); $map_d = json_decode($map['data']);
$usersDng = setHP($user['hp'], $user['maxhp'], 0); $usersDng = showProgressBar($user['hp'], $user['maxhp']);
$errors = ''; $errors = '';
$effed = ''; $effed = '';
$mapsee = ''; $mapsee = '';

509
main.php
View File

@ -12,228 +12,200 @@ if (!isset($_SESSION['uid'])) {
require_once 'functions.php'; require_once 'functions.php';
$tmaz = time();
try { try {
db::c()->query('UPDATE `online` SET `real_time` = ?i WHERE `user_id` = ?i', time(), $user['id']); db::c()->query('UPDATE `online` SET `real_time` = ?i WHERE `user_id` = ?i', time(), $user->id);
} catch (\Krugozor\Database\Mysql\Exception $e) { } catch (\Krugozor\Database\Mysql\Exception $e) {
echo "<div class='debug' '>Ошибка: " . $e->getMessage() . "<br> Стек: " . $e->getTraceAsString() . "</div>"; echo "<div class='debug' '>Ошибка: " . $e->getMessage() . "<br> Стек: " . $e->getTraceAsString() . "</div>";
} }
if ($user->battle) {
if (!empty($user['battle'])) {
header('location: fbattle.php'); header('location: fbattle.php');
die(); exit();
}
//БС
if ($user->in_tower == 1) {
header('Location: towerin.php');
exit();
} }
//БС // Инициализируем входящие GET\POST переменные.
if (isset($user['in_tower']) && $user['in_tower'] == 1) { $goto = $_GET['goto'] ?? null;
header('Location: towerin.php'); $obraz = $_GET['obraz'] ?? null;
die(); $del = $_GET['del'] ?? null;
$effectId = $_GET['efid'] ?? null;
$brons = $_GET['modif_bron'] ?? null;
$stats = $_GET['modif_stat'] ?? null;
$mfs = $_GET['modif_mf'] ?? null;
$ids = $_GET['ids'] ?? null;
$setShadow = $_POST['setshadow'] ?? null;
$edit = $_GET['edit'] ?? null;
// Подготавливаем отображение инфы и предметов.
$showUser = new User($_SESSION['uid']);
$getItemsBonuses = new DressedItems($_SESSION['uid']);
$data_query = 'SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot = 0 AND on_sale = 0';
$data = db::c()->query($data_query, $_SESSION['uid']);
$iteminfo = [];
while ($row = $data->fetch_assoc()) {
$iteminfo[] = new InventoryItem($row);
} }
/* === проверяем соответствие комнаты и скрипта === */ /* === проверяем соответствие комнаты и скрипта === */
if (in_array($user['room'], [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111], 1)) { if (in_array($user->room, [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111], 1)) {
header('Location: city.php'); header('Location: city.php');
die(); exit();
} }
if ($user->room == 22) {
if ($user['room'] == 22) {
header('Location: shop.php'); header('Location: shop.php');
die(); exit();
} }
if ($user['room'] == 23) { if ($user->room == 23) {
header('Location: repair.php'); header('Location: repair.php');
die(); exit();
} }
if ($user['room'] == 25) { if ($user->room == 25) {
header('Location: comission.php'); header('Location: comission.php');
die(); exit();
} }
if ($user['room'] == 27) { if ($user->room == 27) {
header('Location: post.php'); header('Location: post.php');
die(); exit();
} }
if ($user['room'] == 29) { if ($user->room == 29) {
header('Location: bank.php'); header('Location: bank.php');
die(); exit();
} }
if ($user['room'] == 31) { if ($user->room == 31) {
header('Location: tower.php'); header('Location: tower.php');
die(); exit();
} }
if ($user['room'] == 30) { if ($user->room == 30) {
header('Location: clan_create.php'); header('Location: clan_create.php');
die(); exit();
} }
if ($user['room'] == 34) { if ($user->room == 34) {
header('Location: fshop.php'); header('Location: fshop.php');
die(); exit();
} }
if ($user['room'] == 42) { if ($user->room == 42) {
header('Location: lotery.php'); header('Location: lotery.php');
die(); exit();
} }
if ($user['room'] == 43) { if ($user->room == 43) {
header('Location: znahar.php'); header('Location: znahar.php');
die(); exit();
} }
if ($user['room'] == 44) { if ($user->room == 44) {
header('Location: new_year.php'); header('Location: new_year.php');
die(); exit();
} }
if ($user['room'] == 45) { if ($user->room == 45) {
header('Location: clan_castle.php'); header('Location: clan_castle.php');
die(); exit();
} }
if ($user['room'] == 47) { if ($user->room == 47) {
header('Location: wall_build.php'); header('Location: wall_build.php');
die(); exit();
} }
if ($user['room'] == 49) { if ($user->room == 49) {
header('Location: dig.php'); header('Location: dig.php');
die(); exit();
} }
if ($user['room'] == 50) { if ($user->room == 50) {
header('Location: ashop.php'); header('Location: ashop.php');
die(); exit();
} }
if ($user['room'] == 53) { if ($user->room == 53) {
header('Location: library.php'); header('Location: library.php');
die(); exit();
} }
if ($user['room'] == 61) { if ($user->room == 61) {
header('Location: akadem.php'); header('Location: akadem.php');
die(); exit();
} }
if ($user['room'] == 650) { if ($user->room == 650) {
header('Location: ul_clans.php'); header('Location: ul_clans.php');
die(); exit();
} }
//Храм древнх //Храм древнх
if ($user['room'] == 203) { if ($user->room == 203) {
header('Location: church.php'); header('Location: church.php');
die(); exit();
} }
//ЦХ //ЦХ
if ($user['room'] == 600) { if ($user->room == 600) {
header('Location: c_haos.php'); header('Location: c_haos.php');
die(); exit();
} }
if ($user['room'] == 601) { if ($user->room == 601) {
header('Location: c_haos_in.php'); header('Location: c_haos_in.php');
die(); exit();
} }
if ($user['room'] == 602) { if ($user->room == 602) {
header('Location: c_park.php'); header('Location: c_park.php');
die(); exit();
} }
if ($user['room'] == 603) { if ($user->room == 603) {
header('Location: aren_of_angels.php'); header('Location: aren_of_angels.php');
die(); exit();
} }
if ($user['room'] == 620) { if ($user->room == 620) {
header('Location: enter_cave.php'); header('Location: enter_cave.php');
die(); exit();
} }
if ($user['room'] == 621) { if ($user->room == 621) {
header('Location: cave.php'); header('Location: cave.php');
die(); exit();
} }
if ($user['room'] == 660) { if ($user->room == 660) {
header('Location: hostel.php'); header('Location: hostel.php');
die(); exit();
} }
if ($user['room'] == 661) { if ($user->room == 661) {
header('Location: hostel_room.php'); header('Location: hostel_room.php');
die(); exit();
} }
if ($user['room'] == 662) { if ($user->room == 662) {
header('Location: quest_room.php'); header('Location: quest_room.php');
die(); exit();
} }
if ($user['room'] == 760) { if ($user->room == 760) {
header('Location: c_forest.php'); header('Location: c_forest.php');
die(); exit();
} }
if ($user['room'] == 1000) { if ($user->room == 1000) {
header('Location: solib/enterbezdna.php'); header('Location: solib/enterbezdna.php');
die(); exit();
} }
if ($user['room'] == 1001) { if ($user->room == 1001) {
header('Location: solib/dungeon.php'); header('Location: solib/dungeon.php');
die(); exit();
} }
if ($user['room'] == 1051) { if ($user->room == 1051) {
header('Location: lab_enter.php'); header('Location: lab_enter.php');
die(); exit();
} }
if ($user['room'] == 1052) { if ($user->room == 1052) {
header('Location: labirint.php'); header('Location: labirint.php');
die(); exit();
} }
if ($user['room'] == 402) { if ($user->room == 402) {
header('Location: vxod.php'); header('Location: vxod.php');
die(); exit();
} }
if ($user['room'] == 403) { if ($user->room == 403) {
header('Location: canalizaciya.php'); header('Location: canalizaciya.php');
die(); exit();
} }
if ($user['room'] == 1054) { if ($user->room == 1054) {
header('Location: fontan_luck.php'); header('Location: fontan_luck.php');
die(); exit();
} }
if ($user['room'] == 1055) { if ($user->room == 1055) {
header('Location: group_arena.php'); header('Location: group_arena.php');
die(); exit();
} }
if ($user['room'] == 666) { if ($user->room == 666) {
header('Location: jail.php'); header('Location: jail.php');
die(); exit();
}
function stack($it_id)
{
global $user;
$it_id = (int)$it_id;
$stack = db::c()->query('SELECT * FROM `inventory` WHERE `id` = ?i AND `owner` = ?i', $it_id, $user['id']);
if (db::c()->getAffectedRows() === 1) {
$stack = $stack->fetch_assoc();
$similar = mysql_fetch_array(mysql_query("SELECT SUM(`koll`) FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` != '" . $stack['id'] . "' AND `name` = '" . $stack['name'] . "' AND `present` = '" . $stack['present'] . "' AND `duration` = '" . $stack['duration'] . "' AND `maxdur` = '" . $stack['maxdur'] . "' AND `laba` = '" . $stack['laba'] . "' AND `gmeshok` = '" . $stack['gmeshok'] . "' AND `dressed` = 0 AND `goden` = 0 AND `setsale` = 0 AND `koll` >= 1 AND `isrep` = '" . $stack['isrep'] . "' AND FORMAT(`cost`/`koll`, 2) = FORMAT(" . ($stack['cost'] / $stack['koll']) . ", 2) AND FORMAT(`point`/`koll`, 2) = FORMAT(" . ($stack['point'] / $stack['koll']) . ", 2) AND FORMAT(`bcost`/`koll`, 2) = FORMAT(" . ($stack['bcost'] / $stack['koll']) . ", 2)"));
if ($similar[0] >= 1) {
mysql_query("UPDATE `inventory` SET `cost` = (`cost`+`cost`/`koll`*" . $similar[0] . "), `point` = (`point`+`point`/`koll`*" . $similar[0] . "), `bcost` = (`bcost`+`bcost`/`koll`*" . $similar[0] . "), `massa` = (`massa`+`massa`/`koll`*" . $similar[0] . "), `koll` = (`koll`+" . $similar[0] . "), `gmeshok` = (`gmeshok`+`gmeshok`*" . $similar[0] . ") WHERE `id` = '" . $stack['id'] . "' LIMIT 1");
mysql_query("DELETE FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` != '" . $stack['id'] . "' AND `name` = '" . $stack['name'] . "' AND `present` = '" . $stack['present'] . "' AND `duration` = '" . $stack['duration'] . "' AND `maxdur` = '" . $stack['maxdur'] . "' AND `dressed` = 0 AND `goden` = 0 AND `koll` >= 1 AND `setsale` = 0 AND `gmeshok` = '" . $stack['gmeshok'] . "' AND `laba` = '" . $stack['laba'] . "' AND `isrep` = '" . $stack['isrep'] . "' AND FORMAT(`cost`/`koll`, 2)=FORMAT(" . $stack['cost'] / $stack['koll'] . ", 2) AND FORMAT(`point`/`koll`, 2) = FORMAT(" . ($stack['point'] / $stack['koll']) . ", 2) AND FORMAT(`bcost`/`koll`, 2) = FORMAT(" . ($stack['bcost'] / $stack['koll']) . ", 2) ");
}
}
}
function unstack($it_id, $it_count)
{
global $user;
$it_id = (int)$it_id;
$it_count = (int)$it_count;
$it_count = abs($it_count);
try {
$dress = db::c()->query('SELECT * FROM inventory WHERE owner = ?i AND id = ?i', $user['id'], $it_id)->fetch_assoc_array();
} catch (\Krugozor\Database\Mysql\Exception $e) {
echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>";
}
if (isset($dress['id'])) {
if ($it_count <= $dress['koll'] && $it_count > 0) {
if ($dress['koll'] == $it_count) {
db::c()->query('DELETE FROM inventory WHERE owner = ?i AND id = ?i', $user['id'], $dress['id']);
} else {
mysql_query("UPDATE `inventory` SET `cost` = (`cost`-`cost`/`koll`*" . $it_count . "), `point` = (`point`-`point`/`koll`*" . $it_count . "), `bcost` = (`bcost`-`bcost`/`koll`*" . $it_count . "), `massa` = (`massa`-`massa`/`koll`*" . $it_count . "), `koll` = (`koll`-" . $it_count . ") WHERE `id` = '$dress[id]' AND `owner` = '$user[id]' LIMIT 1");
}
mysql_query("INSERT INTO `inventory` (`name`, `upgrade`, `modif`, `podgon`, `duration`, `maxdur`, `cost`, `bcost`, `point`, `nlevel`, `nsila`, `nlovk`, `ninta`, `nvinos`, `nintel`, `nmudra`, `nnoj`, `ntopor`, `ndubina`, `nmech`, `nalign`, `minu`, `maxu`, `gsila`, `glovk`, `ginta`, `gintel`, `ghp`, `mfkrit`, `mfakrit`, `mfuvorot`, `mfauvorot`, `gnoj`, `gtopor`, `gdubina`, `gmech`, `img`, `text`, `owner`, `dressed`, `bron1`, `bron2`, `bron3`, `bron4`, `dategoden`, `magic`, `type`, `present`, `sharped`, `massa`, `goden`, `needident`, `nfire`, `nwater`, `nair`, `nearth`, `nlight`, `ngray`, `ndark`, `gfire`, `gwater`, `gair`, `gearth`, `glight`, `ggray`, `gdark`, `free_bron`, `free_stat`, `free_mf`, `letter`, `isrep`, `update`, `setsale`, `prototype`, `otdel`, `bs`, `gmp`, `includemagic`, `includemagicdex`, `includemagicmax`, `includemagicname`, `includemagicuses`, `includemagiccost`, `gmeshok`, `tradesale`, `podzem`, `x_mis`, `artefact`, `destinyinv`, `encicl`, `foronetrip`, `koll`) VALUES ('" . $dress['name'] . "', '" . $dress['upgrade'] . "', '" . $dress['modif'] . "', '" . $dress['podgon'] . "', '" . $dress['duration'] . "', '" . $dress['maxdur'] . "', '" . ($dress['cost'] / $dress['koll'] * $it_count) . "', '" . ($dress['bcost'] / $dress['koll'] * $it_count) . "', '" . ($dress['point'] / $dress['koll'] * $it_count) . "', '" . $dress['nlevel'] . "', '" . $dress['nsila'] . "', '" . $dress['nlovk'] . "', '" . $dress['ninta'] . "', '" . $dress['nvinos'] . "', '" . $dress['nintel'] . "', '" . $dress['nmudra'] . "', '" . $dress['nnoj'] . "', '" . $dress['ntopor'] . "', '" . $dress['ndubina'] . "', '" . $dress['nmech'] . "', '" . $dress['nalign'] . "', '" . $dress['minu'] . "', '" . $dress['maxu'] . "', '" . $dress['gsila'] . "', '" . $dress['glovk'] . "', '" . $dress['ginta'] . "', '" . $dress['gintel'] . "', '" . $dress['ghp'] . "', '" . $dress['mfkrit'] . "', '" . $dress['mfakrit'] . "', '" . $dress['mfuvorot'] . "', '" . $dress['mfauvorot'] . "', '" . $dress['gnoj'] . "', '" . $dress['gtopor'] . "', '" . $dress['gdubina'] . "', '" . $dress['gmech'] . "', '" . $dress['img'] . "', '" . $dress['text'] . "', '" . $dress['owner'] . "', '" . $dress['dressed'] . "', '" . $dress['bron1'] . "', '" . $dress['bron2'] . "', '" . $dress['bron3'] . "', '" . $dress['bron4'] . "', '" . $dress['dategoden'] . "', '" . $dress['magic'] . "', '" . $dress['type'] . "', '" . $dress['present'] . "', '" . $dress['sharped'] . "', '" . ($dress['massa'] / $dress['koll'] * $it_count) . "', '" . $dress['goden'] . "', '" . $dress['needident'] . "', '" . $dress['nfire'] . "', '" . $dress['nwater'] . "', '" . $dress['nair'] . "', '" . $dress['nearth'] . "', '" . $dress['nlight'] . "', '" . $dress['ngray'] . "', '" . $dress['ndark'] . "', '" . $dress['gfire'] . "', '" . $dress['gwater'] . "', '" . $dress['gair'] . "', '" . $dress['gearth'] . "', '" . $dress['glight'] . "', '" . $dress['ggray'] . "', '" . $dress['gdark'] . "', '" . $dress['free_bron'] . "', '" . $dress['free_bron'] . "', '" . $dress['free_mf'] . "', '" . $dress['letter'] . "', '" . $dress['isrep'] . "', '" . $dress['update'] . "', '" . $dress['setsale'] . "', '" . $dress['prototype'] . "', '" . $dress['otdel'] . "', '" . $dress['bs'] . "', '" . $dress['gmp'] . "', '" . $dress['includemagic'] . "', '" . $dress['includemagicdex'] . "', '" . $dress['includemagicmax'] . "', '" . $dress['includemagicname'] . "', '" . $dress['ggrincludemagicusesay'] . "', '" . $dress['includemagiccost'] . "', '" . ($dress['gmeshok'] / $dress['koll'] * $it_count) . "', '" . $dress['tradesale'] . "', '" . $dress['podzem'] . "', '" . $dress['x_mis'] . "', '" . $dress['artefact'] . "', '" . $dress['destinyinv'] . "', '" . $dress['encicl'] . "', '" . $dress['foronetrip'] . "', '" . $it_count . "')");
return mysql_insert_id();
} else {
return false;
}
} else {
return false;
}
} }
function del_efs($id, $type) function del_efs($id, $type)
@ -249,7 +221,6 @@ function del_efs($id, $type)
} }
} }
// одеть предмет // одеть предмет
function dressitem($id) function dressitem($id)
{ {
@ -328,37 +299,32 @@ function dressitem($id)
} }
} }
function undressallself()
{
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12 AND owner_id = ?i', $_SESSION['uid']);
}
// Входим и выходим если можем. // Входим и выходим если можем.
if (isset($_GET['goto'])) { if ($goto) {
$imove = true; $imove = true;
$d = db::c()->query('SELECT SUM(`weight`) AS `sum_weight` FROM `inventory` WHERE `owner` = ?i AND `on_sale` = 0', $user['id'])->fetch_assoc(); $d = db::c()->query('SELECT SUM(weight) AS sum_weight FROM inventory WHERE owner_id = ?i AND on_sale = 0', $user->id)->fetch_assoc();
$eff = db::c()->query('SELECT 1 FROM `users_effects` WHERE `owner_id` = ?i AND (`type` = 14 OR `type` = 13)', $user['id']); $eff = db::c()->query('SELECT 1 FROM `users_effects` WHERE `owner_id` = ?i AND (`type` = 14 OR `type` = 13)', $user->id);
//(масса: <?= $getItemsBonuses->getItemsWeight() . '/' . $showUser->strength * 4 //(масса: <?= $getItemsBonuses->getItemsWeight() . '/' . $showUser->strength * 4
if ($d['sum_weight'] > $user['strength'] * 4 && $_GET['got']) { if ($d['sum_weight'] > $user->strength * 4 && $goto) {
err('У вас переполнен рюкзак, вы не можете передвигаться...'); err('У вас переполнен рюкзак, вы не можете передвигаться...');
$imove = false; $imove = false;
} }
if ($eff->getNumRows() && $_GET['got']) { if ($eff->getNumRows() && $goto) {
err('У вас тяжелая травма, вы не можете передвигатся...'); err('У вас тяжелая травма, вы не можете передвигатся...');
$imove = false; $imove = false;
} }
if ($_GET['goto'] == 'plo' && empty($user['zayavka']) && $imove === true) { if ($goto == 'plo' && !$user->zayavka && $imove === true) {
db::c()->query('UPDATE `users`,`online` SET `users`.`room` = 20,`online`.`room` = 20 WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $_SESSION['uid']); db::c()->query('UPDATE users, online SET users.room = 20, online.room = 20 WHERE online.user_id = users.id AND online.users_id = ?i', $_SESSION['uid']);
header('Location: city.php'); header('Location: city.php');
die("<i>Топ-топ-топ...</i>"); exit("<i>Топ-топ-топ...</i>");
} else { } else {
err('Подали заявку на бой и убегаете из клуба? Нехорошо...'); err('Подали заявку на бой и убегаете из клуба? Нехорошо...');
} }
if ($_GET['goto'] == 'arena' && $user['room'] === 20 && $imove === true) { if ($goto == 'arena' && $user->room === 20 && $imove === true) {
db::c()->query('UPDATE `users`, `online` SET `users`.`room` = 1, `online`.`room` = 1 WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $_SESSION['uid']); db::c()->query('UPDATE users, online SET users.room = 1, online.room = 1 WHERE online.user_id = users.id AND online.user_id = ?i', $_SESSION['uid']);
header('Location: main.php'); header('Location: main.php');
die("<i>Топ-топ-топ...</i>"); exit("<i>Топ-топ-топ...</i>");
} }
} }
@ -366,21 +332,6 @@ if (isset($_GET['use'])) {
usemagic($_GET['use'], $_POST['target']); usemagic($_GET['use'], $_POST['target']);
} }
unset($_SESSION['stackall']);
if (isset($_GET["stack"])) {
$_GET["stack"] = (int)$_GET["stack"];
$rec = db::c()->query('SELECT `id` FROM `inventory` WHERE `id` = ?i AND `owner` = ?i AND `setsale` = 0', $_GET['stack'], $user['id'])->fetch_assoc();
if (isset($rec['id'])) {
stack($rec['id']);
unset($rec);
}
}
if (isset($_GET['unstack'])) {
unstack((int)$_GET['unstack'], (int)$_POST["qty"]);
}
function setShadow($image) function setShadow($image)
{ {
global $user; global $user;
@ -397,67 +348,57 @@ function setShadow($image)
} }
} }
$obraz = filter_input(INPUT_GET, 'obraz'); if ($obraz && ($user->shadow == 'g0.gif' || $user->shadow == 'man0.gif')) {
if ($obraz && ($user['shadow'] == 'g0.gif' || $user['shadow'] == 'man0.gif')) {
setShadow($obraz); setShadow($obraz);
} }
if (isset($_GET['del']) && $_GET['del'] == 1 && $_GET['efid'] > 0) { if ($del == 1 && $effectId > 0) {
$pl = db::c()->query('SELECT `id`, `type` FROM `users_effects` WHERE `owner_id` = ?i AND `id` = ?i', $user['id'], (int)$_GET['efid'])->fetch_assoc(); $pl = db::c()->query('SELECT type FROM users_effects WHERE owner_id = ?i AND effect_id = ?i', $user['id'], $effectId)->fetch_assoc();
if (isset($pl['id'])) { if (isset($pl['type'])) {
echo del_efs($pl['id'], $pl['type']); echo del_efs($effectId, $pl['type']);
} else { } else {
echo "<span class='error'>Эффект не найден!</span>"; echo "<span class='error'>Эффект не найден!</span>";
} }
} }
if ($brons && $ids) {
if (isset($_GET['modif_bron'])) {
$brons = $_GET['modif_bron'];
$ids = $_GET['ids'];
try { try {
$cur = db::c()->query('SELECT free_bron, bron1, bron2, bron3, bron4 FROM inventory WHERE owner = ?i AND id = ?i', $user['id'], $ids)->fetch_assoc(); $cur = db::c()->query('SELECT free_bron, bron1, bron2, bron3, bron4 FROM inventory WHERE owner = ?i AND id = ?i', $user['id'], $ids)->fetch_assoc();
} catch (\Krugozor\Database\Mysql\Exception $e) { } catch (\Krugozor\Database\Mysql\Exception $e) {
echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>"; echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>";
} }
if ($cur['free_bron'] > 0 && $cur[$brons] > 0) { if ($cur['free_bron'] > 0 && $cur[$brons] > 0) {
mysql_query("UPDATE `inventory` SET `free_bron` = (`free_bron`-1), `" . $brons . "` = (`" . $brons . "`+1) WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1"); db::c()->query('UPDATE inventory SET free_bron = free_bron - 1, ?f = ?f +1 WHERE owner_id = ?i AND item_id = ?i', $brons, $brons, $user->id, $ids);
echo "<span class='success'>Параметр брони увеличен!</span>"; echo "<span class='success'>Параметр брони увеличен!</span>";
} }
} }
if ($stats && $ids) {
if (isset($_GET['modif_stat'])) { $cur = db::c()->query('SELECT free_stat, gsila, glovk, ginta, gintel FROM inventory WHERE owner_id = ?i AND item_id = ?i', $user->id, $ids);
$stats = $_GET['modif_stat']; if ($cur['free_stat'] > 0 && $cur[$stats] > 0) {
$ids = $_GET['ids']; db::c()->query('UPDATE inventory SET free_stat = free_stat - 1, ?f = ?f +1 WHERE owner_id = ?i AND item_id = ?i', $stats, $stats, $user->id, $ids);
$cur = mysql_fetch_assoc(mysql_query("SELECT `id`, `free_stat`, `gsila`, `glovk`, `ginta`, `gintel` FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1"));
if (isset($cur['id']) && $cur['free_stat'] > 0 && $cur[$stats] > 0) {
mysql_query("UPDATE `inventory` SET `free_stat` = (`free_stat`-1), `" . $stats . "` = (`" . $stats . "`+1) WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1");
echo "<span class='success'>Параметр увеличен!</span>"; echo "<span class='success'>Параметр увеличен!</span>";
} }
} }
if ($mfs && $ids) {
if (isset($_GET['modif_mf'])) { $cur = db::c()->query('SELECT free_mf, mfkrit, mfuvorot, mfakrit, mfauvorot FROM inventory WHERE owner_id = ?i AND item_id = ?i', $user->id, $ids);
$mfs = $_GET['modif_mf'];
$ids = $_GET['ids'];
$cur = mysql_fetch_assoc(mysql_query("SELECT `id`, `free_mf`, `mfkrit`, `mfakrit`, `mfuvorot`, `mfauvorot` FROM `inventory` WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1"));
if (isset($cur['id']) && $cur['free_mf'] > 0 && $cur[$mfs] > 0) { if (isset($cur['id']) && $cur['free_mf'] > 0 && $cur[$mfs] > 0) {
mysql_query("UPDATE `inventory` SET `free_mf` = (`free_mf`-1), `" . $mfs . "` = (`" . $mfs . "`+1) WHERE `owner` = '" . $user['id'] . "' AND `id` = '" . mysql_real_escape_string($ids) . "' LIMIT 1"); db::c()->query('UPDATE inventory SET free_mf = free_mf - 1, ?f = ?f +1 WHERE owner_id = ?i AND item_id = ?i', $mfs, $mfs, $user->id, $ids);
echo "<span class='success'>Параметр увеличен!</span>"; echo "<span class='success'>Параметр увеличен!</span>";
} }
} }
if ($setShadow) {
if (input::post('setshadow')) {
?> ?>
<!doctype html> <!doctype html>
<html lang="ru"> <html lang="ru">
<head> <head>
<link rel=stylesheet href="css/main.css"> <link rel=stylesheet href="css/main.css">
<link rel=stylesheet href="css/btn.css">
<meta charset="utf-8"> <meta charset="utf-8">
<title></title> <title></title>
</head> </head>
<body> <body>
<div style="text-align: right;"> <div style="text-align: right;">
<input type=button value="Вернуться" onClick="location.href='main.php?edit=<?= mt_rand() ?>';"> <input type=button value="Вернуться" onClick="location.href='main.php?edit=<?= mt_rand() ?>';" class="button">
</div> </div>
<table style="padding:5px; margin:auto;"> <table style="padding:5px; margin:auto;">
<caption><b style="color: red;">Внимание! Образ персонажа выбирается только один раз.</b></caption> <caption><b style="color: red;">Внимание! Образ персонажа выбирается только один раз.</b></caption>
@ -487,31 +428,35 @@ if (input::post('setshadow')) {
</body> </body>
</html> </html>
<?php <?php
die(); exit();
} }
if (isset($_GET['edit'])) { if ($edit) {
$ups = $_GET['ups'] ?? null;
$upm = $_GET['upm'] ?? null;
$use = $_GET['use'] ?? null;
$useTarget = $_POST['target'] ?? null;
$drop = $_GET['drop'] ?? null;
$dress = $_GET['dress'] ?? null;
$undress = $_GET['undress'] ?? null;
$destruct = $_GET['destruct'] ?? null;
if (input::get('ups')) { if ($ups) {
addOnePoint(input::get('ups'), 'stat'); addOnePoint($ups, 'stat');
} }
if ($upm) {
if (input::get('upm')) { addOnePoint($upm, 'mastery');
addOnePoint(input::get('upm'), 'mastery');
} }
if ($drop) {
if (isset($_GET['drop'])) {
$items = new DressedItems($_SESSION['uid']); $items = new DressedItems($_SESSION['uid']);
$items->undressItem($_GET['drop']); $items->undressItem($drop);
} }
//Пока что одеваем предмет отсюда. //Пока что одеваем предмет отсюда.
if (isset($_GET['dress'])) { if ($dress) {
echo dressitem($_GET['dress']); echo dressitem($dress);
} }
if ($destruct) {
if (input::get('destruct')) { $q = db::c()->query('SELECT `id`, `dressed`, `name`, `duration`, `maxdur` FROM `inventory` WHERE `owner` = ?i AND `id` = ?i', $_SESSION['uid'], $destruct);
$q = db::c()->query('SELECT `id`, `dressed`, `name`, `duration`, `maxdur` FROM `inventory` WHERE `owner` = ?i AND `id` = ?i', $_SESSION['uid'], input::get('destruct'));
if ($q->getNumRows()) { if ($q->getNumRows()) {
$q = $q->fetch_assoc(); $q = $q->fetch_assoc();
if (empty($q['dressed'])) { if (empty($q['dressed'])) {
@ -525,27 +470,13 @@ if (isset($_GET['edit'])) {
err('Ошибка: предмет не найден!'); err('Ошибка: предмет не найден!');
} }
} }
if ($use) {
if (input::get('use')) { usemagic($use, $useTarget);
$q = db::c()->query('SELECT `id`, `koll` FROM `inventory` WHERE `id` = ?i AND `owner` = ?i', input::get('use'), $_SESSION['uid']);
if ($q->getNumRows()) {
$q = $q->fetch_assoc();
if ($q['koll'] > 1) {
$id = unstack($q['id'], 1);
usemagic($id, $_POST['target']);
} else {
usemagic($_GET['use'], $_POST['target']);
} }
} else { if ($undress) {
err('Ошибка: предмет не найден!'); undressall($_SESSION['uid']);
}
}
if (input::get('undress')) {
undressallself();
} }
} }
?> ?>
<!doctype html> <!doctype html>
@ -566,29 +497,13 @@ if (isset($_GET['edit'])) {
$(".tooltip").tipTip({maxWidth: "auto", edgeOffset: 0, fadeIn: 300, fadeOut: 500}); $(".tooltip").tipTip({maxWidth: "auto", edgeOffset: 0, fadeIn: 300, fadeOut: 500});
}); });
function gotohref(filename) {
location.href = filename;
}
function saveComplect() {
new miDialog({title: 'Сохранить комплект'}, {edit: 1}, function () {
document.location = '/main.php?' + $.param(this.data);
},
$('<div>Название комплекта :<br /><div style="font-size: smaller;"><b>может содеражать только буквы (англ / русс) и цифры.</b></div></div>').append(miDialog._oneInput({name: 'savecomplect'})), {width: 250});
}
let Hint3Name = ''; let Hint3Name = '';
function okno(title, script, name, coma, errk) { function okno(title, script, name, errk) {
let errkom = ''; let errkom = '';
let com = ''; let com = '';
if (errk === 1) { if (errk === 1) {
errkom = 'Нельзя использовать символы: /\:*?"<>|+%<br>'; errkom = 'Нельзя использовать символы: /\:*?"<>|+%<br>';
com = coma
}
if (errk === 2) {
errkom = 'Такой комплект уже существует<br>';
com = coma
} }
document.getElementById("hint3").innerHTML = '<table width=100% cellspacing=1 cellpadding=0 bgcolor=CCC3AA><tr><td align=center><B>' + title + '</td><td width=20 align=right valign=top style="cursor: pointer" onclick="closehint3();"><BIG><B>x</td></tr><tr><td colspan=2>' + document.getElementById("hint3").innerHTML = '<table width=100% cellspacing=1 cellpadding=0 bgcolor=CCC3AA><tr><td align=center><B>' + title + '</td><td width=20 align=right valign=top style="cursor: pointer" onclick="closehint3();"><BIG><B>x</td></tr><tr><td colspan=2>' +
'<form action="' + script + '" method=POST><table width=100% cellspacing=0 cellpadding=2 bgcolor=FFF6DD><tr><INPUT TYPE=hidden name=sd4 value="6"><td colspan=2><span class="error">' + '<form action="' + script + '" method=POST><table width=100% cellspacing=0 cellpadding=2 bgcolor=FFF6DD><tr><INPUT TYPE=hidden name=sd4 value="6"><td colspan=2><span class="error">' +
@ -599,71 +514,17 @@ if (isset($_GET['edit'])) {
document.getElementById(name).focus(); document.getElementById(name).focus();
Hint3Name = name; Hint3Name = name;
} }
const delay = 30;
let TimerOn = -1, tkHP, maxHP, speed = 750;
const stLen = 185, redHP = 0.33, yellowHP = 0.66;
function setHPlocal() {
tkHP > maxHP && (tkHP = maxHP);
let a = Math.round(tkHP) + "/" + maxHP;
a = stLen - (a.length + 2) * 7;
const b = Math.round((a - 1) / maxHP * tkHP);
a -= b;
const HP = document.getElementById("hp_value");
const HP1 = document.getElementById("HP1");
const HP2 = document.getElementById("HP2");
if (HP) {
HP1.width = b, HP2.width = a, HP1.src = tkHP / maxHP < redHP ? "i/1red.gif" : tkHP / maxHP < yellowHP ? "i/1yellow.gif" : "i/1green.gif", HP.innerHTML = Math.round(tkHP) + "/" + maxHP;
}
tkHP += maxHP / 53 / 230 * (speed / 100);
TimerOn = tkHP < maxHP ? setTimeout("setHPlocal()", delay * 100) : -1
}
$(document).ready(function () {
$('a').live('click', function () {
if ($(this).attr('ajax') !== undefined) {
const ajaxModule = $(this).attr('ajax');
switch (ajaxModule) {
case'mZeInventory':
$('#mZeInventory').html('<div align="center" style="padding:10px;background-color:#d4d2d2;color:grey;"><b>Загрузка...</b></div>');
$.ajax({
url: $(this).attr('href') + '&mZeAjax=' + ajaxModule,
cache: false,
dataType: 'html',
success: function (html) {
$('#mZeInventory').html(html);
}
});
break;
}
return false;
}
});
});
</script> </script>
<title>Окно игры</title> <title>Окно игры</title>
</HEAD> </HEAD>
<body> <body>
<?php
try {
$online = db::c()->query('SELECT 1 FROM `online` WHERE `real_time` >= ?i', (time() - 60));
} catch (Exception $e) {
echo '<div class="debug">В таблице online нет ячейки real_time так как неясно что она делает. Ошибка обращения в базу.</div>';
}
?>
<div id=hint3 class=ahint></div> <div id=hint3 class=ahint></div>
<div id="hint4" style="position: absolute;"></div> <div id="hint4" style="position: absolute;"></div>
<div id="chpassbank" style="display:none; position:absolute; top:50px; left:250px;"></div> <div id="chpassbank" style="display:none; position:absolute; top:50px; left:250px;"></div>
<table width=100%> <table width=100%>
<TR> <TR>
<td style="vertical-align: top; width: 350px"> <td style="vertical-align: top; width: 350px">
<?php <?php $showUser->showUserDoll(0, 1); ?> <!-- Первый столбец -->
$showUser = new User($_SESSION['uid']);
$getItemsBonuses = new DressedItems($_SESSION['uid']);
$showUser->showUserDoll(0, 1);
?> <!-- Первый столбец -->
<div align="center"> <div align="center">
<a href='main.php?edit=1&undress=all'>Снять все</a><BR> <a href='main.php?edit=1&undress=all'>Снять все</a><BR>
<div class="effectList" style="padding-top: 15px; max-height: 150px; width: 220px;"> <div class="effectList" style="padding-top: 15px; max-height: 150px; width: 220px;">
@ -676,16 +537,15 @@ try {
<div> <div>
<br>Уровень: <strong><?= $showUser->level ?></strong> <br>Уровень: <strong><?= $showUser->level ?></strong>
<br>Опыт: <strong><?= $showUser->experience ?></strong> <br>Опыт: <strong><?= $showUser->experience ?></strong>
<br>Побед: <strong><?= 'нет поля' ?></strong> <br>Побед: <strong>??</strong>
<br>Поражений: <strong><?= 'нет поля' ?></strong> <br>Поражений: <strong>??</strong>
<br>Ничьих: <strong><?= 'нет поля' ?></strong> <br>Ничьих: <strong>??</strong>
<br>Деньги: <strong><?= $showUser->money ?></strong> кр. <br>Деньги: <strong><?= $showUser->money ?></strong> кр.
<HR> <HR>
</div> </div>
<!--Параметры--> <!--Параметры-->
<div> <div>
<div class="container"> <div class="container">
Сила: <?= ($showUser->free_stat_points ? $showUser->getStrength(1) . '(' . strval($showUser->strength + $getItemsBonuses->getStrengthBonus()) . ')' : $showUser->strength + $getItemsBonuses->getStrengthBonus()) ?> Сила: <?= ($showUser->free_stat_points ? $showUser->getStrength(1) . '(' . strval($showUser->strength + $getItemsBonuses->getStrengthBonus()) . ')' : $showUser->strength + $getItemsBonuses->getStrengthBonus()) ?>
<br> <br>
Ловкость: <?= ($showUser->free_stat_points ? $showUser->getDexterity(1) . '(' . strval($showUser->dexterity + $getItemsBonuses->getDexterityBonus()) . ')' : $showUser->dexterity + $getItemsBonuses->getDexterityBonus()) ?> Ловкость: <?= ($showUser->free_stat_points ? $showUser->getDexterity(1) . '(' . strval($showUser->dexterity + $getItemsBonuses->getDexterityBonus()) . ')' : $showUser->dexterity + $getItemsBonuses->getDexterityBonus()) ?>
@ -711,18 +571,15 @@ try {
Урон: <?= $showUser->minDamage + $getItemsBonuses->getMinPhysDamage() ?> Урон: <?= $showUser->minDamage + $getItemsBonuses->getMinPhysDamage() ?>
- <?= $showUser->maxDamage + $getItemsBonuses->getMaxPhysDamage() ?> <br> - <?= $showUser->maxDamage + $getItemsBonuses->getMaxPhysDamage() ?> <br>
<br> <br>
<div style="color: gray;">
Защита от огня: ?? <br> Защита от огня: ?? <br>
Защита от воды: ?? <br> Защита от воды: ?? <br>
Защита от вохдуха: ?? <br> Защита от вохдуха: ?? <br>
Защита от земли: ?? <br> Защита от земли: ?? <br>
Защита от яда: ?? <br> Защита от яда: ?? <br>
</div>
Броня головы: <?= $showUser->headArmor ?> <br> Броня головы: <?= $showUser->headArmor ?> <br>
Броня корпуса: <?= $showUser->chestArmor ?> <br> Броня корпуса: <?= $showUser->chestArmor ?> <br>
Броня ног: <?= $showUser->legArmor ?> <br> Броня ног: <?= $showUser->legArmor ?> <br>
</div> </div>
</div> </div>
</td> </td>
<td valign=top> <td valign=top>
@ -733,37 +590,28 @@ try {
title="Образы"> title="Образы">
<?php endif; ?> <?php endif; ?>
<div class="button-group"> <div class="button-group">
<button class="button primary" onclick="gotohref('zayavka.php')">Поединки</button> <button class="button primary" onclick="window.location.href='zayavka.php';">Поединки</button>
<button class="button" onclick="gotohref('module_quest.php')">Активные задания</button> <button class="button" onclick="window.location.href='module_quest.php';">Активные задания
<button class="button" onclick="gotohref('main.php?edit=1')">Инвентарь</button> </button>
<?php if ($user['room'] === 20): ?> <?php if ($user->room === 20): ?>
<button class="button icon move" onclick="gotohref('main.php?goto=arena')">Войти внутрь <button class="button icon move" onclick="window.location.href='main.php?goto=arena';">Войти
внутрь
</button> </button>
<?php else: ?> <?php else: ?>
<button class="button icon move" onclick="gotohref('main.php?goto=plo')">Выйти на улицу <button class="button icon move" onclick="window.location.href='main.php?goto=plo';">Выйти
на улицу
</button> </button>
<?php endif; ?> <?php endif; ?>
<button class="button icon loop" onclick="gotohref('main.php')">Обновить страницу</button> <button class="button icon loop" onclick="window.location.href='main.php';">Обновить страницу
</button>
</div> </div>
</div> </div>
<div id="mZeInventory"> <!--рюкзак--> <div> <!--рюкзак-->
<table BORDER=0 WIDTH=100% CELLSPACING="1" CELLPADDING="2" BGCOLOR="#A5A5A5"> <table BORDER=0 WIDTH=100% CELLSPACING="1" CELLPADDING="2" BGCOLOR="#A5A5A5">
<caption>Рюкзак <caption>Рюкзак
(масса: <?= '?? /' . $showUser->strength * 4 ?>) (масса: <?= '?? /' . $showUser->strength * 4 ?>)
</caption> </caption>
<?php <?php
$data_query = 'SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot = 0 AND on_sale = 0';
$data = db::c()->query($data_query, $_SESSION['uid']);
$groupNum = [];
$viewInventory = [];
$getItems = [];
$row = [];
$iteminfo = [];
while ($row = $data->fetch_assoc()) {
$iteminfo[] = new InventoryItem($row);
}
foreach ($iteminfo as $ii) { foreach ($iteminfo as $ii) {
echo "<tr><td width='100' align='center' bgcolor='#d3d3d3'>"; echo "<tr><td width='100' align='center' bgcolor='#d3d3d3'>";
$ii->printImage(); $ii->printImage();
@ -771,17 +619,6 @@ try {
echo "<td valign='top' bgcolor='#d3d3d3'>"; echo "<td valign='top' bgcolor='#d3d3d3'>";
$ii->printInfo(); $ii->printInfo();
} }
if ($viewInventory && $getItems) {
foreach ($viewInventory as $viewCategiryes) {
echo $viewCategiryes['header'];
foreach ($viewCategiryes['ids'] as $viewItem) {
echo $getItems[$viewItem];
}
echo $viewCategiryes['fooder'];
}
}
if ($data->getNumRows() == 0) { if ($data->getNumRows() == 0) {
echo "<tr><th colspan='3' align=center bgcolor=#C7C7C7>Пусто"; echo "<tr><th colspan='3' align=center bgcolor=#C7C7C7>Пусто";
} }

View File

@ -201,7 +201,7 @@ print"<table width=\"440\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr> <tr>
<td align=\"left\"><b style='font-size:12px;'>".$ber['login']."[".$ber["level"]."]</b><IMG alt=\"Инфо\" src=\"i/inf.gif\" width=12 height=12></td> <td align=\"left\"><b style='font-size:12px;'>".$ber['login']."[".$ber["level"]."]</b><IMG alt=\"Инфо\" src=\"i/inf.gif\" width=12 height=12></td>
<td align=\"left\">"; <td align=\"left\">";
echo setHP($ber['hp'],$ber['maxhp']); echo showProgressBar($ber['hp'],$ber['maxhp']);
print"</td>"; print"</td>";
if($ber['id'] == $glav_id){ if($ber['id'] == $glav_id){
print"<td align=\"left\" ><IMG alt=\"Лидер группы\" src=\"http://img.combats.com/i/misc/lead1.gif\" width=24 height=15>"; print"<td align=\"left\" ><IMG alt=\"Лидер группы\" src=\"http://img.combats.com/i/misc/lead1.gif\" width=24 height=15>";

View File

@ -1,56 +1,75 @@
<?php <?php
session_start(); session_start();
if (empty($_SESSION['uid'])) {header("Location: index.php");} if (empty($_SESSION['uid'])) {
header("Location: index.php");
}
require_once("functions.php"); require_once("functions.php");
$d = db::c()->query('SELECT SUM(`massa`) FROM `inventory` WHERE `dressed` = 0 AND `owner` = ?i', $_SESSION['uid'])->fetch_assoc(); $d = db::c()->query('SELECT SUM(`massa`) FROM `inventory` WHERE `dressed` = 0 AND `owner` = ?i', $_SESSION['uid'])->fetch_assoc();
if ($user['room'] != 23) { if ($user->room != 23) {
header("Location: main.php"); header("Location: main.php");
die(); exit();
} }
if ($user['battle'] != 0) { if ($user->battle) {
header('location: fbattle.php'); header('location: fbattle.php');
die(); exit();
} }
define('GRAV_LIMIT', 32);
define('GRAV_COST', 30);
define('REPAIR_STATUS', [
'OK_GRAV_ADDED' => 'Гравировка добавлена!',
'OK_GRAV_REMOVED' => 'Гравировка удалена!',
'OK_REPAIRED' => 'Предмет отремонтирован!',
'ERROR_SIZE_LIMIT' => 'Превышен лимит в ' . GRAV_LIMIT . ' символа!',
'ERROR_NO_MONEY' => 'Недостаточно денег!',
]);
$gravirovkaText = $_POST['gravirovka_text'] ?? null;
$itemId = $_POST['itemId'] ?? null;
$gravirovkaRemove = $_POST['gravirovka_remove'] ?? null;
$action = $_POST['action'] ?? null;
$goto = $_POST['goto'] ?? null;
// Гравировка 30 кред. Максимум 32 символа. // Гравировка 30 кред. Максимум 32 символа.
if (input::post('gravirovka_text') AND input::post('itemId')) { if ($gravirovkaText && $itemId) {
if (30 <= $user['money']) { if ($user->money >= GRAV_COST) {
if (33 > iconv_strlen(input::post('gravirovka_text'))) { if (iconv_strlen($gravirovkaText) <= GRAV_LIMIT) {
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 `inventory` SET `text` = "?s" WHERE `dressed` = 0 AND `setsale` = 0 AND `owner` = ?i AND `id` = ?i', $gravirovkaText, $_SESSION['uid'], $itemId);
db::c()->query('UPDATE `users` SET `money` = `money` - 30 WHERE `id` = ?i', $_SESSION['uid']); db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', GRAV_COST, $_SESSION['uid']);
$status = 'Гравировка добавлена!'; $status = REPAIR_STATUS['OK_GRAV_ADDED'];
} else {$status = 'Превышен лимит в 32 символа!';} } else {
} else {$status = 'Недостаточно денег!';} $status = REPAIR_STATUS['ERROR_SIZE_LIMIT'];
}
} else {
$status = REPAIR_STATUS['ERROR_NO_MONEY'];
}
} }
// Снять гравировку. // Снять гравировку.
if (input::post('gravirovka_remove')) { if ($gravirovkaRemove) {
if (30 <= $user['money']) { if ($user->money >= GRAV_COST) {
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 `inventory` SET `text` = ?n WHERE `dressed` = 0 AND `setsale` = 0 AND `id` = ?i AND `owner` = ?i', null, $gravirovkaRemove, $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `money` = `money` - 30 WHERE `id` = ?i', $_SESSION['uid']); db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', GRAV_COST, $_SESSION['uid']);
$status = 'Гравировка удалена!'; $status = REPAIR_STATUS['OK_GRAV_REMOVED'];
} else {$status = 'Недостаточно денег!';} } else {
$status = REPAIR_STATUS['ERROR_NO_MONEY'];
}
} }
// Ремонт 0,5 кред за единицу. // Ремонт 0,5 кред за единицу.
if (input::post('action') == 'repair' AND input::post('itemId')) { if ($action == 'repair' && $itemId) {
$q = db::c()->query('SELECT `name`, `duration` FROM `inventory` WHERE id = ?i', input::post('itemId'))->fetch_assoc(); $q = db::c()->query('SELECT `name`, `duration` FROM `inventory` WHERE id = ?i', $itemId)->fetch_assoc();
if (ceil($q['duration'] / 2) < $user['money']) { if ($user->money > ceil($q['duration'] / 2)) {
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 `inventory` SET `maxdur` = `maxdur` - 1, `duration` = 0 WHERE `dressed` = 0 AND `setsale` = 0 AND `id` = ?i AND `owner` = ?i', $itemId, $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', ceil($q['duration'] / 2), $_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) . ' кр.'); addToDelo('Отремонтирован предмет «' . $q['name'] . '» id:(' . $itemId . ') за ' . ceil($q['duration'] / 2) . ' кр.');
$status = 'Предмет отремонтирован!'; $status = REPAIR_STATUS['OK_REPAIRED'];
} else {$status = 'Недостаточно денег!';} } else {
$status = REPAIR_STATUS['ERROR_NO_MONEY'];
}
} }
if ($goto == 'remont') {
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']); $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 ($goto == 'gravirovka') {
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']); $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']);
} }
?> ?>
<!doctype html> <!doctype html>
<HTML lang="ru"> <HTML lang="ru">
@ -82,7 +101,7 @@ if (input::post('goto') == 'gravirovka') {
<span class="legend">Зал гравировки</span> <span class="legend">Зал гравировки</span>
<form method="post"> <form method="post">
<input type="hidden" name="goto" value="gravirovka"> <input type="hidden" name="goto" value="gravirovka">
<input type="submit" value="Войти"> <input type="submit" value="Войти" disabled>
</form> </form>
<span class="wrap">Нанесение надписей на оружие и удаление надписей из любого обмундирования. <span class="wrap">Нанесение надписей на оружие и удаление надписей из любого обмундирования.
Максимум 32 символа!</span> Максимум 32 символа!</span>
@ -92,7 +111,7 @@ if (input::post('goto') == 'gravirovka') {
<span class="wrap"><?= $status ?></span> <span class="wrap"><?= $status ?></span>
<?php endif; ?> <?php endif; ?>
</div> </div>
<?php if (input::post('goto') == 'remont'): <?php if ($goto == 'remont'):
while ($row = $remont_query->fetch_assoc()): ?> while ($row = $remont_query->fetch_assoc()): ?>
<div class="appblock"> <div class="appblock">
<span class="legend"><?= $row['name'] ?></span> <span class="legend"><?= $row['name'] ?></span>
@ -109,7 +128,7 @@ if (input::post('goto') == 'gravirovka') {
</div> </div>
<?php endwhile; endif; ?> <?php endwhile; endif; ?>
<?php if (input::post('goto') == 'gravirovka'): <?php if ($goto == 'gravirovka'):
while ($row = $gravirovka_query->fetch_assoc()): ?> while ($row = $gravirovka_query->fetch_assoc()): ?>
<div class="appblock"> <div class="appblock">
<span class="legend"><?= $row['name'] ?></span> <span class="legend"><?= $row['name'] ?></span>
@ -135,7 +154,7 @@ if (input::post('goto') == 'gravirovka') {
<?php endwhile; endif; ?> <?php endwhile; endif; ?>
<?php <?php
if (input::post('goto') == 'modding') { if ($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; "); $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)) { while ($row = mysql_fetch_array($data)) {
?> ?>
@ -152,9 +171,9 @@ if (input::post('goto') == 'gravirovka') {
</TR> </TR>
<?php <?php
} }
} }
if (input::post('goto') == 'podgon') { if ($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; "); $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)) { while ($row = mysql_fetch_array($data)) {
?> ?>
@ -180,8 +199,8 @@ if (input::post('goto') == 'gravirovka') {
</TR> </TR>
<?php <?php
} }
} }
?> ?>
</TABLE> </TABLE>
</body> </body>
</html> </html>

View File

@ -11,10 +11,9 @@ if ($user['battle'] != 0) {
} }
db::c()->query('LOCK TABLES `bots` WRITE, `battle` WRITE, `logs` WRITE, `users` WRITE, `inventory` WRITE, `zayavka` WRITE, `effects` WRITE, `online` WRITE, `clans` WRITE'); db::c()->query('LOCK TABLES `bots` WRITE, `battle` WRITE, `logs` WRITE, `users` WRITE, `inventory` WRITE, `zayavka` WRITE, `effects` WRITE, `online` WRITE, `clans` WRITE');
$do = $_GET['do'] ?? null;
if ((input::check('do') == "clear") AND $user['admin'] == 1) { if ($do == "clear" && $user->admin == 1) {
db::c()->query('UPDATE `zayavka` SET `coment` = "?s" WHERE `id` = ?i', '<em>Вырезано цензурой!</em>', $_GET['zid']); db::c()->query('UPDATE `zayavka` SET `coment` = "?s" WHERE `id` = ?i', '<em>Вырезано цензурой!</em>', $_GET['zid']);
} }
if (!empty($_GET['del']) && $user['admin'] == 1) { //удаление заявки на бой. if (!empty($_GET['del']) && $user['admin'] == 1) { //удаление заявки на бой.