game/buttons.php

1176 lines
48 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
/* Главный игровой файл. */
use Captcha\Captcha;
use Core\Config;
use Core\Database;
use Core\Db;
use JetBrains\PhpStorm\NoReturn;
use User\Clan;
use User\UserIp;
if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php';
}
$code = PassGen::intCode();
Database::init();
define('IP', UserIp::get());
$u = User::start();
#[NoReturn] function gameexit(int $uid): void
{
setcookie('login', '', 0, '', Config::get('host'));
setcookie('login', '', 0);
setcookie('auth', '', 0);
Db::sql('update users set online = unix_timestamp() - 420 where id = ?', [$uid]);
exit(Config::get('exit'));
}
if (empty($u->info)) {
exit(Config::get('exit'));
}
$filter = new Filter();
$chat = new Chat();
$userclan = new Clan($u->info);
ini_set('max_execution_time', '120');
if (isset($_GET['showcode'])) {
$security = new Captcha();
$security->width(107)->height(26)->newImage();
$_SESSION['code'] = $security->getSum();
exit();
}
if (isset($u->info['joinIP']) && $u->info['joinIP'] == 1 && $u->info['ip'] != IP || isset($_GET['exit'])) {
gameexit($u->info['id']);
}
if ($u->info['online'] < time() - 60) {
$filter->setOnline($u->info['online'], $u->info['id']);
Db::sql('update users set online = unix_timestamp(), timeMain = unix_timestamp() where id = ?', [$u->info['id']]);
}
$u->stats = $u->getStats($u->info['id'], 0);
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">
<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;' ?>
// Нихуясебе! Это суперглобальный объект, который тянется во все файлы и все яваскриты. 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;
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'): ?>
<style>
#touchmain {
padding: 0;
border: 0;
overflow: auto;
margin: 0;
}
</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; ?>
<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>
<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>
</div>
<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>
</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')">
<span style="display:none; text-align:center;" id="menu1">
<a href="/main.php?referals" target="main" class="menutop" style="color:green">Реферал</a> |
<a href="/forum/" target="_blank" class="menutop">Форум</a> |
<a href="/encicl/law.html" target="_blank" class="menutop" style="color: red">Законы</a> |
<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>
</span>
<span style="display:; text-align:center;" id="menu2">
<a href="/main.php?inv=1&rn=<?= $code ?>" target="main" class="menutop">Инвентарь</a> |
<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> |
<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> |
<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>
</td>
</tr>
</table>
</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="">
</td>
</tr>
</table>
<!-- -->
</div>
<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++;
}
} ?>
</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>
</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>
</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>
</div>
<div>
<input name="chcf10" type="checkbox" id="chcf10" checked value="0">
<label for="chcf10">Показать всех игроков</label>
</div>
</div>
</div>
</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
if ($u->info['align'] == 50 || $u->info['admin'] > 0) { ?>
<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="">
</td>
<?php
}
if ($u->info['align'] >= 1.1 && $u->info['align'] < 2) { ?>
<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="Панель паладина">
</td>
<?php
}
if ($u->info['vip'] > time()) { ?>
<!-- VIP -->
<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="">
</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) { ?>
<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) { ?>
<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="Панель тьмы">
</td>
<?php
}
if ($u->info['align'] == 7) { ?>
<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="Панель нейтралитета">
</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) { ?>
<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="Админка">
</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>
<!-- время -->
<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
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
}
}
}
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}`
}
function everySecondsUpdate() {
let {date, time, redDay} = timeMSK(true);
$div.innerHTML = `<p>${time}</p><p id="dateRed">${date}</p>`
document.getElementById("dateRed").style.color = redDay ? "red" : ""
}
$button.addEventListener("mouseover", function () {
timeoutClear = setTimeout(() => {
$div.hidden = false
let $trTop = $button.parentElement.getBoundingClientRect().top;
let $tdLeft = document.getElementById("tdDate").offsetLeft;
$div.style.top = `${$trTop - ($button.offsetHeight * 2.1)}px`
$div.style.left = `${($tdLeft - ($div.offsetWidth - $button.offsetWidth)) + 10}px`
everySecondsUpdate()
intervalClear = setInterval(() => everySecondsUpdate(), 1000)
}, 550)
})
$button.addEventListener("mouseout", function () {
$div.hidden = true
clearInterval(intervalClear)
clearTimeout(timeoutClear)
})
</script>
<?php
if ($u->info['active'] != '' && $u->info['mail'] != 'No E-mail') {
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>