Вход Регистрация
Файл: element_function/element_function_battle.php
Строк: 599
<?php

    
function RandEquipMission($equip) {
             if (
$equip <= 1) if (rand(0,100) < 30) return 1; else return 0
        else if (
$equip <= 2) {
            if (
rand(0,100) < 30) return 2; else return rand(0,1);
        } else if (
$equip <= 3) {
            
$rand rand(0,100);
                 if (
$rand 3) return 3;
            else if (
$rand 30) return 2;
            else if (
$rand 50) return 1;
            else return 
0;
        } else if (
$equip <= 4) {
            
$rand rand(0,100);
                 if (
$rand 1) return 4;
            else if (
$rand 4) return 3;
            else if (
$rand 30) return 2;
            else if (
$rand 50) return 1;
            else return 
0;
        }  else if (
$equip <= 5) {
            
$rand rand(0,200);
                 if (
$rand == 0) return 5;
            else if (
$rand <  3) return 4;
            else if (
$rand 20) return 3;
            else if (
$rand 90) return 3;
            else if (
$rand 160) return 2;
            else return 
0;
        }
        
    }

    function 
KeyJournalMassiv($time) {
        
$tt explode(' 'microtime());
        
$tt[1] = $tt[1] - $time;
        
$tt1 explode('.'$tt[0]);
        return 
$tt[1].$tt1[1];
    }
    
    function 
