401 lines
16 KiB
PHP
401 lines
16 KiB
PHP
<?php
|
||
/**
|
||
* Copyright (c) 2018.
|
||
* Author: Igor Barkov <lopar.4ever@gmail.com>
|
||
* Project name: Battles-Game
|
||
*/
|
||
|
||
ini_set('display_errors', 'On');
|
||
error_reporting(E_ALL);
|
||
define("GAMEDOMAIN","combats.loc");
|
||
/*
|
||
* Запрещаем кэшировать
|
||
*/
|
||
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");
|
||
|
||
/**
|
||
* Классы для работы с базой данных.
|
||
*/
|
||
require_once('Database/Mysql.php');
|
||
require_once('Database/Exception.php');
|
||
require_once('Database/Statement.php');
|
||
require_once('Database/db.php');
|
||
|
||
/**
|
||
* Автозагрузка классов.
|
||
*/
|
||
spl_autoload_register(function ($class_name) {
|
||
$class_name .= '.php';
|
||
if (file_exists('classes/' . $class_name)) {
|
||
require_once 'classes/' . $class_name;
|
||
} elseif (file_exists('models/' . $class_name)) {
|
||
require_once 'models/' . $class_name;
|
||
} else {
|
||
throw new Exception(sprintf('Невозможно загрузить класс %s',$class_name));
|
||
}
|
||
|
||
});
|
||
|
||
/* === Для нападалок. Сперва комнаты в которых нельзя напасть, потом персонаж на которого нельзя напасть. === */
|
||
$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], # Это тринадцатый уровень
|
||
]; |