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();
require_once "../functions.php";
if (!$user->admin) {
$user = $user ?? new User($_SESSION['uid']);
if (!$user->getAdmin()) {
header("HTTP/1.0 404 Not Found");
exit;
}

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,12 @@
<?php
use Battles\Template;
use Battles\User;
session_start();
require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']);
if ($user->room == 403) {
$user = $user ?? new User($_SESSION['uid']);
if ($user->getRoom() == 403) {
include "startpodzemel.php";
if ($_GET['act'] == "cexit") {
$das = mysql_query("select glava,glav_id from `labirint` where user_id='" . $user['id'] . "'");
@ -37,7 +41,7 @@ if ($user->room == 403) {
'Ключик №9',
'Ключик №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'] . "'");
@ -50,11 +54,11 @@ if ($user->room == 403) {
{
$frt = mysql_query("select user_id from `labirint` where glava='" . $glava . "'");
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']}'");
$mir = mysql_fetch_array($ros);

View File

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

View File

@ -1,4 +1,7 @@
<?php
use Battles\Template;
session_start();
require_once 'functions.php';
//require_once 'cave/cave_bots.php';
@ -284,15 +287,15 @@ function makedeath()
{
global $user, $floor, $loses, $x, $y, $dir;
$cavedata = Config::$cavedata ?? [];
if (!isset($cavedata[$user->room]['x' . $floor])) {
if (!isset($cavedata[$user->getRoom()]['x' . $floor])) {
$floor = 1;
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');
$x = $cavedata[$user->room]['x' . $floor];
$y = $cavedata[$user->room]['y' . $floor];
$dir = $cavedata[$user->room]['dir' . $floor];
$x = $cavedata[$user->getRoom()]['x' . $floor];
$y = $cavedata[$user->getRoom()]['y' . $floor];
$dir = $cavedata[$user->getRoom()]['dir' . $floor];
updparties();
$loses++;
}
@ -463,7 +466,7 @@ while ($rec = mysql_fetch_assoc($r)) {
$party[] = $rec;
}
if ($user->room == 621) {
if ($user->getRoom() == 621) {
$base = "/underdesigns/alchcave";
}
@ -544,8 +547,8 @@ if ($_GET['useitem']) {
$ty = $y + 1;
}
if (@$_GET['useitem']) {
if (file_exists("underground/objects/$user->room.php")) {
include "underground/objects/$user->room.php";
if (file_exists("underground/objects/$user->getRoom().php")) {
include "underground/objects/$user->getRoom().php";
}
}
@ -641,7 +644,7 @@ if ($wander && !isset($_GET['attack'])) {
$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]) {
break;
}
@ -709,8 +712,8 @@ if ($moved && (substr($map[$y * 2][$x * 2], 0, 1) === "e" || substr($map[$y * 2]
$tx = $x;
$ty = $y;
$tmp = explode("/", $map[$y * 2][$x * 2]);
if (file_exists("underground/events/$user->room.php")) {
include("underground/events/$user->room.php");
if (file_exists("underground/events/$user->getRoom().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) {
$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) {
$dir1 = 0;
} elseif ($ax > $x) {
@ -899,14 +902,14 @@ if (@$_GET['exit']) {
}
}
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];
foreach ($party as $k => $v) {
$map[$v['y'] * 2][$v['x'] * 2] = "u/" . $v['user'];
}
\Battles\Template::header('cave');
Template::header('cave');
?>
<style>
body {
@ -1467,9 +1470,9 @@ function drawmap($map1, $players, $x, $y, $direction)
$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)) . ";" : "") . "\" />";
} 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)) . ";" : "") . "\" />";
@ -1559,7 +1562,7 @@ function drawmap($map1, $players, $x, $y, $direction)
$left = $imgdata[$x][$y]["x"][1];
$top = $imgdata[$x][$y]["y"] + $ht;
}
$rrm = $user->room;
$rrm = $user->getRoom();
if (!isset($imgmap[$obj])) {
$ret .= "
@ -1604,7 +1607,7 @@ function drawmap($map1, $players, $x, $y, $direction)
$left = $imgdata[$x][$y]["x"][1];
$top = $imgdata[$x][$y]["y"] + $ht;
}
$rrm = $user->room;
$rrm = $user->getRoom();
if (!isset($imgmap[$obj])) {
$ret .= "
" . ($y == 1 && $x == 3 ? "<a href=\"cave.php?useitem=1\">" : "") . "
@ -1675,7 +1678,7 @@ function drawmap($map1, $players, $x, $y, $direction)
}
} else {
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) {
$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]);
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);
}
}
@ -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>
<td background=\"/i/bg_scroll_05.gif\" nowrap style=\"font-size:9px\">
<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\">";
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>
<div style="text-align:right;padding-right:30px">
<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];
$tmp = explode("/", $cPlace);
if ($user->room == 621) {
if ($user->getRoom() == 621) {
if ($floor == 1) {
echo 'Проклятый Рудник, 1 этаж';
} elseif ($floor == 2) {

107
ch.php
View File

@ -1,12 +1,15 @@
<?php
use Battles\Template;
session_start();
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']);
if (isset($_GET['online']) && $_GET['online'] != null) {
if ($_GET['room'] && (int)$_GET['room'] < 500) {
$user->room = (int)$_GET['room'];
$user->setRoom($_GET['room']);
}
if ($u->i()['caveleader'] > 0) {
$data = db::c()->query('
@ -32,13 +35,13 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
ORDER BY
`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';
$ch2 = '_passive';
$ch3 = '_passive';
$ch4 = '_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();
$sp = db::c()->query('SELECT `id`, `room`, `user` FROM `forest` WHERE `room` = "' . $forest['room'] . '"');
while ($pl = $sp->fetch_assoc()) {
@ -97,18 +100,18 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
WHERE
`o`.`id` = `u`.`id` AND
(`o`.`date` >= ' . (time() - 90) . ' OR `u`.`in_tower` = 1) AND
`o`.`room` = "' . $user->room . '"
`o`.`room` = "' . $user->getRoom() . '"
ORDER BY
`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';
$ch2 = '_passive';
$ch3 = '_passive';
$ch4 = '_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>
function fastshow(content) {
@ -163,25 +166,24 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
top.rld();
</script>
<center>
<div>
<? if (!$_GET['rms']) { ?>
<div id="fixednew"
style="position: fixed; margin: 0; padding: 0; z-index: 9; width: 100%; text-align: center; overflow: auto;">
<div id="fixednew" style="position: fixed; margin: 0; padding: 0; z-index: 9; width: 100%; text-align: center; overflow: auto;">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td><img align="left"
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'])) { ?>
<td><img align="left" title="Соклановцы" style="cursor: pointer;"
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>
</table>
</div><br/><br/><br/>
</div>
<br><br><br>
<? } ?>
<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>
@ -195,53 +197,50 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
}
?>
<? echo '<br />' . $ttl . '<br />'; ?>
</center>
<table border=0>
<tr>
<td nowrap>
<script>
<?php
while ($row = $data->fetch_assoc()) {
if ($row['in_battle'] > 0) {
$in_battle = 1;
} else {
$in_battle = 0;
</div>
<div>
<script>
<?php
while ($row = $data->fetch_assoc()) {
if ($row['in_battle'] > 0) {
$in_battle = 1;
} 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'];
$act = explode("<>:<>", $rrr);
$aa = htmlspecialchars(stripslashes_deep($act[1]));
$aa = preg_replace("/afk ", "", $aa)
$rrr = $row['action'];
$act = explode("<>:<>", $rrr);
$aa = htmlspecialchars(stripslashes_deep($act[1]));
$aa = preg_replace("/afk ", "", $aa)
$aa = preg_replace("/dnd ", "", $aa);
$aa = preg_replace("/buy ", "", $aa);
$aa = preg_replace("/sell ", "", $aa);
$act_line = " <span onmouseover=\"fastshow(\'$aa\')\" onmouseout=\"hideshow()\"><b><small>{$act[0]}</small></b></span> ";
} 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'], '\');';
}
}
?>
</script>
</td>
</tr>
</table>
echo 'w(\'', $row['login'], '\',', $row['id'], ',', $in_battle, ',\'', $row['align'], '\',\'' . $row['klan'] . '\', \'' . $act_line . '\',\'', $row['level'], '\',\'', $row['slp'], '\',\'', $row['trv'], '\',\'', '\',\'', $row['login2'], '\');';
}
}
?>
</script>
</div>
<?php
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></body></html>
</SCRIPT>
<?php
exit;
}
@ -367,7 +366,7 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
$ks++;
$lastpost = $math[1];
unset($math[3]);
} elseif ((strpos($math[3], "private") === FALSE) /*&& ($user->room == $math[4])*/) {
} elseif ((strpos($math[3], "private") === FALSE) /*&& ($user->getRoom() == $math[4])*/) {
$times = '';
$soundON = '';
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']);
if (empty($user->clan)) {
if (empty($user->getClan())) {
$_GET['text'] = str_replace('private [klan]', '', $_GET['text']);
$_GET['text'] = str_replace('private [klan]', 'private [klan-' . $user['klan'] . ']', $_GET['text']);
} else {
@ -462,7 +461,7 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
if ($action != 1) {
$file = 'tmp/chat.txt';
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 для дописывания содержимого в конец файла
// и флаг LOCK_EX для предотвращения записи данного файла кем-нибудь другим в данное время
@ -470,7 +469,7 @@ if (isset($_GET['online']) && $_GET['online'] != null) {
file_put_contents($file, $line, FILE_APPEND | LOCK_EX);
echo "1";
} 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);
echo "2";
}

View File

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

View File

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

110
city.php
View File

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

150
clan.php
View File

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

View File

@ -62,7 +62,7 @@ if ($_POST['add_zay']) {
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_start1"><br></FORM>';
}
@ -229,7 +229,7 @@ if ($_POST['add_zay']) {
$rrc .= Nick::id($v)->short();
}
$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>');");
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() . '{[]}');
}
$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>');");
addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>");

View File

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

View File

@ -8,10 +8,8 @@
namespace Battles;
use Config;
use db;
use Exceptions\GameException;
use Krugozor\Database\Mysql\Exception;
use SQLite3;
use Battles\Database\DBPDO;
use Throwable;
class Bank
@ -19,6 +17,7 @@ class Bank
public $user_id;
private $money;
private $user;
private static $db;
const ERROR_NO_MONEY_IN_WALLET = "Ошибка! Нет денег в кошельке!";
const ERROR_NO_BANK_ACCOUNT = "Ошибка! Счёта не существует!";
@ -32,20 +31,16 @@ class Bank
'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();
$this->user = db::c()->query('SELECT money FROM users WHERE id = ?i', $row)->fetch_object();
self::$db = DBPDO::INIT();
$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) {
if (isset($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 игрока, если не указано иное).
*
* @return void
* @throws Exception
*/
private function bankLogs(int $receiverId, int $amount, string $operationType, int $senderId = 0): void
{
@ -100,11 +94,11 @@ class Bank
* @param int $amount сумма.
*
* @return int
* @throws Exception
* @throws GameException
*/
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) {
throw new GameException(self::ERROR_WRONG_AMOUNT);
}
@ -133,14 +127,14 @@ class Bank
* @param int $amount сумма.
*
* @return array
* @throws Exception
* @throws GameException
*/
public function depositMoney(int $amount): array
{
if ($amount <= 0) {
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) {
throw new GameException(self::ERROR_NO_MONEY_IN_WALLET);
}
@ -164,7 +158,7 @@ class Bank
* @param int $amount сумма.
*
* @return array
* @throws Exception
* @throws GameException
*/
public function withdrawMoney(int $amount): array
{
@ -197,14 +191,13 @@ class Bank
* @param string $operationType Тип операции. По умолчанию пусто. Если ввести, система запишет событие в банковский лог.
*
* @return void
* @throws Exception
*/
public static function setBankMoney(int $amount, int $user_id, string $operationType = ''): void
{
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) {
(new Bank($user_id))->bankLogs(0, $amount, $operationType);
GameLogs::addBankLog(0, 0, $amount, $operationType, self::LOG[$operationType]);
}
} catch (Throwable $e) {
echo "Не отработал запрос в БД в файле {$e->getFile()}({$e->getLine()})";
@ -219,12 +212,11 @@ class Bank
* @param int $user_id ID пользователя.
*
* @return void
* @throws Exception
*/
public static function setWalletMoney(int $amount, int $user_id): void
{
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) {
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
* Time: 22:41
*/
namespace Battles;
use db;
use Krugozor\Database\Mysql\Exception;
use Battles\Database\DBPDO;
class DressedItems
{
private $DB;
private $DBSUM;
private $USERID;
private $dressedItem;
private static $db;
/**
* DressedItems constructor.
*
* @param $user_id - ID игрока.
* @param int $user_id ID игрока.
*/
public function __construct($user_id)
public function __construct(int $user_id)
{
self::$db = DBPDO::INIT();
$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)
{
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 {
$query = <<<SQL
$items = self::$db->ofetchALL('SELECT * FROM inventory WHERE owner_id = ? AND dressed_slot > 0', $this->USERID);
$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,
SUM(add_dexterity) as sum_dexterity,
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_min_physical_damage) as sum_min_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;
$this->DBSUM = db::c()->query($query, $this->USERID)->fetch_assoc();
} catch (\Exception $e) {
echo '<div class="debug">Не прогрузилась таблица inventory (SUM) для класса DressedItems:' . $e . '</div>';
}
return self::$db->fetch($query, $this->USERID);
}
public function getItemsInSlots()
{
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()
public function getStrengthBonus(): ?int
{
return self::getBonuses()['sum_strength'];
}
public function getDexterityBonus()
public function getDexterityBonus(): ?int
{
return self::getBonuses()['sum_dexterity'];
}
public function getIntuitionBonus()
public function getIntuitionBonus(): ?int
{
return self::getBonuses()['sum_intuition'];
}
public function getEnduranceBonus()
public function getEnduranceBonus(): ?int
{
return self::getBonuses()['sum_endurance'];
}
public function getIntelliganceBonus()
public function getIntelliganceBonus(): ?int
{
return self::getBonuses()['sum_intelligence'];
}
public function getWisdomBonus()
public function getWisdomBonus(): ?int
{
return self::getBonuses()['sum_wisdom'];
}
public function getAccuracyBonus()
public function getAccuracyBonus(): ?int
{
return self::getBonuses()['sum_accuracy'] ?? 0;
}
public function getEvasionBonus()
public function getEvasionBonus(): ?int
{
return self::getBonuses()['sum_evasion'] ?? 0;
}
public function getCriticalsBonus()
public function getCriticalsBonus(): ?int
{
return self::getBonuses()['sum_criticals'] ?? 0;
}
public function getMinPhysDamage()
public function getMinPhysDamage(): ?int
{
return self::getBonuses()['sum_min_phys_damage'];
}
public function getMaxPhysDamage()
public function getMaxPhysDamage(): ?int
{
return self::getBonuses()['sum_max_phys_damage'];
}
@ -134,23 +118,13 @@ SQL;
/**
* Снимает с предмета статус одетого на персонажа в определённом слоте персонажа.
* @param $slot_id - номер слота.
*
* @throws Exception
*/
public function undressItem($slot_id)
{
self::getItemsInSlots();
// Проверяем, что используется один из 12 слотов и наличие предмета в слоте.
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);
}
}
public function slotStatus($slot_id)
{
self::getItemsInSlots();
if ($this->dressedItem[$slot_id]) {
self::$db->execute('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ? AND owner_id = ?', [$slot_id, $this->USERID]);
}
}
}

View File

@ -2,7 +2,10 @@
namespace Battles;
use Config;
use SQLite3;
use SQLite3Result;
class GameLogs
{
@ -16,7 +19,7 @@ class GameLogs
*/
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->bindParam(1, $senderId, SQLITE3_INTEGER);
$row->bindParam(2, $receiverId, SQLITE3_INTEGER);
@ -42,7 +45,7 @@ class GameLogs
if (empty($type)) {
$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->bindParam(1, $userId, SQLITE3_INTEGER);
$row->bindParam(2, $authorId, SQLITE3_INTEGER);
@ -51,4 +54,29 @@ class GameLogs
$row->execute();
$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()
{
//FIXME Сменить заглушку на нормальную функцию!!
echo <<<BTN
<p><button class="button danger" onclick="location.href='/admin.php'">Выбросить</button>
BTN;
}
public function getId()
{
return $this->item_id;
}
public function printControls() {}
}

View File

@ -38,8 +38,9 @@ abstract class Item
public const ITEM_TYPE_RING = 9;
public const ITEM_TYPE_AMULET = 10;
public const ITEM_TYPE_CONSUMABLE = 20;
const ITEM_TYPE_OTHER = 50;
const ITEM_TYPE_TRASH = 100;
public const ITEM_TYPE_OTHER = 50;
public const ITEM_TYPE_TRASH = 100;
private $typename;
/**
* Item constructor.
@ -102,7 +103,7 @@ abstract class Item
IMG;
}
protected function wrap($number)
protected function wrap(int $number):string
{
if ($number > 0) {
return ": <b>" . $number . "</b>";
@ -113,55 +114,38 @@ IMG;
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 . ")";
if ($this->durability) {
echo "<br> Долговечность: " . $this->durability;
}
echo "<br> Долговечность: " . $this->durability;
echo "<br><em>{$this->typename}</em><br>";
if ($this->need_strength > 0) {
echo "<br>Требуется сила" . $this->wrap($this->need_strength);
foreach ($needsLines as $stat => $value) {
if ($value > 0) {
echo "<br>Требуется $stat" . $this->wrap($value);
}
}
if ($this->need_dexterity > 0) {
echo "<br>Требуется ловкость" . $this->wrap($this->need_dexterity);
}
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);
foreach ($addsLines as $stat => $value) {
if ($value) {
echo "<br>$stat" . $this->wrap($value);
}
}
if ($this->add_min_physical_damage && !$this->add_max_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)
// Магия лечения травм
namespace Battles\Magic;
use Battles\UserEffects;
use Battles\User;
use db;
use Krugozor\Database\Mysql\Exception;
use Battles\UserEffects, Battles\Database\DBPDO, Battles\User;
class CureInjury extends Magic
{
private $target;
private $login;
use UserEffects;
/**
* Магия лечения травм. Если у персонажа несколько травм, лечится самая тяжёлая.
* @param $target - кого лечим.
* @param $injuryType - тип травмы, которую лечим. 11 лёгкая, 12 средняя, 13 тяжёлая, 14 неизлечимая.
* @throws Exception
* @param int $target - кого лечим.
* @param int $injuryType - тип травмы, которую лечим. 11 лёгкая, 12 средняя, 13 тяжёлая, 14 неизлечимая, 15 все травмы.
*/
public function __construct($target, $injuryType)
public function __construct(int $target, int $injuryType)
{
$db = DBPDO::INIT();
$this->target = $target;
if ($target && $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 {
if (!$this->isUsable()) {
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
*/
private function isUsable()
private function isUsable(): bool
{
$caster = new User($_SESSION['uid']);
if ($this->target == $_SESSION['uid']) {
@ -55,6 +52,7 @@ class CureInjury extends Magic
} else {
$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));
}
}

View File

@ -2,7 +2,8 @@
// Магия восстановления здоровья
use Battles\Magic\Magic;
use Battles\User;
use Krugozor\Database\Mysql\Exception;
use Battles\Database\DBPDO;
class Healing extends Magic
{
private $target;
@ -10,38 +11,35 @@ class Healing extends Magic
/**
* Магия лечения.
* @param $target - кого лечим.
* @param $power - на сколько лечим.
* @param $target - кого лечим.
* @param $power - на сколько лечим.
* @param null $isPercentage - если включён, считает $power в процентах, иначе, по-умолчанию просто как число.
*
* @throws Exception
*/
public function __construct($target, $power, $isPercentage = null)
{
$this->magicPower = $power;
$this->target = $target;
if ($target && $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 {
if (!$this->isUsable()) {
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
*/
private function isUsable():bool
private function isUsable(): bool
{
$caster = new User($_SESSION['uid']);
if ($this->target == $_SESSION['uid']) {
@ -49,6 +47,6 @@ class Healing extends Magic
} else {
$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
*/
protected function skillCheck($caster, int $difficulty = 40):bool
protected function isSuccess($caster, int $difficulty = 40):bool
{
# 40 - потолок стата.
if ($difficulty > 40) {

View File

@ -3,12 +3,10 @@
namespace Battles\Magic;
use Battles\Database\DBPDO;
use Battles\DressedItems;
use Battles\Item;
use Battles\User;
use Krugozor\Database\Mysql\Exception;
use db;
class Sharpen extends Magic
{
@ -20,30 +18,29 @@ class Sharpen extends Magic
* @param int $sharpenStrength
* @param int $magicDifficulty
*
* @throws Exception
*/
public function __construct(int $sharpenStrength, int $magicDifficulty)
{
$this->magicDifficulty = $magicDifficulty;
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 {
if (!$this->isUsable()) {
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']);
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
* Time: 23:32
*/
namespace Battles\Models;
use Battles\Database\DBPDO;
class EffectsModel
{
protected $DB;
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.
*/
public function getHideUserInfoStatus()
public function getHideUserInfoStatus(): int
{
if ($this->DB) {
while ($row = $this->DB->fetch_object()) {
if ($row->type == self::EFFECT_HIDEUSERINFO) {
return $row->time;
$i = 0;
while ($i < count($this->DB)) {
if ($this->DB[$i]->type == self::EFFECT_HIDEUSERINFO) {
return $this->DB[$i]->remaining_time;
}
$i++;
}
}
return 0;

View File

@ -5,7 +5,8 @@
* Time: 13:17
*/
namespace Battles\Models;
use Exceptions\GameException;
use Battles\Database\DBPDO;
class PresentsModel
{
@ -14,7 +15,7 @@ class PresentsModel
public function __construct(int $user_id)
{
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;
}
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
namespace Battles;
use db;
/**
* Разные способы отображения строки с логином персонажа.
*/
const INVIS = '<i>невидимка</i>';
class Nick extends User
{
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
*/
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);
} else {
return '';
return null;
}
}
@ -29,12 +28,12 @@ class Nick extends User
* Отображение иконки клана.
* @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);
} else {
return '';
return null;
}
}
@ -44,7 +43,7 @@ class Nick extends User
*
* @return Nick
*/
public static function id($playerId)
public static function id($playerId): Nick
{
return new self($playerId);
}
@ -59,9 +58,9 @@ class Nick extends User
public function full($showInvisibility = 0):string
{
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
{
if ($showInvisibility && $this->getInvisibilityStatus()) {
return '<i>невидимка</i>';
if (!$showInvisibility && $this->getInvisibilityStatus()) {
return INVIS;
} else {
return htmlspecialchars($this->login);
}
@ -96,7 +95,7 @@ class Nick extends User
public function battleShort($textstyle):string
{
if ($this->getInvisibilityStatus()) {
return '<i>невидимка</i>';
return INVIS;
}
else {
return sprintf('<span style="%s">%s</span> [_hp_/_maxhp_]', $textstyle, $this->login);

View File

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

View File

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

View File

@ -1,6 +1,8 @@
<?php
# Date: 26.10.2020 (16:08)
namespace Battles;
use Battles\Database\DBPDO;
class Travel
{
/**
@ -55,14 +57,15 @@ class Travel
/**
* Перемещение по комнатам.
* @param int $roomId ID куда идём.
* @param int $roomIdCurrent ID откуда идём.
* @throws \Krugozor\Database\Mysql\Exception
* @param int $roomId ID куда идём.
* @param int $roomIdCurrent ID откуда идём.
* @param DBPDO|null $db
*/
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();
$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();
$db = DBPDO::INIT();
$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 = [];
if ($itemsWeight['all_weight'] > get_meshok()) {
$errors[0] = 'У вас переполнен рюкзак, вы не можете передвигаться...';
@ -78,7 +81,7 @@ class Travel
echo sprintf('<span class="error">%s</span>', $error);
}
} 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]);
exit;
}

View File

@ -2,61 +2,63 @@
namespace Battles;
use Battles\Database\DBPDO;
use Exceptions\GameException;
use db;
class User
{
public $id = 0;
public $login = '<em>Некто</em>';
public $pass;
public $email = '<em>неизвестно</em>';
public $realname;
public $borndate;
public $info;
public $level = 0;
public $align = 0;
public $clan = 0;
public $money = 0;
public $strength = 0;
public $dexterity = 0;
public $intuition = 0;
public $endurance = 0;
public $intelligence = 0;
public $wisdom = 0;
public $health;
public $mana;
public $ip;
public $session_id;
public $admin = 0;
public $enter_game;
public $room;
public $block;
public $shadow;
protected $id = 0;
protected $login = '<em>Некто</em>';
protected $pass;
protected $email = '<em>неизвестно</em>';
protected $realname;
protected $borndate;
protected $info;
protected $level = 0;
protected $align = 0;
protected $clan;
protected $money = 0;
protected $strength = 0;
protected $dexterity = 0;
protected $intuition = 0;
protected $endurance = 0;
protected $intelligence = 0;
protected $wisdom = 0;
protected $health;
protected $mana;
protected $ip;
protected $session_id;
protected $admin = 0;
protected $enter_game;
protected $room;
protected $block;
protected $shadow;
// Удар кулаком всегда 1-2.
public $minDamage = 1;
public $maxDamage = 2;
protected $minDamage = 1;
protected $maxDamage = 2;
//Броня без предметов не существует.
public $headArmor = 0;
public $chestArmor = 0;
public $legArmor = 0;
public $free_stat_points = 0;
public const STAT_MAXIMUM_AMOUNT = 40;
protected $headArmor = 0;
protected $chestArmor = 0;
protected $legArmor = 0;
protected $free_stat_points = 0;
private const STAT_MAXIMUM_AMOUNT = 40;
private const ERROR_STAT_IS_MAXIMUM = 'Ошибка: Параметр достиг своего лимита!';
private const ERROR_STAT_UNKNOWN = 'Ошибка: Неизвестный параметр!';
// Пока несуществующие, для совместимости.
public $married = 'Someone или нет.';
public $experience = 200;
public $battle = 0;
public $in_tower = 0; // Скорее башню похороним чем запустим...
public $zayavka = 0;
protected $married = 'Someone или нет.';
protected $experience = 200;
protected $battle = 0;
protected $in_tower = 0; // Скорее башню похороним чем запустим...
protected $zayavka = 0;
// Динамически рассчитываемые
public $maxHealth = 5;
public $maxMana = 5;
protected $maxHealth = 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) {
if (isset($user_query[$key])) {
$this->$key = $user_query[$key];
@ -73,7 +75,7 @@ class User
* @return string
* @throws GameException
*/
public function getStat($stat_name, $isMainWindow = 0)
public function getStat($stat_name, $isMainWindow = 0):string
{
$allowed = ['strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom'];
if (in_array($stat_name, $allowed)) {
@ -89,16 +91,16 @@ class User
/**
* Повышает один из выбранных статов на 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
*/
public function addOnePointToStat($stat_name)
public function addOnePointToStat(string $stat_name)
{
$allowed = ['strength', 'dexterity', 'intuition', 'endurance', 'intelligence', 'wisdom'];
if (in_array($stat_name, $allowed)) {
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';
db::c()->query($query, $stat_name, $stat_name, $this->id);
$query = "UPDATE users SET {$stat_name} = {$stat_name} + 1, free_stat_points = free_stat_points - 1 WHERE id = ?";
self::$db->execute($query,$this->id);
} else {
throw new GameException(self::ERROR_STAT_IS_MAXIMUM);
}
@ -108,7 +110,7 @@ class User
}
protected function showStarSign()
protected function showStarSign(): ?string
{
/*
* 1 aries
@ -124,19 +126,21 @@ class User
* 11 aquarius
* 12 pisches
*/
$zodiac[356] = "10";
$zodiac[326] = "09";
$zodiac[296] = "08";
$zodiac[266] = "07";
$zodiac[235] = "06";
$zodiac[203] = "05";
$zodiac[172] = "04";
$zodiac[140] = "03";
$zodiac[111] = "02";
$zodiac[78] = "01";
$zodiac[51] = "12";
$zodiac[20] = "11";
$zodiac[0] = "10";
$zodiac = [
356 => "10",
326 => "09",
296 => "08",
266 => "07",
235 => "06",
203 => "05",
172 => "04",
140 => "03",
111 => "02",
78 => "01",
51 => "12",
20 => "11",
0 => "10",
];
$dayOfYear = date("z", strtotime($this->borndate));
$isLeapYear = date("L", strtotime($this->borndate)); //Высокосный?
if ($isLeapYear && $dayOfYear > 59) {
@ -159,4 +163,578 @@ class User
{
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
{
public static $effectName = [
2 => 'Заклинание молчания',
3 => 'Заклятие форумного молчания',
4 => 'Заклятие хаоса',
5 => 'Заклятие обезличивания',
10 => 'паралич',
11 => 'легкая травма',
12 => 'средняя травма',
13 => 'тяжёлая травма',
14 => 'неизлечимая травма',
1022 => 'невидимость',
2 => 'Заклинание молчания',
3 => 'Заклятие форумного молчания',
4 => 'Заклятие хаоса',
5 => 'Заклятие обезличивания',
20 => 'Проверка Паладинов',
21 => 'Сила нейтралитета',
22 => 'Защита от кулачного нападения',
@ -47,6 +46,7 @@ trait UserEffects
226 => 'Стена Воды [3]',
227 => 'Защита от нападений',
405 => 'Микстура жизненных сил',
1022 => 'невидимость',
9994 => 'Антидот/Путы (Эликсир?)',
];
}

View File

@ -1,5 +1,8 @@
<?php
namespace Battles;
use Battles\Models\EffectsModel;
use Exceptions\GameException;
class UserInfo extends User
{
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)
{
@ -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>';
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>';
while ($userLogRow = $this->UserLogs->getUserLog()->fetch_object()) {
echo sprintf('<code>%s</code><br>', date("d.m.Y H:i ", strtotime($userLogRow->date)) . $userLogRow->text);
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 '</div><!-- secret-info-user-log -->';
echo '</div><!-- secret-info -->';
@ -150,18 +151,18 @@ class UserInfo extends User
public function showUserInfo()
{
$this->effects = new \Battles\Models\EffectsModel($this->id);
$this->WatcherStatus();
$effects = new EffectsModel($this->id);
if ($this->block && (!$this->watcherIsAdmin || !$this->watcherIsModerator)) {
throw new \Exceptions\GameException('<span class="error">Персонаж ' . $this->login . ' заблокирован!</span>');
} elseif ($this->effects->getHideUserInfoStatus() && (!$this->watcherIsAdmin || !$this->watcherIsModerator)) {
if ($this->effects->getHideUserInfoStatus() == -1) {
throw new GameException('<span class="error">Персонаж ' . $this->login . ' заблокирован!</span>');
} elseif ($effects->getHideUserInfoStatus() && (!$this->watcherIsAdmin || !$this->watcherIsModerator)) {
if ($effects->getHideUserInfoStatus() == -1) {
$date = 'навсегда';
} 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 {
$this->Info();
}
@ -169,7 +170,7 @@ class UserInfo extends User
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']) {
$this->watcherIsAdmin = 1;
}

View File

@ -1,8 +1,8 @@
<?php
if (in_array($user->room, Config::$caverooms)) {
if (in_array($user->getRoom(), Config::$caverooms)) {
$cavedata = Config::$cavedata ?? [];
$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;
}
}
@ -11,8 +11,8 @@ $lomka1 = $lomka;
foreach ($lomka1 as $k => $v) {
if ($v < _BOTSEPARATOR_) {
if (in_array($user->room, 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");
if (in_array($user->getRoom(), Config::$caverooms)) {
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) {
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");
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"));
@ -55,7 +55,7 @@ if (in_array($user->room, Config::$caverooms)) {
$bot = $rec['bot'];
$cnt = $rec['cnt'];
if (@$caveitems[$bot]) {
if ($user->room == 621) {
if ($user->getRoom() == 621) {
$i = mt_rand(0, (count($caveitems[$bot]) - 1));
$item = $caveitems[$bot][$i];
if (getchance($item['chance'])) {

View File

@ -2,9 +2,6 @@
# Date: 28.10.2020 (17:41)
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);
// создаем лог
$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>");
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"));
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'] . ' ;');
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("DELETE FROM `bots` 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');
$this->error = 'Вы успешно сдали задание!';
$text = '<font style="color: Red;">Внимание!</font> За успешно выполненное задание Вы получили : ' . $c;
$this->msg($text, '{[]}' . $user['login'] . '{[]}', $user->room);
$this->msg($text, '{[]}' . $user['login'] . '{[]}', $user->getRoom());
} else {
$this->error = 'Не все условия задания были выполнены ...';
}

View File

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

View File

@ -4,10 +4,7 @@
* Author: Igor Barkov <lopar.4ever@gmail.com>
* Project name: Battles-Game
*/
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
ini_set('display_errors', 'On');
error_reporting(E_ALL);
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: 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/Statement.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
{
public static $db_sqlite = '/volume2/web/battles/databases/logs.sqlite';
// Для нападалок. Сперва комнаты в которых нельзя напасть, потом персонажи на которых нельзя напасть.
public static $unkilable = [
'rooms' => [620, 621, 1051, 1052],

View File

@ -421,7 +421,7 @@ class fbattle
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"));
if ($location['dir'] == 0) {
$y = $location['y'] * 2;
@ -451,7 +451,7 @@ class fbattle
$winers .= implode("</B>, <B>", $this->t2);
$lomka = $this->t1;
} 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"));
if ($location['dir'] == 0) {
$y = $location['y'] * 2;

View File

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

View File

@ -1,7 +1,11 @@
<?php
use Battles\Template;
use Battles\User;
session_start();
require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']);
$user = $user ?? new User($_SESSION['uid']);
function secs2hrs($s, $short = 0)
{
@ -61,12 +65,12 @@ if ($_GET['ext'] == 1) {
}
if (in_array($user->room, Config::$canalenters)) {
$podzemroom = $user->room + 1;
if (in_array($user->getRoom(), Config::$canalenters)) {
$podzemroom = $user->getRoom() + 1;
$cavedata = [620 => ['x1' => 3, 'y1' => 2, 'dir1' => 2]];
$podzemdata = [621 => ['name1' => 'Проклятый Рудник', 'name2' => 'Проклятого Рудника']];
$warning = $_GET["warning"] ?? '';
\Battles\Template::header('enter_cave');
Template::header('enter_cave');
if ($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) {
$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']) {
@ -130,7 +134,7 @@ if (in_array($user->room, Config::$canalenters)) {
if ($wawe == 0) {
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>
<tr>
<td>Комментарий</td>
@ -149,7 +153,7 @@ if (in_array($user->room, Config::$canalenters)) {
</FORM>";
} else {
echo "<FORM id='REQUEST'>
<FIELDSET style='padding-left: 5; width=50%'>
<FIELDSET style='padding-left: 5px; width=50%'>
<LEGEND><B> Группа </B> </LEGEND>";
if ($nawe == 1) {
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;
}
$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)) {
$cr = $DATA['glav_id'];
$z_login[$i] = $DATA['login'];
@ -258,11 +262,10 @@ if (in_array($user->room, Config::$canalenters)) {
?>
<TR>
<TD>
</TD>
<TD></TD>
</TR>
<TR height=1>
<TD height=1 colspan=2><SPAN></SPAN></TD>
<TR>
<TD colspan=2></TD>
</TR>
</TABLE>
<?php
@ -275,7 +278,7 @@ if (in_array($user->room, Config::$canalenters)) {
exit();
}
$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')");
if ($SQL2) {
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'] . "'");
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>";
exit();
}
@ -353,7 +356,7 @@ if (in_array($user->room, Config::$canalenters)) {
}
if ($_GET['start']) {
if (in_array($user->room + 1, Config::$caverooms)) {
if (in_array($user->getRoom() + 1, Config::$caverooms)) {
$nc = 1;
$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");
$user['money'] += $nana['fee'];
$esth['money'] -= $nana['fee'];
adddelo($user['id'], "Персонаж $user[login] получил $nana[fee] кр. за поход по локации \"" . $rooms[$user->room + 1] . "\" от персонажа $esth[login] ($user[money]).", 1);
adddelo($esth['id'], "Персонаж $esth[login] заплатил $nana[fee] кр. за поход по локации \"" . $rooms[$user->room + 1] . "\" персонажу $user[login] ($esth[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->getRoom() + 1] . "\" персонажу $user[login] ($esth[money]).", 1);
}
if ($esth['level'] > $level) {
$level = $esth['level'];
@ -389,12 +392,12 @@ if (in_array($user->room, Config::$canalenters)) {
$vrem = 30 * 60 + time();
$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("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("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->getRoom() + 1) . "', `online`.`room` = '" . ($user->getRoom() + 1) . "' WHERE `online`.`id` = `users`.`id` AND `online`.`id` = '" . $esth['id'] . "'");
}
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)) {
$map = unserialize($rec['map']);
foreach ($map as $k => $v) {
@ -436,7 +439,6 @@ if (in_array($user->room, Config::$canalenters)) {
?>
<TD nowrap valign=top>
<BR>
<DIV align=right>
<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="Вернуться"
onclick="document.location.href='enter_cave.php?ext=1';"/>
</DIV>
</TD>
</TR></TBODY></TABLE>
</TD>
</TR>
</TABLE>
<div id="goto" style="text-align:right;white-space:nowrap">&nbsp;</div>
<br><br>
</TABLE>
</TABLE>
<div id="goto" style="text-align:right;white-space:nowrap">&nbsp;</div>
<br><br>
<?php
} else {
header("location: main.php");

View File

@ -1,10 +1,13 @@
<?php
use Battles\Template;
session_start();
if (empty($_SESSION['uid'])) {
exit;
}
require_once "functions.php";
if ($user->room == 51) {
if ($user->getRoom() == 51) {
header('location: city.php');
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() . '{[]}');
echo "<font style='color:#990000'>Вы подняли <b>'" . $gss['name'] . "'</b>.</font>";
} 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/funcs1.6.js"></script>
@ -197,7 +200,7 @@ if ($_GET['res']) {
<? 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/>
<br/>
<? } ?>

View File

@ -5,13 +5,19 @@
* Project name: Battles-Game
*/
use Battles\Database\DBPDO;
use Battles\Travel;
use Battles\User;
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->id && $user->block) {
if ($user->getId() && $user->getBlock()) {
exit('user blocked!');
}
@ -48,12 +54,12 @@ $fbattleCheckFiles = [
'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');
exit;
}
$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');
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)
&& pathinfo(debug_backtrace()[0]['file'])['basename'] != Travel::$roomFileName[$user->room]
if (in_array($user->getRoom(), $roomsCheck)
&& pathinfo(debug_backtrace()[0]['file'])['basename'] != Travel::$roomFileName[$user->getRoom()]
&& in_array(array_search(pathinfo(debug_backtrace()[0]['file'])['basename'], Travel::$roomFileName), $roomsCheck)) {
header('location: main.php');
exit;
@ -71,7 +77,7 @@ if (in_array($user->room, $roomsCheck)
$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']))) {
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 = "")
@ -134,7 +140,7 @@ function takeshopitem($item, $table = "shop", $present = '', $onlyonetrip = '',
$flds = [];
$goden = '';
if (!$uid) {
$uid = $user->id;
$uid = $user->getId();
}
$r = db::c()->query('SHOW FIELDS FROM ?f', $table);
@ -283,9 +289,9 @@ function echoscroll($slot)
{
global $user;
$all_magic = 0;
if ($user->battle) {
if ($user->getBattle()) {
$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']);
} else {
$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();
$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;
if ($dress['magic']) {
$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
<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;
} 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
<img src="i/sh/magicclock.gif" width="40" height="25" title='Произведите размен ударами и магия снова станет доступна' alt="Свиток">
INACTIVE_SCROLL;
@ -393,7 +399,7 @@ function timeOut($ttm)
return $out;
}
function show_eff_inf($u, $type)
function show_eff_inf(int $u): string
{
$img = [
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",
];
$r = '';
$and = '';
$adds = '';
if ($type == 1) {
$and = " AND `type` != 1022";
}
$effs = db::c()->query('SELECT * FROM `users_effects` WHERE `type` <> 20 AND `owner_id` = ?i' . $and, $u)->fetch_assoc();
/* 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
* Если на человеке стоит type=20
* #26
*/
$etype = $effs['type'];
if ($type == 1) {
while ($effs) {
if ($etype == 11 || $etype == 12 || $etype == 13 || $etype == 14) {
if ($etype == 11) {
$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>';
}
$effs = DBPDO::INIT()->ofetchAll('SELECT * FROM users_effects WHERE owner_id = ?', $u);
$i = 0;
while ($i < count($effs)) {
$timeleft = timeOut($effs[$i]->remaining_time - time());
$r .= <<<HTML
<div>
<img class="image" src="/i/{$img[$effs[$i]->type]}">
<span class="title">{$effs[$i]->name}</span>
<div class="timeleft">$timeleft</div>
</div>
HTML;
$i++;
}
unset($i);
return $r;
}
@ -678,11 +650,11 @@ function dropitem($slot)
`u`.`fauvorot` = `u`.`fauvorot` - `i`.`mfauvorot`,
`u`.`uminu` = `u`.`uminu` - `i`.`minu`,
`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)) {
db::c()->query('UPDATE `users` SET `hp` = `maxhp`, `fullhptime` = ?i WHERE `hp` > `maxhp` AND `id` = ?i', time(), $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->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()) {
$wear_arr[] = $wear_list['prototype'];
}
@ -742,7 +714,7 @@ function dropitem($slot)
`u`.`mlight = `u`.`mlight - `s`.`glight`,
`u`.`mgray = `u`.`mgray - `s`.`ggray`
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;
@ -809,7 +781,7 @@ function ref_drop()
function destructitem($id)
{
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()) {
db::c()->query('DELETE FROM `inventory` WHERE `id` = ?i', $id);
}
@ -819,8 +791,8 @@ function destructitem($id)
function usemagic($id, $target)
{
global $user;
$row = db::c()->query('SELECT * FROM `inventory` WHERE `owner` = ?i AND id = ?i', $user->id, $id)->fetch_assoc_array();
$bat = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $user->battle)->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->getBattle())->fetch_assoc_array();
$all_magic = unserialize($bat['magic']);
$charge = 0;
$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'];
}
//Переделать под новую базу
if (($all_magic[$user->id] < 1 || $charge == 0) &&
if (($all_magic[$user->getId()] < 1 || $charge == 0) &&
($user['sila'] >= $row['nsila'] &&
$user['lovk'] >= $row['nlovk'] &&
$user['inta'] >= $row['ninta'] &&
@ -887,16 +859,16 @@ function usemagic($id, $target)
$charge = 0;
}
//ограничение по кол-ву за ход
if ($user->battle > 0) {
$bat = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $user->battle)->fetch_assoc_array();
if ($user->getBattle()) {
$bat = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $user->getBattle())->fetch_assoc_array();
}
if ($bat['magic'] == '') {
$all_magic = [];
} else {
$all_magic = unserialize($bat['magic']);
}
$all_magic[$user->id] += $charge;
db::c()->query('UPDATE `battle` SET `magic`= "?s" WHERE id = ?i', serialize($all_magic), $user->battle);
$all_magic[$user->getId()] += $charge;
db::c()->query('UPDATE `battle` SET `magic`= "?s" WHERE id = ?i', serialize($all_magic), $user->getBattle());
}
}
return false;
@ -906,7 +878,7 @@ function addch($text, $room = 0)
{
global $user;
if ($room == 0) {
$room = $user->room;
$room = $user->getRoom();
}
if ($fp = @fopen("tmp/chat.txt", "a")) { //открытие
flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА
@ -922,7 +894,7 @@ function addchp($text, $who, $room = 0)
{
global $user;
if ($room == 0) {
$room = $user->room;
$room = $user->getRoom();
}
$fp = fopen("tmp/chat.txt", "a"); //открытие
flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА
@ -953,24 +925,24 @@ function err($t)
/**
* @param $name
* @param $text
* @param int $userId
* @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();
if (db::c()->getAffectedRows()) {
db::c()->query('INSERT INTO `telegraph` (receiver, text) VALUES (?i,"?s")', $userId, $text);
$db = DBPDO::INIT();
if ($db->ofetch('SELECT 1 FROM users WHERE id = ?', $userId)) {
$db->execute('INSERT INTO chat (user_id,receiver_id,msg,type) VALUES (-1,?,?,?)', [$userId, $text, 'sms']);
}
unset($db);
}
function get_meshok()
{
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();
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;
}
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 ($_GET['goto'] == 'arsenal') {
$user->room = 38;
$user->setRoom(38);
}
if ($_GET['goto'] == 'home') {
$user->room = 37;
$user->setRoom(37);
}
if ($_GET['goto'] == 'dvor') {
$user->room = 39;
$user->setRoom(39);
}
if ($_GET['goto'] == 'master') {
$user->room = 40;
$user->setRoom(40);
}
if ($_GET['goto'] == 'rest') {
$user->room = 41;
$user->setRoom(41);
}
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');
} else {
$status = 'В этом замке нет такого места!';
}
}
switch ($user->room) {
switch ($user->getRoom()) {
case '37' :
$backgroundImage = '689_small_550.jpg';
break;
@ -39,8 +39,8 @@ switch ($user->room) {
break;
}
if ($user->room == 38) {
$glava = db::c()->query('SELECT `glava` FROM `clans` WHERE `short` = "?s"', $user['klan'])->fetch_assoc();
if ($user->getRoom() == 38) {
$glava = db::c()->query('SELECT owner_id FROM `clans` WHERE `short` = "?s"', $user['klan'])->fetch_assoc();
// возврат шмотки
if ($_GET['back']) {
$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();
$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;">
<INPUT TYPE=button style="width:200px;" value="Перейти в приемную"
onClick="hrefToFrame('gotzamok.php?goto=home')">
<? if ($user->room == 37): ?>
<? if ($user->getRoom() == 37): ?>
<img src='i/flag.gif'>
<?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти в арсенал"
onClick="hrefToFrame('gotzamok.php?goto=arsenal')">
<? if ($user->room == 38): ?>
<? if ($user->getRoom() == 38): ?>
<img src='i/flag.gif'>
<?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти во внутренний двор"
onClick="hrefToFrame('gotzamok.php?goto=dvor')">
<? if ($user->room == 39): ?>
<? if ($user->getRoom() == 39): ?>
<img src='i/flag.gif'>
<?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти в мастерские"
onClick="hrefToFrame('gotzamok.php?goto=master')">
<? if ($user->room == 40): ?>
<? if ($user->getRoom() == 40): ?>
<img src='i/flag.gif'>
<?php endif; ?><BR>
<INPUT TYPE=button style="width:200px;" value="Перейти в опочивальни"
onClick="hrefToFrame('gotzamok.php?goto=rest')">
<? if ($user->room == 41): ?>
<? if ($user->getRoom() == 41): ?>
<img src='i/flag.gif'>
<?php endif; ?><BR>
</td>
<td valign=top>
<?php if ($user->room == 38): ?>
<?php if ($user->getRoom() == 38): ?>
<h4>Арсенал</h4>
<button onClick="hrefToFrame('gotzamok.php?do=zdat')">Сдать в арсенал</button>
<div style="background: silver; border: 1px solid dimgray;">
@ -175,7 +175,7 @@ if ($castleOwners['id'] == $user['klan']) { ?>
<?php
endif;
endif;
if ($user->room == 40): ?>
if ($user->getRoom() == 40): ?>
<h4>Мастерские</h4>
<div style="background: silver; border: 1px solid dimgray;">
Здесь вы можете улучшить оборонные способности вашего замка.
@ -192,7 +192,7 @@ if ($castleOwners['id'] == $user['klan']) { ?>
</div>
</div>
<?php endif;
if ($user->room == 41): ?>
if ($user->getRoom() == 41): ?>
<h4>Комнаты отдыха</h4>
<div style="background: silver; border: 1px solid dimgray;">
Посиди в тишине, внутри стен. Тут нет врагов. Тут спокойно.

View File

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

View File

@ -1,4 +1,4 @@
{
":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) {
return 0
};
}
return found;
}
return 0;
@ -53,8 +53,8 @@ function foundmagictype (mtypes) {
function crtmagic(mtype, title, body, subm) {
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 colors = new Array('B1A993', 'DDD5BF', 'ACA396', 'D3CEC8', '96B0C6', 'BDCDDB', 'AEC0C9', 'CFE1EA', 'AAA291', 'D5CDBC', 'BCBBB6', 'EFEEE9', '969592', 'DADADA', '72726B', 'A6A6A0');
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 = ['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');
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%">'+
'<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]+'"':'')+' >'+
'<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></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>
<?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) {
$cost = $_GET['cost'];
@ -124,7 +124,7 @@ if ($_GET['mobkill'] == 1) {
}
$rand_hp1 = rand(1, 10);
$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;
if ($hels < 0) {
echo "<b>Вы убили моба!</b><br>";
@ -135,11 +135,11 @@ if ($_GET['mobkill'] == 1) {
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("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 {
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 {
echo "Вы отняли у моба -<b>" . $rand_hp . "</b> HP!<br>";
@ -177,7 +177,7 @@ if ($_GET['exit'] && $room['exit'] == 1) {
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'] . "';"));
if ($data['id_room'] == $user->room) {
if ($data['id_room'] == $user->getRoom()) {
switch ($data['type']) {
case 1:
@ -241,13 +241,13 @@ if ($_GET['get']) {
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'] . "';"));
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);
}
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'] . "';"));
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';"));
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']) . "';");
@ -259,7 +259,7 @@ if ($_GET['nal1']) {
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'] . "';"));
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';"));
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']) . "';");
@ -271,7 +271,7 @@ if ($_GET['nal2']) {
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'] . "';"));
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';"));
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']) . "';");
@ -283,7 +283,7 @@ if ($_GET['nal3']) {
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'] . "';"));
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';"));
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']) . "';");
@ -299,28 +299,28 @@ if ($_GET['go']) {
switch ($_GET['go']) {
case "p1":
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();
break;
case "p2":
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();
break;
case "p3":
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();
break;
case "p4":
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();
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) {
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']) . "';");
$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'] . "';");
$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]) {
$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;'>";
$u_lab = mysql_query("select `login` from `users` where `lab`='1' and `bot`!='1'");
$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);
</script>
<?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) {
$cost = $_GET['cost'];
@ -122,7 +122,7 @@ if ($_GET['mobkill'] == 1) {
}
$rand_hp1 = rand(1, 10);
$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;
if ($hels < 0) {
echo "<b>Вы убили моба!</b><br>";
@ -133,11 +133,11 @@ if ($_GET['mobkill'] == 1) {
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("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 {
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 {
echo "Вы отняли у моба -<b>" . $rand_hp . "</b> HP!<br>";
@ -175,7 +175,7 @@ if ($_GET['exit'] && $room['exit'] == 1) {
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'] . "';"));
if ($data['id_room'] == $user->room) {
if ($data['id_room'] == $user->getRoom()) {
switch ($data['type']) {
case 1:
@ -239,13 +239,13 @@ if ($_GET['get']) {
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'] . "';"));
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);
}
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'] . "';"));
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';"));
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']) . "';");
@ -257,7 +257,7 @@ if ($_GET['nal1']) {
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'] . "';"));
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';"));
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']) . "';");
@ -269,7 +269,7 @@ if ($_GET['nal2']) {
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'] . "';"));
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';"));
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']) . "';");
@ -281,7 +281,7 @@ if ($_GET['nal3']) {
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'] . "';"));
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';"));
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']) . "';");
@ -297,28 +297,28 @@ if ($_GET['go']) {
switch ($_GET['go']) {
case "p1":
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();
break;
case "p2":
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();
break;
case "p3":
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();
break;
case "p4":
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();
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) {
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']) . "';");
$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'] . "';");
$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]) {
$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;'>";
$u_lab = mysql_query("select `login` from `users` where `lab`='1' and `bot`!='1'");
$u_lab_kol = mysql_num_rows($u_lab);

View File

@ -1,4 +1,7 @@
<?php
use Battles\Template;
ob_start("ob_gzhandler");
session_start();
require_once "functions.php";
@ -294,7 +297,7 @@ if (isset($_GET['exitlaba'])) {
header('Location: labirint.php');
}
}
\Battles\Template::header('Вход в Лабиринты');
Template::header('Вход в Лабиринты');
?>
<div style="float: right;">
<input type="button" onclick="location.href='lab_enter.php';" value="Обновить">
@ -305,7 +308,7 @@ if (isset($_GET['exitlaba'])) {
</div>
<?
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');
$re = 'Комментарий удалён';
} else {
@ -397,7 +400,7 @@ while ($pl = mysql_fetch_array($sp)) {
}
$userszv = ltrim($userszv, ', ');
if ($pl['com'] != '') {
if ($user->admin) {
if ($user->getAdmin()) {
$del = ' <a href=\'lab_enter.php?del_com=' . $pl['id'] . '\'>Удалить комментарий</a>';
} else {
$del = '';
@ -417,7 +420,7 @@ while ($pl = mysql_fetch_array($sp)) {
<td valign="top">
<form id="from" autocomplete="off" name="from"
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>
Тип похода:
<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 "Персонаж тяжело травмирован...";
} elseif ($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов.";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -95,7 +95,7 @@ if ($user['battle'] > 0) {
} else {
$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'].'');
@ -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>";
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>");

View File

@ -32,7 +32,7 @@ if($vip['bloodattack'] <= 0) {
echo "Персонаж тяжело травмирован...";
} elseif($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов.";
} elseif($user->room != $us['room']) {
} elseif($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -82,7 +82,7 @@ if($vip['bloodattack'] <= 0) {
$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(); }
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');
@ -121,7 +121,7 @@ if($vip['bloodattack'] <= 0) {
$ld = Nick::id($user['id'])->full(1);
$lds = Nick::id($user['id'])->short();
$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>");
mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}");
header("Location: fbattle.php");

View File

@ -39,7 +39,7 @@ elseif (!$us['online']) {
echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -106,7 +106,7 @@ elseif (!$us['online']) {
} else {
$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'].'');
@ -169,7 +169,7 @@ elseif (!$us['online']) {
$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>');");
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 {
$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'].'');

View File

@ -32,7 +32,7 @@ if ($user['battle'] > 0) {
echo "Персонаж под защитой от нападений ...";
} elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!";
} elseif ($us['level'] < 1) {
echo "Новички находятся под защитой Мироздателя!";
@ -81,7 +81,7 @@ if ($user['battle'] > 0) {
} else {
$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'].'');
@ -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>";
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>");

View File

@ -39,7 +39,7 @@ elseif (!$us['online']) {
echo "Персонаж под защитой от нападений ...";
} elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
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>";
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>");

View File

@ -39,7 +39,7 @@ if ($user['battle'] > 0) {
echo "Вы ожидаете поединка...";
} elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
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>";
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>");

View File

@ -39,7 +39,7 @@ elseif (!$us['online']) {
echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -106,7 +106,7 @@ elseif (!$us['online']) {
} else {
$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'].'');
@ -169,7 +169,7 @@ elseif (!$us['online']) {
$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>');");
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) {
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 "В этой локации выход из боя запрещен!";
} elseif ($user['battle'] == $raid_t['value']) {
echo "Вы защищаете весь город, а не только себя. Победа или смерть!";

View File

@ -24,7 +24,7 @@ elseif ($user['zayavka'] > 0) {
} elseif ($us['align']!=3) {
echo "Персонаж не с темной склонностью!";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -78,7 +78,7 @@ elseif ($user['zayavka'] > 0) {
} else {
$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'].'');
@ -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>";
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>");

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
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;"));
@ -18,7 +18,7 @@ if ($user->room == 20) {
echo "Вы ожидаете поединка...";
} elseif ($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов.";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!";
} elseif ($us['level'] < 3) {
echo "Нельзя напасть на персонажа ниже 3 уровня! Даже ночью, даже на Центральной площади...";
@ -61,7 +61,7 @@ if ($user->room == 20) {
} else {
$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'].'');
@ -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>";
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>");

View File

@ -51,7 +51,7 @@ elseif (!$us['online']) {
echo "Вы ожидаете поединка...";
} elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован...";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -106,7 +106,7 @@ elseif (!$us['online']) {
} else {
$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'].'');
@ -169,7 +169,7 @@ elseif (!$us['online']) {
$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>');");

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 ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Защита от Оружия"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(1,100) < $int) {

View File

@ -14,7 +14,7 @@ if ($user['battle'] > 0) {echo "Не в бою...";}
elseif ($user['level'] < 4) { echo "Вашего уровня не достаточно для использования этого заклинания!"; }
elseif ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Сокрушение"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
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 "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -111,7 +111,7 @@ elseif ($user['zayavka'] > 0) {
} else {
$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'].'');
@ -182,7 +182,7 @@ $outok=1;
$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>');");

View File

@ -46,7 +46,7 @@ elseif ($user['zayavka'] > 0) {
echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев.";
} elseif ($user->room != $us['room']) {
} elseif ($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -111,7 +111,7 @@ elseif ($user['zayavka'] > 0) {
} else {
$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'].'');
@ -182,7 +182,7 @@ $outok=1;
$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>');");
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 "РќРµ РІ Р±РѕСЋ...";}
elseif ($user['level'] < 0) { echo "Вашего уровня не достаточно для использования этого заклинания!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Эликсир брони +5"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
elseif (rand(0,100) < $int) {

View File

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

View File

@ -7,7 +7,7 @@ $int=101;
if ($user['battle'] > 0) {echo "Не в бою...";}
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Защита от кулачного нападения"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
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 ($us['level'] < 4) { echo "Запрещено применять на персонажей до 4 уровня!"; }
elseif ($effect['time']) {echo "На персонаже уже есть заклятие Удача"; }
elseif ($user->room != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif ($user->getRoom() != $us['room']) { echo "Персонаж в другой комнате!"; }
elseif (!$us['online']) {echo "Персонаж не в игре!";}
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 "Персонаж тяжело травмирован...";
} elseif($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов.";
} elseif($user->room != $us['room']) {
} elseif($user->getRoom() != $us['room']) {
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) {
echo "Нападения в этой локации запрещены!";
@ -76,7 +76,7 @@ if($vip['pers_attack'] <= 0) {
$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(); }
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');
@ -115,7 +115,7 @@ if($vip['pers_attack'] <= 0) {
$ld = Nick::id($user['id'])->full(1);
$lds = Nick::id($user['id'])->short();
$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>");
mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}");
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