Merge pull request 'dev' (#38) from dev into master

Reviewed-on: https://src.lopar.us/lopar/battles/pulls/38
Closes #35
Closes #26
This commit is contained in:
Ivor Barhansky 2021-02-03 08:56:48 +00:00
commit 34c608c501
137 changed files with 2410 additions and 6252 deletions

143
admin/NewItem.php Normal file
View File

@ -0,0 +1,143 @@
<?php
# Date: 31.01.2021 (20:21)
?>
<form method=post>
<div>
<table>
<caption>Добавление вещей в магазин</caption>
<tr>
<th id="main">Основное
<tr>
<td><input name="name" placeholder="Название">
<tr>
<td><input name="image" placeholder="Картинка">
<tr>
<td><select name="shop">
<option value="0" selected disabled>Тип магазина</option>
<option value="1">Обычный</option>
<option value="2">Цветной</option>
</select>
<tr>
<td><input name=count placeholder="Количество (шт.)">
<tr>
<td><select name="item_type">
<option value="0" selected disabled>Тип предмета</option>
<option value="1">Шлем</option>
<option value="2">Броня</option>
<option value="3">Поножи</option>
<option value="4">Сапоги</option>
<option value="5">Перчатки</option>
<option value="6">Оружие</option>
<option value="7">Щит</option>
<option value="8">Пояс</option>
<option value="9">Кольцо</option>
<option value="10">Амулет</option>
<option value="20">Расходник</option>
<option value="50">Всё остальное</option>
<option value="100">Хлам</option>
</select>
<tr>
<td><input name=weight placeholder="Масса">
<tr>
<td><input name=durability placeholder="Макс. износ">
<tr>
<td><input name=price placeholder="Цена (кр.)">
<tr>
<th id="needs">Требования
<tr>
<td><input name=need_level placeholder="Уровень">
<tr>
<td><input name=need_strength placeholder="Сила">
<tr>
<td><input name=need_dexterity placeholder="Ловкость">
<tr>
<td><input name=need_intuition placeholder="Интуиция">
<tr>
<td><input name=need_endurance placeholder="Выносливость">
<tr>
<td><input name=need_intelligence placeholder="Интеллект">
<tr>
<td><input name=need_wisdom placeholder="Мудрость">
<tr>
<th id="adds">Характеристики
<tr>
<td><input name=minu placeholder="Мин.урон">
<tr>
<td><input name=maxu placeholder="Макс.урон">
<tr>
<td><input name=gsila placeholder="Сила">
<tr>
<td><input name=glovk placeholder="Ловкость">
<tr>
<td><input name=ginta placeholder="Интуиция">
<tr>
<td><input name=gintel placeholder="Интеллект">
<tr>
<td><input name=ghp placeholder="НР">
<tr>
<td><input name=mfkrit placeholder="Мф.крит">
<tr>
<td><input name=mfakrit placeholder="Мф.антикрит">
<tr>
<td><input name=mfuvorot placeholder="Мф.уворот">
<tr>
<td><input name=mfauvorot placeholder="Мф.антиуворот">
<tr>
<td><input name=gnoj placeholder="Ум.ножи">
<tr>
<td><input name=gtopor placeholder="Ум.топоры">
<tr>
<td><input name=gdubina placeholder="Ум.дубины">
<tr>
<td><input name=gmech placeholder="Ум.мечи">
<tr>
<td><input name=bron1 placeholder="Броня головы">
<tr>
<td><input name=bron2 placeholder="Броня корпуса">
<tr>
<td><input name=bron3 placeholder="Броня пояса">
<tr>
<td><input name=bron4 placeholder="Броня ног">
<tr>
<td><input name=gfire placeholder="Мастерство огня">
<tr>
<td><input name=gwater placeholder="Мастерство воды">
<tr>
<td><input name=gair placeholder="Мастерство воздуха">
<tr>
<td><input name=gearth placeholder="Мастерство земли">
<tr>
<td><input name=glight placeholder="Светлая магия">
<tr>
<td><input name=ggray placeholder="Серая магия">
<tr>
<td><input name=gdark placeholder="Темная магия">
<tr>
<td><input name=encicl placeholder="В энциклопедию">
<tr>
<td><input name=magic placeholder="Наложенно заклятие">
</table>
<INPUT TYPE="submit" value="Добавить">
</div>
</form>
<?php
if (isset($_POST)) {
echo "Ждём лучших времён!";
//if($_POST['razdel'] !=7) $goden_tmp=0; else */
// $goden_tmp = $_POST['goden'];
//
// if ($_POST['shop'] == 1) if (mysql_query("INSERT INTO shop(name,duration,maxdur,cost,ecost,nlevel,nsila,nlovk,ninta,nvinos,nintel,nmudra,nnoj,ntopor,ndubina,nmech,nalign,minu,maxu,goden,gsila,glovk,ginta,gintel,ghp,mfkrit,mfakrit,mfuvorot,mfauvorot,gnoj,gtopor,gdubina,gmech,img,count,bron1,bron2,bron3,bron4,magic,type,massa,needident,nfire,nwater,nair,nearth,nlight,ngray,ndark,gfire,gwater,gair,gearth,glight,ggray,gdark,encicl,artefact,letter,isrep,razdel) VALUES ('" . $_POST['name'] . "','" . $_POST['duration'] . "','" . $_POST['maxdur'] . "','" . $_POST['cost'] . "','" . $_POST['ecost'] . "','" . $_POST['nlevel'] . "','" . $_POST['nsila'] . "','" . $_POST['nlovk'] . "','" . $_POST['ninta'] . "','" . $_POST['nvinos'] . "','" . $_POST['nintel'] . "','" . $_POST['nmudra'] . "','" . $_POST['nnoj'] . "','" . $_POST['ntopor'] . "','" . $_POST['ndubina'] . "','" . $_POST['nmech'] . "','" . $_POST['nalign'] . "','" . $_POST['minu'] . "','" . $_POST['maxu'] . "','" . $goden_tmp . "','" . $_POST['gsila'] . "','" . $_POST['glovk'] . "','" . $_POST['ginta'] . "','" . $_POST['gintel'] . "','" . $_POST['ghp'] . "','" . $_POST['mfkrit'] . "','" . $_POST['mfakrit'] . "','" . $_POST['mfuvorot'] . "','" . $_POST['mfauvorot'] . "','" . $_POST['gnoj'] . "','" . $_POST['gtopor'] . "','" . $_POST['gdubina'] . "','" . $_POST['gmech'] . "','" . $_POST['img'] . "','" . $_POST['count'] . "','" . $_POST['bron1'] . "','" . $_POST['bron2'] . "','" . $_POST['bron3'] . "','" . $_POST['bron4'] . "','" . $_POST['magic'] . "','" . $_POST['type'] . "','" . $_POST['massa'] . "','" . $_POST['needident'] . "','" . $_POST['nfire'] . "','" . $_POST['nwater'] . "','" . $_POST['nair'] . "','" . $_POST['nearth'] . "','" . $_POST['nlight'] . "','" . $_POST['ngray'] . "','" . $_POST['ndark'] . "','" . $_POST['gfire'] . "','" . $_POST['gwater'] . "','" . $_POST['gair'] . "','" . $_POST['gearth'] . "','" . $_POST['glight'] . "','" . $_POST['ggray'] . "','" . $_POST['gdark'] . "','" . $_POST['encicl'] . "','0','" . $_POST['letter'] . "','" . $_POST['isrep'] . "','" . $_POST['razdel'] . "');")) {
// echo "Предмет успешно добавлен";
// } else {
// echo "Предмет не был добавлен!-1";
// };
//
// if ($_POST['shop'] == 2) if (mysql_query("INSERT INTO fshop(name,duration,maxdur,cost,ecost,nlevel,nsila,nlovk,ninta,nvinos,nintel,nmudra,nnoj,ntopor,ndubina,nmech,nalign,minu,maxu,goden,gsila,glovk,ginta,gintel,ghp,mfkrit,mfakrit,mfuvorot,mfauvorot,gnoj,gtopor,gdubina,gmech,img,count,bron1,bron2,bron3,bron4,magic,type,massa,needident,nfire,nwater,nair,nearth,nlight,ngray,ndark,gfire,gwater,gair,gearth,glight,ggray,gdark,letter,isrep,razdel) VALUES ('" . $_POST['name'] . "','" . $_POST['duration'] . "','" . $_POST['maxdur'] . "','" . $_POST['cost'] . "','" . $_POST['ecost'] . "','" . $_POST['nlevel'] . "','" . $_POST['nsila'] . "','" . $_POST['nlovk'] . "','" . $_POST['ninta'] . "','" . $_POST['nvinos'] . "','" . $_POST['nintel'] . "','" . $_POST['nmudra'] . "','" . $_POST['nnoj'] . "','" . $_POST['ntopor'] . "','" . $_POST['ndubina'] . "','" . $_POST['nmech'] . "','" . $_POST['nalign'] . "','" . $_POST['minu'] . "','" . $_POST['maxu'] . "','" . $goden_tmp . "','" . $_POST['gsila'] . "','" . $_POST['glovk'] . "','" . $_POST['ginta'] . "','" . $_POST['gintel'] . "','" . $_POST['ghp'] . "','" . $_POST['mfkrit'] . "','" . $_POST['mfakrit'] . "','" . $_POST['mfuvorot'] . "','" . $_POST['mfauvorot'] . "','" . $_POST['gnoj'] . "','" . $_POST['gtopor'] . "','" . $_POST['gdubina'] . "','" . $_POST['gmech'] . "','" . $_POST['img'] . "','" . $_POST['count'] . "','" . $_POST['bron1'] . "','" . $_POST['bron2'] . "','" . $_POST['bron3'] . "','" . $_POST['bron4'] . "','" . $_POST['magic'] . "','" . $_POST['type'] . "','" . $_POST['massa'] . "','" . $_POST['needident'] . "','" . $_POST['nfire'] . "','" . $_POST['nwater'] . "','" . $_POST['nair'] . "','" . $_POST['nearth'] . "','" . $_POST['nlight'] . "','" . $_POST['ngray'] . "','" . $_POST['ndark'] . "','" . $_POST['gfire'] . "','" . $_POST['gwater'] . "','" . $_POST['gair'] . "','" . $_POST['gearth'] . "','" . $_POST['glight'] . "','" . $_POST['ggray'] . "','" . $_POST['gdark'] . "','" . $_POST['letter'] . "','" . $_POST['isrep'] . "','" . $_POST['razdel'] . "');")) {
// echo "Предмет успешно добавлен";
// } else {
// echo "Предмет не был добавлен!" . mysql_error();
// };
//
}
//End item adder

File diff suppressed because it is too large Load Diff

View File

@ -7,8 +7,8 @@
session_start(); session_start();
require_once "../functions.php"; require_once "../functions.php";
$user = $user ?? new User($_SESSION['uid']);
if (!$user->admin) { if (!$user->getAdmin()) {
header("HTTP/1.0 404 Not Found"); header("HTTP/1.0 404 Not Found");
exit; exit;
} }

View File

@ -45,9 +45,9 @@ function setProfession($name, $type, $needMoney, $needLevel)
$profId = 22; $profId = 22;
} }
if (!empty($profId)) { if (!empty($profId)) {
$user->money -= $needMoney; $user->setMoney($user->getMoney() - $needMoney);
Bank::setWalletMoney($user->money, $user->id); Bank::setWalletMoney($user->getMoney(), $user->getId());
db::c()->query('UPDATE `users` SET ?f = ?i WHERE `id` = ?i', 'prof' . $type, $profId, $user->id); db::c()->query('UPDATE `users` SET ?f = ?i WHERE `id` = ?i', 'prof' . $type, $profId, $user->getId());
$deloText = "{$user['login']} купил профессию «{$name}» в академии за {$needMoney} кр."; $deloText = "{$user['login']} купил профессию «{$name}» в академии за {$needMoney} кр.";
GameLogs::addUserLog($_SESSION['uid'], $deloText); GameLogs::addUserLog($_SESSION['uid'], $deloText);
$user['prof' . $type] = true; $user['prof' . $type] = true;
@ -69,7 +69,7 @@ if ($get == 'medic') {
} }
if ($get == 'exit') { if ($get == 'exit') {
db::c()->query('UPDATE `users`,`online` SET `users`.`room` = 2702, `online`.`room` = 2702 WHERE `users`.`id` = ?i AND `online`.`id` = ?i', $user->id, $user->id); db::c()->query('UPDATE `users`,`online` SET `users`.`room` = 2702, `online`.`room` = 2702 WHERE `users`.`id` = ?i AND `online`.`id` = ?i', $user->getId(), $user->getId());
header('Location: city.php'); header('Location: city.php');
} }
Template::header('Академия'); Template::header('Академия');
@ -82,8 +82,8 @@ Template::header('Академия');
<div><?= $status ?></div> <div><?= $status ?></div>
<div class="appblock appblock-main"> <div class="appblock appblock-main">
<span class="legend">Информация</span> <span class="legend">Информация</span>
<span class="wrap">Кредиты<span class="num"><?= $user->money ?></span></span> <span class="wrap">Кредиты<span class="num"><?= $user->getMoney() ?></span></span>
<span class="wrap">Уровень персонажа<span class="num"><?= $user->level ?></span></span> <span class="wrap">Уровень персонажа<span class="num"><?= $user->getLevel() ?></span></span>
</div> </div>
<div class="appblock"> <div class="appblock">
<span class="legend">Наёмник</span> <span class="legend">Наёмник</span>

View File

@ -1,11 +1,18 @@
<?php <?php
use Battles\Bank;
use Battles\Rooms;
use Battles\Template;
use Battles\User;
use Exceptions\GameException;
ob_start("ob_gzhandler"); ob_start("ob_gzhandler");
session_start(); session_start();
require_once "functions.php"; require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']); $user = $user ?? new User($_SESSION['uid']);
const SUCCESS = "Успешная операция!"; const SUCCESS = "Успешная операция!";
$bank = new \Battles\Bank($user->id); $bank = new Bank($user->getId());
$status = ''; $status = '';
$toid = $_POST['to_id'] ?? 0; $toid = $_POST['to_id'] ?? 0;
@ -15,37 +22,37 @@ try {
// Зачисление кредитов на счёт. // Зачисление кредитов на счёт.
if ($submit === 'depositMoney' && $summa) { if ($submit === 'depositMoney' && $summa) {
$operation = $bank->depositMoney($summa); $operation = $bank->depositMoney($summa);
$user->money = $operation['walletMoney']; $user->setMoney($operation['walletMoney']);
$bank->setMoney($operation['bankMoney']); $bank->setMoney($operation['bankMoney']);
$status = SUCCESS; $status = SUCCESS;
} }
// Снятие кредитов со счёта. // Снятие кредитов со счёта.
if ($submit === 'withdrawMoney' && $summa) { if ($submit === 'withdrawMoney' && $summa) {
$operation = $bank->withdrawMoney($summa); $operation = $bank->withdrawMoney($summa);
$user->money = $operation['walletMoney']; $user->setMoney($operation['walletMoney']);
$bank->setMoney($operation['bankMoney']); $bank->setMoney($operation['bankMoney']);
$status = SUCCESS; $status = SUCCESS;
} }
// Перевод кредитов на другой счёт. // Перевод кредитов на другой счёт.
if ($submit === 'sendMoney' && $summa && $toid) { if ($submit === 'sendMoney' && $summa && $toid) {
$user->money = $bank->sendMoney($toid, $summa); $user->setMoney($bank->sendMoney($toid, $summa));
$status = SUCCESS; $status = SUCCESS;
} }
} catch (\Exceptions\GameException $e) { } catch (GameException $e) {
echo 'Банковская ошибка!'; echo 'Банковская ошибка!';
} finally { } finally {
unset($submit, $summa, $toid); unset($submit, $summa, $toid);
} }
\Battles\Template::header('Банк'); Template::header('Банк');
?> ?>
<link href="css/secondary.css" rel="stylesheet"/> <link href="css/secondary.css" rel="stylesheet"/>
<script src="js/main.js"></script> <script src="js/main.js"></script>
<?php \Battles\Template::buildingTop(\Battles\Rooms::$roomNames[29], 'strah') ?> <?php Template::buildingTop(Rooms::$roomNames[29], 'strah') ?>
<div><?= $status ?></div> <div><?= $status ?></div>
<div class="appblock appblock-main"> <div class="appblock appblock-main">
<span class="wrap">На счету: <span class="num"><?= $bank->getMoney() ?></span></span> <span class="wrap">На счету: <span class="num"><?= $bank->getMoney() ?></span></span>
<hr> <hr>
<span class="wrap">На руках: <span class="num"><?= $user->money ?></span></span> <span class="wrap">На руках: <span class="num"><?= $user->getMoney() ?></span></span>
</div> </div>
<div class="appblock"> <div class="appblock">
<span class="legend">Работа со счётом</span> <span class="legend">Работа со счётом</span>

View File

@ -5,7 +5,7 @@ if (empty($_SESSION['uid'])) {
} }
require_once "functions.php"; require_once "functions.php";
if (empty($user->clan)) { if (empty($user->getClan())) {
exit; exit;
} }
$is_now = db::c()->query('SELECT `id` FROM `abils_klan` WHERE `klan` = ?i', $user['klan'])->fetch_assoc(); $is_now = db::c()->query('SELECT `id` FROM `abils_klan` WHERE `klan` = ?i', $user['klan'])->fetch_assoc();

View File

@ -1,7 +1,7 @@
<?php <?php
session_start(); session_start();
require_once('functions.php'); require_once('functions.php');
if ($user->room == 51) { if ($user->getRoom() == 51) {
header('location: city.php'); header('location: city.php');
exit; exit;
} }

View File

@ -1,8 +1,12 @@
<?php <?php
use Battles\Template;
use Battles\User;
session_start(); session_start();
require_once "functions.php"; require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']); $user = $user ?? new User($_SESSION['uid']);
if ($user->room == 403) { if ($user->getRoom() == 403) {
include "startpodzemel.php"; include "startpodzemel.php";
if ($_GET['act'] == "cexit") { if ($_GET['act'] == "cexit") {
$das = mysql_query("select glava,glav_id from `labirint` where user_id='" . $user['id'] . "'"); $das = mysql_query("select glava,glav_id from `labirint` where user_id='" . $user['id'] . "'");
@ -37,7 +41,7 @@ if ($user->room == 403) {
'Ключик №9', 'Ключик №9',
'Ключик №10' 'Ключик №10'
]; ];
db::c()->query('DELETE FROM inventory WHERE name IN ("?s") AND owner_id = ?i', implode(",", $items_to_delete), $user->id); db::c()->query('DELETE FROM inventory WHERE name IN ("?s") AND owner_id = ?i', implode(",", $items_to_delete), $user->getId());
} }
} }
$e = mysql_query("DELETE FROM labirint WHERE user_id='" . $user['id'] . "'"); $e = mysql_query("DELETE FROM labirint WHERE user_id='" . $user['id'] . "'");
@ -50,11 +54,11 @@ if ($user->room == 403) {
{ {
$frt = mysql_query("select user_id from `labirint` where glava='" . $glava . "'"); $frt = mysql_query("select user_id from `labirint` where glava='" . $glava . "'");
while ($rbb = mysql_fetch_array($frt)) { while ($rbb = mysql_fetch_array($frt)) {
addchp('<b>' . $user->login . '</b> поднял предмет "' . $mis . '". ', '{[]}' . Nick::id($rbb["user_id"])->short() . '{[]}'); addchp('<b>' . $user->getLogin() . '</b> поднял предмет "' . $mis . '". ', '{[]}' . Nick::id($rbb["user_id"])->short() . '{[]}');
} }
} }
} }
\Battles\Template::header('canalizaciya'); Template::header('canalizaciya');
$ros = mysql_query("SELECT * FROM `labirint` WHERE `user_id`='{$_SESSION['uid']}'"); $ros = mysql_query("SELECT * FROM `labirint` WHERE `user_id`='{$_SESSION['uid']}'");
$mir = mysql_fetch_array($ros); $mir = mysql_fetch_array($ros);

View File

