Файл: wenr.online/app/clan/battle.php
Строк: 149
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if (!$user->isAuth() or $user->get()->clan == 0) {
    redirect('/');
    exit;
}
function count_clan($clan){
        global $db;
    return $db->query('select user_id from users where clan = '.$clan)->rowCount();
    }
            
            $clan = $db->prepare('select * from clan where id = ?');
            $clan -> execute([$user->get()->clan]);
            $clan = $clan -> fetch(PDO :: FETCH_OBJ);
            
            
            
            
    $clanwar = $db->prepare('select * from clanwar where clan1 = ? and win = ? or clan2 = ? and win = ?');
    $clanwar ->execute([$clan->id,0,$clan->id,0]);
    $clanwar = $clanwar -> fetch(PDO :: FETCH_OBJ);
    
            if(!isset($clanwar->id)){
                redirect('/clan');
                exit;
            }
            
            $clan_id = $clanwar->clan1;
            
            if($clan_id == $clan->id) $clan_id = $clanwar->clan2;
            
            
            $clantwo = $db->prepare('select * from clan where id = ?');
            $clantwo -> execute([$clan_id]);
            $clantwo = $clantwo -> fetch(PDO :: FETCH_OBJ);
            
        
            
          
          
            if($clanwar->war == 1){
                
                
                $us = $db->prepare('select * from users where clan = ? order by rand() limit 1');
                $us -> execute([$clantwo->id]);
                $us = $us -> fetch(PDO :: FETCH_OBJ);
            
            
            
              if(isset($_GET['attack'])){
        
        if($user->get()->hp < 2){
            Notif :: error('Слишком мало здоровья для нападения','/clan/battle');
            exit;
        }
        
        
        $user_id = Clean :: int($_GET['attack']);
        if($user->get($user_id)->clan != $clantwo -> id){
            redirect('/clan/battle');
            exit;
        }
        
        
        
        
        $magic = $db->prepare('select * from `bag` where `id` = ? and `user` = ?');
        $magic -> execute([Clean :: int($_GET['rolls']),$user->get()->user_id]);
        $magic = $magic -> fetch(PDO :: FETCH_OBJ);
        
                $dop_uron = 0;
                
        $fight_skill = $user->get()->one_handed+$user->get()->two_handed+$user->get()->bow+$user->get()->crossbow;
                
        if($figth_skill > 50)    $dop_uron .= rand(1,$fight_skill);
        $dop_uron .= rand(0,clan_info($user->get()->clan)->attack*2);
        
        $dop_uron2 = 0;
                
        $fight_skill2 = $user->get($user_id)->one_handed+$user->get($user_id)->two_handed+$user->get($user_id)->bow+$user->get($user_id)->crossbow;
                
        if($figth_skill2 > 50)    $dop_uron2 .= rand(1,$fight_skill);
        $dop_uron2 .= rand(0,clan_info($user->get($user_id)->clan)->lucky*2);
        
        
                
        if($magic->mana > $user->get()->mana and isset($magic->id)){
            Notif :: error('Нехватает маны для использования свитка','/clan/battle');
            exit;
        }
        
        if(isset($magic->force)) $dop_uron .= $magic->force;
        
        
        $uron = ['user' => $user->get()->force+$user->get()->dex+$dop_uron, 
                 'mob'  =>  $user->get($user_id)->force+$user->get($user_id)->dex+$dop_uron2];
       
       if($uron['mob'] >= $uron['user']){
           
           $sql = $db->prepare('update clan set uron = ? where id = ?');
           $sql -> execute([$clantwo->uron+$uron['mob'],$clantwo->id]);
           
           $sql = $db->prepare('update clan set uron = ? where id = ?');
           $sql -> execute([$clan->uron+$uron['user'],$clan->id]);
           
           
           $up = $db->prepare('update users set hp = ? where user_id = ?');
           $up -> execute([$user->get()->hp-$uron['mob'],$user->get()->user_id]);
           
           $db->query('update users set hp = 0 where hp < 0 and user_id = '.$user->get()->user_id);
           
           Notif :: message('Вы проиграли бой с '.$user->get($user_id)->nick.' Ваш урон: '.$uron['user'].', урон противника: '.$uron['mob'],'/clan/battle');
           exit;
           
       }
       else {
           
           $sql = $db->prepare('update clan set uron = ? where id = ?');
           $sql -> execute([$clantwo->uron+$uron['mob'],$clantwo->id]);
           
           $sql = $db->prepare('update clan set uron = ? where id = ?');
           $sql -> execute([$clan->uron+$uron['user'],$clan->id]);
           
           $up = $db->prepare('update users set hp = ?, `exp` = ? where user_id = ?');
           $up -> execute([$user->get()->hp-$uron['mob'],$user->get()->exp+rand(1,$user->get()->lvl),$user->get()->user_id]);
           
           $db->query('update users set hp = 0 where hp < 0 and user_id = '.$user->get()->user_id);
           
           Notif :: message('Вы выиграли бой с '.$user->get($user_id)->nick.' Ваш урон: '.$uron['user'].', урон противника: '.$uron['mob'],'/clan/battle');
           exit;
           
           
       }
       
      
    }
            
            
            
            
            echo $template->render('clan.battle', ['clan'=>$clan,'clantwo'=>$clantwo,'clanwar'=>$clanwar,'us'=>$us]);
            
            }
            
            
            if($clanwar->war == 0){
            
            echo $template->render('clan.battle_info', ['clan'=>$clan,'clantwo'=>$clantwo,'clanwar'=>$clanwar]);
            
            }