Файл: pages/combat/cave_of_monsters.php
Строк: 276
<?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']='/cave_of_monsters.php'; $_SERVER['SCRIPT_NAME']='/cave_of_monsters.php'; }
/* Обновление игры под PHP 8.4 / PDO и усиление безопасности: by Метриум (Стэлп) */
include './system/common.php';
include './system/functions.php';
include './system/user.php';
include './system/menu.php';
if(!$user) {
header('location: /');
exit;}
$title = 'Пришествие монстров';
include './system/h.php';
echo'<div class="title">'.$title.'</div>';
$cave_of_monsters = db_query('SELECT * FROM `cave_of_monsters` WHERE `user` = "'.$user['id'].'"');
$cave_of_monsters = db_fetch_array($cave_of_monsters);
$cave_of_monsters_boss = db_query('SELECT * FROM `cave_of_monsters_boss` WHERE `id` = "'.$cave_of_monsters['oponent'].'"');
$cave_of_monsters_boss = db_fetch_array($cave_of_monsters_boss);
if(db_result(db_query('SELECT * FROM `cave_of_monsters` WHERE `user` = "'.$user['id'].'"'),0) == 0) {//Добавляем в бд, если зашел в первый раз
db_query('INSERT INTO `cave_of_monsters` (`user`) VALUES ("'.$user['id'].'")');
header('location: /cave_of_monsters');
exit;
}
$bossCounter = db_num_rows(db_query("SELECT `id` FROM `cave_of_monsters_boss` WHERE `cave`='".$cave_of_monsters['cave']."' and `user`='".$user['id']."' and `dead`='0' "));//Противников в подземелье
if($cave_of_monsters['step'] == '0') {//0-й этап
$cave = _string(_num($_GET['id'])); //Оприделяем какое подземелье
if($cave == '1'){
$cave=1;
$h2=1;//Время возрождения в часах
$boss=15;//Сколько нужно убить
$boss_stat=mt_rand(35,110);//Статы
}
if($cave == '2'){
$cave=2;
$h2=2;//Время возрождения в часах
$boss=20;//Сколько нужно убить
$boss_stat=mt_rand(110,400);//Статы
}
if($cave == '3'){
$cave=3;
$h2=4;//Время возрождения в часах
$boss=25;//Сколько нужно убить
$boss_stat=mt_rand(400,1500);//Статы
}
if($cave == '4'){
$cave=4;
$h2=8;//Время возрождения в часах
$boss=35;//Сколько нужно убить
$boss_stat=mt_rand(1500,4500);//Статы
}
if($cave) {
$hs = ($h2 * (60 * 60));
db_query('UPDATE `cave_of_monsters` SET `cave` = "'.$cave.'",
`step` = "1",
`user_hp` = "'.$user['vit'].'",
`time` = "'.time().'"
WHERE `user` = "'.$user['id'].'"');
for ($i = 0; $i<$boss; $i++)
{
db_query('INSERT INTO `cave_of_monsters_boss` SET `cave` = "'.$cave.'",
`user` = "'.$user['id'].'",
`str` = "'.$boss_stat.'",
`vit` = "'.$boss_stat.'",
`agi` = "'.$boss_stat.'",
`def` = "'.$boss_stat.'" ');
}
header('location: /cave_of_monsters?new_oponent=true');
}
echo' <div class="empty_block">
<table> <tbody><tr>
<td width="23%">
<img src="/images/cave_of_monsters/location_1.png">
</td><td>
Речные земли <br>
15 убийств для победы
</td></tr>
</tbody></table>
<form action="/cave_of_monsters?id=1" method="post">
<center><input class="button" type="submit" value="В долину"/></center>
</form>
</div><div class="line"></div>';
echo' <div class="empty_block">
<table> <tbody><tr>
<td width="23%">
<img src="/images/cave_of_monsters/location_2.png">
</td><td>
Зачарованный лес <br>
20 убийств для победы
</td></tr>
</tbody></table>
<form action="/cave_of_monsters?id=2" method="post">
<center> '.($user['str'] >= 110 ? '<input class="button" type="submit" value="В ущелье"/>':'<div class="button2">В ущелье</div>').'</center>
</form>
</div><div class="line"></div>';
echo' <div class="empty_block">
<table> <tbody><tr>
<td width="23%">
<img src="/images/cave_of_monsters/location_3.png">
</td><td>
Дикая пустошь <br>
25 убийств для победы
</td></tr>
</tbody></table>
<form action="/cave_of_monsters?id=3" method="post">
<center> '.($user['str'] >= 400 ? '<input class="button" type="submit" value="В пустыню"/>':'<div class="button2">В пустыню</div>').'</center>
</form>
</div><div class="line"></div>';
echo' <div class="empty_block">
<table> <tbody><tr>
<td width="23%">
<img src="/images/cave_of_monsters/location_4.png">
</td><td>
Подземное царство <br>
35 убийств для победы
</td></tr>
</tbody></table>
<form action="/cave_of_monsters?id=4" method="post">
<center> '.($user['str'] >= 1500 ? '<input class="button" type="submit" value="В горы"/>':'<div class="button2">В горы</div>').'</center>
</form>
</div><div class="line"></div>';
}
if($cave_of_monsters['step'] == '1'){//1-й этап (Бой)
$times = ($cave_of_monsters['cave'] * (60 * 60));
if($bossCounter == '0' OR $cave_of_monsters['user_hp'] <= '0') {//перенаправляем при победе или поражении
db_query("update `cave_of_monsters` set `step` = '2', `time` = '".(time() + $times)."' where `user` = '".$user['id']."' AND `cave`='".$cave_of_monsters['cave']."' ");
header("Location: /cave_of_monsters");
exit;
}
if($_GET['new_oponent'] == true) {//Сменить противника
$new_oponent = db_query('SELECT * FROM `cave_of_monsters_boss` WHERE `cave` = "'.$cave_of_monsters['cave'].'" AND `user` = "'.$user['id'].'" AND `dead` = "0" ORDER BY RAND() LIMIT 1');
$new_oponent = db_fetch_array($new_oponent);
db_query("update `cave_of_monsters` set `oponent` = '".$new_oponent['id']."' where `user` = '".$user['id']."' ");
header("Location: /cave_of_monsters");
exit;
}
$oponent = db_query('SELECT * FROM `cave_of_monsters_boss` WHERE `id` = "'.$cave_of_monsters['oponent'].'" AND `user` = "'.$user['id'].'" AND `cave` = "'.$cave_of_monsters['cave'].'" AND `dead` = "0" ');
$oponent = db_fetch_array($oponent);
if (isset($_GET['attack'])){//Система боя
$my_attack = _string(mt_rand($user['str'] / 3.5,$user['str'] / 3));
if($my_attack <= '0'){ $my_attack = 2;}
$boss_atk = _string(mt_rand($oponent['str'] / 3.5,$oponent['str'] / 3));
if($boss_atk <= '0'){ $boss_atk = 2;}
$my = "<b>Вы</b> нанесли "._string($my_attack)." урона";
$boss = "<b> Враг </b> нанес "._string($boss_atk)." урона";
$msg = "$my <br/> $boss";
db_query("update `cave_of_monsters` set `user_hp` = `user_hp` - '".$boss_atk."' where (`user` = '".$user['id']."' )");
if(($cave_of_monsters_boss['vit'] - $my_attack) <= '0'){
db_query("update `cave_of_monsters_boss` set `vit` = '0', `dead` = '1' where (`id` = '".$oponent['id']."')");
db_query("INSERT INTO `cave_of_monsters_log` SET
`id_user`='".$user['id']."',
`text`='Вы убили врага.' ");
header("Location:/cave_of_monsters?new_oponent=true");
exit;
}
db_query("update `cave_of_monsters_boss` set `vit` = `vit` - '".$my_attack."' where (`id` = '".$oponent['id']."')");
db_query("INSERT INTO `cave_of_monsters_log` SET
`id_user`='".$user['id']."',
`text`='".$msg."' ");
header("Location:/cave_of_monsters");
exit;
}
echo' <div class="empty_block">
<table> <tbody><tr>
<td> <img src="'.$HOME.'/images/cave_of_monsters/1.png" alt="*" width="48"> </td>
<td>
<span style="float:left;"> <b> Враг ('.$bossCounter.') </b> </span> <br>
<span style="float:left;"> <img src="/images/icon/vit.png" alt="hp" width="15"> '._string($oponent['vit']).' </span>
</td></tr>
</tbody></table>
</div> ';
echo' <div class="block_link"><a href="/cave_of_monsters?attack"> Атаковать </a></div>';
$ca=db_result(db_query("SELECT COUNT(*) FROM `cave_of_monsters_log`"),0);
$req = db_query("SELECT * FROM `cave_of_monsters_log` where `id_user` = '".$user['id']."' ORDER by `id` DESC LIMIT 3 ");
$avto=db_num_rows($req);
if($avto==0){
echo'<div class="block"> Нет истории боя </div> ';
}else{
echo' <div class="empty_block item_center"> История боя </div> <div class="block">';
while($log = db_fetch_array($req))
{
echo' '.$log['text'].' <br/>';
}
echo' </div>';
}
}
if($cave_of_monsters['step'] == '2'){//2-й этап (Получаем награду)
if($bossCounter == '0'){ //Награда при победе
$_gold=$cave_of_monsters['cave'];
$_silver=round($cave_of_monsters['cave']*100);
$_exp=round($cave_of_monsters['cave']*100);}
if($cave_of_monsters['user_hp'] <= '0'){ //Награда при поражении
$_gold=0;
$_silver=round($cave_of_monsters['cave']*60);
$_exp=round($cave_of_monsters['cave']*60);}
if($clan_memb && $clan_memb['v'] > 0) { //Верность клану
$_exp += round($_exp/100) * $clan_memb['v'];
}
if($premium) {$_exp+= round($_exp/ 100) * 25;} //Если премик
if($_GET['end'] == true) {
db_query('UPDATE `cave_of_monsters` SET
`step` = "3"
WHERE `cave` = "'.$cave_of_monsters['cave'].'" AND `user` = "'.$user['id'].'"');
if($cave_of_monsters['user_hp'] <= '0'){ //Награда при поражении
db_query('UPDATE `users` SET `s` = `s` + "'.n_f($_silver/2).'", `exp` = `exp` + "'.n_f($_exp/2).'" WHERE `id` = "'.$user['id'].'"');
if($clan) {//Если в клане
db_query('UPDATE `clans` SET `exp` = `exp` + '.n_f($_exp/2).' WHERE `id` = "'.$clan['id'].'"'); //Плюсуем в клан
db_query('UPDATE `clan_memb` SET `exp` = `exp` + '.n_f($_exp/2).' WHERE `clan` = "'.$clan['id'].'" AND `user` = "'.$user['id'].'"'); //Плюсуем учаснику клана
}
}
if($cave_of_monsters['boss_hp'] <= '0'){ //Награда при победе
$goldGranted=game_economy_award_gold((int)$user['id'],min(10,max(0,(int)$_gold)),'monster_cave',150); $_gold=$goldGranted;
db_execute('UPDATE `users` SET `s`=`s`+:s,`exp`=`exp`+:e WHERE `id`=:u',['s'=>(int)$_silver,'e'=>(int)$_exp,'u'=>(int)$user['id']]);
if($clan) {//Если в клане
db_query('UPDATE `clans` SET `exp` = `exp` + '.n_f($_exp).' WHERE `id` = "'.$clan['id'].'"'); //Плюсуем в клан
db_query('UPDATE `clan_memb` SET `exp` = `exp` + '.n_f($_exp).' WHERE `clan` = "'.$clan['id'].'" AND `user` = "'.$user['id'].'"'); //Плюсуем учаснику клана
} }
header('location: /cave_of_monsters');
}
if($bossCounter == '0'){
echo' Победа
<div class="empty_block item_center">
<img src="/images/ico/cave_of_monsters/travel_win.png"> <br>
<img src="/images/ico/png/gold.png"> '.n_f($_gold).'
<img src="/images/ico/png/silver.png"> '.n_f($_silver).'
<img src="/images/ico/png/exp.png"> '.n_f($_exp).'
<a href="/cave_of_monsters?end=true"><div class="button">Забрать награду</div></a>
</div><div class="line"></div>';
}
if($cave_of_monsters['user_hp'] <= '0'){
echo' Поражение
<div class="empty_block item_center">
<img src="/images/ico/cave_of_monsters/travel_lose.png"> <br>
<img src="/images/ico/png/silver.png"> '.n_f($_silver/2).'
<img src="/images/ico/png/exp.png"> '.n_f($_exp/2).'
<a href="/cave_of_monsters?end=true"><div class="button">Забрать награду</div></a>
</div><div class="line"></div>';
}
}
if($cave_of_monsters['step'] == '3'){//3-й этап (Востановление подземелья)
echo'
<div class="empty_block" align="center">
Подземелье откроеться через:
'._time($cave_of_monsters['time'] - time()).'
</div><div class="line"></div>';
if($cave_of_monsters['time'] - time() <= '0'){
db_query('DELETE FROM `cave_of_monsters` WHERE `user` = ''.$user['id'].''');
db_query('DELETE FROM `cave_of_monsters_boss` WHERE `user` = ''.$user['id'].''');
db_query('DELETE FROM `cave_of_monsters_log` WHERE `id_user` = ''.$user['id'].''');
}
}
include './system/f.php';
?>