Вход Регистрация
Файл: pages/combat/league.php
Строк: 349
<?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']='/league.php'$_SERVER['SCRIPT_NAME']='/league.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';
if(!
$user){
header('location: /');
exit;
}
$league = array( '''новичков''опытных''претендентов''мастеров''титанов''избранных');
$title 'Лига ' $league[$user['league']];
require_once 
'./system/h.php';  
echo 
'<div class='title'><span style='floatright;'> '.$user['league_place'].' место</span> Лига '.$league[$user['league']].'</div>
'

if(
$user['lig_priz']==&& $user['lig_resp']<=time()){ db_query('UPDATE `users` SET


`lig_priz`=0 WHERE `id` = "'
.$user['id'].'"'); header('location: league');exit;}

if(
$user['league_place'] <= 1000 && $user['league_place'] > 900) {
$oput 1000;
$sera 1000;
}

if(
$user['league_place'] <= 900 && $user['league_place'] > 800) {
$oput 2000;
$sera 2000;
}

if(
$user['league_place'] <= 800 && $user['league_place'] > 700) {
$oput 5000;
$sera 5000;
}

if(
$user['league_place'] <= 700 && $user['league_place'] > 600) {
$oput 10000;
$sera 10000;
}

if(
$user['league_place'] <= 600 && $user['league_place'] > 500) {
$oput 15000;
$sera 15000;
}

if(
$user['league_place'] <= 500 && $user['league_place'] > 400) {
$oput 20000;
$sera 20000;
}

if(
$user['league_place'] <= 400 && $user['league_place'] > 300) {
$oput 25000;
$sera 25000;
}

if(
$user['league_place'] <= 300 && $user['league_place'] > 200) {
$oput 30000;
$sera 30000;
}

if(
$user['league_place'] <= 200 && $user['league_place'] > 100) {
$oput 40000;
$sera 40000;
}

if(
$user['league_place'] <= 100 && $user['league_place'] >= 1) {
$oput 50000;
$sera 50000;
}
if(isset(
$user['id'])){
if (isset(
$_SESSION['light'])){
echo 
"$_SESSION[light]";
$_SESSION['light']=NULL;
}
}
if(isset(
$_GET['nag'])){
    if(
$user['lig_priz']=='1'){
      
$_SESSION['light']="дождитесь окончание времени.";
      
header("location:?");

      exit;
    }else if (
$user['lig_priz']=='0') {



      
db_query("UPDATE `users` SET `exp`=`exp`+'".$oput."',`s`=`s`+'".$sera."' WHERE `id`='".$user['id']."'");

db_query('UPDATE `users` SET `lig_priz` = "1",
`lig_resp` = "'
.(time() + 10800).'" WHERE `id` = "'.$user['id'].'"');





      
$_SESSION['light']="<div class='content'><center><img src='/lig/cr.png' alt=''/> <b><font color='#90c090'>Задание выполнено!</font></b><img src='/lig/cr.png' alt=''/></h2><div class='separator'></div><font color='blue'>Награда:</font> <img src='/images/icon/exp.png' alt='Опыт'/> $oput <img src='/images/icon/silver.png' alt='Серебро'/> $sera<br/>Следующая награда через: 02:59:59</div></center>";









      
header("location:?");
      exit;
    }
  } 
if(
$user['league_fights']=='0'){
  if(isset(
$_GET['respawn'])){
    if(
$user['g']<'60'){
      
$_SESSION['light']="У вас не достаточно золота.";
      
header("location:/league/");
      exit;
    }else if (
$user['g']>='60') {
      
db_query("UPDATE `users` SET `league_fights`='25',`g`='".($user['g']-60)."' WHERE `id`='".$user['id']."'");
      
$_SESSION['light']='<div class="main" align="center">Вы приобрели 25 боев в лиге!</div>';
      
header("location:?");
      exit;
    }
  }
}
echo 
'<div class='main'> <img src='/images/icon/2hit.png' alt=''/> Осталось боев: <b>' $user['league_fights'] . '</b>
'
;
?><div class='mini-line'></div><div class='block_zero center blue'>Чем выше место в лиге, тем больше награда!</div><div class='mini-line'></div><?php
echo '</div>';
if(
$user['league_place'] == 1){
echo 
'<div class='block'><img src='/images/league/' . $user['league_place'] . '.png' width='50' height='50' style='float:leftmargin-right:3pxmargin-top:3px;' alt=''/> <span class='yellow'>Поздравляем!</span><br/>';
if(
$user['league_place'] == 1) echo'Вы лучший в лиге '.$league[$user['league']].'';
echo 
'<div style='clearboth;'></div>
</div>'
;
}
$mesto=max(1,(int)($user['league_place']??1000));
$offsets=$mesto<=10?[1]:[8,3,1];
$multipliers=[3,2,1];
$__str=max(4,(int)($user['str']??4));
$baseBot=random_int(max(1,intdiv($__str,4)),max(2,intdiv($__str,2)));
$w_items=((int)($user['league']??1)===1)?[
    [
17,25,9],[26,10,18],[27,11,19],[12,20,28],[13,21,29],[30,22,14],[23,31,15],[16,32,24]
]:[
    [
226,234,242],[227,235,243],[228,236,244],[229,237,245],[230,238,246],[231,239,247],[232,240,248],[233,241,249]
];
$leagueOpponents=[];
foreach(
$offsets as $idx=>$offset){
    
$target=max(1,$mesto-(int)$offset);
    if(
$target >= $mesto) continue;
    
$mult=$multipliers[$idx]??1;
    
$items=[];
    for(
$slot=0;$slot<8;$slot++) $items[$slot+1]=$w_items[$slot][array_rand($w_items[$slot])];
    
$leagueOpponents[]=[
        
'place'=>$target,
        
'name'=>NameBot(),
        
'stats'=>['str'=>$baseBot*$mult,'vit'=>$baseBot*$mult,'agi'=>$baseBot*$mult,'def'=>$baseBot*$mult],
        
'items'=>$items,
    ];
}

$attackTarget=max(0,(int)($_GET['attack']??0));
if(
$attackTarget>0){
    
$chosen=null;
    foreach(
$leagueOpponents as $opp){ if((int)$opp['place']===$attackTarget){$chosen=$opp;break;} }
    if(!
$chosen){ $_SESSION['light']='Соперник уже недоступен. Обновите список.'header('Location:/league/'); exit; }
    if((int)(
$user['league_fights']??0)<=0){
        
$_SESSION['light']='<div class="main" align="center">У вас закончились бои.<br><br><a href="?respawn" class="button">Купить 25 боев за 60 <img src="/images/icon/gold.png" alt=""> золота</a></div>';
        
header('Location:/league/');exit;
    }
    
$minHp=(int)ceil(((int)($user['vit']??1)*2)*0.10);
    if((int)(
$user['mp']??0)<50 || (int)($user['hp']??0)<max(1,$minHp)){
        
$_SESSION['light']='<div class="main center"><span class="red">Для нападения нужно минимум 10% жизни и 50 маны.</span><br><a href="/lab/wiz/?potion=true&referal=/league/" class="button">Купить настойку</a></div>';
        
header('Location:/league/');exit;
    }
    
$opponent=$chosen['stats'];
    
$ustr=max(1,(int)($user['str']??1)); $uagi=max(0,(int)($user['agi']??0)); $udef=max(0,(int)($user['def']??0));
    
$ostr=max(1,(int)$opponent['str']); $oagi=max(0,(int)$opponent['agi']); $odef=max(0,(int)$opponent['def']);
    
$dmg=random_int(max(1,intdiv($ustr,6)),max(1,intdiv($ustr,4)));
    
$crit=max(-100,min(100,random_int(1,2)*intdiv($uagi,100)-random_int(1,2)*intdiv($oagi,100)));
    if(
random_int(0,100)<=max(0,$crit)) $dmg*=2;
    
$dodge=max(-100,min(100,random_int(1,2)*intdiv($oagi,100)-random_int(1,2)*intdiv($uagi,100)));
    if(
random_int(0,100)<=max(0,$dodge)) $dmg=0;
    
$dmg=max(0,$dmg-random_int(max(0,intdiv($odef,12)),max(0,intdiv($odef,7))));
    
$opponentDmg=random_int(max(1,intdiv($ostr,6)),max(1,intdiv($ostr,4)));
    
$ocrit=max(-100,min(100,random_int(1,2)*intdiv($oagi,100)-random_int(1,2)*intdiv($uagi,100)));
    if(
random_int(0,100)<=max(0,$ocrit)) $opponentDmg*=2;
    
$ododge=max(-100,min(100,random_int(1,2)*intdiv($uagi,100)-random_int(1,2)*intdiv($oagi,100)));
    if(
random_int(0,100)<=max(0,$ododge)) $opponentDmg=0;
    
$opponentDmg=max(0,$opponentDmg-random_int(max(0,intdiv($udef,12)),max(0,intdiv($udef,7))));
    
$won=$dmg>$opponentDmg;
    
$hpLoss=$won?(int)ceil($opponentDmg/4):(int)ceil($opponentDmg/2);
    
db_execute('UPDATE `users` SET `hp`=GREATEST(`hp`-:h,1),`mp`=GREATEST(`mp`-50,0) WHERE `id`=:u',['h'=>$hpLoss,'u'=>(int)$user['id']]);
    if(
$won){
        
db_execute('UPDATE `users` SET `league_place`=:p WHERE `id`=:u',['p'=>$attackTarget,'u'=>(int)$user['id']]);
        
$_silver=random_int(7,10)*max(1,1000-$mesto); $_exp=random_int(5,7)*max(1,1000-$mesto);
        
$_SESSION['light']='<div class="block center"><img src="/images/icon/2hit.png" alt=""> <span class="green"><b>Победа!</b></span> <img src="/images/icon/2hit.png" alt=""><div class="separator"></div><img src="/images/icon/silver.png" alt=""> '.n_f($_silver).' серебра <img src="/images/icon/exp.png" alt=""> '.n_f($_exp).' опыта</div>';
    }else{
        
$_silver=random_int(2,200); $_exp=1;
        
$_SESSION['light']='<div class="block center"><img src="/images/icon/2hit.png" alt=""> <span class="red"><b>Поражение!</b></span> <img src="/images/icon/2hit.png" alt=""><div class="separator"></div><img src="/images/icon/silver.png" alt=""> '.n_f($_silver).' серебра <img src="/images/icon/exp.png" alt=""> '.n_f($_exp).' опыта</div>';
    }
    
game_quest_progress_event((int)$user['id'],9,1,$won?1:0);
    if(
$clan_memb && (int)($clan_memb['v']??0)>0$_exp+=(int)round($_exp/1000)*(int)$clan_memb['v'];
    if(
$premium$_exp+=(int)ceil($_exp*.25);
    if(
$clan){
        if(
game_clan_quest_is_week_open()){
            
game_clan_quest_increment((int)$clan['id'],3,(int)$user['id'],1);
            if(
$wongame_clan_quest_increment((int)$clan['id'],4,(int)$user['id'],1);
        }
        
db_execute('UPDATE `clans` SET `exp`=`exp`+:x WHERE `id`=:c',['x'=>$_exp,'c'=>(int)$clan['id']]);
        
db_execute('UPDATE `clan_memb` SET `exp`=`exp`+:x WHERE `clan`=:c AND `user`=:u',['x'=>$_exp,'c'=>(int)$clan['id'],'u'=>(int)$user['id']]);
    }
    
db_execute('UPDATE `users` SET `exp`=`exp`+:x,`s`=`s`+:s,`league_fights`=GREATEST(`league_fights`-1,0) WHERE `id`=:u',['x'=>$_exp,'s'=>$_silver,'u'=>(int)$user['id']]);
    
header('Location:/league/');exit;
}

foreach(
$leagueOpponents as $opp){
    
$items=$opp['items']; $opponent=$opp['stats']; $target=(int)$opp['place'];
    echo 
"<div class='main'>";
    echo 
'<span style="float:left"><a href="/league/?attack='.$target.'"><img src="/manekenImage/0/'.implode('/',array_map('intval',$items)).'/" width="120" height="160" style="margin-right:10px;margin-top:3px" alt=""></a></span>';
    echo 
'<b>'.$target.' '.security_html((string)$opp['name']).'</b><br><br>';
    echo 
"<img src='/images/icon/str.png' alt=''> Сила: ".n_f((int)$opponent['str'])."<br>";
    echo 
"<img src='/images/icon/vit.png' alt=''> Жизнь: ".n_f((int)$opponent['vit'])."<br>";
    echo 
"<img src='/images/icon/agi.png' alt=''> Удача: ".n_f((int)$opponent['agi'])."<br>";
    echo 
"<img src='/images/icon/def.png' alt=''> Защита: ".n_f((int)$opponent['def'])."<br><br>";
    echo 
'<a href="/league/?attack='.$target.'" class="btn"><span class="end"><span class="label">Атаковать</span></span></a><div style="clear:both"></div></div>';
}
echo 
'<div class='main'>';
echo 
"Ваши параметры:<br/>";
echo 
"<img src='/images/icon/str.png' alt='*'/> ".$user['str']." <img src='/images/icon/vit.png' alt='*'/> ".$user['vit']." <img src='/images/icon/agi.png' alt='*'/> ".$user['agi']." <img src='/images/icon/def.png' alt='*'/> ".$user['def']."";
echo 
"</br></br></div>";
?><center><div class='main'><img src='/lig/cr.png' alt=''/> <b><font color='#90c090'>Награда за место в лиге</font> </b><img src='/lig/cr.png' alt=''/><br/><div class='separator'></div>Ваше место в лиге: <img src='/images/icon/2hit.png' alt=''/> <b><?=$user['league_place']?></b><br/><font color='blue'>Награда:</font> <img src='/images/icon/exp.png' alt='Опыт'/> <?=$oput?> <img src='/images/icon/silver.png' alt='Серебро'/> <?=$sera?><br/><?php



if($user['lig_priz']==1){


?><font color='grey'>До выдачи награды: <?=_time($user['lig_resp'] - time())?></font><?php



}

if(
$user['lig_priz']==0){
 
?><center><a href="?nag" class='btn'><span class='end'><span class='label'>Забрать Награду</a></span></span></center>
 
 <?php
 
}



?><center><ul>Награда выдается один раз в 3 часа<br/> Чем выше место, тем больше награда</ul></div></center><?php

echo '<div class='main'><div class='menuList'>
<a href='
/arena'><img src='/images/icon/arrow.png' alt=''/> Арена</a></li>
</div></div>'
;
require_once 
'./system/f.php';
?>
Онлайн: 3
Реклама