@ -1,5 +1,5 @@
<?php <?php
if ($user->room == 403) { if ($user->getRoom() == 403) {
$s = db::c()->query('SELECT * FROM podzem2 WHERE name= "?s"', $mir['name'])->fetch_assoc(); $s = db::c()->query('SELECT * FROM podzem2 WHERE name= "?s"', $mir['name'])->fetch_assoc();
$rooms[0] = ""; $rooms[0] = "";

View File

@ -1,4 +1,7 @@
<?php <?php
use Battles\Template;
session_start(); session_start();
require_once 'functions.php'; require_once 'functions.php';
//require_once 'cave/cave_bots.php'; //require_once 'cave/cave_bots.php';
@ -284,15 +287,15 @@ function makedeath()
{ {
global $user, $floor, $loses, $x, $y, $dir; global $user, $floor, $loses, $x, $y, $dir;
$cavedata = Config::$cavedata ?? []; $cavedata = Config::$cavedata ?? [];
if (!isset($cavedata[$user->room]['x' . $floor])) { if (!isset($cavedata[$user->getRoom()]['x' . $floor])) {
$floor = 1; $floor = 1;
loadmap(); loadmap();
} }
mysql_query("UPDATE `caveparties` SET `floor` = $floor, `x` = '" . $cavedata[$user->room]['x' . $floor] . "', `y` = '" . $cavedata[$user->room]['y' . $floor] . "', `dir` = '" . $cavedata[$user->room]['dir' . $floor] . "', `loses` = (`loses`+1) WHERE `user` = '$user[id]' LIMIT 1"); mysql_query("UPDATE `caveparties` SET `floor` = $floor, `x` = '" . $cavedata[$user->getRoom()]['x' . $floor] . "', `y` = '" . $cavedata[$user->getRoom()]['y' . $floor] . "', `dir` = '" . $cavedata[$user->getRoom()]['dir' . $floor] . "', `loses` = (`loses`+1) WHERE `user` = '$user[id]' LIMIT 1");
mysql_query('UPDATE `users` SET `hp` = 1 WHERE `id` = "' . $user['id'] . '" LIMIT 1'); mysql_query('UPDATE `users` SET `hp` = 1 WHERE `id` = "' . $user['id'] . '" LIMIT 1');
$x = $cavedata[$user->room]['x' . $floor]; $x = $cavedata[$user->getRoom()]['x' . $floor];
$y = $cavedata[$user->room]['y' . $floor]; $y = $cavedata[$user->getRoom()]['y' . $floor];
$dir = $cavedata[$user->room]['dir' . $floor]; $dir = $cavedata[$user->getRoom()]['dir' . $floor];
updparties(); updparties();
$loses++; $loses++;
} }
@ -463,7 +466,7 @@ while ($rec = mysql_fetch_assoc($r)) {
$party[] = $rec; $party[] = $rec;
} }
if ($user->room == 621) { if ($user->getRoom() == 621) {
$base = "/underdesigns/alchcave"; $base = "/underdesigns/alchcave";
} }
@ -544,8 +547,8 @@ if ($_GET['useitem']) {
$ty = $y + 1; $ty = $y + 1;
} }
if (@$_GET['useitem']) { if (@$_GET['useitem']) {
if (file_exists("underground/objects/$user->room.php")) { if (file_exists("underground/objects/$user->getRoom().php")) {
include "underground/objects/$user->room.php"; include "underground/objects/$user->getRoom().php";
} }
} }
@ -641,7 +644,7 @@ if ($wander && !isset($_GET['attack'])) {
$ty = $v['y'] + 2; $ty = $v['y'] + 2;
} }
if ($user->room == 74 || $user->room == 76) { if ($user->getRoom() == 74 || $user->getRoom() == 76) {
if (strpos($map[$ty][$tx], 's/') !== false && !@$mapbots[$ty][$tx]) { if (strpos($map[$ty][$tx], 's/') !== false && !@$mapbots[$ty][$tx]) {
break; break;
} }
@ -709,8 +712,8 @@ if ($moved && (substr($map[$y * 2][$x * 2], 0, 1) === "e" || substr($map[$y * 2]
$tx = $x; $tx = $x;
$ty = $y; $ty = $y;
$tmp = explode("/", $map[$y * 2][$x * 2]); $tmp = explode("/", $map[$y * 2][$x * 2]);
if (file_exists("underground/events/$user->room.php")) { if (file_exists("underground/events/$user->getRoom().php")) {
include("underground/events/$user->room.php"); include("underground/events/$user->getRoom().php");
} }
} }
@ -735,7 +738,7 @@ if ($ambushes[$y * 2][$x * 2 - 2] && $map[$y * 2][$x * 2 - 1] == 0) {
if ($ax && $ay && $user['hp'] > 0) { if ($ax && $ay && $user['hp'] > 0) {
$cavedata = Config::$cavedata ?? []; $cavedata = Config::$cavedata ?? [];
if (!($cavedata[$user->room]['x' . $floor] == $x && $cavedata[$user->room]['y' . $floor] == $y)) { if (!($cavedata[$user->getRoom()]['x' . $floor] == $x && $cavedata[$user->getRoom()]['y' . $floor] == $y)) {
if ($ax < $x) { if ($ax < $x) {
$dir1 = 0; $dir1 = 0;
} elseif ($ax > $x) { } elseif ($ax > $x) {
@ -899,14 +902,14 @@ if (@$_GET['exit']) {
} }
} }
mysql_query("DELETE FROM `inventory` WHERE `owner` = '$user[id]' AND `foronetrip` = 1"); mysql_query("DELETE FROM `inventory` WHERE `owner` = '$user[id]' AND `foronetrip` = 1");
gotoroom($user->room - 1); gotoroom($user->getRoom() - 1);
} }
$standingon = $map[$y * 2][$x * 2]; $standingon = $map[$y * 2][$x * 2];
foreach ($party as $k => $v) { foreach ($party as $k => $v) {
$map[$v['y'] * 2][$v['x'] * 2] = "u/" . $v['user']; $map[$v['y'] * 2][$v['x'] * 2] = "u/" . $v['user'];
} }
\Battles\Template::header('cave'); Template::header('cave');
?> ?>
<style> <style>
body { body {
@ -1467,9 +1470,9 @@ function drawmap($map1, $players, $x, $y, $direction)
$ret .= drawobject2($aMap[$yy][$xx], $x, $y); $ret .= drawobject2($aMap[$yy][$xx], $x, $y);
} }
$rrm = $user->room; $rrm = $user->getRoom();
if (isset($dialogs[CaveBots::$bots[$data[1]]]) && (CaveBots::$bots[$data[1]] == 11147 && $user->room == 74)) { if (isset($dialogs[CaveBots::$bots[$data[1]]]) && (CaveBots::$bots[$data[1]] == 11147 && $user->getRoom() == 74)) {
$ret .= "<img title=\"$botname" . ($cnt > 1 ? " ($cnt)" : "") . "\" " . ($y == 1 && $x == 3 ? "onclick=\"speakattackmenu(event);\"" : "") . " width=\"" . $imgdata[$x][$y]["wd"] . "\" height=\"" . $imgdata[$x][$y]["ht"] . "\" src=\"/i/dungeon/mobs/$rrm/$bot.gif\" style=\"position: absolute; left: " . $imgdata[$x][$y]["x"][$bn] . "px; top: " . $imgdata[$x][$y]["y"] . "px;" . ($x == 3 && $y == 1 ? "cursor: pointer;" : "") . ($x == 3 ? "z-index: " . (99 - ($y * 5)) . ";" : "") . "\" />"; $ret .= "<img title=\"$botname" . ($cnt > 1 ? " ($cnt)" : "") . "\" " . ($y == 1 && $x == 3 ? "onclick=\"speakattackmenu(event);\"" : "") . " width=\"" . $imgdata[$x][$y]["wd"] . "\" height=\"" . $imgdata[$x][$y]["ht"] . "\" src=\"/i/dungeon/mobs/$rrm/$bot.gif\" style=\"position: absolute; left: " . $imgdata[$x][$y]["x"][$bn] . "px; top: " . $imgdata[$x][$y]["y"] . "px;" . ($x == 3 && $y == 1 ? "cursor: pointer;" : "") . ($x == 3 ? "z-index: " . (99 - ($y * 5)) . ";" : "") . "\" />";
} else { } else {
$ret .= "<img title=\"$botname" . ($cnt > 1 ? " ($cnt)" : "") . "\" " . ($y == 1 && $x == 3 ? " onclick=\"document.location.href='cave.php?attack=1';\"" : "") . " width=\"" . $imgdata[$x][$y]["wd"] . "\" height=\"" . $imgdata[$x][$y]["ht"] . "\" src=\"/i/dungeon/mobs/$rrm/$bot.gif\" style=\"position: absolute; left: " . $imgdata[$x][$y]["x"][$bn] . "px; top: " . $imgdata[$x][$y]["y"] . "px;" . ($x == 3 && $y == 1 ? "cursor: pointer;" : "") . ($x == 3 ? "z-index: " . (99 - ($y * 5)) . ";" : "") . "\" />"; $ret .= "<img title=\"$botname" . ($cnt > 1 ? " ($cnt)" : "") . "\" " . ($y == 1 && $x == 3 ? " onclick=\"document.location.href='cave.php?attack=1';\"" : "") . " width=\"" . $imgdata[$x][$y]["wd"] . "\" height=\"" . $imgdata[$x][$y]["ht"] . "\" src=\"/i/dungeon/mobs/$rrm/$bot.gif\" style=\"position: absolute; left: " . $imgdata[$x][$y]["x"][$bn] . "px; top: " . $imgdata[$x][$y]["y"] . "px;" . ($x == 3 && $y == 1 ? "cursor: pointer;" : "") . ($x == 3 ? "z-index: " . (99 - ($y * 5)) . ";" : "") . "\" />";
@ -1559,7 +1562,7 @@ function drawmap($map1, $players, $x, $y, $direction)
$left = $imgdata[$x][$y]["x"][1]; $left = $imgdata[$x][$y]["x"][1];
$top = $imgdata[$x][$y]["y"] + $ht; $top = $imgdata[$x][$y]["y"] + $ht;
} }
$rrm = $user->room; $rrm = $user->getRoom();
if (!isset($imgmap[$obj])) { if (!isset($imgmap[$obj])) {
$ret .= " $ret .= "
@ -1604,7 +1607,7 @@ function drawmap($map1, $players, $x, $y, $direction)
$left = $imgdata[$x][$y]["x"][1]; $left = $imgdata[$x][$y]["x"][1];
$top = $imgdata[$x][$y]["y"] + $ht; $top = $imgdata[$x][$y]["y"] + $ht;
} }
$rrm = $user->room; $rrm = $user->getRoom();
if (!isset($imgmap[$obj])) { if (!isset($imgmap[$obj])) {
$ret .= " $ret .= "
" . ($y == 1 && $x == 3 ? "<a href=\"cave.php?useitem=1\">" : "") . " " . ($y == 1 && $x == 3 ? "<a href=\"cave.php?useitem=1\">" : "") . "
@ -1675,7 +1678,7 @@ function drawmap($map1, $players, $x, $y, $direction)
} }
} else { } else {
if ($i == 1) { if ($i == 1) {
$ret .= "<img width=\"65\" height=\"80\" src=\"/i/dungeon/objects/$o.gif\" style=\"position: absolute; left: 0px; top: 110px\" />"; $ret .= "<img width=\"65\" height=\"80\" src=\"/i/dungeon/objects/$o.gif\" style=\"position: absolute; left: 0; top: 110px\" />";
} }
if ($i == 2) { if ($i == 2) {
$ret .= "<img width=\"43\" height=\"56\" src=\"/i/dungeon/objects/$o.gif\" style=\"position: absolute; left: 17px; top: 90px\" />"; $ret .= "<img width=\"43\" height=\"56\" src=\"/i/dungeon/objects/$o.gif\" style=\"position: absolute; left: 17px; top: 90px\" />";
@ -1765,7 +1768,7 @@ function drawmap($map1, $players, $x, $y, $direction)
} }
$objInWall = explode('/', $map[3][$wall]); $objInWall = explode('/', $map[3][$wall]);
if ($objInWall[1] == "o") { if ($objInWall[1] == "o") {
if ($user->room == 83 && !(!$direction && (($x == 13 && $y == 4) || ($x == 12 && $y == 4)))) { // исключение 2-ух клеток в комнате 82 if ($user->getRoom() == 83 && !(!$direction && (($x == 13 && $y == 4) || ($x == 12 && $y == 4)))) { // исключение 2-ух клеток в комнате 82
$ret .= drawobject('//' . $objInWall[2], 3, $i); $ret .= drawobject('//' . $objInWall[2], 3, $i);
} }
} }
@ -1948,7 +1951,7 @@ progress_update();
<a href=\"javascript:top.AddToPrivate('$v[login]', top.CtrlPress)\"><img src=\"i/lock.gif\" title=\"Приват\" border=\"0\" /></a> <a href=\"inf.php?$v[user]\" target=_blank title=\"Информация о $v[login]\">$v[login]</a> [$usr[level]]<a href='inf.php?$v[user]' target='_blank'><img src='/i/inf.gif' border=0></a></td> <a href=\"javascript:top.AddToPrivate('$v[login]', top.CtrlPress)\"><img src=\"i/lock.gif\" title=\"Приват\" border=\"0\" /></a> <a href=\"inf.php?$v[user]\" target=_blank title=\"Информация о $v[login]\">$v[login]</a> [$usr[level]]<a href='inf.php?$v[user]' target='_blank'><img src='/i/inf.gif' border=0></a></td>
<td background=\"/i/bg_scroll_05.gif\" nowrap style=\"font-size:9px\"> <td background=\"/i/bg_scroll_05.gif\" nowrap style=\"font-size:9px\">
<div style=\"position: relative;padding-left:5px\"> <div style=\"position: relative;padding-left:5px\">
<table cellspacing=\"0\" cellpadding=\"0\" style='line-height: 1'><td nowrap style=\"font-size:9px\" style=\"position: relative\"><SPAN " . ($v["user"] == $user["id"] ? "id=\"HP\"" : "") . " style='position: absolute; left: 5; z-index: 1; font-weight: bold; color: #FFFFFF'>" . ($v["user"] == $user["id"] ? "<span id=\"hp_value\">" : "") . "$usr[hp]" . ($v["user"] == $user["id"] ? "</span>" : "") . "/$usr[maxhp]</SPAN><img src=\"/i/1green.gif\" alt=\"Уровень жизни\" " . ($v["user"] == $user["id"] ? "name=\"HP1\"" : "") . " width=\"$wd\" height=\"9\" " . ($v["user"] == $user["id"] ? "id=\"HP1\"" : "") . "><img src=\"/i/bk_life_loose.gif\" alt=\"Уровень жизни\" " . ($v["user"] == $user["id"] ? "name=\"HP2\"" : "") . " width=\"" . (120 - $wd) . "\" height=\"9\" " . ($v["user"] == $user["id"] ? "id=\"HP2\"" : "") . "></td></table></div></td> <table cellspacing=\"0\" cellpadding=\"0\" style='line-height: 1'><td nowrap style=\"font-size:9px\" style=\"position: relative\"><SPAN " . ($v["user"] == $user["id"] ? "id=\"HP\"" : "") . " style='position: absolute; left: 5px; z-index: 1; font-weight: bold; color: #FFFFFF'>" . ($v["user"] == $user["id"] ? "<span id=\"hp_value\">" : "") . "$usr[hp]" . ($v["user"] == $user["id"] ? "</span>" : "") . "/$usr[maxhp]</SPAN><img src=\"/i/1green.gif\" alt=\"Уровень жизни\" " . ($v["user"] == $user["id"] ? "name=\"HP1\"" : "") . " width=\"$wd\" height=\"9\" " . ($v["user"] == $user["id"] ? "id=\"HP1\"" : "") . "><img src=\"/i/bk_life_loose.gif\" alt=\"Уровень жизни\" " . ($v["user"] == $user["id"] ? "name=\"HP2\"" : "") . " width=\"" . (120 - $wd) . "\" height=\"9\" " . ($v["user"] == $user["id"] ? "id=\"HP2\"" : "") . "></td></table></div></td>
<td background=\"/i/bg_scroll_05.gif\" align=\"center\"></td> <td background=\"/i/bg_scroll_05.gif\" align=\"center\"></td>
<td background=\"/i/bg_scroll_05.gif\" align=\"center\">"; <td background=\"/i/bg_scroll_05.gif\" align=\"center\">";
if ($v["user"] == $user["id"] && $user["id"] == $user["caveleader"]) echo "<IMG src=\"/i/lead1.gif\" width=24 height=15><A href=\"#\" onClick=\"findlogin('Выберите персонажа которого хотите выгнать','cave.php', 'kill')\"><IMG alt=\"Выгнать супостата\" src=\"/i/ico_kill_member1.gif\" WIDTH=\"14\" HEIGHT=\"17\"></A>&nbsp;<A href=\"#\" onClick=\"findlogin( 'Выберите персонажа которому хотите передать лидерство','cave.php', 'change')\"><IMG alt=\"Новый царь\" src=\"/i/ico_change_leader1.gif\" WIDTH=\"14\" HEIGHT=\"17\"></A>"; if ($v["user"] == $user["id"] && $user["id"] == $user["caveleader"]) echo "<IMG src=\"/i/lead1.gif\" width=24 height=15><A href=\"#\" onClick=\"findlogin('Выберите персонажа которого хотите выгнать','cave.php', 'kill')\"><IMG alt=\"Выгнать супостата\" src=\"/i/ico_kill_member1.gif\" WIDTH=\"14\" HEIGHT=\"17\"></A>&nbsp;<A href=\"#\" onClick=\"findlogin( 'Выберите персонажа которому хотите передать лидерство','cave.php', 'change')\"><IMG alt=\"Новый царь\" src=\"/i/ico_change_leader1.gif\" WIDTH=\"14\" HEIGHT=\"17\"></A>";
@ -1988,10 +1991,10 @@ progress_update();
<td width=540> <td width=540>
<div style="text-align:right;padding-right:30px"> <div style="text-align:right;padding-right:30px">
<font style='font-size:14px; color:#8f0000'><b><? <font style='font-size:14px; color:#8f0000'><b><?
$dMap = unserialize(mysql_result(mysql_query("SELECT `map` FROM `cavemaps` WHERE `floor` = $floor AND `room` = " . ($user->room - 1)), 0, 0)); $dMap = unserialize(mysql_result(mysql_query("SELECT `map` FROM `cavemaps` WHERE `floor` = $floor AND `room` = " . ($user->getRoom() - 1)), 0, 0));
$cPlace = $dMap[$y * 2][$x * 2]; $cPlace = $dMap[$y * 2][$x * 2];
$tmp = explode("/", $cPlace); $tmp = explode("/", $cPlace);
if ($user->room == 621) { if ($user->getRoom() == 621) {
if ($floor == 1) { if ($floor == 1) {
echo 'Проклятый Рудник, 1 этаж'; echo 'Проклятый Рудник, 1 этаж';
} elseif ($floor == 2) { } elseif ($floor == 2) {

107
ch.php
View File

@ -1,12 +1,15 @@
<?php <?php
use Battles\Template;
session_start(); session_start();
require_once 'functions.php'; require_once 'functions.php';
$user = $user ?? new User($_SESSION['uid']);
db::c()->query('UPDATE `online` SET `real_time` = ?i WHERE `id` = ?i', time(), $u->i()['id']); db::c()->query('UPDATE `online` SET `real_time` = ?i WHERE `id` = ?i', time(), $u->i()['id']);
if (isset($_GET['online']) && $_GET['online'] != null) { if (isset($_GET['online']) && $_GET['online'] != null) {
if ($_GET['room'] && (int)$_GET['room'] < 500) { if ($_GET['room'] && (int)$_GET['room'] < 500) {
$user->room = (int)$_GET['room']; $user->setRoom($_GET['room']);
} }
if ($u->i()['caveleader'] > 0) { if ($u->i()['caveleader'] > 0) {
$data = db::c()->query(' $data = db::c()->query('
@ -32,13 +35,13 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
ORDER BY ORDER BY
`u`.`login` `u`.`login`
'); ');
$ttl = "<span style=\"color: #8f0000; font-size: 10pt;\"><b>" . $rooms[$user->room] . " (" . mysql_num_rows($data) . ")</b></span>"; $ttl = "<span style=\"color: #8f0000; font-size: 10pt;\"><b>" . $rooms[$user->getRoom()] . " (" . mysql_num_rows($data) . ")</b></span>";
$ch1 = '_active'; $ch1 = '_active';
$ch2 = '_passive'; $ch2 = '_passive';
$ch3 = '_passive'; $ch3 = '_passive';
$ch4 = '_passive'; $ch4 = '_passive';
$ch5 = '_passive'; $ch5 = '_passive';
} elseif ($user->room == 760) { } elseif ($user->getRoom() == 760) {
$forest = db::c()->query('SELECT `id`, `room`, `time`, `user`, `data` FROM `forest` WHERE `user` = "' . $user['id'] . '" LIMIT 1')->fetch_assoc(); $forest = db::c()->query('SELECT `id`, `room`, `time`, `user`, `data` FROM `forest` WHERE `user` = "' . $user['id'] . '" LIMIT 1')->fetch_assoc();
$sp = db::c()->query('SELECT `id`, `room`, `user` FROM `forest` WHERE `room` = "' . $forest['room'] . '"'); $sp = db::c()->query('SELECT `id`, `room`, `user` FROM `forest` WHERE `room` = "' . $forest['room'] . '"');
while ($pl = $sp->fetch_assoc()) { while ($pl = $sp->fetch_assoc()) {
@ -97,18 +100,18 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
WHERE WHERE
`o`.`id` = `u`.`id` AND `o`.`id` = `u`.`id` AND
(`o`.`date` >= ' . (time() - 90) . ' OR `u`.`in_tower` = 1) AND (`o`.`date` >= ' . (time() - 90) . ' OR `u`.`in_tower` = 1) AND
`o`.`room` = "' . $user->room . '" `o`.`room` = "' . $user->getRoom() . '"
ORDER BY ORDER BY
`u`.`login` `u`.`login`
'); ');
$ttl = "<span style=\"color: #8f0000; font-size: 10pt;\"><b>" . $rooms[$user->room] . " (" . mysql_num_rows($data) . ")</b></span>"; $ttl = "<span style=\"color: #8f0000; font-size: 10pt;\"><b>" . $rooms[$user->getRoom()] . " (" . mysql_num_rows($data) . ")</b></span>";
$ch1 = '_active'; $ch1 = '_active';
$ch2 = '_passive'; $ch2 = '_passive';
$ch3 = '_passive'; $ch3 = '_passive';
$ch4 = '_passive'; $ch4 = '_passive';
$ch5 = '_passive'; $ch5 = '_passive';
} }
\Battles\Template::header(sprintf('%s (%s)', $rooms[$user->room], mysql_num_rows($data))); Template::header(sprintf('%s (%s)', $rooms[$user->getRoom()], mysql_num_rows($data)));
?> ?>
<script> <script>
function fastshow(content) { function fastshow(content) {
@ -163,25 +166,24 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
top.rld(); top.rld();
</script> </script>
<center> <div>
<? if (!$_GET['rms']) { ?> <? if (!$_GET['rms']) { ?>
<div id="fixednew" <div id="fixednew" style="position: fixed; margin: 0; padding: 0; z-index: 9; width: 100%; text-align: center; overflow: auto;">
style="position: fixed; margin: 0; padding: 0; z-index: 9; width: 100%; text-align: center; overflow: auto;">
<table border="0" cellpadding="0" cellspacing="0"> <table border="0" cellpadding="0" cellspacing="0">
<tbody> <tbody>
<tr> <tr>
<td><img align="left" <td><img align="left"
onclick="this.src='i/buttons/ch1_passive.jpg'; location.href='ch.php?online='+Math.random();" onclick="this.src='i/buttons/ch1_passive.jpg'; location.href='ch.php?online='+Math.random();"
src="i/buttons/ch1<?= $ch1; ?>.jpg"/></td> src="i/buttons/ch1<?= $ch1; ?>.jpg"/>
<? if (!empty($user['klan'])) { ?> <? if (!empty($user['klan'])) { ?>
<td><img align="left" title="Соклановцы" style="cursor: pointer;" <td><img align="left" title="Соклановцы" style="cursor: pointer;"
onclick="location.href='ch.php?online='+Math.random()+'&amp;chview=5';" onclick="location.href='ch.php?online='+Math.random()+'&amp;chview=5';"
src="i/buttons/ch5<?= $ch5; ?>.jpg"/></td> src="i/buttons/ch5<?= $ch5; ?>.jpg"/>
<? } ?> <? } ?>
</tr>
</tbody> </tbody>
</table> </table>
</div><br/><br/><br/> </div>
<br><br><br>
<? } ?> <? } ?>
<div id="mmoves" <div id="mmoves"
style="background-color: #FFFFCC; visibility:hidden; overflow: visible; position: absolute; border-color: #666666; border-style: solid; border-width: 0; padding: 0; white-space: nowrap; display: block; vertical-align: middle; word-wrap: break-word;"></div> style="background-color: #FFFFCC; visibility:hidden; overflow: visible; position: absolute; border-color: #666666; border-style: solid; border-width: 0; padding: 0; white-space: nowrap; display: block; vertical-align: middle; word-wrap: break-word;"></div>
@ -195,53 +197,50 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
} }
?> ?>
<? echo '<br />' . $ttl . '<br />'; ?> <? echo '<br />' . $ttl . '<br />'; ?>
</center> </div>
<table border=0> <div>
<tr> <script>
<td nowrap> <?php
<script> while ($row = $data->fetch_assoc()) {
<?php if ($row['in_battle'] > 0) {
while ($row = $data->fetch_assoc()) { $in_battle = 1;
if ($row['in_battle'] > 0) { } else {
$in_battle = 1; $in_battle = 0;
} else { }
$in_battle = 0; if ($row['invis'] > 0 && $row['id'] == $_SESSION['uid']) {
$row['login2'] = $row['login'] . "</a> (невидимка)";
}
if ($row['invis'] == 0 || $row['id'] == $_SESSION['uid']) {
if (!empty($row['action'])) {
function stripslashes_deep($text)
{
while (strstr($text, "\\")) {
$text = stripslashes($text);
}
return $text;
} }
if ($row['invis'] > 0 && $row['id'] == $_SESSION['uid']) {
$row['login2'] = $row['login'] . "</a> (невидимка)";
}
if ($row['invis'] == 0 || $row['id'] == $_SESSION['uid']) {
if (!empty($row['action'])) {
function stripslashes_deep($text)
{
while (strstr($text, "\\")) {
$text = stripslashes($text);
}
return $text;
}
$rrr = $row['action']; $rrr = $row['action'];
$act = explode("<>:<>", $rrr); $act = explode("<>:<>", $rrr);
$aa = htmlspecialchars(stripslashes_deep($act[1])); $aa = htmlspecialchars(stripslashes_deep($act[1]));
$aa = preg_replace("/afk ", "", $aa) $aa = preg_replace("/afk ", "", $aa)
$aa = preg_replace("/dnd ", "", $aa); $aa = preg_replace("/dnd ", "", $aa);
$aa = preg_replace("/buy ", "", $aa); $aa = preg_replace("/buy ", "", $aa);
$aa = preg_replace("/sell ", "", $aa); $aa = preg_replace("/sell ", "", $aa);
$act_line = " <span onmouseover=\"fastshow(\'$aa\')\" onmouseout=\"hideshow()\"><b><small>{$act[0]}</small></b></span> "; $act_line = " <span onmouseover=\"fastshow(\'$aa\')\" onmouseout=\"hideshow()\"><b><small>{$act[0]}</small></b></span> ";
} else $act_line = ''; } else $act_line = '';
echo 'w(\'', $row['login'], '\',', $row['id'], ',', $in_battle, ',\'', $row['align'], '\',\'' . $row['klan'] . '\', \'' . $act_line . '\',\'', $row['level'], '\',\'', $row['slp'], '\',\'', $row['trv'], '\',\'', '\',\'', $row['login2'], '\');'; echo 'w(\'', $row['login'], '\',', $row['id'], ',', $in_battle, ',\'', $row['align'], '\',\'' . $row['klan'] . '\', \'' . $act_line . '\',\'', $row['level'], '\',\'', $row['slp'], '\',\'', $row['trv'], '\',\'', '\',\'', $row['login2'], '\');';
} }
} }
?> ?>
</script> </script>
</td> </div>
</tr>
</table>
<?php <?php
if (!$_GET['room']) { if (!$_GET['room']) {
?> ?>
<SCRIPT>document.write('<INPUT TYPE=checkbox onclick="if(this.checked == true) { top.OnlineStop = false; } else { top.OnlineStop = true; }" ' + (top.OnlineStop ? '' : 'checked') + '> Обновлять автомат.') <SCRIPT>document.write('<INPUT TYPE=checkbox onclick="if(this.checked == true) { top.OnlineStop = false; } else { top.OnlineStop = true; }" ' + (top.OnlineStop ? '' : 'checked') + '> Обновлять автомат.')
</SCRIPT></body></html> </SCRIPT>
<?php <?php
exit; exit;
} }
@ -367,7 +366,7 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
$ks++; $ks++;
$lastpost = $math[1]; $lastpost = $math[1];
unset($math[3]); unset($math[3]);
} elseif ((strpos($math[3], "private") === FALSE) /*&& ($user->room == $math[4])*/) { } elseif ((strpos($math[3], "private") === FALSE) /*&& ($user->getRoom() == $math[4])*/) {
$times = ''; $times = '';
$soundON = ''; $soundON = '';
if ((strpos($math[3], "[" . $user['login'] . "]") > 0) || ($math[2] == $user['login'])) { if ((strpos($math[3], "[" . $user['login'] . "]") > 0) || ($math[2] == $user['login'])) {
@ -415,7 +414,7 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
$_GET['text'] = preg_replace('/private \[klan-([a-zA-Z]*)\]/', '', $_GET['text']); $_GET['text'] = preg_replace('/private \[klan-([a-zA-Z]*)\]/', '', $_GET['text']);
if (empty($user->clan)) { if (empty($user->getClan())) {
$_GET['text'] = str_replace('private [klan]', '', $_GET['text']); $_GET['text'] = str_replace('private [klan]', '', $_GET['text']);
$_GET['text'] = str_replace('private [klan]', 'private [klan-' . $user['klan'] . ']', $_GET['text']); $_GET['text'] = str_replace('private [klan]', 'private [klan-' . $user['klan'] . ']', $_GET['text']);
} else { } else {
@ -462,7 +461,7 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
if ($action != 1) { if ($action != 1) {
$file = 'tmp/chat.txt'; $file = 'tmp/chat.txt';
if (filesize("tmp/chat.txt") > 100 * 1024) { if (filesize("tmp/chat.txt") > 100 * 1024) {
$line = "\r\n:[" . time() . "]:[{$user['login']}]:[<font color=\"" . (($user['color']) ? $user['color'] : "#000000") . "\">" . ($_GET['text']) . "</font>]:[" . $user->room . "]\r\n"; $line = "\r\n:[" . time() . "]:[{$user['login']}]:[<font color=\"" . (($user['color']) ? $user['color'] : "#000000") . "\">" . ($_GET['text']) . "</font>]:[" . $user->getRoom() . "]\r\n";
// Пишем содержимое в файл, // Пишем содержимое в файл,
// используя флаг FILE_APPEND flag для дописывания содержимого в конец файла // используя флаг FILE_APPEND flag для дописывания содержимого в конец файла
// и флаг LOCK_EX для предотвращения записи данного файла кем-нибудь другим в данное время // и флаг LOCK_EX для предотвращения записи данного файла кем-нибудь другим в данное время
@ -470,7 +469,7 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
file_put_contents($file, $line, FILE_APPEND | LOCK_EX); file_put_contents($file, $line, FILE_APPEND | LOCK_EX);
echo "1"; echo "1";
} else { } else {
$line = ":[" . time() . "]:[{$user['login']}]:[<font color=\"" . (($user['color']) ? $user['color'] : "#000000") . "\">" . ($_GET['text']) . "</font>]:[" . $user->room . "]\r\n"; $line = ":[" . time() . "]:[{$user['login']}]:[<font color=\"" . (($user['color']) ? $user['color'] : "#000000") . "\">" . ($_GET['text']) . "</font>]:[" . $user->getRoom() . "]\r\n";
file_put_contents($file, $line, FILE_APPEND | LOCK_EX); file_put_contents($file, $line, FILE_APPEND | LOCK_EX);
echo "2"; echo "2";
} }

View File

@ -5,48 +5,52 @@
* Project name: Battles-Game * Project name: Battles-Game
*/ */
use Battles\Database\DBPDO;
use Battles\Template;
session_start(); session_start();
require_once "config.php"; require_once "config.php";
$msg = $_POST['msg'] ?? null; $msg = $_POST['msg'] ?? null;
$uid = $_SESSION['uid'] ?? null; $uid = $_SESSION['uid'] ?? null;
if ($msg) { if ($msg) {
try { $db = new DBPDO();
db::c()->query('INSERT INTO `chat` (`user_id`, `msg`) VALUES (?i, "?s")', $uid, $msg); $db->execute('INSERT INTO chat (user_id,msg) VALUES (?,?)', [$uid, $msg]);
} catch (\Krugozor\Database\Mysql\Exception $e) {
echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>";
}
} }
function show_messages() function show_messages()
{ {
try { $db = new DBPDO();
$chat = db::c()->query('
SELECT $chat = $db->ofetchALL('SELECT msg,msgdate,type,s.login AS sender, r.login AS receiver, s.id AS sid, r.id AS rid FROM chat
`msg`, LEFT JOIN users s on s.id = chat.user_id
`msgdate`, LEFT JOIN users r on r.id = chat.receiver_id
(SELECT `login` FROM `users` WHERE `users`.`id` = `user_id`) AS `from`, WHERE r.id = ? OR r.id IS NULL OR s.id = ? ORDER BY chat.id', [$_SESSION['uid'], $_SESSION['uid']]);
`type` $i = 0;
FROM `chat` ORDER BY `id` LIMIT 50'); while ($i < count($chat)) {
while ($message = $chat->fetch_assoc()) { $d = new DateTime($chat[$i]->msgdate);
$d = new DateTime($message['msgdate']); $m = htmlspecialchars($chat[$i]->msg);
$m = htmlspecialchars($message['msg']); if ($chat[$i]->type == 'sys') { /* Системка */
if ($message['type'] == 'sys') { /* Системка */ echo sprintf('<span style="color:maroon;background:#faa;">%s %s</span><br>', $d->format('H:i'), $m);
echo sprintf('<span style="color:maroon;background:#faa;">%s %s</span><br>', $d->format('H:i'), $m); } elseif ($chat[$i]->rid == $_SESSION['uid']) { /* С указанным получателем */
} elseif ($message['type'] == 'sms') { /* Телеграмма */ if ($chat[$i]->type == 'sms') { /* Телеграмма */
echo sprintf('<span style="color:darkgreen;background:#afa;">[Телеграмма]: %s %s</span><br>', $d->format('H:i'), $m); echo sprintf('<span style="color:darkgreen;background:#afa;">%s Телеграмма от [%s]: %s</span><br>', $d->format('d.m.Y H:i'), $chat[$i]->sender, $m);
} else { } elseif ($chat[$i]->type == 'private') { /* Приват */
echo sprintf('%s [%s]: %s<br>', $d->format('H:i'), $message['from'], $m); echo sprintf('<span style="background:#efe;">%s [%s] → [%s]: %s</span><br>', $d->format('H:i'), $chat[$i]->sender, $chat[$i]->receiver, $m);
} else { /* Общак */
echo sprintf('%s [%s] → [%s]: %s<br>', $d->format('H:i'), $chat[$i]->sender, $chat[$i]->receiver, $m);
} }
} else { /* Без указанного получателя */
echo sprintf('%s [%s]: %s<br>', $d->format('H:i'), $chat[$i]->sender, $m);
} }
} catch (\Krugozor\Database\Mysql\Exception $e) { $i++;
echo "<div style='background-color: #ffaaaa;'>Ошибка: " . $e->getMessage() . "<br> В файле: " . $e->getFile() . " (" . $e->getLine() . ")</div>";
} }
unset($i, $chat, $db);
} }
Template::header('chat');
show_messages(); show_messages();
\Battles\Template::header('chat');
?> ?>
<style> <style>
form { form {

View File

@ -33,12 +33,12 @@ if($_GET['id'] == 1) {
} elseif($_GET['id'] == 6) { } elseif($_GET['id'] == 6) {
$user = mysql_fetch_array(mysql_query('SELECT `id`, `login`, `room` FROM `users` WHERE `id` = "'.(int)$_GET['user'].'" LIMIT 1')); $user = mysql_fetch_array(mysql_query('SELECT `id`, `login`, `room` FROM `users` WHERE `id` = "'.(int)$_GET['user'].'" LIMIT 1'));
if(isset($user['id'])) { if(isset($user['id'])) {
addch('<font color=red>Внимание!</font> Ваш бой не может начаться по причине <b>Группа не набрана</b>', $user['login'], $user->room); addch('<font color=red>Внимание!</font> Ваш бой не может начаться по причине <b>Группа не набрана</b>', $user['login'], $user->getRoom());
} }
} elseif($_GET['id'] == 7) { } elseif($_GET['id'] == 7) {
$user = mysql_fetch_array(mysql_query('SELECT `id`, `login`, `room` FROM `users` WHERE `id` = "'.(int)$_GET['user'].'" LIMIT 1')); $user = mysql_fetch_array(mysql_query('SELECT `id`, `login`, `room` FROM `users` WHERE `id` = "'.(int)$_GET['user'].'" LIMIT 1'));
if(isset($user['id'])) { if(isset($user['id'])) {
addch('<font color=red>Внимание!</font> Ваш бой начался.', $user['login'], $user->room); addch('<font color=red>Внимание!</font> Ваш бой начался.', $user['login'], $user->getRoom());
} }
} else { } else {
exit; exit;

110
city.php
View File

@ -6,7 +6,7 @@ session_start();
require_once "functions.php"; require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']); $user = $user ?? new \Battles\User($_SESSION['uid']);
if ($user->zayavka) { if ($user->getZayavka()) {
exit; exit;
} }
@ -17,180 +17,180 @@ switch ($location[0]) {
default: default:
break; break;
case 'cp': case 'cp':
Battles\Travel::toRoom(20,$user->room); Battles\Travel::toRoom(20,$user->getRoom());
break; break;
case 'strah': case 'strah':
Battles\Travel::toRoom(21,$user->room); Battles\Travel::toRoom(21,$user->getRoom());
break; break;
case 'bps': case 'bps':
Battles\Travel::toRoom(26,$user->room); Battles\Travel::toRoom(26,$user->getRoom());
break; break;
case 'ps': case 'ps':
Battles\Travel::toRoom(51,$user->room); Battles\Travel::toRoom(51,$user->getRoom());
break; break;
case 'zaliv': case 'zaliv':
Battles\Travel::toRoom(2111,$user->room); Battles\Travel::toRoom(2111,$user->getRoom());
break; break;
case 'zamk': case 'zamk':
Battles\Travel::toRoom(2601,$user->room); Battles\Travel::toRoom(2601,$user->getRoom());
break; break;
case 'abog': case 'abog':
Battles\Travel::toRoom(2655,$user->room); Battles\Travel::toRoom(2655,$user->getRoom());
break; break;
case 'torg': case 'torg':
Battles\Travel::toRoom(2702,$user->room); Battles\Travel::toRoom(2702,$user->getRoom());
break; break;
case 'got': case 'got':
if ($user->room == 20) { if ($user->getRoom() == 20) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level1': case 'level1':
Battles\Travel::toRoom(1,$user->room); Battles\Travel::toRoom(1,$user->getRoom());
break; break;
case 'level7': case 'level7':
Battles\Travel::toRoom(21,$user->room); Battles\Travel::toRoom(21,$user->getRoom());
break; break;
case 'level8': case 'level8':
Battles\Travel::toRoom(26,$user->room); Battles\Travel::toRoom(26,$user->getRoom());
break; break;
case 'level13': case 'level13':
header('location: quest_room.php'); header('location: quest_room.php');
break; break;
case 'level222': case 'level222':
Battles\Travel::toRoom(2702,$user->room); Battles\Travel::toRoom(2702,$user->getRoom());
break; break;
case 'level17': case 'level17':
Battles\Travel::toRoom(50,$user->room); Battles\Travel::toRoom(50,$user->getRoom());
break; break;
case 'level2': case 'level2':
Battles\Travel::toRoom(22,$user->room); Battles\Travel::toRoom(22,$user->getRoom());
break; break;
case 'level4': case 'level4':
Battles\Travel::toRoom(23,$user->room); Battles\Travel::toRoom(23,$user->getRoom());
break; break;
case 'level6': case 'level6':
Battles\Travel::toRoom(27,$user->room); Battles\Travel::toRoom(27,$user->getRoom());
break; break;
case 'level3': case 'level3':
Battles\Travel::toRoom(25,$user->room); Battles\Travel::toRoom(25,$user->getRoom());
break; break;
} }
} elseif ($user->room == 21) { } elseif ($user->getRoom() == 21) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level4': case 'level4':
Battles\Travel::toRoom(20,$user->room); Battles\Travel::toRoom(20,$user->getRoom());
break; break;
case 'level3': case 'level3':
Battles\Travel::toRoom(2111,$user->room); Battles\Travel::toRoom(2111,$user->getRoom());
break; break;
case 'level13': case 'level13':
Battles\Travel::toRoom(34,$user->room); Battles\Travel::toRoom(34,$user->getRoom());
break; break;
case 'level5': case 'level5':
Battles\Travel::toRoom(29,$user->room); Battles\Travel::toRoom(29,$user->getRoom());
break; break;
case 'level16': case 'level16':
Battles\Travel::toRoom(31,$user->room); Battles\Travel::toRoom(31,$user->getRoom());
break; break;
case 'level14': case 'level14':
Battles\Travel::toRoom(30,$user->room); Battles\Travel::toRoom(30,$user->getRoom());
break; break;
case 'level650': case 'level650':
Battles\Travel::toRoom(650,$user->room); Battles\Travel::toRoom(650,$user->getRoom());
break; break;
} }
} elseif ($user->room == 2111) { } elseif ($user->getRoom() == 2111) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level1': case 'level1':
Battles\Travel::toRoom(21,$user->room); Battles\Travel::toRoom(21,$user->getRoom());
break; break;
case 'level203': case 'level203':
Battles\Travel::toRoom(1055,$user->room); Battles\Travel::toRoom(1055,$user->getRoom());
break; break;
case 'level1000': case 'level1000':
Battles\Travel::toRoom(620,$user->room); Battles\Travel::toRoom(620,$user->getRoom());
break; break;
case 'room666': case 'room666':
//Нет на карте //Нет на карте
//Battles\Travel::toRoom(666,$user->room); //Battles\Travel::toRoom(666,$user->getRoom());
break; break;
} }
} elseif ($user->room == 2601) { } elseif ($user->getRoom() == 2601) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level4': case 'level4':
Battles\Travel::toRoom(26,$user->room); Battles\Travel::toRoom(26,$user->getRoom());
break; break;
case 'level55': case 'level55':
Battles\Travel::toRoom(2655,$user->room); Battles\Travel::toRoom(2655,$user->getRoom());
break; break;
case 'level1': case 'level1':
Battles\Travel::toRoom(37,$user->room); Battles\Travel::toRoom(37,$user->getRoom());
break; break;
case 'level1051': case 'level1051':
Battles\Travel::toRoom(1051,$user->room); Battles\Travel::toRoom(1051,$user->getRoom());
break; break;
case 'level5': case 'level5':
Battles\Travel::toRoom(404,$user->room); Battles\Travel::toRoom(404,$user->getRoom());
break; break;
} }
} elseif ($user->room == 2701) { } elseif ($user->getRoom() == 2701) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level1': case 'level1':
Battles\Travel::toRoom(2111,$user->room); Battles\Travel::toRoom(2111,$user->getRoom());
break; break;
case 'level2': case 'level2':
Battles\Travel::toRoom(402,$user->room); Battles\Travel::toRoom(402,$user->getRoom());
break; break;
} }
} elseif ($user->room == 2702) { } elseif ($user->getRoom() == 2702) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level10': case 'level10':
Battles\Travel::toRoom(20,$user->room); Battles\Travel::toRoom(20,$user->getRoom());
break; break;
case 'level6': case 'level6':
Battles\Travel::toRoom(61,$user->room); Battles\Travel::toRoom(61,$user->getRoom());
break; break;
} }
} elseif ($user->room == 2655) { } elseif ($user->getRoom() == 2655) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level10': case 'level10':
Battles\Travel::toRoom(2601,$user->room); Battles\Travel::toRoom(2601,$user->getRoom());
break; break;
case 'level2055': case 'level2055':
Battles\Travel::toRoom(603,$user->room); Battles\Travel::toRoom(603,$user->getRoom());
break; break;
} }
} elseif ($user->room == 26) { } elseif ($user->getRoom() == 26) {
switch ($location[1]) { switch ($location[1]) {
default: default:
break; break;
case 'level4': case 'level4':
Battles\Travel::toRoom(20,$user->room); Battles\Travel::toRoom(20,$user->getRoom());
break; break;
case 'level3': case 'level3':
Battles\Travel::toRoom(2601,$user->room); Battles\Travel::toRoom(2601,$user->getRoom());
break; break;
case 'level660': case 'level660':
Battles\Travel::toRoom(660,$user->room); Battles\Travel::toRoom(660,$user->getRoom());
break; break;
case 'level7': case 'level7':
Battles\Travel::toRoom(777,$user->room); Battles\Travel::toRoom(777,$user->getRoom());
break; break;
case 'level56': case 'level56':
Battles\Travel::toRoom(401,$user->room); Battles\Travel::toRoom(401,$user->getRoom());
break; break;
} }
} }
@ -198,7 +198,7 @@ switch ($location[0]) {
\Battles\Template::header('city'); \Battles\Template::header('city');
echo sprintf('<div style="text-align: right;">Сейчас в игре: %s игроков.></div>', $online->getNumRows()); echo sprintf('<div style="text-align: right;">Сейчас в игре: %s игроков.></div>', $online->getNumRows());
if (in_array($user->room, [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) { if (in_array($user->getRoom(), [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) {
/* Улицы: /* Улицы:
* 20 Центральная * 20 Центральная
* 21 Страшилкина * 21 Страшилкина
@ -209,5 +209,5 @@ if (in_array($user->room, [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) {
* 2701 С ещё одним ристалищем? * 2701 С ещё одним ристалищем?
* 2702 Торговая * 2702 Торговая
*/ */
Battles\City::showStreet($user->room); Battles\City::showStreet($user->getRoom());
} }

150
clan.php
View File

@ -1,15 +1,25 @@
<?php <?php
use Battles\Bank;
use Battles\Database\DBPDO;
use Battles\Nick;
use Battles\Rooms;
use Battles\Template;
use Battles\User;
ob_start("ob_gzhandler"); ob_start("ob_gzhandler");
session_start(); session_start();
require_once 'functions.php'; require_once 'functions.php';
if (!$user->clan) { $user = $user ?? new User($_SESSION['uid']);
$db = new DBPDO();
$clanRow = [];
if (!$user->getClan()) {
exit(err('Вы не состоите в клане!')); exit(err('Вы не состоите в клане!'));
} }
try { try {
$clanRow = db::c()->query('SELECT * FROM `clans` WHERE `id` = ?i', $user->clan)->fetch_assoc(); $clanRow = $db->fetch('SELECT * FROM `clans` WHERE short_name = ?', $user->getClan());
$polno = unserialize($clanRow['vozm']) ?? [];
} catch (Exception $e) { } catch (Exception $e) {
echo "MYSQL_ERROR: Таблицы clans не существует! Вся панель — одна сплошная ошибка!"; echo "<div>MYSQL_ERROR: Таблица clans сломана!</div>";
} }
define('COST_ADD_MEMBER', 100); define('COST_ADD_MEMBER', 100);
define('COST_REMOVE_MEMBER', 30); define('COST_REMOVE_MEMBER', 30);
@ -24,93 +34,81 @@ $kolv = $_POST['kolv'] ?? null;
$newClanStatus = $_POST['new_status'] ?? null; $newClanStatus = $_POST['new_status'] ?? null;
$vin = $_POST['vin'] ?? null; $vin = $_POST['vin'] ?? null;
$tus = $_POST['tus'] ?? null; $tus = $_POST['tus'] ?? null;
$lock = true; // блокировка функций
if ($zamok) { if ($zamok && !$lock) {
db::c()->query('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?i', $_SESSION['uid']); $db->execute('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?', $user->getId());
$status = "Начат сбор средств на строительство Кланового Замка."; $status = "Начат сбор средств на строительство Кланового Замка.";
header("Location: clan.php"); header("Location: clan.php");
} }
if ($kr && $kolv > 0) { if ($kr && $kolv > 0 && !$lock) {
if ($user->money >= $kolv) { if ($user->getMoney() >= $kolv) {
db::c()->query('UPDATE `clans` SET `zbor` = `zbor` + ?i WHERE `id` = ?i', $kolv, $user->clan); $db->execute('UPDATE clans SET zbor = zbor + ? WHERE id = ?', [$kolv, $user->getClan()]);
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $kolv, $user->id); Bank::setWalletMoney($user->setMoney($user->getMoney() - $kolv), $user->getId());
header("Location: clan.php"); header("Location: clan.php");
} else { } else {
$status = 'Не хватает денег!'; $status = 'Не хватает денег!';
} }
} }
if ($login && $action == 'add_member' && $polno[$user->id][0] == 1) { if ($login && $action == 'add_member') {
$sok = db::c()->query('SELECT id, level, clan FROM users WHERE align = 0 AND login = "?s"', $login)->fetch_assoc(); $sok = $db->fetch('SELECT id, level, clan FROM users WHERE align = 0 AND login = ?', $login);
$proverka = db::c()->query('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?i', $sok['id'])->getNumRows(); $proverka = $db->fetch('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?', $sok['id']);
if (!$proverka) { if (!$proverka) {
echo "Нет проверки!"; echo "Нет проверки!";
} elseif ($sok['clan']) { } elseif ($sok['clan']) {
echo 'Персонаж уже состоит в клане!'; echo 'Персонаж уже состоит в клане!';
} elseif ($sok['level'] > 0 && $user->money >= COST_ADD_MEMBER) { } elseif ($sok['level'] > 0 && $user->getMoney() >= COST_ADD_MEMBER) {
db::c()->query('UPDATE users SET money = money - ?i WHERE `id` = ?i', COST_ADD_MEMBER, $_SESSION['uid']); Bank::setWalletMoney($user->setMoney($user->getMoney() - COST_ADD_MEMBER), $user->getId());
db::c()->query('UPDATE users SET clan = "?s", align = ?i WHERE id = ?i', $clanRow['id'], $clanRow['align'], $sok['id']); $db->execute('UPDATE users SET clan = ?, align = ? WHERE id = ?', [$clanRow['id'], $clanRow['align'], $sok['id']]);
$status = 'Персонаж «' . $login . '» успешно принят в клан.'; $status = "Персонаж «{$login}» успешно принят в клан.";
} else { } else {
$status = 'Не хватает денег, или персонажа не существует.'; $status = 'Не хватает денег, или персонажа не существует.';
} }
} }
if ($login && $action == 'remove_member' && $polno[$user->id][0] == 1) {
$sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc(); if ($login) {
if ($sok['id'] != $clanRow['glava'] && $user->money >= COST_REMOVE_MEMBER) { $sok = $db->fetch('SELECT id FROM users WHERE clan = ? AND login = ?', [$clanRow['id'], $login]);
db::c()->query('UPDATE users SET money = money - ?i WHERE id = ?i', COST_REMOVE_MEMBER, $_SESSION['uid']); if ($action == 'remove_member' && $sok['id'] != $clanRow['owner_id'] && $user->getMoney() >= COST_REMOVE_MEMBER) {
db::c()->query('UPDATE users SET clan = "?s", align = 0 WHERE id = ?i', '', $sok['id']); Bank::setWalletMoney($user->setMoney($user->getMoney() - COST_REMOVE_MEMBER), $user->getId());
$status = 'Персонаж «' . $login . '» покинул клан.'; $db->execute('UPDATE users SET clan = null, align = 0 WHERE id = ?', $sok['id']);
$status = "Персонаж «{$login}» покинул клан.";
} }
} if ($action == 'change_owner' && $clanRow['owner_id'] == $user->getId()) {
if ($login && $action == 'change_owner' && $clanRow['glava'] == $_SESSION['uid']) { $db->execute('UPDATE clans SET owner_id = ? WHERE id = ?', [$sok['id'], $clanRow['id']]);
$sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc(); $clanRow['owner_id'] = $sok['id'];
db::c()->query('UPDATE clans SET glava = ?i WHERE id = ?i', $sok['id'], $clanRow['id']); }
db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', '', $sok['id']); if ($action == 'edit_status' && !$lock) {
db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', 'Боец', $_SESSION['uid']); if ($sok['id'] != $clanRow['owner_id']) {
$clanRow['glava'] = $sok['id']; if ($newClanStatus) {
} $st = strip_tags(str_replace("&lt;", "<", str_replace("&gt;", ">", $newClanStatus)), "<B><I><U>");
if ($login && $action == 'edit_status') { $db->execute('UPDATE users SET status = ? WHERE id = ?', [$st, $sok['id']]);
$sok = db::c()->query('SELECT id, status FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc(); $sok['status'] = $st;
if ($sok['id'] != $clanRow['glava']) {
if ($newClanStatus) {
$st = strip_tags(str_replace("&lt;", "<", str_replace("&gt;", ">", $newClanStatus)), "<B><I><U>");
db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', $st, $sok['id']);
$sok['status'] = $st;
}
if ($clanRow['glava'] == $_SESSION['uid']) {
if ($vin) {
$polno[$sok['id']][0] = 1;
} else {
$polno[$sok['id']][0] = 0;
} }
if ($tus) { } else {
$polno[$sok['id']][1] = 1; $status = 'Главу клана редактировать запрещено!';
} else {
$polno[$sok['id']][1] = 0;
}
db::c()->query('UPDATE clans SET vozm = "?s" WHERE id = ?i', serialize($polno), $clanRow['id']);
} }
} 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), $clanRow['id']); $clan_memberlist = $db->fetchAll('SELECT id, login, level, align, (SELECT id FROM online WHERE date >= ? AND id = users.id) AS online FROM users WHERE clan = ? ORDER BY online DESC, login', [time() - 60, $clanRow['short_name']]);
\Battles\Template::header('clan'); Template::header('clan');
$clanRow['zamok'] = null; //Замков нет!
$clanRow['rating'] = null; //рейтов тоже!
$clanRow['zbor'] = null; // И копилки.
?> ?>
<div> <div>
<button onclick="location.href='main.php'">Вернуться</button> <button onclick="location.href='main.php'">Вернуться</button>
<?php if (!empty($status)) {err($status);} ?> <?php if (!empty($status)) {
err($status);
} ?>
</div> </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/<?= $clanRow['short'] ?>.png"><?= $clanRow['name'] ?></h3> <h3><img src="./i/clan/<?= $clanRow['short_name'] ?>.png"><?= $clanRow['full_name'] ?></h3>
Количество рейтинговых очков клана: <span
style="color: #428f21; font-size: larger;"><?= $clanRow['rating'] ?></span><br>
<?php if ($polno[$user->id][0] == 1): ?> <?php if ($clanRow['owner_id'] == $user->getId()): ?>
<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="Принять в клан">
@ -125,18 +123,18 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
</div> </div>
<?php endif; ?> <?php endif; ?>
<?php if ($polno[$user->id][1] == 1 || $clanRow['glava'] == $user->id): ?> <?php if ($clanRow['owner_id'] == $user->getId()): ?>
<?php if ($login && $action == 'edit_status' && $sok['id'] != $clanRow['glava']): ?> <?php if ($login && $action == 'edit_status' && $sok['id'] != $clanRow['owner_id']): ?>
<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 ($clanRow['glava'] == $user->id): ?> <?php if ($clanRow['glava'] == $user->getId()): ?>
<?php if ($polno[$sok['id']][0] == 1): ?> <?php if ($clanRow['owner_id'] == $user->getId()): ?>
<br><input type=checkbox name=vin checked> Может принимать/выгонять членов клана <br><input type=checkbox name=vin checked> Может принимать/выгонять членов клана
<?php else: ?> <?php else: ?>
<br><input type=checkbox name=vin> Может принимать/выгонять членов клана <br><input type=checkbox name=vin> Может принимать/выгонять членов клана
<?php endif; ?> <?php endif; ?>
<?php if ($polno[$sok['id']][1] == 1): ?> <?php if ($clanRow['owner_id'] == $user->getId()): ?>
<br><input type=checkbox name=tus checked> Может менять статус членов клана <br><input type=checkbox name=tus checked> Может менять статус членов клана
<?php else: ?> <?php else: ?>
<br><input type=checkbox name=tus> Может менять статус членов клана <br><input type=checkbox name=tus> Может менять статус членов клана
@ -154,7 +152,7 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
<?php endif; ?> <?php endif; ?>
<?php endif; ?> <?php endif; ?>
<?php if ($clanRow['glava'] == $user->id): ?> <?php if ($clanRow['owner_id'] == $user->getId()): ?>
<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="Сменить главу клана">
@ -197,26 +195,28 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
<th>Местонахождение</th> <th>Местонахождение</th>
</tr> </tr>
<?php <?php
while ($row = $clan_memberlist->fetch_assoc()): $i = 0;
if ($row['id'] == $clanRow['glava']) { while ($i < count($clan_memberlist)):
$row['status'] = '<b style="color: #008080;">Глава клана</b>'; if ($clan_memberlist[$i]['id'] == $clanRow['owner_id']) {
$clan_memberlist[$i]['status'] = '<b style="color: #008080;">Глава клана</b>';
} }
if (empty($row['status'])) { if (empty($clan_memberlist[$i]['status'])) {
$row['status'] = 'Боец'; $clan_memberlist[$i]['status'] = 'Боец';
} }
if (empty($row['online'])) { if (empty($clan_memberlist[$i]['online'])) {
$rrm = 'Персонаж не в игре'; $rrm = 'Персонаж не в игре';
} elseif ($row['room'] > 500 && $row['room'] < 561) { } elseif ($clan_memberlist[$i]['room'] > 500 && $clan_memberlist[$i]['room'] < 561) {
$rrm = 'Башня смерти'; $rrm = 'Башня смерти';
} else { } else {
$rrm = $rooms[$row['room']]; $rrm = Rooms::$roomNames[$clan_memberlist[$i]['room']];
} }
?> ?>
<tr> <tr>
<td><?= Nick::id($row['id'])->full() ?></td> <td><?= Nick::id($clan_memberlist[$i]['id'])->full() ?></td>
<td><?= $row['status'] ?></td> <td><?= $clan_memberlist[$i]['status'] ?></td>
<td><i style="font-size: smaller;"><?= $rrm ?></i></td> <td><i style="font-size: smaller;"><?= $rrm ?></i></td>
</tr> </tr>
<?php $i++; ?>
<?php endwhile; ?> <?php endwhile; ?>
</table> </table>
</td> </td>

View File

@ -62,7 +62,7 @@ if ($_POST['add_zay']) {
echo '<strong>сил Хаоса</strong><br />'; echo '<strong>сил Хаоса</strong><br />';
} }
if ($user->admin) { if ($user->getAdmin()) {
echo '<FORM action="clan_castle.php" method=POST><INPUT TYPE="submit" value="Админ: запустить" name="admin_start"><br></FORM>'; echo '<FORM action="clan_castle.php" method=POST><INPUT TYPE="submit" value="Админ: запустить" name="admin_start"><br></FORM>';
echo '<FORM action="clan_castle.php" method=POST><INPUT TYPE="submit" value="Админ: старт боя" name="admin_start1"><br></FORM>'; echo '<FORM action="clan_castle.php" method=POST><INPUT TYPE="submit" value="Админ: старт боя" name="admin_start1"><br></FORM>';
} }
@ -229,7 +229,7 @@ if ($_POST['add_zay']) {
$rrc .= Nick::id($v)->short(); $rrc .= Nick::id($v)->short();
} }
$rr .= "</b>"; $rr .= "</b>";
addch("<a href=logs.php?log=" . $id . " target=_blank>Поединок</a> между <B>" . $rrc . "</B> начался. ", $user->room); addch("<a href=logs.php?log=" . $id . " target=_blank>Поединок</a> между <B>" . $rrc . "</B> начался. ", $user->getRoom());
mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>');"); mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>');");
addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>"); addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>");
@ -287,7 +287,7 @@ if ($_POST['add_zay']) {
addchp('<font color=red>Внимание!</font> Ваш бой начался!<BR>\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ', '{[]}' . Nick::id($v)->short() . '{[]}'); addchp('<font color=red>Внимание!</font> Ваш бой начался!<BR>\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ', '{[]}' . Nick::id($v)->short() . '{[]}');
} }
$rr .= "</b>"; $rr .= "</b>";
addch("<a href=logs.php?log=" . $id . " target=_blank>Поединок</a> между <B>" . $rrc . "</B> начался. ", $user->room); addch("<a href=logs.php?log=" . $id . " target=_blank>Поединок</a> между <B>" . $rrc . "</B> начался. ", $user->getRoom());
mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>');"); mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>');");
addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>"); addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>");

