Merge remote-tracking branch 'origin/master'

This commit is contained in:
lopar 2020-06-22 20:47:48 +03:00
commit e46d3d8c68
6 changed files with 636 additions and 665 deletions

View File

@ -1,120 +1,141 @@
<?
session_start();
if(!isset($_SESSION['uid'])) { header('Location: index.php'); exit(); }
include('config.php');
include('functions.php');
if($user['room'] == 51) { header('location: city.php'); die(); }
require_once('functions.php');
if (!isset($_SESSION['uid'])) {
header('Location: index.php');
die();
}
if ($user['room'] == 51) {
header('location: city.php');
die();
}
$forest = db::c()->query('SELECT `id`, `room`, `room_id`, `time`, `user`, `data` FROM `forest` WHERE `user` = ?i', $user['id'])->fetch_assoc();
$error = '';
$map_page = '';
$forest = mysql_fetch_array(mysql_query('SELECT `id`, `room`, `room_id`, `time`, `user`, `data` FROM `forest` WHERE `user` = "'.$user['id'].'" LIMIT 1'));
if(!isset($forest['id'])) {
die('Ошибка. Сообщите Администрации. Код ошибки : 00.');
if (empty($forest['id'])) {
die('Ошибка. Сообщите Администрации. Код ошибки : 00.');
}
function loadmap_cell() {
global $forest;
$dat = unserialize($forest['data']);
$dat = array('Up' => $dat[$forest['room']]['Up'], 'Down' => $dat[$forest['room']]['Down'], 'Left' => $dat[$forest['room']]['Left'], 'Right' => $dat[$forest['room']]['Right']);
return $dat;
function loadmap_cell()
{
global $forest;
$dat = unserialize($forest['data']);
$dat = ['Up' => $dat[$forest['room']]['Up'], 'Down' => $dat[$forest['room']]['Down'], 'Left' => $dat[$forest['room']]['Left'], 'Right' => $dat[$forest['room']]['Right']];
return $dat;
}
$map_user = loadmap_cell();
if($_GET['exit_forest'] == 'true') {
if($forest['room']) {
#mysql_query('DELETE FROM `forest_bots` WHERE `user` = "'.$user['id'].'" AND `group` = "'.$forest['id'].'"');
#mysql_query('DELETE FROM `forest_items` WHERE `user` = "'.$user['id'].'" AND `group` = "'.$forest['id'].'"');
mysql_query('DELETE FROM `forest` WHERE `user` = "'.$user['id'].'" LIMIT 1');
mysql_query("UPDATE `users`,`online` SET `users`.`room` = '51', `online`.`room` = '51' WHERE `online`.`id` = `users`.`id` AND `online`.`id` = '".$user['id']."'");
unset($forest);
} else {
$error = 'Выхода тут нет ...';
}
if ($_GET['exit_forest'] == 'true') {
if ($forest['room']) {
#db::c()->query('DELETE FROM `forest_bots` WHERE `user` = ?i AND `group` = ?i', $user['id'], $forest['id']);
#db::c()->query('DELETE FROM `forest_items` WHERE `user` = ?i AND `group` = ?i', $user['id'], $forest['id']);
db::c()->query('UPDATE `users`,`online` SET `users`.`room` = 51, `online`.`room` = 51 WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $user['id']);
db::c()->query('DELETE FROM `forest` WHERE `user` = ?i', $user['id']);
unset($forest);
} else {
$error = 'Выхода тут нет ...';
}
}
echo $map_user['Down'].' = '.$map_user['Right'];
echo $map_user['Down'] . ' = ' . $map_user['Right'];
if($_GET['move'] == 'true') {
if($_GET['Dir'] == 'Up') {
if($map_user['Up'] == 1) {
mysql_query('UPDATE `forest` SET `room` = "cell_'.($forest['room_id']-5).'", `room_id` = "'.($forest['room_id']-5).'" WHERE `id` = "'.$forest['id'].'" LIMIT 1');
$forest['room'] = 'cell_'.($forest['room_id']-5); $forest['room_id'] = $forest['room_id']-5;
if ($_GET['move'] == 'true') {
if ($_GET['Dir'] == 'Up') {
if ($map_user['Up'] == 1) {
$forest['room'] = 'cell_' . ($forest['room_id'] - 5);
$forest['room_id'] = $forest['room_id'] - 5;
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 01.';
}
} elseif ($_GET['Dir'] == 'Down') {
if ($map_user['Down'] == 1) {
$forest['room'] = 'cell_' . ($forest['room_id'] + 5);
$forest['room_id'] = $forest['room_id'] + 5;
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 02.';
}
} elseif ($_GET['Dir'] == 'Left') {
if ($map_user['Left'] == 1) {
$forest['room'] = 'cell_' . ($forest['room_id'] - 1);
$forest['room_id'] = $forest['room_id'] - 1;
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 03.';
}
} elseif ($_GET['Dir'] == 'Right') {
if ($map_user['Right'] == 1) {
$forest['room'] = 'cell_' . ($forest['room_id'] + 1);
$forest['room_id'] = $forest['room_id'] + 1;
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 04.';
}
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 01.';
$error = 'Not in this life';
}
} elseif($_GET['Dir'] == 'Down') {
if($map_user['Down'] == 1) {
mysql_query('UPDATE `forest` SET `room` = "cell_'.($forest['room_id']+5).'", `room_id` = "'.($forest['room_id']+5).'" WHERE `id` = "'.$forest['id'].'" LIMIT 1');
$forest['room'] = 'cell_'.($forest['room_id']+5); $forest['room_id'] = $forest['room_id']+5;
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 02.';
}
} elseif($_GET['Dir'] == 'Left') {
if($map_user['Left'] == 1) {
$forest['room'] = 'cell_'.($forest['room_id']-1); $forest['room_id'] = $forest['room_id']-1;
mysql_query('UPDATE `forest` SET `room` = "'.$forest['room'].'", `room_id` = "'.$forest['room_id'].'" WHERE `id` = "'.$forest['id'].'" LIMIT 1');
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 03.';
}
} elseif($_GET['Dir'] == 'Right') {
if($map_user['Right'] == 1) {
$forest['room'] = 'cell_'.($forest['room_id']+1); $forest['room_id'] = $forest['room_id']+1;
mysql_query('UPDATE `forest` SET `room` = "'.$forest['room'].'", `room_id` = "'.$forest['room_id'].'" WHERE `id` = "'.$forest['id'].'" LIMIT 1');
} else {
$error = 'Ошибка. Сообщите Администрации. Код ошибки : 04.';
}
} else {
$error = 'Not in this life';
}
if (empty($error)) db::c()->query('UPDATE `forest` SET `room` = "?s", `room_id` = ?i WHERE `id` = ?i', $forest['room'], $forest['room_id'], $forest['id']);
}
if ($map_user['Right'] == 1) $map_page = <<<MAP
<img style="position: absolute; bottom: 30px; left: 740px; cursor: pointer; width: 20px; height: 117px;"
class="pngimg" src="i/forest/pointer_2.png" title="{$var_map['cell_' . ($forest['room_id'] + 1)]}"
onclick="location.href='?move=true&Dir=Right';"/>
MAP;
if ($map_user['Left'] == 1) $map_page = <<<MAP
<img style="position: absolute; bottom: 30px; left: 20px; cursor: pointer; width: 20px; height: 117px; "
class="pngimg" src="i/forest/pointer_6.png" title="{$var_map['cell_' . ($forest['room_id'] - 1)]}"
onclick="location.href='?move=true&Dir=Left';"/>
MAP;
if ($map_user['Down'] == 1) $map_page = <<<MAP
<img style="position: absolute; bottom: 10px; left: 332px; cursor: pointer; width: 117px; height: 20px;"
class="pngimg" src="i/forest/pointer_4.png" title="{$var_map['cell_' . ($forest['room_id'] + 5)]}"
onclick="location.href='?move=true&Dir=Down';"/>
MAP;
if ($map_user['Up'] == 1) $map_page = <<<MAP
<img style="position: absolute; bottom: 30px; left: 740px; cursor: pointer; width: 117px; height: 20px;"
class="pngimg" src="i/forest/pointer_8.png" title="{$var_map['cell_' . ($forest['room_id'] + 5)]}"
onclick="location.href='?move=true&Dir=Up';"/>
MAP;
?>
<html>
<!doctype html>
<html lang="ru">
<head>
<title>404</title>
<script src="js/jquery-1.7.2.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/hostel.css" />
<style>
.bt {
border: solid 1px #b0b0b0;
margin-top: 1px;
margin-bottom: 2px;
font-size: 11px;
color: #191970;
float: right;
margin-right: 18px;
}
</style>
<title>forest</title>
<script src="js/jquery-1.7.2.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/hostel.css"/>
<style>
.bt {
border: solid 1px #b0b0b0;
margin-top: 1px;
margin-bottom: 2px;
font-size: 11px;
color: #191970;
float: right;
margin-right: 18px;
}
</style>
</head>
<body>
<div id="ajaxContainer" style="display: none;"></div>
<div class="contentContainer">
<div class="buttonContainer">
<input type="button" class="bt" value="Обновить" onclick="location.href='c_forest.php';" />
<input type="button" class="bt" value="Выйти из лесу" onclick="location.href='c_forest.php?exit_forest=true';" />
<div style="float: left;padding-left: 50px;">
<span id="hpKey_378332" class="hpContainer hpContainer-g">
<img src="/i/herz.gif" width="10" height="10" alt="Уровень жизни" />
<img src="/i/1green.gif" width="122" height="10" alt="Уровень жизни" />
<img src="/i/1silver.gif" width="0" height="10" alt="уровень жизни" />: 300/300
</span>
<div class="buttonContainer">
<input type="button" class="bt" value="Обновить" onclick="location.href='c_forest.php';"/>
<input type="button" class="bt" value="Выйти из лесу" onclick="location.href='c_forest.php?exit_forest=true';"/>
<div style="float: left;padding-left: 50px;">
<span id="hpKey_378332" class="hpContainer hpContainer-g">
<img src="/i/herz.gif" width="10" height="10" alt="Уровень жизни"/>
<img src="/i/1green.gif" width="122" height="10" alt="Уровень жизни"/>
<img src="/i/1silver.gif" width="0" height="10" alt="уровень жизни"/>: 300/300
</span>
</div>
</div>
<div id="systemMsg" class="system-msg">
<?php if (!empty($error)): ?>
<b style='color: Red;'>' . $error . '</b>
<?php endif; ?>
</div>
<div style="position: relative; width: 780px; height: 350px; background-image: url('forest/<?= $forest['room'] ?>.jpg');">
<?= $map_page ?>
</div>
</div>
<div id="systemMsg" class="system-msg"></div>
<div style="position: relative; width: 780px; height: 350px; background-image: url('forest/<?=$forest['room'];?>.jpg');">
<? if($map_user['Right'] == 1) { ?>
<img style="position: absolute; bottom: 30px; left: 740px; cursor: pointer; width: 20px; height: 117px; border: 0 solid blue;" class="pngimg" src="i/forest/pointer_2.png" title="<?=$var_map['cell_'.($forest['room_id']+1)];?>" onclick="location.href='?move=true&Dir=Right';" />
<? } ?>
<? if($map_user['Left'] == 1) { ?>
<img style="position: absolute; bottom: 30px; left: 20px; cursor: pointer; width: 20px; height: 117px; border: 0 solid blue;" class="pngimg" src="i/forest/pointer_6.png" title="<?=$var_map['cell_'.($forest['room_id']-1)];?>" onclick="location.href='?move=true&Dir=Left';" />
<? } ?>
<? if($map_user['Down'] == 1) { ?>
<img style="position: absolute; bottom: 10px; left: 332px; cursor: pointer; width: 117px; height: 20px; border: 0 solid blue;" class="pngimg" src="i/forest/pointer_4.png" title="<?=$var_map['cell_'.($forest['room_id']+5)];?>" onclick="location.href='?move=true&Dir=Down';" />
<? } ?>
<? if($map_user['Up'] == 1) { ?>
<img style="position: absolute; bottom: 127px; left: 332px; cursor: pointer; width: 117px; height: 20px; border: 0 solid blue;" class="pngimg" src="i/forest/pointer_8.png" title="<?=$var_map['cell_'.($forest['room_id']-5)];?>" onclick="location.href='?move=true&Dir=Up';" />
<? } ?>
</div>
<? if($error != '') { echo '<center><b style=\'color: Red;\'>'.$error.'</b></center>'; } ?>
</div>
</body>
</html>

View File

@ -30,3 +30,369 @@ require_once('Database/db.php');
spl_autoload_register(function ($class_name) {
include_once 'classes/' . $class_name . '.php';
});
/* === Для нападалок. Сперва комнаты в которых нельзя напасть, потом персонаж на которого нельзя напасть. === */
$unkilable = [
'rooms' => [620, 621, 1051, 1052],
'users' => [10962, 10964, 10965]
];
// ???
$canalenters = [620];
$caverooms = [621];
$userslots = ['sergi', 'kulon', 'perchi', 'weap', 'bron', 'r1', 'r2', 'r3', 'helm', 'shit', 'boots', 'rybax', 'plaw', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'm9', 'm10'];
$rooms = [
0 => "Секретная Комната",
1 => "Дом поединков",
20 => "Центральная площадь",
21 => "Страшилкина улица",
22 => "Магазин",
23 => "Ремонтная мастерская",
24 => "Памятник Архангелу",
25 => "Комиссионный магазин",
26 => "Большая парковая улица",
27 => "Почта",
28 => "Регистратура кланов",
29 => "Банк",
30 => "Регистратура кланов (мираж)",
31 => "Башня смерти",
32 => "Готический замок",
33 => "Лабиринт хаоса",
34 => "Цветочный магазин",
35 => "Сувенирный магазин",
37 => "Готический замок - приемная",
38 => "Готический замок - арсенал",
39 => "Готический замок - внутренний двор",
40 => "Готический замок - мастерские",
41 => "Готический замок - комнаты отдыха",
42 => "Лотерея Сталкеров",
43 => "Хижина Знахаря",
44 => "Новогодняя елка",
45 => "Замок Мэра",
47 => "Замок (строительство)",
48 => "Обитель Хаоса",
49 => "Проход к Цитадели Хаоса",
50 => "Магазин Берёзка",
51 => "Парковая улица",
52 => "Квартал Законников",
53 => "Библиотека",
200 => "Турнир",
401 => "Врата Ада",
// БС
501 => "Восточная Крыша",
502 => "Бойница",
503 => "Келья 3",
504 => "Келья 2",
505 => "Западная Крыша 2",
506 => "Келья 4",
507 => "Келья 1",
508 => "Служебная комната",
509 => "Зал Отдыха 2",
510 => "Западная Крыша 1",
511 => "Выход на Крышу",
512 => "Зал Статуй 2",
513 => "Храм",
514 => "Восточная комната",
515 => "Зал Отдыха 1",
516 => "Старый Зал 2",
517 => "Старый Зал 1",
518 => "Красный Зал 3",
519 => "Зал Статуй 1",
520 => "Зал Статуй 3",
521 => "Трапезная 3",
522 => "Зал Ожиданий",
523 => "Оружейная",
524 => "Красный Зал-Окна",
525 => "Красный Зал",
526 => "Гостинная",
527 => "Трапезная 1",
528 => "Внутренний Двор",
529 => "Внутр.Двор-Вход",
530 => "Желтый Коридор",
531 => "Мраморный Зал 1",
532 => "Красный Зал 2",
533 => "Библиотека 1",
534 => "Трапезная 2",
535 => "Проход Внутр. Двора",
536 => "Комната с Камином",
537 => "Библиотека 3",
538 => "Выход из Мрам.Зала",
539 => "Красный Зал-Коридор",
540 => "Лестница в Подвал 1",
541 => "Южный Внутр. Двор",
542 => "Трапезная 4",
543 => "Мраморный Зал 3",
544 => "Мраморный Зал 2",
545 => "Картинная Галерея 1",
546 => "Лестница в Подвал 2",
547 => "Проход Внутр. Двора 2",
548 => "Внутр.Двор-Выход",
549 => "Библиотека 2",
550 => "Картинная Галерея 3",
551 => "Картинная Галерея 2",
552 => "Лестница в Подвал 3",
553 => "Терасса",
554 => "Оранжерея",
555 => "Зал Ораторов",
556 => "Лестница в Подвал 4",
557 => "Темная Комната",
558 => "Винный Погреб",
559 => "Комната в Подвале",
560 => "Подвал",
600 => "Вход в Цитадель Хаоса",
601 => "Цитадель Хаоса",
602 => "Городской парк",
603 => "Арена Ангелов",
620 => "Вход в Рудник",
621 => "Рудник",
660 => "Гостиница, холл",
661 => "Гостиница",
662 => "Памятник Архангелу",
// Клановая улица
650 => "Клановая улица",
651 => "Клановая улица",
652 => "Клановый Замок",
760 => "Тёмный Лес",
1000 => "Вход в рудник",
1001 => "Рудник",
1051 => "Вход в Лабиринты",
1052 => "Лабиринты",
1053 => "Храмовая лавка",
1054 => "Фонтан Удачи",
1055 => "Групповое сражение",
// Тайный проход из Клуба в Замок Законников
2000 => "Подземный проход",
2001 => "Подземный проход (1)",
2002 => "Подземный проход (2)",
2003 => "Подземный проход (3)",
2004 => "Подземный проход (4)",
2005 => "Подземный проход (5)",
2006 => "Подземный проход (6)",
2007 => "Подземный проход (7)",
2008 => "Подземный проход (8)",
2009 => "Подземный проход (9)",
2010 => "Подземный проход (10)",
2011 => "Подземный проход (11)",
2012 => "Подземный проход (12)",
2013 => "Подземный проход (13)",
2014 => "Подземный проход (14)",
2015 => "Подземный проход (15)",
2016 => "Подземный проход (16)",
2017 => "Подземный проход (17)",
2018 => "Подземный проход (18)",
2019 => "Подземный проход (19)",
2020 => "Подземный проход (20)",
2021 => "Подземный проход (21)",
2022 => "Подземный проход (22)",
2023 => "Подземный проход (23)",
2024 => "Подземный проход (24)",
2025 => "Подземный проход (25)",
2026 => "Подземный проход (26)",
2027 => "Подземный проход (27)",
2028 => "Подземный проход (28)",
2029 => "Подземный проход (29)",
2030 => "Подземный проход (30)",
2031 => "Подземный проход (31)",
2032 => "Подземный проход (32)",
2033 => "Подземный проход (33)",
2034 => "Подземный проход (34)",
2035 => "Подземный проход (35)",
2036 => "Подземный проход (36)",
2037 => "Подземный проход (37)",
2038 => "Подземный проход (38)",
2039 => "Подземный проход (39)",
2040 => "Подземный проход (40)",
2041 => "Подземный проход (41)",
2042 => "Подземный проход (42)",
2043 => "Подземный проход (43)",
2044 => "Подземный проход (44)",
2045 => "Подземный проход (45)",
2046 => "Подземный проход (46)",
2047 => "Подземный проход (47)",
2048 => "Подземный проход (48)",
2049 => "Подземный проход (49)",
2050 => "Подземный проход (50)",
2051 => "Подземный проход (51)",
2052 => "Подземный проход (52)",
2053 => "Подземный проход (53)",
2054 => "Подземный проход (54)",
2055 => "Подземный проход (55)",
2056 => "Подземный проход (56)",
2057 => "Подземный проход (57)",
2100 => "Сектор 2100",
2655 => "Арена Богов",
2601 => "Замковая Площадь",
2702 => "Центральная площадь (мираж)",
];
//эффективность магии
$elem_align = [
"a" => ["a" => "1", "e" => "0", "f" => "0.5", "w" => "0.5"],
"e" => ["a" => "0", "e" => "1", "f" => "0.5", "w" => "0.5"],
"f" => ["a" => "0.5", "e" => "0.5", "f" => "1", "w" => "0"],
"w" => ["a" => "0.5", "e" => "0.5", "f" => "0", "w" => "1"],
];
$elem_bonus = [
"a" => ["a" => "1", "e" => "0.75", "f" => "1.25", "w" => "1"],
"e" => ["a" => "1.25", "e" => "1", "f" => "1", "w" => "0.75"],
"f" => ["a" => "0.75", "e" => "1", "f" => "1", "w" => "1.25"],
"w" => ["a" => "1", "e" => "1.25", "f" => "0.75", "w" => "1"],
];
// Опыт и бонусы??
$exptable = [
0 => [0, 0, 0, 0, 0, 20],
20 => [1, 0, 0, 0, 0, 45],
45 => [1, 0, 0, 2, 0, 75],
75 => [1, 0, 0, 4, 0, 110],
110 => [3, 1, 1, 8, 1, 160], # Это первый уровень
160 => [1, 0, 0, 2, 0, 215],
215 => [1, 0, 0, 2, 0, 280],
280 => [1, 0, 0, 4, 0, 350],
350 => [1, 0, 0, 8, 0, 410],
410 => [3, 1, 1, 16, 1, 530], # Это второй уровень
530 => [1, 0, 0, 8, 0, 670],
670 => [1, 0, 0, 12, 0, 830],
830 => [1, 0, 0, 16, 0, 950],
950 => [1, 0, 0, 24, 0, 1100],
1100 => [1, 0, 0, 32, 0, 1300],
1300 => [3, 1, 1, 40, 1, 1450], # Это третий уровень
1450 => [1, 0, 0, 10, 0, 1650],
1650 => [1, 0, 0, 20, 0, 1850],
1850 => [1, 0, 0, 30, 0, 2050],
2050 => [1, 0, 0, 40, 0, 2200],
2200 => [1, 0, 0, 50, 0, 2500],
2500 => [5, 1, 1, 70, 1, 2900], # Это четвёртый уровень
2900 => [1, 0, 0, 10, 0, 3350],
3350 => [1, 0, 0, 20, 0, 3800],
3800 => [1, 0, 0, 30, 0, 4200],
4200 => [1, 0, 0, 40, 0, 4600],
4600 => [1, 0, 0, 50, 0, 5000],
5000 => [3, 1, 1, 80, 1, 6000], # Это пятый уровень
6000 => [1, 0, 0, 15, 0, 7000],
7000 => [1, 0, 0, 30, 0, 8000],
8000 => [1, 0, 0, 40, 0, 9000],
9000 => [1, 0, 0, 50, 0, 10000],
10000 => [1, 0, 0, 40, 0, 11000],
11000 => [1, 0, 0, 50, 0, 12000],
12000 => [1, 0, 0, 60, 0, 12500],
12500 => [3, 1, 1, 90, 1, 14000], # Это шестой уровень
14000 => [1, 0, 0, 20, 0, 15500],
15500 => [1, 0, 0, 30, 0, 17000],
17000 => [1, 0, 0, 50, 0, 19000],
19000 => [1, 0, 0, 55, 0, 21000],
21000 => [1, 0, 0, 50, 0, 23000],
23000 => [1, 0, 0, 55, 0, 27000],
27000 => [1, 0, 0, 50, 0, 30000],
30000 => [5, 1, 1, 100, 1, 60000], # Это седьмой уровень
60000 => [1, 0, 0, 100, 0, 75000],
75000 => [1, 0, 0, 100, 0, 150000],
150000 => [1, 0, 0, 150, 0, 175000],
175000 => [1, 0, 0, 50, 0, 200000],
200000 => [1, 0, 0, 100, 0, 225000],
225000 => [1, 0, 0, 50, 0, 250000],
250000 => [1, 0, 0, 100, 0, 260000],
260000 => [1, 0, 0, 50, 0, 280000],
280000 => [1, 0, 0, 100, 0, 300000],
300000 => [5, 1, 1, 700, 1, 1500000], # Это восьмой уровень
1500000 => [1, 0, 0, 500, 0, 1750000],
1750000 => [1, 0, 0, 200, 0, 2000000],
2000000 => [1, 0, 0, 300, 0, 2175000],
2175000 => [1, 0, 0, 100, 0, 2300000],
2300000 => [1, 0, 0, 100, 0, 2400000],
2400000 => [1, 0, 0, 100, 0, 2500000],
2500000 => [1, 0, 0, 200, 0, 2600000],
2600000 => [1, 0, 0, 100, 0, 2800000],
2800000 => [1, 0, 0, 200, 0, 3000000],
3000000 => [5, 1, 2, 1000, 1, 6000000], # Это девятый уровень
6000000 => [1, 0, 0, 200, 0, 6500000],
6500000 => [1, 0, 0, 250, 0, 7500000],
7500000 => [1, 0, 0, 200, 0, 8500000],
8500000 => [1, 0, 0, 250, 0, 9000000],
9000000 => [1, 0, 0, 400, 0, 9250000],
9250000 => [1, 0, 0, 250, 0, 9500000],
9500000 => [1, 0, 0, 400, 0, 9750000],
9750000 => [1, 0, 0, 350, 0, 9900000],
9900000 => [1, 0, 0, 500, 0, 10000000],
10000000 => [9, 1, 3, 2000, 1, 13000000], # Это десятый уровень
13000000 => [2, 0, 0, 200, 0, 14000000],
14000000 => [2, 0, 0, 200, 0, 15000000],
15000000 => [2, 0, 0, 200, 0, 16000000],
16000000 => [2, 0, 0, 200, 0, 17000000],
17000000 => [2, 0, 0, 200, 0, 17500000],
17500000 => [2, 0, 0, 200, 0, 18000000],
18000000 => [2, 0, 0, 200, 0, 19000000],
19000000 => [2, 0, 0, 200, 0, 19500000],
19500000 => [2, 0, 0, 200, 0, 20000000],
20000000 => [2, 0, 0, 250, 0, 30000000],
30000000 => [2, 0, 0, 200, 0, 32000000],
32000000 => [2, 0, 0, 250, 0, 34000000],
34000000 => [2, 0, 0, 200, 0, 35000000],
35000000 => [2, 0, 0, 250, 0, 36000000],
36000000 => [2, 0, 0, 200, 0, 38000000],
38000000 => [2, 0, 0, 250, 0, 40000000],
40000000 => [2, 0, 0, 200, 0, 42000000],
42000000 => [2, 0, 0, 250, 0, 44000000],
44000000 => [2, 0, 0, 350, 0, 47000000],
47000000 => [2, 0, 0, 300, 0, 50000000],
50000000 => [2, 0, 0, 350, 0, 52000000],
52000000 => [10, 1, 3, 3000, 1, 58000000], # Это одиннадцатый уровень
58000000 => [1, 0, 0, 350, 0, 65000000],
65000000 => [1, 0, 0, 300, 0, 72000000],
72000000 => [1, 0, 0, 350, 0, 77000000],
77000000 => [1, 0, 0, 350, 0, 82000000],
82000000 => [1, 0, 0, 300, 0, 87000000],
87000000 => [1, 0, 0, 350, 0, 92000000],
92000000 => [1, 0, 0, 350, 0, 100000000],
100000000 => [1, 0, 0, 350, 0, 120000000],
120000000 => [2, 0, 0, 400, 0, 140000000],
140000000 => [2, 0, 0, 400, 0, 160000000],
160000000 => [2, 0, 0, 600, 0, 180000000],
180000000 => [2, 0, 0, 400, 0, 210000000],
210000000 => [2, 0, 0, 400, 0, 240000000],
240000000 => [10, 2, 4, 5000, 1, 260000000], # Это двеннадцатый уровень
260000000 => [2, 0, 0, 400, 0, 320000000],
320000000 => [2, 0, 0, 400, 0, 400000000],
400000000 => [3, 0, 0, 600, 0, 455000000],
455000000 => [2, 0, 0, 150, 0, 510000000],
510000000 => [2, 0, 0, 100, 0, 600000000],
600000000 => [2, 0, 0, 300, 0, 750000000],
750000000 => [5, 0, 0, 700, 0, 770000000],
770000000 => [1, 0, 0, 400, 0, 815000000],
815000000 => [1, 0, 0, 200, 0, 860000000],
860000000 => [1, 0, 0, 600, 0, 1000000000],
1000000000 => [1, 0, 0, 300, 0, 1100000000],
1100000000 => [1, 0, 0, 450, 0, 1250000000],
1250000000 => [1, 0, 0, 450, 0, 1500000000],
1500000000 => [10, 1, 5, 8000, 1, 9999999999], # Это тринадцатый уровень
];
// Нигде не используются?
$abils_array = ['attack', 'sleep', 'sleepf'];
$ab_user = ['sleep15', 'sleep30', 'closebattle', 'heal20', 'heal35', 'heal50', 'travmoff', 'attack', 'bloodattack', 'death', 'comment', 'openbattle', 'reamdeath', 'clone', 'unclone'];

View File

@ -208,11 +208,7 @@ class fbattle
function chanse($p)
{
if ($p > mt_rand(1, 100)) {
return true;
} else {
return false;
}
return $p > mt_rand(1, 100);
}
function get_info_by_id($id)
@ -253,21 +249,13 @@ class fbattle
function get_chanse($persent)
{
$mm = 1000000;
if (mt_rand($mm, 100 * $mm) <= $persent * $mm) {
return true;
} else {
return false;
}
return mt_rand($mm, 100 * $mm) <= $persent * $mm;
}
function get_block($who, $where_atack, $whom, $where_defend)
function get_block($where_atack, $where_defend)
{
$blocks = array('1' => array(1, 2), '2' => array(2, 3), '3' => array(3, 4), '4' => array(4, 1));
if (!in_array($where_atack, $blocks[$where_defend])) {
return true;
} else {
return false;
}
return !in_array($where_atack, $blocks[$where_defend]);
}
function add_log($text)
@ -502,7 +490,6 @@ class fbattle
}
if ($lomka) {
$haos_flag = 0;
foreach ($lomka as $k => $v) {
if (mt_rand(1, 6) == 1) {
$us = mysql_query('UPDATE `inventory` SET `duration` = (`duration`+1) WHERE `type` != 12 AND `dressed` = 1 AND `owner` = \'' . $v . '\'');
@ -635,11 +622,6 @@ class fbattle
function end_gora()
{
if ($this->GetTimeout()) {
foreach ($this->team_mine as $v) {
if (in_array($v, array_keys($this->battle))) {
$vvv = $v;
}
}
$this->AddToLog("<span class=date>" . date("H:i") . "</span> Бой закончен по таймауту.<BR>");
foreach ($this->team_enemy as $v => $k) {
@ -1093,11 +1075,7 @@ class fbattle
$uid = $this->user['id'];
}
$ins = mysql_query('INSERT INTO `actions` (`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`) VALUES ("' . $uid . '", "' . $time . '", "capitalcity", "0", "' . mysql_real_escape_string($vars) . '", "' . mysql_real_escape_string($_SERVER['HTTP_X_REAL_IP']) . '", "' . mysql_real_escape_string($vls) . '")');
if ($ins) {
return true;
} else {
return false;
}
return $ins;
}
function GetWeaponType($idwep)
@ -1124,7 +1102,6 @@ class fbattle
function razmen_log($type, $kuda, $chem, $uron, $kto, $c1, $pokomy, $c2, $hp, $maxhp)
{
$color = $this->gen_color($kto, $pokomy);
if ($this->enemyhar['sex'] && $kto == $this->enemyhar['id']) {
$sex1 = false;
}
@ -1257,11 +1234,7 @@ class fbattle
function get_blocks($where_atack, $where_defend)
{
$blocks = array('1' => array(1, 2), '2' => array(2, 3), '3' => array(3, 4), '4' => array(4, 1));
if (!in_array($where_atack, $blocks[$where_defend])) {
return true;
} else {
return false;
}
return !in_array($where_atack, $blocks[$where_defend]);
}
function GetBlock($komy, $att, $def, $enemy)
@ -1270,19 +1243,11 @@ class fbattle
switch ($komy) {
case "me" :
if (in_array($this->battle[$enemy][$this->user['id']][0], $blocks[$def])) {
return true;
} else {
return false;
}
return in_array($this->battle[$enemy][$this->user['id']][0], $blocks[$def]);
break;
case "he" :
if (in_array($this->battle[$enemy][$this->user['id']][1], $blocks[$att])) {
return true;
} else {
return false;
}
return in_array($this->battle[$enemy][$this->user['id']][1], $blocks[$att]);
break;
}
}
@ -1290,11 +1255,7 @@ class fbattle
function GetChance($percent)
{
$mm = 1;
if (rand($mm, 100 * $mm) <= $percent * $mm) {
return true;
} else {
return false;
}
return rand($mm, 100 * $mm) <= $percent * $mm;
}
function SelectEnemy()

View File

@ -39,6 +39,7 @@ $fbattle = new fbattle($user['battle']);
<?}?>
const timerID = setTimeout("refreshPeriodic()", 20000);
}
timerID = setTimeout("refreshPeriodic()", 20000);
</SCRIPT>
<script>
@ -170,8 +171,8 @@ $fbattle = new fbattle($user['battle']);
</table>
<center>
<? if ($user['level'] > 3) {
if (@$_GET['use']) {
$dressed = mysql_fetch_row(mysql_query("SELECT `id` FROM `inventory` WHERE `id` = '" . (int)$_GET['use'] . "' AND `dressed` = 1"));
if ($_GET['use']) {
$dressed = db::c()->query('SELECT `id` FROM `inventory` WHERE `id` = ?i AND `dressed` = 1', $_GET['use'])->fetch_row();
if ((int)$dressed[0] > 0) {
$my_class = $fbattle->my_class;
ob_start();
@ -334,7 +335,7 @@ $fbattle = new fbattle($user['battle']);
$ll_r = mysql_fetch_array(mysql_query("SELECT `id` FROM `battle` WHERE (`t1` LIKE '%{$user['id']}%' || `t2` LIKE '%{$user['id']}%') AND `win` = '3' LIMIT 1"));
$ll = $ll_r['id'];
}
$data = @mysql_fetch_array(mysql_query("SELECT * FROM `battle` WHERE `id` = {$ll} LIMIT 1"));
$data = db::c()->query('SELECT * FROM `battle` WHERE `id` = ?i', $ll)->fetch_assoc();
$damage = unserialize($data['damage']);
$exp = unserialize($data['exp']);
if (empty($damage[$user['id']])) {
@ -356,7 +357,6 @@ $fbattle = new fbattle($user['battle']);
} else {
?>
</center>
<? }
if ($fbattle->battle) {
@ -487,7 +487,7 @@ $fbattle = new fbattle($user['battle']);
echo showinf_pers($fbattle->enemy, 1);
} else {
if ($fbattle->battle_data['type'] == 4 || $fbattle->battle_data['type'] == 5) {
$a = array(6, 16);
$a = [6, 16];
echo "<img src='i/im/" . $a[mt_rand(0, 1)] . ".gif' />";
} elseif ($fbattle->return > 1) {
echo "<img src='i/im/" . mt_rand(1, 34) . ".jpg' />";
@ -507,8 +507,8 @@ $fbattle = new fbattle($user['battle']);
if ($k > _BOTSEPARATOR_) {
foreach ($v as $k2 => $v2) {
if ($k2 < _BOTSEPARATOR_) continue;
$hp_1 = mysql_fetch_array(mysql_query('SELECT `hp` FROM `bots` WHERE `id` = "' . $k . '" LIMIT 1'));
$hp_2 = mysql_fetch_array(mysql_query('SELECT `hp` FROM `bots` WHERE `id` = "' . $k2 . '" LIMIT 1'));
$hp_1 = db::c()->query('SELECT `hp` FROM `bots` WHERE `id` = ?i', $k)->fetch_assoc();
$hp_2 = db::c()->query('SELECT `hp` FROM `bots` WHERE `id` = ?i', $k2)->fetch_assoc();
if ($fbattle->battle[$k][$k2][0] && $fbattle->battle[$k2][$k][0] && $hp_1['hp'] > 0 && $hp_2['hp'] > 0 && time() - $fbattle->battle[$k][$k2][2] > 1 && time() - $fbattle->battle[$k2][$k][2] > 1) {
$at_1 = $fbattle->battle[$k][$k2][0];
$def_1 = $fbattle->battle[$k][$k2][1];
@ -516,8 +516,8 @@ $fbattle = new fbattle($user['battle']);
$def_2 = $fbattle->battle[$k2][$k][1];
$fbattle->makechange($k, $k2, $at_1, $at_2, $def_1, $def_2);
$fbattle->write_log();
$fbattle->battle[$k][$k2] = array(0, 0, time());
$fbattle->battle[$k2][$k] = array(0, 0, time());
$fbattle->battle[$k][$k2] = [0, 0, time()];
$fbattle->battle[$k2][$k] = [0, 0, time()];
$fbattle->needupdate = 1;
}
}
@ -544,4 +544,6 @@ $fbattle = new fbattle($user['battle']);
</body>
</html>
<?php mysql_query("UNLOCK TABLES"); ?>
<?php
db::c()->query('UNLOCK TABLES');
?>

View File

@ -17,7 +17,8 @@ if (isset($user['id']) && $user['block'] == 1) {
die();
}
define("HPADDICTIONEFFECT", 33);
// ???
//define("HPADDICTIONEFFECT", 33);
$ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP);
@ -44,18 +45,6 @@ function createbot($bot, $login = "")
}
}
/* === Для нападалок. Сперва комнаты в которых нельзя напасть, потом персонаж на которого нельзя напасть. === */
$unkilable = [
'rooms' => [620, 621, 1051, 1052],
'users' => [10962, 10964, 10965]
];
$canalenters = [620];
$caverooms = [621];
$userslots = ['sergi', 'kulon', 'perchi', 'weap', 'bron', 'r1', 'r2', 'r3', 'helm', 'shit', 'boots', 'rybax', 'plaw', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'm9', 'm10'];
function getuserdata($id = 0)
{
if (!$id) $id = isset($_SESSION['uid']) ? $_SESSION['uid'] : null; // Хорошее решение проверок, кстати.
@ -175,361 +164,8 @@ function takeshopitem($item, $table = "shop", $present = '', $onlyonetrip = '',
return ["img" => $rec1['img'], "name" => $rec1['name'], "id" => mysql_insert_id()];
}
$abils_array = ['attack', 'sleep', 'sleepf'];
$ab_user = ['sleep15', 'sleep30', 'closebattle', 'heal20', 'heal35', 'heal50', 'travmoff', 'attack', 'bloodattack', 'death', 'comment', 'openbattle', 'reamdeath', 'clone', 'unclone'];
define('_BOTSEPARATOR_', 10000000);
$exptable = [
0 => [0, 0, 0, 0, 0, 20],
20 => [1, 0, 0, 0, 0, 45],
45 => [1, 0, 0, 2, 0, 75],
75 => [1, 0, 0, 4, 0, 110],
110 => [3, 1, 1, 8, 1, 160], # Это первый уровень
160 => [1, 0, 0, 2, 0, 215],
215 => [1, 0, 0, 2, 0, 280],
280 => [1, 0, 0, 4, 0, 350],
350 => [1, 0, 0, 8, 0, 410],
410 => [3, 1, 1, 16, 1, 530], # Это второй уровень
530 => [1, 0, 0, 8, 0, 670],
670 => [1, 0, 0, 12, 0, 830],
830 => [1, 0, 0, 16, 0, 950],
950 => [1, 0, 0, 24, 0, 1100],
1100 => [1, 0, 0, 32, 0, 1300],
1300 => [3, 1, 1, 40, 1, 1450], # Это третий уровень
1450 => [1, 0, 0, 10, 0, 1650],
1650 => [1, 0, 0, 20, 0, 1850],
1850 => [1, 0, 0, 30, 0, 2050],
2050 => [1, 0, 0, 40, 0, 2200],
2200 => [1, 0, 0, 50, 0, 2500],
2500 => [5, 1, 1, 70, 1, 2900], # Это четвёртый уровень
2900 => [1, 0, 0, 10, 0, 3350],
3350 => [1, 0, 0, 20, 0, 3800],
3800 => [1, 0, 0, 30, 0, 4200],
4200 => [1, 0, 0, 40, 0, 4600],
4600 => [1, 0, 0, 50, 0, 5000],
5000 => [3, 1, 1, 80, 1, 6000], # Это пятый уровень
6000 => [1, 0, 0, 15, 0, 7000],
7000 => [1, 0, 0, 30, 0, 8000],
8000 => [1, 0, 0, 40, 0, 9000],
9000 => [1, 0, 0, 50, 0, 10000],
10000 => [1, 0, 0, 40, 0, 11000],
11000 => [1, 0, 0, 50, 0, 12000],
12000 => [1, 0, 0, 60, 0, 12500],
12500 => [3, 1, 1, 90, 1, 14000], # Это шестой уровень
14000 => [1, 0, 0, 20, 0, 15500],
15500 => [1, 0, 0, 30, 0, 17000],
17000 => [1, 0, 0, 50, 0, 19000],
19000 => [1, 0, 0, 55, 0, 21000],
21000 => [1, 0, 0, 50, 0, 23000],
23000 => [1, 0, 0, 55, 0, 27000],
27000 => [1, 0, 0, 50, 0, 30000],
30000 => [5, 1, 1, 100, 1, 60000], # Это седьмой уровень
60000 => [1, 0, 0, 100, 0, 75000],
75000 => [1, 0, 0, 100, 0, 150000],
150000 => [1, 0, 0, 150, 0, 175000],
175000 => [1, 0, 0, 50, 0, 200000],
200000 => [1, 0, 0, 100, 0, 225000],
225000 => [1, 0, 0, 50, 0, 250000],
250000 => [1, 0, 0, 100, 0, 260000],
260000 => [1, 0, 0, 50, 0, 280000],
280000 => [1, 0, 0, 100, 0, 300000],
300000 => [5, 1, 1, 700, 1, 1500000], # Это восьмой уровень
1500000 => [1, 0, 0, 500, 0, 1750000],
1750000 => [1, 0, 0, 200, 0, 2000000],
2000000 => [1, 0, 0, 300, 0, 2175000],
2175000 => [1, 0, 0, 100, 0, 2300000],
2300000 => [1, 0, 0, 100, 0, 2400000],
2400000 => [1, 0, 0, 100, 0, 2500000],
2500000 => [1, 0, 0, 200, 0, 2600000],
2600000 => [1, 0, 0, 100, 0, 2800000],
2800000 => [1, 0, 0, 200, 0, 3000000],
3000000 => [5, 1, 2, 1000, 1, 6000000], # Это девятый уровень
6000000 => [1, 0, 0, 200, 0, 6500000],
6500000 => [1, 0, 0, 250, 0, 7500000],
7500000 => [1, 0, 0, 200, 0, 8500000],
8500000 => [1, 0, 0, 250, 0, 9000000],
9000000 => [1, 0, 0, 400, 0, 9250000],
9250000 => [1, 0, 0, 250, 0, 9500000],
9500000 => [1, 0, 0, 400, 0, 9750000],
9750000 => [1, 0, 0, 350, 0, 9900000],
9900000 => [1, 0, 0, 500, 0, 10000000],
10000000 => [9, 1, 3, 2000, 1, 13000000], # Это десятый уровень
13000000 => [2, 0, 0, 200, 0, 14000000],
14000000 => [2, 0, 0, 200, 0, 15000000],
15000000 => [2, 0, 0, 200, 0, 16000000],
16000000 => [2, 0, 0, 200, 0, 17000000],
17000000 => [2, 0, 0, 200, 0, 17500000],
17500000 => [2, 0, 0, 200, 0, 18000000],
18000000 => [2, 0, 0, 200, 0, 19000000],
19000000 => [2, 0, 0, 200, 0, 19500000],
19500000 => [2, 0, 0, 200, 0, 20000000],
20000000 => [2, 0, 0, 250, 0, 30000000],
30000000 => [2, 0, 0, 200, 0, 32000000],
32000000 => [2, 0, 0, 250, 0, 34000000],
34000000 => [2, 0, 0, 200, 0, 35000000],
35000000 => [2, 0, 0, 250, 0, 36000000],
36000000 => [2, 0, 0, 200, 0, 38000000],
38000000 => [2, 0, 0, 250, 0, 40000000],
40000000 => [2, 0, 0, 200, 0, 42000000],
42000000 => [2, 0, 0, 250, 0, 44000000],
44000000 => [2, 0, 0, 350, 0, 47000000],
47000000 => [2, 0, 0, 300, 0, 50000000],
50000000 => [2, 0, 0, 350, 0, 52000000],
52000000 => [10, 1, 3, 3000, 1, 58000000], # Это одиннадцатый уровень
58000000 => [1, 0, 0, 350, 0, 65000000],
65000000 => [1, 0, 0, 300, 0, 72000000],
72000000 => [1, 0, 0, 350, 0, 77000000],
77000000 => [1, 0, 0, 350, 0, 82000000],
82000000 => [1, 0, 0, 300, 0, 87000000],
87000000 => [1, 0, 0, 350, 0, 92000000],
92000000 => [1, 0, 0, 350, 0, 100000000],
100000000 => [1, 0, 0, 350, 0, 120000000],
120000000 => [2, 0, 0, 400, 0, 140000000],
140000000 => [2, 0, 0, 400, 0, 160000000],
160000000 => [2, 0, 0, 600, 0, 180000000],
180000000 => [2, 0, 0, 400, 0, 210000000],
210000000 => [2, 0, 0, 400, 0, 240000000],
240000000 => [10, 2, 4, 5000, 1, 260000000], # Это двеннадцатый уровень
260000000 => [2, 0, 0, 400, 0, 320000000],
320000000 => [2, 0, 0, 400, 0, 400000000],
400000000 => [3, 0, 0, 600, 0, 455000000],
455000000 => [2, 0, 0, 150, 0, 510000000],
510000000 => [2, 0, 0, 100, 0, 600000000],
600000000 => [2, 0, 0, 300, 0, 750000000],
750000000 => [5, 0, 0, 700, 0, 770000000],
770000000 => [1, 0, 0, 400, 0, 815000000],
815000000 => [1, 0, 0, 200, 0, 860000000],
860000000 => [1, 0, 0, 600, 0, 1000000000],
1000000000 => [1, 0, 0, 300, 0, 1100000000],
1100000000 => [1, 0, 0, 450, 0, 1250000000],
1250000000 => [1, 0, 0, 450, 0, 1500000000],
1500000000 => [10, 1, 5, 8000, 1, 9999999999], # Это тринадцатый уровень
];
$rooms = [
0 => "Секретная Комната",
1 => "Дом поединков",
20 => "Центральная площадь",
21 => "Страшилкина улица",
22 => "Магазин",
23 => "Ремонтная мастерская",
24 => "Памятник Архангелу",
25 => "Комиссионный магазин",
26 => "Большая парковая улица",
27 => "Почта",
28 => "Регистратура кланов",
29 => "Банк",
30 => "Регистратура кланов (мираж)",
31 => "Башня смерти",
32 => "Готический замок",
33 => "Лабиринт хаоса",
34 => "Цветочный магазин",
35 => "Сувенирный магазин",
37 => "Готический замок - приемная",
38 => "Готический замок - арсенал",
39 => "Готический замок - внутренний двор",
40 => "Готический замок - мастерские",
41 => "Готический замок - комнаты отдыха",
42 => "Лотерея Сталкеров",
43 => "Хижина Знахаря",
44 => "Новогодняя елка",
45 => "Замок Мэра",
47 => "Замок (строительство)",
48 => "Обитель Хаоса",
49 => "Проход к Цитадели Хаоса",
50 => "Магазин Берёзка",
51 => "Парковая улица",
52 => "Квартал Законников",
53 => "Библиотека",
200 => "Турнир",
401 => "Врата Ада",
// БС
501 => "Восточная Крыша",
502 => "Бойница",
503 => "Келья 3",
504 => "Келья 2",
505 => "Западная Крыша 2",
506 => "Келья 4",
507 => "Келья 1",
508 => "Служебная комната",
509 => "Зал Отдыха 2",
510 => "Западная Крыша 1",
511 => "Выход на Крышу",
512 => "Зал Статуй 2",
513 => "Храм",
514 => "Восточная комната",
515 => "Зал Отдыха 1",
516 => "Старый Зал 2",
517 => "Старый Зал 1",
518 => "Красный Зал 3",
519 => "Зал Статуй 1",
520 => "Зал Статуй 3",
521 => "Трапезная 3",
522 => "Зал Ожиданий",
523 => "Оружейная",
524 => "Красный Зал-Окна",
525 => "Красный Зал",
526 => "Гостинная",
527 => "Трапезная 1",
528 => "Внутренний Двор",
529 => "Внутр.Двор-Вход",
530 => "Желтый Коридор",
531 => "Мраморный Зал 1",
532 => "Красный Зал 2",
533 => "Библиотека 1",
534 => "Трапезная 2",
535 => "Проход Внутр. Двора",
536 => "Комната с Камином",
537 => "Библиотека 3",
538 => "Выход из Мрам.Зала",
539 => "Красный Зал-Коридор",
540 => "Лестница в Подвал 1",
541 => "Южный Внутр. Двор",
542 => "Трапезная 4",
543 => "Мраморный Зал 3",
544 => "Мраморный Зал 2",
545 => "Картинная Галерея 1",
546 => "Лестница в Подвал 2",
547 => "Проход Внутр. Двора 2",
548 => "Внутр.Двор-Выход",
549 => "Библиотека 2",
550 => "Картинная Галерея 3",
551 => "Картинная Галерея 2",
552 => "Лестница в Подвал 3",
553 => "Терасса",
554 => "Оранжерея",
555 => "Зал Ораторов",
556 => "Лестница в Подвал 4",
557 => "Темная Комната",
558 => "Винный Погреб",
559 => "Комната в Подвале",
560 => "Подвал",
600 => "Вход в Цитадель Хаоса",
601 => "Цитадель Хаоса",
602 => "Городской парк",
603 => "Арена Ангелов",
620 => "Вход в Рудник",
621 => "Рудник",
660 => "Гостиница, холл",
661 => "Гостиница",
662 => "Памятник Архангелу",
// Клановая улица
650 => "Клановая улица",
651 => "Клановая улица",
652 => "Клановый Замок",
760 => "Тёмный Лес",
1000 => "Вход в рудник",
1001 => "Рудник",
1051 => "Вход в Лабиринты",
1052 => "Лабиринты",
1053 => "Храмовая лавка",
1054 => "Фонтан Удачи",
1055 => "Групповое сражение",
// Тайный проход из Клуба в Замок Законников
2000 => "Подземный проход",
2001 => "Подземный проход (1)",
2002 => "Подземный проход (2)",
2003 => "Подземный проход (3)",
2004 => "Подземный проход (4)",
2005 => "Подземный проход (5)",
2006 => "Подземный проход (6)",
2007 => "Подземный проход (7)",
2008 => "Подземный проход (8)",
2009 => "Подземный проход (9)",
2010 => "Подземный проход (10)",
2011 => "Подземный проход (11)",
2012 => "Подземный проход (12)",
2013 => "Подземный проход (13)",
2014 => "Подземный проход (14)",
2015 => "Подземный проход (15)",
2016 => "Подземный проход (16)",
2017 => "Подземный проход (17)",
2018 => "Подземный проход (18)",
2019 => "Подземный проход (19)",
2020 => "Подземный проход (20)",
2021 => "Подземный проход (21)",
2022 => "Подземный проход (22)",
2023 => "Подземный проход (23)",
2024 => "Подземный проход (24)",
2025 => "Подземный проход (25)",
2026 => "Подземный проход (26)",
2027 => "Подземный проход (27)",
2028 => "Подземный проход (28)",
2029 => "Подземный проход (29)",
2030 => "Подземный проход (30)",
2031 => "Подземный проход (31)",
2032 => "Подземный проход (32)",
2033 => "Подземный проход (33)",
2034 => "Подземный проход (34)",
2035 => "Подземный проход (35)",
2036 => "Подземный проход (36)",
2037 => "Подземный проход (37)",
2038 => "Подземный проход (38)",
2039 => "Подземный проход (39)",
2040 => "Подземный проход (40)",
2041 => "Подземный проход (41)",
2042 => "Подземный проход (42)",
2043 => "Подземный проход (43)",
2044 => "Подземный проход (44)",
2045 => "Подземный проход (45)",
2046 => "Подземный проход (46)",
2047 => "Подземный проход (47)",
2048 => "Подземный проход (48)",
2049 => "Подземный проход (49)",
2050 => "Подземный проход (50)",
2051 => "Подземный проход (51)",
2052 => "Подземный проход (52)",
2053 => "Подземный проход (53)",
2054 => "Подземный проход (54)",
2055 => "Подземный проход (55)",
2056 => "Подземный проход (56)",
2057 => "Подземный проход (57)",
2100 => "Сектор 2100",
2655 => "Арена Богов",
2601 => "Замковая Площадь",
2702 => "Центральная площадь (мираж)",
];
//эффективность магии
$elem_align = [
"a" => ["a" => "1", "e" => "0", "f" => "0.5", "w" => "0.5"],
"e" => ["a" => "0", "e" => "1", "f" => "0.5", "w" => "0.5"],
"f" => ["a" => "0.5", "e" => "0.5", "f" => "1", "w" => "0"],
"w" => ["a" => "0.5", "e" => "0.5", "f" => "0", "w" => "1"],
];
$elem_bonus = [
"a" => ["a" => "1", "e" => "0.75", "f" => "1.25", "w" => "1"],
"e" => ["a" => "1.25", "e" => "1", "f" => "1", "w" => "0.75"],
"f" => ["a" => "0.75", "e" => "1", "f" => "1", "w" => "1.25"],
"w" => ["a" => "1", "e" => "1.25", "f" => "0.75", "w" => "1"],
];
header("Cache-Control: no-cache");
function level_up($uid)

View File

@ -1,181 +1,166 @@
<?php
$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;"));
$owntravma = mysql_fetch_array(mysql_query("SELECT * FROM `effects` WHERE `owner` = ".$us['id']." AND (type=13 OR ND type=12 OR type=14);"));
$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;"));
$owntravma = mysql_fetch_array(mysql_query("SELECT * FROM `effects` WHERE `owner` = " . $us['id'] . " AND (type=13 OR ND type=12 OR type=14);"));
$magic = mysql_fetch_array(mysql_query("SELECT `chanse` FROM `magic` WHERE `id` = '23' ;"));
$effect = mysql_fetch_array(mysql_query("SELECT `id` FROM `effects` WHERE `owner` = '{$us['id']}' AND `time` > '".time()."' AND `type` = '227' LIMIT 1"));
$effect = mysql_fetch_array(mysql_query("SELECT `id` FROM `effects` WHERE `owner` = '{$us['id']}' AND `time` > '" . time() . "' AND `type` = '227' LIMIT 1"));
if ($user['intel'] >= 4) {
$int=$magic['chanse'] + ($user['intel'] - 4)*3;
if ($int>=100){$int=100;}
}
else {$int=0;}
$int = $magic['chanse'] + ($user['intel'] - 4) * 3;
if ($int >= 100) {
$int = 100;
}
} else {
$int = 0;
}
if ($user['battle'] > 0) {
echo "Не в бою...";
}
elseif (!$us['online']) {
echo "Персонаж не в игре!";
} elseif ($us_b['type']==3 || $us_b['type']==5) {
echo "Запрещено входить в хаотический бой!";
} elseif ($us['battle']>0 && $us_b['open']==0) {
echo "Бой закрыт для вмешательства!";
} elseif ($us['align']==2.99) {
echo "Не атакуйте Администратора!";
echo "Не в бою...";
} elseif (!$us['online']) {
echo "Персонаж не в игре!";
} elseif ($us_b['type'] == 3 || $us_b['type'] == 5) {
echo "Запрещено входить в хаотический бой!";
} elseif ($us['battle'] > 0 && $us_b['open'] == 0) {
echo "Бой закрыт для вмешательства!";
} elseif ($user['zayavka'] > 0) {
echo "Вы ожидаете поединка...";
} elseif(in_array($us['room'], $unkilable['rooms'])) {
echo "В данной комнате запрещены нападения ...";
} elseif(in_array($us['id'], $unkilable['users'])) {
echo "Персонаж под защитой от нападений ...";
} elseif(isset($effect['id'])) {
echo "Персонаж под защитой от нападений ...";
echo "Вы ожидаете поединка...";
} elseif (in_array($us['room'], $unkilable['rooms'])) {
echo "В данной комнате запрещены нападения ...";
} elseif (in_array($us['id'], $unkilable['users'])) {
echo "Персонаж под защитой от нападений ...";
} elseif (isset($effect['id'])) {
echo "Персонаж под защитой от нападений ...";
} elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован...";
echo "Персонаж тяжело травмирован...";
} elseif ($user['room'] != $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 "Нападения в этой локации запрещены!";
} elseif ($us['align'] == 2.9) {
echo "Нападения на Ангела строго запрещено!";
} elseif ($us['align'] == 8.11) {
echo "Нападение на Гвардейца Света запрещено!";
} elseif ($us['align'] == 8.21) {
echo "Нападение на Гвардейца Тьмы запрещено!";
} elseif ($us['align'] == 8.31) {
echo "Нападение на Гвардейца Нейтралитета запрещено!";
} elseif ($us['align'] >1 && $us['align'] <2) {
echo "Нападение на Паладинов запрещено!";
} elseif ($us['align'] == 4.99) {
echo "Нападение на Комментатора запрещено!";
echo "Персонаж в другой комнате!";
} elseif ($us['level'] < 1) {
echo "Новички находятся под защитой Мироздателя!";
} elseif ($us['hp'] < $us['maxhp']*0.33 && !$us['battle']) {
echo "Жертва слишком слаба!";
} elseif ($user['hp'] < $user['maxhp']*0.33) {
echo "Вы слишком ослаблены для нападения!";
} elseif ($us['hp'] < 1 && $us['battle']) {
echo "Вы не можете напасть на погибшего!";
} elseif (mt_rand(1,100) < $int) {
echo "Новички находятся под защитой Мироздателя!";
} elseif ($us['hp'] < $us['maxhp'] * 0.33 && !$us['battle']) {
echo "Жертва слишком слаба!";
} elseif ($user['hp'] < $user['maxhp'] * 0.33) {
echo "Вы слишком ослаблены для нападения!";
} elseif ($us['hp'] < 1 && $us['battle']) {
echo "Вы не можете напасть на погибшего!";
} elseif (mt_rand(1, 100) < $int) {
if ($user['sex'] == 1) {$action="напал";} else {$action="напала";}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel="Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel="Персонаж";
}
if ($user['sex'] == 1) {
$action = "напал";
} else {
$action = "напала";
}
$jert = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
if ($jert['id'] != $user['id']) {
addch("<img src=i/magic/attack.gif> <B>{$user['login']}</B>, применив магию нападения, внезапно " . $action . " на &quot;{$_POST['target']}&quot;");
addchp('<font color=red>Внимание!</font> На вас ' . $action . ' <B>' . $user['login'] . '</B>.<BR>\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ', '{[]}' . nick::id($jert['id'])->short() . '{[]}');
//destructitem($row['id']);
$bet = 1;
//арх
if ($jert['id'] > _BOTSEPARATOR_) {
$arha = mysql_fetch_array(mysql_query('SELECT * FROM `bots` WHERE `prototype` = ' . $jert['id'] . ' LIMIT 1;'));
$jert['battle'] = $arha['battle'];
$jert['id'] = $arha['id'];
$bot = 1;
}
if ($jert['battle'] > 0) {
$jert = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
if($jert['id']!=$user['id']) {
addch("<img src=i/magic/attack.gif> <B>{$user['login']}</B>, применив магию нападения, внезапно ".$action." на &quot;{$_POST['target']}&quot;");
addchp ('<font color=red>Внимание!</font> На вас '.$action.' <B>'.$user['login'].'</B>.<BR>\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ','{[]}'.nick::id($jert['id'])->short().'{[]}');
//destructitem($row['id']);
$bet=1;
//арх
if($jert['id'] > _BOTSEPARATOR_) {
$arha = mysql_fetch_array(mysql_query ('SELECT * FROM `bots` WHERE `prototype` = '.$jert['id'].' LIMIT 1;'));
$jert['battle'] = $arha['battle'];
$jert['id'] = $arha['id'];
$bot=1;
}
if($jert['battle'] > 0) {
//вмешиваемся
$bd = mysql_fetch_array(mysql_query ('SELECT * FROM `battle` WHERE `id` = '.$jert['battle'].' LIMIT 1;'));
$battle = unserialize($bd['teams']);
$ak = array_keys($battle[$jert['id']]);
$battle[$user['id']] = $battle[$ak[0]];
foreach($battle[$user['id']] as $k => $v) {
$battle[$user['id']][$k] =array(0,0,time());
$battle[$k][$user['id']] = array(0,0,time());
}
$t1 = explode(";",$bd['t1']);
// проставляем кто-где
if (in_array ($jert['id'],$t1)) {
$ttt = 2;
} else {
$ttt = 1;
}
addch ("<b>".nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user['room']);
//вмешиваемся
$bd = mysql_fetch_array(mysql_query('SELECT * FROM `battle` WHERE `id` = ' . $jert['battle'] . ' LIMIT 1;'));
$battle = unserialize($bd['teams']);
$ak = array_keys($battle[$jert['id']]);
$battle[$user['id']] = $battle[$ak[0]];
foreach ($battle[$user['id']] as $k => $v) {
$battle[$user['id']][$k] = [0, 0, time()];
$battle[$k][$user['id']] = [0, 0, time()];
}
$t1 = explode(";", $bd['t1']);
// проставляем кто-где
if (in_array($jert['id'], $t1)) {
$ttt = 2;
} else {
$ttt = 1;
}
addch("<b>" . nick::id($user['id'])->short() . "</b> вмешался в <a href=logs.php?log=" . $id . " target=_blank>поединок »»</a>. ", $user['room']);
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
addlog($jert['battle'],'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>');
addlog($jert['battle'], '<span class=date>' . date("H:i") . '</span> ' . nick::id($user['id'])->short() . ' вмешался в поединок!<BR>');
mysql_query('UPDATE `battle` SET `teams` = \''.serialize($battle).'\', `t'.$ttt.'`=CONCAT(`t'.$ttt.'`,\';'.$user['id'].'\') WHERE `id` = '.$jert['battle'].' ;');
mysql_query("UPDATE users SET `battle` =".$jert['battle'].",`zayavka`=0 WHERE `id`= ".$user['id']);
mysql_query('UPDATE `battle` SET `teams` = \'' . serialize($battle) . '\', `t' . $ttt . '`=CONCAT(`t' . $ttt . '`,\';' . $user['id'] . '\') WHERE `id` = ' . $jert['battle'] . ' ;');
mysql_query("UPDATE users SET `battle` =" . $jert['battle'] . ",`zayavka`=0 WHERE `id`= " . $user['id']);
header("Location:fbattle.php");
//die("<script>location.href='fbattle.php';</script>");
}
else
{
// начинаем бой
//$bet=1;
// если чел в заявке, выбиваем его
if($jert['zayavka']) {
$fict1 = mysql_fetch_array(mysql_query("SELECT * FROM `zayavka` WHERE `team1` LIKE '{$jert['id']};%' OR `team1` LIKE '%;{$jert['id']};%' LIMIT 1;"));
$fict2 = mysql_fetch_array(mysql_query("SELECT * FROM `zayavka` WHERE `team2` LIKE '{$jert['id']};%' OR `team2` LIKE '%;{$jert['id']};%' LIMIT 1;"));
if($fict1) { $team=1; }
elseif($fict2) { $team=2; }
header("Location:fbattle.php");
//die("<script>location.href='fbattle.php';</script>");
} else {
// начинаем бой
//$bet=1;
// если чел в заявке, выбиваем его
if ($jert['zayavka']) {
$fict1 = mysql_fetch_array(mysql_query("SELECT * FROM `zayavka` WHERE `team1` LIKE '{$jert['id']};%' OR `team1` LIKE '%;{$jert['id']};%' LIMIT 1;"));
$fict2 = mysql_fetch_array(mysql_query("SELECT * FROM `zayavka` WHERE `team2` LIKE '{$jert['id']};%' OR `team2` LIKE '%;{$jert['id']};%' LIMIT 1;"));
if ($fict1) {
$team = 1;
} elseif ($fict2) {
$team = 2;
}
mysql_query("UPDATE `users` SET `zayavka` = '' WHERE `id` = {$jert['id']} LIMIT 1;");
$z = mysql_fetch_array(mysql_query("SELECT `team{$team}` FROM `zayavka` WHERE `id`=".$jert['zayavka'].";"));
mysql_query("UPDATE `users` SET `zayavka` = '' WHERE `id` = {$jert['id']} LIMIT 1;");
$z = mysql_fetch_array(mysql_query("SELECT `team{$team}` FROM `zayavka` WHERE `id`=" . $jert['zayavka'] . ";"));
$teams = str_replace($jert['id'].";","",$z[0]);
mysql_query("UPDATE `zayavka` SET team{$team} = '{$teams}' WHERE id = {$jert['zayavka']};");
}
$teams = str_replace($jert['id'] . ";", "", $z[0]);
mysql_query("UPDATE `zayavka` SET team{$team} = '{$teams}' WHERE id = {$jert['zayavka']};");
}
//arch
if($bot) {
mysql_query("INSERT INTO `bots` (`name`,`prototype`,`battle`,`hp`) values ('Архивариус','83','','".$jert['hp']."');");
$jert['id'] = mysql_insert_id();
}
undressall($jert['id']);
undressall($user['id']);
$teams = array();
$teams[$user['id']][$jert['id']] = array(0,0,time());
$teams[$jert['id']][$user['id']] = array(0,0,time());
$sv = array(3,4,5);
//$tou = array_rand($sv,1);
mysql_query("INSERT INTO `battle`
//arch
if ($bot) {
mysql_query("INSERT INTO `bots` (`name`,`prototype`,`battle`,`hp`) values ('Архивариус','83','','" . $jert['hp'] . "');");
$jert['id'] = mysql_insert_id();
}
undressall($jert['id']);
undressall($user['id']);
$teams = [];
$teams[$user['id']][$jert['id']] = [0, 0, time()];
$teams[$jert['id']][$user['id']] = [0, 0, time()];
$sv = [3, 4, 5];
//$tou = array_rand($sv,1);
mysql_query("INSERT INTO `battle`
(
`id`,`coment`,`teams`,`timeout`,`type`,`status`,`t1`,`t2`,`to1`,`to2`,`blood`
)
VALUES
(
NULL,'','".serialize($teams)."','".$sv[rand(0,2)]."','1','0','".$user['id']."','".$jert['id']."','".time()."','".time()."','0'
NULL,'','" . serialize($teams) . "','" . $sv[rand(0, 2)] . "','1','0','" . $user['id'] . "','" . $jert['id'] . "','" . time() . "','" . time() . "','0'
)");
$id = mysql_insert_id();
$id = mysql_insert_id();
// апдейтим врага
if($bot) {
mysql_query("UPDATE `bots` SET `battle` = {$id} WHERE `id` = {$jert['id']} LIMIT 1;");
} else {
mysql_query("UPDATE `users` SET `battle` = {$id} WHERE `id` = {$jert['id']} LIMIT 1;");
}
// апдейтим врага
if ($bot) {
mysql_query("UPDATE `bots` SET `battle` = {$id} WHERE `id` = {$jert['id']} LIMIT 1;");
} else {
mysql_query("UPDATE `users` SET `battle` = {$id} WHERE `id` = {$jert['id']} LIMIT 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']);
$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']);
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}',"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");
addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");
addlog($id, "Часы показывали <span class=date>" . date("Y.m.d H.i") . "</span>, когда " . $rr . " бросили вызов друг другу. <BR>");
mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}");
header("Location:fbattle.php");
//die("<script>location.href='fbattle.php';</script>");
}
} else {
echo '<font color=red>Мазохист?...</font>';
}
//$bet=1;
mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}");
header("Location:fbattle.php");
//die("<script>location.href='fbattle.php';</script>");
}
} else {
echo '<font color=red>Мазохист?...</font>';
}
//$bet=1;
} else {
echo "Свиток рассыпался в ваших руках...";
$bet=1;
}
echo "Свиток рассыпался в ваших руках...";
$bet = 1;
}