SetAbilitiesOgon($ogon$race) {
            if (
$ogon == 0$return = array('add_uron' => 10'active' => 10'refresh' => 25);
       else if (
$ogon == 1$return = array('add_uron' => 15'active' => 12'refresh' => 23);
       else if (
$ogon == 2$return = array('add_uron' => 25'active' => 14'refresh' => 21);
       else if (
$ogon == 3$return = array('add_uron' => 40'active' => 16'refresh' => 19);
       else if (
$ogon == 4$return = array('add_uron' => 60'active' => 18'refresh' => 17);
       else if (
$ogon == 5$return = array('add_uron' => 85'active' => 20'refresh' => 15);
       if (
$race == 1$return['add_uron'] = $return['add_uron'] + 10;
       return 
$return;
    }
    
    function 
SetAbilitiesVoda($voda$race) {
            if (
$voda == 0$return = array('add_uron' => 60'active' => 10'refresh' => 25);
       else if (
$voda == 1$return = array('add_uron' => 60'active' => 12'refresh' => 23);
       else if (
$voda == 2$return = array('add_uron' => 60'active' => 14'refresh' => 21);
       else if (
$voda == 3$return = array('add_uron' => 60'active' => 16'refresh' => 19);
       else if (
$voda == 4$return = array('add_uron' => 60'active' => 18'refresh' => 17);
       else if (
$voda == 5$return = array('add_uron' => 60'active' => 20'refresh' => 15);
       if (
$race == 2$return['add_uron'] = $return['add_uron'] + 10;
       return 
$return;
    }

    function 
SetAbilitiesVosdyh($vosdyh$race) {
            if (
$vosdyh == 0$return = array('chanse' =>  3'add_hp' =>  5'refresh' => 25);
       else if (
$vosdyh == 1$return = array('chanse' =>  4'add_hp' =>  7'refresh' => 23);
       else if (
$vosdyh == 2$return = array('chanse' =>  5'add_hp' =>  9'refresh' => 21);
       else if (
$vosdyh == 3$return = array('chanse' =>  7'add_hp' => 11'refresh' => 19);
       else if (
$vosdyh == 4$return = array('chanse' => 11'add_hp' => 13'refresh' => 17);
       else if (
$vosdyh == 5$return = array('chanse' => 15'add_hp' => 20'refresh' => 15);
       if (
$race == 3$return['add_hp'] = $return['add_hp'] + 10;
       return 
$return;
    }
    
    function 
SetAbilitiesZemlya($zemlya$race) {
            if (
$zemlya == 0$return = array('minus_uron' =>  3'active' => 10'refresh' => 25);
       else if (
$zemlya == 1$return = array('minus_uron' =>  8'active' => 12'refresh' => 23);
       else if (
$zemlya == 2$return = array('minus_uron' => 14'active' => 14'refresh' => 21);
       else if (
$zemlya == 3$return = array('minus_uron' => 25'active' => 16'refresh' => 19);
       else if (
$zemlya == 4$return = array('minus_uron' => 40'active' => 18'refresh' => 17);
       else if (
$zemlya == 5$return = array('minus_uron' => 60'active' => 20'refresh' => 15);
       if (
$race == 4$return['minus_uron'] = $return['minus_uron'] + 10;
       return 
$return;
    }
    
    function 
ResetAbilitiesUser($user) {
        
deletecache('element_user_id'.$user.'_abilities_vozdyh');
        
deletecache('element_user_id'.$user.'_abilities_zemlya');
        
deletecache('element_user_id'.$user.'_abilities_ogon');
        
deletecache('element_user_id'.$user.'_abilities_voda');
    }
    
    
// Умение Ловушка ветра
    
function AbilitiesVozdyh($quality$race$activate$user_id) {
        
$cache readcache('element_user_id'.$user_id.'_abilities_vozdyh');
        
$abilit SetAbilitiesVosdyh($quality$race);
        
$time time();
        
        if (
$activate AND $cache <= $time) {
            
$cache $time $abilit['refresh'];
            
writecache('element_user_id'.$user_id.'_abilities_vozdyh'$cache);
            if (
rand(0100) <= $abilit['chanse']) {
                return array(
'active' => true'add_hp' => $abilit['add_hp'], 'seconds' => ($cache $time));
            } else return array(
'active' => true'add_hp' => 0'seconds' => ($cache $time));
        
        } else {
            if (
$cache >= $time) { $seconds $cache $time$act true; } else { $seconds 0$act false; }
            return array(
'active' => $act'add_hp' => 0'seconds' => $seconds);
        }
    }
    
    
// Умение Земляной щит
    
function AbilitiesZemlya($quality$race$activate$user_id) {
        
$cache readcache('element_user_id'.$user_id.'_abilities_zemlya');
        
$abilit SetAbilitiesZemlya($quality$race);
        
$update false;
        
$time time();
        
$add_time $abilit['active'] + $abilit['refresh'];
        
            
// Если есть кэш с умением, продолжаем, иначе создаем
            
if ($cache) {
                
                
// Если нужно активировать умение, добавляем время
                
if ($activate) {
                    
                    
// Если умение не активно, активируем
                    
if ($cache <= $time) { 
                        
$cache $time $add_time;
                        
$update true;
                    }
                }    
                
            } else {
                
$cache $time;
                if (
$activate$cache $time $add_time;
                
$update true;
            }
            
            if (
$updatewritecache('element_user_id'.$user_id.'_abilities_zemlya'$cache);
            
            if (
$cache $time) {
                
$other_time $cache $time;        // Отнимаем время восстановления
                    
                    
if ($other_time >= ($add_time $abilit['active'])) {
                        return array(
'add_procent' => $abilit['minus_uron'], 'activate' => true'seconds' => ($other_time - ($add_time $abilit['active'])));
                    } else return array(
'add_procent' => 0'activate' => true'seconds' => $other_time);
                    
            } else return array(
'add_procent' => 0'activate' => false);
    }
    
    
// Умение Огненная Сила
    
function AbilitiesOgon($quality$race$activate$user_id) {
        
$cache readcache('element_user_id'.$user_id.'_abilities_ogon');
        
$abilit SetAbilitiesOgon($quality$race);
        
$update false;
        
$time time();
        
$add_time $abilit['active'] + $abilit['refresh'];
        
            
// Если есть кэш с умением, продолжаем, иначе создаем
            
if ($cache) {
                
                
// Если нужно активировать умение, добавляем время
                
if ($activate) {
                    
                    
// Если умение не активно, активируем
                    
if ($cache <= $time) { 
                        
$cache $time $add_time;
                        
$update true;
                    }
                }    
                
            } else {
                
$cache $time;
                if (
$activate$cache $time $add_time;
                
$update true;
            }
            
            if (
$updatewritecache('element_user_id'.$user_id.'_abilities_ogon'$cache);
            
            if (
$cache $time) {
                
$other_time $cache $time;        // Отнимаем время восстановления
                    
                    
if ($other_time >= ($add_time $abilit['active'])) {
                        return array(
'add_procent' => $abilit['add_uron'], 'activate' => true'seconds' => ($other_time - ($add_time $abilit['active'])));
                    } else return array(
'add_procent' => 0'activate' => true'seconds' => $other_time);
                    
            } else return array(
'add_procent' => 0'activate' => false);
    }

    
// Умение Водяной Крит
    
function AbilitiesVoda($quality$race$activate$user_id) {
        
$cache readcache('element_user_id'.$user_id.'_abilities_voda');
        
$abilit SetAbilitiesVoda($quality$race);
        
$update false;
        
$time time();
        
$add_time $abilit['active'] + $abilit['refresh'];
        
            
// Если есть кэш с умением, продолжаем, иначе создаем
            
if ($cache) {
                
                
// Если нужно активировать умение, добавляем время
                
if ($activate) {
                    
                    
// Если умение не активно, активируем
                    
if ($cache <= $time) { 
                        
$cache $time $add_time;
                        
$update true;
                    }
                }    
                
            } else {
                
$cache $time;
                if (
$activate$cache $time $add_time;
                
$update true;
            }
            
            if (
$updatewritecache('element_user_id'.$user_id.'_abilities_voda'$cache);
            
            if (
$cache $time) {
                
$other_time $cache $time;        // Отнимаем время восстановления
                    
                    
if ($other_time >= ($add_time $abilit['active'])) {
                        return array(
'add_procent' => $abilit['add_uron'], 'activate' => true'seconds' => ($other_time - ($add_time $abilit['active'])));
                    } else return array(
'add_procent' => 0'activate' => true'seconds' => $other_time);
                    
            } else return array(
'add_procent' => 0'activate' => false);
    }
    
    function 
EchoAbiliteBattle($ogon$voda$vozdyh$zemlya$target$width_class$width_image$training$url) {
        echo 
'<div class="nfl p5 mb5 cntr small mlra">';
            
            
// Тергейт. Цель
            
if ($target) {
            echo 
'<span class="inbl '.$width_class.' mt5 va_t">
                  <a class="atask" href="'
.$url.'?go=attaka&target&action='.rand(10000009999999).'">
                  <span class="inbl prel">
                  <img width="'
.$width_image.'" height="'.$width_image.'" src="/images/equipment/epic/weapon.jpg" alt=""/>
                  </span><br/>
                  <span class="small lngreen mt3">Цель</span>
                  </a>
                  </span>'
;
            }
            
            
// Бить врага
            
echo '<span class="inbl '.$width_class.' mt5 va_t">
                  <a class="atask" href="'
.$url.'?go=attaka&action='.rand(10000009999999).'">
                  <span class="inbl prel">
                  '
.(($training == 1) ? '<img width="17" height="25" class="g-arrow" src="/images/green-arrow.png"/>' '').'
                  <img width="'
.$width_image.'" height="'.$width_image.'" src="/images/equipment/epic/weapon.jpg" alt=""/>
                  </span><br/>
                  <span class="small lngreen mt3">Бить</span>
                  </a>
                  </span>'
;
                
            
// Огненная сила
            
$add_uron = ($ogon['add_procent'] > 0) ? true false;
            echo 
'<span class="inbl '.$width_class.' mt5 va_t">
                  <a class="atask" href="'
.$url.'?go=attaka&id=1&action='.rand(10000009999999).'">
                  <span class="inbl prel">
                  '
.((!$ogon['activate'] AND !$add_uron AND $training == 2) ? '<img width="17" height="25" class="g-arrow" src="/images/green-arrow.png"/>' '').'
                  <img width="'
.$width_image.'" height="'.$width_image.'" src="/images/fire.png" alt=""/>
                  </span><br/>
                  '
.(($ogon['activate']) ? (($add_uron) ? '<span class="small lngreen mt3">'.$ogon['seconds'].' с.</span>' '<span class="small ccc mt3">'.$ogon['seconds'].' с.</span>') : '<span class="small lngreen mt3">Гот.</span>').'
                  </a>
                  </span>'
;
            
            
// Водяной крит
            
$add_uron = ($voda['add_procent'] > 0) ? true false;
            echo 
'<span class="inbl '.$width_class.' mt5 va_t">
                  <a class="atask" href="'
.$url.'?go=attaka&id=2&action='.rand(10000009999999).'">
                  <span class="inbl prel">
                  '
.((!$voda['activate'] AND !$add_uron AND $training == 3) ? '<img width="17" height="25" class="g-arrow" src="/images/green-arrow.png"/>' '').'
                  <img width="'
.$width_image.'" height="'.$width_image.'" src="/images/water.png" alt=""/>
                  </span><br/>
                  '
.(($voda['activate']) ? (($add_uron) ? '<span class="small lngreen mt3">'.$voda['seconds'].' с.</span>' '<span class="small ccc mt3">'.$voda['seconds'].' с.</span>') : '<span class="small lngreen mt3">Гот.</span>').'
                  </a>
                  </span>'
;
        
            
// Ловушка Ветра
            
echo '<span class="inbl '.$width_class.' mt5 va_t">
                  <a class="atask" href="'
.$url.'?go=attaka&id=3&action='.rand(10000009999999).'">
                  <span class="inbl prel">
                  '
.((!$vozdyh['active'] AND $training == 4) ? '<img width="17" height="25" class="g-arrow" src="/images/green-arrow.png"/>' '').'
                  <img width="'
.$width_image.'" height="'.$width_image.'" src="/images/air.png" alt=""/>
                  </span><br/>
                  '
.(($vozdyh['active']) ? '<span class="small ccc mt3">'.$vozdyh['seconds'].' с.</span>' '<span class="small lngreen mt3">Гот.</span>').'
                  </a>
                  </span>'
;
        
            
// Земляной щит
            
$add_uron = ($zemlya['add_procent'] > 0) ? true false;
            echo 
'<span class="inbl '.$width_class.' mt5 va_t">
                  <a class="atask" href="'
.$url.'?go=attaka&id=4&action='.rand(10000009999999).'">
                  <span class="inbl prel">
                  '
.((!$zemlya['activate'] AND !$add_uron AND $training == 5) ? '<img width="17" height="25" class="g-arrow" src="/images/green-arrow.png"/>' '').'
                  <img width="'
.$width_image.'" height="'.$width_image.'" src="/images/ground.png" alt=""/>
                  </span><br/>
                  '
.(($zemlya['activate']) ? (($add_uron) ? '<span class="small lngreen mt3">'.$zemlya['seconds'].' с.</span>' '<span class="small ccc mt3">'.$zemlya['seconds'].' с.</span>') : '<span class="small lngreen mt3">Гот.</span>').'
                  </a>
                  </span>'
;
        
        echo 
'</div>';
    }
     
//EchoAbiliteBattle(AbilitiesOgon(1, $user['lost_race'], true, $user['lost_id']), AbilitiesVoda(1, $user['lost_race'], true, $user['lost_id']), AbilitiesVozdyh(1, $user['lost_race'], true, $user['lost_id']), AbilitiesZemlya(5, 4, true, $user['lost_id']), true, 'w15', 35, 3, '/mission');
    
    // Функция выводит мои и врага параметры в бою
    
function EchoTableUsersBattle($my_info$bot_info) {
        echo 
'<table><td class="mr5">'.(($my_info['user_race'] > 0) ? '<img width="50" height="50" src="/images/user_ava_'.$my_info['user_race'].'.png">' '<img width="50" height="50" src="/images/icons/empty.png">').'</td>';
        echo 
'<td class="small w90 white ml5" valign="top">';
        echo 
'<span class="bl ml5 mb5 prg-bar"><span class="bl fl prg-blue" style="width:'.ceil(($my_info['user_hp'] / $my_info['user_other_hp']) * 100).'%">&nbsp;</span>';
        echo 
'<span class="bl fl prg-red" style="width:'.(($my_info['user_uron'] > 0) ? (int)(($my_info['user_uron'] / $my_info['user_other_hp']) * 100) : 0).'%">&nbsp;</span></span>';
        echo 
'<div class="fr bold">'.(($my_info['user_add_hp'] > 0) ? ' <span class="lngreen">+'.$my_info['user_add_hp'].'</span> ' '').''.(($my_info['user_uron'] > 0) ? ' <span class="red">-'.$my_info['user_uron'].'</span>' '').'</div>';
        echo 
'<span class="ml5 yellow1 bold">'.ikonka_user($my_info['user_race'], 'online').' '.$my_info['user_name'].', <img src="/images/icons/heatpoints.png"> '.$my_info['user_hp'].'</span>';
        echo 
'</td></table>';
        
        echo 
'<table><td class="mr5">'.(($bot_info['user_race'] > 0) ? '<img width="50" height="50" src="/images/user_ava_'.$bot_info['user_race'].'.png">' '<img width="50" height="50" src="/images/icons/empty.png">').'</td>';
        echo 
'<td class="small w90 ml5" valign="top">';
        echo 
'<span class="bl ml5 mb5 prg-bar"><span class="bl fl prg-blue" style="width:'.ceil(($bot_info['user_hp'] / $bot_info['user_other_hp']) * 100).'%">&nbsp;</span>';
        echo 
'<span class="bl fl prg-red" style="width:'.(($bot_info['user_uron'] > 0) ? (int)(($bot_info['user_uron'] / $bot_info['user_other_hp']) * 100) : 0).'%">&nbsp;</span></span>';
        echo 
'<div class="fr bold">'.(($bot_info['user_add_hp'] > 0) ? ' <span class="lngreen">+'.$bot_info['user_uron'].'</span> ' '').''.(($bot_info['user_uron'] > 0) ? ' <span class="red">-'.$bot_info['user_uron'].'</span>' '').'</div>';
        echo 
'<span class="ml5 yellow1 bold">'.(($bot_info['user_race'] > 0) ? ikonka_user($bot_info['user_race'], 'online') : '<img src="/images/icons/arena.gif">').' '.$bot_info['user_name'].', <img src="/images/icons/heatpoints.png"> '.$bot_info['user_hp'].'</span>';
        echo 
'</td></table>';
    }
    
    
    
    
// Генерируем максимальное здоровье в бою
    
function GenerationMaxHeatpoints($heatpoints) {
        if (
$heatpoints 0$heatpoints $heatpoints 2; else $heatpoints 50;
        return 
$heatpoints;
    }
    
    function 
GenerationProtection($protection) {
        
// Если защита больше 5000 (70%) то за каждые 500 защиты сверх 5000 добавляем 1% 
        
if ($protection 5000) {
            
$add_pr = (int)(($protection 5000) / 500);
            if (
$add_pr 0$add_pr $add_pr 1; else $add_pr 0;
            
$procent round((5000 7143) * 1002);
            
$procent $procent $add_pr;
        } else 
$procent round(($protection 7143) * 1002);
        return 
$procent;
    }
    
    
// Генерируем удар, в зависимости от силы, умений, защиты
    
function GenerationUron($str$time$um_ogon$um_voda$um_zeml$protection) {
        
        
// Вычисляем время последнего удара, насколько его нужно умножить. Если не указано, бьем максимально
        
if (!$time) { $x_time rand(4,5).'.'.rand(10,99).''; } else {
            
$time explode(' '$time);                                // Время посл. удара, с учетом миллисекунд
            
$time_1 $time[1] + $time[0];                                // Время посл. удара, с учетом миллисекунд
            
$time_2 explode(' 'microtime());                        // Разбиваем текущее время на сек. и мс.
            
$x_time round(($time_2[1] + $time_2[0]) - $time_12);    // Считаем, насколько умножить удар, в зависимости от посл.
            
if ($x_time 5$x_time '5.'.rand(10,50);
        }
        
        
// Считаем силу удара
        
$uron = (int)(($str 15) * $x_time);
        if (
$um_ogon 0)     $uron = (int)(($uron 100) * (100 $um_ogon));
        if (
$um_voda 0)      $uron = (int)(($uron 100) * (100 $um_voda));
        if (
$um_zeml 0)     $uron = (int)(($uron 100) * (100 $um_zeml));
        if (
$protection 0$uron = (int)(($uron 100) * (100 $protection));
        if (
$uron <= 0$uron 1;
        
        return 
$uron;
    }

    
    function 
Protection($protection$max_protection) {
        
$procent round(($protection $max_protection) * 1002);
        return (
$procent 50) ? 50 $procent;
    }

    function 
GenerateUron($strlen,$last_time,$protection) {
        
$last_time explode(' '$last_time);                    // Время последнего удара, с учетом миллисекунд
        
$last_time_1 $last_time[1] + $last_time[0];            // Текущие секунды + миллисекунды посл. удара
        
$last_time_2 explode(" "microtime());                // Разбиваем текущее время на сек. и мс.
        
$last_time_3 round(($last_time_2[1] + $last_time_2[0]) - $last_time_1,2);    // Считаем время от посл. удара к текущему
        
if ($last_time_3 5$last_time_3 '5.'.rand(10,50);

        
$uron = (($strlen 15) * $last_time_3);
        
$minus = ($uron 100) * $protection;
        
$uron $uron $minus;
        return (
$uron <= 0) ? ceil($uron);
    }
    
    function 
abilities_race_ogon($uron$time$procent$time_activ$time_refresh$add_1) {
        
$active false$vosst false;
        if (
$time >= time()) {
            
$other_time_activate $time $time_refresh;         // Вычисляем, когда закончиться активность 
                
if (time() < $other_time_activate) {            // Прибавляем процент удара, если активно
                    
if ($add_1 == 1$add ceil($uron * ('1.'.$procent)); else $add $uron;    
                    
$active $other_time_activate time();    // Скоролько секунд ещё будет активно 
                
} else { 
                    
$add $uron;
                    
$vosst $time time();
                }
            return array(
$add$active$vosst);
        } return array(
$uron$active$vosst);
    }
    
    function 
abilities_race_voda($uron$time$time_activ$time_refresh$add_1) {
        
$active false$vosst false;
        if (
$time >= time()) {
            
$other_time_activate $time $time_refresh;         // Вычисляем, когда закончиться активность 
                
if (time() < $other_time_activate) {            // Прибавляем процент удара, если активно
                    
if ($add_1 == 1$add ceil($uron '1.60'); else $add $uron;    
                    
$active $other_time_activate time();    // Скоролько секунд ещё будет активно 
                
} else { 
                    
$add $uron;
                    
$vosst $time time();
                }
            return array(
$add$active$vosst);
        } return array(
$uron$active$vosst);
    }
    
    function 
abilities_race_vozduh($procent$bot_hp$bot_hp_other$user_hp$user_hp_other) {
        
$rand rand(1,100);
        if (
$procent >= $rand) {
            
$proc_hp = (int)(($bot_hp_other 100) * $procent);
            
$proc_hp = ($proc_hp <= 0) ? $proc_hp;
            
            
$bot_hp $bot_hp $proc_hp;
            
$bot_hp = ($bot_hp <= 0) ? $bot_hp;
            
            
$user_hp $user_hp $proc_hp;
            
            if (
$user_hp $user_hp_other) {
                
$proc_hp $user_hp $user_hp_other;
                
$user_hp $user_hp_other;
            }
            
            return array(
1$bot_hp$user_hp$proc_hp);
        } else array(
0$bot_hp$user_hp0);
    }
    
    
    function 
abilities_race_zemlya($uron$time$procent$time_activ$time_refresh$add_1) {
        
$active false$vosst false;
        if (
$time >= time()) {
            
$other_time_activate $time $time_refresh;         // Вычисляем, когда закончиться активность 
    
                
if (time() < $other_time_activate) {            // Прибавляем процент удара, если активно
                    
if ($add_1 == 1$add ceil($uron * ('0.'.(100 $procent))); else $add $uron;    
                    
$active $other_time_activate time();    // Скоролько секунд ещё будет активно 
                
} else { 
                    
$add $uron;
                    
$vosst $time time();
                }
            return array(
$add$active$vosst);
        } return array(
$uron$active$vosst);
    }
    
?>
Онлайн: 0
Реклама