diff --git a/admin/admin.php b/admin/admin.php index 1a08be2..1dd3b24 100644 --- a/admin/admin.php +++ b/admin/admin.php @@ -240,7 +240,6 @@ Template::header('ᐰdminка'); - @@ -409,11 +408,6 @@ if ($_POST['name']) { // echo "Предмет не был добавлен!" . mysql_error(); // }; // -// if ($_POST['shop'] == 3) if (mysql_query("INSERT INTO ashop(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'] . "','1','" . $_POST['letter'] . "','" . $_POST['isrep'] . "','" . $_POST['razdel'] . "');")) { -// echo "Предмет успешно добавлен"; -// } else { -// echo "Предмет не был добавлен!" . mysql_error(); -// }; } //End item adder diff --git a/ashop.php b/ashop.php deleted file mode 100644 index c8e0704..0000000 --- a/ashop.php +++ /dev/null @@ -1,200 +0,0 @@ -room != 50) { - header("Location: main.php"); - exit; -} - -if ($user->battle) { - header('location: fbattle.php'); - exit; -} - -$bank = db::c()->query('SELECT `ekr` FROM `bank` WHERE `id`=?i', $_SESSION['uid'])->fetch_assoc(); - -$shopItems = db::c()->query('SELECT `ashop`.*, - `magic`.`name` AS `magic_name`, - `magic`.`chanse` AS `magic_chanse`, - `magic`.`time` AS `magic_time`, - `magic`.`file` AS `magic_file`, - `magic`.`targeted` AS `magic_targeted`, - `magic`.`needcharge` AS `magic_needcharge`, - `magic`.`img` AS `magic_img` - -FROM `ashop` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `count` > 0 AND `ecost` > 0 AND `razdel` = ?i ORDER by `nlevel` ASC, `id` ASC', $_GET['otdel']); - -$iteminfo = []; -while ($row = $shopItems->fetch_assoc()) { - $iteminfo[] = new ShopItem($row); -} - -if (!empty($_GET['buy'])) { -$dress = db::c()->query('SELECT * FROM `ashop` WHERE `id`=?i', $_GET['buy'])->fetch_assoc(); -$itemWeight = db::c()->query('SELECT sum(`massa`) AS `m` FROM `inventory` WHERE `owner` = ?i AND `setsale` = 0', $user['id'])->fetch_assoc(); -if (($dress['massa'] + $itemWeight['m']) > (get_meshok())) { - $status = 'Недостаточно места в рюкзаке.'; -} elseif ($bank['ekr'] >= $dress['ecost'] && ($dress['count'] > 0 || $dress['count'] == -1)) { - $goden = ''; - if (isset($dress['goden'])) { - $goden = $dress['goden'] * 24 * 60 * 60 + time(); // Ну вот нахуя?} - 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,"?s","?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,?i,?i,?i) - ', $dress['id'], $_SESSION['uid'], $dress['name'], $dress['type'], $dress['massa'], $dress['cost'], $dress['img'], $dress['maxdur'], $dress['isrep'], - $dress['gsila'], $dress['glovk'], $dress['ginta'], $dress['gintel'], $dress['ghp'], $dress['gnoj'], $dress['gtopor'], $dress['gdubina'], $dress['gmech'], - $dress['gfire'], $dress['gwater'], $dress['gair'], $dress['gearth'], $dress['glight'], $dress['ggray'], $dress['gdark'], $dress['needident'], - $dress['nsila'], $dress['nlovk'], $dress['ninta'], $dress['nintel'], $dress['nmudra'], $dress['nvinos'], $dress['nnoj'], $dress['ntopor'], $dress['ndubina'], $dress['nmech'], - $dress['nfire'], $dress['nwater'], $dress['nair'], $dress['nearth'], $dress['nlight'], $dress['ngray'], $dress['ndark'], $dress['mfkrit'], $dress['mfakrit'], - $dress['mfuvorot'], $dress['mfauvorot'], $dress['bron1'], $dress['bron3'], $dress['bron2'], $dress['bron4'], $dress['maxu'], $dress['minu'], $dress['magic'], - $dress['nlevel'], $dress['nalign'], $goden, $dress['goden'], $dress['razdel'], $dress['artefact'], $dress['koll']); - - $inventoryItemId = db::c()->getLastInsertId(); - if ($dress['count'] != -1) { - db::c()->query('UPDATE `ashop` SET `count` = `count`- 1 WHERE `id` = ?i', $_GET['buy']); - } - $deloText = "{$user['login']} купил товар «{$dress['name']}» id:({$inventoryItemId}) в магазине «Берёзка» за {$dress['ecost']} екр."; - addToDelo($deloText); - $status = "Вы купили «{$dress['name']}» за {$dress['ecost']} екр."; - db::c()->query('UPDATE `bank` SET `ekr` = `ekr` - ?i WHERE `id` = ?i', $dress['ecost'], $_SESSION['uid']); - // Для обновления данных о деньгах на странице - $bank['ekr'] -= $dress['ecost']; - - } else { - $status = "Недостаточно денег или нет вещей в наличии."; - } -} -$shopCategory = ''; -$shopCategoryTypeNumber = empty($_GET['otdel']) ?: $_GET['otdel']; -switch ($shopCategoryTypeNumber) { - default: - $shopCategory = "Прихожая"; - break; - case 1: - $shopCategory = "Кастеты и ножи"; - break; - case 11: - $shopCategory = "Топоры"; - break; - case 12: - $shopCategory = "Дубины и булавы"; - break; - case 13: - $shopCategory = "Мечи"; - break; - case 14: - $shopCategory = "Луки и арбалеты"; - break; - case 2: - $shopCategory = "Сапоги"; - break; - case 21: - $shopCategory = "Перчатки"; - break; - case 22: - $shopCategory = "Легкая броня"; - break; - case 23: - $shopCategory = "Тяжелая броня"; - break; - case 24: - $shopCategory = "Шлемы"; - break; - case 3: - $shopCategory = "Щиты"; - break; - case 4: - $shopCategory = "Серьги"; - break; - case 41: - $shopCategory = "Ожерелья"; - break; - case 42: - $shopCategory = "Кольца"; - break; - case 5: - $shopCategory = "Заклинания: нейтральные"; - break; - case 51: - $shopCategory = "Заклинания: боевые и защитные"; - break; - case 6: - $shopCategory = "Амуниция"; - break; - case 7: - $shopCategory = "Букеты"; - break; -} -Template::header('Берёзка'); -?> - -

Магазин Берёзка

- ← выйти на Центральную площадь -
- - - - - -
-

- - - - - - - - -
- printImage(); - $ii->printControls('ashop'); ?> - - printInfo(); ?> -
-
- Масса всех ваших вещей: -
У вас в наличии: екр.
-
- -
Отделы магазина
-
-
Оружие:
-
кинжалы
-
топоры
-
дубины
-
мечи
-
Одежда:
-
шлемы
-
тяжелая броня
-
легкая броня
-
щиты
-
перчатки
-
сапоги
-
Ювелирные товары:
-
серьги
-
ожерелья
-
кольца
-
Магия:
-
боевые
-
разные
-
Разное:
-
амуниция
-
букеты
-
-
- \ No newline at end of file diff --git a/city.php b/city.php index a19fd70..25997f3 100644 --- a/city.php +++ b/city.php @@ -30,28 +30,28 @@ switch ($location[0]) { default: break; case 'cp': - Travel::toRoom(20); + Travel::toRoom(20,$user->room); break; case 'strah': - Travel::toRoom(21); + Travel::toRoom(21,$user->room); break; case 'bps': - Travel::toRoom(26); + Travel::toRoom(26,$user->room); break; case 'ps': - Travel::toRoom(51); + Travel::toRoom(51,$user->room); break; case 'zaliv': - Travel::toRoom(2111); + Travel::toRoom(2111,$user->room); break; case 'zamk': - Travel::toRoom(2601); + Travel::toRoom(2601,$user->room); break; case 'abog': - Travel::toRoom(2655); + Travel::toRoom(2655,$user->room); break; case 'torg': - Travel::toRoom(2702); + Travel::toRoom(2702,$user->room); break; case 'got': if ($user->room == 20) { @@ -59,35 +59,34 @@ switch ($location[0]) { default: break; case 'level1': - header('location: main.php?goto=arena'); - exit; + Travel::toRoom(1,$user->room); break; case 'level7': - Travel::toRoom(21); + Travel::toRoom(21,$user->room); break; case 'level8': - Travel::toRoom(26); + Travel::toRoom(26,$user->room); break; case 'level13': header('location: quest_room.php'); break; case 'level222': - Travel::toRoom(2702); + Travel::toRoom(2702,$user->room); break; case 'level17': - Travel::toRoom(50, 'ashop.php'); + Travel::toRoom(50,$user->room); break; case 'level2': - Travel::toRoom(22, 'shop.php'); + Travel::toRoom(22,$user->room); break; case 'level4': - Travel::toRoom(23, 'repair.php'); + Travel::toRoom(23,$user->room); break; case 'level6': - Travel::toRoom(27, 'post.php'); + Travel::toRoom(27,$user->room); break; case 'level3': - Travel::toRoom(25, 'comission.php'); + Travel::toRoom(25,$user->room); break; } } elseif ($user->room == 21) { @@ -95,25 +94,25 @@ switch ($location[0]) { default: break; case 'level4': - Travel::toRoom(20); + Travel::toRoom(20,$user->room); break; case 'level3': - Travel::toRoom(2111); + Travel::toRoom(2111,$user->room); break; case 'level13': - Travel::toRoom(34, 'fshop.php'); + Travel::toRoom(34,$user->room); break; case 'level5': - Travel::toRoom(29, 'bank.php'); + Travel::toRoom(29,$user->room); break; case 'level16': - Travel::toRoom(31, 'tower.php'); + Travel::toRoom(31,$user->room); break; case 'level14': - Travel::toRoom(30, 'clan_create.php'); + Travel::toRoom(30,$user->room); break; case 'level650': - Travel::toRoom(650, 'ul_clans.php'); + Travel::toRoom(650,$user->room); break; } } elseif ($user->room == 2111) { @@ -121,19 +120,17 @@ switch ($location[0]) { default: break; case 'level1': - Travel::toRoom(21); - break; - case 'level2': - header('location: city.php?haos'); + Travel::toRoom(21,$user->room); break; case 'level203': - Travel::toRoom(1055, 'group_arena.php'); + Travel::toRoom(1055,$user->room); break; case 'level1000': - Travel::toRoom(620, 'enter_cave.php'); + Travel::toRoom(620,$user->room); break; case 'room666': - Travel::toRoom(666, 'jail.php'); + //Нет на карте + //Travel::toRoom(666,$user->room); break; } } elseif ($user->room == 2601) { @@ -141,19 +138,19 @@ switch ($location[0]) { default: break; case 'level4': - Travel::toRoom(26); + Travel::toRoom(26,$user->room); break; case 'level55': - Travel::toRoom(2655); + Travel::toRoom(2655,$user->room); break; case 'level1': - Travel::toRoom(37, 'gotzamok.php'); + Travel::toRoom(37,$user->room); break; case 'level1051': - Travel::toRoom(1051, 'lab_enter.php'); + Travel::toRoom(1051,$user->room); break; case 'level5': - Travel::toRoom(404, 'vxod.php'); + Travel::toRoom(404,$user->room); break; } } elseif ($user->room == 2701) { @@ -161,10 +158,10 @@ switch ($location[0]) { default: break; case 'level1': - Travel::toRoom(2111); + Travel::toRoom(2111,$user->room); break; case 'level2': - Travel::toRoom(402, 'lab_chaos_enter.php'); + Travel::toRoom(402,$user->room); break; } } elseif ($user->room == 2702) { @@ -172,10 +169,10 @@ switch ($location[0]) { default: break; case 'level10': - Travel::toRoom(20); + Travel::toRoom(20,$user->room); break; case 'level6': - Travel::toRoom(61, 'akadem.php'); + Travel::toRoom(61,$user->room); break; } } elseif ($user->room == 2655) { @@ -183,10 +180,10 @@ switch ($location[0]) { default: break; case 'level10': - Travel::toRoom(2601); + Travel::toRoom(2601,$user->room); break; case 'level2055': - Travel::toRoom(603, 'aren_of_angels.php'); + Travel::toRoom(603,$user->room); break; } } elseif ($user->room == 26) { @@ -194,19 +191,19 @@ switch ($location[0]) { default: break; case 'level4': - Travel::toRoom(20); + Travel::toRoom(20,$user->room); break; case 'level3': - Travel::toRoom(2601); + Travel::toRoom(2601,$user->room); break; case 'level660': - Travel::toRoom(660, 'hostel.php'); + Travel::toRoom(660,$user->room); break; case 'level7': - Travel::toRoom(777, 'obshaga.php'); + Travel::toRoom(777,$user->room); break; case 'level56': - Travel::toRoom(401, 'hell.php'); + Travel::toRoom(401,$user->room); break; } } diff --git a/clan_create.php b/clan_create.php index 3f5221b..a2d1540 100644 --- a/clan_create.php +++ b/clan_create.php @@ -18,22 +18,22 @@ if ($klanName && $klanAbbr && $klanDescr) { $eff = db::c()->query('SELECT 1 FROM `effects` WHERE `owner` = ?i AND `type` = 20', $user->id); $name_check = db::c()->query('SELECT 1 FROM `clans` WHERE `name` = "?s" OR `short` = "?s"', 111, 333); - $errorMessage = ''; + $errorMessage = []; if ($user->align) { - $errorMessage .= 'Вы уже имеете направленность!.
'; + $errorMessage[0] = 'Вы уже имеете направленность!.
'; } if ($user->clan) { - $errorMessage .= 'Вы уже состоите в клане!.
'; + $errorMessage[1] = 'Вы уже состоите в клане!.
'; } if (Config::$clan_register_cost >= $user->money) { - $errorMessage .= 'Не хватает денег на регистрацию клана.
'; + $errorMessage[2] = 'Не хватает денег на регистрацию клана.
'; } if (!$eff) { - $errorMessage .= 'Нет проверки.
'; + $errorMessage[3] = 'Нет проверки.
'; } if (!$name_check) { - $errorMessage .= 'Клан с такими данными уже существует.
'; + $errorMessage[4] = 'Клан с такими данными уже существует.
'; } if (!$errorMessage && !Config::$clan_register_lock) { @@ -44,7 +44,9 @@ if ($klanName && $klanAbbr && $klanDescr) { echo 'Заявка на регистрацию клана подана.'; err('Проверки пройдены, но клан регистрировать пока нельзя!'); } else { - err($errorMessage); + foreach ($errorMessage as $error) { + echo sprintf('%s', $error); + } } } Template::header('Регистратура кланов'); @@ -58,9 +60,16 @@ Template::header('Регистратура кланов'); ← выйти из регистратуры admin) { - $clanreg = db::c()->query('SELECT `date`,`name`,`abbr`,`owner`,`descr` FROM `reg_klan`'); + $clanreg = []; + $clanPremoderationList = [] + + //$clanPremoderationList = db::c()->query('SELECT * FROM clans WHERE approved = 0'); + foreach ($clanPremoderationList->fetch_object() as $clan) { + echo sprintf('
%s %s
%s
', $clan->date, $clan->name, $clan->owner); + } + //$clanreg = db::c()->query('SELECT `date`,`name`,`abbr`,`owner`,`descr` FROM `reg_klan`')->fetch_assoc(); echo ''; - while ($clanreg_row = $clanreg->fetch_assoc()) { + while ($clanreg_row = $clanreg) { echo " diff --git a/classes/City.php b/classes/City.php index ac5cc0e..67e2005 100644 --- a/classes/City.php +++ b/classes/City.php @@ -1,65 +1,62 @@ background' . - self::showBuilding(1, "spring_cap_club", 30, 235, "Бойцовский Клуб") . - self::showBuilding(2, "spring_cap_shop", 202, 171, "Магазин") . - self::showBuilding(3, "spring_cap_kom", 205, 105, "Комиссионный магазин") . - self::showBuilding(4, "spring_cap_rem", 202, 290, "Ремонтная мастерская") . - self::showBuilding(6, "spring_cap_po4ta", 180, 540, "Почта") . - self::showBuilding(7, "spring_cap_arr_right", 260, 710, "Страшилкина Улица") . - self::showBuilding(8, "spring_cap_arr_left", 258, 21, "Большая парковая улица") . - self::showBuilding(9, "spring_cap_tree2", 260, 530, "Новогодняя елка") . - self::showBuilding(13, "spring_cap_statue", 222, 365, "Памятник Мэру Города") . - self::showBuilding(14, "spring_cap_sneg_3", 210, 390, "Снеговик") . - self::showBuilding(17, "spring_cap_berezka", 205, 435, "Березка") . - self::showBuilding(222, "spring_cap_arr_top", 180, 650, "Торговая улица") . + self::showBuilding(1, "spring_cap_club", 30, 235, self::$roomNames[1]) . + self::showBuilding(2, "spring_cap_shop", 202, 171, self::$roomNames[22]) . + self::showBuilding(3, "spring_cap_kom", 205, 105, self::$roomNames[25]) . + self::showBuilding(4, "spring_cap_rem", 202, 290, self::$roomNames[23]) . + self::showBuilding(6, "spring_cap_po4ta", 180, 540, self::$roomNames[27]) . + self::showBuilding(7, "cap_arr_right", 260, 710, self::$roomNames[21]) . + self::showBuilding(8, "cap_arr_left", 258, 21, self::$roomNames[26]) . + self::showBuilding(9, "winter_cap_tree2", 215, 500, self::$roomNames[44]) . + self::showBuilding(13, "spring_cap_statue", 222, 365, self::$roomNames[24]) . + self::showBuilding(14, "winter_cap_statue", 210, 390, "Снеговик") . + self::showBuilding(222, "cap_arr_top", 180, 650, "Торговая улица") . ''; } elseif ($id === 21) { echo '
background' . self::showBuilding(3, "cap_arr_right", 255, 708, "Ристалище") . - self::showBuilding(4, "cap_arr_left", 258, 21, "Центральная площадь") . - self::showBuilding(5, "cap_bank", 180, 485, "Банк") . - self::showBuilding(13, "cap_flowershop", 220, 613, "Цветочный магазин") . - self::showBuilding(14, "cap_registratura", 170, 113, "Регистратура кланов") . - self::showBuilding(16, "cap_tower", 5, 315, "Башня смерти") . - self::showBuilding(16555, "cap_tree", 165, 20, "Дерево") . + self::showBuilding(4, "cap_arr_left", 258, 21, self::$roomNames[20]) . + self::showBuilding(5, "spring_cap_bank", 180, 485, self::$roomNames[29]) . + self::showBuilding(13, "spring_cap_flowershop", 220, 613, self::$roomNames[34]) . + self::showBuilding(14, "spring_cap_registratura", 170, 113, self::$roomNames[28]) . + self::showBuilding(16, "spring_cap_tower", 5, 315, self::$roomNames[31]) . '
'; } elseif ($id === 26) { echo '
background' . - self::showBuilding(3, "cap_arr_left", 259, 27, "Замковая площадь") . - self::showBuilding(4, "cap_arr_right", 259, 715, "Центральная площадь") . + self::showBuilding(3, "cap_arr_left", 259, 27, self::$roomNames[2601]) . + self::showBuilding(4, "cap_arr_right", 259, 715, self::$roomNames[20]) . self::showBuilding(6, "cap_gate", 170, 340, "Городские ворота") . - self::showBuilding(660, "cap_vokzal", 163, 43, "Общежитие") . + self::showBuilding(660, "spring_cap_vokzal", 163, 43, self::$roomNames[661]) . '
'; } elseif ($id === 2601) { echo '
background' . - self::showBuilding(1, "cap_ruins", 166, 48, "Руины Старого замка") . - self::showBuilding(4, "cap_arr_right", 260, 710, "Большая парковая улица") . - self::showBuilding(10, "ava_post", 240, 300, "Сувенирный магазинчик") . - self::showBuilding(55, "cap_arr_left", 258, 21, "Арена Богов") . - self::showBuilding(1051, "cap_lab", 130, 327, "Вход в Лабиринт Хаоса") . - self::showBuilding(1052, "cap_lavka", 240, 425, "Храмовая лавка") . + self::showBuilding(1, "spring_cap_ruins", 166, 48, "Руины Старого замка") . + self::showBuilding(4, "cap_arr_right", 260, 710, self::$roomNames[26]) . + self::showBuilding(10, "ava_post", 240, 300, self::$roomNames[35]) . + self::showBuilding(55, "cap_arr_left", 258, 21, self::$roomNames[2655]) . + self::showBuilding(1051, "spring_cap_lab", 130, 327, self::$roomNames[33]) . + self::showBuilding(1052, "spring_cap_lavka", 240, 425, self::$roomNames[1053]) . '
'; } elseif ($id === 2655) { echo '
background' . - self::showBuilding(10, "arr_right_png", 260, 710, "Замковая площадь") . - self::showBuilding(2055, "cap_altr_g", 230, 340, "Арена Ангелов") . + self::showBuilding(10, "arr_right_png2", 260, 710, self::$roomNames[2601]) . + self::showBuilding(2055, "altr_g", 230, 340, self::$roomNames[603]) . '
'; } elseif ($id === 2111) { - echo '
background' . - self::showBuilding(1, "cap_arr_uleft", 240, 30, "Страшилкина Улица") . - self::showBuilding(2, "cap_arr_right", 245, 708, "Секретный Лабиринт") . - self::showBuilding(14, "cap_rist_solo", 210, 160, "Вход в Одиночные сражения") . - self::showBuilding(14, "cap_rist_group", 243, 340, "Вход в Сражение отрядов") . - self::showBuilding(21, "angelscastle", 131, 628, "Замок Мэра Города") . - self::showBuilding(203, "cap_rist_monstr", 145, 570, "Вход в Груповые сражения") . - self::showBuilding(1000, "av_zamk_rud", 80, 310, "Рудник") . + echo '
background' . + self::showBuilding(1, "cap_arr_left", 240, 30, self::$roomNames[21]) . + self::showBuilding(14, "spring_cap_rist_solo", 210, 160, "Вход в Одиночные сражения") . + self::showBuilding(14, "spring_cap_rist_group", 243, 340, "Вход в Сражение отрядов") . + self::showBuilding(203, "spring_cap_rist_monstr", 145, 570, "Вход в Груповые сражения") . + self::showBuilding(1000, "av_zamk_rud", 80, 310, self::$roomNames[1001]) . '
'; } elseif ($id === 2701) { echo '
background' . @@ -68,11 +65,11 @@ class City '
'; } elseif ($id === 2702) { echo '
background' . - self::showBuilding(6, "cap_arenda", 175, 70, "Академия") . - self::showBuilding(10, "cap_arr_uleft", 259, 25, "Центральная площадь") . - self::showBuilding(16, "cap_t_build42", 120, 300, "Аукцион") . - self::showBuilding(21, "cap_lombard", 150, 565, "Ломбард") . - self::showBuilding(16555, "cap_prokat", 155, 480, "Прокатная лавка") . + self::showBuilding(6, "spring_cap_build1", 175, 70, "Академия") . + self::showBuilding(10, "cap_rist_arr_left", 259, 25, self::$roomNames[20]) . + self::showBuilding(16, "auk", 120, 300, "Аукцион") . + self::showBuilding(21, "spring_cap_build2", 150, 565, "Ломбард") . + self::showBuilding(16555, "spring_cap_build3", 155, 480, "Прокатная лавка") . '
'; } } diff --git a/classes/Rooms.php b/classes/Rooms.php index b3f89e9..bc8b1d6 100644 --- a/classes/Rooms.php +++ b/classes/Rooms.php @@ -35,7 +35,6 @@ trait Rooms 47 => "Замок (строительство)", 48 => "Обитель Хаоса", 49 => "Проход к Цитадели Хаоса", - 50 => "Магазин Берёзка", 51 => "Парковая улица", 52 => "Квартал Законников", 53 => "Библиотека", @@ -186,5 +185,5 @@ trait Rooms 2655 => "Арена Богов", 2601 => "Замковая Площадь", 2702 => "Центральная площадь (мираж)", - ]; + ] ?? "Небытие"; } \ No newline at end of file diff --git a/classes/ShopItem.php b/classes/ShopItem.php index 8606278..51011e8 100644 --- a/classes/ShopItem.php +++ b/classes/ShopItem.php @@ -47,10 +47,6 @@ BTN; $btnValue = "Купить за " . intval($this->cost) . " кр."; $btnLink = "/shop.php?buy={$this->id}&rnd=" . mt_rand(); break; - case 'ashop': - $btnValue = "Купить за " . intval($this->ecost) . " eкр."; - $btnLink = "/ashop.php?buy={$this->id}&rnd=" . mt_rand(); - break; case 'sell': $btnValue = "Продать"; $btnLink = "/shop.php?sell={$this->id}&rnd=" . mt_rand(); diff --git a/classes/Travel.php b/classes/Travel.php index c29253f..b6a56f6 100644 --- a/classes/Travel.php +++ b/classes/Travel.php @@ -3,9 +3,52 @@ class Travel { - public static function toRoom(int $roomId, string $redirectToFile = 'city.php'): void + /** + * Соответствие ID комнаты игровому файлу. + * @var string[] + */ + private static $roomFileName = [ + 1 => 'main.php', + 20 => 'city.php', + 21 => 'city.php', + 22 => 'shop.php', + 23 => 'repair.php', + 25 => 'comission.php', + 26 => 'city.php', + 27 => 'post.php', + 29 => 'bank.php', + 30 => 'clan_create.php', + 31 => 'tower.php', + 34 => 'fshop.php', + 37 => 'gotzamok.php', + 51 => 'city.php', + 61 => 'akadem.php', + 401 => 'hell.php', + 402 => 'lab_chaos_enter.php', + 404 => 'vxod.php', + 603 => 'aren_of_angels.php', + 620 => 'enter_cave.php', + 650 => 'ul_clans.php', + 660 => 'hostel.php', + 666 => 'jail.php', + 777 => 'obshaga.php', + 1051 => 'lab_enter.php', + 1055 => 'group_arena.php', + 2111 => 'city.php', + 2601 => 'city.php', + 2655 => 'city.php', + 2702 => 'city.php' + ]; + + /** + * Перемещение по комнатам. + * @param int $roomId ID куда идём. + * @param int $roomIdCurrent ID откуда идём. + * @throws \Krugozor\Database\Mysql\Exception + */ + 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 `setsale` = 0', $_SESSION['uid'])->fetch_assoc(); + $itemsWeight = db::c()->query('SELECT SUM(weight) AS all_weight FROM `inventory` WHERE owner_id = ?i AND on_sale = 0', $_SESSION['uid'])->fetch_assoc(); $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(); $errors = []; if ($itemsWeight['all_weight'] > get_meshok()) { @@ -21,9 +64,9 @@ class Travel foreach ($errors as $error) { echo sprintf('%s', $error); } - } elseif (in_array($roomId, self::allowedRoomMoves($roomId))) { - db::c()->query('UPDATE users, online SET users.room = ?i, online.room = ?i WHERE `online`.`user_id` = `users`.`id` AND `online`.`id` = ?i', $roomId, $roomId, $_SESSION['uid']); - header('location: ' . $redirectToFile); + } 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']); + header('location: ' . self::$roomFileName[$roomId]); exit; } } @@ -44,10 +87,10 @@ class Travel * 7 Room 21 [STREET] * 8 Room 26 [STREET] * 13 location: quest_room.php - * 17 Room 50 ashop.php * 222 Room 2702 [STREET] */ - $room[20] = [1, 2, 3, 4, 6, 7, 8, 9, 13, 14, 17, 222]; // level+n + $room[20] = [1, 21, 22, 23, 25, 26, 27, 2702]; + $room[1] = $room[22] = $room[23] = $room[25] = $room[27] = [20]; /* * 3 Room 2111 [STREET] * 4 Room 20 [STREET] @@ -57,11 +100,15 @@ class Travel * 16 Room 31 tower.php * 650 Room 650 ul_clans.php */ - $room[21] = [3, 4, 5, 13, 14, 16, 16555]; + $room[21] = [20, 29, 30, 31, 34, 650, 2111]; + $room[29] = $room[30] = $room[31] = $room[34] = [21]; - $room[26] = [3, 4, 6, 660]; - $room[2601] = [1, 4, 10, 55, 1051, 1052]; - $room[2655] = [10, 2055]; + $room[26] = [20, 401, 660, 777, 2601]; + $room[401] = $room[660] = $room[777] = [26]; + + $room[2601] = [26, 37, 404, 1051, 2655]; + + $room[2655] = [603, 2601]; /* * 1 Room 21 [STREET] @@ -72,10 +119,10 @@ class Travel * [!not on map]666 Room 666 jail.php * 1000 */ - $room[2111] = [1, 2, 14, 21, 203, 1000]; - $room[2701] = [1, 2]; - $room[2702] = [6, 10, 16, 21, 16555]; - if (empty($room[$roomId])) { + $room[2111] = [21, 620, 666, 1055]; + $room[2701] = [402, 2111]; + $room[2702] = [20, 61]; + if ($room[$roomId] === null) { return []; } return $room[$roomId]; diff --git a/cronjobs/cron_bots_battle.php b/cronjobs/cron_bots_battle.php index b74c829..9bcf820 100644 --- a/cronjobs/cron_bots_battle.php +++ b/cronjobs/cron_bots_battle.php @@ -10,48 +10,37 @@ include_once '../functions.php'; //include_once '../cave/cave_bots.php'; $cavebots = $botnames; -function addlogs($id, $log) -{ - $fp = fopen("backup/logs/battle" . $id . ".txt", "a"); - flock($fp, LOCK_EX); - fputs($fp, $log); - fflush($fp); - flock($fp, LOCK_UN); - fclose($fp); - unset($id, $log); -} - class fbattle { public $status = integer; - public $battle = array(); - public $battle_data = array(); + public $battle = []; + public $battle_data = []; public $enemy = null; - public $damage = array(); - public $t1 = array(); - public $t2 = array(); - public $team_enemy = array(); - public $team_mine = array(); - public $user = array(); - public $enemyhar = array(); - public $enemy_dress = array(); - public $user_dress = array(); + public $damage = []; + public $t1 = []; + public $t2 = []; + public $team_enemy = []; + public $team_mine = []; + public $user = []; + public $enemyhar = []; + public $enemy_dress = []; + public $user_dress = []; public $en_class, $my_class; - public $bots = array(); - public $botsid = array(); + public $bots = []; + public $botsid = []; public $log = ''; public $to1; public $to2; - public $exp = array(); + public $exp = []; public $log_debug = ''; public $needrefresh = 0; public $rep = 0; public $needupdate = 0; - public $har = array(); - public $color_battle = array(); - public $mf = array(); - public $user_inf_1 = array(); - public $user_inf_2 = array(); + public $har = []; + public $color_battle = []; + public $mf = []; + public $user_inf_1 = []; + public $user_inf_2 = []; public $max = 70; public $err = ''; @@ -80,7 +69,7 @@ class fbattle if (in_array($k, $this->t1)) { if (count($v) < count($this->t2)) { foreach ($this->t2 as $k2 => $v2) { - $this->battle[$k][$v2] = array(0, 0, time()); + $this->battle[$k][$v2] = [0, 0, time()]; } } $bit1 = 1; @@ -88,16 +77,16 @@ class fbattle if (in_array($k, $this->t2)) { if (count($v) < count($this->t1)) { foreach ($this->t1 as $k2 => $v2) { - $this->battle[$k][$v2] = array(0, 0, time()); + $this->battle[$k][$v2] = [0, 0, time()]; } } $bit2 = 1; } foreach ($this->battle[$bot['id']] as $k => $v) { if ($this->battle[$bot['id']][$k][0] == 0) { - $this->battle[$bot['id']][$k] = array(rand(2, 3), rand(2, 3), time()); + $this->battle[$bot['id']][$k] = [rand(2, 3), rand(2, 3), time()]; if ($this->battle[$k][$bot['id']][0] != 0 && $k < _BOTSEPARATOR_) { - $this->battle[$k][$bot['id']] = array(0, 0, time()); + $this->battle[$k][$bot['id']] = [0, 0, time()]; } if ($k > _BOTSEPARATOR_) { $this->needupdate = 1; @@ -254,7 +243,7 @@ class fbattle 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)); + $blocks = ['1' => [1, 2], '2' => [2, 3], '3' => [3, 4], '4' => [4, 1]]; return !in_array($where_atack, $blocks[$where_defend]); } @@ -713,7 +702,7 @@ class fbattle { $this->t1 = explode(";", $this->battle_data['t1']); $this->t2 = explode(";", $this->battle_data['t2']); - $c = array(); + $c = []; if (in_array($u, $this->t1)) { $c['me'] = "B1"; $c['he'] = "B2"; @@ -744,7 +733,7 @@ class fbattle function init_botRazmen($uid, $enemy, $attack, $defend) { - $RazmenValues = array(1, 2, 3, 4); + $RazmenValues = [1, 2, 3, 4]; $hp_1 = mysql_fetch_array(mysql_query('SELECT `id`, `hp`, `prototype` FROM `bots` WHERE `id` = "' . $uid . '" LIMIT 1')); $maxhp_1 = mysql_fetch_array(mysql_query('SELECT `maxhp` FROM `users` WHERE `id` = "' . $hp_1['prototype'] . '" LIMIT 1')); $hp_2 = mysql_fetch_array(mysql_query('SELECT `id`, `hp`, `prototype` FROM `bots` WHERE `id` = "' . $enemy . '" LIMIT 1')); @@ -851,11 +840,11 @@ class fbattle $this->AddToLogBot($this->razmen_log("block", $attack, $this->GetWeaponType($this->user['weap']), 0, $uid, $color['me'], $enemy, $color['he'], 0, 0)); } - $this->battle[$enemy][$uid] = array(0, 0, time()); + $this->battle[$enemy][$uid] = [0, 0, time()]; mysql_query("UPDATE `battle` SET `to1` = '" . time() . "', `to2` = '" . time() . "' WHERE `id` = '" . $this->battle_data['id'] . "' LIMIT 1"); $this->UpdateBattle(); } else { - $this->battle[$uid][$enemy] = array($attack, $defend, time()); + $this->battle[$uid][$enemy] = [$attack, $defend, time()]; if ($this->my_class == "B1" && $jv > 0) { mysql_query("UPDATE `battle` SET `to1` = '" . time() . "', `to2` = '" . (time() - 1) . "' WHERE `id` = '" . $this->battle_data['id'] . "' LIMIT 1"); } elseif ($jv > 0) { @@ -875,8 +864,8 @@ class fbattle function InitRazmen($enemy, $attack, $defend) { - $RazmenValues = array(1, 2, 3, 4); - $DefValues = array(1, 2, 3, 4); + $RazmenValues = [1, 2, 3, 4]; + $DefValues = [1, 2, 3, 4]; if (in_array($attack, $RazmenValues) && in_array($defend, $DefValues) && $enemy && $this->user['hp'] > 0) { if ($this->battle[$enemy][$this->user['id']][0] > 0) { @@ -910,7 +899,7 @@ class fbattle if ($uve == 1) { $this->AddToLog($this->razmen_log("uvorot", $this->battle[$enemy][$this->user['id']][0], $this->GetWeaponType($this->enemyhar['weap']), 0, $enemy, $color['me'], $this->user['id'], $color['he'], 0, 0)); } elseif ($uve == 2) { - $this->battle[$enemy][$this->user['id']] = array($attack, $defend, time()); + $this->battle[$enemy][$this->user['id']] = [$attack, $defend, time()]; if ($this->get_blocks($this->battle[$this->user['id']][$enemy][0], $this->battle[$enemy][$this->user['id']][1])) { $hs = 1; $m = 'a'; @@ -1047,12 +1036,12 @@ class fbattle $this->AddToLog($this->razmen_log("block", $defend, $this->GetWeaponType($this->user['weap']), 0, $this->user['id'], $color['me'], $enemy, $color['he'], 0, 0)); } - $this->battle[$enemy][$this->user['id']] = array(0, 0, time()); + $this->battle[$enemy][$this->user['id']] = [0, 0, time()]; mysql_query("UPDATE `battle` SET `to1` = '" . time() . "', `to2` = '" . time() . "' WHERE `id` = '" . $this->user['battle'] . "' LIMIT 1"); $this->UpdateBattle(); } else { - $this->battle[$this->user['id']][$enemy] = array($attack, $defend, time()); + $this->battle[$this->user['id']][$enemy] = [$attack, $defend, time()]; if ($this->my_class == "B1" && $jv > 0) { mysql_query("UPDATE `battle` SET `to1` = '" . time() . "', `to2` = '" . (time() - 1) . "' WHERE `id` = '" . $this->battle_data['id'] . "' LIMIT 1"); } elseif ($jv > 0) { @@ -1140,91 +1129,91 @@ class fbattle } if (!$sex1) { - $textfail = array('думал о <вырезано цензурой>, вследствие чего', 'пытался нанести удар, но ', 'подскользнулся, и', 'старался провести удар, но', 'закашлялся, и', 'пытался провести удар, но', 'потерял самоконтроль, вследствие чего', 'думал не о том, и'); + $textfail = ['думал о <вырезано цензурой>, вследствие чего', 'пытался нанести удар, но ', 'подскользнулся, и', 'старался провести удар, но', 'закашлялся, и', 'пытался провести удар, но', 'потерял самоконтроль, вследствие чего', 'думал не о том, и']; } else { - $textfail = array('думала о <вырезано цензурой>, вследствие чего', 'пыталась нанести удар, но ', 'подскользнулась, и', 'старалась провести удар, но', 'закашлялась, и', 'пыталась провести удар, но ', 'потеряла самоконтроль, вследствие чего', 'думала не о том, и'); + $textfail = ['думала о <вырезано цензурой>, вследствие чего', 'пыталась нанести удар, но ', 'подскользнулась, и', 'старалась провести удар, но', 'закашлялась, и', 'пыталась провести удар, но ', 'потеряла самоконтроль, вследствие чего', 'думала не о том, и']; } - $textchem = array( - "kulak" => array("грудью", "ребром руки", "лбом", "кулаком", "ногой", "левой ногой", "правой ногой", "коленом"), - "noj" => array("ножом", "тыльной стороной лезвия ножа", "рукоятью ножа", "лезвием ножа"), - "dubina" => array("сучковатой палкой", "поленом", "тяжелой дубиной", "дубиной", "рукоятью молота"), - "topor" => array("секирой", "топором", "лезвием секиры", "алебардой", "тяжелым держаком", "длинной секирой"), - "mech" => array("ножнами", "гардой", "мечом", "лезвием меча", "рукоятью меча", "тупым лезвием", "острой стороной меча", "огромным мечом",), - "buket" => array("охапкой цветов", "веником", "букетом", "колючками", "снопом", "стеблем", "листьями", "бутоном",) - ); + $textchem = [ + "kulak" => ["грудью", "ребром руки", "лбом", "кулаком", "ногой", "левой ногой", "правой ногой", "коленом"], + "noj" => ["ножом", "тыльной стороной лезвия ножа", "рукоятью ножа", "лезвием ножа"], + "dubina" => ["сучковатой палкой", "поленом", "тяжелой дубиной", "дубиной", "рукоятью молота"], + "topor" => ["секирой", "топором", "лезвием секиры", "алебардой", "тяжелым держаком", "длинной секирой"], + "mech" => ["ножнами", "гардой", "мечом", "лезвием меча", "рукоятью меча", "тупым лезвием", "острой стороной меча", "огромным мечом",], + "buket" => ["охапкой цветов", "веником", "букетом", "колючками", "снопом", "стеблем", "листьями", "бутоном",], + ]; $textchem = $textchem[$chem]; - $udars = array( - 1 => array('в нос', 'в глаз', 'в челюсть', 'по переносице', 'в кадык', 'по затылку', 'в правый глаз', 'в левый глаз', 'в скулу'), - 2 => array('в грудь', 'в корпус', 'в солнечное сплетение', 'в сердце', 'в бок', 'в область лопаток', 'по желудку', 'по левой руке', 'по правой руке'), - 3 => array('по <вырезано цензурой>', 'в пах', 'в промежность', 'по левой ягодице', 'по правой ягодице'), - 4 => array('по ногам', 'в область правой пятки', 'в область левой пятки', 'по коленной чашечке', 'по икрам') - ); + $udars = [ + 1 => ['в нос', 'в глаз', 'в челюсть', 'по переносице', 'в кадык', 'по затылку', 'в правый глаз', 'в левый глаз', 'в скулу'], + 2 => ['в грудь', 'в корпус', 'в солнечное сплетение', 'в сердце', 'в бок', 'в область лопаток', 'по желудку', 'по левой руке', 'по правой руке'], + 3 => ['по <вырезано цензурой>', 'в пах', 'в промежность', 'по левой ягодице', 'по правой ягодице'], + 4 => ['по ногам', 'в область правой пятки', 'в область левой пятки', 'по коленной чашечке', 'по икрам'], + ]; $kuda = $udars[$kuda][mt_rand(0, count($udars[$kuda]) - 1)]; if (!$sex1) { - $hark = array('бесчувственный', 'расстроенный', 'храбрый', 'обезумевший', 'неустрашимый', 'злобный', 'жестокий', 'наглый', 'разъяренный', 'продвинутый', 'хитрый', 'мужественный', '', '', '', '', '', ''); + $hark = ['бесчувственный', 'расстроенный', 'храбрый', 'обезумевший', 'неустрашимый', 'злобный', 'жестокий', 'наглый', 'разъяренный', 'продвинутый', 'хитрый', 'мужественный', '', '', '', '', '', '']; } else { - $hark = array('бесчувственная', 'расстроенная', 'храбрая', 'обезумевшая', 'неустрашимая', 'злобная', 'жестокая', 'наглая', 'разъяренная', 'продвинутая', 'хитрая', 'прекрасная', '', '', '', '', '', ''); + $hark = ['бесчувственная', 'расстроенная', 'храбрая', 'обезумевшая', 'неустрашимая', 'злобная', 'жестокая', 'наглая', 'разъяренная', 'продвинутая', 'хитрая', 'прекрасная', '', '', '', '', '', '']; } if (!$sex2) { - $hark2 = array('бесчувственный', 'расстроенный', 'храбрый', 'обезумевший', 'неустрашимый', 'злобный', 'жестокий', 'наглый', 'разъяренный', 'продвинутый', 'хитрый', 'мужественный', '', '', '', '', '', ''); + $hark2 = ['бесчувственный', 'расстроенный', 'храбрый', 'обезумевший', 'неустрашимый', 'злобный', 'жестокий', 'наглый', 'разъяренный', 'продвинутый', 'хитрый', 'мужественный', '', '', '', '', '', '']; } else { - $hark2 = array('бесчувственная', 'расстроенная', 'храбрая', 'обезумевшая', 'неустрашимая', 'злобная', 'жестокая', 'наглая', 'разъяренная', 'продвинутая', 'хитрая', 'прекрасная', '', '', '', '', '', ''); + $hark2 = ['бесчувственная', 'расстроенная', 'храбрая', 'обезумевшая', 'неустрашимая', 'злобная', 'жестокая', 'наглая', 'разъяренная', 'продвинутая', 'хитрая', 'прекрасная', '', '', '', '', '', '']; } if (!$sex2) { - $textud = array('забылся, и тут', 'замешкался, и за это', 'растерялся, как вдруг', 'ковырялся в зубах, и тут', 'поперхнулся, но вдруг', 'пытался что-то сказать но вдруг, неожиданно', 'растерялся, как вдруг', 'засмотрелся на <вырезано цензурой>, а в это время', 'высморкался, и в это время', 'думал не о том, и', 'пришел в себя, но в это время', 'обернулся, как внезапно'); + $textud = ['забылся, и тут', 'замешкался, и за это', 'растерялся, как вдруг', 'ковырялся в зубах, и тут', 'поперхнулся, но вдруг', 'пытался что-то сказать но вдруг, неожиданно', 'растерялся, как вдруг', 'засмотрелся на <вырезано цензурой>, а в это время', 'высморкался, и в это время', 'думал не о том, и', 'пришел в себя, но в это время', 'обернулся, как внезапно']; } else { - $textud = array('забылась, и тут', 'замешкалась, и за это ', 'растерялась, как вдруг ', 'ковырялась в зубах, и тут ', 'поперхнулась, но вдруг ', 'пыталась что-то сказать но вдруг, неожиданно', 'растерялась, как вдруг', 'засмотрелась на <вырезано цензурой>, а в это время', 'высморкалась, и в это время', 'думала не о том, и', 'пришла в себя, но в это время ', 'обернулась, как внезапно'); + $textud = ['забылась, и тут', 'замешкалась, и за это ', 'растерялась, как вдруг ', 'ковырялась в зубах, и тут ', 'поперхнулась, но вдруг ', 'пыталась что-то сказать но вдруг, неожиданно', 'растерялась, как вдруг', 'засмотрелась на <вырезано цензурой>, а в это время', 'высморкалась, и в это время', 'думала не о том, и', 'пришла в себя, но в это время ', 'обернулась, как внезапно']; } switch ($type) { case "uvorot": if ($sex2) { - $textuvorot = array(" уклонилась от удара ", " увернулась от удара ", " отскочила от удара "); + $textuvorot = [" уклонилась от удара ", " увернулась от удара ", " отскочила от удара "]; } else { - $textuvorot = array(" уклонился от удара ", " увернулся от удара ", " отскочил от удара "); + $textuvorot = [" уклонился от удара ", " увернулся от удара ", " отскочил от удара "]; } return '' . date("H:i") . ' ' . Nick::id($kto)->short() . ' ' . $textfail[mt_rand(0, count($textfail) - 1)] . ' ' . $hark2[mt_rand(0, count($hark2) - 1)] . ' ' . Nick::id($pokomy)->short() . ' ' . $textuvorot[mt_rand(0, count($textuvorot) - 1)] . ' ' . $textchem[mt_rand(0, count($textchem) - 1)] . ' ' . $kuda . '.
'; break; case "block": if ($sex2) { - $textblock = array(" заблокировала удар ", " остановила удар ", " отбила удар "); + $textblock = [" заблокировала удар ", " остановила удар ", " отбила удар "]; } else { - $textblock = array(" заблокировал удар ", " остановил удар ", " отбил удар "); + $textblock = [" заблокировал удар ", " остановил удар ", " отбил удар "]; } return '' . date("H:i") . ' ' . Nick::id($kto)->short() . ' ' . $textfail[mt_rand(0, count($textfail) - 1)] . ' ' . $hark2[mt_rand(0, count($hark2) - 1)] . ' ' . Nick::id($pokomy)->short() . ' ' . $textblock[mt_rand(0, count($textblock) - 1)] . ' ' . $textchem[mt_rand(0, count($textchem) - 1)] . ' ' . $kuda . '.
'; break; case "krit": if ($sex1) { - $textkrit = array(", напугав всех, неслышно подойдя сзади ударила по голове булыжником оппонента.", ", сказав \"БУ!\", ласково заломила руку за спину соперника.", ", расслабившись, расцарапала нос соперника.", ", показав сразу два пальца, наступила на ногу врага.", ", напугав всех, укусила в нос противника.", ", проклиная этот сайт, провела ужасный бросок через пупок оппонента."); + $textkrit = [", напугав всех, неслышно подойдя сзади ударила по голове булыжником оппонента.", ", сказав \"БУ!\", ласково заломила руку за спину соперника.", ", расслабившись, расцарапала нос соперника.", ", показав сразу два пальца, наступила на ногу врага.", ", напугав всех, укусила в нос противника.", ", проклиная этот сайт, провела ужасный бросок через пупок оппонента."]; } else { - $textkrit = array(", напугав всех, неслышно подойдя сзади ударил по голове булыжником оппонента.", ", сказав \"БУ!\", ласково заломил руку за спину соперника.", ", расслабившись, расцарапал нос соперника.", ", показав сразу два пальца, наступил на ногу врага.", ", напугав всех, укусил в нос противника.", ", проклиная этот сайт, провел ужасный бросок через пупок оппонента."); + $textkrit = [", напугав всех, неслышно подойдя сзади ударил по голове булыжником оппонента.", ", сказав \"БУ!\", ласково заломил руку за спину соперника.", ", расслабившись, расцарапал нос соперника.", ", показав сразу два пальца, наступил на ногу врага.", ", напугав всех, укусил в нос противника.", ", проклиная этот сайт, провел ужасный бросок через пупок оппонента."]; } return '' . date("H:i") . ' ' . Nick::id($pokomy)->short() . ' ' . $textud[mt_rand(0, count($textud) - 1)] . ' ' . $hark[mt_rand(0, count($hark) - 1)] . ' ' . Nick::id($kto)->short() . ' ' . $textkrit[mt_rand(0, count($textkrit) - 1)] . ' -' . $uron . ' [' . $hp . '/' . $maxhp . ']' . '
'; break; case "krita": if ($sex1) { - $textkrit = array(", напугав всех, неслышно подойдя сзади ударила, пробив блок, по голове булыжником оппонента.", ", пробив блок, ласково заломила руку за спину соперника.", ", пробив блок, расцарапала нос соперника.", ", пробив блок, наступила на ногу врага.", ", пробив блок, укусила в нос противника.", ", пробив блок, провела ужасный бросок через пупок оппонента."); + $textkrit = [", напугав всех, неслышно подойдя сзади ударила, пробив блок, по голове булыжником оппонента.", ", пробив блок, ласково заломила руку за спину соперника.", ", пробив блок, расцарапала нос соперника.", ", пробив блок, наступила на ногу врага.", ", пробив блок, укусила в нос противника.", ", пробив блок, провела ужасный бросок через пупок оппонента."]; } else { - $textkrit = array(", напугав всех, неслышно подойдя сзади ударил, пробив блок, по голове булыжником оппонента.", ", пробив блок, ласково заломил руку за спину соперника.", ", пробив блок, расцарапал нос соперника.", ", пробив блок, наступил на ногу врага.", ", пробив блок, укусил в нос противника.", ", пробив блок, провел ужасный бросок через пупок оппонента."); + $textkrit = [", напугав всех, неслышно подойдя сзади ударил, пробив блок, по голове булыжником оппонента.", ", пробив блок, ласково заломил руку за спину соперника.", ", пробив блок, расцарапал нос соперника.", ", пробив блок, наступил на ногу врага.", ", пробив блок, укусил в нос противника.", ", пробив блок, провел ужасный бросок через пупок оппонента."]; } return '' . date("H:i") . ' ' . Nick::id($pokomy)->short() . ' ' . $textud[mt_rand(0, count($textud) - 1)] . ' ' . $hark[mt_rand(0, count($hark) - 1)] . ' ' . Nick::id($kto)->short() . ' ' . $textkrit[mt_rand(0, count($textkrit) - 1)] . ' -' . $uron . ' [' . $hp . '/' . $maxhp . ']' . '
'; break; case "udar": if ($sex1) { - $textudar = array(", разбежавшись, рубанула", " отчаянно проткнула ", " нехотя уколола ", " не подумав, рубанула ", ", улыбаясь, саданула укол ", " приложила удар ", " ударила ", " сдуру вмазала "); + $textudar = [", разбежавшись, рубанула", " отчаянно проткнула ", " нехотя уколола ", " не подумав, рубанула ", ", улыбаясь, саданула укол ", " приложила удар ", " ударила ", " сдуру вмазала "]; } else { - $textudar = array(", разбежавшись, рубанул", " отчаянно проткнул ", " нехотя уколол ", " не подумав, рубанул ", ", улыбаясь, саданул укол ", " приложил удар ", " ударил ", " сдуру вмазал "); + $textudar = [", разбежавшись, рубанул", " отчаянно проткнул ", " нехотя уколол ", " не подумав, рубанул ", ", улыбаясь, саданул укол ", " приложил удар ", " ударил ", " сдуру вмазал "]; } return '' . date("H:i") . ' ' . Nick::id($pokomy)->short() . ' ' . $textud[mt_rand(0, count($textud) - 1)] . ' ' . $hark[mt_rand(0, count($hark) - 1)] . ' ' . Nick::id($kto)->short() . '' . $textudar[mt_rand(0, count($textudar) - 1)] . ' ' . $textchem[mt_rand(0, count($textchem) - 1)] . ' ' . $kuda . ' -' . $uron . ' [' . $hp . '/' . $maxhp . ']' . '
'; break; @@ -1233,13 +1222,13 @@ 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)); + $blocks = ['1' => [1, 2], '2' => [2, 3], '3' => [3, 4], '4' => [4, 1]]; return !in_array($where_atack, $blocks[$where_defend]); } function GetBlock($komy, $att, $def, $enemy) { - $blocks = array(1 => array(1, 2), 2 => array(2, 3), 3 => array(3, 4), 4 => array(4, 1)); + $blocks = [1 => [1, 2], 2 => [2, 3], 3 => [3, 4], 4 => [4, 1]]; switch ($komy) { case "me" : @@ -1567,12 +1556,12 @@ class fbattle $i_umaxu = $sila['umaxu']; } - return array('minu' => $i_uminu, 'maxu' => $i_umaxu, 'fkrit' => $i_fkrit, 'fauvorot' => $i_fauvorot, 'fakrit' => $i_fakrit); + return ['minu' => $i_uminu, 'maxu' => $i_umaxu, 'fkrit' => $i_fkrit, 'fauvorot' => $i_fauvorot, 'fakrit' => $i_fakrit]; } function solve_mfs($user_1, $user_2, $attack) { - $mfs = array(); + $mfs = []; $uid_1 = $this->get_info_by_id($user_1); $uid_2 = $this->get_info_by_id($user_2); @@ -1632,11 +1621,11 @@ class fbattle $myuvorot = floor($this->user_dress[4] + $uid_1['lovk'] * 5); #5 #3 $heauvorot = floor($this->enemy_dress[5] + $uid_2['lovk'] * 4); #4 #7 #6 $he_koef_armor = $this->enemy_dress[5 + $attack] / 50; - $mfs['me'] = array( + $mfs['me'] = [ 'udars' => rand(floor($uid_1['sila'] / 3) + $b_u_1['minu'] + 1 + $this->user_dress[0], floor($uid_1['sila'] / 3) + $b_u_1['maxu'] + 4 + $this->user_dress[1]), 'chanse' => $this->getmfs($myuvorot, $heauvorot), - 'chanse_krit' => $this->getmfs($mykrit, $heakrit) - ); + 'chanse_krit' => $this->getmfs($mykrit, $heakrit), + ]; $mfs['me']['udar'] = $mfs['me']['udars'] - ($this->enemy_dress[5 + $attack] * $he_koef_armor); $uron_vlad_me = 0; @@ -1678,11 +1667,11 @@ class fbattle $heauvorots = floor($this->user_dress[5] + $uid_1['lovk'] * 4); $me_koef_armor = $this->user_dress[5 + $this->battle[$user_2][$user_1][0]] / 50; - $mfs['he'] = array( + $mfs['he'] = [ 'udars' => floor(rand(floor($uid_2['sila'] / 3) + $b_u_2['minu'] + 1 + $this->enemy_dress[0], floor($uid_2['sila'] / 3) + $b_u_2['maxu'] + 4 + $this->enemy_dress[1])), 'chanse' => $this->getmfs($myuvorots, $heauvorots), - 'chanse_krit' => $this->getmfs($mykrits, $heakrits) - ); + 'chanse_krit' => $this->getmfs($mykrits, $heakrits), + ]; $mfs['he']['udar'] = $mfs['he']['udars'] - ($this->user_dress[5 + $this->battle[$user_2][$user_1][0]] * $me_koef_armor); if ($bmfud1 < 5) { $mfs['he']['udar'] += $bmfud1; @@ -1730,9 +1719,132 @@ class fbattle function GetComment() { - $boycom = array('А танцуешь ты лучше.', 'А мы что, в прятки тут играем?', 'А вы разве пингвинов никогда не видели?', 'А, ведь когда-то, вы были красивыми… А теперь? Ну и рожи! Жуть!', 'А потом еще труп пинать будут.', 'А я вчера ночью за соседями подглядывал. Они точно так же кувыркались', 'А ведь вы живых людей дубасите...', 'А вот я вчера в зоопарке был...', 'А вы в стройбате не служили?', 'А вы видели, чтобы так на улице делали!?', 'А вы знали что ёжики размножаются в интернете?', 'А жить-то, как хочется:', 'А из-за чего вы собственно дерётесь?', 'А чего ржёте, вы ещё остальных не видели', 'А что произойдёт если ты испугаешся до полусмерти дважды?!', 'Больше так не делай. Ты же не садист?', 'Без комментариев...', 'Больно ведь!', 'Быстро ты за монитор спрятался!', 'Все хотят попасть в рай, но никто не хочет умирать!', 'Вчера с такой девчонкой познакомился.', 'Всего 5 минут знакомы, а дерутся, словно супруги с 20-ти летним стажем...', 'Все. Я так больше не могу.', 'В конце концов, кто-то победит?', 'Вы чего, с дерева упали?', 'Возятся как сонные мухи... давайте я вам лучше анекдот расскажу: ...', 'Вот видишь, как полезно чистить зубы на ночь?', 'Вот вы все руками махаете, а за вами уже очередь', 'Вот попадёте вы в плен и вас там будут долго бить. Но вы ничего не расскажете... и не потому, что вы такой стойкий, просто вы ничего не знаете', 'Вы бы лучше пошли потренировались!', 'Вы все еще разминаетесь? Позовите, когда кости в муку друг другу разминать будете.', 'Вы же бойцы! Имейте совесть!', 'Гаси недоумка!', 'Да, если бы я смог это остановить, то получил бы нобелевскую премию `За мир` ', 'Да куда они бьют?!', 'Давайте быстрее! За вами уже очередь образовалась.', 'Давайте обойдемся сегодня таймаутом. А? А то мне уже кошмары скоро будут сниться.', 'Дерутся как девчонки!', 'Дети, посмотрите налево... Ой!.. Нет, туда лучше не смотреть.', 'Если так будет продолжаться, то скоро мы заснем!', 'Если бы у меня было кресло-качалка, я бы в нём качался...', 'Если вы что-то сказать хотите, то лучше молчите :)', 'Жестокость не порок.', 'Жизнь вне нашего клуба - это пустая трата кислорода!!!', 'Жми! Дави! Кусай! Царапай!', 'За такие бои надо в хаос отправлять!', 'Знаете откуда в комиссионном магазине столько вещей? Это я после ваших гулянок собираю и сдаю туда. Иногда вместе с частями тела, застрявшими в них.', 'Здесь люди так близки друг к другу. Просто иначе ударить нельзя.', 'И пролитая кровь еще пульсирует...', 'Инвалидов развелось...', 'Какой бой!!!', 'Кто!? Кто здесь?!', 'Кто вас этому научил?', 'Кузнечик, блин...', 'Куплю импортный проигрыватель грампластинок.', 'Лошадью ходи!', 'Лучше враг, чем друг - враг.', 'Ладно, вы тут пока друг друга за волосы таскайте, а я пойду, пообедаю.', 'Мне ваш балет уже надоел!', 'Может, начнется-таки настоящий бой???', 'Мысли лезут в голову изнутри, а удары снаружи.', 'Ну и где ваши коронные удары? Где живописные падения я спрашиваю!', 'Ну, нельзя же так наотмашь лупить!', 'Надо раньше было думать, теперь смертельно поздно...', 'На такое зрелище билеты продавать можно. Народ ухохочется!', 'Нет! Не надо драки! А... ладно деритесь, все равно не умеете.', 'Нет, ну должен быть повод, должен же быть повод?', 'Нет, я отказываюсь это комментировать!', 'Не таких обламывали!', 'Ну выпили вы рюмку, ну две... ну литр, ну два... так зачем же после этого драку затевать?!', 'Ну и кто за этот погром платить будет?', 'Ну и оскал у вас. Из вашей улыбки кастеты делать можно.', 'Ну, что же ты..? Не печалься. Выше голову, так по ней удобней попасть.', 'Ничего... Блок тоже удар.', 'Обернись!!!.... Поздно...', 'Ого! Научите меня так не делать.', 'Осторожно! Сделаешь дырочку, уже не запломбируешь!', 'Оно вам надо???', 'Обычное дело...там что-то отклеилось.', 'Ой, и заболтался я с вами...', 'Он же не промахнётся если ты не отойдёшь!', 'По-моему, кому-то светит инвалидность.', 'Подкинь ему грабли, на которые он еще не наступал.', 'Прав был кот Леопольд, давайте жить дружно?', 'При ударе в живот нарушается кислотно-щелочной баланс.', 'Проверь, не торчит ли у тебя нож из живота.', 'Перестаньте мне орать!', 'Подкинь ему грабли, на которые он еще не наступал.', 'Прыгают тут как блохи... Все, я пошел за дихлофосом!', 'Разбудите меня когда эта порнография закончится...', 'Ребенок сильнее ударил бы!', 'Славно вмазал!', 'Славно они веселятся', 'Смотрю вот на вас, и слезы наворачиваются.', 'Сначала учатся ходить, а потом только в драку лезут.', 'Так они друг другу что-нибудь сломают.', 'Так ты ему все кости переломаешь!', 'У меня в подъезде точно так же соседа отмудохали', 'Убогих развелось...', 'Ух ты, какой прыткий!', 'Фашист!! Надо ж, так по больному месту врезать...', 'Хватит бить его об угол моей кабинки! Мне же потом ее чинить.', 'Хулиганы, прекратите немедленно!', 'Хочешь, подскажу, куда он ударит?', 'Хорошо, что у меня ловкости больше чем у вас всех, а то б вы и меня в инвалидную коляску посадили бы.', 'Хороший бой!', 'Хороший удар!', 'Хиляк-разрядник!', 'Что ты его за волосы схватил?! Отпусти немедленно!', 'Щас я вас настигну, вот тогда мы и похохочем', 'Это была какая-то неизвестная мне техника...', 'Это же противник, а не глина! Хватит мяться!', 'Это не бой, это издевательское избиение.', 'Это поубавит спеси', 'Это и был твой план `Б` ?', 'Это была какая-то неизвестная мне техника...', 'Я же предупреждал, - будет больно.', 'Я не страдаю безумием. Я наслаждаюсь им каждую минуту :)', 'Я красивый, я сильный, я умный, я добрый. А вот вы? Вы себя-то видели?!', 'Я тоже умею драться, но не буду...', '(тревожно озираясь) я вам по секрету скажу... за вами наблюдают!', '<вырезано цензурой> после боя я этих <вырезано цензурой> обоих в <вырезано цензурой> и <вырезано цензурой>', '<вырезано цензурой> каратисты фиговы', '<вырезано цензурой> <вырезано цензурой>,<вырезано цензурой> на <вырезано цензурой> <вырезано цензурой> <вырезано цензурой>! Нет, это уже слишком!'); + $phrases = [ + 'А танцуешь ты лучше.', + 'А мы что, в прятки тут играем?', + 'А вы разве пингвинов никогда не видели?', + 'А, ведь когда-то, вы были красивыми… А теперь? Ну и рожи! Жуть!', + 'А потом еще труп пинать будут.', + 'А я вчера ночью за соседями подглядывал. Они точно так же кувыркались', + 'А ведь вы живых людей дубасите...', + 'А вот я вчера в зоопарке был...', + 'А вы в стройбате не служили?', + 'А вы видели, чтобы так на улице делали!?', + 'А вы знали что ёжики размножаются в интернете?', + 'А жить-то, как хочется:', + 'А из-за чего вы собственно дерётесь?', + 'А чего ржёте, вы ещё остальных не видели', + 'А что произойдёт если ты испугаешься до полусмерти дважды?!', + 'Больше так не делай. Ты же не садист?', + 'Без комментариев...', + 'Больно ведь!', + 'Быстро ты за монитор спрятался!', + 'Все хотят попасть в рай, но никто не хочет умирать!', + 'Вчера с такой девчонкой познакомился.', + 'Всего 5 минут знакомы, а дерутся, словно супруги с 20-ти летним стажем...', + 'Все. Я так больше не могу.', + 'В конце концов, кто-то победит?', + 'Вы чего, с дерева упали?', + 'Возятся как сонные мухи... давайте я вам лучше анекдот расскажу: ...', + 'Вот видишь, как полезно чистить зубы на ночь?', + 'Вот вы все руками махаете, а за вами уже очередь', + 'Вот попадёте вы в плен и вас там будут долго бить. Но вы ничего не расскажете... и не потому, что вы такой стойкий, просто вы ничего не знаете', + 'Вы бы лучше пошли потренировались!', + 'Вы все еще разминаетесь? Позовите, когда кости в муку друг другу разминать будете.', + 'Вы же бойцы! Имейте совесть!', + 'Гаси недоумка!', + 'Да, если бы я смог это остановить, то получил бы нобелевскую премию `За мир` ', + 'Да куда они бьют?!', + 'Давайте быстрее! За вами уже очередь образовалась.', + 'Давайте обойдемся сегодня таймаутом. А? А то мне уже кошмары скоро будут сниться.', + 'Дерутся как девчонки!', + 'Дети, посмотрите налево... Ой!.. Нет, туда лучше не смотреть.', + 'Если так будет продолжаться, то скоро мы заснем!', + 'Если бы у меня было кресло-качалка, я бы в нём качался...', + 'Если вы что-то сказать хотите, то лучше молчите :)', + 'Жестокость не порок.', + 'Жизнь вне нашего клуба - это пустая трата кислорода!!!', + 'Жми! Дави! Кусай! Царапай!', + 'За такие бои надо в хаос отправлять!', + 'Знаете откуда в комиссионном магазине столько вещей? Это я после ваших гулянок собираю и сдаю туда. Иногда вместе с частями тела, застрявшими в них.', + 'Здесь люди так близки друг к другу. Просто иначе ударить нельзя.', + 'И пролитая кровь еще пульсирует...', + 'Инвалидов развелось...', + 'Какой бой!!!', + 'Кто!? Кто здесь?!', + 'Кто вас этому научил?', + 'Кузнечик, блин...', + 'Куплю импортный проигрыватель грампластинок.', + 'Лошадью ходи!', + 'Лучше враг, чем друг - враг.', + 'Ладно, вы тут пока друг друга за волосы таскайте, а я пойду, пообедаю.', + 'Мне ваш балет уже надоел!', + 'Может, начнется-таки настоящий бой???', + 'Мысли лезут в голову изнутри, а удары снаружи.', + 'Ну и где ваши коронные удары? Где живописные падения я спрашиваю!', + 'Ну, нельзя же так наотмашь лупить!', + 'Надо раньше было думать, теперь смертельно поздно...', + 'На такое зрелище билеты продавать можно. Народ ухохочется!', + 'Нет! Не надо драки! А... ладно деритесь, все равно не умеете.', + 'Нет, ну должен быть повод, должен же быть повод?', + 'Нет, я отказываюсь это комментировать!', + 'Не таких обламывали!', + 'Ну выпили вы рюмку, ну две... ну литр, ну два... так зачем же после этого драку затевать?!', + 'Ну и кто за этот погром платить будет?', + 'Ну и оскал у вас. Из вашей улыбки кастеты делать можно.', + 'Ну, что же ты..? Не печалься. Выше голову, так по ней удобней попасть.', + 'Ничего... Блок тоже удар.', + 'Обернись!!!.... Поздно...', + 'Ого! Научите меня так не делать.', + 'Осторожно! Сделаешь дырочку, уже не запломбируешь!', + 'Оно вам надо???', + 'Обычное дело...там что-то отклеилось.', + 'Ой, и заболтался я с вами...', + 'Он же не промахнётся если ты не отойдёшь!', + 'По-моему, кому-то светит инвалидность.', + 'Подкинь ему грабли, на которые он еще не наступал.', + 'Прав был кот Леопольд, давайте жить дружно?', + 'При ударе в живот нарушается кислотно-щелочной баланс.', + 'Проверь, не торчит ли у тебя нож из живота.', + 'Перестаньте мне орать!', + 'Подкинь ему грабли, на которые он еще не наступал.', + 'Прыгают тут как блохи... Все, я пошел за дихлофосом!', + 'Разбудите меня когда эта порнография закончится...', + 'Ребенок сильнее ударил бы!', + 'Славно вмазал!', + 'Славно они веселятся', + 'Смотрю вот на вас, и слезы наворачиваются.', + 'Сначала учатся ходить, а потом только в драку лезут.', + 'Так они друг другу что-нибудь сломают.', + 'Так ты ему все кости переломаешь!', 'У меня в подъезде точно так же соседа отмудохали', + 'Убогих развелось...', + 'Ух ты, какой прыткий!', + 'Фашист!! Надо ж, так по больному месту врезать...', + 'Хватит бить его об угол моей кабинки! Мне же потом ее чинить.', + 'Хулиганы, прекратите немедленно!', + 'Хочешь, подскажу, куда он ударит?', + 'Хорошо, что у меня ловкости больше чем у вас всех, а то б вы и меня в инвалидную коляску посадили бы.', + 'Хороший бой!', + 'Хороший удар!', + 'Хиляк-разрядник!', + 'Что ты его за волосы схватил?! Отпусти немедленно!', + 'Щас я вас настигну, вот тогда мы и похохочем', + 'Это была какая-то неизвестная мне техника...', + 'Это же противник, а не глина! Хватит мяться!', + 'Это не бой, это издевательское избиение.', + 'Это поубавит спеси', + 'Это и был твой план `Б` ?', + 'Я же предупреждал, - будет больно.', + 'Я не страдаю безумием. Я наслаждаюсь им каждую минуту :)', + 'Я красивый, я сильный, я умный, я добрый. А вот вы? Вы себя-то видели?!', + 'Я тоже умею драться, но не буду...', + '(тревожно озираясь) я вам по секрету скажу... за вами наблюдают!', + '<вырезано цензурой> после боя я этих <вырезано цензурой> обоих в <вырезано цензурой> и <вырезано цензурой>', + '<вырезано цензурой> каратисты фиговы', + '<вырезано цензурой> <вырезано цензурой>,<вырезано цензурой> на <вырезано цензурой> <вырезано цензурой> <вырезано цензурой>! Нет, это уже слишком!', + ]; if (mt_rand(0, 4) == 1) { - return '' . date("H:i") . ' Комментатор: ' . $boycom[mt_rand(0, count($boycom) - 1)] . '
'; + return sprintf('%s Комментатор: %s
', date("H:i"), array_rand(array_flip($phrases), 1)); } else { return false; } @@ -1741,20 +1853,13 @@ class fbattle function GetTimeout() { if ($this->battle) { - if ($this->my_class == 'B1') { - if ($this->to2 <= $this->to1) { - return ((time() - $this->to2) > $this->battle_data['timeout'] * 60); - } else { - return false; - } - } else { - if ($this->to2 >= $this->to1) { - return ((time() - $this->to1) > $this->battle_data['timeout'] * 60); - } else { - return false; - } + if ($this->my_class == 'B1' && $this->to2 <= $this->to1) { + return ((time() - $this->to2) > $this->battle_data['timeout'] * 60); + } elseif ($this->to2 >= $this->to1) { + return ((time() - $this->to1) > $this->battle_data['timeout'] * 60); } } + return false; } function AddToLog($text) @@ -1769,15 +1874,26 @@ class fbattle } } - function write_log() + private function write_log() { if ($this->log) { $this->log = $this->log . "
"; } - addlogs($this->battle_data['id'], $this->log); + $this->addlogs($this->battle_data['id'], $this->log); $this->log = ''; } + private function addlogs($id, $log) + { + $fp = fopen("backup/logs/battle" . $id . ".txt", "a"); + flock($fp, LOCK_EX); + fputs($fp, $log); + fflush($fp); + flock($fp, LOCK_UN); + fclose($fp); + unset($id, $log); + } + } $r = mysql_query("SELECT `id`, `win` FROM `battle` WHERE `win` = 3"); @@ -1798,8 +1914,8 @@ while ($rec = mysql_fetch_array($r)) { $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; $fbattle->battle_end(); } diff --git a/functions.php b/functions.php index de44dd6..b971ed2 100644 --- a/functions.php +++ b/functions.php @@ -1083,8 +1083,8 @@ function telegraph($userId, $text) function get_meshok() { global $user; - $d = db::c()->query('SELECT SUM(`gmeshok`) AS `ves` FROM `inventory` WHERE `owner` = ?i AND `setsale` = 0 AND `gmeshok` > 0', $_SESSION['uid'])->fetch_assoc(); - return ($user->strength * 4 + $d['ves']); + $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']); } /** diff --git a/labirint.php b/labirint.php index 723e67d..a3c543b 100644 --- a/labirint.php +++ b/labirint.php @@ -23,14 +23,11 @@ $errkom = ''; $varsitm = [[270, 1]]; $varsitm2 = [[87, 1], [88, 1], [48, 1], [49, 1], [29, 1], [66, 1], [97, 1], [67, 1], [98, 1], [115, 1]]; -function labaItemAdd($id, $type) +function labaItemAdd($id) { global $user; - if ($type == 1) { - $dress = mysql_fetch_array(mysql_query('SELECT * FROM `shop` WHERE `id` = "' . (int)$id . '" LIMIT 1')); - } else { - $dress = mysql_fetch_array(mysql_query('SELECT * FROM `ashop` WHERE `id` = "' . (int)$id . '" LIMIT 1')); - } + $dress = mysql_fetch_array(mysql_query('SELECT * FROM `shop` WHERE `id` = "' . (int)$id . '" LIMIT 1')); + if (isset($dress['id'])) { mysql_query("INSERT INTO `inventory` (`laba`, `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`,`gmp`,`gmeshok`,`encicl`,`artefact`,`koll`) VALUES ('$type', '{$dress['id']}','{$user['id']}','{$dress['name']}','{$dress['type']}',{$dress['massa']},{$dress['cost']},'{$dress['img']}',{$dress['maxdur']},{$dress['isrep']},'{$dress['gsila']}','{$dress['glovk']}','{$dress['ginta']}','{$dress['gintel']}','{$dress['ghp']}','{$dress['gnoj']}','{$dress['gtopor']}','{$dress['gdubina']}','{$dress['gmech']}','{$dress['gfire']}','{$dress['gwater']}','{$dress['gair']}','{$dress['gearth']}','{$dress['glight']}','{$dress['ggray']}','{$dress['gdark']}','{$dress['needident']}','{$dress['nsila']}','{$dress['nlovk']}','{$dress['ninta']}','{$dress['nintel']}','{$dress['nmudra']}','{$dress['nvinos']}','{$dress['nnoj']}','{$dress['ntopor']}','{$dress['ndubina']}','{$dress['nmech']}','{$dress['nfire']}','{$dress['nwater']}','{$dress['nair']}','{$dress['nearth']}','{$dress['nlight']}','{$dress['ngray']}','{$dress['ndark']}','{$dress['mfkrit']}','{$dress['mfakrit']}','{$dress['mfuvorot']}','{$dress['mfauvorot']}','{$dress['bron1']}','{$dress['bron2']}','{$dress['bron3']}','{$dress['bron4']}','{$dress['maxu']}','{$dress['minu']}','{$dress['magic']}','{$dress['nlevel']}','{$dress['nalign']}','" . (($dress['goden']) ? ($dress['goden'] * 24 * 60 * 60 + time()) : "") . "','{$dress['goden']}','{$dress['razdel']}','{$dress['gmp']}','{$dress['gmeshok']}','{$dress['encicl']}','{$dress['artefact']}','{$dress[koll]}')"); } @@ -175,7 +172,7 @@ if ($user->room == 1052) { $bots = [ 0 => [10025, 10026, 10027, 10028, 10031, 10032, 10033, 10034], 1 => [10111, 10112, 10113, 10114, 10115, 10116], - 2 => [10111, 10112, 10113] + 2 => [10111, 10112, 10113], ]; $bot_pix2 = $bots[$lab['type']]; @@ -334,7 +331,7 @@ if ($user->room == 1052) { money_add($kr); unset($kr); } else { - labaItemAdd($var['itm']['id'], 1); + labaItemAdd($var['itm']['id']); } } else { $var['itm']['name'] = 'Предмет рассыпался на глазах...'; @@ -346,14 +343,7 @@ if ($user->room == 1052) { if ($user['sex'] == 0) { $var['sex'] = 'а'; } - $var['itm'] = $varsitm2[rand(0, count($varsitm2) - 1)]; - $var['itm'] = $var['itm'][0]; - $var['itm'] = mysql_fetch_array(mysql_query('SELECT `id`, `name` FROM `ashop` WHERE `id` = "' . $var['itm'] . '" LIMIT 1')); - if (isset($var['itm']['id'])) { - labaItemAdd($var['itm']['id'], 2); - } else { - $var['itm']['name'] = 'Предмет рассыпался на глазах...'; - } + $errors .= ' ' . $user['login'] . ' открыл' . $var['sex'] . ' Ящик Пандоры...и забрал "' . $var['itm']['name'] . '"'; $var['obj']['use'] = $user['id']; } elseif ($var['obj']['type'] == 3) { diff --git a/main.php b/main.php index 46dcaae..3a996bc 100644 --- a/main.php +++ b/main.php @@ -2,7 +2,7 @@ ob_start("ob_gzhandler"); session_start(); $get = filter_input(INPUT_SERVER, 'QUERY_STRING'); -if ($get === 'exit') { +if ($get == 'exit') { session_destroy(); header("Location: fight.php"); } @@ -50,142 +50,155 @@ while ($row = $data->fetch_assoc()) { } //Обработчики нажатий на кнопки. -if (isset($_POST['battlefield'])) { +if ($_POST['battlefield'] ?? 0 && $user->room == 1) { header('Location: zayavka.php'); exit(); } +if ($_POST['module_quest'] ?? 0) { + header('Location: module_quest.php'); + exit(); +} +if ($_POST['move_inside'] ?? 0 && $user->room == 20) { + header('Location: main.php?goto=arena'); + exit(); +} +if ($_POST['move_outside'] ?? 0 && $user->room == 1) { + header('Location: main.php?goto=plo'); + exit(); +} +if ($_POST['main_page'] ?? 0) { + header('Location: main.php'); + exit(); +} -/* === проверяем соответствие комнаты и скрипта === */ -if (in_array($user->room, [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111], 1)) { - header('Location: city.php'); - exit(); -} -if ($user->room == 22) { - header('Location: shop.php'); - exit(); -} -if ($user->room == 23) { - header('Location: repair.php'); - exit(); -} -if ($user->room == 25) { - header('Location: comission.php'); - exit(); -} -if ($user->room == 27) { - header('Location: post.php'); - exit(); -} -if ($user->room == 29) { - header('Location: bank.php'); - exit(); -} -if ($user->room == 31) { - header('Location: tower.php'); - exit(); -} -if ($user->room == 30) { - header('Location: clan_create.php'); - exit(); -} -if ($user->room == 34) { - header('Location: fshop.php'); - exit(); -} -if ($user->room == 45) { - header('Location: clan_castle.php'); - exit(); -} -if ($user->room == 50) { - header('Location: ashop.php'); - exit(); -} -if ($user->room == 53) { - header('Location: library.php'); - exit(); -} -if ($user->room == 61) { - header('Location: akadem.php'); - exit(); -} -if ($user->room == 650) { - header('Location: ul_clans.php'); - exit(); -} +if ($edit === null) { + /* === проверяем соответствие комнаты и скрипта === */ + if (in_array($user->room, [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111])) { + header('Location: city.php'); + exit(); + } + if ($user->room == 22) { + header('Location: shop.php'); + exit(); + } + if ($user->room == 23) { + header('Location: repair.php'); + exit(); + } + if ($user->room == 25) { + header('Location: comission.php'); + exit(); + } + if ($user->room == 27) { + header('Location: post.php'); + exit(); + } + if ($user->room == 29) { + header('Location: bank.php'); + exit(); + } + if ($user->room == 31) { + header('Location: tower.php'); + exit(); + } + if ($user->room == 30) { + header('Location: clan_create.php'); + exit(); + } + if ($user->room == 34) { + header('Location: fshop.php'); + exit(); + } + if ($user->room == 45) { + header('Location: clan_castle.php'); + exit(); + } + if ($user->room == 53) { + header('Location: library.php'); + exit(); + } + if ($user->room == 61) { + header('Location: akadem.php'); + exit(); + } + if ($user->room == 650) { + header('Location: ul_clans.php'); + exit(); + } //ЦХ -if ($user->room == 600) { - header('Location: c_haos.php'); - exit(); + if ($user->room == 600) { + header('Location: c_haos.php'); + exit(); + } + if ($user->room == 601) { + header('Location: c_haos_in.php'); + exit(); + } + if ($user->room == 602) { + header('Location: c_park.php'); + exit(); + } + if ($user->room == 603) { + header('Location: aren_of_angels.php'); + exit(); + } + if ($user->room == 620) { + header('Location: enter_cave.php'); + exit(); + } + if ($user->room == 621) { + header('Location: cave.php'); + exit(); + } + if ($user->room == 660) { + header('Location: hostel.php'); + exit(); + } + if ($user->room == 661) { + header('Location: hostel_room.php'); + exit(); + } + if ($user->room == 662) { + header('Location: quest_room.php'); + exit(); + } + if ($user->room == 760) { + header('Location: c_forest.php'); + exit(); + } + if ($user->room == 1000) { + header('Location: solib/enterbezdna.php'); + exit(); + } + if ($user->room == 1001) { + header('Location: solib/dungeon.php'); + exit(); + } + if ($user->room == 1051) { + header('Location: lab_enter.php'); + exit(); + } + if ($user->room == 1052) { + header('Location: labirint.php'); + exit(); + } + if ($user->room == 402) { + header('Location: vxod.php'); + exit(); + } + if ($user->room == 403) { + header('Location: canalizaciya.php'); + exit(); + } + if ($user->room == 1055) { + header('Location: group_arena.php'); + exit(); + } + if ($user->room == 666) { + header('Location: jail.php'); + exit(); + } } -if ($user->room == 601) { - header('Location: c_haos_in.php'); - exit(); -} -if ($user->room == 602) { - header('Location: c_park.php'); - exit(); -} -if ($user->room == 603) { - header('Location: aren_of_angels.php'); - exit(); -} -if ($user->room == 620) { - header('Location: enter_cave.php'); - exit(); -} -if ($user->room == 621) { - header('Location: cave.php'); - exit(); -} -if ($user->room == 660) { - header('Location: hostel.php'); - exit(); -} -if ($user->room == 661) { - header('Location: hostel_room.php'); - exit(); -} -if ($user->room == 662) { - header('Location: quest_room.php'); - exit(); -} -if ($user->room == 760) { - header('Location: c_forest.php'); - exit(); -} -if ($user->room == 1000) { - header('Location: solib/enterbezdna.php'); - exit(); -} -if ($user->room == 1001) { - header('Location: solib/dungeon.php'); - exit(); -} -if ($user->room == 1051) { - header('Location: lab_enter.php'); - exit(); -} -if ($user->room == 1052) { - header('Location: labirint.php'); - exit(); -} -if ($user->room == 402) { - header('Location: vxod.php'); - exit(); -} -if ($user->room == 403) { - header('Location: canalizaciya.php'); - exit(); -} -if ($user->room == 1055) { - header('Location: group_arena.php'); - exit(); -} -if ($user->room == 666) { - header('Location: jail.php'); - exit(); -} - function del_efs($id, $type) { if ($id && !in_array($type, [2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 20])) { @@ -202,7 +215,7 @@ function del_efs($id, $type) // одеть предмет function dressitem($id) { - //FIXME Предметы не должны одеваться, если не соответствуют требованиям! + //FIXME bug #7 define('HELMET', 1); define('ARMOR', 2); define('LEGS', 3); @@ -234,7 +247,7 @@ function dressitem($id) if (!$itemInSlotQuantity) { // просто одеваем предмет db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i', $id); - } elseif ($itemInSlotQuantity === 1) { + } elseif ($itemInSlotQuantity == 1) { // снимаем предмет и одеваем вместо db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i', $itemInSlot[0]); db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i', $id); @@ -252,7 +265,7 @@ function dressitem($id) sort($emptyRingSlots); // Одеваем предмет в первый свободный слот. db::c()->query('UPDATE inventory SET dressed_slot = ?i WHERE item_id = ?i', $emptyRingSlots[0], $id); - } elseif ($itemInSlotQuantity === 3) { + } elseif ($itemInSlotQuantity == 3) { db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = 11'); db::c()->query('UPDATE inventory SET dressed_slot = 11 WHERE item_id = ?i', $id); // снимаем предмет из слота 11 и одеваем вместо @@ -292,14 +305,14 @@ if ($goto) { err('У вас тяжелая травма, вы не можете передвигатся...'); $imove = false; } - if ($goto == 'plo' && !$user->zayavka && $imove === true) { - db::c()->query('UPDATE users, online SET users.room = 20, online.room = 20 WHERE online.user_id = users.id AND online.users_id = ?i', $_SESSION['uid']); + if ($goto == 'plo' && !$user->zayavka && $imove && $user->room != 20) { + db::c()->query('UPDATE users, online SET users.room = 20, online.room = 20 WHERE online.user_id = users.id AND online.user_id = ?i', $_SESSION['uid']); header('Location: city.php'); exit("Топ-топ-топ..."); } else { err('Подали заявку на бой и убегаете из клуба? Нехорошо...'); } - if ($goto == 'arena' && $user->room === 20 && $imove === true) { + if ($goto == 'arena' && $user->room == 20 && $imove) { db::c()->query('UPDATE users, online SET users.room = 1, online.room = 1 WHERE online.user_id = users.id AND online.user_id = ?i', $_SESSION['uid']); header('Location: main.php'); exit("Топ-топ-топ..."); @@ -543,21 +556,14 @@ Template::header('Игра'); title="Образы">
- - - room === 20): ?> - - - + room == 20): ?> + + room == 1): ?> + + - + +
diff --git a/post.php b/post.php index 524fc67..d8e5c5b 100644 --- a/post.php +++ b/post.php @@ -15,22 +15,18 @@ if ($user->battle) { header('location: fbattle.php'); exit; } -$changeReceiver = $_GET['change'] ?? 0; -if ($changeReceiver) { +if ($_GET['change'] ?? 0) { unset($_SESSION['receiverName']); } -$razdelId = $_GET['razdel'] ?? 0; $_SESSION['receiverName'] = $_POST['receiverName'] ?? ''; $receiverId = null; $queryItems = null; +$statusMessage = null; if ($_SESSION['receiverName']) { $receiver = db::c()->query('SELECT `id`, `level`, `login` FROM `users` WHERE `login` = "?s"', $_SESSION['receiverName'])->fetch_assoc(); if (!$receiver['id']) { - err('Персонажа не существует!'); - unset($_SESSION['receiverName']); - } elseif ($receiver['level'] < 4) { - err('Персонажей ниже 4-го уровня не обслуживаем!'); + $statusMessage = 'Персонажа не существует!'; unset($_SESSION['receiverName']); } else { $receiverId = $receiver['id']; @@ -51,27 +47,20 @@ if ($_SESSION['receiverName']) { } if ($submit == 'sendItem' && $sendItemId && $user->money) { - $res = db::c()->query('SELECT `id`,`name` FROM `inventory` WHERE `owner` = ?i AND `id` = ?i AND `dressed` = 0 AND `setsale` = 0 AND `present` = "?s" AND `artefact` = 0', $_SESSION['uid'], $sendItemId, null)->fetch_assoc(); - if (!$res['id']) { + $res = db::c()->query('SELECT name FROM inventory WHERE owner_id = ?i AND item_id = ?i AND dressed_slot = 0 AND on_sale = 0', $user->id, $sendItemId)->fetch_assoc(); + if (!$res) { $statusMessage = "Предмет не найден в рюкзаке."; } else { $user->money -= 1; Bank::setWalletMoney($user->money, $user->id); - db::c()->query('UPDATE `inventory` SET `owner` = ?i WHERE `id`= ?i AND `owner`= ?i', $receiverId, $sendItemId, $_SESSION['uid']); - //TODO: Добавить логи и статистику. + db::c()->query('UPDATE `inventory` SET owner_id = ?i WHERE item_id= ?i AND owner_id = ?i', $receiverId, $sendItemId, $_SESSION['uid']); + //TODO: #9 $statusMessage = 'Предмет "' . $res['name'] . '" передан персонажу ' . $receiverId; db::c()->query('INSERT INTO `telegraph` (`receiver`,`text`) VALUES (?i,"?s")', $receiverId, 'Почтовый перевод: ' . $res['name'] . ' от персонажа ' . $user['login'] . '.'); } } - $queryItems = db::c()->query('SELECT `inventory`.*, - `magic`.`name` AS `magic_name`, - `magic`.`chanse` AS `magic_chanse`, - `magic`.`time` AS `magic_time`, - `magic`.`file` AS `magic_file`, - `magic`.`targeted` AS `magic_targeted`, - `magic`.`needcharge` AS `magic_needcharge`, - `magic`.`img` AS `magic_img` FROM `inventory` LEFT JOIN `magic` ON `magic` = `magic`.`id` WHERE `owner` = ?i AND `dressed` = 0 AND `setsale` = 0 AND `present` = "?s" AND `artefact` = 0 ORDER BY `update` DESC', $_SESSION['uid'], null); - $iteminfo = []; + + $queryItems = db::c()->query('SELECT * FROM inventory WHERE dressed_slot = 0 AND on_sale = 0 AND owner_id = ?i', $user->id); while ($row = $queryItems->fetch_assoc()) { $iteminfo[] = new InventoryItem($row); } @@ -79,14 +68,13 @@ if ($_SESSION['receiverName']) { } Template::header('Почта'); ?> -
- +

Почта

-
+
Услуги почты платные: 1 кредит. - + Получатель: full() ?> Сменить
", $clanreg_row['date'], " ", $clanreg_row['name'], "
@@ -136,4 +124,4 @@ Template::header('Почта'); - + \ No newline at end of file diff --git a/top_menu.php b/top_menu.php index f64337e..f0e7c8a 100644 --- a/top_menu.php +++ b/top_menu.php @@ -1,4 +1,6 @@ - +