View File

@ -1,24 +1,30 @@
<?php <?php
use Battles\Bank;
use Battles\Rooms;
use Battles\Template;
use Battles\User;
session_start(); session_start();
require_once 'functions.php'; require_once 'functions.php';
$user = $user ?? new \Battles\User($_SESSION['uid']); $user = $user ?? new User($_SESSION['uid']);
$userClan = db::c()->query('SELECT short_name, full_name, info FROM clans where owner_id = ?i', $user->id)->fetch_object(); $userClan = db::c()->query('SELECT short_name, full_name, info FROM clans where owner_id = ?i', $user->getId())->fetch_object();
$clanFullName = $_POST['clan_full_name'] ?? ''; $clanFullName = $_POST['clan_full_name'] ?? '';
$clanShortName = $_POST['clan_short_name'] ?? ''; $clanShortName = $_POST['clan_short_name'] ?? '';
$clanInfo = $_POST['clan_info'] ?? ''; $clanInfo = $_POST['clan_info'] ?? '';
$userBank = new \Battles\Bank($user->id); $userBank = new Bank($user->getId());
if ($clanFullName && $clanShortName && $clanInfo && !$userClan) { if ($clanFullName && $clanShortName && $clanInfo && !$userClan) {
$eff = db::c()->query('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?i', $user->id); $eff = db::c()->query('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?i', $user->getId());
$name_check = db::c()->query('SELECT owner_id FROM clans WHERE full_name = "?s" OR short_name = "?s"', $clanFullName, $clanShortName); $name_check = db::c()->query('SELECT owner_id FROM clans WHERE full_name = "?s" OR short_name = "?s"', $clanFullName, $clanShortName);
$errorMessage = []; $errorMessage = [];
if (Config::$clan_register_lock) { if (Config::$clan_register_lock) {
$errorMessage[10] = 'Регистрация кланов закрыта! <BR>'; $errorMessage[10] = 'Регистрация кланов закрыта! <BR>';
} }
if ($user->align) { if ($user->getAlign()) {
$errorMessage[0] = 'Вы уже имеете направленность!. <BR>'; $errorMessage[0] = 'Вы уже имеете направленность!. <BR>';
} }
if ($user->clan) { if ($user->getClan()) {
$errorMessage[1] = 'Вы уже состоите в клане!. <BR>'; $errorMessage[1] = 'Вы уже состоите в клане!. <BR>';
} }
if (Config::$clan_register_cost >= $userBank->getMoney()) { if (Config::$clan_register_cost >= $userBank->getMoney()) {
@ -30,11 +36,11 @@ if ($clanFullName && $clanShortName && $clanInfo && !$userClan) {
if (!$name_check) { if (!$name_check) {
$errorMessage[4] = 'Клан с такими данными уже существует.<br>'; $errorMessage[4] = 'Клан с такими данными уже существует.<br>';
} }
if (!$errorMessage || $user->admin) { if (!$errorMessage || $user->getAdmin()) {
try { try {
db::c()->query('INSERT INTO clans (owner_id, full_name, short_name, info) VALUES (?i,"?s","?s","?s")', $user->id, $clanFullName, $clanShortName, $clanInfo); db::c()->query('INSERT INTO clans (owner_id, full_name, short_name, info) VALUES (?i,"?s","?s","?s")', $user->getId(), $clanFullName, $clanShortName, $clanInfo);
$userBank->setMoney($userBank->getMoney() - Config::$clan_register_cost); $userBank->setMoney($userBank->getMoney() - Config::$clan_register_cost);
Battles\Bank::setBankMoney($userBank->getMoney(), $user->id, 'clanRegister'); Battles\Bank::setBankMoney($userBank->getMoney(), $user->getId(), 'clanRegister');
// Заглушка для отображения данных по только что зарегистрированному клану, когда запрос в базу в начале файла ещё не проходит. // Заглушка для отображения данных по только что зарегистрированному клану, когда запрос в базу в начале файла ещё не проходит.
$userClan = new stdClass(); $userClan = new stdClass();
$userClan->full_name = $clanFullName; $userClan->full_name = $clanFullName;
@ -51,8 +57,8 @@ if ($clanFullName && $clanShortName && $clanInfo && !$userClan) {
} }
} }
} }
\Battles\Template::header(\Battles\Rooms::$roomNames[30]); Template::header(Rooms::$roomNames[30]);
\Battles\Template::buildingTop(\Battles\Rooms::$roomNames[30], 'strah'); Template::buildingTop(Rooms::$roomNames[30], 'strah');
if ($userClan): ?> if ($userClan): ?>
<div> <div>
<fieldset style="display: inline;"> <fieldset style="display: inline;">

View File

@ -8,10 +8,8 @@
namespace Battles; namespace Battles;
use Config; use Config;
use db;
use Exceptions\GameException; use Exceptions\GameException;
use Krugozor\Database\Mysql\Exception; use Battles\Database\DBPDO;
use SQLite3;
use Throwable; use Throwable;
class Bank class Bank
@ -19,6 +17,7 @@ class Bank
public $user_id; public $user_id;
private $money; private $money;
private $user; private $user;
private static $db;
const ERROR_NO_MONEY_IN_WALLET = "Ошибка! Нет денег в кошельке!"; const ERROR_NO_MONEY_IN_WALLET = "Ошибка! Нет денег в кошельке!";
const ERROR_NO_BANK_ACCOUNT = "Ошибка! Счёта не существует!"; const ERROR_NO_BANK_ACCOUNT = "Ошибка! Счёта не существует!";
@ -32,20 +31,16 @@ class Bank
'clanRegister' => 'Оплата стоимости регистрации клана.', 'clanRegister' => 'Оплата стоимости регистрации клана.',
]; ];
public function __construct($row) public function __construct(int $user_id)
{ {
$bank_row = db::c()->query('SELECT user_id, money FROM bank WHERE user_id = ?i', $row)->fetch_assoc(); self::$db = DBPDO::INIT();
$this->user = db::c()->query('SELECT money FROM users WHERE id = ?i', $row)->fetch_object(); $bank_row = self::$db->fetch('SELECT user_id, money FROM bank WHERE user_id = ?', $user_id);
$this->user = self::$db->fetch('SELECT money FROM users WHERE id = ?', $user_id);
foreach ($this as $key => $value) { foreach ($this as $key => $value) {
if (isset($bank_row[$key])) { if (isset($bank_row[$key])) {
$this->$key = $bank_row[$key]; $this->$key = $bank_row[$key];
} }
} }
// Если ВДРУГ у человека нет счёта в банке - создаём.
if (empty($this->user_id)) {
db::c()->query('INSERT INTO bank (user_id) VALUES (?i)', $row);
$this->user_id = $row;
}
} }
/** /**
@ -74,7 +69,6 @@ class Bank
* @param int $senderId ID отправителя (ID игрока, если не указано иное). * @param int $senderId ID отправителя (ID игрока, если не указано иное).
* *
* @return void * @return void
* @throws Exception
*/ */
private function bankLogs(int $receiverId, int $amount, string $operationType, int $senderId = 0): void private function bankLogs(int $receiverId, int $amount, string $operationType, int $senderId = 0): void
{ {
@ -100,11 +94,11 @@ class Bank
* @param int $amount сумма. * @param int $amount сумма.
* *
* @return int * @return int
* @throws Exception * @throws GameException
*/ */
public function sendMoney(int $receiver, int $amount): int public function sendMoney(int $receiver, int $amount): int
{ {
$receiverWallet = db::c()->query('SELECT money FROM bank WHERE user_id = ?i', $receiver)->fetch_object(); $receiverWallet = self::$db->fetch('SELECT money FROM bank WHERE user_id = ?', $receiver);
if ($amount <= 0) { if ($amount <= 0) {
throw new GameException(self::ERROR_WRONG_AMOUNT); throw new GameException(self::ERROR_WRONG_AMOUNT);
} }
@ -133,14 +127,14 @@ class Bank
* @param int $amount сумма. * @param int $amount сумма.
* *
* @return array * @return array
* @throws Exception * @throws GameException
*/ */
public function depositMoney(int $amount): array public function depositMoney(int $amount): array
{ {
if ($amount <= 0) { if ($amount <= 0) {
throw new GameException(self::ERROR_WRONG_AMOUNT); throw new GameException(self::ERROR_WRONG_AMOUNT);
} }
$wallet = db::c()->query('SELECT money FROM users WHERE id = ?i', $this->user_id)->fetch_object(); $wallet = self::$db->fetch('SELECT money FROM users WHERE id = ?', $this->user_id);
if ($wallet->money < $amount) { if ($wallet->money < $amount) {
throw new GameException(self::ERROR_NO_MONEY_IN_WALLET); throw new GameException(self::ERROR_NO_MONEY_IN_WALLET);
} }
@ -164,7 +158,7 @@ class Bank
* @param int $amount сумма. * @param int $amount сумма.
* *
* @return array * @return array
* @throws Exception * @throws GameException
*/ */
public function withdrawMoney(int $amount): array public function withdrawMoney(int $amount): array
{ {
@ -197,14 +191,13 @@ class Bank
* @param string $operationType Тип операции. По умолчанию пусто. Если ввести, система запишет событие в банковский лог. * @param string $operationType Тип операции. По умолчанию пусто. Если ввести, система запишет событие в банковский лог.
* *
* @return void * @return void
* @throws Exception
*/ */
public static function setBankMoney(int $amount, int $user_id, string $operationType = ''): void public static function setBankMoney(int $amount, int $user_id, string $operationType = ''): void
{ {
try { try {
db::c()->query('UPDATE bank SET money = ?i WHERE user_id = ?i', $amount, $user_id); self::$db->execute('UPDATE bank SET money = ? WHERE user_id = ?', [$amount, $user_id]);
if ($operationType) { if ($operationType) {
(new Bank($user_id))->bankLogs(0, $amount, $operationType); GameLogs::addBankLog(0, 0, $amount, $operationType, self::LOG[$operationType]);
} }
} catch (Throwable $e) { } catch (Throwable $e) {
echo "Не отработал запрос в БД в файле {$e->getFile()}({$e->getLine()})"; echo "Не отработал запрос в БД в файле {$e->getFile()}({$e->getLine()})";
@ -219,12 +212,11 @@ class Bank
* @param int $user_id ID пользователя. * @param int $user_id ID пользователя.
* *
* @return void * @return void
* @throws Exception
*/ */
public static function setWalletMoney(int $amount, int $user_id): void public static function setWalletMoney(int $amount, int $user_id): void
{ {
try { try {
db::c()->query('UPDATE users SET money = ?i WHERE `id` = ?i', $amount, $user_id); self::$db->execute('UPDATE users SET money = ? WHERE id = ?', [$amount, $user_id]);
} catch (Throwable $e) { } catch (Throwable $e) {
echo "Не отработал запрос в БД в файле {$e->getFile()}({$e->getLine()})"; echo "Не отработал запрос в БД в файле {$e->getFile()}({$e->getLine()})";
} }

View File

@ -0,0 +1,148 @@
<?php
namespace Battles\Database;
const DATABASE_HOST = '192.168.20.5';
const DATABASE_NAME = 'battles';
const DATABASE_USER = 'battles';
const DATABASE_PASS = 'bottle-neck-horse';
const DATABASE_PORT = '32101';
use PDO, PDOException;
class DBPDO
{
public $pdo;
private static $_instance = null;
function __construct()
{
$this->connect();
}
public static function INIT(): DBPDO
{
if (!self::$_instance) {
self::$_instance = new DBPDO();
}
return self::$_instance;
}
function prep_query($query)
{
return $this->pdo->prepare($query);
}
function connect():bool
{
if (!$this->pdo) {
$dsn = 'mysql:dbname=' . DATABASE_NAME . ';host=' . DATABASE_HOST . ';port=' . DATABASE_PORT . ';charset=utf8;';
$user = DATABASE_USER;
$password = DATABASE_PASS;
try {
$this->pdo = new PDO($dsn, $user, $password, array(PDO::ATTR_PERSISTENT => true));
return true;
} catch (PDOException $e) {
die($e->getMessage());
}
} else {
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
return true;
}
}
function table_exists($table_name)
{
$stmt = $this->prep_query('SHOW TABLES LIKE ?');
$stmt->execute(array($table_name));
return $stmt->rowCount() > 0;
}
function execute($query, $values = null)
{
if ($values == null) {
$values = array();
} else if (!is_array($values)) {
$values = array($values);
}
$stmt = $this->prep_query($query);
$stmt->execute($values);
return $stmt;
}
function fetch($query, $values = null)
{
if ($values == null) {
$values = array();
} else if (!is_array($values)) {
$values = array($values);
}
$stmt = $this->execute($query, $values);
return $stmt->fetch(PDO::FETCH_ASSOC);
}
function fetchAll($query, $values = null, $key = null)
{
if ($values == null) {
$values = array();
} else if (!is_array($values)) {
$values = array($values);
}
$stmt = $this->execute($query, $values);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Allows the user to retrieve results using a
// column from the results as a key for the array
if ($key != null && $results[0][$key]) {
$keyed_results = array();
foreach ($results as $result) {
$keyed_results[$result[$key]] = $result;
}
$results = $keyed_results;
}
return $results;
}
function ofetch($query, $values = null)
{
if ($values == null) {
$values = array();
} else if (!is_array($values)) {
$values = array($values);
}
$stmt = $this->execute($query, $values);
return $stmt->fetch(PDO::FETCH_OBJ);
}
function ofetchAll($query, $values = null, $key = null)
{
if ($values == null) {
$values = array();
} else if (!is_array($values)) {
$values = array($values);
}
$stmt = $this->execute($query, $values);
$results = $stmt->fetchAll(PDO::FETCH_OBJ);
// Allows the user to retrieve results using a
// column from the results as a key for the array
if ($key != null && $results[0][$key]) {
$keyed_results = (object) array();
foreach ($results as $result) {
$keyed_results->$result[$key] = $result;
}
$results = $keyed_results;
}
return $results;
}
function lastInsertId()
{
return $this->pdo->lastInsertId();
}
}

View File

@ -4,50 +4,46 @@
* Date: 06.07.2020 * Date: 06.07.2020
* Time: 22:41 * Time: 22:41
*/ */
namespace Battles; namespace Battles;
use db;
use Krugozor\Database\Mysql\Exception; use Battles\Database\DBPDO;
class DressedItems class DressedItems
{ {
private $DB;
private $DBSUM;
private $USERID; private $USERID;
private $dressedItem; private $dressedItem;
private static $db;
/** /**
* DressedItems constructor. * DressedItems constructor.
* * @param int $user_id ID игрока.
* @param $user_id - ID игрока.
*/ */
public function __construct($user_id) public function __construct(int $user_id)
{ {
self::$db = DBPDO::INIT();
$this->USERID = $user_id; $this->USERID = $user_id;
} }
private function getDressedItems()
{
try {
$this->DB = db::c()->query('SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot > 0', $this->USERID);
} catch (\Exception $e) {
echo '<div class="debug">Не прогрузилась таблица inventory (*) для класса DressedItems.</div>';
}
}
private static function getDressedItemById($item_id)
{
return db::c()->query('SELECT * FROM inventory WHERE item_id = ?i AND dressed_slot > 0', $item_id)->fetch_assoc();
}
public static function getDressedItemBySlot($itemSlot, $ownerId) public static function getDressedItemBySlot($itemSlot, $ownerId)
{ {
return db::c()->query('SELECT * FROM battles.inventory WHERE owner_id = ?i AND dressed_slot = ?i', $ownerId, $itemSlot)->fetch_assoc(); return self::$db->fetch('SELECT * FROM inventory WHERE owner_id = ? AND dressed_slot = ?', [$ownerId, $itemSlot]);
} }
private function getBonusesFromDressedItems() public function getItemsInSlots()
{ {
try { $items = self::$db->ofetchALL('SELECT * FROM inventory WHERE owner_id = ? AND dressed_slot > 0', $this->USERID);
$query = <<<SQL $i = 0;
while ($i < count($items)) {
$this->dressedItem[$items[$i]->dressed_slot] = $items;
$i++;
}
return $this->dressedItem;
}
private function getBonuses(): array
{
$query = <<<SQL
SELECT SUM(add_strength) as sum_strength, SELECT SUM(add_strength) as sum_strength,
SUM(add_dexterity) as sum_dexterity, SUM(add_dexterity) as sum_dexterity,
SUM(add_intuition) as sum_intuition, SUM(add_intuition) as sum_intuition,
@ -59,74 +55,62 @@ SELECT SUM(add_strength) as sum_strength,
SUM(add_criticals) as sum_criticals, SUM(add_criticals) as sum_criticals,
SUM(add_min_physical_damage) as sum_min_phys_damage, SUM(add_min_physical_damage) as sum_min_phys_damage,
SUM(add_max_physical_damage) as sum_max_phys_damage SUM(add_max_physical_damage) as sum_max_phys_damage
FROM inventory WHERE owner_id = ?i AND dressed_slot > 0 FROM inventory WHERE owner_id = ? AND dressed_slot > 0
SQL; SQL;
$this->DBSUM = db::c()->query($query, $this->USERID)->fetch_assoc(); return self::$db->fetch($query, $this->USERID);
} catch (\Exception $e) {
echo '<div class="debug">Не прогрузилась таблица inventory (SUM) для класса DressedItems:' . $e . '</div>';
}
} }
public function getItemsInSlots() public function getStrengthBonus(): ?int
{
if (!$this->DB) {
self::getDressedItems();
}
while ($row = $this->DB->fetch_assoc()) {
$this->dressedItem[$row['dressed_slot']] = $row;
}
return $this->dressedItem;
}
private function getBonuses()
{
if (!$this->DBSUM) {
self::getBonusesFromDressedItems();
}
return $this->DBSUM;
}
public function getStrengthBonus()
{ {
return self::getBonuses()['sum_strength']; return self::getBonuses()['sum_strength'];
} }
public function getDexterityBonus()
public function getDexterityBonus(): ?int
{ {
return self::getBonuses()['sum_dexterity']; return self::getBonuses()['sum_dexterity'];
} }
public function getIntuitionBonus()
public function getIntuitionBonus(): ?int
{ {
return self::getBonuses()['sum_intuition']; return self::getBonuses()['sum_intuition'];
} }
public function getEnduranceBonus()
public function getEnduranceBonus(): ?int
{ {
return self::getBonuses()['sum_endurance']; return self::getBonuses()['sum_endurance'];
} }
public function getIntelliganceBonus()
public function getIntelliganceBonus(): ?int
{ {
return self::getBonuses()['sum_intelligence']; return self::getBonuses()['sum_intelligence'];
} }
public function getWisdomBonus()
public function getWisdomBonus(): ?int
{ {
return self::getBonuses()['sum_wisdom']; return self::getBonuses()['sum_wisdom'];
} }
public function getAccuracyBonus()
public function getAccuracyBonus(): ?int
{ {
return self::getBonuses()['sum_accuracy'] ?? 0; return self::getBonuses()['sum_accuracy'] ?? 0;
} }
public function getEvasionBonus()
public function getEvasionBonus(): ?int
{ {
return self::getBonuses()['sum_evasion'] ?? 0; return self::getBonuses()['sum_evasion'] ?? 0;
} }
public function getCriticalsBonus()
public function getCriticalsBonus(): ?int
{ {
return self::getBonuses()['sum_criticals'] ?? 0; return self::getBonuses()['sum_criticals'] ?? 0;
} }
public function getMinPhysDamage()
public function getMinPhysDamage(): ?int
{ {
return self::getBonuses()['sum_min_phys_damage']; return self::getBonuses()['sum_min_phys_damage'];
} }
public function getMaxPhysDamage()
public function getMaxPhysDamage(): ?int
{ {
return self::getBonuses()['sum_max_phys_damage']; return self::getBonuses()['sum_max_phys_damage'];
} }
@ -134,23 +118,13 @@ SQL;
/** /**
* Снимает с предмета статус одетого на персонажа в определённом слоте персонажа. * Снимает с предмета статус одетого на персонажа в определённом слоте персонажа.
* @param $slot_id - номер слота. * @param $slot_id - номер слота.
*
* @throws Exception
*/ */
public function undressItem($slot_id) public function undressItem($slot_id)
{ {
self::getItemsInSlots(); self::getItemsInSlots();
// Проверяем, что используется один из 12 слотов и наличие предмета в слоте. // Проверяем, что используется один из 12 слотов и наличие предмета в слоте.
if (in_array($slot_id, Item::ITEM_TYPES_ALLOWED_IN_SLOTS) && $this->dressedItem[$slot_id]) { if (in_array($slot_id, Item::ITEM_TYPES_ALLOWED_IN_SLOTS) && $this->dressedItem[$slot_id]) {
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i AND owner_id = ?i', $slot_id, $this->USERID); self::$db->execute('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ? AND owner_id = ?', [$slot_id, $this->USERID]);
}
}
public function slotStatus($slot_id)
{
self::getItemsInSlots();
if ($this->dressedItem[$slot_id]) {
} }
} }
} }

View File

@ -2,7 +2,10 @@
namespace Battles; namespace Battles;
use Config;
use SQLite3; use SQLite3;
use SQLite3Result;
class GameLogs class GameLogs
{ {
@ -16,7 +19,7 @@ class GameLogs
*/ */
public static function addBankLog(int $senderId, int $receiverId, int $amount, string $type, string $text) public static function addBankLog(int $senderId, int $receiverId, int $amount, string $type, string $text)
{ {
$db = new SQLite3('databases/logs.sqlite'); $db = new SQLite3(Config::$db_sqlite);
$row = $db->prepare("INSERT INTO bank_logs (sender_id, receiver_id, amount, type, text) VALUES (?, ?, ?, ?, ?)"); $row = $db->prepare("INSERT INTO bank_logs (sender_id, receiver_id, amount, type, text) VALUES (?, ?, ?, ?, ?)");
$row->bindParam(1, $senderId, SQLITE3_INTEGER); $row->bindParam(1, $senderId, SQLITE3_INTEGER);
$row->bindParam(2, $receiverId, SQLITE3_INTEGER); $row->bindParam(2, $receiverId, SQLITE3_INTEGER);
@ -42,7 +45,7 @@ class GameLogs
if (empty($type)) { if (empty($type)) {
$type = "system"; $type = "system";
} }
$db = new SQLite3('databases/logs.sqlite'); $db = new SQLite3(Config::$db_sqlite);
$row = $db->prepare("INSERT INTO users_logs (user_id, author_id, type, text) VALUES (?,?,?,?)"); $row = $db->prepare("INSERT INTO users_logs (user_id, author_id, type, text) VALUES (?,?,?,?)");
$row->bindParam(1, $userId, SQLITE3_INTEGER); $row->bindParam(1, $userId, SQLITE3_INTEGER);
$row->bindParam(2, $authorId, SQLITE3_INTEGER); $row->bindParam(2, $authorId, SQLITE3_INTEGER);
@ -51,4 +54,29 @@ class GameLogs
$row->execute(); $row->execute();
$row->close(); $row->close();
} }
public static function getUserLogs($userId = null, $type = null): SQLite3Result
{
$db = new SQLite3(Config::$db_sqlite);
if ($userId && $type) {
$query = "SELECT * FROM users_logs WHERE user_id = ? AND type = ?";
$row = $db->prepare($query);
$row->bindValue(1, $userId, SQLITE3_INTEGER);
$row->bindValue(2, $type, SQLITE3_TEXT);
} elseif ($userId && !$type) {
$query = "SELECT * FROM users_logs WHERE user_id = ?";
$row = $db->prepare($query);
$row->bindValue(1, $userId, SQLITE3_INTEGER);
} elseif (!$userId && $type) {
$query = "SELECT * FROM users_logs WHERE type= ?";
$row = $db->prepare($query);
$row->bindValue(1, $type, SQLITE3_TEXT);
} elseif (!$userId && !$type) {
$query = "SELECT * FROM users_logs";
$row = $db->prepare($query);
}
return $row->execute();
}
} }

View File

@ -31,19 +31,5 @@ class InventoryItem extends Item
} }
} }
/** public function printControls() {}
* Для кнопок управления под картинкой предмета в зависимости от ситуации.
*/
public function printControls()
{
//FIXME Сменить заглушку на нормальную функцию!!
echo <<<BTN
<p><button class="button danger" onclick="location.href='/admin.php'">Выбросить</button>
BTN;
}
public function getId()
{
return $this->item_id;
}
} }

View File

@ -38,8 +38,9 @@ abstract class Item
public const ITEM_TYPE_RING = 9; public const ITEM_TYPE_RING = 9;
public const ITEM_TYPE_AMULET = 10; public const ITEM_TYPE_AMULET = 10;
public const ITEM_TYPE_CONSUMABLE = 20; public const ITEM_TYPE_CONSUMABLE = 20;
const ITEM_TYPE_OTHER = 50; public const ITEM_TYPE_OTHER = 50;
const ITEM_TYPE_TRASH = 100; public const ITEM_TYPE_TRASH = 100;
private $typename;
/** /**
* Item constructor. * Item constructor.
@ -102,7 +103,7 @@ abstract class Item
IMG; IMG;
} }
protected function wrap($number) protected function wrap(int $number):string
{ {
if ($number > 0) { if ($number > 0) {
return ": <b>" . $number . "</b>"; return ": <b>" . $number . "</b>";
@ -113,55 +114,38 @@ IMG;
protected function printAllInfo() protected function printAllInfo()
{ {
$needsLines = [
"сила" => $this->need_strength,
"ловкость" =>$this->need_dexterity,
"интуиция" =>$this->need_intuition,
"выносливость" =>$this->need_endurance,
"интеллект" =>$this->need_intelligence,
"мудрость" =>$this->need_wisdom,
];
$addsLines = [
"Сила" => $this->add_strength,
"Ловкость" => $this->add_dexterity,
"Интуиция" => $this->add_intuition,
"Выносливость" => $this->add_endurance,
"Интеллект" => $this->add_intelligence,
"Мудрость" => $this->add_wisdom,
"Точность" => $this->add_accuracy,
"Увёртливость" => $this->add_evasion,
"Шанс крита" => $this->add_criticals,
];
echo "<b>" . $this->name . "</b> (Масса: " . $this->weight . ")"; echo "<b>" . $this->name . "</b> (Масса: " . $this->weight . ")";
if ($this->durability) { echo "<br> Долговечность: " . $this->durability;
echo "<br> Долговечность: " . $this->durability;
}
echo "<br><em>{$this->typename}</em><br>"; echo "<br><em>{$this->typename}</em><br>";
if ($this->need_strength > 0) { foreach ($needsLines as $stat => $value) {
echo "<br>Требуется сила" . $this->wrap($this->need_strength); if ($value > 0) {
echo "<br>Требуется $stat" . $this->wrap($value);
}
} }
if ($this->need_dexterity > 0) { foreach ($addsLines as $stat => $value) {
echo "<br>Требуется ловкость" . $this->wrap($this->need_dexterity); if ($value) {
} echo "<br>$stat" . $this->wrap($value);
if ($this->need_intuition > 0) { }
echo "<br>Требуется интуиция" . $this->wrap($this->need_intuition);
}
if ($this->need_endurance > 0) {
echo "<br>Требуется выносливость" . $this->wrap($this->need_endurance);
}
if ($this->need_intelligence > 0) {
echo "<br>Требуется интеллект" . $this->wrap($this->need_intelligence);
}
if ($this->need_wisdom > 0) {
echo "<br>Требуется мудрость" . $this->wrap($this->need_wisdom);
}
if ($this->add_strength) {
echo "<br>Сила" . $this->wrap($this->add_strength);
}
if ($this->add_dexterity) {
echo "<br>Ловкость" . $this->wrap($this->add_dexterity);
}
if ($this->add_intuition) {
echo "<br>Интуиция" . $this->wrap($this->add_intuition);
}
if ($this->add_endurance) {
echo "<br>Выносливость" . $this->wrap($this->add_endurance);
}
if ($this->add_intelligence) {
echo "<br>Интеллект" . $this->wrap($this->add_intelligence);
}
if ($this->add_wisdom) {
echo "<br>Мудрость" . $this->wrap($this->add_wisdom);
}
if ($this->add_accuracy) {
echo "<br>Точность" . $this->wrap($this->add_accuracy);
}
if ($this->add_evasion) {
echo "<br>Увёртливость" . $this->wrap($this->add_evasion);
}
if ($this->add_criticals) {
echo "<br>Шанс крита" . $this->wrap($this->add_criticals);
} }
if ($this->add_min_physical_damage && !$this->add_max_physical_damage) { if ($this->add_min_physical_damage && !$this->add_max_physical_damage) {
$damage = $this->add_min_physical_damage . " - " . $this->add_min_physical_damage; $damage = $this->add_min_physical_damage . " - " . $this->add_min_physical_damage;

View File

@ -2,52 +2,49 @@
# Date: 16.09.2020 (08:23) # Date: 16.09.2020 (08:23)
// Магия лечения травм // Магия лечения травм
namespace Battles\Magic; namespace Battles\Magic;
use Battles\UserEffects;
use Battles\User; use Battles\UserEffects, Battles\Database\DBPDO, Battles\User;
use db;
use Krugozor\Database\Mysql\Exception;
class CureInjury extends Magic class CureInjury extends Magic
{ {
private $target; private $target;
private $login;
use UserEffects; use UserEffects;
/** /**
* Магия лечения травм. Если у персонажа несколько травм, лечится самая тяжёлая. * Магия лечения травм. Если у персонажа несколько травм, лечится самая тяжёлая.
* @param $target - кого лечим. * @param int $target - кого лечим.
* @param $injuryType - тип травмы, которую лечим. 11 лёгкая, 12 средняя, 13 тяжёлая, 14 неизлечимая. * @param int $injuryType - тип травмы, которую лечим. 11 лёгкая, 12 средняя, 13 тяжёлая, 14 неизлечимая, 15 все травмы.
* @throws Exception
*/ */
public function __construct($target, $injuryType) public function __construct(int $target, int $injuryType)
{ {
$db = DBPDO::INIT();
$this->target = $target; $this->target = $target;
if ($target && $this->isUsable()) { if (!$this->isUsable()) {
$injury = db::c()->query('SELECT effect_id, type, name FROM users_effects WHERE type IN (11,12,13,14) AND owner_id = ?i ORDER BY type DESC LIMIT 1', $target)->fetch_object();
$targetName = $this->target->login;
if (in_array($injury->effect_id, [11, 12, 13, 14]) && $injuryType >= $injury->type) {
db::c()->query('DELETE FROM users_effects WHERE effect_id = ?i', $injury->effect_id);
if (empty($injury->name) || $injury->name == 'Неизвестный эффект') {
$injuryName = self::$effectName[$injury->type];
} else {
$injuryName = $injury->name;
}
return "Вы вылечили повреждение ${injuryName} персонажу ${targetName}.";
} elseif ($injury->effect_id && $injuryType == 15) {
db::c()->query('DELETE FROM users_effects WHERE type IN (11,12,13,14) AND owner_id = ?i', $target);
return "Вы вылечили все повреждения персонажу ${targetName}.";
} else {
return false;
}
} else {
return $this->status; return $this->status;
} }
$ok = null;
$injury = $db->ofetch('SELECT effect_id, type, name FROM users_effects WHERE type IN (11,12,13,14) AND owner_id = ? ORDER BY type DESC LIMIT 1', $target);
if (in_array($injury->type, [11, 12, 13, 14]) && $injuryType >= $injury->type) {
$db->execute('DELETE FROM users_effects WHERE effect_id = ?', $injury->effect_id);
if (empty($injury->name) || $injury->name == 'Неизвестный эффект') {
$injuryName = self::$effectName[$injury->type];
} else {
$injuryName = $injury->name;
}
$ok = "Вы вылечили повреждение ${injuryName} персонажу $this->login.";
} elseif ($injury->effect_id && $injuryType == 15) {
$db->execute('DELETE FROM users_effects WHERE type IN (11,12,13,14) AND owner_id = ?', $target);
$ok = "Вы вылечили все повреждения персонажу $this->login.";
}
return $ok;
} }
/** /**
* Проверки на успех. * Проверки на успех.
* @return bool * @return bool
*/ */
private function isUsable() private function isUsable(): bool
{ {
$caster = new User($_SESSION['uid']); $caster = new User($_SESSION['uid']);
if ($this->target == $_SESSION['uid']) { if ($this->target == $_SESSION['uid']) {
@ -55,6 +52,7 @@ class CureInjury extends Magic
} else { } else {
$this->target = new User($this->target); $this->target = new User($this->target);
} }
$this->login = $this->target->login;
return ($this->isVisible($caster, $this->target) && $this->isNotDead($caster) && $this->enoughMana($caster) && $this->isNotInBattle($caster)); return ($this->isVisible($caster, $this->target) && $this->isNotDead($caster) && $this->enoughMana($caster) && $this->isNotInBattle($caster));
} }
} }

View File

@ -2,7 +2,8 @@
// Магия восстановления здоровья // Магия восстановления здоровья
use Battles\Magic\Magic; use Battles\Magic\Magic;
use Battles\User; use Battles\User;
use Krugozor\Database\Mysql\Exception; use Battles\Database\DBPDO;
class Healing extends Magic class Healing extends Magic
{ {
private $target; private $target;
@ -10,38 +11,35 @@ class Healing extends Magic
/** /**
* Магия лечения. * Магия лечения.
* @param $target - кого лечим. * @param $target - кого лечим.
* @param $power - на сколько лечим. * @param $power - на сколько лечим.
* @param null $isPercentage - если включён, считает $power в процентах, иначе, по-умолчанию просто как число. * @param null $isPercentage - если включён, считает $power в процентах, иначе, по-умолчанию просто как число.
*
* @throws Exception
*/ */
public function __construct($target, $power, $isPercentage = null) public function __construct($target, $power, $isPercentage = null)
{ {
$this->magicPower = $power; $this->magicPower = $power;
$this->target = $target; $this->target = $target;
if ($target && $this->isUsable()) { if (!$this->isUsable()) {
if ($isPercentage) {
$healHealthAmount = $this->target->health + $this->target->maxHealth / 100 * $this->magicPower;
} else {
$healHealthAmount = $this->target->health + $this->magicPower;
}
if ($healHealthAmount > $this->target->maxHealth) {
$healHealthAmount = $this->target->maxHealth;
}
db::c()->query('UPDATE users SET health = ?i WHERE id = ?i', $healHealthAmount, $this->target->id);
$targetName = $this->target->login;
return "Вы восстановили ${healHealthAmount} здоровья персонажу ${targetName}.";
} else {
return $this->status; return $this->status;
} }
if ($isPercentage) {
$healHealthAmount = $this->target->health + $this->target->maxHealth / 100 * $this->magicPower;
} else {
$healHealthAmount = $this->target->health + $this->magicPower;
}
if ($healHealthAmount > $this->target->maxHealth) {
$healHealthAmount = $this->target->maxHealth;
}
DBPDO::INIT()->execute('UPDATE users SET health = ? WHERE id = ?', [$healHealthAmount, $this->target->id]);
$targetName = $this->target->login;
return "Вы восстановили ${healHealthAmount} здоровья персонажу ${targetName}.";
} }
/** /**
* Проверки на успех. * Проверки на успех.
* @return bool * @return bool
*/ */
private function isUsable():bool private function isUsable(): bool
{ {
$caster = new User($_SESSION['uid']); $caster = new User($_SESSION['uid']);
if ($this->target == $_SESSION['uid']) { if ($this->target == $_SESSION['uid']) {
@ -49,6 +47,6 @@ class Healing extends Magic
} else { } else {
$this->target = new User($this->target); $this->target = new User($this->target);
} }
return $this->isVisible($caster, $this->target) && $this->isNotDead($caster) && $this->enoughMana($caster) && $this->skillCheck($caster); return $this->isVisible($caster, $this->target) && $this->isNotDead($caster) && $this->enoughMana($caster) && $this->isSuccess($caster);
} }
} }

View File

@ -52,7 +52,7 @@ class Magic
* *
* @return bool * @return bool
*/ */
protected function skillCheck($caster, int $difficulty = 40):bool protected function isSuccess($caster, int $difficulty = 40):bool
{ {
# 40 - потолок стата. # 40 - потолок стата.
if ($difficulty > 40) { if ($difficulty > 40) {

View File

@ -3,12 +3,10 @@
namespace Battles\Magic; namespace Battles\Magic;
use Battles\Database\DBPDO;
use Battles\DressedItems; use Battles\DressedItems;
use Battles\Item; use Battles\Item;
use Battles\User; use Battles\User;
use Krugozor\Database\Mysql\Exception;
use db;
class Sharpen extends Magic class Sharpen extends Magic
{ {
@ -20,30 +18,29 @@ class Sharpen extends Magic
* @param int $sharpenStrength * @param int $sharpenStrength
* @param int $magicDifficulty * @param int $magicDifficulty
* *
* @throws Exception
*/ */
public function __construct(int $sharpenStrength, int $magicDifficulty) public function __construct(int $sharpenStrength, int $magicDifficulty)
{ {
$this->magicDifficulty = $magicDifficulty; $this->magicDifficulty = $magicDifficulty;
if ($this->isUsable()) { if (!$this->isUsable()) {
$item = DressedItems::getDressedItemBySlot(Item::ITEM_TYPE_WEAPON, $_SESSION['uid']);
// Проверяем, что в названии предмета нет цифр и плюсов.
if (preg_match('/[\W\S]+\+\[?[\d]]?/', $item['name'])) {
return 'Этот предмет точить нельзя!';
}
$newMinPhysicalDamage = $item['add_min_physical_damage'] + $sharpenStrength;
$newMaxPhysicalDamage = $item['add_max_physical_damage'] + $sharpenStrength;
$newItemName = $item['name'] . " [+$sharpenStrength]";
db::c()->query('UPDATE battles.inventory SET name = "?s", add_min_physical_damage = "?s", add_max_physical_damage = "?s" WHERE item_id = ?i ', $newItemName, $newMinPhysicalDamage, $newMaxPhysicalDamage, $item['item_id']);
return "У вас получилось изготовить предмет $newItemName!";
} else {
return $this->status; return $this->status;
} }
$item = DressedItems::getDressedItemBySlot(Item::ITEM_TYPE_WEAPON, $_SESSION['uid']);
// Проверяем, что в названии предмета нет цифр и плюсов.
if (preg_match('/[\W\S]+\+\[?[\d]]?/', $item['name'])) {
return 'Этот предмет точить нельзя!';
}
$newMinPhysicalDamage = $item['add_min_physical_damage'] + $sharpenStrength;
$newMaxPhysicalDamage = $item['add_max_physical_damage'] + $sharpenStrength;
$newItemName = $item['name'] . " [+$sharpenStrength]";
DBPDO::INIT()->execute('UPDATE battles.inventory SET name = ?, add_min_physical_damage = ?, add_max_physical_damage = ? WHERE item_id = ? ', [$newItemName, $newMinPhysicalDamage, $newMaxPhysicalDamage, $item['item_id']]);
return "У вас получилось изготовить предмет $newItemName!";
} }
private function isUsable():bool
private function isUsable(): bool
{ {
$caster = new User($_SESSION['uid']); $caster = new User($_SESSION['uid']);
return $this->isNotInBattle($caster) && $this->skillCheck($caster, $this->magicDifficulty); return $this->isNotInBattle($caster) && $this->isSuccess($caster, $this->magicDifficulty);
} }
} }

View File

@ -1,41 +0,0 @@
<?php
namespace Battles\Magic;
use db;
class attack
{
private $target_user;
private $caster;
private function __construct($target_user_id)
{
if (!$this->caster) {
$this->caster = db::c()->query('SELECT * FROM `users` WHERE `id` = ?i', $_SESSION['uid']);
}
if (!$this->target_user) {
$this->target_user = db::c()->query('SELECT * FROM `users` WHERE `id` = ?i', $target_user_id);
}
if ($this->checks() == 1) {
return 'Done!';
}
}
private function checks()
{
if ($this->caster['battle']) {
return 'Не в бою...';
}
else {
return 1;
}
}
public static function id($playerId)
{
return new self($playerId);
}
}

View File

@ -4,33 +4,34 @@
* Date: 05.07.2020 * Date: 05.07.2020
* Time: 23:32 * Time: 23:32
*/ */
namespace Battles\Models; namespace Battles\Models;
use Battles\Database\DBPDO;
class EffectsModel class EffectsModel
{ {
protected $DB; protected $DB;
const EFFECT_HIDEUSERINFO = 5; // Обезлик const EFFECT_HIDEUSERINFO = 5; // Обезлик
public function __construct(int $user_id) {
try {
$this->DB = \db::c()->query('SELECT * FROM users_effects WHERE owner_id = ?i', $user_id);
} catch (\Throwable $e) {echo '<div class="debug">class EffectsModel: Не могу подключиться к таблице effects!</div>';}
}
private function getEffects($user_id) public function __construct(int $user_id)
{ {
$this->DB = DBPDO::INIT()->ofetchAll('SELECT * FROM users_effects WHERE owner_id = ?', $user_id);
} }
/** /**
* Проверка обезличен ли персонаж. * Проверка обезличен ли персонаж.
* @return int date() до конца эффекта или 0. * @return int date() до конца эффекта или 0.
*/ */
public function getHideUserInfoStatus() public function getHideUserInfoStatus(): int
{ {
if ($this->DB) { if ($this->DB) {
while ($row = $this->DB->fetch_object()) { $i = 0;
if ($row->type == self::EFFECT_HIDEUSERINFO) { while ($i < count($this->DB)) {
return $row->time; if ($this->DB[$i]->type == self::EFFECT_HIDEUSERINFO) {
return $this->DB[$i]->remaining_time;
} }
$i++;
} }
} }
return 0; return 0;

View File

@ -5,7 +5,8 @@
* Time: 13:17 * Time: 13:17
*/ */
namespace Battles\Models; namespace Battles\Models;
use Exceptions\GameException;
use Battles\Database\DBPDO;
class PresentsModel class PresentsModel
{ {
@ -14,7 +15,7 @@ class PresentsModel
public function __construct(int $user_id) public function __construct(int $user_id)
{ {
if (!$this->DB) { if (!$this->DB) {
$this->DB = \db::c()->query('SELECT sender_id, image FROM `users_presents` WHERE owner_id = ?i', $user_id); $this->DB = DBPDO::INIT()->execute('SELECT sender_id, image FROM `users_presents` WHERE owner_id = ?', $user_id);
} }
} }
@ -22,9 +23,4 @@ class PresentsModel
{ {
return $this->DB; return $this->DB;
} }
public function getPresentsSum()
{
return $this->DB->getNumRows();
}
} }

View File

@ -1,22 +0,0 @@
<?php
/**
* Author: lopiu
* Date: 05.07.2020
* Time: 22:38
*/
namespace Battles\Models;
class UserLogModel
{
protected $DB;
public function __construct(int $user_id)
{
$this->DB = \db::c()->query('SELECT * FROM users_logs WHERE user_id = ?i ORDER BY `id` ASC', $user_id);
}
public function getUserLog()
{
return $this->DB;
}
}

View File

@ -0,0 +1,86 @@
<?php
# Date: 25.01.2021 (22:59)
namespace Battles;
use Battles\Database\DBPDO;
class Moderation
{
private const STATUS_OFF = " [снято]";
private static function addEffectStatusToUserLog(int $userId, string $message)
{
$message = "Получен эффект «" . $message . "» до " . date("d.m.Y H:i");
GameLogs::addUserLog($userId, $message, "moderation");
}
public static function muteChat(int $target, int $time): bool
{
self::addEffectStatusToUserLog($target, UserEffects::$effectName[2]);
return User::setUserEffect($target, 2, UserEffects::$effectName[2], $time);
}
public static function unmuteChat(int $target): bool
{
self::addEffectStatusToUserLog($target, UserEffects::$effectName[2] . self::STATUS_OFF);
return User::removeUserEffect($target, 2);
}
public static function muteForum(int $target, int $time): bool
{
self::addEffectStatusToUserLog($target, UserEffects::$effectName[3]);
return User::setUserEffect($target, 3, UserEffects::$effectName[3], $time);
}
public static function unmuteForum(int $target): bool
{
self::addEffectStatusToUserLog($target, UserEffects::$effectName[3] . self::STATUS_OFF);
return User::removeUserEffect($target, 3);
}
public static function hideUserInfo(int $target, int $time): bool
{
self::addEffectStatusToUserLog($target, UserEffects::$effectName[5]);
return User::setUserEffect($target, 5, UserEffects::$effectName[5], $time);
}
public static function unHideUserInfo(int $target): bool
{
self::addEffectStatusToUserLog($target, UserEffects::$effectName[5] . self::STATUS_OFF);
return User::removeUserEffect($target, 5);
}
public static function blockUser(int $target): void
{
self::addEffectStatusToUserLog($target, "Блокировка");
DBPDO::INIT()->execute('UPDATE battles.users SET block = 1 WHERE id = ?', $target);
}
public static function unBlockUser(int $target): void
{
self::addEffectStatusToUserLog($target, "Блокировка" . self::STATUS_OFF);
DBPDO::INIT()->execute('UPDATE battles.users SET block = 0 WHERE block = 1 AND id = ?', $target);
}
public static function addToUserLog(int $target, string $message, int $senderId): void
{
GameLogs::addUserLog($target, $message, "moderation", $senderId);
}
public static function setAlign(int $target, int $align): void
{
DBPDO::INIT()->execute('UPDATE users SET align = ? WHERE id = ?', [$align, $target]);
}
public static function addChatSysMsg(string $message): void
{
DBPDO::INIT()->execute('INSERT INTO chat (user_id,msg,type) VALUES (-1,?,?)', [$message, 'sys']);
}
public static function addUserCheck(int $target): bool
{
self::addEffectStatusToUserLog($target, UserEffects::$effectName[20]);
return User::setUserEffect($target, 20, UserEffects::$effectName[20], strtotime('3days'));
}
}

View File

@ -1,27 +1,26 @@
<?php <?php
namespace Battles; namespace Battles;
use db;
/** /**
* Разные способы отображения строки с логином персонажа. * Разные способы отображения строки с логином персонажа.
*/ */
const INVIS = '<i>невидимка</i>';
class Nick extends User class Nick extends User
{ {
private function getInvisibilityStatus() private function getInvisibilityStatus()
{ {
return db::c()->query('SELECT 1 FROM users_effects WHERE type = 1022 AND owner_id = ?i', $this->id); return self::$db->fetch('SELECT 1 FROM users_effects WHERE type = 1022 AND owner_id = ?', $this->id);
} }
/** /**
* Отображение иконки склонности. * Отображение иконки склонности.
* @return string * @return string
*/ */
private function getAlign():string private function getAlignToNickname():?string
{ {
if (isset($this->align)) { if ($this->align) {
return sprintf('<img src="i/align_%s.gif">', $this->align); return sprintf('<img src="i/align_%s.gif">', $this->align);
} else { } else {
return ''; return null;
} }
} }
@ -29,12 +28,12 @@ class Nick extends User
* Отображение иконки клана. * Отображение иконки клана.
* @return string * @return string
*/ */
private function getClan():string private function getClanToNickname():?string
{ {
if (isset($this->clan)) { if ($this->clan) {
return sprintf('<img src="i/clan/%s.png">', $this->clan); return sprintf('<img src="i/clan/%s.png">', $this->clan);
} else { } else {
return ''; return null;
} }
} }
@ -44,7 +43,7 @@ class Nick extends User
* *
* @return Nick * @return Nick
*/ */
public static function id($playerId) public static function id($playerId): Nick
{ {
return new self($playerId); return new self($playerId);
} }
@ -59,9 +58,9 @@ class Nick extends User
public function full($showInvisibility = 0):string public function full($showInvisibility = 0):string
{ {
if ($showInvisibility && $this->getInvisibilityStatus()) { if ($showInvisibility && $this->getInvisibilityStatus()) {
return '<i>невидимка</i>'; return INVIS;
} }
return $this->getAlign().$this->getClan().sprintf('<b>%s</b> [%s] <a href="inf.php?%s" target="_blank"><img src="i/inf.gif" style="width:12px;height:11px"></a>', $this->login, $this->level, $this->login); return $this->getAlignToNickname().$this->getClanToNickname().sprintf('<b>%s</b> [%s] <a href="inf.php?%s" target="_blank"><img src="i/inf.gif" style="width:12px;height:11px"></a>', $this->login, $this->level, $this->login);
} }
/** /**
@ -71,8 +70,8 @@ class Nick extends User
*/ */
public function short($showInvisibility = 0):string public function short($showInvisibility = 0):string
{ {
if ($showInvisibility && $this->getInvisibilityStatus()) { if (!$showInvisibility && $this->getInvisibilityStatus()) {
return '<i>невидимка</i>'; return INVIS;
} else { } else {
return htmlspecialchars($this->login); return htmlspecialchars($this->login);
} }
@ -96,7 +95,7 @@ class Nick extends User
public function battleShort($textstyle):string public function battleShort($textstyle):string
{ {
if ($this->getInvisibilityStatus()) { if ($this->getInvisibilityStatus()) {
return '<i>невидимка</i>'; return INVIS;
} }
else { else {
return sprintf('<span style="%s">%s</span> [_hp_/_maxhp_]', $textstyle, $this->login); return sprintf('<span style="%s">%s</span> [_hp_/_maxhp_]', $textstyle, $this->login);

View File

@ -1,5 +1,7 @@
<?php <?php
namespace Battles; namespace Battles;
use Battles\Database\DBPDO;
class ShopItem extends Item class ShopItem extends Item
{ {
public function printInfo() public function printInfo()
@ -10,54 +12,61 @@ class ShopItem extends Item
public function buyItem($owner) public function buyItem($owner)
{ {
if ($owner) { if ($owner) {
db::c()->query(' $db = new DBPDO();
INSERT INTO `inventory` (`prototype`,`owner`,`name`,`type`,`massa`,`cost`,`img`,`maxdur`,`isrep`,`gsila`,`glovk`,`ginta`,`gintel`, $query = "INSERT INTO inventory (
`ghp`,`gnoj`,`gtopor`,`gdubina`,`gmech`,`gfire`,`gwater`,`gair`,`gearth`,`glight`,`ggray`,`gdark`, owner_id, name, item_type, durability, price,
`needident`,`nsila`,`nlovk`,`ninta`,`nintel`,`nmudra`,`nvinos`,`nnoj`,`ntopor`,`ndubina`,`nmech`, need_strength, need_dexterity, need_intuition,
`nfire`,`nwater`,`nair`,`nearth`,`nlight`,`ngray`,`ndark`,`mfkrit`,`mfakrit`,`mfuvorot`,`mfauvorot`, need_endurance, need_intelligence, need_wisdom,
`bron1`,`bron2`,`bron3`,`bron4`,`maxu`,`minu`,`magic`,`nlevel`,`nalign`,`dategoden`,`goden`,`otdel`, add_strength, add_dexterity, add_intuition,
`artefact`, `koll`) VALUES (?i,?i,"?s",?i,?i,?i,"?s",?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i, add_endurance, add_intelligence, add_wisdom,
?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,?i,"?s",?i,?i) add_accuracy, add_evasion, add_criticals,
', $this->id, $owner, $this->name, $this->type, $this->massa, $this->cost, $this->img, $this->maxdur, $this->isrep, $this->gsila, $this->glovk, $this->ginta, $this->gintel, add_min_physical_damage, add_max_physical_damage,
$this->ghp, $this->gnoj, $this->gtopor, $this->gdubina, $this->gmech, $this->gfire, $this->gwater, $this->gair, $this->gearth, $this->glight, $this->ggray, $this->gdark, image, weight)
$this->needident, $this->nsila, $this->nlovk, $this->ninta, $this->nintel, $this->nmudra, $this->nvinos, $this->nnoj, $this->ntopor, $this->ndubina, $this->nmech, VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$this->nfire, $this->nwater, $this->nair, $this->nearth, $this->nlight, $this->ngray, $this->ndark, $this->mfkrit, $this->mfakrit, $this->mfuvorot, $this->mfauvorot, $values = [
$this->bron1, $this->bron2, $this->bron3, $this->bron4, $this->maxu, $this->minu, $this->magic, $this->nlevel, $this->nalign, $this->dategoden, $this->goden, $this->razdel, $owner, $this->name, $this->item_type, $this->durability, $this->price,
$this->artefact, $this->koll); $this->need_strength, $this->need_dexterity, $this->need_intuition,
$this->need_endurance, $this->need_intelligence, $this->need_wisdom,
$this->add_strength, $this->add_dexterity, $this->add_intuition,
$this->add_endurance, $this->add_intelligence, $this->add_wisdom,
$this->add_accuracy, $this->add_evasion, $this->add_criticals,
$this->add_min_physical_damage, $this->add_max_physical_damage,
$this->image, $this->weight
];
$db->execute($query, $values);
} }
} }
/** /**
* Для кнопок управления под картинкой прелмета в зависимости от ситуации. * Для кнопок управления под картинкой предмета в зависимости от ситуации.
*/ */
public function printControls($shopType = false) public function printControls($shopType = false)
{ {
if ($shopType === 'marketput') { if ($shopType === 'marketput') {
echo <<<BTN echo <<<BTN
<form method="post"> <form method="post">
<input placeholder="{$this->cost}" name="cost"> <input placeholder="{$this->price}" name="cost">
<input type="hidden" name="putId" value="{$this->id}"> <input type="hidden" name="putId" value="{$this->item_id}">
<br><input type="submit" name="putToMarket" value="ать в магазин"> <br><input type="submit" name="putToMarket" value="ать в магазин">
</form> </form>
BTN; BTN;
} else { } else {
switch ($shopType) { switch ($shopType) {
default: default:
$btnValue = "Купить за " . intval($this->cost) . " кр."; $btnValue = "Купить за " . intval($this->price) . " кр.";
$btnLink = "/shop.php?buy={$this->id}&rnd=" . mt_rand(); $btnLink = "/shop.php?buy={$this->item_id}&rnd=" . mt_rand();
break; break;
case 'sell': case 'sell':
$btnValue = "Продать"; $btnValue = "Продать";
$btnLink = "/shop.php?sell={$this->id}&rnd=" . mt_rand(); $btnLink = "/shop.php?sell={$this->item_id}&rnd=" . mt_rand();
break; break;
case 'marketgetback': case 'marketgetback':
$btnValue = "Снять с продажи"; $btnValue = "Снять с продажи";
$btnLink = "?back={$this->id}&rnd=" . mt_rand(); $btnLink = "?back={$this->item_id}&rnd=" . mt_rand();
break; break;
case 'marketbuy': case 'marketbuy':
$btnValue = "Купить за " . intval($this->setsale) . " кр."; $btnValue = "Купить за " . intval($this->setsale) . " кр.";
$btnLink = "?otdel={$this->otdel}&set={$this->id}&rnd=" . mt_rand(); $btnLink = "?otdel={$this->item_type}&set={$this->item_id}&rnd=" . mt_rand();
break; break;
} }
@ -65,7 +74,6 @@ BTN;
<p><input type="button" style="background: darkgrey; border: 1px solid grey; border-radius: 2px;" value="{$btnValue}" <p><input type="button" style="background: darkgrey; border: 1px solid grey; border-radius: 2px;" value="{$btnValue}"
onclick="location='{$btnLink}'"> onclick="location='{$btnLink}'">
BTN; BTN;
if ($this->count > 0) echo "<br><small>В наличии: {$this->count} штук</small>";
} }
} }
} }

View File

@ -36,7 +36,7 @@ HTML_HEADER;
/** /**
* @param string $buildingName название здания * @param string $buildingName название здания
* @param string $streetName служебное название улицы на которой стоит здание для кнопки возврата. * @param string $streetName служебное название улицы на которой стоит здание для кнопки возврата.
* @return string * @return void
*/ */
public static function buildingTop(string $buildingName, string $streetName): void public static function buildingTop(string $buildingName, string $streetName): void
{ {

View File

@ -1,6 +1,8 @@
<?php <?php
# Date: 26.10.2020 (16:08) # Date: 26.10.2020 (16:08)
namespace Battles; namespace Battles;
use Battles\Database\DBPDO;
class Travel class Travel
{ {
/** /**
@ -55,14 +57,15 @@ class Travel
/** /**
* Перемещение по комнатам. * Перемещение по комнатам.
* @param int $roomId ID куда идём. * @param int $roomId ID куда идём.
* @param int $roomIdCurrent ID откуда идём. * @param int $roomIdCurrent ID откуда идём.
* @throws \Krugozor\Database\Mysql\Exception * @param DBPDO|null $db
*/ */
public static function toRoom(int $roomId, int $roomIdCurrent): void public static function toRoom(int $roomId, int $roomIdCurrent): void
{ {
$itemsWeight = \db::c()->query('SELECT SUM(weight) AS all_weight FROM `inventory` WHERE owner_id = ?i AND on_sale = 0', $_SESSION['uid'])->fetch_assoc(); $db = DBPDO::INIT();
$eff = \db::c()->query('SELECT type FROM users_effects WHERE owner_id = ?i AND (`type` = 10 OR `type` = 13 OR `type` = 14)', $_SESSION['uid'])->fetch_assoc(); $itemsWeight = $db->fetch('SELECT SUM(weight) AS all_weight FROM inventory WHERE owner_id = ? AND on_sale = 0', $_SESSION['uid']);
$eff = $db->fetch('SELECT type FROM users_effects WHERE owner_id = ? AND (`type` = 10 OR `type` = 13 OR `type` = 14)', $_SESSION['uid']);
$errors = []; $errors = [];
if ($itemsWeight['all_weight'] > get_meshok()) { if ($itemsWeight['all_weight'] > get_meshok()) {
$errors[0] = 'У вас переполнен рюкзак, вы не можете передвигаться...'; $errors[0] = 'У вас переполнен рюкзак, вы не можете передвигаться...';
@ -78,7 +81,7 @@ class Travel
echo sprintf('<span class="error">%s</span>', $error); echo sprintf('<span class="error">%s</span>', $error);
} }
} elseif (in_array($roomId, self::allowedRoomMoves($roomIdCurrent))) { } elseif (in_array($roomId, self::allowedRoomMoves($roomIdCurrent))) {
\db::c()->query('UPDATE users, online SET users.room = ?i, online.room = ?i WHERE `online`.`user_id` = `users`.`id` AND `online`.`user_id` = ?i', $roomId, $roomId, $_SESSION['uid']); $db->execute('UPDATE users, online SET users.room = ?, online.room = ? WHERE `online`.`user_id` = `users`.`id` AND `online`.`user_id` = ?', [$roomId, $roomId, $_SESSION['uid']]);
header('location: ' . self::$roomFileName[$roomId]); header('location: ' . self::$roomFileName[$roomId]);
exit; exit;
} }

View File

@ -2,61 +2,63 @@
namespace Battles; namespace Battles;
use Battles\Database\DBPDO;
use Exceptions\GameException; use Exceptions\GameException;
use db;
class User class User
{ {
public $id = 0; protected $id = 0;
public $login = '<em>Некто</em>'; protected $login = '<em>Некто</em>';
public $pass; protected $pass;
public $email = '<em>неизвестно</em>'; protected $email = '<em>неизвестно</em>';
public $realname; protected $realname;
public $borndate; protected $borndate;
public $info; protected $info;
public $level = 0; protected $level = 0;
public $align = 0; protected $align = 0;
public $clan = 0; protected $clan;
public $money = 0; protected $money = 0;
public $strength = 0; protected $strength = 0;
public $dexterity = 0; protected $dexterity = 0;
public $intuition = 0; protected $intuition = 0;
public $endurance = 0; protected $endurance = 0;
public $intelligence = 0; protected $intelligence = 0;
public $wisdom = 0; protected $wisdom = 0;
public $health; protected $health;
public $mana; protected $mana;
public $ip; protected $ip;
public $session_id; protected $session_id;
public $admin = 0; protected $admin = 0;
public $enter_game; protected $enter_game;
public $room; protected $room;
public $block; protected $block;
public $shadow; protected $shadow;
// Удар кулаком всегда 1-2. // Удар кулаком всегда 1-2.
public $minDamage = 1; protected $minDamage = 1;
public $maxDamage = 2; protected $maxDamage = 2;
//Броня без предметов не существует. //Броня без предметов не существует.
public $headArmor = 0; protected $headArmor = 0;
public $chestArmor = 0; protected $chestArmor = 0;
public $legArmor = 0; protected $legArmor = 0;
public $free_stat_points = 0; protected $free_stat_points = 0;
public const STAT_MAXIMUM_AMOUNT = 40; private const STAT_MAXIMUM_AMOUNT = 40;
private const ERROR_STAT_IS_MAXIMUM = 'Ошибка: Параметр достиг своего лимита!'; private const ERROR_STAT_IS_MAXIMUM = 'Ошибка: Параметр достиг своего лимита!';
private const ERROR_STAT_UNKNOWN = 'Ошибка: Неизвестный параметр!'; private const ERROR_STAT_UNKNOWN = 'Ошибка: Неизвестный параметр!';
// Пока несуществующие, для совместимости. // Пока несуществующие, для совместимости.
public $married = 'Someone или нет.'; protected $married = 'Someone или нет.';
public $experience = 200; protected $experience = 200;
public $battle = 0; protected $battle = 0;
public $in_tower = 0; // Скорее башню похороним чем запустим... protected $in_tower = 0; // Скорее башню похороним чем запустим...
public $zayavka = 0; protected $zayavka = 0;
// Динамически рассчитываемые // Динамически рассчитываемые
public $maxHealth = 5; protected $maxHealth = 5;
public $maxMana = 5; protected $maxMana = 5;
protected static $db;
public function __construct($user) public function __construct(int $user)
{ {
$user_query = db::c()->query('SELECT * FROM users WHERE id = "?s" OR login = "?s"', $user, $user)->fetch_assoc(); self::$db = DBPDO::INIT();
$user_query = self::$db->fetch('SELECT * FROM users WHERE id = ? OR login = ?', [$user, $user]);
foreach ($this as $key => $value) { foreach ($this as $key => $value) {
if (isset($user_query[$key])) { if (isset($user_query[$key])) {
$this->$key = $user_query[$key]; $this->$key = $user_query[$key];
@ -73,7 +75,7 @@ class User
* @return string * @return string
* @throws GameException * @throws GameException
*/ */
public function getStat($stat_name, $isMainWindow = 0) public function getStat($stat_name, $isMainWindow = 0):string
{ {
$allowed = ['strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom']; $allowed = ['strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom'];
if (in_array($stat_name, $allowed)) { if (in_array($stat_name, $allowed)) {
@ -89,16 +91,16 @@ class User
/** /**
* Повышает один из выбранных статов на 1, но не выше self::STAT_MAXIMUM_AMOUNT при условии наличия свободных очков статов. * Повышает один из выбранных статов на 1, но не выше self::STAT_MAXIMUM_AMOUNT при условии наличия свободных очков статов.
* @param $stat_name - имя стата. Может принимать значения 'strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom'. * @param string $stat_name - имя стата. Может принимать значения 'strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom'.
* @throws GameException * @throws GameException
*/ */
public function addOnePointToStat($stat_name) public function addOnePointToStat(string $stat_name)
{ {
$allowed = ['strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom']; $allowed = ['strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom'];
if (in_array($stat_name, $allowed)) { if (in_array($stat_name, $allowed)) {
if ($this->free_stat_points > 0 && $this->$stat_name <= self::STAT_MAXIMUM_AMOUNT) { if ($this->free_stat_points > 0 && $this->$stat_name <= self::STAT_MAXIMUM_AMOUNT) {
$query = 'UPDATE users SET ?f = ?f + 1, free_stat_points = free_stat_points - 1 WHERE id = ?i'; $query = "UPDATE users SET {$stat_name} = {$stat_name} + 1, free_stat_points = free_stat_points - 1 WHERE id = ?";
db::c()->query($query, $stat_name, $stat_name, $this->id); self::$db->execute($query,$this->id);
} else { } else {
throw new GameException(self::ERROR_STAT_IS_MAXIMUM); throw new GameException(self::ERROR_STAT_IS_MAXIMUM);
} }
@ -108,7 +110,7 @@ class User
} }
protected function showStarSign() protected function showStarSign(): ?string
{ {
/* /*
* 1 aries * 1 aries
@ -124,19 +126,21 @@ class User
* 11 aquarius * 11 aquarius
* 12 pisches * 12 pisches
*/ */
$zodiac[356] = "10"; $zodiac = [
$zodiac[326] = "09"; 356 => "10",
$zodiac[296] = "08"; 326 => "09",
$zodiac[266] = "07"; 296 => "08",
$zodiac[235] = "06"; 266 => "07",
$zodiac[203] = "05"; 235 => "06",
$zodiac[172] = "04"; 203 => "05",
$zodiac[140] = "03"; 172 => "04",
$zodiac[111] = "02"; 140 => "03",
$zodiac[78] = "01"; 111 => "02",
$zodiac[51] = "12"; 78 => "01",
$zodiac[20] = "11"; 51 => "12",
$zodiac[0] = "10"; 20 => "11",
0 => "10",
];
$dayOfYear = date("z", strtotime($this->borndate)); $dayOfYear = date("z", strtotime($this->borndate));
$isLeapYear = date("L", strtotime($this->borndate)); //Высокосный? $isLeapYear = date("L", strtotime($this->borndate)); //Высокосный?
if ($isLeapYear && $dayOfYear > 59) { if ($isLeapYear && $dayOfYear > 59) {
@ -159,4 +163,578 @@ class User
{ {
return $this->mana . '/' . $this->maxMana; return $this->mana . '/' . $this->maxMana;
} }
public static function setUserEffect(int $userId, int $type, string $name, int $time):bool
{
return self::$db->execute('INSERT INTO users_effects (owner_id, type, name, remaining_time) VALUES (?,?,?,?)',[$userId, $type, $name, $time]);
}
public static function removeUserEffect(int $userId, int $type):bool
{
if (self::$db->fetch('SELECT 1 FROM users_effects WHERE owner_id = ? AND type = ?', [$userId, $type])) {
self::$db->execute('DELETE FROM users_effects WHERE owner_id = ? AND type = ?', [$userId, $type]);
}
return false;
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return string
*/
public function getLogin(): string
{
return $this->login;
}
/**
* @param string $login
*/
public function setLogin(string $login): void
{
$this->login = $login;
}
/**
* @return mixed
*/
public function getPass()
{
return $this->pass;
}
/**
* @param mixed $pass
*/
public function setPass($pass): void
{
$this->pass = $pass;
}
/**
* @return string
*/
public function getEmail(): string
{
return $this->email;
}
/**
* @param string $email
*/
public function setEmail(string $email): void
{
$this->email = $email;
}
/**
* @return mixed
*/
public function getRealname()
{
return $this->realname;
}
/**
* @param mixed $realname
*/
public function setRealname($realname): void
{
$this->realname = $realname;
}
/**
* @return mixed
*/
public function getBorndate()
{
return $this->borndate;
}
/**
* @param mixed $borndate
*/
public function setBorndate($borndate): void
{
$this->borndate = $borndate;
}
/**
* @return mixed
*/
public function getInfo()
{
return $this->info;
}
/**
* @param mixed $info
*/
public function setInfo($info): void
{
$this->info = $info;
}
/**
* @return int
*/
public function getLevel(): int
{
return $this->level;
}
/**
* @param int $level
*/
public function setLevel(int $level): void
{
$this->level = $level;
}
/**
* @return int
*/
public function getAlign(): int
{
return $this->align;
}
/**
* @param int $align
*/
public function setAlign(int $align): void
{
$this->align = $align;
}
/**
* @return string
*/
public function getClan(): string
{
return $this->clan;
}
/**
* @param int $clan
*/
public function setClan(string $clan): void
{
$this->clan = $clan;
}
/**
* @return int
*/
public function getMoney(): int
{
return $this->money;
}
/**
* @param int $money
*/
public function setMoney(int $money): void
{
$this->money = $money;
}
/**
* @return int
*/
public function getStrength(): int
{
return $this->strength;
}
/**
* @param int $strength
*/
public function setStrength(int $strength): void
{
$this->strength = $strength;
}
/**
* @return int
*/
public function getDexterity(): int
{
return $this->dexterity;
}
/**
* @param int $dexterity
*/
public function setDexterity(int $dexterity): void
{
$this->dexterity = $dexterity;
}
/**
* @return int
*/
public function getIntuition(): int
{
return $this->intuition;
}
/**
* @param int $intuition
*/
public function setIntuition(int $intuition): void
{
$this->intuition = $intuition;
}
/**
* @return int
*/
public function getEndurance(): int
{
return $this->endurance;
}
/**
* @param int $endurance
*/
public function setEndurance(int $endurance): void
{
$this->endurance = $endurance;
}
/**
* @return int
*/
public function getIntelligence(): int
{
return $this->intelligence;
}
/**
* @param int $intelligence
*/
public function setIntelligence(int $intelligence): void
{
$this->intelligence = $intelligence;
}
/**
* @return int
*/
public function getWisdom(): int
{
return $this->wisdom;
}
/**
* @param int $wisdom
*/
public function setWisdom(int $wisdom): void
{
$this->wisdom = $wisdom;
}
/**
* @return mixed
*/
public function getIp()
{
return $this->ip;
}
/**
* @param mixed $ip
*/
public function setIp($ip): void
{
$this->ip = $ip;
}
/**
* @return mixed
*/
public function getSessionId()
{
return $this->session_id;
}
/**
* @param mixed $session_id
*/
public function setSessionId($session_id): void
{
$this->session_id = $session_id;
}
/**
* @return int
*/
public function getAdmin(): int
{
return $this->admin;
}
/**
* @param int $admin
*/
public function setAdmin(int $admin): void
{
$this->admin = $admin;
}
/**
* @return mixed
*/
public function getEnterGame()
{
return $this->enter_game;
}
/**
* @param mixed $enter_game
*/
public function setEnterGame($enter_game): void
{
$this->enter_game = $enter_game;
}
/**
* @return mixed
*/
public function getRoom()
{
return $this->room;
}
/**
* @param mixed $room
*/
public function setRoom($room): void
{
$this->room = $room;
}
/**
* @return mixed
*/
public function getBlock()
{
return $this->block;
}
/**
* @param mixed $block
*/
public function setBlock($block): void
{
$this->block = $block;
}
/**
* @return mixed
*/
public function getShadow()
{
return $this->shadow;
}
/**
* @param mixed $shadow
*/
public function setShadow($shadow): void
{
$this->shadow = $shadow;
}
/**
* @return int
*/
public function getMinDamage(): int
{
return $this->minDamage;
}
/**
* @return int
*/
public function getMaxDamage(): int
{
return $this->maxDamage;
}
/**
* @return int
*/
public function getHeadArmor(): int
{
return $this->headArmor;
}
/**
* @param int $headArmor
*/
public function setHeadArmor(int $headArmor): void
{
$this->headArmor = $headArmor;
}
/**
* @return int
*/
public function getChestArmor(): int
{
return $this->chestArmor;
}
/**
* @param int $chestArmor
*/
public function setChestArmor(int $chestArmor): void
{
$this->chestArmor = $chestArmor;
}
/**
* @return int
*/
public function getLegArmor(): int
{
return $this->legArmor;
}
/**
* @param int $legArmor
*/
public function setLegArmor(int $legArmor): void
{
$this->legArmor = $legArmor;
}
/**
* @return int
*/
public function getFreeStatPoints(): int
{
return $this->free_stat_points;
}
/**
* @param int $free_stat_points
*/
public function setFreeStatPoints(int $free_stat_points): void
{
$this->free_stat_points = $free_stat_points;
}
/**
* @return string
*/
public function getMarried(): string
{
return $this->married;
}
/**
* @param string $married
*/
public function setMarried(string $married): void
{
$this->married = $married;
}
/**
* @return int
*/
public function getExperience(): int
{
return $this->experience;
}
/**
* @param int $experience
*/
public function setExperience(int $experience): void
{
$this->experience = $experience;
}
/**
* @return int
*/
public function getBattle(): int
{
return $this->battle;
}
/**
* @param int $battle
*/
public function setBattle(int $battle): void
{
$this->battle = $battle;
}
/**
* @return int
*/
public function getInTower(): int
{
return $this->in_tower;
}
/**
* @param int $in_tower
*/
public function setInTower(int $in_tower): void
{
$this->in_tower = $in_tower;
}
/**
* @return int
*/
public function getZayavka(): int
{
return $this->zayavka;
}
/**
* @param int $zayavka
*/
public function setZayavka(int $zayavka): void
{
$this->zayavka = $zayavka;
}
/**
* @return float|int
*/
public function getMaxHealth()
{
return $this->maxHealth;
}
/**
* @return float|int
*/
public function getMaxMana()
{
return $this->maxMana;
}
} }

View File

@ -5,16 +5,15 @@ namespace Battles;
trait UserEffects trait UserEffects
{ {
public static $effectName = [ public static $effectName = [
2 => 'Заклинание молчания',
3 => 'Заклятие форумного молчания',
4 => 'Заклятие хаоса',
5 => 'Заклятие обезличивания',
10 => 'паралич', 10 => 'паралич',
11 => 'легкая травма', 11 => 'легкая травма',
12 => 'средняя травма', 12 => 'средняя травма',
13 => 'тяжёлая травма', 13 => 'тяжёлая травма',
14 => 'неизлечимая травма', 14 => 'неизлечимая травма',
1022 => 'невидимость',
2 => 'Заклинание молчания',
3 => 'Заклятие форумного молчания',
4 => 'Заклятие хаоса',
5 => 'Заклятие обезличивания',
20 => 'Проверка Паладинов', 20 => 'Проверка Паладинов',
21 => 'Сила нейтралитета', 21 => 'Сила нейтралитета',
22 => 'Защита от кулачного нападения', 22 => 'Защита от кулачного нападения',
@ -47,6 +46,7 @@ trait UserEffects
226 => 'Стена Воды [3]', 226 => 'Стена Воды [3]',
227 => 'Защита от нападений', 227 => 'Защита от нападений',
405 => 'Микстура жизненных сил', 405 => 'Микстура жизненных сил',
1022 => 'невидимость',
9994 => 'Антидот/Путы (Эликсир?)', 9994 => 'Антидот/Путы (Эликсир?)',
]; ];
} }

View File

@ -1,5 +1,8 @@
<?php <?php
namespace Battles; namespace Battles;
use Battles\Models\EffectsModel;
use Exceptions\GameException;
class UserInfo extends User class UserInfo extends User
{ {
use Rooms; use Rooms;
@ -11,12 +14,10 @@ class UserInfo extends User
/** /**
* Отображает куклу персонажа (образ и слоты). * Отображает куклу персонажа (образ и слоты).
* *
* @param int $isBattle - установить 1, если куклу нужно отобразить в поединке (показывает параметры при наведении * @param int $isBattle установить 1, если куклу нужно отобразить в поединке (показывает параметры при наведении
* на образ). * на образ).
* @param int $isMain - установить 1, если куклу надо показать на странице игрока (по клику на предмет снимает * @param int $isMain установить 1, если куклу надо показать на странице игрока (по клику на предмет снимает
* его). * его).
*
* @throws \Krugozor\Database\Mysql\Exception
*/ */
private function UserInfoDoll($isBattle = 0, $isMain = 0) private function UserInfoDoll($isBattle = 0, $isMain = 0)
{ {
@ -138,10 +139,10 @@ class UserInfo extends User
$infoString = '<br><span>ИД Игрока: %s<br> ИД Комнаты: %s<br> Деньги: %s<br> Деньги в банке: %s<br> Опыт: %s<br> Нераспределённые очки: %s<br> Текущая сессия: %s</span>'; $infoString = '<br><span>ИД Игрока: %s<br> ИД Комнаты: %s<br> Деньги: %s<br> Деньги в банке: %s<br> Опыт: %s<br> Нераспределённые очки: %s<br> Текущая сессия: %s</span>';
echo sprintf($infoString, $this->id, $this->room, $this->money, $this->Bank->getMoney(), $this->experience, $this->free_stat_points, $this->session_id); echo sprintf($infoString, $this->id, $this->room, $this->money, $this->Bank->getMoney(), $this->experience, $this->free_stat_points, $this->session_id);
} }
$this->UserLogs = new \Battles\Models\UserLogModel($this->id); $this->UserLogs = GameLogs::getUserLogs($this->id);
echo '<div class="secret-info-user-log"><b>Личное дело</b><br>'; echo '<div class="secret-info-user-log"><b>Личное дело</b><br>';
while ($userLogRow = $this->UserLogs->getUserLog()->fetch_object()) { while ($userLogRow = $this->UserLogs->fetchArray(SQLITE3_ASSOC)) {
echo sprintf('<code>%s</code><br>', date("d.m.Y H:i ", strtotime($userLogRow->date)) . $userLogRow->text); echo sprintf('<code>%s</code><br>', date("d.m.Y H:i ", strtotime($userLogRow['date'])) . $userLogRow['text']);
} }
echo '</div><!-- secret-info-user-log -->'; echo '</div><!-- secret-info-user-log -->';
echo '</div><!-- secret-info -->'; echo '</div><!-- secret-info -->';
@ -150,18 +151,18 @@ class UserInfo extends User
public function showUserInfo() public function showUserInfo()
{ {
$this->effects = new \Battles\Models\EffectsModel($this->id);
$this->WatcherStatus(); $this->WatcherStatus();
$effects = new EffectsModel($this->id);
if ($this->block && (!$this->watcherIsAdmin || !$this->watcherIsModerator)) { if ($this->block && (!$this->watcherIsAdmin || !$this->watcherIsModerator)) {
throw new \Exceptions\GameException('<span class="error">Персонаж ' . $this->login . ' заблокирован!</span>'); throw new GameException('<span class="error">Персонаж ' . $this->login . ' заблокирован!</span>');
} elseif ($this->effects->getHideUserInfoStatus() && (!$this->watcherIsAdmin || !$this->watcherIsModerator)) { } elseif ($effects->getHideUserInfoStatus() && (!$this->watcherIsAdmin || !$this->watcherIsModerator)) {
if ($this->effects->getHideUserInfoStatus() == -1) { if ($effects->getHideUserInfoStatus() == -1) {
$date = 'навсегда'; $date = 'навсегда';
} else { } else {
$date = 'до' . date('d.m.Y', strtotime($this->effects->getHideUserInfoStatus())); $date = 'до' . date('d.m.Y', strtotime($effects->getHideUserInfoStatus()));
} }
throw new \Exceptions\GameException('<span class="error">Персонаж ' . $this->login . ' обезличен ' . $date . '.</span>'); throw new GameException('<span class="error">Персонаж ' . $this->login . ' обезличен ' . $date . '.</span>');
} else { } else {
$this->Info(); $this->Info();
} }
@ -169,7 +170,7 @@ class UserInfo extends User
private function WatcherStatus() private function WatcherStatus()
{ {
$query = \db::c()->query('SELECT `align`,`admin` FROM `users` WHERE `id` = ?i', $this->watcher_id)->fetch_assoc(); $query = parent::$db->fetch('SELECT align, admin FROM users WHERE id = ?', $this->watcher_id);
if ($query['admin']) { if ($query['admin']) {
$this->watcherIsAdmin = 1; $this->watcherIsAdmin = 1;
} }

View File

@ -1,8 +1,8 @@
<?php <?php
if (in_array($user->room, Config::$caverooms)) { if (in_array($user->getRoom(), Config::$caverooms)) {
$cavedata = Config::$cavedata ?? []; $cavedata = Config::$cavedata ?? [];
$floor = mysql_fetch_row(mysql_query("SELECT `floor` FROM `caveparties` WHERE `user` = '$user[id]' LIMIT 1")); $floor = mysql_fetch_row(mysql_query("SELECT `floor` FROM `caveparties` WHERE `user` = '$user[id]' LIMIT 1"));
if (!isset($cavedata[$user->room]['x' . $floor])) { if (!isset($cavedata[$user->getRoom()]['x' . $floor])) {
$floor = 1; $floor = 1;
} }
} }
@ -11,8 +11,8 @@ $lomka1 = $lomka;
foreach ($lomka1 as $k => $v) { foreach ($lomka1 as $k => $v) {
if ($v < _BOTSEPARATOR_) { if ($v < _BOTSEPARATOR_) {
if (in_array($user->room, Config::$caverooms)) { if (in_array($user->getRoom(), Config::$caverooms)) {
mysql_query("UPDATE `caveparties` SET `floor` = $floor, `x` = '" . $cavedata[$user->room]['x' . $floor] . "', `y` = '" . $cavedata[$user->room]['y' . $floor] . "', `dir` = '" . $cavedata[$user->room]['dir' . $floor] . "', `loses` = (`loses`+1) WHERE `user` = '$v' LIMIT 1"); mysql_query("UPDATE `caveparties` SET `floor` = $floor, `x` = '" . $cavedata[$user->getRoom()]['x' . $floor] . "', `y` = '" . $cavedata[$user->getRoom()]['y' . $floor] . "', `dir` = '" . $cavedata[$user->getRoom()]['dir' . $floor] . "', `loses` = (`loses`+1) WHERE `user` = '$v' LIMIT 1");
} }
if ($user['laba'] > 0) { if ($user['laba'] > 0) {
mysql_query('UPDATE `users` SET `x` = `xf`, `y` = `yr` WHERE `id` = "' . $v . '" LIMIT 1'); mysql_query('UPDATE `users` SET `x` = `xf`, `y` = `yr` WHERE `id` = "' . $v . '" LIMIT 1');

View File

@ -21,7 +21,7 @@ function cavesys($text)
} }
} }
if (in_array($user->room, Config::$caverooms)) { if (in_array($user->getRoom(), Config::$caverooms)) {
include("CaveItems.php"); include("CaveItems.php");
mysql_query('LOCK TABLES `cavebots` WRITE, `caveitems` WRITE, `shop` WRITE, `caveparties` WRITE'); mysql_query('LOCK TABLES `cavebots` WRITE, `caveitems` WRITE, `shop` WRITE, `caveparties` WRITE');
$location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir`, `floor` FROM `caveparties` WHERE `user` = '$user[id]' LIMIT 1")); $location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir`, `floor` FROM `caveparties` WHERE `user` = '$user[id]' LIMIT 1"));
@ -55,7 +55,7 @@ if (in_array($user->room, Config::$caverooms)) {
$bot = $rec['bot']; $bot = $rec['bot'];
$cnt = $rec['cnt']; $cnt = $rec['cnt'];
if (@$caveitems[$bot]) { if (@$caveitems[$bot]) {
if ($user->room == 621) { if ($user->getRoom() == 621) {
$i = mt_rand(0, (count($caveitems[$bot]) - 1)); $i = mt_rand(0, (count($caveitems[$bot]) - 1));
$item = $caveitems[$bot][$i]; $item = $caveitems[$bot][$i];
if (getchance($item['chance'])) { if (getchance($item['chance'])) {

View File

@ -2,9 +2,6 @@
# Date: 28.10.2020 (17:41) # Date: 28.10.2020 (17:41)
namespace Exceptions; namespace Exceptions;
use Exception;
class GameException extends Exception { }
class GameException extends \Exception
{
}

View File

@ -158,7 +158,7 @@ class Tournament
mysql_query("UPDATE `users` SET `battle` = {$id} WHERE `id` = " . $user1 . " OR `id` = " . $user2); mysql_query("UPDATE `users` SET `battle` = {$id} WHERE `id` = " . $user1 . " OR `id` = " . $user2);
// создаем лог // создаем лог
$rr = "<b>" . Nick::id($user['id'])->full(1) . "</b> и <b>" . Nick::id($jert['id'])->full(1) . "</b>"; $rr = "<b>" . Nick::id($user['id'])->full(1) . "</b> и <b>" . Nick::id($jert['id'])->full(1) . "</b>";
addch("<a href=logs.php?log=" . $id . " target=_blank>Бой</a> между <B><b>" . Nick::id($user['id'])->short() . "</b> и <b>" . Nick::id($jert['id'])->short() . "</b> начался. ", $user->room); addch("<a href=logs.php?log=" . $id . " target=_blank>Бой</a> между <B><b>" . Nick::id($user['id'])->short() . "</b> и <b>" . Nick::id($jert['id'])->short() . "</b> начался. ", $user->getRoom());
addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " решили выяснить кто из них сильнее. <i>(турнир)</i><BR>"); addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " решили выяснить кто из них сильнее. <i>(турнир)</i><BR>");
return $id; return $id;
} }

View File

@ -1700,7 +1700,7 @@ class fbattle
} }
if (in_array($user->room, Config::$caverooms)) { if (in_array($user->getRoom(), Config::$caverooms)) {
$location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = '" . $this->user['id'] . "' LIMIT 1")); $location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = '" . $this->user['id'] . "' LIMIT 1"));
if ($location['dir'] == 0) { if ($location['dir'] == 0) {
@ -1789,7 +1789,7 @@ class fbattle
// выносим хп-ку и выходим из боя // выносим хп-ку и выходим из боя
mysql_query('UPDATE `battle` SET `t1hist` = \'' . implode(", ", $nks1hist) . '\', `t2hist` = \'' . implode(", ", $nks2hist) . '\' WHERE `id` = ' . $this->battle_data['id'] . ' ;'); mysql_query('UPDATE `battle` SET `t1hist` = \'' . implode(", ", $nks1hist) . '\', `t2hist` = \'' . implode(", ", $nks2hist) . '\' WHERE `id` = ' . $this->battle_data['id'] . ' ;');
addch("<a href=logs.php?log=" . $this->battle_data['id'] . " target=_blank>Поединок</a> между <B>" . $rr . "</B> закончен. ", $user->room); addch("<a href=logs.php?log=" . $this->battle_data['id'] . " target=_blank>Поединок</a> между <B>" . $rr . "</B> закончен. ", $user->getRoom());
mysql_query('UPDATE `battle` SET `exp` = \'' . serialize($this->exp) . '\' WHERE `id` = ' . $this->battle_data['id'] . ' ;'); mysql_query('UPDATE `battle` SET `exp` = \'' . serialize($this->exp) . '\' WHERE `id` = ' . $this->battle_data['id'] . ' ;');
mysql_query("DELETE FROM `bots` WHERE `battle` = {$this->user['battle']};"); mysql_query("DELETE FROM `bots` WHERE `battle` = {$this->user['battle']};");
mysql_query("UPDATE users SET `battle` =0, `fullhptime` = " . time() . " WHERE `battle` = {$this->user['battle']}"); mysql_query("UPDATE users SET `battle` =0, `fullhptime` = " . time() . " WHERE `battle` = {$this->user['battle']}");

View File

@ -569,7 +569,7 @@ TASK;
mysql_query('UPDATE `users` SET `money` = "' . $user['money'] . '", `exp` = "' . $user['exp'] . '", `doblest` = "' . $user['doblest'] . '" WHERE `id` = "' . $user['id'] . '" LIMIT 1'); mysql_query('UPDATE `users` SET `money` = "' . $user['money'] . '", `exp` = "' . $user['exp'] . '", `doblest` = "' . $user['doblest'] . '" WHERE `id` = "' . $user['id'] . '" LIMIT 1');
$this->error = 'Вы успешно сдали задание!'; $this->error = 'Вы успешно сдали задание!';
$text = '<font style="color: Red;">Внимание!</font> За успешно выполненное задание Вы получили : ' . $c; $text = '<font style="color: Red;">Внимание!</font> За успешно выполненное задание Вы получили : ' . $c;
$this->msg($text, '{[]}' . $user['login'] . '{[]}', $user->room); $this->msg($text, '{[]}' . $user['login'] . '{[]}', $user->getRoom());
} else { } else {
$this->error = 'Не все условия задания были выполнены ...'; $this->error = 'Не все условия задания были выполнены ...';
} }

View File

@ -20,11 +20,11 @@ if ($putItemId) {
$putItemCost = $dress['cost']; $putItemCost = $dress['cost'];
} }
$commission = ceil($putItemCost / 10); # 10% от суммы с округлением вверх. $commission = ceil($putItemCost / 10); # 10% от суммы с округлением вверх.
if ($user->money > $commission) { if ($user->getMoney() > $commission) {
if (db::c()->getAffectedRows()) { if (db::c()->getAffectedRows()) {
$deloText = "{$user->login} выставил товар: «{$dress['name']}» id:({$putItemId}) [{$dress['duration']}/{$dress['maxdur']}] на продажу в комиссионку за {$putItemCost} кр. "; $deloText = "{$user->getLogin()} выставил товар: «{$dress['name']}» id:({$putItemId}) [{$dress['duration']}/{$dress['maxdur']}] на продажу в комиссионку за {$putItemCost} кр. ";
GameLogs::addUserLog($user->id, $deloText); GameLogs::addUserLog($user->getId(), $deloText);
db::c()->query('UPDATE `inventory` SET `setsale` = ?i WHERE `id` = ?i', $putItemCost, $putItemId); db::c()->query('UPDATE `inventory` SET `setsale` = ?i WHERE `id` = ?i', $putItemCost, $putItemId);
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $commission, $_SESSION['uid']); db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $commission, $_SESSION['uid']);
$status = "Вы сдали в магазин «{$dress['name']}» за {$putItemCost} кр. Вычтено за услуги магазина: {$commission} кр."; $status = "Вы сдали в магазин «{$dress['name']}» за {$putItemCost} кр. Вычтено за услуги магазина: {$commission} кр.";
@ -32,15 +32,15 @@ if ($putItemId) {
$status = "Предмет не найден в инвентаре!"; $status = "Предмет не найден в инвентаре!";
} }
} else { } else {
$status = "У вас не хватает " . $commission - $user->money . " кр. чтобы оплатить комиссию!"; $status = "У вас не хватает " . $commission - $user->getMoney() . " кр. чтобы оплатить комиссию!";
} }
} }
if ($returningItemId) { if ($returningItemId) {
$dress = db::c()->query('SELECT `name`,`duration`,`maxdur` FROM `inventory` WHERE `dressed` = 0 AND `setsale` > 0 AND `id` = ?i AND `owner` = ?i', $returningItemId, $_SESSION['uid'])->fetch_assoc(); $dress = db::c()->query('SELECT `name`,`duration`,`maxdur` FROM `inventory` WHERE `dressed` = 0 AND `setsale` > 0 AND `id` = ?i AND `owner` = ?i', $returningItemId, $_SESSION['uid'])->fetch_assoc();
if (db::c()->getAffectedRows()) { if (db::c()->getAffectedRows()) {
$deloText = "{$user->login} забрал свой товар: «{$dress['name']}» id:({$returningItemId}) [{$dress['duration']}/{$dress['maxdur']}] из комиссионки."; $deloText = "{$user->getLogin()} забрал свой товар: «{$dress['name']}» id:({$returningItemId}) [{$dress['duration']}/{$dress['maxdur']}] из комиссионки.";
GameLogs::addUserLog($user->id, $deloText); GameLogs::addUserLog($user->getId(), $deloText);
db::c()->query('UPDATE `inventory` SET `setsale` = 0 WHERE `id` = ?i', $returningItemId); db::c()->query('UPDATE `inventory` SET `setsale` = 0 WHERE `id` = ?i', $returningItemId);
$status = "Вы забрали из магазина ваш «{$dress['name']}»."; $status = "Вы забрали из магазина ваш «{$dress['name']}».";
} else { } else {
@ -53,16 +53,16 @@ if ($byingItemId) {
$seller = db::c()->query('SELECT `login` FROM `users` WHERE `id` =?i', $dress['owner'])->fetch_assoc(); $seller = db::c()->query('SELECT `login` FROM `users` WHERE `id` =?i', $dress['owner'])->fetch_assoc();
if ($dress['setsale']) { if ($dress['setsale']) {
if ($user->money >= $dress['setsale']) { if ($user->getMoney() >= $dress['setsale']) {
db::c()->query('UPDATE `inventory` SET `setsale` = 0, `owner` = ?i WHERE `id` = ?i', $user->id, $byingItemId); db::c()->query('UPDATE `inventory` SET `setsale` = 0, `owner` = ?i WHERE `id` = ?i', $user->getId(), $byingItemId);
db::c()->query('UPDATE `users` set `money` = `money` - ?i WHERE `id` = ?i', $dress['setsale'], $user->id); db::c()->query('UPDATE `users` set `money` = `money` - ?i WHERE `id` = ?i', $dress['setsale'], $user->getId());
db::c()->query('UPDATE `users` set `money` = `money` + ?i WHERE `id` = ?i', $dress['setsale'], $dress['owner']); db::c()->query('UPDATE `users` set `money` = `money` + ?i WHERE `id` = ?i', $dress['setsale'], $dress['owner']);
$status = "Вы купили «{$dress['name']}» за {$dress['setsale']} кр."; $status = "Вы купили «{$dress['name']}» за {$dress['setsale']} кр.";
$deloText = "{$user->login} купил на рынке товар: «{$dress['name']}» id:({$byingItemId}) [{$dress['duration']}/{$dress['maxdur']}] у {$seller['login']} за {$dress['setsale']} кр."; $deloText = "{$user->getLogin()} купил на рынке товар: «{$dress['name']}» id:({$byingItemId}) [{$dress['duration']}/{$dress['maxdur']}] у {$seller['login']} за {$dress['setsale']} кр.";
GameLogs::addUserLog($user->id, $deloText); GameLogs::addUserLog($user->getId(), $deloText);
$deloText = "{$seller['login']} продал на рынке товар: «{$dress['name']}» id:({$byingItemId}) [{$dress['duration']}/{$dress['maxdur']}] персонажу {$user->login} за {$dress['setsale']} кр."; $deloText = "{$seller['login']} продал на рынке товар: «{$dress['name']}» id:({$byingItemId}) [{$dress['duration']}/{$dress['maxdur']}] персонажу {$user->getLogin()} за {$dress['setsale']} кр.";
GameLogs::addUserLog($dress['owner'], $deloText); GameLogs::addUserLog($dress['owner'], $deloText);
$user->money -= $dress['setsale']; $user->setMoney($user->getMoney() - $dress['setsale']);
telegraph($dress['owner'], "Предмет «{$dress['name']}» продан на рынке за {$dress['setsale']} кр."); telegraph($dress['owner'], "Предмет «{$dress['name']}» продан на рынке за {$dress['setsale']} кр.");
} else { } else {
$status = "Недостаточно средств!"; $status = "Недостаточно средств!";

View File

@ -4,10 +4,7 @@
* Author: Igor Barkov <lopar.4ever@gmail.com> * Author: Igor Barkov <lopar.4ever@gmail.com>
* Project name: Battles-Game * Project name: Battles-Game
*/ */
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
ini_set('display_errors', 'On'); ini_set('display_errors', 'On');
error_reporting(E_ALL); error_reporting(E_ALL);
define("GAMEDOMAIN", "battles.lan"); define("GAMEDOMAIN", "battles.lan");
@ -16,7 +13,6 @@ define("GAMEDOMAIN", "battles.lan");
*/ */
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false); header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
/** /**
* Классы для работы с базой данных. * Классы для работы с базой данных.
@ -26,6 +22,7 @@ require_once 'classes/Database/Mysql.php';
require_once 'classes/Database/Exception.php'; require_once 'classes/Database/Exception.php';
require_once 'classes/Database/Statement.php'; require_once 'classes/Database/Statement.php';
require_once 'classes/Database/db.php'; require_once 'classes/Database/db.php';
require_once 'classes/Battles/Database/DBPDO.php';
/** /**
* Автозагрузка классов с учётом неймспейсов. * Автозагрузка классов с учётом неймспейсов.
@ -40,6 +37,7 @@ spl_autoload_register(function ($className) {
trait Config trait Config
{ {
public static $db_sqlite = '/volume2/web/battles/databases/logs.sqlite';
// Для нападалок. Сперва комнаты в которых нельзя напасть, потом персонажи на которых нельзя напасть. // Для нападалок. Сперва комнаты в которых нельзя напасть, потом персонажи на которых нельзя напасть.
public static $unkilable = [ public static $unkilable = [
'rooms' => [620, 621, 1051, 1052], 'rooms' => [620, 621, 1051, 1052],

View File

@ -421,7 +421,7 @@ class fbattle
addActions(time(), 'win_fiz', 0, $this->user['id']); addActions(time(), 'win_fiz', 0, $this->user['id']);
} }
if (in_array($user->room, Config::$caverooms)) { if (in_array($user->getRoom(), Config::$caverooms)) {
$location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = '" . $this->user['id'] . "' LIMIT 1")); $location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = '" . $this->user['id'] . "' LIMIT 1"));
if ($location['dir'] == 0) { if ($location['dir'] == 0) {
$y = $location['y'] * 2; $y = $location['y'] * 2;
@ -451,7 +451,7 @@ class fbattle
$winers .= implode("</B>, <B>", $this->t2); $winers .= implode("</B>, <B>", $this->t2);
$lomka = $this->t1; $lomka = $this->t1;
} else { } else {
if (in_array($user->room, Config::$caverooms)) { if (in_array($user->getRoom(), Config::$caverooms)) {
$location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = '" . $this->user['id'] . "' LIMIT 1")); $location = mysql_fetch_array(mysql_query("SELECT `x`, `y`, `dir` FROM `caveparties` WHERE `user` = '" . $this->user['id'] . "' LIMIT 1"));
if ($location['dir'] == 0) { if ($location['dir'] == 0) {
$y = $location['y'] * 2; $y = $location['y'] * 2;

View File

@ -436,3 +436,9 @@ div.secret-info > span {
img.building:hover { img.building:hover {
filter: drop-shadow(2px 2px 2px white) sepia(15%); filter: drop-shadow(2px 2px 2px white) sepia(15%);
} }
.legend {
color: dimgray;
font-family: consolas, sans-serif;
font-size: 18px;
margin-top: 10px;
}

View File

@ -1,5 +1,6 @@
<?php <?php
use Battles\Database\DBPDO;
use Battles\GameLogs; use Battles\GameLogs;
use Battles\Template; use Battles\Template;
@ -9,6 +10,7 @@ define('ERROR_NO_SUCH_USER', 'Такого пользователя не сущ
define('ERROR_USER_IS_BLOCKED', 'Пользователь заблокирован!'); define('ERROR_USER_IS_BLOCKED', 'Пользователь заблокирован!');
define('ERROR_WRONG_PASSWORD', 'Неверный пароль!'); define('ERROR_WRONG_PASSWORD', 'Неверный пароль!');
define('ERROR_EMPTY_CREDENTIALS', 'Вы не ввели логин или пароль!'); define('ERROR_EMPTY_CREDENTIALS', 'Вы не ввели логин или пароль!');
$db = new DBPDO();
foreach ($_POST as $key => $val) { //Проверка всех значений массива POST одним махом. foreach ($_POST as $key => $val) { //Проверка всех значений массива POST одним махом.
$_POST[$key] = iconv(mb_detect_encoding($_POST[$key], 'auto'), 'utf-8', $val); $_POST[$key] = iconv(mb_detect_encoding($_POST[$key], 'auto'), 'utf-8', $val);
} }
@ -19,34 +21,34 @@ $battle = $_COOKIE['battle'] ?? '';
$error = ""; $error = "";
if ($username && $password) { if ($username && $password) {
$user_query = db::c()->query('SELECT `id`, `login` ,`pass`, `room`, `block` FROM `users` WHERE `login` = "?s"', $username)->fetch_assoc(); $user_query = $db->ofetch('SELECT id, login, pass, room, block FROM users WHERE login = ?', $username);
if (!$user_query['id']) { if (!$user_query->id) {
$error = ERROR_NO_SUCH_USER; $error = ERROR_NO_SUCH_USER;
} elseif ($user_query['block'] == 1) { } elseif ($user_query->block) {
$error = ERROR_USER_IS_BLOCKED; $error = ERROR_USER_IS_BLOCKED;
} elseif (password_verify($password, $user_query['pass'])) { } elseif (password_verify($password, $user_query->pass)) {
if (!$error) { if (!$error) {
# Проверка на мультоводство по используемому кукису. # Проверка на мультоводство по используемому кукису.
if ($battle != null && $user_query['id'] != $battle) { if ($battle != null && $user_query->id != $battle) {
GameLogs::addUserLog($user_query['id'],'Разные ID на входе. Возможно используются несколько аккаунтов.', 'multiaccounts'); GameLogs::addUserLog($user_query->id,'Разные ID на входе. Возможно используются несколько аккаунтов.', 'multiaccounts');
} }
setcookie("battle", $user_query['id']); setcookie("battle", $user_query->id);
$_SESSION['uid'] = $user_query['id']; $_SESSION['uid'] = $user_query->id;
setcookie("uid", $user_query['id'], time() + 43200, "/", GAMEDOMAIN); setcookie("uid", $user_query->id, time() + 43200, "/", GAMEDOMAIN);
setcookie("hashcode", md5($user_query['id'] . $user_query["pass"] . $user_query["login"]), time() + 43200, "/", GAMEDOMAIN); setcookie("hashcode", md5($user_query->id . $user_query->pass . $username), time() + 43200, "/", GAMEDOMAIN);
$_SESSION['sid'] = session_id(); $_SESSION['sid'] = session_id();
$onl = db::c()->query('SELECT user_id FROM online WHERE user_id = "?s"', $user_query['id'])->fetch_assoc(); $onl = $db->ofetch('SELECT user_id FROM online WHERE user_id = ?', $user_query->id);
if (isset($onl['user_id'])) { if (isset($onl->user_id)) {
db::c()->query('UPDATE online SET date = ?i WHERE user_id = "?s"', time(), $user_query['id']); $db->execute('UPDATE online SET date = ? WHERE user_id = ?', [time(), $user_query->id]);
} else { } else {
db::c()->query('INSERT INTO online (user_id, date, room, real_time) VALUES (?i, ?i, ?i, ?i)', $user_query['id'], time(), $user_query['room'], time()); $db->execute('INSERT INTO online (user_id, date, room, real_time) VALUES (?,?,?,?)', [$user_query->id, time(), $user_query->room, time()]);
} }
db::c()->query('UPDATE `users` SET `session_id` = "?s", `enter_game` = ?i WHERE `id` = ?i', session_id(), 1, $user_query['id']); $db->execute('UPDATE users SET session_id = ?, enter_game = 1 WHERE id = ?', [session_id(), $user_query->id]);
header("Location: fight.php"); header("Location: fight.php");
} }
} else { } else {

View File

@ -1,7 +1,11 @@
<?php <?php
use Battles\Template;
use Battles\User;
session_start(); session_start();
require_once "functions.php"; require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']); $user = $user ?? new User($_SESSION['uid']);
function secs2hrs($s, $short = 0) function secs2hrs($s, $short = 0)
{ {
@ -61,12 +65,12 @@ if ($_GET['ext'] == 1) {
} }
if (in_array($user->room, Config::$canalenters)) { if (in_array($user->getRoom(), Config::$canalenters)) {
$podzemroom = $user->room + 1; $podzemroom = $user->getRoom() + 1;
$cavedata = [620 => ['x1' => 3, 'y1' => 2, 'dir1' => 2]]; $cavedata = [620 => ['x1' => 3, 'y1' => 2, 'dir1' => 2]];
$podzemdata = [621 => ['name1' => 'Проклятый Рудник', 'name2' => 'Проклятого Рудника']]; $podzemdata = [621 => ['name1' => 'Проклятый Рудник', 'name2' => 'Проклятого Рудника']];
$warning = $_GET["warning"] ?? ''; $warning = $_GET["warning"] ?? '';
\Battles\Template::header('enter_cave'); Template::header('enter_cave');
if ($warning) { if ($warning) {
echo sprintf('<b style="color: #f80000">%s</b>', $warning); echo sprintf('<b style="color: #f80000">%s</b>', $warning);
} }
@ -88,7 +92,7 @@ if (in_array($user->room, Config::$canalenters)) {
if (($user['align'] == '2.99') && $wait_sec > $new_t) { if (($user['align'] == '2.99') && $wait_sec > $new_t) {
$wait_sec = 1; $wait_sec = 1;
mysql_query("UPDATE `visit_podzem` SET `time` = 1 WHERE `login` = '$user[login]' AND `time` > 0 AND `room` = '$user->room' LIMIT 1"); mysql_query("UPDATE `visit_podzem` SET `time` = 1 WHERE `login` = '$user[login]' AND `time` > 0 AND `room` = '$user->getRoom()' LIMIT 1");
} }
if ($wait_sec > $new_t && $_GET['donate']) { if ($wait_sec > $new_t && $_GET['donate']) {
@ -130,7 +134,7 @@ if (in_array($user->room, Config::$canalenters)) {
if ($wawe == 0) { if ($wawe == 0) {
echo "<FORM id='REQUEST'> echo "<FORM id='REQUEST'>
<FIELDSET style='padding-left: 5; width=50%; color:#000000;'><LEGEND><B> Группа </B> </LEGEND> <FIELDSET style='padding-left: 5px; width=50%; color:#000000;'><LEGEND><B> Группа </B> </LEGEND>
<table> <table>
<tr> <tr>
<td>Комментарий</td> <td>Комментарий</td>
@ -149,7 +153,7 @@ if (in_array($user->room, Config::$canalenters)) {
</FORM>"; </FORM>";
} else { } else {
echo "<FORM id='REQUEST'> echo "<FORM id='REQUEST'>
<FIELDSET style='padding-left: 5; width=50%'> <FIELDSET style='padding-left: 5px; width=50%'>
<LEGEND><B> Группа </B> </LEGEND>"; <LEGEND><B> Группа </B> </LEGEND>";
if ($nawe == 1) { if ($nawe == 1) {
echo "<INPUT style=\"font-size:12px;\" type='submit' name='start' value='Начать' /> &nbsp;"; echo "<INPUT style=\"font-size:12px;\" type='submit' name='start' value='Начать' /> &nbsp;";
@ -198,7 +202,7 @@ if (in_array($user->room, Config::$canalenters)) {
return $i; return $i;
} }
$Q = mysql_query("SELECT * FROM `vxod` WHERE `room` = '$user->room'"); $Q = mysql_query("SELECT * FROM `vxod` WHERE `room` = '$user->getRoom()'");
while ($DATA = mysql_fetch_array($Q)) { while ($DATA = mysql_fetch_array($Q)) {
$cr = $DATA['glav_id']; $cr = $DATA['glav_id'];
$z_login[$i] = $DATA['login']; $z_login[$i] = $DATA['login'];
@ -258,11 +262,10 @@ if (in_array($user->room, Config::$canalenters)) {
?> ?>
<TR> <TR>
<TD> <TD></TD>
</TD>
</TR> </TR>
<TR height=1> <TR>
<TD height=1 colspan=2><SPAN></SPAN></TD> <TD colspan=2></TD>
</TR> </TR>
</TABLE> </TABLE>
<?php <?php
@ -275,7 +278,7 @@ if (in_array($user->room, Config::$canalenters)) {
exit(); exit();
} }
$time = date("H:i"); $time = date("H:i");
$SQL2 = mysql_query("INSERT INTO `vxod` (`date`, `login`, `glav_id`, `comment`, `pass`, `room`) VALUES('$time', '$login', '$user_id', '" . mysql_real_escape_string($_GET['cmt']) . "', '" . mysql_real_escape_string($_GET['pass']) . "', '$user->room')"); $SQL2 = mysql_query("INSERT INTO `vxod` (`date`, `login`, `glav_id`, `comment`, `pass`, `room`) VALUES('$time', '$login', '$user_id', '" . mysql_real_escape_string($_GET['cmt']) . "', '" . mysql_real_escape_string($_GET['pass']) . "', '$user->getRoom()')");
$SQL2 = mysql_query("INSERT INTO `vxodd` (`login`, `glav_id`, `lvl`) VALUES('$login', '$user_id', '$user_lvl')"); $SQL2 = mysql_query("INSERT INTO `vxodd` (`login`, `glav_id`, `lvl`) VALUES('$login', '$user_id', '$user_lvl')");
if ($SQL2) { if ($SQL2) {
echo "<script>location.href='main.php?act=none'</script>"; echo "<script>location.href='main.php?act=none'</script>";
@ -305,7 +308,7 @@ if (in_array($user->room, Config::$canalenters)) {
} }
$den = mysql_query("SELECT `id` FROM `vxodd` WHERE `glav_id` = '" . $_GET['naw_id'] . "'"); $den = mysql_query("SELECT `id` FROM `vxodd` WHERE `glav_id` = '" . $_GET['naw_id'] . "'");
if (mysql_num_rows($den) >= (in_array($user->room + 1, Config::$caverooms) ? 5 : 4)) { if (mysql_num_rows($den) >= (in_array($user->getRoom() + 1, Config::$caverooms) ? 5 : 4)) {
echo "<script>location.href='?warning=5'</script>"; echo "<script>location.href='?warning=5'</script>";
exit(); exit();
} }
@ -353,7 +356,7 @@ if (in_array($user->room, Config::$canalenters)) {
} }
if ($_GET['start']) { if ($_GET['start']) {
if (in_array($user->room + 1, Config::$caverooms)) { if (in_array($user->getRoom() + 1, Config::$caverooms)) {
$nc = 1; $nc = 1;
$locs = []; $locs = [];
} }
@ -375,8 +378,8 @@ if (in_array($user->room, Config::$canalenters)) {
mysql_query("update `users` SET `money` = (`money-$nana[fee]) WHERE `id` = '$esth[id]' LIMIT 1"); mysql_query("update `users` SET `money` = (`money-$nana[fee]) WHERE `id` = '$esth[id]' LIMIT 1");
$user['money'] += $nana['fee']; $user['money'] += $nana['fee'];
$esth['money'] -= $nana['fee']; $esth['money'] -= $nana['fee'];
adddelo($user['id'], "Персонаж $user[login] получил $nana[fee] кр. за поход по локации \"" . $rooms[$user->room + 1] . "\" от персонажа $esth[login] ($user[money]).", 1); adddelo($user['id'], "Персонаж $user[login] получил $nana[fee] кр. за поход по локации \"" . $rooms[$user->getRoom() + 1] . "\" от персонажа $esth[login] ($user[money]).", 1);
adddelo($esth['id'], "Персонаж $esth[login] заплатил $nana[fee] кр. за поход по локации \"" . $rooms[$user->room + 1] . "\" персонажу $user[login] ($esth[money]).", 1); adddelo($esth['id'], "Персонаж $esth[login] заплатил $nana[fee] кр. за поход по локации \"" . $rooms[$user->getRoom() + 1] . "\" персонажу $user[login] ($esth[money]).", 1);
} }
if ($esth['level'] > $level) { if ($esth['level'] > $level) {
$level = $esth['level']; $level = $esth['level'];
@ -389,12 +392,12 @@ if (in_array($user->room, Config::$canalenters)) {
$vrem = 30 * 60 + time(); $vrem = 30 * 60 + time();
$cavedata = Config::$cavedata ?? []; $cavedata = Config::$cavedata ?? [];
mysql_query("INSERT INTO `caveparties` SET `user` = '$esth[id]', `leader` = '$user[id]', `login` = '$esth[login]', `shadow` = '0.png', `x` = '" . $cavedata[$user->room + 1]['x1'] . "', `y` = '" . $cavedata[$user->room + 1]['y1'] . "', `dir` = '" . $cavedata[$user->room + 1]['dir1'] . "', `floor` = 1"); mysql_query("INSERT INTO `caveparties` SET `user` = '$esth[id]', `leader` = '$user[id]', `login` = '$esth[login]', `shadow` = '0.png', `x` = '" . $cavedata[$user->getRoom() + 1]['x1'] . "', `y` = '" . $cavedata[$user->getRoom() + 1]['y1'] . "', `dir` = '" . $cavedata[$user->getRoom() + 1]['dir1'] . "', `floor` = 1");
mysql_query("UPDATE `users`, `online` SET " . ($nc ? "`users`.`caveleader` = '$user[id]', " : "") . " `users`.`room` = '" . ($user->room + 1) . "', `online`.`room` = '" . ($user->room + 1) . "' WHERE `online`.`id` = `users`.`id` AND `online`.`id` = '" . $esth['id'] . "'"); mysql_query("UPDATE `users`, `online` SET " . ($nc ? "`users`.`caveleader` = '$user[id]', " : "") . " `users`.`room` = '" . ($user->getRoom() + 1) . "', `online`.`room` = '" . ($user->getRoom() + 1) . "' WHERE `online`.`id` = `users`.`id` AND `online`.`id` = '" . $esth['id'] . "'");
} }
if ($nc) { if ($nc) {
$r = mysql_query("SELECT * FROM `cavemaps` WHERE `room` = '$user->room'"); $r = mysql_query("SELECT * FROM `cavemaps` WHERE `room` = '$user->getRoom()'");
while ($rec = mysql_fetch_assoc($r)) { while ($rec = mysql_fetch_assoc($r)) {
$map = unserialize($rec['map']); $map = unserialize($rec['map']);
foreach ($map as $k => $v) { foreach ($map as $k => $v) {
@ -436,7 +439,6 @@ if (in_array($user->room, Config::$canalenters)) {
?> ?>
<TD nowrap valign=top> <TD nowrap valign=top>
<BR> <BR>
<DIV align=right> <DIV align=right>
<INPUT style="font-size:12px;" onClick="document.location.href='enter_cave.php?<?= time(); ?>'" <INPUT style="font-size:12px;" onClick="document.location.href='enter_cave.php?<?= time(); ?>'"
@ -444,13 +446,10 @@ if (in_array($user->room, Config::$canalenters)) {
<input style="font-size: 12px;" type="button" value="Вернуться" <input style="font-size: 12px;" type="button" value="Вернуться"
onclick="document.location.href='enter_cave.php?ext=1';"/> onclick="document.location.href='enter_cave.php?ext=1';"/>
</DIV> </DIV>
</TD> </TABLE>
</TR></TBODY></TABLE> </TABLE>
</TD> <div id="goto" style="text-align:right;white-space:nowrap">&nbsp;</div>
</TR> <br><br>
</TABLE>
<div id="goto" style="text-align:right;white-space:nowrap">&nbsp;</div>
<br><br>
<?php <?php
} else { } else {
header("location: main.php"); header("location: main.php");

View File

@ -1,10 +1,13 @@
<?php <?php
use Battles\Template;
session_start(); session_start();
if (empty($_SESSION['uid'])) { if (empty($_SESSION['uid'])) {
exit; exit;
} }
require_once "functions.php"; require_once "functions.php";
if ($user->room == 51) { if ($user->getRoom() == 51) {
header('location: city.php'); header('location: city.php');
exit; exit;
} }
@ -110,10 +113,10 @@ if ($_GET['res']) {
addchp('<b style="color:#990000">Внимание!</b> <b>' . $user["login"] . '</b>, поднял предмет "' . $gss['name'] . '".', '{[]}' . Nick::id($user["id"])->short() . '{[]}'); addchp('<b style="color:#990000">Внимание!</b> <b>' . $user["login"] . '</b>, поднял предмет "' . $gss['name'] . '".', '{[]}' . Nick::id($user["id"])->short() . '{[]}');
echo "<font style='color:#990000'>Вы подняли <b>'" . $gss['name'] . "'</b>.</font>"; echo "<font style='color:#990000'>Вы подняли <b>'" . $gss['name'] . "'</b>.</font>";
} else { } else {
echo "&nbsp;<font style='font-size:12px; color:cc0000;'>Кто-то оказался быстрее!</font>"; echo "&nbsp;<font style='font-size:12px; color:#cc0000;'>Кто-то оказался быстрее!</font>";
} }
} }
\Battles\Template::header('Лес'); Template::header('Лес');
?> ?>
<script src="i/forest/char1.32.js"></script> <script src="i/forest/char1.32.js"></script>
<script src="i/forest/funcs1.6.js"></script> <script src="i/forest/funcs1.6.js"></script>
@ -197,7 +200,7 @@ if ($_GET['res']) {
<? if ($les_login['room'] == 'G8') { ?> <? if ($les_login['room'] == 'G8') { ?>
<input class=btn style="width:150px;height:20" type="button" <input class=btn style="width:150px;height:20px;" type="button"
value="Выйти из леса" onclick="location.href='?go=vixod';"/><br/> value="Выйти из леса" onclick="location.href='?go=vixod';"/><br/>
<br/> <br/>
<? } ?> <? } ?>

View File

@ -5,13 +5,19 @@
* Project name: Battles-Game * Project name: Battles-Game
*/ */
use Battles\Database\DBPDO;
use Battles\Travel; use Battles\Travel;
use Battles\User; use Battles\User;
require_once 'config.php'; require_once 'config.php';
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
} else {
$user = new User($_SESSION['uid']);
}
$user = new User($_SESSION['uid']); if ($user->getId() && $user->getBlock()) {
if ($user->id && $user->block) {
exit('user blocked!'); exit('user blocked!');
} }
@ -48,12 +54,12 @@ $fbattleCheckFiles = [
'zayavka.php', 'zayavka.php',
]; ];
//Может просто отовсюду? О_о //Может просто отовсюду? О_о
if ($user->battle && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], $fbattleCheckFiles)) { if ($user->getBattle() && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], $fbattleCheckFiles)) {
header('location: fbattle.php'); header('location: fbattle.php');
exit; exit;
} }
$towerinCheckFiles = ['main.php', 'city.php', 'tower.php']; $towerinCheckFiles = ['main.php', 'city.php', 'tower.php'];
if ($user->in_tower && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], $towerinCheckFiles)) { if ($user->getInTower() && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], $towerinCheckFiles)) {
header('location: towerin.php'); header('location: towerin.php');
exit; exit;
} }
@ -61,8 +67,8 @@ $roomsCheck = [22, 23, 25, 27, 29, 30, 31, 37, 38, 39, 40, 41, 45, 53, 61, 401,
// Если я в одной из этих комнат, // Если я в одной из этих комнат,
// [И] Имя файла который инклюдит файл с проверкой не совпадает с именем файла локации в которой я нахожусь // [И] Имя файла который инклюдит файл с проверкой не совпадает с именем файла локации в которой я нахожусь
// [И] Номер комнаты который я пытаюсь открыть есть в списке проверяемых // [И] Номер комнаты который я пытаюсь открыть есть в списке проверяемых
if (in_array($user->room, $roomsCheck) if (in_array($user->getRoom(), $roomsCheck)
&& pathinfo(debug_backtrace()[0]['file'])['basename'] != Travel::$roomFileName[$user->room] && pathinfo(debug_backtrace()[0]['file'])['basename'] != Travel::$roomFileName[$user->getRoom()]
&& in_array(array_search(pathinfo(debug_backtrace()[0]['file'])['basename'], Travel::$roomFileName), $roomsCheck)) { && in_array(array_search(pathinfo(debug_backtrace()[0]['file'])['basename'], Travel::$roomFileName), $roomsCheck)) {
header('location: main.php'); header('location: main.php');
exit; exit;
@ -71,7 +77,7 @@ if (in_array($user->room, $roomsCheck)
$ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP); $ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP);
if (isset($_GET['goto']) && isset($_GET['tStamp']) && isset($_GET['vcode']) && $_GET['vcode'] == md5(sha1($_GET['goto'] . $_GET['tStamp']))) { if (isset($_GET['goto']) && isset($_GET['tStamp']) && isset($_GET['vcode']) && $_GET['vcode'] == md5(sha1($_GET['goto'] . $_GET['tStamp']))) {
db::c()->query('UPDATE `users`,`online` SET `users`.`room` = ?i, `online`.`room` = ?i WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $_GET['goto'], $_GET['goto'], $_SESSION['uid']); db::c()->query('UPDATE `users`,`online` SET `users`.`room` = ?i, `online`.`room` = ?i WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $_GET['goto'], $_GET['goto'], $_SESSION['uid']);
$user->room = intval($_GET['goto']); $user->setRoom(intval($_GET['goto']));
} }
function createbot($bot, $login = "") function createbot($bot, $login = "")
@ -134,7 +140,7 @@ function takeshopitem($item, $table = "shop", $present = '', $onlyonetrip = '',
$flds = []; $flds = [];
$goden = ''; $goden = '';
if (!$uid) { if (!$uid) {
$uid = $user->id; $uid = $user->getId();
} }
$r = db::c()->query('SHOW FIELDS FROM ?f', $table); $r = db::c()->query('SHOW FIELDS FROM ?f', $table);
@ -283,9 +289,9 @@ function echoscroll($slot)
{ {
global $user; global $user;
$all_magic = 0; $all_magic = 0;
if ($user->battle) { if ($user->getBattle()) {
$script = 'fbattle'; $script = 'fbattle';
$bat = db::c()->query('SELECT `magic` FROM `battle` WHERE `id` = ?i', $user->battle)->fetch_assoc(); $bat = db::c()->query('SELECT `magic` FROM `battle` WHERE `id` = ?i', $user->getBattle())->fetch_assoc();
$all_magic = unserialize($bat['magic']); $all_magic = unserialize($bat['magic']);
} else { } else {
$script = 'main'; $script = 'main';
@ -294,7 +300,7 @@ function echoscroll($slot)
$dress = db::c()->query('SELECT `id`, `magic`, `name`, `img`, `duration`, `maxdur` FROM `inventory` WHERE `id` = ?i', $user->$slot)->fetch_assoc(); $dress = db::c()->query('SELECT `id`, `magic`, `name`, `img`, `duration`, `maxdur` FROM `inventory` WHERE `id` = ?i', $user->$slot)->fetch_assoc();
$need_charge = db::c()->query('SELECT `needcharge` FROM `magic` WHERE `id` = ?i', $dress['magic'])->fetch_assoc(); $need_charge = db::c()->query('SELECT `needcharge` FROM `magic` WHERE `id` = ?i', $dress['magic'])->fetch_assoc();
if (($user->$slot > 0) && ($all_magic[$user->id] < 1 || empty($need_charge['needcharge']))) { if (($user->$slot > 0) && ($all_magic[$user->getId()] < 1 || empty($need_charge['needcharge']))) {
$row['id'] = $user->$slot; $row['id'] = $user->$slot;
if ($dress['magic']) { if ($dress['magic']) {
$magic = db::c()->query('SELECT targeted FROM `magic` WHERE `id` = ?i', $dress['magic'])->fetch_assoc(); $magic = db::c()->query('SELECT targeted FROM `magic` WHERE `id` = ?i', $dress['magic'])->fetch_assoc();
@ -312,7 +318,7 @@ function echoscroll($slot)
echo <<<ACTIVE_SCROLL echo <<<ACTIVE_SCROLL
<img class='tooltip' src="i/sh/{$dress['img']}" width='40' title="<b>{$dress['name']}</b><br> Прочность {$dress['duration']} / {$dress['maxdur']} " height='25' alt="Свиток"></a> <img class='tooltip' src="i/sh/{$dress['img']}" width='40' title="<b>{$dress['name']}</b><br> Прочность {$dress['duration']} / {$dress['maxdur']} " height='25' alt="Свиток"></a>
ACTIVE_SCROLL; ACTIVE_SCROLL;
} elseif (($user->$slot > 0) && ($all_magic[$user->id] >= 1) && $need_charge['needcharge'] > 0) { } elseif (($user->$slot > 0) && ($all_magic[$user->getId()] >= 1) && $need_charge['needcharge'] > 0) {
echo <<<INACTIVE_SCROLL echo <<<INACTIVE_SCROLL
<img src="i/sh/magicclock.gif" width="40" height="25" title='Произведите размен ударами и магия снова станет доступна' alt="Свиток"> <img src="i/sh/magicclock.gif" width="40" height="25" title='Произведите размен ударами и магия снова станет доступна' alt="Свиток">
INACTIVE_SCROLL; INACTIVE_SCROLL;
@ -393,7 +399,7 @@ function timeOut($ttm)
return $out; return $out;
} }
function show_eff_inf($u, $type) function show_eff_inf(int $u): string
{ {
$img = [ $img = [
1 => "travma.gif", 2 => "magic/sleep.gif", 3 => "magic/sleepf.gif", 4 => "magic/haos.gif", 1 => "travma.gif", 2 => "magic/sleep.gif", 3 => "magic/sleepf.gif", 4 => "magic/haos.gif",
@ -407,57 +413,23 @@ function show_eff_inf($u, $type)
1022 => "sh/hidden.gif", 1022 => "sh/hidden.gif",
]; ];
$r = ''; $r = '';
$and = '';
$adds = '';
if ($type == 1) { $effs = DBPDO::INIT()->ofetchAll('SELECT * FROM users_effects WHERE owner_id = ?', $u);
$and = " AND `type` != 1022";
} $i = 0;
$effs = db::c()->query('SELECT * FROM `users_effects` WHERE `type` <> 20 AND `owner_id` = ?i' . $and, $u)->fetch_assoc(); while ($i < count($effs)) {
/* Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 132644820 bytes) in /home/combats/web/combats.loc/public_html/functions.php on line 873 $timeleft = timeOut($effs[$i]->remaining_time - time());
* Если на человеке стоит type=20 $r .= <<<HTML
* #26 <div>
*/ <img class="image" src="/i/{$img[$effs[$i]->type]}">
$etype = $effs['type']; <span class="title">{$effs[$i]->name}</span>
if ($type == 1) { <div class="timeleft">$timeleft</div>
while ($effs) { </div>
if ($etype == 11 || $etype == 12 || $etype == 13 || $etype == 14) { HTML;
if ($etype == 11) { $i++;
$adds = 'Легкая ';
} elseif ($etype == 12) {
$adds = 'Средняя ';
} elseif ($etype == 13) {
$adds = 'Тяжелая ';
} elseif ($etype == 14) {
$adds = 'Неизлечимая ';
} else {
$adds = '';
}
} else {
$adds = '';
}
$r .= '<div>';
$r .= '<img class="image" src="i/{$img[$etype]}">';
$r .= '<span class="title">' . $adds . $effs['name'] . '</span>';
if ($effs['sleep'] != 0) {
$r .= '<div class="timeleft">Эффект заморожен</div>';
} else {
$r .= '<div class="timeleft">' . timeOut($effs['time'] - time()) . '</div>';
}
$r .= '</div>';
}
} else {
while ($effs) {
$r .= '<div>';
$r .= '<img class="image" src="/i/' . $img[$etype] . '" /> <a href=\'main.php?edit=1&del=1&efid=' . $effs['id'] . '\' onclick=\'return confirm("Удалить ' . $adds . $effs['name'] . '?")\'><img src=\'i/clear.gif\' style=\'float: right;\' /></a>';
$r .= '<span class="title">' . $adds . $effs['name'] . '</span>';
if ($effs['sleep'] != 0) {
$r .= '<div class="timeleft">Эффект заморожен</div>';
} else {
$r .= '<div class="timeleft">' . timeOut($effs['time'] - time()) . '</div>';
}
$r .= '</div>';
}
} }
unset($i);
return $r; return $r;
} }
@ -678,11 +650,11 @@ function dropitem($slot)
`u`.`fauvorot` = `u`.`fauvorot` - `i`.`mfauvorot`, `u`.`fauvorot` = `u`.`fauvorot` - `i`.`mfauvorot`,
`u`.`uminu` = `u`.`uminu` - `i`.`minu`, `u`.`uminu` = `u`.`uminu` - `i`.`minu`,
`u`.`umaxu` = `u`.`umaxu` - `i`.`maxu` `u`.`umaxu` = `u`.`umaxu` - `i`.`maxu`
WHERE `i`.`id` = `u`.?f AND `i`.`dressed` = 1 AND `i`.`owner` = ?i AND u.id = ?i', $slot1, $slot1, $user->id, $user->id)) { WHERE `i`.`id` = `u`.?f AND `i`.`dressed` = 1 AND `i`.`owner` = ?i AND u.id = ?i', $slot1, $slot1, $user->getId(), $user->getId())) {
db::c()->query('UPDATE `users` SET `hp` = `maxhp`, `fullhptime` = ?i WHERE `hp` > `maxhp` AND `id` = ?i', time(), $user->id); db::c()->query('UPDATE `users` SET `hp` = `maxhp`, `fullhptime` = ?i WHERE `hp` > `maxhp` AND `id` = ?i', time(), $user->getId());
} }
$wear_raw = db::c()->query('SELECT * FROM `inventory` where `owner` = ?i AND `dressed` = 1', $user->id); $wear_raw = db::c()->query('SELECT * FROM `inventory` where `owner` = ?i AND `dressed` = 1', $user->getId());
while ($wear_list = $wear_raw->fetch_assoc()) { while ($wear_list = $wear_raw->fetch_assoc()) {
$wear_arr[] = $wear_list['prototype']; $wear_arr[] = $wear_list['prototype'];
} }
@ -742,7 +714,7 @@ function dropitem($slot)
`u`.`mlight = `u`.`mlight - `s`.`glight`, `u`.`mlight = `u`.`mlight - `s`.`glight`,
`u`.`mgray = `u`.`mgray - `s`.`ggray` `u`.`mgray = `u`.`mgray - `s`.`ggray`
WHERE WHERE
`u`.`id` = ?i AND `s`.`set_id`= ?i', $user->id, $set_id); `u`.`id` = ?i AND `s`.`set_id`= ?i', $user->getId(), $set_id);
} }
} }
return true; return true;
@ -809,7 +781,7 @@ function ref_drop()
function destructitem($id) function destructitem($id)
{ {
global $user; global $user;
$item = db::c()->query('SELECT 1 FROM inventory WHERE owner_id = ?i AND item_id = ?i', $user->id, $id); $item = db::c()->query('SELECT 1 FROM inventory WHERE owner_id = ?i AND item_id = ?i', $user->getId(), $id);
if ($item->getNumRows()) { if ($item->getNumRows()) {
db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', $id); db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', $id);
} }
@ -819,8 +791,8 @@ function destructitem($id)
function usemagic($id, $target) 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->getId(), $id)->fetch_assoc_array();
$bat = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $user->battle)->fetch_assoc_array(); $bat = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $user->getBattle())->fetch_assoc_array();
$all_magic = unserialize($bat['magic']); $all_magic = unserialize($bat['magic']);
$charge = 0; $charge = 0;
$magic = db::c()->query('SELECT * FROM `magic` WHERE `id` = ?i', $row['magic'])->fetch_assoc_array(); $magic = db::c()->query('SELECT * FROM `magic` WHERE `id` = ?i', $row['magic'])->fetch_assoc_array();
@ -834,7 +806,7 @@ function usemagic($id, $target)
$charge = $incmagic['needcharge']; $charge = $incmagic['needcharge'];
} }
//Переделать под новую базу //Переделать под новую базу
if (($all_magic[$user->id] < 1 || $charge == 0) && if (($all_magic[$user->getId()] < 1 || $charge == 0) &&
($user['sila'] >= $row['nsila'] && ($user['sila'] >= $row['nsila'] &&
$user['lovk'] >= $row['nlovk'] && $user['lovk'] >= $row['nlovk'] &&
$user['inta'] >= $row['ninta'] && $user['inta'] >= $row['ninta'] &&
@ -887,16 +859,16 @@ function usemagic($id, $target)
$charge = 0; $charge = 0;
} }
//ограничение по кол-ву за ход //ограничение по кол-ву за ход
if ($user->battle > 0) { if ($user->getBattle()) {
$bat = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $user->battle)->fetch_assoc_array(); $bat = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $user->getBattle())->fetch_assoc_array();
} }
if ($bat['magic'] == '') { if ($bat['magic'] == '') {
$all_magic = []; $all_magic = [];
} else { } else {
$all_magic = unserialize($bat['magic']); $all_magic = unserialize($bat['magic']);
} }
$all_magic[$user->id] += $charge; $all_magic[$user->getId()] += $charge;
db::c()->query('UPDATE `battle` SET `magic`= "?s" WHERE id = ?i', serialize($all_magic), $user->battle); db::c()->query('UPDATE `battle` SET `magic`= "?s" WHERE id = ?i', serialize($all_magic), $user->getBattle());
} }
} }
return false; return false;
@ -906,7 +878,7 @@ function addch($text, $room = 0)
{ {
global $user; global $user;
if ($room == 0) { if ($room == 0) {
$room = $user->room; $room = $user->getRoom();
} }
if ($fp = @fopen("tmp/chat.txt", "a")) { //открытие if ($fp = @fopen("tmp/chat.txt", "a")) { //открытие
flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА
@ -922,7 +894,7 @@ function addchp($text, $who, $room = 0)
{ {
global $user; global $user;
if ($room == 0) { if ($room == 0) {
$room = $user->room; $room = $user->getRoom();
} }
$fp = fopen("tmp/chat.txt", "a"); //открытие $fp = fopen("tmp/chat.txt", "a"); //открытие
flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА
@ -953,24 +925,24 @@ function err($t)
/** /**
* @param $name * @param int $userId
* @param $text * @param string $text
* *
* @throws \Krugozor\Database\Mysql\Exception
*/ */
function telegraph($userId, $text) function telegraph(int $userId, string $text)
{ {
db::c()->query('SELECT 1 FROM `users` WHERE `id` = ?i', $userId)->fetch_assoc(); $db = DBPDO::INIT();
if (db::c()->getAffectedRows()) { if ($db->ofetch('SELECT 1 FROM users WHERE id = ?', $userId)) {
db::c()->query('INSERT INTO `telegraph` (receiver, text) VALUES (?i,"?s")', $userId, $text); $db->execute('INSERT INTO chat (user_id,receiver_id,msg,type) VALUES (-1,?,?,?)', [$userId, $text, 'sms']);
} }
unset($db);
} }
function get_meshok() function get_meshok()
{ {
global $user; global $user;
$itemsWeight = db::c()->query('SELECT SUM(weight) AS all_weight FROM `inventory` WHERE owner_id = ?i AND on_sale = 0', $_SESSION['uid'])->fetch_assoc(); $itemsWeight = db::c()->query('SELECT SUM(weight) AS all_weight FROM `inventory` WHERE owner_id = ?i AND on_sale = 0', $_SESSION['uid'])->fetch_assoc();
return ($user->strength * 4 + $itemsWeight['all_weight']); return ($user->getStrength() * 4 + $itemsWeight['all_weight']);
} }
/** /**
@ -1133,7 +1105,7 @@ function SolveExp($at_id, $def_id, $damage)
$expmf = 1; $expmf = 1;
} }
return round((($baseexp[$def['level']]) * ($def_cost[0] / (($at_cost[0] + $def_cost[0]) / 2)) * ($damage / $def['maxhp']) * $expmf * $mfit * $mfbot * $mfbot2) / 3, 0); return round((($baseexp[$def['level']]) * ($def_cost[0] / (($at_cost[0] + $def_cost[0]) / 2)) * ($damage / $def['maxhp']) * $expmf * $mfit * $mfbot * $mfbot2) / 3);
} }
/** /**

View File

@ -8,29 +8,29 @@ $castleOwners = db::c()->query('SELECT * FROM `clans` WHERE `short` = (SELECT *
if ($castleOwners['id'] == $user['klan']) { if ($castleOwners['id'] == $user['klan']) {
// если мой клан // если мой клан
if ($_GET['goto'] == 'arsenal') { if ($_GET['goto'] == 'arsenal') {
$user->room = 38; $user->setRoom(38);
} }
if ($_GET['goto'] == 'home') { if ($_GET['goto'] == 'home') {
$user->room = 37; $user->setRoom(37);
} }
if ($_GET['goto'] == 'dvor') { if ($_GET['goto'] == 'dvor') {
$user->room = 39; $user->setRoom(39);
} }
if ($_GET['goto'] == 'master') { if ($_GET['goto'] == 'master') {
$user->room = 40; $user->setRoom(40);
} }
if ($_GET['goto'] == 'rest') { if ($_GET['goto'] == 'rest') {
$user->room = 41; $user->setRoom(41);
} }
if (in_array($_GET['goto'], ['arsenal', 'home', 'dvor', 'master', 'rest'])) { if (in_array($_GET['goto'], ['arsenal', 'home', 'dvor', 'master', 'rest'])) {
db::c()->query('UPDATE `users`,`online` SET `users`.`room` = ?i,`online`.`room` = ?i WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $user->room, $user->room, $_SESSION['uid']); db::c()->query('UPDATE `users`,`online` SET `users`.`room` = ?i,`online`.`room` = ?i WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $user->getRoom(), $user->getRoom(), $user->getId());
header('location: gotzamok.php'); header('location: gotzamok.php');
} else { } else {
$status = 'В этом замке нет такого места!'; $status = 'В этом замке нет такого места!';
} }
} }
switch ($user->room) { switch ($user->getRoom()) {
case '37' : case '37' :
$backgroundImage = '689_small_550.jpg'; $backgroundImage = '689_small_550.jpg';
break; break;
@ -39,8 +39,8 @@ switch ($user->room) {
break; break;
} }
if ($user->room == 38) { if ($user->getRoom() == 38) {
$glava = db::c()->query('SELECT `glava` FROM `clans` WHERE `short` = "?s"', $user['klan'])->fetch_assoc(); $glava = db::c()->query('SELECT owner_id FROM `clans` WHERE `short` = "?s"', $user['klan'])->fetch_assoc();
// возврат шмотки // возврат шмотки
if ($_GET['back']) { if ($_GET['back']) {
$item = db::c()->query('SELECT * FROM `gotzam_arsenal` WHERE `id` = ?i', $_GET['back'])->fetch_assoc(); $item = db::c()->query('SELECT * FROM `gotzam_arsenal` WHERE `id` = ?i', $_GET['back'])->fetch_assoc();
@ -63,7 +63,7 @@ if ($user->room == 38) {
} }
} }
if ($user->room == 40) { if ($user->getRoom() == 40) {
$at = db::c()->query('SELECT * FROM `variables` WHERE `var` = "?s"', 'gotzam_att')->fetch_assoc(); $at = db::c()->query('SELECT * FROM `variables` WHERE `var` = "?s"', 'gotzam_att')->fetch_assoc();
$def = db::c()->query('SELECT * FROM `variables` WHERE `var` = "?s"', 'gotzam_def')->fetch_assoc(); $def = db::c()->query('SELECT * FROM `variables` WHERE `var` = "?s"', 'gotzam_def')->fetch_assoc();
@ -107,32 +107,32 @@ if ($castleOwners['id'] == $user['klan']) { ?>
<TD valign=top style="width:250px;"> <TD valign=top style="width:250px;">
<INPUT TYPE=button style="width:200px;" value="Перейти в приемную" <INPUT TYPE=button style="width:200px;" value="Перейти в приемную"
onClick="hrefToFrame('gotzamok.php?goto=home')"> onClick="hrefToFrame('gotzamok.php?goto=home')">
<? if ($user->room == 37): ?> <? if ($user->getRoom() == 37): ?>
<img src='i/flag.gif'> <img src='i/flag.gif'>
<?php endif; ?><BR> <?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти в арсенал" <INPUT TYPE=button style="width:200px;" value="Перейти в арсенал"
onClick="hrefToFrame('gotzamok.php?goto=arsenal')"> onClick="hrefToFrame('gotzamok.php?goto=arsenal')">
<? if ($user->room == 38): ?> <? if ($user->getRoom() == 38): ?>
<img src='i/flag.gif'> <img src='i/flag.gif'>
<?php endif; ?><BR> <?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти во внутренний двор" <INPUT TYPE=button style="width:200px;" value="Перейти во внутренний двор"
onClick="hrefToFrame('gotzamok.php?goto=dvor')"> onClick="hrefToFrame('gotzamok.php?goto=dvor')">
<? if ($user->room == 39): ?> <? if ($user->getRoom() == 39): ?>
<img src='i/flag.gif'> <img src='i/flag.gif'>
<?php endif; ?><BR> <?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти в мастерские" <INPUT TYPE=button style="width:200px;" value="Перейти в мастерские"
onClick="hrefToFrame('gotzamok.php?goto=master')"> onClick="hrefToFrame('gotzamok.php?goto=master')">
<? if ($user->room == 40): ?> <? if ($user->getRoom() == 40): ?>
<img src='i/flag.gif'> <img src='i/flag.gif'>
<?php endif; ?><BR> <?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти в опочивальни" <INPUT TYPE=button style="width:200px;" value="Перейти в опочивальни"
onClick="hrefToFrame('gotzamok.php?goto=rest')"> onClick="hrefToFrame('gotzamok.php?goto=rest')">
<? if ($user->room == 41): ?> <? if ($user->getRoom() == 41): ?>
<img src='i/flag.gif'> <img src='i/flag.gif'>
<?php endif; ?><BR> <?php endif; ?><BR>
</td> </td>
<td valign=top> <td valign=top>
<?php if ($user->room == 38): ?> <?php if ($user->getRoom() == 38): ?>
<h4>Арсенал</h4> <h4>Арсенал</h4>
<button onClick="hrefToFrame('gotzamok.php?do=zdat')">Сдать в арсенал</button> <button onClick="hrefToFrame('gotzamok.php?do=zdat')">Сдать в арсенал</button>
<div style="background: silver; border: 1px solid dimgray;"> <div style="background: silver; border: 1px solid dimgray;">
@ -175,7 +175,7 @@ if ($castleOwners['id'] == $user['klan']) { ?>
<?php <?php
endif; endif;
endif; endif;
if ($user->room == 40): ?> if ($user->getRoom() == 40): ?>
<h4>Мастерские</h4> <h4>Мастерские</h4>
<div style="background: silver; border: 1px solid dimgray;"> <div style="background: silver; border: 1px solid dimgray;">
Здесь вы можете улучшить оборонные способности вашего замка. Здесь вы можете улучшить оборонные способности вашего замка.
@ -192,7 +192,7 @@ if ($castleOwners['id'] == $user['klan']) { ?>
</div> </div>
</div> </div>
<?php endif; <?php endif;
if ($user->room == 41): ?> if ($user->getRoom() == 41): ?>
<h4>Комнаты отдыха</h4> <h4>Комнаты отдыха</h4>
<div style="background: silver; border: 1px solid dimgray;"> <div style="background: silver; border: 1px solid dimgray;">
Посиди в тишине, внутри стен. Тут нет врагов. Тут спокойно. Посиди в тишине, внутри стен. Тут нет врагов. Тут спокойно.

View File

@ -1,7 +1,12 @@
<?php <?php
use Battles\Template;
use Battles\User;
session_start(); session_start();
require_once "functions.php"; require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']); $user = $user ?? new User($_SESSION['uid']);
class hellround class hellround
{ {
@ -29,7 +34,7 @@ $hr = new hellround;
$mytrip = $hr->is_in_trip($user['id']); $mytrip = $hr->is_in_trip($user['id']);
$tr = $hr->get_par($mytrip); $tr = $hr->get_par($mytrip);
\Battles\Template::header('hell'); Template::header('hell');
if ($mytrip > 0) { if ($mytrip > 0) {
?> ?>
@ -67,23 +72,23 @@ if ($mytrip > 0) {
<TABLE border=0 width=100% cellspacing="0" cellpadding="0"> <TABLE border=0 width=100% cellspacing="0" cellpadding="0">
<td align=left> <td align=left>
<INPUT TYPE="button" onclick="location.href = 'hell.php?start=1';" value="НАЧАТЬ ПОХОД" name="strah"> <INPUT TYPE="button" onclick="location.href = 'hell.php?start=1';" value="НАЧАТЬ ПОХОД" name="strah">
</td>
<td align=right> <td align=right>
<INPUT TYPE="button" onclick="location.href = 'city.php?bps=1';" value="Вернуться" name="strah"> <INPUT TYPE="button" onclick="location.href = 'city.php?bps=1';" value="Вернуться" name="strah">
</table> </table>
</form>
<FORM method=POST> <FORM method=POST>
<h3>Врата Ада</h3> <h3>Врата Ада</h3>
<center><font color=red><B><?= $err ?></B></font><BR> <div style="text-align: center; color: #f80000; font-weight: bold;"><?= $err ?></div>
<i>Отродья хаоса лезут отовсюду... Наплывы слуг хаоса не прекращаються не на минуту! Окажи посильную помощь <i>Отродья хаоса лезут отовсюду... Наплывы слуг хаоса не прекращаються не на минуту! Окажи посильную помощь
в войне с Хаосом! Будь доблестен сердцем и душей!</i></center> в войне с Хаосом! Будь доблестен сердцем и душей!</i>
<BR> <BR>
<center> <div style="text-align: center;">
<fieldset style="width:50%;"> <fieldset style="width:50%;">
<legend> <legend>
Общий ТОП Общий ТОП
</legend> </legend>
</center>
<? <?
$select = mysql_query("SELECT DISTINCT `owner` FROM `hellround_pohod` ORDER by (SELECT SUM(`volna`) FROM `hellround_pohod` WHERE `owner` = `owner`) DESC LIMIT 10;"); $select = mysql_query("SELECT DISTINCT `owner` FROM `hellround_pohod` ORDER by (SELECT SUM(`volna`) FROM `hellround_pohod` WHERE `owner` = `owner`) DESC LIMIT 10;");
while ($f = mysql_fetch_array($select)) { while ($f = mysql_fetch_array($select)) {
@ -91,7 +96,7 @@ if ($mytrip > 0) {
echo "&nbsp; " . $i . ". " . Nick::id($f[0])->full(1) . "<BR>"; echo "&nbsp; " . $i . ". " . Nick::id($f[0])->full(1) . "<BR>";
} }
?> ?>
<center>
</fieldset> </fieldset>
<fieldset style="width:50%;"> <fieldset style="width:50%;">
<legend>Личный ТОП</legend> <legend>Личный ТОП</legend>
@ -105,7 +110,7 @@ if ($mytrip > 0) {
?> ?>
</fieldset> </fieldset>
</center> </div>
</FORM> </FORM>
<? <?
} }

View File

@ -1,4 +1,4 @@
{ {
":susel:":"/i/smile/susel.gif", ":susel:":"/i/smile/susel.gif",
":ponder:":"/i/smile/ponder.gif", ":ponder:":"/i/smile/ponder.gif"
} }

View File

@ -44,7 +44,7 @@ function foundmagictype (mtypes) {
if(doubl) { if(doubl) {
return 0 return 0
}; }
return found; return found;
} }
return 0; return 0;
@ -53,8 +53,8 @@ function foundmagictype (mtypes) {
function crtmagic(mtype, title, body, subm) { function crtmagic(mtype, title, body, subm) {
mtype = foundmagictype(mtype); mtype = foundmagictype(mtype);
var names = new Array('neitral',17, 6, 14, 17, 14, 7,0,0, 3, 'fire', 57, 30, 33, 20, 21, 14, 11, 12, 0, 'water', 57, 30, 33, 20, 21, 14, 11, 12, 0, 'air', 57, 30, 33, 20, 21, 14, 11, 12, 0, 'earth', 57,30, 33, 20, 21, 14, 11, 12, 0, 'white', 51, 25, 46, 44, 44, 10, 5, 5, 0, 'gray', 51, 25, 46, 44, 44, 10, 5, 5, 0, 'black', 51, 25, 46, 44, 44, 10, 5, 5, 0); var names = ['neitral',17, 6, 14, 17, 14, 7,0,0, 3, 'fire', 57, 30, 33, 20, 21, 14, 11, 12, 0, 'water', 57, 30, 33, 20, 21, 14, 11, 12, 0, 'air', 57, 30, 33, 20, 21, 14, 11, 12, 0, 'earth', 57,30, 33, 20, 21, 14, 11, 12, 0, 'white', 51, 25, 46, 44, 44, 10, 5, 5, 0, 'gray', 51, 25, 46, 44, 44, 10, 5, 5, 0, 'black', 51, 25, 46, 44, 44, 10, 5, 5, 0];
var colors = new Array('B1A993', 'DDD5BF', 'ACA396', 'D3CEC8', '96B0C6', 'BDCDDB', 'AEC0C9', 'CFE1EA', 'AAA291', 'D5CDBC', 'BCBBB6', 'EFEEE9', '969592', 'DADADA', '72726B', 'A6A6A0'); var colors = ['B1A993', 'DDD5BF', 'ACA396', 'D3CEC8', '96B0C6', 'BDCDDB', 'AEC0C9', 'CFE1EA', 'AAA291', 'D5CDBC', 'BCBBB6', 'EFEEE9', '969592', 'DADADA', '72726B', 'A6A6A0'];
while(body.indexOf('#IMGSRC#') >= 0) body = body.replace('#IMGSRC#', 'i/misc/dmagic/'+names[mtype*10]+'_30.gif'); while(body.indexOf('#IMGSRC#') >= 0) body = body.replace('#IMGSRC#', 'i/misc/dmagic/'+names[mtype*10]+'_30.gif');
var s = '<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">'+ var s = '<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">'+
@ -78,7 +78,7 @@ function crtmagic(mtype, title, body, subm) {
'<td width="100%">'+ '<td width="100%">'+
'<table width="100%" border="0" cellspacing="0" cellpadding="0">'+ '<table width="100%" border="0" cellspacing="0" cellpadding="0">'+
'<tr><td bgcolor="#'+colors[mtype*2]+'"'+(names[mtype*10+9]?' style="padding-top: '+names[mtype*10+9]+'"':'')+' >'+ '<tr><td bgcolor="#'+colors[mtype*2]+'"'+(names[mtype*10+9]?' style="padding-top: '+names[mtype*10+9]+'"':'')+' >'+
'<table border=0 width=100% cellspacing="0" cellpadding="0"><td style="padding-left: 20" align=center><B>'+title+ '<table border=0 width=100% cellspacing="0" cellpadding="0"><td style="padding-left: 20px;" align=center><B>'+title+
'</td><td width=20 align=right valign=top style="cursor: pointer" onclick="closehint();"><img src="i/clear.gif" width=13 height=13 alt="">&nbsp;</td></table>'+ '</td><td width=20 align=right valign=top style="cursor: pointer" onclick="closehint();"><img src="i/clear.gif" width=13 height=13 alt="">&nbsp;</td></table>'+
'</td></tr>'+ '</td></tr>'+
'<tr>'+ '<tr>'+

36
lab.php
View File

@ -18,7 +18,7 @@ $u_res = mysql_fetch_array(mysql_query("select * from `lab_user` where `id_user`
</script> </script>
<?php <?php
$room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->room) . "';")); $room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->getRoom()) . "';"));
if ($_GET['healall'] == 1) { if ($_GET['healall'] == 1) {
$cost = $_GET['cost']; $cost = $_GET['cost'];
@ -124,7 +124,7 @@ if ($_GET['mobkill'] == 1) {
} }
$rand_hp1 = rand(1, 10); $rand_hp1 = rand(1, 10);
$rand_hp = $rand_hp1 * $user['level']; $rand_hp = $rand_hp1 * $user['level'];
$bot = mysql_fetch_array(mysql_query("select * from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->room . "' LIMIT 1")); $bot = mysql_fetch_array(mysql_query("select * from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->getRoom() . "' LIMIT 1"));
$hels = $bot['bot_hp'] - $rand_hp; $hels = $bot['bot_hp'] - $rand_hp;
if ($hels < 0) { if ($hels < 0) {
echo "<b>Вы убили моба!</b><br>"; echo "<b>Вы убили моба!</b><br>";
@ -135,11 +135,11 @@ if ($_GET['mobkill'] == 1) {
echo "Вы получили 1 записку!<br>"; echo "Вы получили 1 записку!<br>";
Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'"); Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'");
} }
mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->room . "' LIMIT 1"); mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->getRoom() . "' LIMIT 1");
//если просто убивалка //если просто убивалка
} else { } else {
Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'"); Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'");
mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->room . "' LIMIT 1"); mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->getRoom() . "' LIMIT 1");
} }
} else { } else {
echo "Вы отняли у моба -<b>" . $rand_hp . "</b> HP!<br>"; echo "Вы отняли у моба -<b>" . $rand_hp . "</b> HP!<br>";
@ -177,7 +177,7 @@ if ($_GET['exit'] && $room['exit'] == 1) {
if ($_GET['get']) { if ($_GET['get']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_inv` WHERE `id` = '" . mysql_real_escape_string($_GET['get']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_inv` WHERE `id` = '" . mysql_real_escape_string($_GET['get']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
switch ($data['type']) { switch ($data['type']) {
case 1: case 1:
@ -241,13 +241,13 @@ if ($_GET['get']) {
if ($_GET['drop']) { if ($_GET['drop']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($_GET['drop']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($_GET['drop']) . "' AND `id_user`='" . $user['id'] . "';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($data['id']) . "' AND `id_user`='" . $user['id'] . "' LIMIT 1;"); mysql_query("DELETE FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($data['id']) . "' AND `id_user`='" . $user['id'] . "' LIMIT 1;");
mysql_query("INSERT INTO `lab_inv` (`id_room`,`type`,`value`,`id_user`) values ('" . mysql_real_escape_string($user->room) . "','" . mysql_real_escape_string($data['type']) . "','" . mysql_real_escape_string($data['value']) . "','" . mysql_real_escape_string($user['id']) . "');"); mysql_query("INSERT INTO `lab_inv` (`id_room`,`type`,`value`,`id_user`) values ('" . mysql_real_escape_string($user->getRoom()) . "','" . mysql_real_escape_string($data['type']) . "','" . mysql_real_escape_string($data['value']) . "','" . mysql_real_escape_string($user['id']) . "');");
unset($data); unset($data);
} }
if ($_GET['nal1']) { if ($_GET['nal1']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal1']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal1']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';");
mysql_query("UPDATE `users` SET `money` = `money`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `money` = `money`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -259,7 +259,7 @@ if ($_GET['nal1']) {
if ($_GET['nal2']) { if ($_GET['nal2']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal2']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal2']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';");
mysql_query("UPDATE `users` SET `doblest` = `doblest`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `doblest` = `doblest`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -271,7 +271,7 @@ if ($_GET['nal2']) {
if ($_GET['nal3']) { if ($_GET['nal3']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal3']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal3']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';");
mysql_query("UPDATE `bank` SET `ekr` = `ekr`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `bank` SET `ekr` = `ekr`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -283,7 +283,7 @@ if ($_GET['nal3']) {
if ($_GET['nal4']) { if ($_GET['nal4']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal4']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal4']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';");
mysql_query("UPDATE `users` SET `exp` = `exp`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `exp` = `exp`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -299,28 +299,28 @@ if ($_GET['go']) {
switch ($_GET['go']) { switch ($_GET['go']) {
case "p1": case "p1":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p1']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p1']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p1']; $user->setRoom($room['p1']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
case "p2": case "p2":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p2']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p2']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p2']; $user->setRoom($room['p2']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
case "p3": case "p3":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p3']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p3']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p3']; $user->setRoom($room['p3']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
case "p4": case "p4":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p4']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p4']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p4']; $user->setRoom($room['p4']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
} }
} }
$room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->room) . "';")); $room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->getRoom()) . "';"));
if ($user['hp'] <= 0) { if ($user['hp'] <= 0) {
mysql_query("DELETE FROM `lab_trap` WHERE `id_user` = '" . $user['id'] . "'"); mysql_query("DELETE FROM `lab_trap` WHERE `id_user` = '" . $user['id'] . "'");
@ -335,12 +335,12 @@ if ($user['hp'] <= 0) {
} }
$data = mysql_query("SELECT * FROM `lab_inv` WHERE `id_room` = '" . mysql_real_escape_string($user->room) . "' AND `id_user`='" . $user['id'] . "';"); $data = mysql_query("SELECT * FROM `lab_inv` WHERE `id_room` = '" . mysql_real_escape_string($user->getRoom()) . "' AND `id_user`='" . $user['id'] . "';");
$data2 = mysql_query("SELECT * FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "';"); $data2 = mysql_query("SELECT * FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "';");
$data3 = mysql_query("SELECT * FROM `users` WHERE `lab` = 1 AND `room` = '" . mysql_real_escape_string($room['id']) . "';"); $data3 = mysql_query("SELECT * FROM `users` WHERE `lab` = 1 AND `room` = '" . mysql_real_escape_string($room['id']) . "';");
$data4 = mysql_query("SELECT * FROM `lab_bots` WHERE `id_room` = '" . mysql_real_escape_string($room['id']) . "' AND `id_user`='" . $user['id'] . "';"); $data4 = mysql_query("SELECT * FROM `lab_bots` WHERE `id_room` = '" . mysql_real_escape_string($room['id']) . "' AND `id_user`='" . $user['id'] . "';");
$roow = mysql_fetch_array(mysql_query("SELECT * FROM `lab_trap` WHERE `id_room` = '" . mysql_real_escape_string($user->room) . "' AND `id_user`='" . $user['id'] . "';")); $roow = mysql_fetch_array(mysql_query("SELECT * FROM `lab_trap` WHERE `id_room` = '" . mysql_real_escape_string($user->getRoom()) . "' AND `id_user`='" . $user['id'] . "';"));
if ($roow[0]) { if ($roow[0]) {
$msg .= 'В комнате была установлена ловушка...<br>'; $msg .= 'В комнате была установлена ловушка...<br>';
@ -390,7 +390,7 @@ for ($i = 0; $i < mysql_num_rows($log); $i++) {
} }
echo "" . $room['name'] . " (" . $user->room . ")</tr>"; echo "" . $room['name'] . " (" . $user->getRoom() . ")</tr>";
echo "<tr><td><td><button style='width:50px; height:50px;' class='INPUT' disabled id=b1 onclick='location.href=\"lab.php?go=p1\";'>СЕВЕР</button><td><td rowspan=3 style='height:100px;'>&nbsp;<td rowspan=4 width=30% valign=top style='height:100px;'>"; echo "<tr><td><td><button style='width:50px; height:50px;' class='INPUT' disabled id=b1 onclick='location.href=\"lab.php?go=p1\";'>СЕВЕР</button><td><td rowspan=3 style='height:100px;'>&nbsp;<td rowspan=4 width=30% valign=top style='height:100px;'>";
$u_lab = mysql_query("select `login` from `users` where `lab`='1' and `bot`!='1'"); $u_lab = mysql_query("select `login` from `users` where `lab`='1' and `bot`!='1'");
$u_lab_kol = mysql_num_rows($u_lab); $u_lab_kol = mysql_num_rows($u_lab);

View File

@ -16,7 +16,7 @@ $u_res = mysql_fetch_array(mysql_query("select * from `lab_user` where `id_user`
setTimeout("document.all['b1'].disabled=false;document.all['b2'].disabled=false;document.all['b3'].disabled=false;document.all['b4'].disabled=false;", <?=(3 - $tt)?>000); setTimeout("document.all['b1'].disabled=false;document.all['b2'].disabled=false;document.all['b3'].disabled=false;document.all['b4'].disabled=false;", <?=(3 - $tt)?>000);
</script> </script>
<?php <?php
$room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->room) . "';")); $room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->getRoom()) . "';"));
if ($_GET['healall'] == 1) { if ($_GET['healall'] == 1) {
$cost = $_GET['cost']; $cost = $_GET['cost'];
@ -122,7 +122,7 @@ if ($_GET['mobkill'] == 1) {
} }
$rand_hp1 = rand(1, 10); $rand_hp1 = rand(1, 10);
$rand_hp = $rand_hp1 * $user['level']; $rand_hp = $rand_hp1 * $user['level'];
$bot = mysql_fetch_array(mysql_query("select * from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->room . "' LIMIT 1")); $bot = mysql_fetch_array(mysql_query("select * from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->getRoom() . "' LIMIT 1"));
$hels = $bot['bot_hp'] - $rand_hp; $hels = $bot['bot_hp'] - $rand_hp;
if ($hels < 0) { if ($hels < 0) {
echo "<b>Вы убили моба!</b><br>"; echo "<b>Вы убили моба!</b><br>";
@ -133,11 +133,11 @@ if ($_GET['mobkill'] == 1) {
echo "Вы получили 1 записку!<br>"; echo "Вы получили 1 записку!<br>";
Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'"); Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'");
} }
mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->room . "' LIMIT 1"); mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->getRoom() . "' LIMIT 1");
//если просто убивалка //если просто убивалка
} else { } else {
Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'"); Mysql_query("update `lab_user` set `zad" . $u_res['zadanie'] . "_kol`=`zad" . $u_res['zadanie'] . "_kol`+'1' where `id_user`='" . $user['id'] . "'");
mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->room . "' LIMIT 1"); mysql_query("delete from `lab_bots` where `id_bot`='" . $id . "' AND `id_user`='" . $user['id'] . "' AND `id_room`='" . $user->getRoom() . "' LIMIT 1");
} }
} else { } else {
echo "Вы отняли у моба -<b>" . $rand_hp . "</b> HP!<br>"; echo "Вы отняли у моба -<b>" . $rand_hp . "</b> HP!<br>";
@ -175,7 +175,7 @@ if ($_GET['exit'] && $room['exit'] == 1) {
if ($_GET['get']) { if ($_GET['get']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_inv` WHERE `id` = '" . mysql_real_escape_string($_GET['get']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_inv` WHERE `id` = '" . mysql_real_escape_string($_GET['get']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
switch ($data['type']) { switch ($data['type']) {
case 1: case 1:
@ -239,13 +239,13 @@ if ($_GET['get']) {
if ($_GET['drop']) { if ($_GET['drop']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($_GET['drop']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($_GET['drop']) . "' AND `id_user`='" . $user['id'] . "';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($data['id']) . "' AND `id_user`='" . $user['id'] . "' LIMIT 1;"); mysql_query("DELETE FROM `lab_tmp` WHERE `id` = '" . mysql_real_escape_string($data['id']) . "' AND `id_user`='" . $user['id'] . "' LIMIT 1;");
mysql_query("INSERT INTO `lab_inv` (`id_room`,`type`,`value`,`id_user`) values ('" . mysql_real_escape_string($user->room) . "','" . mysql_real_escape_string($data['type']) . "','" . mysql_real_escape_string($data['value']) . "','" . mysql_real_escape_string($user['id']) . "');"); mysql_query("INSERT INTO `lab_inv` (`id_room`,`type`,`value`,`id_user`) values ('" . mysql_real_escape_string($user->getRoom()) . "','" . mysql_real_escape_string($data['type']) . "','" . mysql_real_escape_string($data['value']) . "','" . mysql_real_escape_string($user['id']) . "');");
unset($data); unset($data);
} }
if ($_GET['nal1']) { if ($_GET['nal1']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal1']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal1']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='1';");
mysql_query("UPDATE `users` SET `money` = `money`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `money` = `money`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -257,7 +257,7 @@ if ($_GET['nal1']) {
if ($_GET['nal2']) { if ($_GET['nal2']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal2']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal2']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='3';");
mysql_query("UPDATE `users` SET `patriotizm` = `patriotizm`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `patriotizm` = `patriotizm`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -269,7 +269,7 @@ if ($_GET['nal2']) {
if ($_GET['nal3']) { if ($_GET['nal3']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal3']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal3']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='8';");
mysql_query("UPDATE `bank` SET `ekr` = `ekr`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `bank` SET `ekr` = `ekr`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -281,7 +281,7 @@ if ($_GET['nal3']) {
if ($_GET['nal4']) { if ($_GET['nal4']) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal4']) . "' AND `id_user`='" . $user['id'] . "';")); $data = mysql_fetch_array(mysql_query("SELECT * FROM `lab_bots` WHERE `id` = '" . mysql_real_escape_string($_GET['nal4']) . "' AND `id_user`='" . $user['id'] . "';"));
if ($data['id_room'] == $user->room) { if ($data['id_room'] == $user->getRoom()) {
$sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';")); $sum = mysql_fetch_array(mysql_query("SELECT SUM(`value`) FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';"));
mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';"); mysql_query("DELETE FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "' AND `type`='9';");
mysql_query("UPDATE `users` SET `exp` = `exp`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `exp` = `exp`+'" . mysql_real_escape_string($sum[0]) . "' WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
@ -297,28 +297,28 @@ if ($_GET['go']) {
switch ($_GET['go']) { switch ($_GET['go']) {
case "p1": case "p1":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p1']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p1']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p1']; $user->setRoom($room['p1']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
case "p2": case "p2":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p2']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p2']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p2']; $user->setRoom($room['p2']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
case "p3": case "p3":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p3']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p3']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p3']; $user->setRoom($room['p3']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
case "p4": case "p4":
mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p4']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';"); mysql_query("UPDATE `users` SET `room` = '" . mysql_real_escape_string($room['p4']) . "', `fullhptime` = " . time() . " WHERE `id` = '" . mysql_real_escape_string($user['id']) . "';");
$user->room = $room['p4']; $user->setRoom($room['p4']);
$_SESSION['time'] = time(); $_SESSION['time'] = time();
break; break;
} }
} }
$room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->room) . "';")); $room = mysql_fetch_array(mysql_query("SELECT * FROM `lab_rooms` WHERE `id` = '" . mysql_real_escape_string($user->getRoom()) . "';"));
if ($user['hp'] <= 0) { if ($user['hp'] <= 0) {
mysql_query("DELETE FROM `lab_trap` WHERE `id_user` = '" . $user['id'] . "'"); mysql_query("DELETE FROM `lab_trap` WHERE `id_user` = '" . $user['id'] . "'");
@ -333,12 +333,12 @@ if ($user['hp'] <= 0) {
} }
$data = mysql_query("SELECT * FROM `lab_inv` WHERE `id_room` = '" . mysql_real_escape_string($user->room) . "' AND `id_user`='" . $user['id'] . "';"); $data = mysql_query("SELECT * FROM `lab_inv` WHERE `id_room` = '" . mysql_real_escape_string($user->getRoom()) . "' AND `id_user`='" . $user['id'] . "';");
$data2 = mysql_query("SELECT * FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "';"); $data2 = mysql_query("SELECT * FROM `lab_tmp` WHERE `id_user` = '" . mysql_real_escape_string($user['id']) . "';");
$data3 = mysql_query("SELECT * FROM `users` WHERE `lab` = 1 AND `room` = '" . mysql_real_escape_string($room['id']) . "';"); $data3 = mysql_query("SELECT * FROM `users` WHERE `lab` = 1 AND `room` = '" . mysql_real_escape_string($room['id']) . "';");
$data4 = mysql_query("SELECT * FROM `lab_bots` WHERE `id_room` = '" . mysql_real_escape_string($room['id']) . "' AND `id_user`='" . $user['id'] . "';"); $data4 = mysql_query("SELECT * FROM `lab_bots` WHERE `id_room` = '" . mysql_real_escape_string($room['id']) . "' AND `id_user`='" . $user['id'] . "';");
$roow = mysql_fetch_array(mysql_query("SELECT * FROM `lab_trap` WHERE `id_room` = '" . mysql_real_escape_string($user->room) . "' AND `id_user`='" . $user['id'] . "';")); $roow = mysql_fetch_array(mysql_query("SELECT * FROM `lab_trap` WHERE `id_room` = '" . mysql_real_escape_string($user->getRoom()) . "' AND `id_user`='" . $user['id'] . "';"));
if ($roow[0]) { if ($roow[0]) {
$msg .= 'В комнате была установлена ловушка...<br>'; $msg .= 'В комнате была установлена ловушка...<br>';
@ -388,7 +388,7 @@ for ($i = 0; $i < mysql_num_rows($log); $i++) {
} }
echo "" . $room['name'] . " (" . $user->room . ")</tr>"; echo "" . $room['name'] . " (" . $user->getRoom() . ")</tr>";
echo "<tr><td><td><button style='width:50px; height:50px;' class='INPUT' disabled id=b1 onclick='location.href=\"lab.php?go=p1\";'>СЕВЕР</button><td><td rowspan=3 style='height:100px;'>&nbsp;<td rowspan=4 width=30% valign=top style='height:100px;'>"; echo "<tr><td><td><button style='width:50px; height:50px;' class='INPUT' disabled id=b1 onclick='location.href=\"lab.php?go=p1\";'>СЕВЕР</button><td><td rowspan=3 style='height:100px;'>&nbsp;<td rowspan=4 width=30% valign=top style='height:100px;'>";
$u_lab = mysql_query("select `login` from `users` where `lab`='1' and `bot`!='1'"); $u_lab = mysql_query("select `login` from `users` where `lab`='1' and `bot`!='1'");
$u_lab_kol = mysql_num_rows($u_lab); $u_lab_kol = mysql_num_rows($u_lab);

View File

@ -1,4 +1,7 @@
<?php <?php
use Battles\Template;
ob_start("ob_gzhandler"); ob_start("ob_gzhandler");
session_start(); session_start();
require_once "functions.php"; require_once "functions.php";
@ -294,7 +297,7 @@ if (isset($_GET['exitlaba'])) {
header('Location: labirint.php'); header('Location: labirint.php');
} }
} }
\Battles\Template::header('Вход в Лабиринты'); Template::header('Вход в Лабиринты');
?> ?>
<div style="float: right;"> <div style="float: right;">
<input type="button" onclick="location.href='lab_enter.php';" value="Обновить"> <input type="button" onclick="location.href='lab_enter.php';" value="Обновить">
@ -305,7 +308,7 @@ if (isset($_GET['exitlaba'])) {
</div> </div>
<? <?
if (isset($_GET['del_com'])) { if (isset($_GET['del_com'])) {
if ($user->admin) { if ($user->getAdmin()) {
mysql_query('UPDATE `laba_zv` SET `com` = "" WHERE `id` = "' . (int)$_GET['del_com'] . '" LIMIT 1'); mysql_query('UPDATE `laba_zv` SET `com` = "" WHERE `id` = "' . (int)$_GET['del_com'] . '" LIMIT 1');
$re = 'Комментарий удалён'; $re = 'Комментарий удалён';
} else { } else {
@ -397,7 +400,7 @@ while ($pl = mysql_fetch_array($sp)) {
} }
$userszv = ltrim($userszv, ', '); $userszv = ltrim($userszv, ', ');
if ($pl['com'] != '') { if ($pl['com'] != '') {
if ($user->admin) { if ($user->getAdmin()) {
$del = ' <a href=\'lab_enter.php?del_com=' . $pl['id'] . '\'>Удалить комментарий</a>'; $del = ' <a href=\'lab_enter.php?del_com=' . $pl['id'] . '\'>Удалить комментарий</a>';
} else { } else {
$del = ''; $del = '';
@ -417,7 +420,7 @@ while ($pl = mysql_fetch_array($sp)) {
<td valign="top"> <td valign="top">
<form id="from" autocomplete="off" name="from" <form id="from" autocomplete="off" name="from"
action="lab_enter.php?pz1=<? echo mt_rand(1000000, 99999999); ?>" method="post"> action="lab_enter.php?pz1=<? echo mt_rand(1000000, 99999999); ?>" method="post">
<fieldset style='padding-left: 5; width=50%'> <fieldset style='padding-left: 5px; width=50%'>
<legend><b> Группа </b></legend> <legend><b> Группа </b></legend>
Тип похода: Тип похода:
<select name="type_gors" style="margin-left:7px;" id="type_gors"> <select name="type_gors" style="margin-left:7px;" id="type_gors">

View File

@ -1,29 +0,0 @@
<?php
$us = mysql_fetch_array(mysql_query("SELECT *,(select `id` from `online` WHERE `date` >= ".(time()-60)." AND `id` = users.`id`) as `online` FROM `users` WHERE `login` = '".mysql_real_escape_string($_POST['target'])."' LIMIT 1;"));
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$us['id']}' and `type` = '21' LIMIT 1;"));
$int=101;
if ($user['battle'] > 0) {echo "Не в бою...";}
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Сила нейтралитета"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(1,100) < $int) {
addch("<img src=i/magic/al_neut_power.gif>Персонаж &quot;{$user['login']}&quot; наложил заклятие \"Сила нейтралитета\" на &quot;{$_POST['target']}&quot;, сроком 2 часа.");
$param_name=array("sila","lovk","inta","vinos");
$param_name=$param_name[array_rand($param_name)];
$param_value=rand(20,30);
$us = mysql_fetch_array(mysql_query("SELECT `id` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
mysql_query("INSERT INTO `effects` (`owner`,`name`,`time`,`{$param_name}`,`type`) values ('".(int)$us['id']."','Сила нейтралитета',".(time()+7200).",{$param_value},21);");
mysql_query("UPDATE `users` SET `{$param_name}`={$param_name}+{$param_value} WHERE `id`='{$us['id']}';");
echo "<font color=red><b>На персонажа \"{$_POST['target']}\" наложено заклятие \"Сила нейтралитета\" </b></font>";
$bet=1;
$outok=1;
} else {
echo "Свиток рассыпался в ваших руках...";
$bet=1;
}

View File

@ -36,7 +36,7 @@ if ($user['battle'] > 0) {
echo "Персонаж тяжело травмирован..."; echo "Персонаж тяжело травмирован...";
} elseif ($user['klan'] != '' && ($user['klan'] == $us['klan'])) { } elseif ($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] ==603 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] ==603 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -95,7 +95,7 @@ if ($user['battle'] > 0) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -158,7 +158,7 @@ if ($user['battle'] > 0) {
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -32,7 +32,7 @@ if($vip['bloodattack'] <= 0) {
echo "Персонаж тяжело травмирован..."; echo "Персонаж тяжело травмирован...";
} elseif($user['klan'] != '' && ($user['klan'] == $us['klan'])) { } elseif($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif($user->room != $us['room']) { } elseif($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] == 45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] == 45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -82,7 +82,7 @@ if($vip['bloodattack'] <= 0) {
$ttt = 1; $ttt = 1;
} }
addch("<b>".$los."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>.", $user->room); addch("<b>".$los."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>.", $user->getRoom());
if($user['invis'] == 1) { $lod = '<i><b>невидимка</b></i>'; } else { $lod = Nick::id($user['id'])->short(); } if($user['invis'] == 1) { $lod = '<i><b>невидимка</b></i>'; } else { $lod = Nick::id($user['id'])->short(); }
addlog($jert['battle'], '<span class=date>'.date("H:i").'</span> '.$lod.' вмешался в поединок!<BR>'); addlog($jert['battle'], '<span class=date>'.date("H:i").'</span> '.$lod.' вмешался в поединок!<BR>');
mysql_query('UPDATE `battle` SET `teams` = \''.serialize($battle).'\', `t'.$ttt.'` = CONCAT(`t'.$ttt.'`,\';'.$user['id'].'\'), `blood` = 1 WHERE `id` = "'.$jert['battle'].'" LIMIT 1'); mysql_query('UPDATE `battle` SET `teams` = \''.serialize($battle).'\', `t'.$ttt.'` = CONCAT(`t'.$ttt.'`,\';'.$user['id'].'\'), `blood` = 1 WHERE `id` = "'.$jert['battle'].'" LIMIT 1');
@ -121,7 +121,7 @@ if($vip['bloodattack'] <= 0) {
$ld = Nick::id($user['id'])->full(1); $ld = Nick::id($user['id'])->full(1);
$lds = Nick::id($user['id'])->short(); $lds = Nick::id($user['id'])->short();
$rr = "<b>".$ld."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".$ld."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <b>".$lds."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался.", $user->room); addch("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <b>".$lds."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался.", $user->getRoom());
addlog($id, "Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); addlog($id, "Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");
mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}"); mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}");
header("Location: fbattle.php"); header("Location: fbattle.php");

View File

@ -39,7 +39,7 @@ elseif (!$us['online']) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) { } elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев."; echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -106,7 +106,7 @@ elseif (!$us['online']) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -169,7 +169,7 @@ elseif (!$us['online']) {
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');");
addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -61,7 +61,7 @@ if ($user['battle'] > 0) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');

View File

@ -32,7 +32,7 @@ if ($user['battle'] > 0) {
echo "Персонаж под защитой от нападений ..."; echo "Персонаж под защитой от нападений ...";
} elseif ($owntravma['id'] && !$us['battle']) { } elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован..."; echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['level'] < 1) { } elseif ($us['level'] < 1) {
echo "Новички находятся под защитой Мироздателя!"; echo "Новички находятся под защитой Мироздателя!";
@ -81,7 +81,7 @@ if ($user['battle'] > 0) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch("<b>" . Nick::id($user['id'])->short() . "</b> вмешался в <a href=logs.php?log=" . $id . " target=_blank>поединок »»</a>. ", $user->room); addch("<b>" . Nick::id($user['id'])->short() . "</b> вмешался в <a href=logs.php?log=" . $id . " target=_blank>поединок »»</a>. ", $user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -146,7 +146,7 @@ if ($user['battle'] > 0) {
$rr = "<b>" . Nick::id($user['id'])->full(1) . "</b> и <b>" . Nick::id($jert['id'])->full(1) . "</b>"; $rr = "<b>" . Nick::id($user['id'])->full(1) . "</b> и <b>" . Nick::id($jert['id'])->full(1) . "</b>";
addch("<a href=logs.php?log=" . $id . " target=_blank>Бой</a> между <B><b>" . Nick::id($user['id'])->short() . "</b> и <b>" . Nick::id($jert['id'])->short() . "</b> начался. ", $user->room); addch("<a href=logs.php?log=" . $id . " target=_blank>Бой</a> между <B><b>" . Nick::id($user['id'])->short() . "</b> и <b>" . Nick::id($jert['id'])->short() . "</b> начался. ", $user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -39,7 +39,7 @@ elseif (!$us['online']) {
echo "Персонаж под защитой от нападений ..."; echo "Персонаж под защитой от нападений ...";
} elseif ($owntravma['id'] && !$us['battle']) { } elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован..."; echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -133,7 +133,7 @@ elseif (!$us['online']) {
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -39,7 +39,7 @@ if ($user['battle'] > 0) {
echo "Вы ожидаете поединка..."; echo "Вы ожидаете поединка...";
} elseif ($owntravma['id'] && !$us['battle']) { } elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован..."; echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -133,7 +133,7 @@ if ($user['battle'] > 0) {
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -39,7 +39,7 @@ elseif (!$us['online']) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) { } elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев."; echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -106,7 +106,7 @@ elseif (!$us['online']) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -169,7 +169,7 @@ elseif (!$us['online']) {
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');");
addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -9,7 +9,7 @@ $raid_t = mysql_fetch_array(mysql_query("SELECT * FROM variables WHERE var='raid
if ($user['battle'] == 0) { if ($user['battle'] == 0) {
echo "Это боевая магия..."; echo "Это боевая магия...";
} elseif ($user->room == 600 || $user->room == 601 || $user->room == 602 || $us['room'] == 43 || $us['room'] == 45) { } elseif ($user->getRoom() == 600 || $user->getRoom() == 601 || $user->getRoom() == 602 || $us['room'] == 43 || $us['room'] == 45) {
echo "В этой локации выход из боя запрещен!"; echo "В этой локации выход из боя запрещен!";
} elseif ($user['battle'] == $raid_t['value']) { } elseif ($user['battle'] == $raid_t['value']) {
echo "Вы защищаете весь город, а не только себя. Победа или смерть!"; echo "Вы защищаете весь город, а не только себя. Победа или смерть!";

View File

@ -24,7 +24,7 @@ elseif ($user['zayavka'] > 0) {
} elseif ($us['align']!=3) { } elseif ($us['align']!=3) {
echo "Персонаж не с темной склонностью!"; echo "Персонаж не с темной склонностью!";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -78,7 +78,7 @@ elseif ($user['zayavka'] > 0) {
} else { } else {
$ttt = 2; $ttt = 2;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -142,7 +142,7 @@ elseif ($user['zayavka'] > 0) {
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -1,39 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$target = $_POST['target'];
$tar = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$magictime = time() + 259200;
if ($tar['id']) {
if ($tar['klan'] || $tar['align']) {
echo "<font color=red><b>Персонаж \"$target\" состоит в клане, либо имеет склонность!</b></font>";
} else {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif ($user['align'] > '1.6' && $user['align'] < '2') {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("INSERT INTO `effects` (`owner`,`name`,`time`,`type`) values ('" . $tar['id'] . "','Проверка Паладинов','" . $magictime . "','20');")) {
$messtel = "Помечено, что персонаж чист перед законом";
$mess = "" . $user['login'] . " сделал пометку что " . $_POST['target'] . " чист перед законом";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
/*Тут была привязка к телеграфу*/
echo "<font color=red><b>Успешно поставлена проверка персонажу \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете поставить проверку!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,5 +1,5 @@
<?php <?php
if ($user->room == 20) { if ($user->getRoom() == 20) {
//нападение //нападение
$us = mysql_fetch_array(mysql_query("SELECT *,(select `id` from `online` WHERE `real_time` >= " . (time() - 60) . " AND `id` = users.`id`) as `online` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;")); $us = mysql_fetch_array(mysql_query("SELECT *,(select `id` from `online` WHERE `real_time` >= " . (time() - 60) . " AND `id` = users.`id`) as `online` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
@ -18,7 +18,7 @@ if ($user->room == 20) {
echo "Вы ожидаете поединка..."; echo "Вы ожидаете поединка...";
} elseif ($user['klan'] != '' && ($user['klan'] == $us['klan'])) { } elseif ($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['level'] < 3) { } elseif ($us['level'] < 3) {
echo "Нельзя напасть на персонажа ниже 3 уровня! Даже ночью, даже на Центральной площади..."; echo "Нельзя напасть на персонажа ниже 3 уровня! Даже ночью, даже на Центральной площади...";
@ -61,7 +61,7 @@ if ($user->room == 20) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch("<b>" . Nick::id($user['id'])->short() . "</b> вмешался в <a href=logs.php?log=" . $id . " target=_blank>поединок »»</a>. ", $user->room); addch("<b>" . Nick::id($user['id'])->short() . "</b> вмешался в <a href=logs.php?log=" . $id . " target=_blank>поединок »»</a>. ", $user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -125,7 +125,7 @@ if ($user->room == 20) {
$rr = "<b>" . Nick::id($user['id'])->full(1) . "</b> и <b>" . Nick::id($jert['id'])->full(1) . "</b>"; $rr = "<b>" . Nick::id($user['id'])->full(1) . "</b> и <b>" . Nick::id($jert['id'])->full(1) . "</b>";
addch("<a href=logs.php?log=" . $id . " target=_blank>Бой</a> между <B><b>" . Nick::id($user['id'])->short() . "</b> и <b>" . Nick::id($jert['id'])->short() . "</b> начался. ", $user->room); addch("<a href=logs.php?log=" . $id . " target=_blank>Бой</a> между <B><b>" . Nick::id($user['id'])->short() . "</b> и <b>" . Nick::id($jert['id'])->short() . "</b> начался. ", $user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -51,7 +51,7 @@ elseif (!$us['online']) {
echo "Вы ожидаете поединка..."; echo "Вы ожидаете поединка...";
} elseif ($owntravma['id'] && !$us['battle']) { } elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован..."; echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -106,7 +106,7 @@ elseif (!$us['online']) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -169,7 +169,7 @@ elseif (!$us['online']) {
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');");

View File

@ -1,87 +0,0 @@
<?php
$coma[] = "А вот раньше просто кляпом рот затыкали.";
$coma[] = "А еще раз можешь? ;)";
$coma[] = "А раньше все не так было ";
$coma[] = "А культурный человек сказал бы 'Заткнись, пожалуйста'";
$coma[] = "Безобразие куда цензура смотрит?";
$coma[] = "Бог сотворил землю, а Законник молчание!!!";
$coma[] = "Вечность? Это тоже единица измерения времени.";
$coma[] = "Вот и мне жена так же рот затыкает";
$coma[] = "В Клубе жесткие законы... Только не надо тосковать по беззаконью! ";
$coma[] = "Гнетущую тишину нарушает всеобщее молчание... ";
$coma[] = "Давно бы так ";
$coma[] = "Еще одним немым стало больше ";
$coma[] = "Жестоко, но справедливо ";
$coma[] = "Закон. И против него не попрешь.";
$coma[] = "Значит, есть еще порядок в этом мире ";
$coma[] = "И тишина...";
$coma[] = "Молчание - золото. Ощути себя богатым. ";
$coma[] = "Молчание не ценят, потому что оно достается на халяву... (с), но ему подарю с удовольствием!";
$coma[] = "Молчание - это своего рода инвалидность для болтунов.";
$coma[] = "Не надо злить нас!";
$coma[] = "Нет крика громче тишины... ";
$coma[] = "Ни ругнуться, ни ответить теперь.";
$coma[] = "Ну, как, дошло?";
$coma[] = "Ну, наконец-то!";
$coma[] = "О чем с этим человеком можно говорить, когда с ним и помолчать то не о чем! ";
$coma[] = "Он сказал лишнего.";
$coma[] = "Одна из ступеней развития слова - молчание.";
$coma[] = "Придется помолчать, чтобы тебя выслушали.";
$coma[] = "Прям как рыбка теперь, только рот открывается.";
$coma[] = "Семь раз подумай, один раз промолчи. ";
$coma[] = "Сначала было слово. Потом появилось молчание... ";
$coma[] = "Тебе повезло, что не навсегда. ";
$coma[] = "У вас есть право хранить молчание ";
$coma[] = "Цените слово потому, что каждое может стать последним. ";
$coma[] = "Это безмолвие становится все громче и громче… ";
$coma[] = "Это надо обдумать.";
$coma[] = "Это урок нам всем ";
$coma[] = "Я вас долго слушал, теперь у вас есть время подумать.";
$coma[] = "Я конечно не садист, но мне все это нравится ";
$coma[] = "Помолчи, за умного сойдешь. ";
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$target = mysql_real_escape_string($_POST['target']);
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$target}' LIMIT 1;"));
if ($tar['id']) {
{
$ok = 0;
if ($user['align'] == '2.99' && $tar['align'] == 0) {
$ok = 1;
} else echo("Персонаж " . $target . " уже имеет склонность!");
if ($ok == 1) {
if (mysql_query("UPDATE `users` set `align`=3 where `id` ='{$tar['id']}' LIMIT 1;")) {
$ldtarget = $target;
if ($user['sex'] == 1) {
$action = "присвоил";
} else {
$action = "присвоила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action Темную склонность &quot;$target&quot;";
$messch = "$angel &quot;{$user['login']}&quot; $action Темную склонность &quot;$target&quot;";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
echo "<font color=red><b>Успешно изменена склонность персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете менять склонность этого персонажа!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,57 +0,0 @@
<?php
$coma[] = "Вот так. Правду говорят, что словом убить можно. ";
$coma[] = "Вот такая трагическая и нелепая смерть. ";
$coma[] = "В аду жарко, возьми с собой предмет: 'Огнетушитель раскаяния'. Так... на память о Клубе. ";
$coma[] = "Вот теперь на кого-то наденут деревянный макинтош ";
$coma[] = "Все мы там будем ";
$coma[] = "Жестокий мир, жестокие сердца ";
$coma[] = "Жизнь коротка и быстротечна... успей понять это, нарушив Закон. ";
$coma[] = "Да и боец из него не очень... был... ";
$coma[] = "Кому тесно в рамках закона, будет нежиться в просторном гробу! ";
$coma[] = "Мы провожаем в последний путь... Мы провожаем... Черт, забыл, как там дальше. Аминь, короче. ";
$coma[] = "На кладбище ветер свищет, мертвый перс по полю рыщет. Место хочет отыскать, далеко его видать. ";
$coma[] = "На кладбище новоселье... ";
$coma[] = "Несчастные случаи и здесь бывают ";
$coma[] = "'Нет человека, нет проблем'. Иосиф Виссарионович Законников ";
$coma[] = "Надеюсь, он успел написать завещание ";
$coma[] = "Он был плохим солдатом ";
$coma[] = "Он не любил Бойцовский Квартал ";
$coma[] = "И разложится ее труп на нолики и единички, а затем съедят их черви, вирусы и трояны. ";
$coma[] = "Падай, ты убит! ";
$coma[] = "Теперь понятно, куда использовать мой старый венок";
$coma[] = "Трупы ходят по БК, их видать издалека! ";
$coma[] = "Хаос был бы для него раем... ";
$coma[] = "У меня тоже на кладбище место есть ";
$coma[] = "Я даже про него и не вспомню. ";
$coma[] = "В его доме будет играть музыка, но он ее не услышит";
$coma[] = "И разложится его труп на нолики и единички, а затем съедят их черви, вирусы и трояны.";
if (empty($_SESSION['uid']) || empty($_POST['target'])) {
header("Location: index.php");
}
$target = db::c()->query('SELECT id, align, block, level, admin FROM users WHERE login = "?s"', $_POST['target']);
$target['name'] = $_POST['target'];
if ($target->getNumRows()) {
if ($target['block'] == 1) {
echo "<b style='color: #8F0000;'>На персонаже уже есть заклятие смерти </b>";
} else {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3' && empty($target['admin'])) {
$message = "Персонаж {$target['name']} заблокирован! ({$user['login']})";
db::c()->query('UPDATE users SET block = 1 WHERE `id` =?i', $target['id']);
db::c()->query('INSERT INTO lichka(pers,text,date) VALUES (?i,"?s",?i)',$target['id'], $message, time());
db::c()->query('INSERT INTO paldelo(author,text,date) VALUES("?s","?s",?i)',$_SESSION['uid'], $message, time());
addch("<img src=i/magic/death.gif> $message");
addchp($coma[rand(0, count($coma) - 1)], "Комментатор");
echo "<b style='color: #008F00;'>Персонаж \"$target\" заблокирован.</b>";
} else {
echo "<b style='color: #8F0000;'>Запрещено!</b>";
}
}
} else {
echo "<b style='color: #8F0000;'>Персонаж не существует!</b>";
}

View File

@ -1,48 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align`,`block` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$target = $_POST['target'];
if ($tar['id']) {
if ($tar['block'] == 1) {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] == '1.99' && $user['align'] < '2') && ($tar['align'] > '1' && $tar['align'] < '2') && ($user['align'] > $tar['align'])) {
$ok = 1;
} elseif (($user['align'] == '1.99' && $user['align'] < '2') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("UPDATE `users` SET `palcom` = '',`block`='0' WHERE `id` = {$tar['id']} LIMIT 1;")) {
if ($user['sex'] == 1) {
$action = "снял";
} else {
$action = "сняла";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action заклятие смерти с &quot;$target&quot;..";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/death_off.gif> $mess");
echo "<font color=red><b>Успешно снято заклятие смерти с персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете снять заклятие смерти с этого персонажа!<b></font>";
}
} else {
echo "<font color=red><b>На персонаже \"$target\" нет заклятия смерти </b></font>";
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -13,7 +13,7 @@ if ($user['battle'] > 0) {echo "Не в бою...";}
elseif ($user['level'] < 4) { echo "Вашего уровня не достаточно для использования этого заклинания!"; } elseif ($user['level'] < 4) { echo "Вашего уровня не достаточно для использования этого заклинания!"; }
elseif ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; } elseif ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Защита от Оружия"; } elseif ($effect['time']) {echo "На персонаже уже есть заклятие Защита от Оружия"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; } elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";} elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(1,100) < $int) { elseif (rand(1,100) < $int) {

View File

@ -14,7 +14,7 @@ if ($user['battle'] > 0) {echo "Не в бою...";}
elseif ($user['level'] < 4) { echo "Вашего уровня не достаточно для использования этого заклинания!"; } elseif ($user['level'] < 4) { echo "Вашего уровня не достаточно для использования этого заклинания!"; }
elseif ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; } elseif ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Сокрушение"; } elseif ($effect['time']) {echo "На персонаже уже есть заклятие Сокрушение"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; } elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";} elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(1,100) < $int) { elseif (rand(1,100) < $int) {

View File

@ -1,92 +0,0 @@
<?php
// magic идентификацыя
//if (rand(1,2)==1) {
$coma[] = "А вот раньше просто кляпом рот затыкали.";
$coma[] = "А еще раз можешь? ;)";
$coma[] = "А раньше все не так было ";
$coma[] = "А культурный человек сказал бы 'Заткнись, пожалуйста'";
$coma[] = "Безобразие куда цензура смотрит?";
$coma[] = "Бог сотворил землю, а Законник молчание!!!";
$coma[] = "Вечность? Это тоже единица измерения времени.";
$coma[] = "Вот и мне жена так же рот затыкает";
$coma[] = "В Клубе жесткие законы... Только не надо тосковать по беззаконью! ";
$coma[] = "Гнетущую тишину нарушает всеобщее молчание... ";
$coma[] = "Давно бы так ";
$coma[] = "Еще одним немым стало больше ";
$coma[] = "Жестоко, но справедливо ";
$coma[] = "Закон. И против него не попрешь.";
$coma[] = "Значит, есть еще порядок в этом мире ";
$coma[] = "И тишина...";
$coma[] = "Молчание - золото. Ощути себя богатым. ";
$coma[] = "Молчание не ценят, потому что оно достается на халяву... (с), но ему подарю с удовольствием!";
$coma[] = "Молчание - это своего рода инвалидность для болтунов.";
$coma[] = "Не надо злить нас!";
$coma[] = "Нет крика громче тишины... ";
$coma[] = "Ни ругнуться, ни ответить теперь.";
$coma[] = "Ну, как, дошло?";
$coma[] = "Ну, наконец-то!";
$coma[] = "О чем с этим человеком можно говорить, когда с ним и помолчать то не о чем! ";
$coma[] = "Он сказал лишнего.";
$coma[] = "Одна из ступеней развития слова - молчание.";
$coma[] = "Придется помолчать, чтобы тебя выслушали.";
$coma[] = "Прям как рыбка теперь, только рот открывается.";
$coma[] = "Семь раз подумай, один раз промолчи. ";
$coma[] = "Сначала было слово. Потом появилось молчание... ";
$coma[] = "Тебе повезло, что не навсегда. ";
$coma[] = "У вас есть право хранить молчание ";
$coma[] = "Цените слово потому, что каждое может стать последним. ";
$coma[] = "Это безмолвие становится все громче и громче… ";
$coma[] = "Это надо обдумать.";
$coma[] = "Это урок нам всем ";
$coma[] = "Я вас долго слушал, теперь у вас есть время подумать.";
$coma[] = "Я конечно не садист, но мне все это нравится ";
$coma[] = "Помолчи, за умного сойдешь. ";
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$target = mysql_real_escape_string($_POST['target']);
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$target}' LIMIT 1;"));
if ($tar['id']) {
{
if ($tar['align'] == 0 && $user['align'] == 2.99) {
$ok = 1;
} else {
$ok = 0;
}
if ($ok == 1) {
if (mysql_query("UPDATE `users` SET `align` = 6 WHERE `id` ='{$tar['id']}' LIMIT 1")) {
$ldtarget = $target;
if ($user['sex'] == 1) {
$action = "присвоил";
} else {
$action = "присвоила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action Светлую склонность &quot;$target&quot;";
$messch = "$angel &quot;{$user['login']}&quot; $action Светлую склонность &quot;$target&quot;";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
echo "<font color=red><b>Успешно изменена склонность персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете менять склонность этого персонажа!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,90 +0,0 @@
<?php
// magic идентификацыя
//if (rand(1,2)==1) {
$coma[] = "А вот раньше просто кляпом рот затыкали.";
$coma[] = "А еще раз можешь? ;)";
$coma[] = "А раньше все не так было ";
$coma[] = "А культурный человек сказал бы 'Заткнись, пожалуйста'";
$coma[] = "Безобразие куда цензура смотрит?";
$coma[] = "Бог сотворил землю, а Законник молчание!!!";
$coma[] = "Вечность? Это тоже единица измерения времени.";
$coma[] = "Вот и мне жена так же рот затыкает";
$coma[] = "В Клубе жесткие законы... Только не надо тосковать по беззаконью! ";
$coma[] = "Гнетущую тишину нарушает всеобщее молчание... ";
$coma[] = "Давно бы так ";
$coma[] = "Еще одним немым стало больше ";
$coma[] = "Жестоко, но справедливо ";
$coma[] = "Закон. И против него не попрешь.";
$coma[] = "Значит, есть еще порядок в этом мире ";
$coma[] = "И тишина...";
$coma[] = "Молчание - золото. Ощути себя богатым. ";
$coma[] = "Молчание не ценят, потому что оно достается на халяву... (с), но ему подарю с удовольствием!";
$coma[] = "Молчание - это своего рода инвалидность для болтунов.";
$coma[] = "Не надо злить нас!";
$coma[] = "Нет крика громче тишины... ";
$coma[] = "Ни ругнуться, ни ответить теперь.";
$coma[] = "Ну, как, дошло?";
$coma[] = "Ну, наконец-то!";
$coma[] = "О чем с этим человеком можно говорить, когда с ним и помолчать то не о чем! ";
$coma[] = "Он сказал лишнего.";
$coma[] = "Одна из ступеней развития слова - молчание.";
$coma[] = "Придется помолчать, чтобы тебя выслушали.";
$coma[] = "Прям как рыбка теперь, только рот открывается.";
$coma[] = "Семь раз подумай, один раз промолчи. ";
$coma[] = "Сначала было слово. Потом появилось молчание... ";
$coma[] = "Тебе повезло, что не навсегда. ";
$coma[] = "У вас есть право хранить молчание ";
$coma[] = "Цените слово потому, что каждое может стать последним. ";
$coma[] = "Это безмолвие становится все громче и громче… ";
$coma[] = "Это надо обдумать.";
$coma[] = "Это урок нам всем ";
$coma[] = "Я вас долго слушал, теперь у вас есть время подумать.";
$coma[] = "Я конечно не садист, но мне все это нравится ";
$coma[] = "Помолчи, за умного сойдешь. ";
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$target = mysql_real_escape_string($_POST['target']);
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$target}' LIMIT 1;"));
if ($tar['id']) {
{
$ok = 0;
if ($user['align'] == '2.99' && $tar['align'] == 0) {
$ok = 1;
} else echo("Персонаж " . $target . " уже имеет склонность!");
if ($ok == 1) {
if (mysql_query("UPDATE `users` set `align`=2 where `id` ='{$tar['id']}' LIMIT 1")) {
$ldtarget = $target;
if ($user['sex'] == 1) {
$action = "присвоил";
} else {
$action = "присвоила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action Нейтральную склонность &quot;$target&quot;";
$messch = "$angel &quot;{$user['login']}&quot; $action Нейтральную склонность &quot;$target&quot;";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
echo "<font color=red><b>Успешно изменена склонность персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете менять склонность этого персонажа!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,49 +0,0 @@
<?php
$coma[] = "Бойтесь, нарушители!";
$coma[] = "Наша служба и опасна, и трудна!";
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$target = $_POST['target'];
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
if ($tar['id']) {
{
$ok = 0;
if ($tar['align'] == '0') {
$ok = 1;
} else echo("Персонаж " . $target . " уже имеет склонность!");
if ($ok == 1) {
if (mysql_query("UPDATE users set align='1.1' where id='{$tar['id']}';")) {
$ldtarget = $target;
if ($user['sex'] == 1) {
$action = "принял";
} else {
$action = "приняла";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action &quot;$target&quot; в стройные ряды Паладинов";
$messch = "$angel &quot;{$user['login']}&quot; $action &quot;$target&quot; в стройные ряды Паладинов";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
echo "<font color=red><b>Успешно принят рекрут \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете менять склонность этого персонажа!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -46,7 +46,7 @@ elseif ($user['zayavka'] > 0) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) { } elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев."; echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -111,7 +111,7 @@ elseif ($user['zayavka'] > 0) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -182,7 +182,7 @@ $outok=1;
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');");

View File

@ -46,7 +46,7 @@ elseif ($user['zayavka'] > 0) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) { } elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев."; echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) { } elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -111,7 +111,7 @@ elseif ($user['zayavka'] > 0) {
} else { } else {
$ttt = 1; $ttt = 1;
} }
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->room); addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].''); //mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
@ -182,7 +182,7 @@ $outok=1;
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room); addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');"); //mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');");
addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");

View File

@ -12,7 +12,7 @@ else {$int=0;}
if ($user['battle'] > 0) {echo "РќРµ РІ Р±РѕСЋ...";} if ($user['battle'] > 0) {echo "РќРµ РІ Р±РѕСЋ...";}
elseif ($user['level'] < 0) { echo "Вашего уровня не достаточно для использования этого заклинания!"; } elseif ($user['level'] < 0) { echo "Вашего уровня не достаточно для использования этого заклинания!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Эликсир брони +5"; } elseif ($effect['time']) {echo "На персонаже уже есть заклятие Эликсир брони +5"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; } elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";} elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(0,100) < $int) { elseif (rand(0,100) < $int) {

View File

@ -12,7 +12,7 @@
if ($user['battle'] > 0) {echo "РќРµ РІ Р±РѕСЋ...";} if ($user['battle'] > 0) {echo "РќРµ РІ Р±РѕСЋ...";}
elseif ($user['level'] < 0) { echo "Вашего уровня не достаточно для использования этого заклинания!"; } elseif ($user['level'] < 0) { echo "Вашего уровня не достаточно для использования этого заклинания!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Эликсир урона +3"; } elseif ($effect['time']) {echo "На персонаже уже есть заклятие Эликсир урона +3"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; } elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";} elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(0,100) < $int) { elseif (rand(0,100) < $int) {

View File

@ -7,7 +7,7 @@ $int=101;
if ($user['battle'] > 0) {echo "Не в бою...";} if ($user['battle'] > 0) {echo "Не в бою...";}
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Защита от кулачного нападения"; } elseif ($effect['time']) {echo "На персонаже уже есть заклятие Защита от кулачного нападения"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; } elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";} elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(1,100) < $int) { elseif (rand(1,100) < $int) {

View File

@ -1,168 +0,0 @@
<?php
$coma[] = "А жену мою отправь?!";
$coma[] = "Да, у него все равно в голове хаос был. ";
$coma[] = "Закон жесток, но справедлив!";
$coma[] = "Здесь будет править Закон, а не Хаос!";
$coma[] = "И с этим хаотиком я хотел дружить... ";
$coma[] = "Мне б жену туда же ";
$coma[] = "Не тыкайте в него пальцами, не надо!";
$coma[] = "С утра ждал этого момента";
$coma[] = "Тащите его сюда, где мое большое клеймо???";
$coma[] = "Теперь твои глазки голубыми не назовешь.";
$coma[] = "Тот, кто попирает закон ногами, не может прочно стоять на них.";
$coma[] = "Ходят тут всякие, а потом вещи пропадают. ";
$coma[] = "Хаос наступает ";
$coma[] = "С вещами на выход.";
$coma[] = "Законы надо соблюдать, клеймо рогатое!";
$coma[] = "Ай-яй-яй, какие люди среди нас! ";
$coma[] = "Присвойте ему номер, а то там такая неразбериха. ";
$coma[] = "Мда…. Надеюсь это не смертельно. ";
$coma[] = "Хвала Меру Города!";
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$magictime = time() + ($_POST['timer'] * 60 * 1440);
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$target = $_POST['target'];
if ($tar['id']) {
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$tar['id']}' and `type` = '4' LIMIT 1;"));
if ($effect['time']) {
$time_still = $effect['time'] - time();
$time_new = $magictime - time();
if ($time_still < $time_new) {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && ($tar['align'] > '1' && $tar['align'] < '2') && ($user['align'] > $tar['align'])) {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("UPDATE `effects` SET `time`='$magictime' WHERE `id` = '{$tar['id']}' LIMIT 1;")) {
$ldtarget = $target;
$ldblock = 1;
switch ($_POST['timer']) {
case "2":
$magictime = "два дня.";
break;
case "3":
$magictime = "три дня.";
break;
case "7":
$magictime = "неделя.";
break;
case "14":
$magictime = "две недели.";
break;
case "30":
$magictime = "месяц.";
break;
case "60":
$magictime = "два месяца.";
break;
case "365":
$magictime = "бессрочно.";
break;
}
if ($user['sex'] == 1) {
$action = "отправил";
} else {
$action = "отправила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "Продление хаоса. $angel &quot;{$user['login']}&quot; $action в хаос &quot;$target&quot; сроком $magictime";
$messch = "Продление хаоса. $angel &quot;{$user['login']}&quot; $action в хаос &quot;$target&quot; сроком $magictime.";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/haos.gif> $messch");
addchp($coma[rand(0, count($coma) - 1)], "Комментатор");
echo "<font color=red><b>Успешно наложено заклятие хаоса на персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете наложить заклятие хаоса на этого персонажа!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете сократить срок наказания!</b></font>";
}
} else {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && ($tar['align'] > '1' && $tar['align'] < '2') && ($user['align'] > $tar['align'])) {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("INSERT INTO `effects` (`owner`,`name`,`time`,`type`) values ('" . $tar['id'] . "','Заклятие хаоса','$magictime',4);")) {
mysql_query("UPDATE `users` SET `align`='4', klan='', status='' WHERE `id` = {$tar['id']} LIMIT 1;");
mysql_query("DELETE FROM `effects` where `type`='20' AND 'owner'= '{$tar['id']}' LIMIT 1;");
$ldtarget = $target;
$ldblock = 1;
switch ($_POST['timer']) {
case "2":
$magictime = "два дня.";
break;
case "3":
$magictime = "три дня.";
break;
case "7":
$magictime = "неделя.";
break;
case "14":
$magictime = "две недели.";
break;
case "30":
$magictime = "месяц.";
break;
case "60":
$magictime = "два месяца.";
break;
case "365":
$magictime = "бессрочно.";
break;
}
if ($user['sex'] == 1) {
$action = "отправил";
} else {
$action = "отправила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action в хаос &quot;$target&quot; сроком $magictime";
$messch = "$angel &quot;{$user['login']}&quot; $action в хаос &quot;$target&quot; сроком $magictime.";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/haos.gif> $messch");
addchp($coma[rand(0, count($coma) - 1)], "Комментатор");
echo "<font color=red><b>Успешно наложено заклятие хаоса на персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете наложить заклятие хаоса на этого персонажа!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,45 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$target = $_POST['target'];
if ($tar['id']) {
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$tar['id']}' and `type` = '4' LIMIT 1;"));
if ($effect['time']) {
$ok = 0;
if (($user['align'] > '2' && $user['align'] < '3') || ($user['align'] == '1.99') || ($user['align'] == '1.98')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("DELETE FROM `effects` WHERE `owner` = '{$tar['id']}' and `type` = '4' LIMIT 1 ;")) {
mysql_query("UPDATE `users` SET `palcom` = '',`align`='0' WHERE `id` = {$tar['id']} LIMIT 1;");
if ($user['sex'] == 1) {
$action = "выпустил";
} else {
$action = "выпустила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action из хаоса &quot;$target&quot;..";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/haos_off.gif> $mess");
echo "<font color=red><b>Успешно снято заклятие хаоса с персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете снять заклятие хаоса с этого персонажа!<b></font>";
}
} else {
echo "<font color=red><b>На персонаже \"$target\" нет заклятия хаоса </b></font>";
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,50 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
}
$tar = mysql_fetch_array(mysql_query("SELECT `id`, `align` FROM `users` WHERE `login` = '" . mysql_real_escape_string($_POST['ldnick']) . "' LIMIT 1"));
$target = $_POST['ldnick'];
if ($tar['id']) {
$ok = 0;
$arr = ['1.1', '1.7', '1.75', '1.91', '1.98', '1.99', '2.99'];
if (in_array($user['align'], $arr)) {
$ok = 1;
}
if ($ok == 1) {
if ($_POST['red']) {
if (!$_POST['ldtext']) {
$pal = '';
} else {
$date_today = date("m.d.y H:i");
$pal = $date_today . " " . $_POST['ldtext'];
}
if (mysql_query("UPDATE `users` SET `palcom` = '$pal' WHERE `id` = {$tar['id']} LIMIT 1;")) {
$mess = "Сообщение от " . $user['login'] . ": " . $_POST['ldtext'];
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
$mess = "Изменена причина отправки в хаос/блокировки &quot;{$_POST['ldnick']}&quot;: $mess";
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
echo "<font color=red><b>Успешно изменена причина отправки в хаос/блокировки персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
$mess = "Сообщение от " . $user['login'] . ": " . $_POST['ldtext'];
if (mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');")) {
$mess = "Добавлена запись в дело &quot;{$_POST['ldnick']}&quot;: $mess";
mysql_query("INSERT INTO `paldelo`(`author`,`text`,`date`) VALUES ('" . $_SESSION['uid'] . "','$mess','" . time() . "');");
echo "<font color=red><b>Успешно добавлена запись в дело игрока \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
}
} else {
echo "<font color=red><b>Вы не можете добавить запись в дело этого персонажа!<b></font>";
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -33,7 +33,7 @@ if ($user['battle'] > 0) {echo "Не в бою...";}
elseif ($user['level'] < 4) { echo "Вашего уровня не достаточно для использования этого заклинания!"; } elseif ($user['level'] < 4) { echo "Вашего уровня не достаточно для использования этого заклинания!"; }
elseif ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; } elseif ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Удача"; } elseif ($effect['time']) {echo "На персонаже уже есть заклятие Удача"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; } elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";} elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(1,100) < $int) { elseif (rand(1,100) < $int) {

View File

@ -1,30 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$u1 = filter_input(INPUT_POST, 'target');
$u2 = filter_input(INPUT_POST, 'target1');
$u1Row = db::c()->query('SELECT `id`,`married`,`login` FROM `users` WHERE `login` = "?s"', $u1)->fetch_assoc();
$u2Row = db::c()->query('SELECT `id`,`married`,`login` FROM `users` WHERE `login` = "?s"', $u2)->fetch_assoc();
if ($u1Row['id'] and $u2Row['id']) {
if ($u1Row['married']) {
$status = "Персонаж {$u1Row['login']} уже состоит в браке!";
} elseif ($u2Row['married']) {
$status = "Персонаж {$u2Row['login']} уже состоит в браке!";
} else {
if ($user['align'] > '1.6' && $user['align'] < '2') {
db::c()->query('UPDATE `users` SET `married`= "?s" WHERE `id` = ?i', $u2Row['login'], $u1Row['id']);
db::c()->query('UPDATE `users` SET `married`= "?s" WHERE `id` = ?i', $u1Row['login'], $u2Row['id']);
$status = "Регистрация брака между «{$u1Row['login']}» и «{$u2Row['login']}», регистратор «{$user['login']}».";
} else {
$status = "Вы не можете зарегистрировать брак!";
}
}
} else {
$status = "Ошибка! Персонаж {$u1} или {$u2} не существует!";
}
if (!empty($status)) err($status);

View File

@ -1,74 +0,0 @@
<?php
$coma[] = "Я и не вспомню как его зовут... ";
if ($_SESSION['uid'] == null) {
header("Location: index.php");
$magictime = time() + ($_POST['timer'] * 60 * 1440);
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$target = $_POST['target'];
if ($tar['id']) {
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$tar['id']}' and `type` = '5' LIMIT 1;"));
if ($effect['time']) {
echo "<font color=red><b>На персонаже \"$target\" уже есть заклятие обезличивания </b></font>";
} else {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && ($tar['align'] > '1' && $tar['align'] < '2') && ($user['align'] > $tar['align'])) {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("INSERT INTO `effects` (`owner`,`name`,`time`,`type`) values ('" . $tar['id'] . "','Заклятие обезличивания','$magictime',5);")) {
$ldtarget = $target;
switch ($_POST['timer']) {
case "2":
$magictime = "два дня.";
break;
case "3":
$magictime = "три дня.";
break;
case "14":
$magictime = "две недели.";
break;
case "30":
$magictime = "месяц.";
break;
case "60":
$magictime = "два месяца.";
break;
case "365":
$magictime = "бессрочно.";
break;
}
if ($user['sex'] == 1) {
$action = "наложил";
} else {
$action = "наложила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action заклятие обезличивания на &quot;$target&quot; сроком $magictime";
$messch = "$angel &quot;{$user['login']}&quot; $action заклятие обезличивания на &quot;$target&quot; сроком $magictime.";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/obezl.gif> $messch");
addchp($coma[rand(0, count($coma) - 1)], "Комментатор");
echo "<font color=red><b>Успешно наложено заклятие обезличивания на персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете наложить заклятие обезличивания на этого персонажа!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,48 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$target = $_POST['target'];
if ($tar['id']) {
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$tar['id']}' and `type` = '5' LIMIT 1;"));
if ($effect['time']) {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && ($tar['align'] > '1' && $tar['align'] < '2') && ($user['align'] > $tar['align'])) {
$ok = 1;
} elseif (($user['align'] > '1.6' && $user['align'] < '2') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("DELETE FROM`effects` WHERE `owner` = '{$tar['id']}' and `type` = '5' LIMIT 1 ;")) {
if ($user['sex'] == 1) {
$action = "снял";
} else {
$action = "сняла";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action заклятие обезличивания с &quot;$target&quot;.";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/obezl_off.gif> $mess");
echo "<font color=red><b>Успешно снято заклятие обезличивания с персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете снять заклятие обезличивания с этого персонажа!<b></font>";
}
} else {
echo "<font color=red><b>На персонаже \"$target\" нет заклятия обезличивания </b></font>";
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,45 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$target = $_POST['target'];
if ($tar['id']) {
if ($tar['align'] > '1' && $tar['align'] < '2') {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] == '1.99') && ($tar['align'] != '1.99')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("UPDATE `users` SET `align`='0' WHERE `id` = {$tar['id']} LIMIT 1;")) {
if ($user['sex'] == 1) {
$action = "лишил";
} else {
$action = "лишила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action &quot;$target&quot; звания &quot;Паладина&quot;.";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
echo "<font color=red><b>Персонаж \"$target\" лишен звания \"Паладина\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете снять крест этого персонажа!<b></font>";
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не состоит в Ордене </b></font>";
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -25,7 +25,7 @@ if($vip['pers_attack'] <= 0) {
echo "Персонаж тяжело травмирован..."; echo "Персонаж тяжело травмирован...";
} elseif($user['klan'] != '' && ($user['klan'] == $us['klan'])) { } elseif($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов."; echo "Чтите честь ваших сокланов.";
} elseif($user->room != $us['room']) { } elseif($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!"; echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] == 45) { } elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] == 45) {
echo "Нападения в этой локации запрещены!"; echo "Нападения в этой локации запрещены!";
@ -76,7 +76,7 @@ if($vip['pers_attack'] <= 0) {
$ttt = 1; $ttt = 1;
} }
addch("<b>".$los."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>.", $user->room); addch("<b>".$los."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>.", $user->getRoom());
if($user['invis'] == 1) { $lod = '<i><b>невидимка</b></i>'; } else { $lod = Nick::id($user['id'])->short(); } if($user['invis'] == 1) { $lod = '<i><b>невидимка</b></i>'; } else { $lod = Nick::id($user['id'])->short(); }
addlog($jert['battle'], '<span class=date>'.date("H:i").'</span> '.$lod.' вмешался в поединок!<BR>'); addlog($jert['battle'], '<span class=date>'.date("H:i").'</span> '.$lod.' вмешался в поединок!<BR>');
mysql_query('UPDATE `battle` SET `teams` = \''.serialize($battle).'\', `t'.$ttt.'` = CONCAT(`t'.$ttt.'`,\';'.$user['id'].'\'), `blood` = 1 WHERE `id` = "'.$jert['battle'].'" LIMIT 1'); mysql_query('UPDATE `battle` SET `teams` = \''.serialize($battle).'\', `t'.$ttt.'` = CONCAT(`t'.$ttt.'`,\';'.$user['id'].'\'), `blood` = 1 WHERE `id` = "'.$jert['battle'].'" LIMIT 1');
@ -115,7 +115,7 @@ if($vip['pers_attack'] <= 0) {
$ld = Nick::id($user['id'])->full(1); $ld = Nick::id($user['id'])->full(1);
$lds = Nick::id($user['id'])->short(); $lds = Nick::id($user['id'])->short();
$rr = "<b>".$ld."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>"; $rr = "<b>".$ld."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <b>".$lds."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался.", $user->room); addch("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <b>".$lds."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался.", $user->getRoom());
addlog($id, "Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>"); addlog($id, "Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");
mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}"); mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}");
header("Location: fbattle.php"); header("Location: fbattle.php");

View File

@ -1,120 +0,0 @@
<?php
$coma[] = "А вот раньше просто кляпом рот затыкали.";
$coma[] = "А еще раз можешь? ;)";
$coma[] = "А раньше все не так было ";
$coma[] = "А культурный человек сказал бы 'Заткнись, пожалуйста'";
$coma[] = "Безобразие куда цензура смотрит?";
$coma[] = "Бог сотворил землю, а Законник молчание!!!";
$coma[] = "Вечность? Это тоже единица измерения времени.";
$coma[] = "Вот и мне жена так же рот затыкает";
$coma[] = "В Клубе жесткие законы... Только не надо тосковать по беззаконью! ";
$coma[] = "Гнетущую тишину нарушает всеобщее молчание... ";
$coma[] = "Давно бы так ";
$coma[] = "Еще одним немым стало больше ";
$coma[] = "Жестоко, но справедливо ";
$coma[] = "Закон. И против него не попрешь.";
$coma[] = "Значит, есть еще порядок в этом мире ";
$coma[] = "И тишина...";
$coma[] = "Молчание - золото. Ощути себя богатым. ";
$coma[] = "Молчание не ценят, потому что оно достается на халяву... (с), но ему подарю с удовольствием!";
$coma[] = "Молчание - это своего рода инвалидность для болтунов.";
$coma[] = "Не надо злить нас!";
$coma[] = "Нет крика громче тишины... ";
$coma[] = "Ни ругнуться, ни ответить теперь.";
$coma[] = "Ну, как, дошло?";
$coma[] = "Ну, наконец-то!";
$coma[] = "О чем с этим человеком можно говорить, когда с ним и помолчать то не о чем! ";
$coma[] = "Он сказал лишнего.";
$coma[] = "Одна из ступеней развития слова - молчание.";
$coma[] = "Придется помолчать, чтобы тебя выслушали.";
$coma[] = "Прям как рыбка теперь, только рот открывается.";
$coma[] = "Семь раз подумай, один раз промолчи. ";
$coma[] = "Сначала было слово. Потом появилось молчание... ";
$coma[] = "Тебе повезло, что не навсегда. ";
$coma[] = "У вас есть право хранить молчание ";
$coma[] = "Цените слово потому, что каждое может стать последним. ";
$coma[] = "Это безмолвие становится все громче и громче… ";
$coma[] = "Это надо обдумать.";
$coma[] = "Это урок нам всем ";
$coma[] = "Я вас долго слушал, теперь у вас есть время подумать.";
$coma[] = "Я конечно не садист, но мне все это нравится ";
$coma[] = "Помолчи, за умного сойдешь. ";
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
$magictime = time() + ($_POST['timer'] * 60);
$target = $_POST['target'];
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
if ($tar['id']) {
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$tar['id']}' and `type` = '2' LIMIT 1;"));
if ($effect['time']) {
echo "<font color=red><b>На персонаже \"$target\" уже есть заклятие молчания </b></font>";
} else {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] > '1' && $user['align'] < '2') && ($tar['align'] > '1' && $tar['align'] < '2') && ($user['align'] > $tar['align'])) {
$ok = 1;
} elseif (($user['align'] > '1' && $user['align'] < '2') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
} elseif (($user['align'] > '7' && $user['align'] < '8') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("INSERT INTO `effects` (`owner`,`name`,`time`,`type`) values ('" . $tar['id'] . "','Заклятие молчания','$magictime',2);")) {
$ldtarget = $target;
switch ($_POST['timer']) {
case "15":
$magictime = "15 мин.";
break;
case "30":
$magictime = "30 мин.";
break;
case "60":
$magictime = "1 час.";
break;
case "180":
$magictime = "3 часа.";
break;
case "360":
$magictime = "6 часов.";
break;
case "720":
$magictime = "12 часов.";
break;
case "1440":
$magictime = "1 сутки.";
break;
}
if ($user['sex'] == 1) {
$action = "наложил";
} else {
$action = "наложила";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action заклятие молчания на &quot;$target&quot; сроком $magictime";
$messch = "$angel &quot;{$user['login']}&quot; $action заклятие молчания на &quot;$target&quot; сроком $magictime";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/sleep.gif> $messch");
addchp($coma[rand(0, count($coma) - 1)], "Комментатор");
echo "<font color=red><b>Успешно наложено заклятие молчания на персонажа \"$target\"</b></font>";
$outok = 1;
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете наложить заклятие молчания на этого персонажа!<b></font>";
}
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}

View File

@ -1,34 +0,0 @@
<?php
$us = mysql_fetch_array(mysql_query("SELECT *,(select `id` from `online` WHERE `date` >= ".(time()-60)." AND `id` = users.`id`) as `online` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$magic = mysql_fetch_array(mysql_query("SELECT `chanse` FROM `magic` WHERE `id` = '14' ;"));
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$us['id']}' and `type` = '2' LIMIT 1;"));
if ($user['intel'] >= 1) {
$int=$magic['chanse'] + ($user['intel'] - 1)*3;
if ($int>98){$int=99;}
}
else {$int=0;}
if ($user['battle'] > 0) {echo "Не в бою...";}
elseif (($user->room > 2000) && ($user->room < 2100)) {echo "Не в Проходе...";}
elseif ($effect['time']) {echo "На персонаже уже есть заклятие молчания"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (($user['level'] < $us['level']) && ($user['align'] < 1) && ($user['align'] > 2.99)) { echo "Накладывать молчанку можно только на игрока равного или младшего уровнем!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif ($us['deal'] == 1) { echo "Вы не можете наложить заклятие молчания на этого персонажа"; }
elseif ($us['align'] > 2 && $us['align'] < 3) { echo "Решились поднять руку на Ангела?.."; }
elseif (rand(1,100) < $int) {
addch("<img src=i/magic/sleep.gif>Персонаж &quot;{$user['login']}&quot; наложил заклятие молчания на &quot;{$_POST['target']}&quot;, сроком 15 мин.");
$user = mysql_fetch_array(mysql_query("SELECT `id` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
mysql_query("INSERT INTO `effects` (`owner`,`name`,`time`,`type`) values ('".$user['id']."','Заклятие молчания',".(time()+900).",2);");
echo "<font color=red><b>На персонажа \"{$_POST['target']}\" наложено заклятие молчания </b></font>";
$bet=1;
} else {
echo "Свиток рассыпался в ваших руках...";
$bet=1;
}

View File

@ -1,34 +0,0 @@
<?php
$us = mysql_fetch_array(mysql_query("SELECT *,(select `id` from `online` WHERE `date` >= ".(time()-60)." AND `id` = users.`id`) as `online` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$magic = mysql_fetch_array(mysql_query("SELECT `chanse` FROM `magic` WHERE `id` = '15' ;"));
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$us['id']}' and `type` = '2' LIMIT 1;"));
if ($user['intel'] >= 1) {
$int=$magic['chanse'] + ($user['intel'] - 1)*3;
if ($int>98){$int=99;}
}
else {$int=0;}
if ($user['battle'] > 0) {echo "Не в бою...";}
elseif (($user->room > 2000) && ($user->room < 2100)) {echo "Не в Проходе...";}
elseif ($effect['time']) {echo "На персонаже уже есть заклятие молчания"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (($user['level'] < $us['level']) && ($user['align'] < 1) && ($user['align'] > 2.99)) { echo "Накладывать молчанку можно только на игрока равного или младшего уровнем!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif ($us['deal'] == 1) { echo "Вы не можете наложить заклятие молчания на этого персонажа"; }
elseif ($us['align'] > 2 && $us['align'] < 3) { echo "Решились поднять руку на Ангела?.."; }
elseif (rand(1,100) < $int) {
addch("<img src=i/magic/sleep.gif>Персонаж &quot;{$user['login']}&quot; наложил заклятие молчания на &quot;{$_POST['target']}&quot;, сроком 30 мин.");
$user = mysql_fetch_array(mysql_query("SELECT `id` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
mysql_query("INSERT INTO `effects` (`owner`,`name`,`time`,`type`) values ('".$user['id']."','Заклятие молчания',".(time()+1800).",2);");
echo "<font color=red><b>На персонажа \"{$_POST['target']}\" наложено заклятие молчания </b></font>";
$bet=1;
} else {
echo "Свиток рассыпался в ваших руках...";
$bet=1;
}

View File

@ -1,52 +0,0 @@
<?php
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
if (($user->room > 2000) && ($user->room < 2100)) {
echo "Не в Проходе...";
} else {
$tar = mysql_fetch_array(mysql_query("SELECT `id`,`align` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$target = $_POST['target'];
if ($tar['id']) {
$effect = mysql_fetch_array(mysql_query("SELECT `time` FROM `effects` WHERE `owner` = '{$tar['id']}' and `type` = '2' LIMIT 1;"));
if ($effect['time']) {
$ok = 0;
if ($user['align'] > '2' && $user['align'] < '3') {
$ok = 1;
} elseif (($user['align'] > '1' && $user['align'] < '2') && ($tar['align'] > '1' && $tar['align'] < '2') && ($user['align'] > $tar['align'])) {
$ok = 1;
} elseif (($user['align'] > '1' && $user['align'] < '2') && !($tar['align'] > '2' && $tar['align'] < '3') && !($tar['align'] > '1' && $tar['align'] < '2')) {
$ok = 1;
}
if ($ok == 1) {
if (mysql_query("DELETE FROM`effects` WHERE `owner` = '{$tar['id']}' and `type` = '2' LIMIT 1 ;")) {
if ($user['sex'] == 1) {
$action = "снял";
} else {
$action = "сняла";
}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel = "Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel = "Паладин";
}
$mess = "$angel &quot;{$user['login']}&quot; $action заклятие молчания с &quot;$target&quot;.";
mysql_query("INSERT INTO `lichka`(`id`,`pers`,`text`,`date`) VALUES ('','" . $tar['id'] . "','$mess','" . time() . "');");
mysql_query("INSERT INTO `paldelo`(`id`,`author`,`text`,`date`) VALUES ('','" . $_SESSION['uid'] . "','$mess','" . time() . "');");
addch("<img src=i/magic/sleep_off.gif> $mess");
echo "<font color=red><b>Успешно снято заклятие молчания с персонажа \"$target\"</b></font>";
} else {
echo "<font color=red><b>Произошла ошибка!<b></font>";
}
} else {
echo "<font color=red><b>Вы не можете снять заклятие молчания с этого персонажа!<b></font>";
}
} else {
echo "<font color=red><b>На персонаже \"$target\" нет заклятия молчания </b></font>";
}
} else {
echo "<font color=red><b>Персонаж \"$target\" не существует!<b></font>";
}
}

Some files were not shown because too many files have changed in this diff Show More