Вход Регистрация
Файл: pages/combat/dungeon.php
Строк: 281
<?php
// Physical module map v50.6: public URL stays clean while code lives in /pages.
if (!defined('GAME_ROOT')) define('GAME_ROOT'dirname(__DIR__2));
chdir(GAME_ROOT);
if (
PHP_SAPI !== 'cli') { $_SERVER['PHP_SELF']='/dungeon.php'$_SERVER['SCRIPT_NAME']='/dungeon.php'; }

/* Обновление игры под PHP 8.4 / PDO и усиление безопасности: by Метриум (Стэлп) */

require_once 'system/common.php';
require_once 
'system/functions.php';
require_once 
'system/user.php';
 include 
'./system/menu.php';

$cernel_CH htmlspecialchars((string)($_GET['act'] ?? ''), ENT_QUOTES ENT_SUBSTITUTE'UTF-8');
switch(
$cernel_CH){




case 
'batlle':
$batlle db_query("SELECT * FROM `boss_batlle` WHERE `id_user` = '".$user['id']."' ORDER BY `id` DESC LIMIT 1");
$batlle db_fetch_array($batlle);
if(
$boss_user['last'] > time()){
header('Location: /dungeon/');
exit();
}
if(!
$batlle){//Если не в бою
header('Location: /dungeon/');
exit();
}
$boss db_query("SELECT * FROM `boss` WHERE `id` = '".$batlle['id_boss']."' ORDER BY `id` LIMIT 1");
$boss db_fetch_array($boss);
$title 'Бой с '.$boss['name'];
require_once 
'system/h.php';

if(isset(
$_GET['exit'])){//Покинуть бой
db_query("DELETE FROM `boss_batlle` WHERE `id` = '".$batlle['id']."' LIMIT 1");
header('Location: /dungeon/');
exit();
}
if(isset(
$_GET['kamen']) and $user['kamen'] >= and $batlle['kamen'] < time()){//Активирувать камень
db_query("UPDATE `users` SET `kamen` = `kamen` - '1' WHERE `id` = '".$user['id']."' LIMIT 1");
db_query("UPDATE `boss_batlle` SET `kamen` = '".(time()+30)."' WHERE `id` = '".$batlle['id']."' LIMIT 1");
header('Location: ?attack');
exit();
}
if(isset(
$_GET['trava']) and $user['trava'] >= and $batlle['trava'] < time()){//Активирувать траву
db_query("UPDATE `users` SET `trava` = `trava` - '1' WHERE `id` = '".$user['id']."' LIMIT 1");
db_query("UPDATE `boss_batlle` SET `trava` = '".(time()+30)."' WHERE `id` = '".$batlle['id']."' LIMIT 1");
header('Location: ?attack');
exit();
}


if(isset(
$_GET['attack'])) {
$_str rand(round($user['str']/6), round($user['str']/4));//Урон игрока
$_def rand(round($user['def']/12), round($user['def']/7));//Защита игрока
$_str_opp rand(round($boss['str']/6), round($boss['str']/4));//Урон противника
$_def_opp rand(round($boss['def']/12), round($boss['def']/7));//Защита противника

if($batlle['kamen'] > time())$_str += ceil($_str*35/100);//Камень
if($batlle['trava'] > time())$_def += ceil($_def*35/100);//Трава

$_str_opp $_str_opp $_def;//Если урон противника меньше нуля
if($_str_opp 0)$_str_opp 2;
$_str $_str $_def_opp;//Если урон игрока меньше нуля
if($_str 0)$_str 2;

if(
$_str $batlle['boss_health']){//Победа
$gold=min(10,max(1,(int)ceil((int)($boss['id']??1)/3)));
$exp rand($boss['min_exp'],$boss['max_exp']);

if(
$effect_2['on'] == 1)$exp $exp+($exp*25/100);
$exp $exp;


if(isset(
$_GET['win'])){
echo 
'<div class="opisanie"><center><font color="lime"><b>Победа</b></br>Награда: <img src="/images/icon/gold.png" alt="*"/> '.$gold.' золота и <img src="/images/icon/exp.png" alt="*"/>  '.$exp.' опыта</font></center></div>';

echo 
'<center><a class="btn" href="/dungeon/"><span class="end"><span class="label">Забрать награду</span></span></a></center>';
require_once 
'system/f.php';
exit;}



db_execute('UPDATE `users` SET `exp`=`exp`+:e WHERE `id`=:u',['e'=>(int)$exp,'u'=>(int)$user['id']]);
$gold=game_economy_award_gold((int)$user['id'],(int)$gold,'dungeon',150);

if(
$clan){             
db_query("UPDATE `clan_memb` SET `exp` = `exp` + '".($exp*15/100)."' WHERE `user` = '".$user['id']."' LIMIT 1");                     
db_query("UPDATE `clans` SET `exp` = `exp` + '".($exp*15/100)."' WHERE `id` = '".$clan['id']."' LIMIT 1");                
}


db_query("update `boss_user` set `id_boss` = `id_boss` + '1', `last` = '".(time()+60*60*5)."' where (`id_user` = '".$user['id']."')");
if(
$boss_user['id_boss'] >= 24){    db_query("UPDATE `boss_user` SET `id_boss` = '24' WHERE `id_user` = '".$user['id']."'");}
db_query("DELETE FROM `boss_batlle` WHERE `id` = '".$batlle['id']."' LIMIT 1");
header('Location: /dungeon/battle/?attack&win');
exit();
}elseif(
$_str_opp $batlle['user_health']){//Поражение
$exp rand($boss['min_exp'],$boss['max_exp']);
if(
$effect_2['on'] == 1)$exp $exp+($exp*25/100);
$exp $exp;


if(isset(
$_GET['lose'])){
echo
'<div class="opisanie"><center><font color="red"><b>Поражение</b></br>Награда: <img src="/images/icon/exp.png" alt="*"/>  '.$exp.' опыта</font></center></div>';

echo 
'<center><a class="btn" href="/dungeon/"><span class="end"><span class="label">Забрать награду</span></span></a></center>';
require_once 
'system/f.php';
exit;}


db_query("update `users` set `exp` = `exp` + '".$exp."' where `id` = '".$user['id']."'");


if(
$clan){             
db_query("UPDATE `clan_memb` SET `exp` = `exp` + '".($exp*15/100)."' WHERE `user` = '".$user['id']."' LIMIT 1");                     
db_query("UPDATE `clans` SET `exp` = `exp` + '".($exp*15/100)."' WHERE `id` = '".$clan['id']."' LIMIT 1");                
}
db_query("update `boss_user` set `last` = '".(time()+60*60*5)."' where (`id_user` = '".$user['id']."')");
db_query("DELETE FROM `boss_batlle` WHERE `id` = '".$batlle['id']."' LIMIT 1");
header('Location: /dungeon/battle/?attack&lose');
exit();
}else{
//Записываем логи боя
db_query("INSERT INTO `boss_batlle_log` SET `uron_user` = '$_str', `tip` = 'user', `id_batlle` = '$batlle[id]'");
db_query("INSERT INTO `boss_batlle_log` SET `uron_boss` = '$_str_opp', `tip` = 'boss', `id_batlle` = '$batlle[id]'");
db_query("update `boss_batlle` set `boss_health` = '".($batlle['boss_health']-$_str)."', `user_health` = '".($batlle['user_health']-$_str_opp)."', `udar_last` = '".(time()+1)."' where (`id` = '".$batlle['id']."')");
header('Location: /dungeon/battle/');
exit();
}
}


echo
'<div class="title">Битва с '.$boss['name'].'</div>';
echo 
'<div class="box"><table  width="100%"" cellpadding="3" cellspacing="0" >
<tr><td rowspan="2" width="1%"><img src="/images/boss/'
.$boss['id'].'.png" width="48px" style="margin-right:3px;margin-top:-2px;"></td>
<td>
 <font color="orange">'
.$boss['name'].'</font> </br>
<img src="/images/icon/health.png" alt="*"/> <font color="orange">'
.$batlle['boss_health'].'</font>
<br></br>

</td>
<tr></tr>
</table>
<div class="mini-line"></div>
<center><a class="btn" href="?attack"><span class="end"><span class="label">Атаковать</span></span></a></center>
<div class="mini-line"></div>'
;


echo 
'<div class="box"><table  width="100%"" cellpadding="3" cellspacing="0" >
<tr><td rowspan="2" width="1%"><img src="/manekenImage/0/0/0/0/0/0/0/0/0/" /></td>
<td>
 <font color="orange">'
.$user['login'].'</font> </br>
<img src="/images/icon/health.png" alt="*"/> <font color="orange">'
.$batlle['user_health'].'</font>
<br></br>
</td>
<tr></tr>
</table>

<div class="mini-line"></div>'
;

echo
"<div class='resources'>";
echo 
"<table cellpadding='5' cellspacing='0' align='center'><tr>";
echo 
"<td class='center' style='border-right: 1px solid #8D673A;'>";
if(
$user['kamen'] > 0)echo '<a class="btn" href="?kamen" class="end"><span class="label"> <img src="/images/campaign/stone.png" alt="*">  Камень </a><br>';
else echo 
'<a class="btn" href="?kamen" class="btn _green" class="end"><span class="label"><img src="/images/campaign/stone.png" alt="*"> <span class="grey">Камень</span></a><br>';
if(
$batlle['kamen'] > time()){
echo 
"<span class='ok' data-live-until='".(int)$batlle['kamen']."' data-live-format='short'>"._time($batlle['kamen']-time())."</span>";
}else{
echo 
"<span class='white'>+35% урон</span>";
}
echo 
"</td>";
echo 
"<td class='center'>";
if(
$user['trava'] > 0)echo "<a class='btn' href='?trava' class='end'><span class='label'> <img src='/images/campaign/grass.png' alt='*'> Трава</a></br>";
else echo 
'<a class="btn" href="?trava" class="end"><span class="label">   <img src="/images/campaign/grass.png" alt="*">  <span class="grey">Трава</span></a></br>';
if(
$batlle['trava'] > time()){
echo 
"<span class='ok' data-live-until='".(int)$batlle['trava']."' data-live-format='short'>"._time($batlle['trava']-time())."</span>";
}else{
echo 
"<span class='white'>-35% урон</span>";
echo
"</div>";
}
echo 
"</td>";
echo 
"</tr></table>";
echo 
"</div>";


echo 
'<div class="mini-line"></div>
<div class="opisanie center">'
;
$k_post db_result(db_query("SELECT COUNT(*) FROM `boss_batlle_log` WHERE `id_batlle` = '$batlle[id]'"),0);
if(
$k_post == 0)echo "Логов не найдено...";
$q db_query("SELECT * FROM `boss_batlle_log` WHERE `id_batlle` = '$batlle[id]' ORDER BY `id` DESC LIMIT 15");
while(
$post db_fetch_assoc($q)){
if(
$post['tip'] == 'user'){
echo 
"Вы атаковали $boss[name] на <b>$post[uron_user]</b><br>";
}else{
echo 
"<font color='red'>$boss[name] атаковал Вас на <b>$post[uron_boss]</b></font><br>";
}
}
echo 
"</div>";
echo 
"<a href='?exit' class='btn btn-game btn-block'> Покинуть бой</a>";
require_once (
'system/f.php');
break;



default:
$title 'Подземелья';
require_once 
'system/h.php';

 if(
db_result(db_query('SELECT * FROM `boss_user` WHERE `id_user` = "'.$user['id'].'"'),0) == 0) {//Добавляем в бд, если зашел в первый раз
db_query('INSERT INTO `boss_user` (`id_user`, `id_boss`, `last`) VALUES ("'.$user['id'].'", "1",  "0")');
header('Location: /dungeon/');
exit();
}

$boss_user db_query("SELECT * FROM `boss_user` WHERE `id_user` = '".$user['id']."'");
$boss_user db_fetch_array($boss_user);



$boss db_query("SELECT * FROM `boss` WHERE `id` = '".$boss_user['id_boss']."'");
$boss db_fetch_array($boss);


if(isset(
$_GET['vboi']) and $boss_user['last'] < time() and $user['level'] >= 1){
db_query("INSERT INTO `boss_batlle` SET `id_user` = '".$user['id']."', `id_boss` = '".$boss['id']."', `boss_health` = '".$boss['max_health']."', `user_health` = '".($user['vit']*2)."' ");
db_query("UPDATE `boss_user` SET `id_boss` = '".$boss['id']."' WHERE `id_boss` = '".$user['id']."' LIMIT 1");
header('Location: /dungeon/battle/');
exit();
}


echo 
'<div class="title">'.$title.'</div>';

    if (!empty(
$_SESSION['msg'])) { echo ' '.htmlspecialchars((string)$_SESSION['msg'], ENT_QUOTES ENT_SUBSTITUTE'UTF-8').' '; }
    unset(
$_SESSION['msg']); // Удаляем сообщение

if($user['level'] >= 1){
echo 
'<div class="box">
<table  width="100%" cellpadding="2" cellspacing="0">
<tr><td rowspan="2" width="27%"">
<img src="/images/boss/'
.$boss['id'].'.png" width="90px" style="margin-right:3px;margin-top:-2px;">
</td>
<td>  
</a>  <a>'
.$boss['name'].'</a><br><br>
       <img src="/images/icon/str.png" alt="*"/> Сила '
.$boss['str'].'<br>
       <img src="/images/icon/def.png" alt="*"/> Защита '
.$boss['def'].'<br>
       <img src="/images/icon/health.png" alt="*"/> Здоровье '
.$boss['max_health'].'<br><br>
</tr>
<td>
</td>
<tr>
</tr>
</table></div>'
;



if(
$boss_user['last'] < time())echo '<center><a class="btn" href="?vboi"><span class="end"><span class="label">Сразиться</span></span></a></center>';
else echo 
'<center><a href="?">Сразиться <span data-live-until="'.(int)$boss_user['last'].'" data-live-format="short">'._time($boss_user['last']-time()).'</span></a></center>';
echo 
"<div class='box'><small>За победу ты получешь много золота и опыта! Но победить боссов не так уж и просто, по этому за поражение ты получишь опыт!</small></div>";
}else{
echo 
"<div class='box'>Подземелья откроются на 10 уровне.</div>";
}
require_once (
'system/f.php');
break;
}
?>
Онлайн: 3
Реклама