battles/city.php

359 lines
14 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Центральная площадь
*/
session_start();
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
require_once "functions.php";
$user = $user ?? [];
$tm = time();
if ($user->battle) {
header('location: fbattle.php');
exit;
}
if ($user->in_tower == 1) {
header('Location: towerin.php');
exit;
}
if ($user->zayavka) {
exit;
}
function move($room, $redirect = null)
{
$d = db::c()->query('SELECT SUM(`massa`) AS `mass` FROM `inventory` WHERE `owner` = ?i AND `setsale` = 0', $_SESSION['uid'])->fetch_assoc();
$eff = db::c()->query('SELECT `type` FROM `effects` WHERE `owner` = ?i AND (`type` = 10 OR `type` = 13 OR `type` = 14)', $_SESSION['uid'])->fetch_assoc();
if ($d['mass'] > get_meshok()) {
return 'У вас переполнен рюкзак, вы не можете передвигаться...';
}
if ($eff['type'] == 10) {
return 'Вы парализованы и не можете передвигаться...';
}
if ($eff['type'] == 13 || $eff['type'] == 14) {
return 'У вас тяжелая травма, вы не можете передвигаться...';
}
db::c()->query('UPDATE `users`,`online` SET `users`.`room` = ?i,`online`.`room` = ?i WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $room, $room, $_SESSION['uid']);
if ($redirect) {
header('location: ' . $redirect);
exit;
}
return true;
}
$location = explode('/', filter_input(INPUT_SERVER, 'QUERY_STRING'));
switch ($location[0]) {
case 'cp':
move(20, 'city.php');
break;
case 'strah':
move(21, 'city.php');
break;
case 'bps':
move(26, 'city.php');
break;
case 'ps':
move(51, 'city.php');
break;
case 'zaliv':
move(2111, 'city.php');
break;
case 'zamk':
move(2601, 'city.php');
break;
case 'abog':
move(2655, 'city.php');
break;
case 'torg':
move(2702, 'city.php');
break;
case 'got':
if ($user->room == 20) {
switch ($location[1]) {
case 'level1':
header('location: main.php?goto=arena');
exit;
break;
case 'level7':
header('location: city.php?strah');
break;
case 'level8':
header('location: city.php?bps');
break;
case 'level13':
header('location: quest_room.php');
break;
case 'level222':
header('location: city.php?torg');
break;
case 'level17':
move(50, 'ashop.php');
break;
case 'level2':
move(22, 'shop.php');
break;
case 'level4':
move(23, 'repair.php');
break;
case 'level6':
move(27, 'post.php');
break;
case 'level3':
move(25, 'comission.php');
break;
}
} elseif ($user->room == 21) {
switch ($location[1]) {
case 'level4':
header('location: city.php?cp');
break;
case 'level3':
header('location: city.php?zaliv');
break;
case 'level13':
move(34, 'fshop.php');
break;
case 'level5':
move(29, 'bank.php');
break;
case 'level16':
move(31, 'tower.php');
break;
case 'level14':
move(30, 'clan_create.php');
break;
case 'level650':
move(650, 'ul_clans.php');
break;
}
} elseif ($user->room == 2111) {
switch ($location[1]) {
case 'level1':
header('location: city.php?strah');
break;
case 'level2':
header('location: city.php?haos');
break;
case 'level203':
move(1055, 'group_arena.php');
break;
case 'level1000':
move(620, 'enter_cave.php');
break;
case 'room666':
move(666, 'jail.php');
break;
}
} elseif ($user->room == 2601) {
switch ($location[1]) {
case 'level4':
header('location: city.php?bps');
break;
case 'level55':
header('location: city.php?abog');
break;
case 'level1':
move(37, 'gotzamok.php');
break;
case 'level1051':
move(1051, 'lab_enter.php');
break;
case 'level5':
move(404, 'vxod.php');
break;
}
} elseif ($user->room == 2701) {
switch ($location[1]) {
case 'level1':
header('location: city.php?zaliv');
break;
case 'level2':
move(402, 'lab_chaos_enter.php');
break;
}
} elseif ($user->room == 2702) {
switch ($location[1]) {
case 'level10':
header('location: city.php?cp');
break;
case 'level6':
move(61, 'akadem.php');
break;
}
} elseif ($user->room == 2655) {
switch ($location[1]) {
case 'level10':
header('location: city.php?zamk');
break;
case 'level2055':
move(603, 'aren_of_angels.php');
break;
}
} elseif ($user->room == 26) {
switch ($location[1]) {
case 'level4':
header('location: city.php?cp');
break;
case 'level3':
header('location: city.php?zamk');
break;
case 'level660':
move(660, 'hostel.php');
break;
case 'level7':
move(777, 'obshaga.php');
break;
case 'level56':
move(401, 'hell.php');
break;
}
}
}
function getSeason()
{
$todayMonth = date('n');
if ($todayMonth >= 3 && $todayMonth <= 5) {
return 'spring_';
}
if ($todayMonth >= 6 && $todayMonth <= 8) {
return 'summer_';
}
if ($todayMonth >= 9 && $todayMonth <= 11) {
return 'autumn_';
}
return 'winter_';
}
function buildset($id, $img, $top, $left, $des, $noSeason = 0)
{
if (!$noSeason) {
$img = getSeason() . $img;
}
?>
<div style="position:absolute; left:<?= $left ?>px; top:<?= $top ?>px; z-index:90; cursor: pointer;">
<img src="i/city/sub/<?= $img ?>.png" alt="<?= $des ?>" title="<?= $des ?>" class="building"
id="<?= $id ?>" onclick="solo(<?= $id ?>)"/>
</div>
<?php
}
function bgset($img)
{
$daytime = date('H');
if ($daytime >= 6 && $daytime <= 21) {
$background = getSeason() . $img . '_day';
}
else {
$background = getSeason() . $img . '_night';
}
echo sprintf('<div style="position:relative; display: inline-block;" id="ione"><img alt="background" src="i/city/%s.jpg">', $background);
}
$online = db::c()->query('SELECT 1 FROM `online` WHERE `real_time` >= ?i', (time() - 60));
Template::header('city');
?>
<style>
img.building:hover {
filter: drop-shadow(2px 2px 2px white) sepia(15%);
}
</style>
<script type="text/javascript">
function solo(n) {
top.changeroom = n;
window.location.href = 'city.php?got/level' + n;
}
function Down() {
top.CtrlPress = window.event.ctrlKey
}
document.onmousedown = Down;
</script>
<table class="allzeroes">
<TR>
<TD align=center></TD>
<TD align=right>Сейчас в игре : <?= $online->getNumRows() ?> игроков.</TD>
</TR>
<TR>
<TD align=center colspan=2>
<?php
if ($user->room == 20) {
bgset('cap_cp');
buildset(1, "cap_club", 30, 235, "Бойцовский Клуб");
buildset(2, "cap_shop", 202, 171, "Магазин");
buildset(3, "cap_kom", 205, 105, "Комиссионный магазин");
buildset(4, "cap_rem", 202, 290, "Ремонтная мастерская");
buildset(13, "cap_statue", 222, 365, "Памятник Мэру Города");
buildset(6, "cap_po4ta", 180, 540, "Почта");
buildset(7, "cap_arr_right", 260, 710, "Страшилкина Улица", 1);
buildset(222, "cap_arr_top", 180, 650, "Торговая улица", 1);
buildset(8, "cap_arr_left", 258, 21, "Большая парковая улица", 1);
buildset(17, "cap_berezka", 205, 435, "Березка");
buildset(9, "cap_tree2", 260, 530, "Новогодняя елка");
buildset(14, "cap_sneg_3", 210, 390, "Снеговик");
echo "</div>";
} elseif ($user->room == 21) {
bgset('cap_strash');
buildset(5, "cap_bank", 180, 485, "Банк");
buildset(14, "cap_registratura", 170, 113, "Регистратура кланов");
buildset(16, "cap_tower", 5, 315, "Башня смерти");
buildset(16555, "cap_tree", 165, 20, "Дерево");
buildset(3, "cap_arr_right", 255, 708, "Ристалище", 1);
buildset(13, "cap_flowershop", 220, 613, "Цветочный магазин");
buildset(4, "cap_arr_left", 258, 21, "Центральная площадь", 1);
echo "</div>";
} elseif ($user->room == 26) {
bgset('cap_park');
buildset(6, "cap_gate", 170, 340, "Городские ворота", 1);
buildset(660, "cap_vokzal", 163, 43, "Общежитие");
buildset(3, "cap_arr_left", 259, 27, "Замковая площадь", 1);
buildset(4, "cap_arr_right", 259, 715, "Центральная площадь", 1);
echo "</div>";
} elseif ($user->room == 2601) {
bgset('cap_zamk');
buildset(1052, "cap_lavka", 240, 425, "Храмовая лавка");
buildset(10, "ava_post", 240, 300, "Сувенирный магазинчик", 1);
buildset(1, "cap_ruins", 166, 48, "Руины Старого замка");
buildset(1051, "cap_lab", 130, 327, "Вход в Лабиринт Хаоса");
buildset(55, "cap_arr_left", 258, 21, "Арена Богов", 1);
buildset(4, "cap_arr_right", 260, 710, "Большая парковая улица", 1);
echo "</div>";
} elseif ($user->room == 2655) {
bgset('ar_e_n');
buildset(2055, "cap_altr_g", 230, 340, "Арена Ангелов");
buildset(10, "arr_right_png", 260, 710, "Замковая площадь", 1);
echo "</div>";
} elseif ($user->room == 2111) {
bgset('rist_bg');
buildset(1, "cap_arr_uleft", 240, 30, "Страшилкина Улица", 1);
buildset(2, "cap_arr_right", 245, 708, "Секретный Лабиринт", 1);
buildset(14, "cap_rist_solo", 210, 160, "Вход в Одиночные сражения");
buildset(14, "cap_rist_group", 243, 340, "Вход в Сражение отрядов");
buildset(1000, "av_zamk_rud", 80, 310, "Рудник");
buildset(203, "cap_rist_monstr", 145, 570, "Вход в Груповые сражения");
buildset(21, "angelscastle", 131, 628, "Замок Мэра Города");
echo "</div>";
} elseif ($user->room == 2701) {
bgset('arena_bg1');
buildset(1, "cap_3strelka", 260, 30, "Берег Залива");
buildset(2, "cap_shar_dark", 234, 356, "Лабиринт Хаоса");
echo "</div>";
} elseif ($user->room == 2702) {
bgset('cap_torg');
buildset(6, "cap_arenda", 175, 70, "Академия");
buildset(16, "cap_t_build42", 120, 300, "Аукцион");
buildset(16555, "cap_prokat", 155, 480, "Прокатная лавка");
buildset(21, "cap_lombard", 150, 565, "Ломбард");
buildset(10, "cap_arr_uleft", 259, 25, "Центральная площадь", 1);
echo "</div>";
}
?>
</td>
</tr>
</table>