<?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'> Приветствуем в игре, не забываем поздороваться и прочесть новости проекта! <a href='/n' target='_blank'>читать новости</a> </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> Общие смайлики </small>'); smlk1 = 1; $('#smilesDiv').hide(); $('#smilesDiv2').show(); $('#smilesDiv3').hide(); } else { $('#btnsmlrz').html('<small> Личные смайлики </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> <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;"> </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> Купить </small></button> <button class="btn fl" style="padding:0; margin: 5px 0 0;" id="btnsmlrz" onClick="smiles1load();"> <small> Личные смайлики </small></button> <button class="btn fr" style="padding:0; margin: 5px 0 0;" onClick="chat.lookSmiles()"> <small> Закрыть </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"> </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"> </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') { $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>