battles/city.php
2019-01-18 21:56:07 +02:00

433 lines
17 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 ($_SESSION['uid'] == null) {
header("Location: index.php");
}
include("config.php");
//$user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '{$_SESSION['uid']}' LIMIT 1"));
//$klan = mysql_fetch_array(mysql_query("SELECT * FROM `clans` WHERE `id` = '{$user['klan']}' LIMIT 1"));
//$digger = mysql_fetch_array(mysql_query("SELECT * FROM `digger` WHERE `id` = '{$_SESSION['uid']}' LIMIT 1"));
include("functions.php");
$tm = time();
if ($user['battle'] != 0) {
header('location: fbattle.php');
die();
}
if ($user['in_tower'] == 1) {
header('Location: towerin.php');
die();
}
if ($user['zayavka'] != 0) {
die();
}
/**
* Проверяем можем ли мы двигаться.
*/
function can_i_move()
{
global $user;
$d = db::c()->query('SELECT SUM(`massa`) AS `mass` FROM `inventory` WHERE `owner` = ?i AND `setsale` = 0', $user['id'])->fetch_assoc();
$eff = db::c()->query('SELECT `type` FROM `effects` WHERE `owner` = ?i AND (`type` = 10 OR `type` = 13 OR `type` = 14)', $user['id'])->fetch_assoc();
if ($d['mass'] > get_meshok()) {
err('У вас переполнен рюкзак, вы не можете передвигаться...');
return false;
}
if ($eff['type'] == 10) {
err('Вы парализованы и не можете передвигаться...');
return false;
}
if ($eff['type'] == 13 OR $eff['type'] == 14) {
err('У вас тяжелая травма, вы не можете передвигаться...');
return false;
}
return true;
}
function move($room, $redirect = false)
{
if (can_i_move()) {
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);}
die();
}
}
$dig_raw = db::c()->query('SELECT `finish_dig`, `finish_guard` FROM `digger` WHERE `id` = ?i', $user['id'])->fetch_assoc();
if ($dig_raw["finish_dig"] > $tm || $dig_raw["finish_guard"] > $tm) {
header('location: wall_build.php');
die();
}
header("Cache-Control: no-cache");
$location = explode('/', filter_input(INPUT_SERVER, 'QUERY_STRING'));
can_i_move();
switch ($location[0]) {
case 'cp':
move(20);
break;
case 'strah':
move(21);
break;
case 'bps':
move(26);
break;
case 'ps':
move(51);
break;
case 'zaliv':
move(2111);
break;
case 'zamk':
move(2601);
break;
case 'abog':
move(2655);
break;
case 'torg':
move(2702);
break;
case 'got':
if ($user['room'] == 20) {
switch ($location[1]) {
case 'level1':
header('location: main.php?setch=1');
die();
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 'level10':
move(35, 'krshop.php');
break;
case 'level9':
move(24, 'new_year.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, 'klanedit.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;
case 'level5':
move(203, 'church.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 'level21':
move(87, 'dshop.php');
break;
case 'level10':
move(35, 'krshop.php');
break;
case 'level44':
move(203, 'church.php');
break; /*FIXME Второй вход в церковь?*/
case 'level1':
move(37, 'gotzamok.php');
break;
case 'level1052':
move(1053, 'repshop.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 'level5':
move(1054, 'fontan_luck.php');
break;
case 'level202':
move(1054, 'fontan_luck.php');
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 'level5':
move(43, 'znahar.php');
break;
case 'level660':
move(660, 'hostel.php');
break;
case 'level20':
move(223, 'bench.php');
break;
case 'level21':
move(222, 'bench_s.php');
break;
case 'level22':
move(224, 'bench_m.php');
break;
case 'level7':
move(777, 'obshaga.php');
break;
case 'level11':
move(42, 'lotery.php');
break;
case 'level56':
move(401, 'hell.php');
break;
}
}
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 src="i/city/%s.jpg">', $background);
}
$online = db::c()->query('SELECT 1 FROM `online` WHERE `real_time` >= ?i', (time() - 60));
?>
<!doctype html>
<html>
<HEAD>
<link rel=stylesheet href="css/main.css">
<meta charset="utf-8">
<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>
</HEAD>
<body>
<table width=100% border=0 cellspacing="0" cellpadding="0">
<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(11, "cap_loto", 230, 615, "Лотерея");
//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(5, "cap_znah", 195, 538, "Хижина Знахаря");
buildset(21, "cap_2sk", 249, 416, "Средняя скамейка");
buildset(20, "cap_3sk", 250, 630, "Большая скамейка");
buildset(22, "cap_1sk", 228, 490, "Маленькая скамейка");
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(44, "cap_hram", 173, 550, "Храм Древних");
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(2222, "cap_stop", 258, 21, "Проход закрыт", 1);
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, "Лабиринт Хаоса");
buildset(3, "cap_stop_png", 260, 720, "Проход закрыт");
echo "</div>";
} elseif ($user['room'] == 2702) {
bgset('cap_torg');
buildset(6, "cap_arenda", 175, 70, "Академия");
buildset(202, "cap_fontan", 210, 350, "Фонтан удачи");
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);
buildset(3, "cap_stop", 259, 720, "Проход закрыт", 1);
echo "</div>";
}
?>
</td>
</tr>
</table>
<script language="javascript" src="js/refreshonline.js"></script>
</body>
</html>