Файл: system/h.php
Строк: 663
<?php
/* Обновление игры под PHP 8.4 / PDO и усиление безопасности: by Метриум (Стэлп) */
ob_start();
list($msec,$sec)
= explode(chr(32), microtime());
$gtime = $sec+$msec;
?>
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="author" content="by Метриум (Стэлп)">
<meta name="copyright" content="by Метриум (Стэлп)">
<meta name="keywords" content="битва за трон, королевство, онлайн игра, MMORPG">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="game-world-unix" content="<?=time()?>">
<link rel="stylesheet" type="text/css" href="/style.css?v=55">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<title><?=htmlspecialchars((string)($title ?? 'Битва за трон'), ENT_QUOTES, 'UTF-8')?></title>
<?php if(!defined('NO_GAME_LIVE_JS')): ?><script src="/assets/js/game-live.js?v=5104" defer></script><?php endif; ?>
</head>
<body>
<!-- by Метриум (Стэлп) -->
<?php
// Проверка активного рекорда выполняется на каждой открытой игровой странице.
if(!empty($user) && function_exists('game_hall_pending_tick')) { game_hall_pending_tick($user); }
?>
<?php if(!defined('NO_GAME_LIVE_JS')): ?>
<script type="text/javascript">
function showTime(){
var dat=new Date();var H=('0'+dat.getHours()).slice(-2);var M=('0'+dat.getMinutes()).slice(-2);var S=('0'+dat.getSeconds()).slice(-2);
var el=document.getElementById('time_div');if(el)el.innerHTML=H+':'+M+':'+S;setTimeout(showTime,1000);
}
</script>
<?php endif; ?>
<?php
if($user) {
switch($user['level']) {
case 1:
$exp = 5;
break;
case 2:
$exp = 9;
break;
case 3:
$exp = 1;
break;
case 4:
$exp = 1;
break;
case 5:
$exp = 280;
break;
case 6:
$exp = 380;
break;
case 7:
$exp = 5120;
break;
case 8:
$exp = 8810;
break;
case 9:
$exp = 12820;
break;
case 10:
$exp = 19320;
break;
case 11:
$exp = 22870;
break;
case 12:
$exp = 30405;
break;
case 13:
$exp = 475600;
break;
case 14:
$exp = 639000;
break;
case 15:
$exp = 892070;
break;
case 16:
$exp = 919600;
break;
case 17:
$exp = 1000000;
break;
case 18:
$exp = 2000000;
break;
case 19:
$exp = 3000000;
break;
case 20:
$exp = 4000000;
break;
case 21:
$exp = 5000000;
break;
case 22:
$exp = 6000000;
break;
case 23:
$exp = 6000000;
break;
case 24:
$exp = 6000000;
break;
case 25:
$exp = 6000000;
break;
case 26:
$exp = 6000000;
break;
case 27:
$exp = 6000000;
break;
case 28:
$exp = 6000000;
break;
case 29:
$exp = 6000000;
break;
case 30:
$exp = 6000000;
break;
case 31:
$exp = 6000000;
break;
case 32:
$exp = 6000000;
break;
case 33:
$exp = 6000000;
break;
case 34:
$exp = 6000000;
break;
case 35:
$exp = 6000000;
break;
case 36:
$exp = 6000000;
break;
case 37:
$exp = 7250000;
break;
case 38:
$exp = 8500000;
break;
case 39:
$exp = 9750000;
break;
case 40:
$exp = 11000000;
break;
case 40:
$exp = 11000000;
break;
case 41:
$exp = 12250000;
break;
case 42:
$exp = 13500000;
break;
case 43:
$exp = 14750000;
break;
case 44:
$exp = 16000000;
break;
case 45:
$exp = 17250000;
break;
case 46:
$exp = 18500000;
break;
case 47:
$exp = 19750000;
break;
case 48:
$exp = 21000000;
break;
case 49:
$exp = 22250000;
break;
case 50:
$exp = 25000000;
break;
case 51:
$exp = 27000000;
break;
case 52:
$exp = 29000000;
break;
case 53:
$exp = 31000000;
break;
case 54:
$exp = 33000000;
break;
case 55:
$exp = 35000000;
break;
case 56:
$exp = 37000000;
break;
case 57:
$exp = 39000000;
break;
case 58:
$exp = 41000000;
break;
case 59:
$exp = 45000000;
break;
case 60:
$exp = 50000000;
break;
case 61:
$exp = 60000000;
break;
case 62:
$exp = 70000000;
break;
case 63:
$exp = 80000000;
break;
case 64:
$exp = 90000000;
break;
case 65:
$exp = 100000000;
break;
case 66:
$exp = 110000000;
break;
case 67:
$exp = 120000000;
break;
case 68:
$exp = 130000000;
break;
case 69:
$exp = 140000000;
break;
case 70:
$exp = 150000000;
break;
case 71:
$exp = 170000000;
break;
case 72:
$exp = 180000000;
break;
case 73:
$exp = 190000000;
break;
case 74:
$exp = 200000000;
break;
case 75:
$exp = 300000000;
break;
case 76:
$exp = 400000000;
break;
case 77:
$exp = 500000000;
break;
case 78:
$exp = 600000000;
break;
case 79:
$exp = 700000000;
break;
case 80:
$exp = 800000000;
break;
case 81:
$exp = 800000000;
break;
case 82:
$exp = 900000000;
break;
case 83:
$exp = 1000000000;
break;
case 84:
$exp = 1000000000;
break;
case 85:
$exp = 1000000000;
break;
case 86:
$exp = 1000000000;
break;
case 87:
$exp = 1000000000;
break;
case 88:
$exp = 1000000000;
break;
case 89:
$exp = 2000000000;
break;
case 90:
$exp = 300000000;
break;
case 91:
$exp = 400000000;
break;
case 92:
$exp = 500000000;
break;
case 93:
$exp = 600000000;
break;
case 94:
$exp = 700000000;
break;
case 95:
$exp = 800000000;
break;
case 96:
$exp = 900000000;
break;
case 97:
$exp = 1000000000;
break;
case 98:
$exp = 1000000000;
break;
case 99:
$exp = 1000000000;
break;
case 100:
$exp = 1000000000;
break;
case 101:
$exp = 1000000000;
break;
case 102:
$exp = 1000000000;
break;
case 103:
$exp = 1000000000;
break;
case 104:
$exp = 1000000000;
break;
case 105:
$exp = 1000000000;
break;
case 106:
$exp = 1000000000;
break;
case 107:
$exp = 1000000000;
break;
case 108:
$exp = 1000000000;
break;
case 109:
$exp = 1000000000;
break;
case 110:
$exp = 1000000000;
break;
case 111:
$exp = 1000000000;
break;
case 112:
$exp = 1000000000;
break;
case 113:
$exp = 1000000000;
break;
case 114:
$exp = 1000000000;
break;
case 115:
$exp = 1000000000;
break;
case 116:
$exp = 1000000000;
break;
case 117:
$exp = 1000000000;
break;
case 118:
$exp = 1000000000;
break;
case 119:
$exp = 1000000000;
break;
case 120:
$exp = 1000000000;
break;
case 121:
$exp = 0;
break;
}
$exp_progress = ($exp > 0) ? round(($user['exp'] / $exp) * 100) : 100;
if($exp_progress > 100) {
$exp_progress = 100;
}
function clan_exp($i) {
switch($i) {
case 1:
$clan_exp = 300000;
break;
case 2:
$clan_exp = 580000;
break;
case 3:
$clan_exp = 1110000;
break;
case 4:
$clan_exp = 2100000;
break;
case 5:
$clan_exp = 3940000;
break;
case 6:
$clan_exp = 7320000;
break;
case 7:
$clan_exp = 13460000;
break;
case 8:
$clan_exp = 2449000;
break;
case 9:
$clan_exp = 4408000;
break;
case 10:
$clan_exp = 7846000;
break;
case 11:
$clan_exp = 13808000;
break;
case 12:
$clan_exp = 24025000;
break;
case 13:
$clan_exp = 41323000;
break;
case 14:
$clan_exp = 70249000;
break;
case 15:
$clan_exp = 11801800;
break;
case 16:
$clan_exp = 19590900;
break;
case 17:
$clan_exp = 32129000;
break;
case 18:
$clan_exp = 52048009;
break;
case 19:
$clan_exp = 83278200;
break;
case 20:
$clan_exp = 13157950;
break;
case 21:
$clan_exp = 20526400;
break;
case 22:
$clan_exp = 31610650;
break;
case 23:
$clan_exp = 48048180;
break;
case 24:
$clan_exp = 72072270;
break;
case 25:
$clan_exp = 10666695;
break;
case 26:
$clan_exp = 15573374;
break;
case 27:
$clan_exp = 22425658;
break;
case 28:
$clan_exp = 31844434;
break;
case 29:
$clan_exp = 44582207;
break;
case 30:
$clan_exp = 61500000;
break;
case 31:
$clan_exp = 83700000;
break;
case 32:
$clan_exp = 112100000;
break;
case 33:
$clan_exp = 148000000;
break;
case 34:
$clan_exp = 192400000;
break;
case 35:
$clan_exp = 246300000;
break;
case 36:
$clan_exp = 1103000000;
break;
case 37:
$clan_exp = 1103000000;
break;
case 38:
$clan_exp = 1103000000;
break;
case 39:
$clan_exp = 1103000000;
break;
case 40:
$clan_exp = 1103000000;
break;
case 41:
$clan_exp = 1103000000;
break;
case 42:
$clan_exp = 1103000000;
break;
case 43:
$clan_exp = 1103000000;
break;
case 44:
$clan_exp = 1103000000;
break;
case 45:
$clan_exp = 1103000000;
break;
case 46:
$clan_exp = 1103000000;
break;
case 47:
$clan_exp = 1103000000;
break;
case 48:
$clan_exp = 1103000000;
break;
case 49:
$clan_exp = 1103000000;
break;
case 50:
$clan_exp = 1103000000;
break;
case 51:
$clan_exp = 1103000000;
break;
case 52:
$clan_exp = 1103000000;
break;
case 53:
$clan_exp = 1103000000;
break;
case 54:
$clan_exp = 1103000000;
break;
case 55:
$clan_exp = 1103000000;
break;
case 56:
$clan_exp = 1103000000;
break;
case 57:
$clan_exp = 1103000000;
break;
case 58:
$clan_exp = 1103000000;
break;
case 59:
$clan_exp = 1103000000;
break;
case 60:
$clan_exp = 1103000000;
break;
case 61:
$clan_exp = 1103000000;
break;
case 62:
$clan_exp = 1103000000;
break;
case 63:
$clan_exp = 1103000000;
break;
case 64:
$clan_exp = 1103000000;
break;
case 65:
$clan_exp = 1103000000;
break;
case 66:
$clan_exp = 0;
break;
}
return $clan_exp;
}
$clan = (isset($clan) && is_array($clan)) ? $clan : null;
$gameBadges = function_exists('game_activity_badges') ? game_activity_badges($user,$clan,(isset($clan_memb)&&is_array($clan_memb)?$clan_memb:null)) : [];
$GLOBALS['game_badges']=$gameBadges;
$lvlclan = $clan ? ((int)$clan['level'] + 1) : 0;
$time = time();
if($clan && $clan['level'] < 66 && $clan['exp'] >= clan_exp($clan['level'])) {
db_query('UPDATE `clans` SET `level` = `level` + 1,
`exp` = "0" WHERE `id` = "'.$clan['id'].'"');
db_query("INSERT INTO `chat` (`clan`, `user`,`text`, `time`) VALUES ('$clan[id]', '0','<span class=dgreen>Ваш клан получил $lvlclan уровень</span>','$time')");
}
// Счётчики уже собраны единым лёгким запросом game_activity_badges().
$mail=(int)($gameBadges['mail']??0);
$_chat=(int)($gameBadges['chat']??0);
if($_SERVER['PHP_SELF'] == '/index.php')$title = 'Главная';
if($_SERVER['PHP_SELF'] == '/clan.php')$title = 'Клан';
?>
<div class="main" style="word-wrap:break-word;"><span style="text-shadow:none;"></span>
<div class="head cntr" style="position:relative;" onclick="location.href='/'">
<span class="bl rght nwr">
<?php
/* Верхняя панель меню удалена: вся навигация находится в футере. by Метриум (Стэлп) */
?>
<?php
if($user) {
?>
<?php
if ((int)($gameBadges['daily']??0)>0) { ?>
<div class="title">Ежедневная награда</div>
<center><a href='/day/'class="btns _g"><span class='end'><span class='label'>Забрать награду</a></center><?php } ?>
<?php
}
?>
<?php if($mail > 0) {?><a href="/mail/"><img src="/images/icon/mail.png" alt=""> <?=game_badge_plus($mail)?></a> | <?php }if($_chat > 0) {?><a href="/chat_lenta/"><img src="/images/icon/chat.png" alt=""> <?=game_badge_plus($_chat)?></a> | <?php }?><img src="/images/icon/health.png" alt="hp"> <span class="white"><?=$user['hp']?></span> | <img src="/images/icon/mana.png" alt="mp"> <?=$user['mp']?></span>
<div class="clr"></div>
</div>
<hr>
<?php
// Контекст задания: кнопка «Перейти к выполнению» всегда показывает игроку,
// сколько уже сделано и сколько осталось именно у выбранной ежедневной цели.
if($user && isset($_GET['quest']) && function_exists('game_quest_context') && function_exists('game_progress_markup')){
$questContext=game_quest_context((int)$user['id'],max(0,(int)$_GET['quest']));
if($questContext){
echo '<div class="quest-context-panel center"><div class="blue"><b>'.security_html((string)$questContext['title']).'</b></div>';
echo '<div class="small">'.security_html((string)$questContext['description']).'</div>';
echo game_progress_markup((int)$questContext['progress'],(int)$questContext['goal'],'Прогресс задания');
echo '<a href="/quest/" class="small">Вернуться к ежедневным заданиям</a></div>';
}
}
?>
<?php
if($user['exp_line'] == '0'){//Добавляем старую полосу
echo'
<div class="hr_g mb2"><div><div></div></div></div>
<table class="small yell h25 bgc_prg"><tr>
<td class="va_m plr10 nwr">'.$user['level'].'</td>
<td class="va_m w100"><div class="prg-bar"><div class="prg-blue" style="width: '.$exp_progress.'%"></div></div></td>
<td class="va_m plr10"> '.$exp_progress.'%</td>
</tr></table>
<div class="header">
';
}else{//Добавляем новую полосу
echo'
<div class="exp_bar"><div class="progress" style="width:'.$exp_progress.'%"></div></div>
';
}
?>
<?php
$morning = " <font color='yellow'>Доброе утро!</font> </center></small></font>
";
$day = "<font color='yellow'> Добрый день! </font> </center></small></font>
";
$evening = " <font color='red'> Добрый вечер! </font> </center></small></font>
";
$night = " <font color='red'> Доброй ночи! </font> </center></small></font>
";
$minyt = date("i");
$chasov = date("H");
if($chasov >= 04) {$hello = $morning;}
if($chasov >= 10) {$hello = $day;}
if($chasov >= 16) {$hello = $evening;}
if($chasov >= 22 or $chasov < 04) {$hello = $night;}
?>
<?php
$carl = defined('NO_GAME_LIVE_JS') ? '<small><center><font color="lime">Время:</font><font color="orange"> '.date('H:i:s').', '.$hello : '<small><center><font color="lime">Время:</font><font color="orange"><div id="time_div" class=""></div><script type="text/javascript">showTime();</script>,'.$hello;
echo $carl;
$__flash = function_exists('game_flash_render_pending') ? game_flash_render_pending() : '';
if($__flash!=='') echo '<div class="game-flash-stack">'.$__flash.'</div>';
$__hallProgress = (!empty($user) && function_exists('game_hall_progress_banner')) ? game_hall_progress_banner($user,(string)($_SERVER['REQUEST_URI'] ?? '/')) : '';
if($__hallProgress!=='') echo $__hallProgress;
?>
<?php
$aid = db_fetch_assoc(db_query('SELECT * FROM `aid` WHERE `id` = 1 LIMIT 1'));
if (is_array($aid) && (int)($aid['status'] ?? 0) === 1) {
?>
<div class='content center'>Аид восстал из мёртвых!
<a class='button' href='/aid'> Сразиться!</a>
</div>
<?php
}
$tieeee = time();
// Помощь казне клана без ухода со страницы — by Метриум (Стэлп).
if (($user['id'] ?? 0) && $clan && ($_SERVER['REQUEST_METHOD'] ?? 'GET') === 'POST' && isset($_POST['clan_treasury_help'])) {
security_require_csrf();
$uid=(int)$user['id']; $cid=(int)$clan['id']; $now=time();
$action=(string)($_POST['clan_treasury_help'] ?? '');
if($action==='deposit'){
try {
db_pdo()->beginTransaction();
$u=db_fetch_assoc(db_query("SELECT `g`,`vnesok_cazna_clan` FROM `users` WHERE `id`=$uid FOR UPDATE"));
if(!$u || (int)$u['vnesok_cazna_clan']>$now) throw new RuntimeException('Предложение помощи уже недоступно.');
if((int)$u['g']<100) throw new RuntimeException('Недостаточно золота.');
db_query("UPDATE `users` SET `g`=`g`-100,`vnesok_cazna_clan`=".($now+3600)." WHERE `id`=$uid");
db_query("UPDATE `clans` SET `g`=`g`+100 WHERE `id`=$cid");
$login=db_real_escape_string((string)$user['login']);
db_query("INSERT INTO `clan_journal` (`cl_id`,`text`,`time`) VALUES ($cid,'<a href=/user/$uid>".$login."</a> вложил в казну клана 100 <img src=/images/icon/gold.png> золота!',$now)");
db_pdo()->commit();
$_SESSION['cazna_popolnit']='<img src="/images/icon/ok.png" alt="*"> <b>Казна клана успешно пополнена на <img src="/images/icon/gold.png" alt=""> 100 золота!</b>';
$user['g']=(int)$user['g']-100; $user['vnesok_cazna_clan']=$now+3600;
} catch(Throwable $e){ if(db_pdo()->inTransaction()) db_pdo()->rollBack(); $_SESSION['cazna_popolnit']=security_html($e->getMessage()); }
} elseif($action==='dismiss'){
db_query("UPDATE `users` SET `vnesok_cazna_clan`=".($now+3600)." WHERE `id`=$uid");
$user['vnesok_cazna_clan']=$now+3600;
}
}
if (isset($_SESSION['cazna_popolnit'])){
echo "<div class='god4'><center>".$_SESSION['cazna_popolnit']."</center></div>";
unset($_SESSION['cazna_popolnit']);
}
if((int)$user['vnesok_cazna_clan']<$tieeee && $clan && (int)$user['g']>=100){
echo '<div class="clan-help-box center">Помоги своему клану — пополни казну для его развития!<br>';
echo '<form method="post" class="inline-form">'.security_csrf_field().'<button class="btn" type="submit" name="clan_treasury_help" value="deposit"><span class="end"><span class="label">Внести <img src="/images/icon/gold.png" alt=""> 100</span></span></button></form>';
echo '<form method="post" class="inline-form">'.security_csrf_field().'<button class="btn" type="submit" name="clan_treasury_help" value="dismiss"><span class="end"><span class="label">Отказаться</span></span></button></form></div>';
}
?>
<?php
if (function_exists('tutorial_render') && isset($user) && $user) tutorial_render($user, (string)($_SERVER['REQUEST_URI'] ?? ''));
$q = db_query ('select * from `user_q` WHERE (`user`="' . $user['id'] . '") AND (`complete`="0")');
if (db_num_rows ($q) != 0) {
while ($user_q = db_fetch_array ($q)) {
//
$q_ = db_query ('SELECT * FROM `quest` WHERE (`id`="' . $user_q['q'] . '")');
$quest = db_fetch_array ($q_);
if ($user_q['c']==$quest['c'])
$sage_flag = true;
}
}
echo ( isset($sage_flag) ? '<center><span style="color:#30c030;"><a href="/quest/"><img src="/images/win_back_320.png" alt=""></a></span></center>':'' ) ;
if($user['save']=='0'){
$extra_unic = security_flow_token('save');
?>
<?php
}
?>
<?php
if($user['lvl_dobl'] < 150 && $user['alex_dobl'] >= 400) {
db_query('UPDATE `users` SET `lvl_dobl` = `lvl_dobl` + 1, `alex_dobl` = `alex_dobl`
- 400
WHERE `id` = "'.$user['id'].'"');
if($clan_memb['last_update'] > (time()+(3600*72))){
if($clan){
db_query("UPDATE `clan_memb` SET `dobl` = `dobl` + '1' WHERE `user` = ".$user['id']."");
db_query("UPDATE `clans` SET `dobl` = `dobl` + '1' WHERE `id` = ".$clan['id']."");
}
}
}
$lvluser = $user['level'] + 1;
if($user['level'] < 121 && $user['exp'] >= $exp) {
$new = $user['level'] + 1;
$g = 10 + ($user['level'] * 5) - 5;
$time = time();
db_query('UPDATE `users` SET `level` = `level` + 1,
`exp` = "0",
`hp` = "'.($user['vit'] * 2).'",
`mp` = "'.$user['mana'].'",
`g` = "'.($user['g'] + $g).'" WHERE `id` = "'.$user['id'].'"');
if($clan){
db_query("INSERT INTO `chat` (`clan`, `user`,`text`, `time`) VALUES ('$clan[id]','0','<span class=dgreen>$user[login] получил $lvluser уровень</span>','$time')");
}
$read = '1';
$to = $user['id'];
$from = '0';
$text = 'Поздравляем вы достигли уровня '.$lvluser.'. Награда: <img src="/images/icon/gold.png"/> '.$g.' золота!';
db_query("INSERT INTO `mail` SET `from` = '$from',`time` = '$time',`to`='$to',`text` = '$text'");
if($user['level']>2){
?>
<div class='block_outer center' style='margin:7px 4px 7px 4px;'><img src='/images/icon/2hit.png' alt=''/> <span class='dgreen bold'>Поздравляем!</span> <img src='/images/icon/2hit.png' alt=''/><div class='separ'></div>Ты получил новый уровень!<br/><span class='blue'>Награда:</span> <img src='/images/icon/gold.png' alt=''/> <?=$g?> золота<div class='separ'></div><?php
if($user['level']<2){
?><span class='yellow'>Тебе доступны <img src='/images/icon/league.png' alt=''/> Дуэли!</span><div class='mb10'></div><a class='btn' href='/duel/'><span class='end'><span class='label'>Перейти в дуэли</span></span></a></div><?php }?>
</div>
<?php
}
if($user['level'] == "19") {
db_query('UPDATE `users` SET `league_place`="1000",`league`="2",`league_fights`="25" WHERE `id` = "'.$user['id'].'"');
}elseif($user['level'] == "29") {
db_query('UPDATE `users` SET `league_place`="1000",`league`="3",`league_fights`="25" WHERE `id` = "'.$user['id'].'"');
}elseif($user['level'] == "49") {
db_query('UPDATE `users` SET `league_place`="1000",`league`="4",`league_fights`="25" WHERE `id` = "'.$user['id'].'"');
}elseif($user['level'] == "79") {
db_query('UPDATE `users` SET `league_place`="1000",`league`="5",`league_fights`="25" WHERE `id` = "'.$user['id'].'"');
}elseif($user['level'] == "99") {
db_query('UPDATE `users` SET `league_place`="1000",`league`="6",`league_fights`="25" WHERE `id` = "'.$user['id'].'"');
}
elseif($user['league'] == "0") {
db_query('UPDATE `users` SET `league_place`="1000",`league`="1",`league_fights`="25" WHERE `id` = "'.$user['id'].'"');
}
}
if($clan) {
$clan_msg = db_fetch_array(db_query('SELECT * FROM `clan_msg` WHERE `clan` = "'.$clan['id'].'" AND `time` >= "'.$clan_memb['time'].'" ORDER BY `time` DESC LIMIT 1'));
if($clan_msg && db_result(db_query('SELECT COUNT(*) FROM `clan_msg_read` WHERE `msg` = "'.$clan_msg['id'].'" AND `user` = "'.$user['id'].'"'),0) == 0 ) {
$clan_msg_user = db_fetch_array(db_query('SELECT * FROM `users` WHERE `id` = "'.$clan_msg['user'].'"'));
if(($_SERVER['REQUEST_METHOD']??'GET')==='POST' && isset($_POST['clan_msg_read'])) {
security_require_csrf();
db_execute('INSERT IGNORE INTO `clan_msg_read` (`msg`,`user`) VALUES (:m,:u)',['m'=>(int)$clan_msg['id'],'u'=>(int)$user['id']]);
header('Location: '.((string)(parse_url($_SERVER['REQUEST_URI']??'/',PHP_URL_PATH)?:'/'))); exit;
}
?>
<div class="block_light center">
<b>Клановое объявление</b>
<br><?=security_system_text($clan_msg['text'])?><br>
Отправитель: <img src="/images/icon/race/<?=$clan_msg_user['r']?>.png" alt=""> <?=$clan_msg_user['login']?><br>
<span class="grey"><?=_times(time() - $clan_msg['time'])?></span>
<div class="separ"></div>
<form method="post" class="inline-form"><?=security_csrf_field()?><button class="link-button grey" type="submit" name="clan_msg_read" value="1">Скрыть</button></form>
</div>
<div class="mini-line"></div>
<?php
}
}else{
if(db_result(db_query('SELECT COUNT(*) FROM `clan_invite` WHERE `user` = "'.$user['id'].'"'),0) > 0) {
$_invite = db_fetch_array(db_query('SELECT * FROM `clan_invite` WHERE `user` = "'.$user['id'].'"'));
$clan_invite = db_fetch_array(db_query('SELECT * FROM `clans` WHERE `id` = "'.$_invite['clan'].'"'));
if(($_SERVER['REQUEST_METHOD']??'GET')==='POST' && isset($_POST['clan_invite_accept'])) {
security_require_csrf();
/////
db_query("INSERT INTO `chat` (`clan`, `user`,`text`, `time`) VALUES (".$clan_invite['id'].", '0','Приветствуем новичка:<span class=dgreen>".$user['login']." </span>',".time().")");
//////
db_execute('INSERT INTO `clan_journal` (`cl_id`,`text`,`time`) VALUES (:c,:t,:tm)',['c'=>(int)$clan_invite['id'],'t'=>'<img src=/images/icon/race/'.(int)$user['r'].'.png> '.strip_tags((string)$user['login']).' вступил в клан','tm'=>time()]);
db_query('INSERT INTO `clan_memb` (`clan`,`user`,`time`,`last_update`) VALUES ("'.$clan_invite['id'].'","'.$user['id'].'","'.time().'","'.(time() + ((60 * 60) * 24)).'")');
db_query('DELETE FROM `clan_invite` WHERE `user` = "'.$user['id'].'"');
$_SESSION['not'] = '<img src="/images/icon/ok.png"> Вы успешно вступили в клан';
header('location: /clan/'.$clan_invite['id'].'');
exit;
}
if(($_SERVER['REQUEST_METHOD']??'GET')==='POST' && isset($_POST['clan_invite_decline'])){
security_require_csrf();
db_query('DELETE FROM `clan_invite` WHERE `clan` = "'.$clan_invite['id'].'" AND `user` = "'.$user['id'].'"');
header('location: '.$_SERVER['PHP_SELF'].'?');
exit;
}
?>
<div class='block_light center'>
<b>Приглашение в клан</b><br/><br/>
<table cellpadding='0' cellspacing='0' align='center'>
<tr>
<td><img src='/images/icon/clan/gerb/1.png' alt='*'/></td><td valign='top' style='padding-left: 5px; text-align: left;'>
<img src='/images/icon/clan/<?=$clan_invite['r']?>.png' alt='*'/> <a href='/clan/<?=$clan_invite['id']?>/'><?=$clan_invite['name']?></a><br/>
В клане: <b><?=db_result(db_query('SELECT COUNT(*) FROM `clan_memb` WHERE `clan` = "'.$clan_invite['id'].'"'),0)?></b> человек<br/>
Бонус: <font color='#90c090'>+<?=clan_buff($clan_invite['built_1'])?></font> к сумме
</td>
</tr></table>
<div class='separ'></div>
<form method='post' class='inline-form'><?=security_csrf_field()?><button type='submit' name='clan_invite_accept' value='1' class='btn'><span class='end'><span class='label'>Вступить</span></span></button></form><br/>
<form method='post' class='inline-form'><?=security_csrf_field()?><button type='submit' name='clan_invite_decline' value='1' class='link-button grey'>Отказаться</button></form>
</div>
<?php
}
}
$q_gift = db_query("SELECT * FROM `user_podarok` WHERE `user_id` = '$user[id]'");
$gift = db_fetch_array($q_gift) ?: ['last_auth' => 0];
$time = (int)($gift['last_auth'] ?? 0) + 86400;
$now = time();
if ($time < $now) {
echo "";
echo "";}
// Долина бессмертных v50.10: уведомляем только реально зарегистрированного вручную игрока.
if(($_SERVER['PHP_SELF'] ?? '') !== '/undying.php'){
$uid=(int)$user['id'];
$activeUndying=db_fetch_one("SELECT e.`id` FROM `undying_v512_event` e JOIN `undying_v512_member` m ON m.`event_id`=e.`id` WHERE e.`state`='running' AND m.`user_id`=:u AND m.`is_bot`=0 LIMIT 1",['u'=>$uid]);
if($activeUndying){
echo '<div class="block_light center undying-active-alert"><b class="dgreen">Вы участвуете в битве за Долину бессмертных</b><br><span class="grey">Битва уже началась.</span><div class="separ"></div><a href="/undying/" class="btn"><span class="end"><span class="label">Перейти в Долину</span></span></a></div><div class="mini-line"></div>';
}
}
//Колизей
if($_SERVER['PHP_SELF'] != '/coliseum.php'){
$member = db_query('SELECT * FROM `coliseum_member` WHERE `user` = "'.$user['id'].'" ORDER BY `time` DESC LIMIT 1');
$member = db_fetch_array($member);
if($member) {
$battle = db_query('SELECT * FROM `coliseum` WHERE `id` = "'.$member['battle'].'"');
$battle = db_fetch_array($battle);
if($battle['time'] > time() && db_result(db_query('SELECT COUNT(*) FROM `coliseum_member` WHERE `battle` = "'.$battle['id'].'"'),0) >= 2) {
echo "<div class='block_light center'>";
echo "<b class='dgreen'>Вы участвуете в битве</b><br>
<span class='grey'>До начала боя: ".($battle['time'] - time())." секунд</span>";
echo "<div class='separ'></div>";
echo "<a href='/coliseum/' class='btn'><span class='end'><span class='label'>Перейти в колизей</span></span></a>";
echo "</div>";
}elseif($battle['start'] == 1 && $battle['end'] == 0){
echo "<div class='block_light center'>";
echo "<b class='dgreen'>Вы учавствуите в битве</b><br>
<span class='grey'>Бой начался!</span>";
echo "<div class='separ'></div>";
echo "<a href='/coliseum/' class='btn'><span class='end'><span class='label'>Перейти в колизей</span></span></a>";
echo "</div>";
}
}
}
if($_SERVER['PHP_SELF'] != '/drakon.php'){
if($user['mp']>25){
if($user['hp']>50){
$aluko = db_fetch_assoc(db_query("SELECT * FROM `aluko` ORDER BY `id` LIMIT 1")) ?: ['health'=>0];
if((int)($aluko['health'] ?? 0)>0){
echo '<center><div class="block_zero"><img src="/images/icon/minidrakon.png">На помощь! На нас опять напал Дракон!<img src="/images/icon/minidrakon.png"><br>
<a href="/drakon"class="btn"><span class="end"><span class="label">Атаковать дракона</span></span></a></div></center>';
echo"<div class='mini-line'></div>";
}
}
}
}
$hrevolt = db_fetch_assoc(db_query("SELECT * FROM `time_jurnal` WHERE `name`='revolt' ORDER BY `id` DESC LIMIT 1")) ?: ['time'=>0];
if((((int)($hrevolt['time'] ?? 0)) - time()) < 900 && (int)($hrevolt['time'] ?? 0) > time()) {
$h = ($hrevolt['time']-time())/3600%60;
$m = ($hrevolt['time']-time())/60%60;
$s = ($hrevolt['time']-time())%60;
?>
<center></br>Мятеж начнётся через: <font color='gren'><?php echo $h.':'.$m.':'.$s;?></font><br/></center><?php
}
}else{
?>
<div class='main' style='word-wrap:break-word;'><span style='text-shadow:none;'></span>
<?php
}
?>
<?php
//
if (is_array($user) && !empty($user['id'])) {
// Клановые битвы управляются единым игровым календарём.
// защита
// Старая система из 5 достижений отключена в v50.2.
// Раньше она параллельно с новой системой добавляла +5 к характеристикам и
// из-за этого параметры игрока удваивались. Все 16 достижений теперь
// рассчитываются и награждаются только через game_achievement_v50_sync().
}
?>