game/buttons.php

1178 lines
48 KiB
PHP
Raw Normal View History

2022-06-06 21:30:34 +00:00
<?php
2023-01-12 03:08:32 +00:00
/* Главный игровой файл. */
2023-08-28 11:23:41 +00:00
use Captcha\Captcha;
2023-01-12 03:08:32 +00:00
use Core\Config;
use Core\Database;
2023-01-23 10:24:03 +00:00
use Core\Db;
2023-11-06 00:40:12 +00:00
use JetBrains\PhpStorm\NoReturn;
2023-07-31 17:06:51 +00:00
use User\Clan;
use User\UserIp;
2023-01-12 03:08:32 +00:00
if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php';
}
2023-01-23 10:24:03 +00:00
$code = PassGen::intCode();
2023-10-13 15:04:13 +00:00
Database::init();
2023-01-12 03:08:32 +00:00
2023-10-13 15:04:13 +00:00
define('IP', UserIp::get());
$u = User::start();
2022-06-06 21:30:34 +00:00
2023-11-06 00:40:12 +00:00
#[NoReturn] function gameexit(int $uid): void
2023-08-28 11:23:41 +00:00
{
setcookie('login', '', 0, '', Config::get('host'));
setcookie('login', '', 0);
setcookie('auth', '', 0);
2023-10-13 15:04:13 +00:00
Db::sql('update users set online = unix_timestamp() - 420 where id = ?', [$uid]);
2023-08-28 11:23:41 +00:00
exit(Config::get('exit'));
}
if (empty($u->info)) {
exit(Config::get('exit'));
}
2022-12-19 18:26:14 +00:00
$filter = new Filter();
$chat = new Chat();
2023-07-31 17:06:51 +00:00
$userclan = new Clan($u->info);
2022-07-01 12:45:43 +00:00
ini_set('max_execution_time', '120');
2022-06-06 21:30:34 +00:00
2022-07-01 12:45:43 +00:00
if (isset($_GET['showcode'])) {
2023-08-28 11:23:41 +00:00
$security = new Captcha();
$security->width(107)->height(26)->newImage();
$_SESSION['code'] = $security->getSum();
exit();
2022-06-06 21:30:34 +00:00
}
2023-10-13 15:04:13 +00:00
if (isset($u->info['joinIP']) && $u->info['joinIP'] == 1 && $u->info['ip'] != IP || isset($_GET['exit'])) {
gameexit($u->info['id']);
2022-06-06 21:30:34 +00:00
}
2022-07-01 12:45:43 +00:00
if ($u->info['online'] < time() - 60) {
2022-12-19 18:26:14 +00:00
$filter->setOnline($u->info['online'], $u->info['id']);
2023-01-23 10:24:03 +00:00
Db::sql('update users set online = unix_timestamp(), timeMain = unix_timestamp() where id = ?', [$u->info['id']]);
2022-06-06 21:30:34 +00:00
}
2022-07-01 12:45:43 +00:00
$u->stats = $u->getStats($u->info['id'], 0);
2022-06-06 21:30:34 +00:00
if (!isset($_COOKIE['d1c'])) {
$detect = new MobileDetect;
$deviceType = $detect->isMobile() ? $detect->isTablet() ? 'tablet' : 'phone' : 'computer';
$_COOKIE['d1c'] = $deviceType;
setcookie('d1c', $deviceType, (time() + 86400));
} else {
$deviceType = $_COOKIE['d1c'];
}
?>
<!DOCTYPE html>
<html lang="ru-RU">
<head>
<title><?= Config::get('title') ?></title>
<meta name="description" content="<?= Config::get('desc') ?>"/>
<meta name="keywords" content="<?= Config::get('keys') ?>"/>
<meta name="msapplication-config" content="browserconfig.xml"/>
<link rel="stylesheet" href="i/main.css">
2024-02-10 01:12:05 +00:00
<link rel="stylesheet" href="css/club.css"/>
<link rel="stylesheet" href="css/windows.css"/>
<link rel="stylesheet" href="css/hack.css"/>
<script>
window.des = 1;
<?= $userclan->isRegistered() ? "const clanImage = '" . Images::getSrc($userclan->getLogo()) . "';" : 'let clanImage;' ?>
2023-11-02 13:57:39 +00:00
// Нихуясебе! Это суперглобальный объект, который тянется во все файлы и все яваскриты. let\const не использовать!
var c = {
noEr: 0,
noErTmr: 0,
url: '<?= Config::get('host') ?>',
https: '<?= Config::get('https') ?>',
img: '<?= Config::get('img') ?>',
img2: '<?= Config::get('img2') ?>',
uid: <?= $u->info['id'] ?>,
login: '<?= $u->info['login'] ?>',
city: '<?= $u->info['city'] ?>',
lvl: <?= $u->info['level'] ?>,
rnd: <?= $code ?>,
filter: 0,
time: <?= time() ?>,
pl: 0,
align: <?= $u->info['align'] ?>,
clan: <?= $userclan->getId() ?>,
admin: <?= $u->info['admin'] ?>,
sound: 0,
money: <?= $u->info['money'] ?>
},
sd4key = "<?= $u->info['nextAct'] ?>",
lafstReg = {};
// Проверка на совпедение города.
function ctest(city) {
if (city !== c['city']) {
top.location = '/bk';
}
}
let enterUse = 0;
2023-06-23 14:44:24 +00:00
function testKey(event) {
if (event.keyCode === 10 || event.keyCode === 13) {
if (enterUse === 0) {
chat.subSend();
enterUse = 1;
setTimeout('enterUse = 0', 1000);
}
}
}
setInterval('c.time++', 1000);
</script>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$.ajaxSetup({cache: false});
$(window).error(function () {
return true;
});
//Есть зависимость в interface.js - infoMenu()!
window.iusrno = {};
function ignoreUser(u) {
if (iusrno[u] === undefined || iusrno[u] === 0) {
$('#main').attr({'src': 'main.php?friends=1&ignore=' + u + ''});
} else {
$('#main').attr({'src': 'main.php?friends=1&ignore=' + u + ''});
}
}
</script>
<script type="text/javascript" src="js/jqueryrotate.js"></script>
<script type="text/javascript" src="js/jquery.zclip.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script type="text/javascript" src="js/title.js"></script>
<script type="text/javascript" src="js/gameEngine.js?<?= time() ?>"></script>
<script type="text/javascript" src="js/interface.js"></script>
<script type="text/javascript" src="js/onlineList.js"></script>
<script type="text/javascript" src="js/hpregen.js"></script>
<script type="text/javascript" src="js/jquery-fireHint.js"></script>
<script type="text/javascript" src="js/trainingModals/registration/index.js"></script>
<?php if ($deviceType == 'tablet' || $deviceType == 'phone'): ?>
2023-01-12 03:08:32 +00:00
<style>
#touchmain {
padding: 0;
2022-12-19 18:26:14 +00:00
border: 0;
overflow: auto;
margin: 0;
2023-01-23 10:24:03 +00:00
}
2022-12-19 18:26:14 +00:00
</style>
<script type="text/javascript" src="js/jquery.nicescroll.js"></script>
<script>
$(document).ready(function () {
$("#touchmain").niceScroll("#main", {autohidemode: false, boxzoom: false});
});
</script>
<?php endif; ?>
2023-06-23 14:44:24 +00:00
<link href="./js/trainingModals/registration/trainingModalStyles.css" rel="stylesheet">
<style>
/* Additional classes examples */
.woman a {
color: #C33;
}
.woman a:hover {
color: #ff0000;
}
img {
vertical-align: bottom;
}
/* Стили с динамически-генерируемым именем для telegraf.php */
#tgf_loadingLine {
height: 18px;
width: 100%;
color: #776b4a;
background-color: #ddd5bf;
position: relative;
}
.tfpgs {
padding: 5px;
background-color: #d4cbb4;
border-bottom: 1px solid #988e73;
border-top: 1px solid #eae3d0;
cursor: default;
text-align: center;
}
.tgf_msg0 {
padding: 5px;
background-color: #c6b893;
border-bottom: 1px solid #988e73;
border-top: 1px solid #eae3d0;
cursor: default;
}
.tgf_msg1 {
padding: 5px;
background-color: #d4cbb4;
border-bottom: 1px solid #988e73;
border-top: 1px solid #eae3d0;
cursor: default;
}
.tgf_msgt {
color: #988e73;
padding-left: 2px;
padding-right: 2px;
border-right: 1px solid #b1a993;
}
.tf_btn1 {
background-color: #ddd5bf;
padding: 3px 10px;
margin: 1px;
color: #988e73;
cursor: pointer;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.tf_btn1:hover {
background-color: #b7ae96;
color: #ddd5bf;
cursor: pointer;
}
.tf_btn11 {
background-color: #988e73;
padding: 3px 10px;
margin: 1px;
color: #ddd5bf;
cursor: pointer;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.qel0 {
display: none;
position: absolute;
z-index: 100000;
border: 4px solid #f5cc50;
border-radius: 4px;
}
/* Стили с динамически-генерируемым именем для logs.php, btl_bac.php, location\btl_.php */
/* цвета команд */
.CSSteam0 {
font-weight: bold;
cursor: pointer;
}
.CSSteam1 {
font-weight: bold;
color: #6666CC;
cursor: pointer;
}
.CSSteam2 {
font-weight: bold;
color: #B06A00;
cursor: pointer;
}
.CSSteam3 {
font-weight: bold;
color: #269088;
cursor: pointer;
}
.CSSteam4 {
font-weight: bold;
color: #A0AF20;
cursor: pointer;
}
.CSSteam5 {
font-weight: bold;
color: #0F79D3;
cursor: pointer;
}
.CSSteam6 {
font-weight: bold;
color: #D85E23;
cursor: pointer;
}
.CSSteam7 {
font-weight: bold;
color: #5C832F;
cursor: pointer;
}
.CSSteam8 {
font-weight: bold;
color: #842B61;
cursor: pointer;
}
.CSSteam9 {
font-weight: bold;
color: navy;
cursor: pointer;
}
.CSSvs {
font-weight: bold;
}
.buttons:hover {
background-color: #EFEFEF;
}
.buttons:active {
color: #777777;
}
.buttons {
background-color: #E9E9E9;
}
.menutop2 {
color: #003366;
}
.menutop2:hover {
color: #446B93;
}
.klan {
font-weight: bold;
color: green;
background-color: #99FFCC;
}
.redColor {
color: #FF0000;
font-weight: bold;
}
.borderWhite {
border: 1px solid #f2f0f0;
}
.date21 {
font-family: Courier, serif;
font-size: 8pt;
text-decoration: underline;
font-weight: normal;
color: #007000;
background-color: #00FFAA
}
.zoneCh_no {
float: left;
overflow: hidden;
height: 18px;
width: 18px;
}
.inpBtl {
color: #000000;
text-decoration: none;
background-color: #ECE9D8;
border: 1px solid #000000;
}
.zoneCh_yes {
float: left;
overflow: hidden;
height: 18px;
width: 18px;
background-color: #A9AFB1;
}
body {
background-color: #e8e8e8;
}
.st1222 {
font-size: 18px;
color: #990000;
font-weight: bold;
}
.crop {
float: left;
overflow: hidden;
height: 18px;
width: 18px;
}
.radio_off {
margin-left: 0;
}
.radio_on {
margin-left: -18px;
}
.battle_hod_style {
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #AEAEAE;
}
.zbtn1l, .zbtn1r, .zbtn1r2, .zbtn2l, .zbtn2r, .zbtn2r2, .zbtn2r3 {
width: 9px;
height: 18px;
background-image: url(<?= Config::img() ?>/tab.png);
background-repeat: repeat-x;
}
.zbtn1l {
background-position: 0 0;
}
.zbtn1r {
background-position: -18px 0;
}
.zbtn1r2 {
background-position: 18px 0;
}
.zbtn2l {
background-position: -36px 0;
}
.zbtn2r {
background-position: -54px 0;
}
.zbtn2r2 {
background-position: -90px 0;
}
.zbtn2r3 {
background-position: 54px 0;
}
.zbtn1c, .zbtn2c {
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #000000;
cursor: default;
padding-left: 5px;
padding-right: 5px;
FONT-FAMILY: Verdana, Arial, Helvetica, Tahoma, sans-serif;
}
.zbtn1c {
background-color: #808080;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #000000;
color: #FFFFFF;
}
.zbtn2c {
background-color: #D5D2C9;
color: #000000;
font-weight: bold;
}
.proza {
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=87); /* IE 5.5+*/
-moz-opacity: 0.87; /* Mozilla 1.6 и ниже */
opacity: 0.87; /* CSS3 - Mozilla 1.7b +, Firefox 0.9 +, Safari 1.2+, Opera 9+ */
}
.nobtn12 {
border: 0;
bottom: 80px;
left: 225px;
position: absolute;
}
.nobtn12:active {
bottom: 79px;
}
.inpreg1 {
padding: 2px;
font-size: 14px;
color: #003144;
background-color: #f6f4ec;
border: 1px solid #d1cdb8;
width: 178px;
}
.inpreg2 {
font-size: 12px;
color: #003144;
background-color: #f6f4ec;
border: 1px solid #d1cdb8;
}
#errorreg {
position: absolute;
width: 680px;
top: 0;
left: 0;
text-align: center;
color: red;
font-weight: bold;
}
#qsst {
position: absolute;
z-index: 10000000;
cursor: default;
display: none;
}
#onbon {
position: absolute;
z-index: 100;
cursor: default;
display: none;
bottom: 30px;
left: 18px;
}
#mini_qsst {
position: absolute;
z-index: 100;
cursor: default;
display: none;
bottom: 10px;
right: 18px;
}
</style>
</head>
<body>
<div style="display:none" class="qel0" id="qel0"></div>
<noscript>В вашем браузере отсутствует поддержка <strong>javascript</strong></noscript>
<script>
window.onLoad = function () {
bodyLoaded();
chat.sendMsg(["new", "<?=time()?>", "1", "", "<?=$u->info['login']?>", "global:<b style='background-color:#ffcccc'>&nbsp; Приветствуем в игре, не забываем поздороваться и прочесть новости проекта! <a href='/n' target='_blank'>читать новости</a> &nbsp;</b>", "red", "1", "1", "0"]);
}
if (window.top !== window.self) {
document.write = "";
window.top.location = window.self.location;
setTimeout(function () {
document.body.innerHTML = 'Ошибка доступа.';
}, 500);
window.self.onload = function () {
document.body.innerHTML = 'Ошибка доступа.';
};
}
function cc(el) {
$(window).resize(function () {
$(el).css({
position: 'absolute',
left: ($(document).width() - $(el).outerWidth()) / 2,
top: ($(document).height() - $(el).outerHeight()) / 2
});
});
$(window).resize();
}
const lasts = [-1, -1];
function myexpLineTop27(e1, e2) {
$('#exp23mkrtkm').attr('title', "Опыт персонажа" + "\n" + e1 + " / " + e2);
$('#exp23mkrtkm').html(Math.ceil(e1 / e2 * 100) + '%!');
if (Math.ceil(e1 / e2 * 100) < 1) {
$('#myexplin233').attr('width', '1%');
} else {
if (lasts[1] < e2) {
$('#myexplin233').css('width', '1%');
}
if (lasts[0] !== e1 || lasts[1] !== e2) {
$('#myexplin233').animate({'width': Math.ceil(e1 / e2 * 100) + '%'}, 3000);
}
}
lasts[0] = e1;
lasts[1] = e2;
}
let smlk1 = 0;
function smiles1load() {
if (smlk1 === 0) {
$('#btnsmlrz').html('<small>&nbsp; Общие смайлики &nbsp;</small>');
smlk1 = 1;
$('#smilesDiv').hide();
$('#smilesDiv2').show();
$('#smilesDiv3').hide();
} else {
$('#btnsmlrz').html('<small>&nbsp; Личные смайлики &nbsp;</small>');
smlk1 = 0;
$('#smilesDiv').show();
$('#smilesDiv2').hide();
$('#smilesDiv3').hide();
}
}
</script>
<div id="qsst"></div>
<div id="ttl" class="ttl_css" style="display:none;z-index:1111;"></div>
<div id="nfml" style="display:none;position:absolute;"></div>
<div id="persmenu" style="display:none;z-index:1110;"></div>
<div id="windows" style="position:absolute;z-index:1101;"></div>
<div id="wupbox" onmouseup="win.WstopDrag()" onmousemove="win.WmoveDrag(event)" onselectstart="return false"></div>
<div id="chconfig">
<div style="font-weight: bold; text-align: center;">Настройки чата</div>
2024-02-10 01:12:05 +00:00
<img title="Эпическая линия (o_O)" src="<?= Config::img() ?>/1x1.gif" alt="hr"><br>
Скорость обновления: <SELECT id="chcf0">
<OPTION value='-1'>никогда</OPTION>
<OPTION value='1'>15 сек.</OPTION>
<OPTION selected value='2'>30 сек.</OPTION>
<OPTION value='3'>1 мин.</OPTION>
<OPTION value='4'>5 мин.</OPTION>
</SELECT><br>
<div>Сортировка списка онлайн: <SELECT id="chcf8">
<OPTION value='0' selected>По логину</OPTION>
<OPTION value='1'>По уровню</OPTION>
<OPTION value='2'>По склоности</OPTION>
<OPTION value='3'>По клану</OPTION>
</SELECT>
<input name="chcf9" type="checkbox" id="chcf9" value="1"><small>По убыванию</small></div>
<div><input name="chcf12" type="checkbox" id="chcf12" value="1"> Экономия трафика</div>
<div style="display:<?php
if ($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) {
echo '';
} else {
echo 'none;';
} ?>"><input name="chcf7" type="checkbox" id="chcf7" value="1"> <span
title="Получать сообщения от персонажей на которых наложено заклятие молчания">Сообщения с молчанкой</span>
2022-12-19 18:26:14 +00:00
</div>
2024-02-10 01:12:05 +00:00
<img title="Эпическая линия (o_O)" src="<?= Config::img() ?>/1x1.gif" alt="hr">
<div>&nbsp; &nbsp;&nbsp; <span><a href="javascript:void(0)" onclick="chat.ignorListOpen();chconf();">Список игнорируемых</a></span>
2022-07-01 12:45:43 +00:00
</div>
</div>
<!-- ресайзы -->
<div id="actionDiv" style="position:absolute;"></div>
<div id="reline1" onselectstart="return false">
<img src="<?= Config::img() ?>/1x1.gif" width="9" height="4" style="float:left; display:block; position:absolute; background-image:url(<?= Config::img() ?>/i/lite/_top_24.gif);" alt="">
<img src="<?= Config::img() ?>/1x1.gif" width="10" height="4" style="float:right; display:block; background-image:url(<?= Config::img() ?>/i/lite/_top_28.gif);" alt="">
</div>
<div id="reline2" onselectstart="return false"></div>
<!-- ресайзы -->
<div id="upbox" onselectstart="return false"></div>
<div id="mainHeader" style="position:absolute; top:0; left:0; height:37px; width:100%;"
onselectstart="return false">
<div title="Новая почта"
style="display:none; position:absolute; left: 198px; top: 13px; width:24px; height:15px; background-image:url(<?= Config::img() ?>/i/mail2.gif);"
class="postdiv" id="postdiv"></div>
<div style="background: url(<?= Config::img() ?>/i/lite/capitalcity/top_lite_cap_11.gif) repeat-x bottom; ">
<table cellspacing="0" cellpadding="0" style="background: url('<?= Config::img() ?>/i/lite/top_lite_cap_03.gif') repeat-x top; border: 0; width: 100%;">
<tr>
<td style="text-align: left">
<img src="<?= Config::img() ?>/i/lite/capitalcity/top_lite_cap_01.gif" width="64" height="14" class="db" style="padding-left:15px;"/>
</td>
<td class="main_text" style="position: relative; width:225px; text-align: right;">
<table style="width: 565px; border: 0;" cellspacing="0" cellpadding="0">
<tr style="vertical-align: bottom; text-align: center;">
<td style="width: 31px; height: 14px;">
<img class="db" height="14" src="<?= Config::img() ?>/i/lite/mennu112_06_lite.gif" width="31" alt="">
</td>
<td style="text-align: center;">
<table style="width: 100%; height: 14px; border: 0; background-image: url('<?= Config::img() ?>/i/lite/mennu112_06.gif')" cellspacing="0" cellpadding="0">
<tr style="text-align: center;">
<td id="el1" class="main_text" onClick="this.style.backgroundColor='#404040'; this.style.color='#FFFFFF'; showtable('1');" style="text-align: center;">
Знания
</td>
<td style="width: 1px;">
<img class="db" height="11" src="<?= Config::img() ?>/i/lite/mennu112_09.gif" width="1" alt="">
</td>
<td id="el2" class="main_text"
onClick="this.style.backgroundColor='#404040'; this.style.color='#FFFFFF'; showtable('2');" style="background:#404040; color:#FFFFFF; text-align: center;">
Персонаж
</td>
<td style="width: 1px;">
<img class="db" height="11" src="<?= Config::img() ?>/i/lite/mennu112_09.gif" width="1" alt="">
</td>
<td id="el3" class="main_text" onClick="if(confirm('Выйти из игры?')){ top.location = '/bk?exit&rnd=<?= $code ?>'; }" style="text-align: center;">
Выход
</td>
</tr>
</table>
</td>
<td style="width: 38px;">
<img class="db" height="14" src="<?= Config::img() ?>/i/lite/mennu112_04_lite.gif" width="37" alt="">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="text-align: left">
<img style="display:block; float:left; margin-left:17px;" src="<?= Config::img() ?>/i/lite/top_lite_cap_07.gif" width="15" height="17" alt="">
<img src="<?= Config::img() ?>/i/lite/capitalcity/top_lite_cap_08.gif" width="152" height="17" class="db" alt="">
</td>
<td style="text-align: right;">
<table cellspacing="0" cellpadding="0" style="background-image:url('<?= Config::img() ?>/i/lite/top_lite_cap_15.gif'); border: 0; width: 565px;">
<tr>
<td style="text-align: right;" class="menutop">
<table style="width: 100%; border: 0;" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 20px;">
<img class="db" src="<?= Config::img() ?>/i/lite/top_lite_13.gif" width="20" height="17" alt="">
</td>
<td style="font-size:10px; text-align: center; vertical-align: top; background-image: url('<?= Config::img() ?>/i/lite/top_lite_low_15.gif')">
2023-01-23 10:24:03 +00:00
<span style="display:none; text-align:center;" id="menu1">
<a href="/main.php?referals" target="main" class="menutop" style="color:green">Реферал</a> |
2023-02-13 17:24:48 +00:00
<a href="/forum/" target="_blank" class="menutop">Форум</a> |
<a href="/encicl/law.html" target="_blank" class="menutop" style="color: red">Законы</a> |
2023-02-13 17:24:48 +00:00
<a href="/rating_pers" target="_blank" class="menutop">Рейтинг</a> |
<a href="/rating_clans" target="_blank" class="menutop">Кланы</a> |
<a href="/main.php?security" target="main" class="menutop" style="color:green">Безопасность</a> |
<a href="/news_script/lib/pisheri.html" target="_blank" class="menutop" style="color: darkgreen">Всё о пещерах</a>
2023-01-23 10:24:03 +00:00
</span>
<span style="display:; text-align:center;" id="menu2">
<a href="/main.php?inv=1&rn=<?= $code ?>" target="main" class="menutop">Инвентарь</a> |
2023-01-23 10:24:03 +00:00
<span style="display:; text-align:center;" id="menu2">
<a href="/main.php?titul" target="main" class="menutop" style="color:green"> Достижения</a> |
<a href="/main.php?skills=1&side=5" target="main" class="menutop">Умения</a> |
2023-01-23 10:24:03 +00:00
<a href="/main.php?zayvka=1" target="main" class="menutop">Поединки</a> |
<a href="/forum/?read=10957&rnd=1" target="_blank" class="menutop" style="color:red">Всем игрокам</a> |
2023-01-23 10:24:03 +00:00
<a href="/n" target="_blank" class="menutop" style="color:blue">Новости</a> |
<a href="/settings" target="_blank" class="menutop">Анкета</a>
</span>
</td>
<td style="width: 22px;">
<img class="db" src="<?= Config::img() ?>/i/lite/top_lite_18.gif" width="22" height="17" alt="">
</td>
</tr>
</table>
</td>
</tr>
</table>
2023-01-23 10:24:03 +00:00
</td>
2022-06-06 21:30:34 +00:00
</tr>
2022-07-01 12:45:43 +00:00
</table>
2022-06-06 21:30:34 +00:00
</div>
<table class="deleteStyles" style="width: 100%; border: 0;" cellspacing="0" cellpadding="0">
<tr>
<td style="width: 15px; height: 6px;">
<img class="db" src="<?= Config::img() ?>/i/lite/_lit_20.gif" width="15" height="6" alt=""></td>
<td style="background-image: url('<?= Config::img() ?>/i/lite/_top_20s.gif')"></td>
<td style="width: 24px; height: 6px;">
<img class="db" src="<?= Config::img() ?>/i/lite/_lit_27.gif" width="24" height="6" alt="">
2022-12-19 18:26:14 +00:00
</td>
</tr>
</table>
<!-- -->
</div>
2023-04-15 19:18:30 +00:00
<table id="globalMain" style="width: 100%; height: 100%; border: 0;" cellspacing="0" cellpadding="0">
<tr id="headerTd">
<td style="width: 9px; background-color: #d6d6d6;"></td>
<td style="background-color: #d6d6d6;">&nbsp;</td>
<td style="width: 12px; background-color: #d6d6d6;"></td>
</tr>
<tr id="sectionTd">
<td class="deleteStyles" style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_24.gif')"></td>
<td style="vertical-align: top; background-color: #e2e0e0;" id="main_td">
<div id="touchmain" style="margin-top:3px;">
<iframe id="main" name="main" src="main.php" style="display:block;padding:0;margin:0;width:100%;border:0;" scrolling="auto"></iframe>
</div>
</td>
<td class="deleteStyles" style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_28.gif')"></td>
</tr>
<tr class="allChat">
<td class="deleteStyles" style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_24.gif')"></td>
<td id="chat" style="vertical-align: top; height: 40%; background-color: #eee;">
<table cellspacing="0" cellpadding="0" style="border-top:1px solid #CCCCCC; width: 100%; height: 100%; border: 0;">
<tr>
<td id="chat_block" style="position:relative;border-top:1px solid #808080; vertical-align: top;">
<!-- display:block;-->
<div id="mini_qsst" onClick='qn_slk()' style="cursor:pointer"></div>
<div id="onbon"></div>
<div id="chat_menus" unselectable="on" onselectstart="return false;"
style="display:block;position:absolute; right:0; top:3px; padding-right:20px; height:18px; text-align:right; white-space:nowrap;">
<!-- -->
<table style="margin-top:-3px; border: 0; text-align: right;" cellpadding="0" cellspacing="0">
<tr>
<td>
<div id="chat_menu" style="text-align:right; white-space:nowrap;"></div>
</td>
<td style="display:none; width: 3px;" id="scroll_none"></td>
</tr>
</table>
<!-- -->
</div>
<div id="ttSmiles" onselectstart="return false" style="display:none;z-index:1100;">
<div id="smilesDiv">Загрузка смайликов</div>
<div id="smilesDiv2" style="display:none">
<?php
echo '<small>Новые смайлики возможно купить в <a href="/ekr.php" target="_blank">Коммерческом Отделе</a><br>Обновите страницу, если купленный смайлик не отобразился</small><hr>';
//
if (empty($u->info['add_smiles'])) { ?>
<div style="text-align: center; color: grey;">У вас нет личных смайликов</div>
<?php
} else {
$ex = explode(',', $u->info['add_smiles']);
$i = 0;
while ($i < count($ex)) {
echo '<img src="<?= Config::img() ?>/i/smile/' . $ex[$i] . '.gif" title=":' . $ex[$i] . ':" style="cursor:pointer" onclick="chat.addSmile(\'' . $ex[$i] . '\');"> ';
$i++;
}
} ?>
2022-12-19 18:26:14 +00:00
</div>
<div id="smilesDiv3" style="display:none"></div>
<div style="padding-left:5px; padding-right:5px; text-align: center;">
<button class="btn fl" style="display:none; padding:0; margin: 5px 2px 0 0;" disabled="disabled">
<small>&nbsp; Купить &nbsp;</small></button>
<button class="btn fl" style="padding:0; margin: 5px 0 0;" id="btnsmlrz" onClick="smiles1load();">
<small>&nbsp; Личные смайлики &nbsp;</small></button>
<button class="btn fr" style="padding:0; margin: 5px 0 0;" onClick="chat.lookSmiles()">
<small>&nbsp; Закрыть &nbsp;</small></button>
2022-12-19 18:26:14 +00:00
</div>
</div>
<div id="chat_list" style="cursor:default;">
<div id="canals">
<div id="canal5"></div>
<div id="canal4"></div>
<div id="canal2"></div>
<div id="canal7"></div>
<div id="canal3"></div>
<div id="canal6" style="display:none;"></div>
2022-12-19 18:26:14 +00:00
</div>
</div>
</td>
<td style="border-left:2px solid #CCCCCC;border-top:1px solid #808080; background-color: #faf2f2; vertical-align: top; width: 350px;" id="online">
<div id="online_list" style="cursor:default;">
<div style="margin-top:5px; text-align: center;">
<button class="btn" id="robtn" onClick="chat.reflesh()">Обновить</button>
<button TYPE=button class="btn"
onClick="window.open('/monitoring', 'monitoring', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')"
title="Монитор заявок\турниров">
<img src="<?= Config::img() ?>/i/fighttype0.gif" width="20" height="20" alt="fight type">
</button>
</div>
<span class="db" style="padding:0 0 8px 0;font-size: 10pt; color:#8f0000;"><b id="roomName"></b></span>
<div id="onlist"></div>
<div style="padding:5px;margin-top:5px;">
<div>
<input type="checkbox" value="1" checked id="autoRefOnline">
<label for="autoRefOnline">Обновлять автомат.</label>
2022-12-19 18:26:14 +00:00
</div>
<div>
<input name="chcf10" type="checkbox" id="chcf10" checked value="0">
<label for="chcf10">Показать всех игроков</label>
2022-12-19 18:26:14 +00:00
</div>
</div>
</div>
2023-02-13 17:24:48 +00:00
</td>
</tr>
</table>
</td>
<td style="background-color: #d6d6d6; background-image: url('<?= Config::img() ?>/i/lite/_top_28.gif');" class="deleteStyles"></td>
</tr>
<tr class="allChat">
<td style="vertical-align: bottom; height: 30px;" class="deleteStyles">
<img class="db" src="<?= Config::img() ?>/i/lite/bkf_l_r1_02.gif" width="9" height="30" alt=""></td>
<td style="background-color: #e9e9e9; background-image: url('<?= Config::img() ?>/i/buttons/chat_bg.gif'); height: 30px;">
<table style="width: 100%; border: 0; height: 26px;" cellspacing="0" cellpadding="0">
<tr>
<td style="width: 30px" id="chatLeftIcon">
<img class="db" src="<?= Config::img() ?>/b___.gif" width="30" height="30" title="Чат" alt="Чат">
</td>
<td style="width: 100px; text-align: center; display:none;" id="trader1">
<div id="trader" style="border:1px solid #CCCCCC;padding:2px; margin-left:-2px; width:90%;"
class="klan"><small id="moneyGM"><b>Торговый чат</b></small></div>
</td>
<td>
<input type="hidden" name="trader" id="trader_val" value="0">
<input onmouseup="top.chat.inObj=undefined;" type="text" name="textmsg" id="textmsg" maxlength="240" onKeyPress="top.testKey(event)"
style="width:100%;font-size:11pt;margin-bottom:2px; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px;"/>
</td>
<td style="width: 6px">&nbsp;</td>
<td style="width: 30px" id="sendButtonTextMsg">
<img onClick="chat.subSend();" src="<?= Config::img() ?>/1x1.gif" class="db cp chatBtn2_1" alt=""></td>
<td style="width: 5px"></td>
<td style="width: 30px">
<button onClick="chat.voiceMessage()" title="Записать голосовое сообщение" id="record">
Запись
</button>
</td>
<td style="width: 30px">
<img onClick="chat.clear();" class="db cp" title="Очистить окно чата"
src="<?= Config::img() ?>/i/buttons/chatBtn3.gif" alt="Очистить окно чата">
</td>
<td style="width: 10px">&nbsp;</td>
<td style="width: 30px">
<img id="chbtn8" class="db cp chatBtn8_1" onClick="chat.lookSmiles()" title="Смайлики"
src="<?= Config::img() ?>/1x1.gif" alt="Смайлики">
</td>
<td style="width: 16px; background-color: #bab7b3;">
<img src="<?= Config::img() ?>/i/buttons/chat_explode.gif" width="16" height="30" class="db" alt="">
</td>
<td style="width: 30px">
<img onclick="top.getUrl('main','main.php?inv=1&rnd='+c.rnd);" class="db cp" title="Инвентарь"
src="<?= Config::img() ?>/i/buttons/chatBtn13.gif" alt="Инвентарь">
</td>
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?transfer=1&rnd='+c.rnd);" class="db cp" title="Передачи"
src="<?= Config::img() ?>/i/buttons/chatBtn16.gif" alt="Передачи">
</td>
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?add_eff=1&rnd='+c.rnd);" class="db cp" title="Обкаст"
src="<?= Config::img() ?>/i/buttons/chatBtn151.gif" alt="Обкаст">
</td>
<?php
2023-06-23 14:44:24 +00:00
if ($u->info['align'] == 50 || $u->info['admin'] > 0) { ?>
2023-01-23 10:24:03 +00:00
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?alhp=1&rnd='+c.rnd);" class="db cp"
src="<?= Config::img() ?>/i/buttons/chatBtn20.gif" alt="">
2022-07-01 12:45:43 +00:00
</td>
<?php
}
if ($u->info['align'] >= 1.1 && $u->info['align'] < 2) { ?>
2023-01-23 10:24:03 +00:00
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?light=1&rnd='+c.rnd);" class="db cp" title="Панель Паладина"
src="<?= Config::img() ?>/i/buttons/chatBtn15.gif" alt="Панель паладина">
2023-01-23 10:24:03 +00:00
</td>
<?php
}
2023-08-15 22:48:29 +00:00
if ($u->info['vip'] > time()) { ?>
<!-- VIP -->
2023-01-23 10:24:03 +00:00
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?vip=1&rnd='+c.rnd);" class="db cp"
src="<?= Config::img() ?>/i/buttons/a___ang17.gif"
onMouseOver="top.hi(this,'<b>Панель Благодати Ангела <?= $u->info['login'] ?></b>',event,3,0,1,0,'');"
onMouseOut="top.hic();" onMouseDown="top.hic();" alt="">
2023-01-23 10:24:03 +00:00
</td>
<?php
} ?>
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?friends=1&rnd='+c.rnd);" class="db cp" title="Друзья"
src="<?= Config::img() ?>/i/buttons/chatBtn12.gif" alt="Друзья">
</td>
<?php
if ($u->info['align'] >= 1 && $u->info['align'] < 2) { ?>
2023-01-23 10:24:03 +00:00
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?ap=1&rnd='+c.rnd);" class="db cp" title="Панель света"
src="<?= Config::img() ?>/i/buttons/chatBtn15.gif" alt=""></td>
<?php
}
if ($u->info['align'] >= 3 && $u->info['align'] < 4) { ?>
2023-01-23 10:24:03 +00:00
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?ap=1&rnd='+c.rnd);" class="db cp" title="Панель тьмы"
src="<?= Config::img() ?>/i/buttons/chatBtn10.gif" alt="Панель тьмы">
2023-01-23 10:24:03 +00:00
</td>
<?php
}
if ($u->info['align'] == 7) { ?>
2023-01-23 10:24:03 +00:00
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?ap=1&rnd='+c.rnd);" class="db cp" title="Панель нейтралитета"
src="<?= Config::img() ?>/i/buttons/a___neutral.gif" alt="Панель нейтралитета">
2023-01-23 10:24:03 +00:00
</td>
<?php
}
?>
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?clan=1&rnd='+c.rnd);" class="db cp" title="Клан"
src="<?= Config::img() ?>/i/buttons/chatBtn14.gif" alt="Клан">
</td>
<?php
if ($u->info['admin'] > 0) { ?>
2023-01-23 10:24:03 +00:00
<td style="width: 30px">
<img onClick="top.getUrl('main','main.php?admin=1&rnd='+c.rnd);" class="db cp"
src="<?= Config::img() ?>/i/buttons/chatBtn19.gif" alt="Админка">
2023-01-23 10:24:03 +00:00
</td>
<?php
} ?>
<td style="width: 30px">
<img onclick="window.open('ekr.php')" class="db cp" title="Покупка ЕвроКредитов"
src="<?= Config::img() ?>/i/buttons/a___nak.gif" alt="Покупка ЕвроКредитов">
</td>
2022-12-19 18:26:14 +00:00
<!-- время -->
<td style="width: 71px" id="tdDate">
<button id="contentDate"></button>
</td>
<!-- время -->
</tr>
</table>
</td>
<td style="text-align: right; background-color: #d6d6d6; height: 30px;" class="deleteStyles">
<img class="db" src="<?= Config::img() ?>/i/lite/bkf_l_r1_06.gif" width="9" height="30" alt="">
</td>
</tr>
<tr id="deleteFooter">
<td style="background-image: url('<?= Config::img() ?>/sand_mid_31.png'); height: 5px; background-color: #d6d6d6;"></td>
<td style="background-image: url('<?= Config::img() ?>/sand_mid_31.png'); height: 5px; background-color: #d6d6d6;"><!-- iFrames zone --></td>
<td style="background-image: url('<?= Config::img() ?>/sand_mid_31.png'); height: 5px; background-color: #d6d6d6;"></td>
</tr>
</table>
<p id="timerVoiceMess" hidden></p>
<!-- скрипт -->
<script>
// Часы
let intervalClear;
let timeoutClear;
let $button = document.getElementById("contentDate");
let $div = document.createElement("div");
$div.id = "divFullDate"
document.body.append($div)
$div.hidden = true
2022-07-01 12:45:43 +00:00
let date = new Date();
let currentSec = (60 - date.getUTCSeconds()) * 1000;
asyncInterval()
async function asyncInterval() {
timeMSK()
let promise = await new Promise((resolve, reject) => {
setTimeout(() => {
timeMSK()
resolve("идём дальше")
}, currentSec)
});
setInterval(() => timeMSK(), 60000)
}
function timeMSK(hover = false) {
let mskTime = (new Date).toLocaleTimeString('ru-RU', {timeZone: 'Europe/Moscow'});
$button.textContent = mskTime.match(/\d{2}:\d{2}/i)[0]
if (hover) {
let fullDate = (new Date).toLocaleDateString('ru-RU', {timeZone: 'Europe/Moscow'});
let [day, month, year] = fullDate.match(/\b\d{2,4}\b/gi);
let objDate = {year: +year, month: +month - 1, day: +day};
let todayDay = new Date(objDate.year, objDate.month, objDate.day).getUTCDay();
// In objDate.day make ++
return {
date: divFullDateTime(objDate),
time: mskTime,
redDay: todayDay === 5 || todayDay === 6 || todayDay === 0
2022-12-19 18:26:14 +00:00
}
2022-07-01 12:45:43 +00:00
}
}
2022-07-01 12:45:43 +00:00
function divFullDateTime({year, month, day}) {
let strMonth = "";
switch (month) {
case 0:
strMonth = "Января";
break
case 1:
strMonth = "Февраля";
break
case 2:
strMonth = "Марта";
break
case 3:
strMonth = "Апреля";
break
case 4:
strMonth = "Мая";
break
case 5:
strMonth = "Июня";
break
case 6:
strMonth = "Июля";
break
case 7:
strMonth = "Августа";
break
case 8:
strMonth = "Сентября";
break
case 9:
strMonth = "Октября";
break
case 10:
strMonth = "Ноября";
break
case 11:
strMonth = "Декабря";
break
default:
break
}
return `${day} ${strMonth} ${year}`
}
2022-07-01 12:45:43 +00:00
function everySecondsUpdate() {
let {date, time, redDay} = timeMSK(true);
2022-06-06 21:30:34 +00:00
$div.innerHTML = `<p>${time}</p><p id="dateRed">${date}</p>`
2022-06-06 21:30:34 +00:00
document.getElementById("dateRed").style.color = redDay ? "red" : ""
}
2022-06-06 21:30:34 +00:00
$button.addEventListener("mouseover", function () {
2022-06-06 21:30:34 +00:00
timeoutClear = setTimeout(() => {
2022-07-01 12:45:43 +00:00
$div.hidden = false
let $trTop = $button.parentElement.getBoundingClientRect().top;
let $tdLeft = document.getElementById("tdDate").offsetLeft;
2022-07-01 12:45:43 +00:00
$div.style.top = `${$trTop - ($button.offsetHeight * 2.1)}px`
$div.style.left = `${($tdLeft - ($div.offsetWidth - $button.offsetWidth)) + 10}px`
2022-07-01 12:45:43 +00:00
everySecondsUpdate()
2022-06-06 21:30:34 +00:00
intervalClear = setInterval(() => everySecondsUpdate(), 1000)
}, 550)
})
2022-06-06 21:30:34 +00:00
$button.addEventListener("mouseout", function () {
$div.hidden = true
clearInterval(intervalClear)
clearTimeout(timeoutClear)
})
</script>
<?php
if ($u->info['active'] != '' && $u->info['mail'] != 'No E-mail') {
$yes = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "user_active_good" LIMIT 1', 1);
$yes2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "user_active_send" LIMIT 1', 1);
Db::sql('update stats set active = default where id = ?', [$u->info['id']]);
}
?>
<script>
startEngine();
chat.testTimer(false);
setTimeout('chat.nozpros=0;', 20);
</script>
</body>
</html>