Файл: modules/arena_group/function.php
Строк: 521
<?PHP
# формировка и добавление ботов
function add_arena_group_bots($id_arena)
{
    # Подсчет пользователей участвующих в нападении
    $k_us = mysql_result(mysql_query("SELECT COUNT(*) FROM `group_arena_us` WHERE `arena`='".(int)$id_arena."'"),0);
    
    # Подсчет количества ботов
    if($k_us <= 10) $k_bot = $k_us + rand(1, 5);
    else
    if($k_us > 10 && $k_us <= 30) $k_bot = $k_us + rand(5, 15);
    else
    if($k_us > 30 && $k_us <= 60) $k_bot = $k_us + rand(9, 30);
    else
    if($k_us > 30 && $k_us <= 80) $k_bot = $k_us + rand(20, 60);
    else
    if($k_us > 80) $k_bot = $k_us + rand(45, 90);
    
    for ($x=0; $x++ < $k_bot;)
    {        
        $arr_bot=mysql_fetch_array(mysql_query("Select `id`, `max_life` from `bots` WHERE `type`='2' ORDER BY RAND()"));
        mysql_query("INSERT INTO `arena_group_bots` SET `arena`='".(int)$id_arena."', `life`='".$arr_bot['max_life']."', `id_bot`='".$arr_bot['id']."'");
    }
}
    # Босс наносит урон
    function kick_us_group_gl()
    {
        global $arr_arena, $user;
        
        $zashit_us = zashit_us($user['id']);
        $uron_bot = uron_bot($id_bot);
        $uron_end_us = (int)($arr_arena['boss_sila'] - $zashit_us); // Урон наносимый пользователю
        
        if($uron_end_us <= 0)
        {
            $uron_end_us = rand(1, 9);
        }
        
        if($uron_end_us) 
        {
            if($user['health'] - $uron_end_us <= 0) $health = 1; else $health = $user['health'] - $uron_end_us;
                    
            mysql_query ('UPDATE `user` SET `health`="'.$health.'" WHERE `id`="'.(int)$user['id'].'"');
            
            $mess = '<strong>'.$arr_arena['boss_name'].'</strong> наносит Вам урон <strong>'.$uron_end_us.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `us`='".$user['id']."', `privat`='".$user['id']."'");
            
            $mess = '<strong>'.$arr_arena['boss_name'].'</strong> наносит игроку '.login($user['id']).' урон <strong>'.$uron_end_us.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `us`='".$user['id']."', `no_privat`='".$user['id']."'");
        }
    }
    
    # Бот наносит урон
    function kick_us_group()
    {
        global $arr_arena, $bot_arr, $user;
        
        $id_bot = $bot_arr['id_bot'];
        
        $zashit_us = zashit_us($user['id']);
        $uron_bot = uron_bot($id_bot);
        $uron_end_us = (int)($uron_bot - $zashit_us); // Урон наносимый пользователю
        
        if($uron_end_us <= 0)
        {
            $uron_end_us = rand(1, 9);
        }
        
        if($uron_end_us && !mysql_result(mysql_query("SELECT `ezontrop` FROM `arena_group_bots` WHERE `id_bot`='".(int)$id_bot."'"),0)) 
        {
            if($user['health'] - $uron_end_us <= 0) $health = 1; else $health = $user['health'] - $uron_end_us;
                    
            mysql_query ('UPDATE `user` SET `health`="'.$health.'" WHERE `id`="'.(int)$user['id'].'"');
            
            $mess = '<strong>'.login_bot($id_bot).'</strong> наносит Вам урон <strong>'.$uron_end_us.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `us`='".$user['id']."'");
        }
    }
    
    # функция просчета выполнения умений
    function um_us_group($id, $um, $arena, $time_kick)
    {
        global $user, $bot_arr;
        
        $us = mysql_fetch_array(mysql_query("SELECT * FROM `bots` WHERE `id`='".(int)$id."'"));
        $um = mysql_fetch_array(mysql_query("SELECT * FROM `umenija` WHERE `id`='".(int)$um."'"));
        
        if(!$us['id'])
        {
            $mess = 'Ошибка в запросе! <br /> Вероятнее всего Вы самостоятельно  внесли данные в запрос!';
            mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".$id."', `us`='".$user['id']."'");
            
            return 'err';
        }
        else
        if(!mysql_result(mysql_query("SELECT COUNT(*) FROM `umenija_us` WHERE `us`='".(int)$user['id']."' AND `um`='".(int)$um['id']."'"),0))
        {    
            $mess = 'У Вас не активировано это умение!';
            mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".$id."', `us`='".$user['id']."'");
            
            return 'err';
        }
        else
        if(!mysql_result(mysql_query("SELECT `id` FROM `umenija_us` WHERE `time`<".time()." AND `us`='".(int)$user['id']."' AND `um`='".(int)$um['id']."'"),0))
        {    
            $mess = 'Умение еще не восстановилось!';
            mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".$id."', `us`='".$user['id']."'");
            
            return 'err';
        }
        else
        if(mysql_result(mysql_query("SELECT `mana` FROM `umenija` WHERE `id`='".(int)$um['id']."'"),0) > $user['mana'])
        {    
            $mess = 'Не достаточно маны для совершения этого заклинания!';
            mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".$id."', `us`='".$user['id']."'");
            
            return 'err';
        }
        else
        {
            # Эзонтропию проверяем
            if($bot_arr['ezontrop'])
            {
                mysql_query ("UPDATE `arena_group_bots` SET `time_up`=".(time()+$time_kick).", `ezontrop` = `ezontrop`-1 WHERE `id`='".(int)$bot_arr['id']."'");
            }
            else
            {
                mysql_query ("UPDATE `arena_group_bots` SET `time_up`=".(time()+$time_kick)." WHERE `id`='".(int)$bot_arr['id']."'");
            }
            
            # Снимаем ману
            mysql_query ("UPDATE `user` SET `mana`=`mana`-".mysql_result(mysql_query("SELECT `mana` FROM `umenija` WHERE `id`='".(int)$um['id']."'"),0)." WHERE  `id`='".(int)$user['id']."'");
            
            // Лечение
            if($um['type'] == 1)
            {
                $uron = mysql_result(mysql_query("SELECT `uron` FROM `umenija` WHERE `id`='".$um['id']."' LIMIT 1"),0);
                
                if($user['health'] + $uron >= $user['max_health']) $health = $user['max_health']; else $health = (int)abs($user['health'] + $uron);
                
                # Исцеляем играка
                mysql_query ('UPDATE `user` SET `health`="'.$health.'" WHERE  `id`="'.(int)$user['id'].'"');
                
                # Обновляем влемя активации умения
                mysql_query ('UPDATE `umenija_us` SET `time`="'.(time()+$um['time']).'" WHERE `um`="'.(int)$um['id'].'"');
                
                # Пишем оповещение в чат
                $mess = 'Вы исцелили себя применив заклинание <strong>'.$um['name'].'</strong>';
                mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".$id."', `us`='".$user['id']."'");
            }
            else
            // Урон
            if($um['type'] == 2)
            {
                $uron = mysql_result(mysql_query("SELECT `uron` FROM `umenija` WHERE `id`='".$um['id']."' LIMIT 1"),0);
                
                $zashit = zashit_us($id);
                
                $uron_end = $uron - $zashit;
                
                if($uron_end <= 0)
                {
                    $uron_end = rand(1, 9);
                }
                
                
                if($bot_arr['life'] - $uron_end < 0) $health = 1; else $health = $bot_arr['life'] - $uron_end;
                mysql_query ('UPDATE `arena_group_bots` SET `life`="'.$health.'" WHERE `id`="'.(int)$bot_arr['id'].'"');
                
                $mess = 'Вы наносите урон ('.$uron_end.' ед.) монстру по имени <strong>'.login_bot($id).'</strong> применив заклинание <strong>'.$um['name'].'</strong>';
                mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".(int)$bot_arr['id_bot']."', `us`='".$user['id']."'");
            }
            else
            // Эзонтропия
            if($um['type'] == 3)
            {
                $uron = mysql_result(mysql_query("SELECT `uron` FROM `umenija` WHERE `id`='".$um['id']."'"),0);
                
                if(mysql_result(mysql_query("SELECT `ezontrop` FROM `arena_group_bots` WHERE `id`='".(int)$bot_arr['id']."'"),0))
                {
                    $mess = '<strong>'.login_bot($id).'</strong> уже оглушен, по этому на него не действуют заклинания типа <strong>"Эзонтропия"</strong>';
                    mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".(int)$bot_arr['id_bot']."', `us`='".$user['id']."'");
                    
                    return 'err';
                }
                else
                {
                    mysql_query ("UPDATE `arena_mess_group` SET `ezontrop`='".$uron."', `hod`='".$user['id']."' WHERE `id`='".(int)$bot_arr['id']."'");
                    
                    $mess = 'Монстр <strong>'.login_bot($id).'</strong> оглушен на <strong>'.$uron.' ход.</strong>';
                    mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arena."', `bot`='".(int)$bot_arr['id_bot']."', `us`='".$user['id']."'");
                }
            }
        }
    }
    
    # функция просчета выполнения умений в сражении с боссом
    function um_us_group_gl($um)
    {
        global $user, $arr_arena;
        $arena = $arr_arena['id'];
        $um = mysql_fetch_array(mysql_query("SELECT * FROM `umenija` WHERE `id`='".(int)$um."'"));
        if(!mysql_result(mysql_query("SELECT COUNT(*) FROM `umenija_us` WHERE `us`='".(int)$user['id']."' AND `um`='".(int)$um['id']."'"),0))
        {    
            $mess = 'У Вас не активировано это умение!';
            mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arena."', `privat`='".$user['id']."', `us`='".$user['id']."'");
            
            return 'err';
        }
        else
        if(!mysql_result(mysql_query("SELECT `id` FROM `umenija_us` WHERE `time`<".time()." AND `us`='".(int)$user['id']."' AND `um`='".(int)$um['id']."'"),0))
        {    
            $mess = 'Умение еще не восстановилось!';
            mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arena."', `privat`='".$user['id']."', `us`='".$user['id']."'");
            
            return 'err';
        }
        else
        if(mysql_result(mysql_query("SELECT `mana` FROM `umenija` WHERE `id`='".(int)$um['id']."'"),0) > $user['mana'])
        {    
            $mess = 'Не достаточно маны для совершения этого заклинания!';
            mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arena."', `privat`='".$user['id']."', `us`='".$user['id']."'");
            
            return 'err';
        }
        else
        {
            # Снимаем ману
            mysql_query ("UPDATE `user` SET `mana`=`mana`-".mysql_result(mysql_query("SELECT `mana` FROM `umenija` WHERE `id`='".(int)$um['id']."'"),0)." WHERE  `id`='".(int)$user['id']."'");
            
            // Лечение
            if($um['type'] == 1)
            {
                if($user['health'] + $um['uron'] >= $user['max_health']) $health = $user['max_health']; 
                else 
                    $health = $user['health'] + $um['uron'];
                
                # Исцеляем игрока
                mysql_query ('UPDATE `user` SET `health`="'.$health.'" WHERE `id`="'.(int)$user['id'].'"');
                
                # Обновляем влемя активации умения
                mysql_query ('UPDATE `umenija_us` SET `time`="'.(time()+$um['time']).'" WHERE `um`="'.(int)$um['id'].'"');
                
                # Пишем оповещение в чат
                $mess = 'Вы исцелили себя применив заклинание <strong>'.$um['name'].'</strong>';
                mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arena."', `privat`='".$user['id']."', `us`='".$user['id']."'");
                # Пишем оповещение в чат
                $mess = ''.$user['nick'].' исцелил себя применив заклинание <strong>'.$um['name'].'</strong>';
                mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arena."', `no_privat`='".$user['id']."', `us`='".$user['id']."'");
            }
            else
            // Урон
            if($um['type'] == 2)
            {
                $uron_end = $um['uron'] - $arr_arena['boss_zahhit'];
                
                if($uron_end <= 0)
                {
                    $uron_end = rand(1, 9);
                }
                
                
                if($arr_arena['boss_life'] - $uron_end < 0) $health = 1; else $health = $arr_arena['boss_life'] - $uron_end;
                mysql_query ('UPDATE `arena_group` SET `boss_life`="'.$health.'" WHERE `id`="'.(int)$arr_arena['id'].'"');
                
                # Пишем оповещение в чат
                $mess = 'Вы наносите урон ('.$uron_end.' ед.) монстру <strong>'.$arr_arena['boss_name'].'</strong> применив заклинание <strong>'.$um['name'].'</strong>';
                mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `privat`='".$user['id']."', `us`='".$user['id']."'");
                # Пишем оповещение в чат
                $mess = ''.$user['nick'].' наносит урон ('.$uron_end.' ед.) монстру <strong>'.$arr_arena['boss_name'].'</strong> применив заклинание <strong>'.$um['name'].'</strong>';
                mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `no_privat`='".$user['id']."', `us`='".$user['id']."'");
            
            }
            else
            // Эзонтропия
            if($um['type'] == 3)
            {
                # Пишем оповещение в чат
                $mess = '<strong>'.$user['nick'].'</strong>,  <strong>'.$arr_arena['boss_name'].'</strong> имеет устойчивость к эзонтропии!';
                mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `privat`='".$user['id']."', `us`='".$user['id']."'");
            }
        }
    }
    
    #функция просчета конечного урона от 1 удара ( Главарь)
    function uron_end_gl($ruka, $um)
    {
        global $arr_arena, $user;
        
        # Выбираем случайного пользователя которому наносим урон
        $us_at_id = mysql_result(mysql_query("SELECT `us` FROM `arena_group_us` WHERE `arena` = '".(int)$arr_arena."' ORDER BY RAND() LIMIT 1"),0);
        $us_at = mysql_fetch_array(mysql_query("Select * from `user` WHERE id='".(int)$us_at_id."'"));
        
        $zashit_us = zashit_us($us_at['id']);
        $uron_us = uron_us($user['id'], $ruka);
        
        $uron_end_us = (int)($arr_arena['boss_sila'] - $zashit_us); // Урон наносимый пользователю
        $uron_end_bot = (int)($uron_us - $arr_arena['boss_zahhit']); // Урон наносимый боту
        
        /*~~~~~~~*/
        if($uron_end_bot <= 0)
        {
            $uron_end_bot = rand(1, 9);
        }
        
        if($uron_end_bot && !$um) 
        {
            if($arr_arena['boss_life'] - $uron_end_bot < 0) $health = 1; else $health = $arr_arena['boss_life'] - $uron_end_bot;
                    
            mysql_query ('UPDATE `arena_group` SET `boss_life`="'.$health.'" WHERE `id`="'.(int)$arr_arena['id'].'"');
            
            $mess = 'Вы нанесли <strong>'.$arr_arena['boss_name'].'</strong> урон <strong>'.$uron_end_bot.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `privat`='".$user['id']."'");
        
            $mess = '<strong>'.$user['nick'].'</strong> наносит <strong>'.$arr_arena['boss_name'].'</strong> урон <strong>'.$uron_end_bot.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess_group_gl` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `no_privat`='".$user['id']."'");
        
        
        }
        
        /*~~~~~~~*/
        if($uron_end_us <= 0)
        {
            $uron_end_us = rand(1, 9);
        }
        
        if($uron_end_us) 
        {
            if($us_at['health'] - $uron_end_us < 0) $health = 1; else $health = $us_at['health'] - $uron_end_us;
                    
            mysql_query ('UPDATE `user` SET `health`="'.$health.'" WHERE `id`="'.(int)$us_at['id'].'"');
            
            $mess = '<strong>'.$arr_arena['boss_name'].'</strong> наносит Вам урон <strong>'.$uron_end_us.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `privat`='".$us_at['id']."'");
            
            $mess = '<strong>'.$arr_arena['boss_name'].'</strong> наносит игроку <strong>'.$us_at['nick'].'</strong> урон <strong>'.$uron_end_us.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `no_privat`='".$us_at['id']."'");
        }
    }
    
    #функция просчета конечного урона от 1 удара (бот в групповом сражении)
    function uron_end_bot_group($ruka, $time_kick)
    {
        global $arr_arena, $bot_arr, $user;
        
        # Эзонтропию проверяем
        if($bot_arr['ezontrop'])
        {
            mysql_query ("UPDATE `arena_group_bots` SET `time_up`=".(time()+$time_kick).", `ezontrop` = `ezontrop`-1 WHERE `id`='".(int)$bot_arr['id']."'");
        }
        else
        {
            mysql_query ("UPDATE `arena_group_bots` SET `time_up`=".(time()+$time_kick)." WHERE `id`='".(int)$bot_arr['id']."'");
        }
        
        $id_bot = $bot_arr['id_bot'];
        $zashit_bot = zashit_bot($id_bot);
        $uron_us = uron_us($user['id'], $ruka);
        $uron_end_bot = (int)($uron_us - $zashit_bot); // Урон наносимый боту
        
        if($uron_end_bot <= 0)
        {
            $uron_end_bot = rand(1, 9);
        }
        
        if($uron_end_bot) 
        {
            $health = $bot_arr['life'] - $uron_end_bot;
                    
            mysql_query ('UPDATE `arena_group_bots` SET `life`="'.$health.'" WHERE `id`="'.(int)$bot_arr['id'].'"');
            
            $mess = 'Вы нанесли <strong>'.login_bot($id_bot).'</strong> урон <strong>'.$uron_end_bot.' ед.</strong>';
            mysql_query("INSERT INTO `arena_mess_group` SET `mess`='".$mess."', `arena`='".(int)$arr_arena['id']."', `us`='".$user['id']."'");
        }
    }
    
    # Удаление пользователей с похода которые не нанесли удар за отведенное время
    function del_us_for_late()
    {
        global $arr_arena;
        
        $print = mysql_query("select `us_battle` from `arena_group_bots` WHERE `time_up` < ".time()." AND `arena`='".$arr_arena['id']."'");
        while($arr = mysql_fetch_array($print)) 
        {
            mysql_query ("DELETE FROM `arena_group_us` WHERE `us` = '".$arr['us_battle']."' AND `arena`='".$arr_arena['id']."'");
            # Освобождаем бота от соперника
            mysql_query ("UPDATE `arena_group_bots` SET `us_battle`='0' WHERE `us_battle` = '".$arr['us_battle']."' AND `arena`='".$arr_arena['id']."'");
            
            $content = 'Вы не нанесли ответный удар за отведенное время! В связи с чем потерпели поражение! <br /> На этом для Вас путешествие окончено!';
            mail_go($arr['us_battle'], $content, 1);
        }
        
        # Приписываем поражение юзерам
        if($arr_arena['level'] == 3 && mysql_result(mysql_query("SELECT COUNT(*) FROM `arena_group` WHERE `time_up` < ".time()." AND `id`='".$arr_arena['id']."'"),0))
        {
            mysql_query ("UPDATE `arena_group` SET `win`='bot' WHERE `id`='".$arr_arena['id']."'");
        }
        
        /*
        # Удаляем если нет больше живых воинов
        if($arr_arena['level'] && !mysql_result(mysql_query("SELECT COUNT(*) FROM `arena_group_us` WHERE `arena`='".$arr_arena['id']."'"),0))
        {
            mysql_query ("TRUNCATE `arena_group`");
            mysql_query ("TRUNCATE `arena_group_bots`");
            mysql_query ("TRUNCATE `arena_group_us`");
            mysql_query ("TRUNCATE `arena_mess_group`");
            mysql_query ("TRUNCATE `arena_mess_group_gl`");
        }
        */
    }
?>