Файл: index.php
Строк: 504
<?php
/* Обновление игры под PHP 8.4 / PDO и усиление безопасности: by Метриум (Стэлп) */
$_SESSION['arena'] = 0;
include './system/common.php';
include './system/functions.php';
include './system/user.php';
require_once './system/starter.php';
$title = 'Возрождение титанов';
include './system/h.php';
///NewsП
if(isset($_SESSION['news'])){
$carlll = _string($_SESSION['news']);
echo $carlll;
unset($_SESSION['news']);
}
if(is_array($user) && !empty($user['id'])) {
if($mail > 0) {
?>
<div class="menuList">
<li class="center"><a href="/mail/"><img src="/images/icon/mail.png" alt=""><span class="green">Новая почта</span> +<?=$mail;?></a></li>
</div>
<div class="dot-line"></div>
<?php
}
if($user['save'] == 1){
if(!empty($_SESSION['just_saved'])){ unset($_SESSION['just_saved']); $offer=game_bonus_offer_ensure((int)$user['id']); echo '<div class="save-success-ref center"><b>Персонаж успешно сохранен!</b><br>Ник: '.htmlspecialchars((string)$user['login'],ENT_QUOTES,'UTF-8').'<br>Награда: <img src="/images/icon/gold.png" alt=""> 100 золота<br><a href="/bonus-kit/">Доступна акция Бонусный комплект</a></div><div class="mini-line"></div>'; }
/* Приветствие первого входа за день — by Метриум (Стэлп) */
$dailyWelcomeCookie = 'bt_daily_welcome';
$dailyWelcomeValue = (int)$user['id'] . ':' . date('Y-m-d');
$showDailyWelcome = !isset($_COOKIE[$dailyWelcomeCookie]) || !hash_equals($dailyWelcomeValue, (string)$_COOKIE[$dailyWelcomeCookie]);
if ($showDailyWelcome) {
$expires = strtotime('tomorrow 00:10:00');
setcookie($dailyWelcomeCookie, $dailyWelcomeValue, [
'expires' => $expires,
'path' => '/',
'secure' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'),
'httponly' => true,
'samesite' => 'Lax',
]);
$dailyPromos = game_active_promos(3);
?>
<div class="daily-welcome-ref">
<div class="daily-welcome-ref__text">Добро пожаловать в мир титанов!<br>Приятной игры! <span aria-hidden="true">🙂</span></div>
<?php foreach ($dailyPromos as $promo): ?>
<a class="daily-welcome-ref__promo" href="<?=htmlspecialchars($promo['url'], ENT_QUOTES, 'UTF-8')?>"><?=htmlspecialchars($promo['name'] . ($promo['discount'] > 0 ? ' '.$promo['discount'].'%' : ''), ENT_QUOTES, 'UTF-8')?></a>
<?php endforeach; ?>
<div class="daily-welcome-ref__image"><img src="/images/town/hd/main.jpg" alt="Мир титанов"></div>
</div>
<div class="mini-line"></div>
<?php
}
$activePromos=game_active_promos(8);
if($activePromos){ ?>
<div class="block_light center"><b class="yellow">Акции и события</b></div>
<?php foreach($activePromos as $promo): ?>
<div class="menuList"><li><a href="<?=security_html($promo['url'])?>"><img src="/images/icon/arrow.png" alt=""> <?=security_html($promo['name'])?><?php if((int)$promo['discount']>0): ?> <span class="green">-<?=$promo['discount']?>%</span><?php endif; ?> <span class="grey">(<span data-live-until="<?=$promo['until']?>" data-live-format="short"><?=_time(max(0,(int)$promo['until']-time()))?></span>)</span></a></li></div>
<?php endforeach; ?><div class="mini-line"></div>
<?php }
if($user['level']>=1){
$latestNews = db_fetch_one("SELECT `id`,`name` FROM `forum_topic` WHERE `sub`=1 ORDER BY `id` DESC LIMIT 1");
if($latestNews && ($_SERVER['REQUEST_METHOD']??'GET')==='POST' && in_array((string)($_POST['home_news_action']??''),['hide','open'],true)){
security_require_csrf();
db_execute('UPDATE `users` SET `nread`=:n WHERE `id`=:u',['n'=>(int)$latestNews['id'],'u'=>(int)$user['id']]);
if((string)$_POST['home_news_action']==='open'){ header('Location: /forum/topic/'.(int)$latestNews['id'].'/'); exit; }
header('Location: /'); exit;
}
if($latestNews && (int)$latestNews['id']>(int)($user['nread']??0)){
?>
<div class="block_light center">
<span class="dgreen">Новая тема в новостях!</span>
<div class="separ"></div>
<img src="/images/icon/forum_2.png" alt=""> <b><?=security_html((string)$latestNews['name'])?></b> <img src="/images/icon/forum_2.png" alt="">
<div class="mb10"></div>
<form method="post" action="/" class="inline-form"><?=security_csrf_field()?><input type="hidden" name="home_news_action" value="open"><button class="btn" type="submit">Посмотреть новость</button></form><br>
<form method="post" action="/" class="inline-form"><?=security_csrf_field()?><input type="hidden" name="home_news_action" value="hide"><button class="link-button" type="submit">Скрыть</button></form>
</div>
<div class="mini-line"></div>
<?php
}
// Долина бессмертных v50.3: единый автоматизированный таймер события.
$undying = function_exists('game_v51_current_undying') ? game_v51_current_undying() : null;
if ($undying && $undying['state']==='waiting' && (int)$undying['start_at'] > time()) {
$undyingTimestamp=(int)$undying['start_at'];
$undyingTime=$undyingTimestamp-time();
if($undyingTime<=1800){
echo '<div class="block_zero center" id="undying-home-card">';
echo '<img src="/images/logo/enter.gif" alt="" style="width:100%">';
echo 'Долина бессмертных через: <b>'._time(max(0,$undyingTimestamp-time())).'</b><br>';
echo '<a class="btn" href="/undying/"><span class="end"><span class="label">Перейти</span></span></a>';
echo '</div>';
}
}
?>
<div class="mini-line"></div>
<div class="menuList">
<?php
if($user['access'] != 0) echo '<li><center><a href="/adm/"><img src="/images/icon/arena.png" alt="">Админка </a></center></a></li>';
?>
<?php
echo'</td>
<tr>
</tr>
</table>';
$boss_user = db_query("SELECT * FROM `boss_user` WHERE `id_user` = '".$user['id']."'");
$boss_user = db_fetch_array($boss_user) ?: ['last' => 0, 'id_boss' => 0];
echo '<li><a href="/dungeon/">
<table width="85%" cellpadding="2" cellspacing="1">
<img src="images/dungeon.png" class="example_beauty" style="width:5%;border-radius:0px">
<font color="#CCCCCC">Подземелье</font></font> ';
if($boss_user['last'] > time())echo'<font color="#CCCCCC">( '._time($boss_user['last']-time()).')</font>';
if($boss_user['last'] < time())echo' <font color="lime"> (Открыто)</font>';
echo'</td>
<tr>
</tr>
</table>
</a></li>';
?>
<div class="mini-line">
<?php
echo'</td>
<tr>
</tr>
</table>';
$date = time();
$be = db_fetch_array(db_query("SELECT * FROM `users` WHERE `id` = '".(int)$user['id']."' LIMIT 1")) ?: $user;
$k_point=intval((time()-$be['hunt_last_update'])/(60*60*1));
if($k_point>=1){
$hunt_battles=$user['hunt_battles']+5*$k_point;
if($user['hunt_battles']>=15){$hunt_battles=15;}
db_query("UPDATE `users` SET `hunt_battles` = '".$hunt_battles."', `hunt_last_update` = '".$date."' WHERE `id` = '".(int)$user['id']."' LIMIT 1");
}
echo '<a href="/hunting" class="wrapper _shop"><table width="85%" cellpadding="2" cellspacing="1">
<img src="images/hunt.png" class="example_beauty" style="width:5%;border-radius:0px">
<font color="#CCCCCC">Охота</font>';
if($user['hunt_battles'] > 0){
echo'<font color="lime"> Доступно боев: '.$user['hunt_battles'].'</font>';
}
if($user['hunt_battles'] == 0){
echo '<font color="#CCCCCC"> Все бои истрачены</font>';}
echo'</td>
<tr>
</tr>
</table>
</a></li>';
?>
<div class="mini-line">
<?php
if(is_array($clan) && (int)($clan['time_boss'] ?? 0) >= time()){
?>
<center></cnter><li><a href="/portal"><img class='icon' src='/images/icon/icon.png'>Ваш клан открыл портал</a></li></center>
<div class="mini-line">
<?php } ?>
<li><a href="/arena?attack=true"><img src="/images/icon/arena.png" alt="">Арена <?=($user['mp'] > 49 ? '<font color='#30c030'>(+)</font>':'')?></a></li>
<?php
if($user['level'] > 1){
?>
<li><a href="/duel/"><img src="/images/icon/league.png" alt="">Дуэли <?=($user['duel_fights'] > 0 ? '<font color='#30c030'>(+)</font>':'')?></a></li>
<?php
}
$gameBadges=$GLOBALS['game_badges'] ?? (function_exists('game_activity_badges')?game_activity_badges($user,$clan??null,$clan_memb??null):[]);
?>
<li><a href="/cave/"><img src="/images/icon/cave.png" alt="">Пещера <?=game_badge_plus((int)($gameBadges['cave']??0))?></a></li>
<li><a href='/sage/'><img src="/images/icon/quest.png" alt=""> Хижина мудреца <?=game_badge_plus((int)($gameBadges['quests']??0))?></a></li>
<?php $undying = function_exists('game_v51_current_undying') ? game_v51_current_undying() : null; $altars = function_exists('game_v51_current_altars') ? game_v51_current_altars() : null; ?>
<li><a href="/undying/"><img src="/images/icon/bar.png" alt="">Долина бессмертных <?=game_badge_plus((int)($gameBadges['undying']??0))?> <?php if($undying):?><span class="grey">(<?=htmlspecialchars($undying['state']==='running'?'идёт бой':_time(max(0,(int)$undying['start_at']-time())),ENT_QUOTES,'UTF-8')?>)</span><?php endif;?></a></li>
<?php if(!empty($clan_memb)):?><li><a href="/altars/"><img src="/images/icon/clanwar.png" alt="">Древние алтари <?=game_badge_plus((int)($gameBadges['altars']??0))?> <?php if($altars):?><span class="grey">(<?=htmlspecialchars($altars['state']==='running'?'идёт бой':_time(max(0,(int)$altars['start_at']-time())),ENT_QUOTES,'UTF-8')?>)</span><?php endif;?></a></li><?php endif;?>
<li><a href="/fights/"><img src="/images/icon/arena.png" alt="">Сражения</a></li>
<li><a href="/coliseum/"><img src="/images/icon/coliseum.png" alt="">Колизей</a></li>
<?php
// by Метриум (Стэлп)
$camp=db_fetch_assoc(db_query("SELECT * FROM `campaign` WHERE `id_user`='".$user['id']."' LIMIT 1"));
if($camp && (int)($camp['limit'] ?? 0)<=time() AND (string)($camp['status'] ?? '')==='4'){
db_query("UPDATE `campaign` SET `status`='0', `udar`='9', `kol`='3' WHERE `id_user`='".$user['id']."' LIMIT 1");
}
if($camp){
if($camp['kol'] > 0){
$metka='<span class="green"><font color='#30c030'>(+)</font></span>';
}else{
$metka='';
}
}else{
$metka=FALSE;
}
?>
<li><a href="/campaign/"><img src="/images/icon/farm.png" alt="">Поход <?=$metka?></a></li>
</div>
<div class="mini-line"></div>
<div class="menuList">
<li><a class="dgreen" href="/payment/"><img src="/images/icon/gold.png" alt="">Получить золото <span class="green"><font color='#30c030'><img src="/images/job/new.gif" alt=""></font></span></a></li>
<li><a class="dgreen" href="/exchange"><img src="/images/icon/gold.png" alt="">Обменник <span class="green"><font color='#30c030'></font></span></a></li>
<li><a href="/shop/"><img src="/images/icon/equip.png" alt="">Магазин снаряжения</a></li>
<li><a href="/smith/"><img src="/images/icon/smith.png" alt="">Кузница<br>
<span class="white small">Руны, заточка, бонус</span></a></li>
<li><a href="/lab/"><img src="/images/icon/lab.png" alt="">Лаборатория<br>
<span class="white small">Усиления, эликсиры, камень и трава</span></a></li>
<li><a href="/rinok/"><img src="/images/icon/equip.png" alt="">Центр города</a></li>
<li><a href="/rating/"><img src="/images/icon/equip.png" alt="">Рейтинг</a></li>
</div>
<?php
}
}
if($user['save'] == 0){
/* Старый дубль обучения на главной удалён. Единый наставник выводится через system/tutorial.php. by Метриум (Стэлп) */
}else{
?>
<?php
if($user['level'] < 2){
?>
<?php
if($user['level'] > 1){
?>
<div class='block_zero center'><img src='/images/clantournament.jpg' width='100%' alt=''/><div class='mb5'></div>Побеждай в Дуэлях!</div><div class='mini-line'></div><div class='menuList'><li><a class='grey'><img src='/images/icon/arena.png' alt=''/>Арена</a></li><li><a href='/duel/'><img src='/images/icon/league.png' alt=''/>Дуэли<span class='green'> (+)</span></a></li><li><a class='grey'><img src='/images/icon/cave.png' alt=''/>Пещера</a></li><li><a class='grey'><img src='/images/icon/quest.png' alt=''/>Хижина мудреца</a></li><li><a class='grey'><img src='/images/icon/arena.png' alt=''/>Сражения</a></li><li><a class='grey'><img src='/images/icon/farm.png' alt=''/>Поход</a></li></div><div class='mini-line'></div><div class='menuList'><li><a class='grey'><img src='/images/icon/gold.png' alt=''/>Получить золото</a></li><li><a class='grey'><img src='/images/icon/equip.png' alt=''/>Магазин снаряжения</a></li><li><a class='grey'><img src='/images/icon/smith.png' alt=''/>Кузница</a></li><li><a class='grey'><img src='/images/icon/lab.png' alt=''/>Лаборатория</a></li><li><a href="/clanr"><a class='grey'><img src='/images/icon/lab.png' alt=''/>Рейтинг Арены Клана</a></li></div>
<?php
}
?>
<?php
}
}
?>
<?php
if(isSet($_GET['exit'])) {
security_auth_logout();
header('location: /');
}
}else{
$login = _string($_POST['login'] ?? '');
$login = strToLower($login);
$password = _string($_POST['password'] ?? '');
if($login && $password) {
$user = db_fetch_one('SELECT * FROM `users` WHERE LOWER(`login`) = :login LIMIT 1', ['login'=>$login]);
if($user && security_password_verify($password, (string)$user['password'])) {
if (!str_starts_with((string)$user['password'], '$2') && !str_starts_with((string)$user['password'], '$argon2')) {
db_execute('UPDATE `users` SET `password` = :p WHERE `id` = :id', ['p'=>security_password_hash($password), 'id'=>$user['id']]);
}
security_auth_login((int)$user['id']);
header('location: /');
$_SESSION['news'] = ' ';
}
}
$ref = _string(_num($_GET['ref'] ?? 0));
starter_set_ref((int)$ref);
?>
<div class="center"><br><img src='/images/clantournament.jpg' width='100%' alt=''/></div>
<div class="block_zero center">
<h1>Сражайся вместе с нами</h1>
<span class="medium">
Впервые на мобильниках. Игра, о которой ходят легенды
<br>
Теперь к легенде можешь прикоснуться и ты!
</span>
<div class="mb10"></div>
<h1 class="yellow">В игре уже <?=n_f(db_result(db_query('SELECT COUNT(*) FROM `users`'),0))?> игроков!</h1>
<?php
$extra_unic = security_flow_token('start');
?>
</div>
<div class="mini-line" style="margin-top:5px;"></div>
<div class="block_zero center" style="padding-top:15px;"><div class="bigBtn"><a class="btn" href="/file?unic_code=<?=htmlspecialchars($extra_unic);?>&ref=<?=htmlspecialchars((string)$ref,ENT_QUOTES,'UTF-8')?>"><span class="end"><span class="label"><span class="green">Начать свой путь</span></span></span></a></div></div>
<div class="separ"></div>
<?php
if(isset($_GET['sign_in'])){
?>
<div class="block_zero center" style="padding-bottom:8px;">
<form action="/" method="post">
<div style="margin-bottom:10px;">Имя персонажа:<br>
<input class="text medium-text" name="login" value="" type="text">
<br>Пароль:<br>
<input class="text medium-text" name="password" type="password">
<br>
<span class="btn"><span class="end"><input class="label" value="Войти" type="submit"></span></span>
</div>
<td valign="center" width="50%"><a href="/pass"style="text-decoration:none"><div class="input_submit" style="border-radius:8px;margin:2px">Забыли пароль?</span></span></a>
</form>
</div>
<?php
}else{
?>
<div class="block_zero center" style="padding:12px;"><a class="btn" href="/?sign_in"><span class="end"><span class="label">Войти</span></span></a></div>
<?php
}
?>
<div class="mini-line"></div>
<div class="block_zero">
<div class="center"><img src="/images/icon/2hit.png" alt=""> <span class="bold">Об игре</span> <img src="/images/icon/2hit.png" alt=""></div>
<ul>
«Битва за трон» — тёмная королевская RPG для мобильных устройств и компьютеров
<br>
Сражения, приключения, общение, любовь - всё это, неотъемлемая часть нашего мира
</ul>
</div>
<?php
}
include './system/f.php';
?>