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

// -------------- Функция удачного сообщения -------------//
function msg($var)
{
    echo 
'<div class="msg">' . $var . '</div>';
}

// -------------- Функция сообщения об ошибке -------------//
function err($var)
{
    echo 
'<div class="err">' . $var . '</div>';
}

// -------------- Функция генерации пароля -------------//
function genPass($size) 
{ 
    
$letter = 'qwertyuipasdfghjklzxcvbnm'; 
    
$letter .= strtoupper($letter); 
    
$letter .= '123456789'; 
     
    
mt_srand((double)microtime()*1000000); 
    
$pass = ""; 
    for (
$i = 0; $i < $size; $i++)
    
$pass .= $letter[mt_rand(0, strlen($letter) - 1)]; 
    return 
$pass; 
}

// -------------- Функция вычисления передвижения -------------//
function travel_time($speed, $x1, $y1, $x2, $y2)
{
    
        
$a6 = ($x2 - $x1) * ($x2 - $x1);
        
$b6 = ($y2 - $y1) * ($y2 - $y1);
        
$c6 = $a6 + $b6;
        
$distance = sqrt($c6);
        
$arrival = ($distance / $speed) * 3600;
        
$arrival = explode('.', $arrival);

        return 
$arrival[0];
}

// -------------- Функция вычисления названия зданий -------------//
function builds($var)
{
    
$Construct = mysql_fetch_assoc(mysql_query("SELECT cid FROM construct WHERE cid = '$var' LIMIT 1"));
    switch(
$Construct['cid']):
        case 
1:
            
$name = '<img src="images/building_group_1_small.png" alt=""/> Ферма';
        break;
        case 
2:
            
$name = '<img src="images/building_group_2_small.png" alt=""/> Шахта';
        break;
        case 
3:
            
$name = '<img src="images/building_group_3_small.png" alt=""/> Лесопилка';
        break;
        case 
4:
            
$name = '<img src="images/building_group_4_small.png" alt=""/> Каменоломня';
        break;
        case 
5:
            
$name = '<img src="images/building_group_5_small.png" alt=""/> Прииск';
        break;
        case 
6:
            
$name = '<img src="images/building_group_6_small.png" alt=""/> Казарма';
        break;
        case 
7:
            
$name = '<img src="images/building_group_7_small.png" alt=""/> Торговая палата';
        break;
        case 
8:
            
$name = '<img src="images/building_group_8_small.png" alt=""/> Склад';
        break;
        case 
9:
            
$name = '<img src="images/building_group_9_small.png" alt=""/> Рынок';
        break;
        case 
10:
            
$name = '<img src="images/building_group_10_small.png" alt=""/> Кузница';
        break;
        case 
11:
            
$name = '<img src="images/building_group_11_small.png" alt=""/> Дипломатический центр';
        break;
        case 
12:
            
$name = '<img src="images/building_group_12_small.png" alt=""/> Цитадель';
        break;
        case 
13:
            
$name = '<img src="images/building_group_13_small.png" alt=""/> Бастион';
        break;
        case 
14:
            
$name = '<img src="images/building_group_14_small.png" alt=""/> Смотровая башня';
        break;
    endswitch;

    return 
$name;
}

//------------- Функция вычисления макс. параметров -------------//
function compute_params($var, $v)
{
    
// $v == 1 сколько опыта осталось
    // $v == 0 сколько опыта всего
    
$SQL = mysql_fetch_assoc(mysql_query("SELECT level, practice FROM generals WHERE id = '$var' LIMIT 1"));
    
$UP = (50 * $SQL['level'] + 50);
    if (
$v == 1) $r = ($UP - $SQL['practice']);
    elseif (
$v == 0) $r = (50 * $SQL['level'] + 50);
    return 
$r;
}

//------------- Функция графической полосы -------------//
function rating($var, $v)
{
    
$only = compute_params($var, 0); // всего
    
$remaining = compute_params($var, 1); // осталось
    // $v = набрано
    
$ratimg = 'red.gif';
    
$percent = round($v * 100 / $only);

    return 
'<img src="/images/' . $ratimg . '" width="' . $percent . '" height="7" alt=""/><img src="/images/green.gif" width="' . (100 - $percent) . '" height="7" alt=""/><small>' . $percent . '%</small>';
}

// -------------- Функция параметров улучшеных юнита -------------//
function paramUnit($uid, $player, $var)
{
    
$ItIsSql = mysql_fetch_assoc(mysql_query("SELECT id, power, defence FROM upgraded_units WHERE player = '$player' AND uid = '$uid' LIMIT 1"));
    if (
$var == 1)
    {
        if (!isset(
$ItIsSql['id']) && $uid == 1) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['power'];
        if (!isset(
$ItIsSql['id']) && $uid == 2) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['power'];
        if (!isset(
$ItIsSql['id']) && $uid == 3) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['power'];
        if (!isset(
$ItIsSql['id']) && $uid == 4) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['power'];
        if (!isset(
$ItIsSql['id']) && $uid == 5) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['power'];
        return 
$return;
    }
    if (
$var == 2)
    {
        if (!isset(
$ItIsSql['id']) && $uid == 1) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['defence'];
        if (!isset(
$ItIsSql['id']) && $uid == 2) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['defence'];
        if (!isset(
$ItIsSql['id']) && $uid == 3) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['defence'];
        if (!isset(
$ItIsSql['id']) && $uid == 4) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['defence'];
        if (!isset(
$ItIsSql['id']) && $uid == 5) $return = 0;
        elseif (isset(
$ItIsSql['id'])) $return = $ItIsSql['defence'];
        return 
$return;
    }
}

// -------------- Функция вычисления времени передвижения -------------//
function val($sec)
{
    if (
$sec < 0)
    {
        
$travel = '0:00:00';
    }
    else
    {
        
$do = explode('.', $sec / 3600);
        
$second = round($sec - $do[0] * 3600);
        
$e = explode('.', $second / 60);
        
$Q = round($second - $e[0] * 60);
        
$e = $e[0];

        if (
$do[0] != 0) $hour .= $do[0] . ' ч. ';
        if (
$e != 0) $mins .= $e . ' мин. ';

        
$travel = $hour . $mins . $Q . ' сек.';
    }
    return 
$travel;
}

// -------------- Функция конвертации краткого времени -------------//
function conv($var)
{
    if (
$var > 60) $print .= round($var / 60) . ' мин. ';
    else 
$print .= $var . ' сек. ';
    return 
$print;
}

//-------------Функция текстовой каптчи-------------//
function captcha($var)
{
$var = strtr($var, array(0 => 'ноль ',
                          
1 => 'один ',
                          
2 => 'два ',
                          
3 => 'три ',
                          
4 => 'четыре ',
                          
5 => 'пять ',
                          
6 => 'шесть ',
                          
7 => 'семь ',
                          
8 => 'восемь ',
                          
9 => 'девять '));
return 
$var;
}

//-------------функция игнора-------------//
function ignor($f1 = NULL, $f2 = NULL, $w = NULL)
{
if (isset(
$f1)) $f1 = char($f1, 0);
if (isset(
$f2)) $f2 = char($f2, 0);
if (isset(
$w)) $w = char($w, 0);
$f = mysql_fetch_assoc(mysql_query("SELECT id FROM `ignor` WHERE `user_id` = '$f1' AND `ig_id` = '$f2'"));
if (
$w == NULL) {
if (
$f1 != $f2) {
if (isset(
$f['id'])) return 1;
    else return 
0;
} else {
    return 
0;
}
} else {
    if (isset(
$f['id'])) return $f[$w];
}
}

// -------------- Функция форматирования времени  -------------//
function itime($time, $zm)
{
    
$time = $time + $zm * 3600;
    
$time__ = date('j n Y', $time);

    if (
$time__ == date('j n Y', time() + $zm * 3600))
        return 
'Сегодня в ' . date('H:i', $time);
    elseif (
$time__ == date('j n Y', time() - 3600 * (24 - $zm)))
        return 
'Вчера в ' . date('H:i', $time);
    else
        return 
strtr(date('j M Y в H:i', $time), array('Jan' => 'Янв', 'Feb' => 'Фев', 'Mar' => 'Мар', 'Apr' => 'Апр', 'May' => 'Мая', 'Jun' => 'Июн', 'Jul' => 'Июл', 'Aug' => 'Авг', 'Sep' => 'Сен', 'Oct' => 'Окт', 'Nov' => 'Ноя', 'Dec' => 'Дек'));
}

//------------------ Функция вывода и замены смайлов --------------------//
function smiles($text, $root = NULL)
{
    
$root = ($root == 1) ? '../' : '';
    
$dir = opendir($root . 'smiles');
    while(
$file = readdir($dir))
    {
        if (
strpos($file, '.gif') != false)
        {
            
$file = str_replace('.gif', '', $file);
            
$text = str_replace(':'.$file.':', '<img src="'.$root.'smiles/'.$file.'.gif" alt="'.$file.'"/>', $text);
        }
    }
    
closedir($dir);
    return 
$text;
}

//------------------ Функция определения реального IP --------------------//
require 'classIP.php';
$ipinit = new ipinit();
$ipl = $ipinit->ip;
$ipp = long2ip($ipl);
unset(
$ipinit);

//------------------ Функция определения реального браузера --------------------//
if (empty($_SESSION['user_brow'])) {
if (isset(
$_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) {
    
$agent = $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'];
} elseif (isset(
$_SERVER['HTTP_USER_AGENT'])) {
    
$agent = $_SERVER['HTTP_USER_AGENT'];
} else {
    
$agent = 'Not_detected';
}
    
$agent = preg_replace('|http://|i','', $agent);
    
$agent = strtok($agent,'( ');
    
$_SESSION['user_brow'] = substr($agent, 0, 22);
}

$agent = char($_SESSION['user_brow'], 0);

//-------------Функция правильного вычитания-------------//
function minus($all, $minus)
{
    
$all -= $minus;
    if (
0 > $all) $all = 0;
    return 
$all;
}

//-------------Функция правильного добавления-------------//
function plus($all, $plus, $num)
{
    
$all += $plus;
    if (
$num < $all) $all = $num;
    return 
$all;
}

//-------------Функция бана-------------//
function ban($t)
{
    
$t2 = minus($t, time());
    if (empty(
$t2)) $t3 = 'Время вышло';
    elseif (
$t2 > (60 * 60 * 24 * 30)) $t3 = round($t2 / (60 * 60 * 24 * 30)) . ' мес.';
    elseif (
$t2 > (60 * 60 * 24)) $t3 = round($t2 / (60 * 60 * 24)) . ' дн.';
    elseif (
$t2 > (60 * 60)) $t3 = round($t2 / (60 * 60)) . ' час.';
    elseif (
$t2 > 60) $t3 = round($t2 / 60) . ' мин.';
    else 
$t3 = $t2 . ' сек.';
    return 
$t3;
}

//-------------функции склонения чисел-------------//
function plural($n, $form1, $form2, $form5)
{
    
$n = abs($n) % 100;
    
$n1 = $n % 10;
    if (
$n > 10 && $n < 20) return $form5;
    if (
$n1 > 1 && $n1 < 5) return $form2;
    if (
$n1 == 1) return $form1;
    return 
$form5;
}

//-------------функции онлайна юзера-------------//
function online_user($ius)
{
if (isset(
$ius)) $ius = intval($ius);

   
$result = mysql_query("SELECT `id`, `onl` FROM `users` WHERE `id` = '$ius' LIMIT 1");
   
$nik = mysql_fetch_assoc($result);

   if (!empty(
$nik['id']) && $nik['onl'] + 300 > time())
   {
      return 
$ius;
   }
}

//------------функция фильтра цифр-------------//
function number($var)
{
    return 
abs((int)$var);
}

//------------функция транслита-------------//
function translit($str)
{
     
$translate = array
     (
     
'YO' => 'Ё', 'Yo' => 'Ё', 'yo' => 'ё', 'ZH' => 'Ж',
     
'Zh' => 'Ж', 'zh' => 'ж', 'CH' => 'Ч', 'Ch' => 'Ч',
     
'ch' => 'ч', 'SH' => 'Ш', 'Sh' => 'Ш', 'sh' => 'ш',
     
'SHC' => 'Щ', 'Shc' => 'Щ', 'shc' => 'щ', 'QQ' => 'Ъ',
     
'qq' => 'ъ', 'YE' => 'Э', 'Ye' => 'Э', 'ye' => 'э',
     
'YU' => 'Ю', 'Yu' => 'Ю', 'yu' => 'ю', 'YA' => 'Я',
     
'Ya' => 'Я', 'ya' => 'я', 'YI' => 'Ы', 'Yi' => 'Ы',
     
'yi' => 'ы', 'A' => 'А', 'a' => 'а', 'B' => 'Б',
     
'b' => 'б', 'C' => 'Ц', 'c' => 'ц', 'D' => 'Д',
     
'd' => 'д', 'E' => 'Е', 'e' => 'е', 'F' => 'Ф',
     
'f' => 'ф', 'G' => 'Г', 'g' => 'г', 'H' => 'Х',
     
'h' => 'х', 'X' => 'Х', 'x' => 'х', 'I' => 'И',
     
'i' => 'и', 'K' => 'К', 'k' => 'к', 'L' => 'Л',
     
'l' => 'л', 'M' => 'М', 'm' => 'м', 'N' => 'Н',
     
'n' => 'н', 'O' => 'О', 'o' => 'о', 'P' => 'П',
     
'p' => 'п', 'Q' => 'Ь', 'q' => 'ь', 'R' => 'Р',
     
'r' => 'р', 'S' => 'С', 's' => 'с', 'T' => 'Т',
     
't' => 'т', 'U' => 'У', 'u' => 'у', 'V' => 'В',
     
'v' => 'в', 'W' => 'Ш', 'w' => 'ш', 'J' => 'Й',
     
'j' => 'й', 'Z' => 'З', 'z' => 'з'
     
);

     
preg_match_all('/#([^[]+)#/U', $str, $a);
     
$str = strtr($str, $translate);
     
preg_match_all('/#([^[]+)#/U', $str, $b);
     
$str = str_replace(array_values($b[0]), array_values($a[1]), $str);
     return 
$str;
}

//-------------функция инфы о юзере-------------//
function user($ref, $w = NULL)
{
    if (!
ctype_digit($ref))
    {
        
$ref = char($ref, 0);
        
$result = mysql_query("SELECT * FROM `users` WHERE `nick` = '$ref' LIMIT 1");
    }
    else
    {
        
$ref = number($ref);
        
$result = mysql_query("SELECT * FROM `users` WHERE `id` = '$ref' LIMIT 1");
    }
    
$nik = mysql_fetch_array($result);

    if (isset(
$w)) return $nik[$w];
    else return 
$nik['id'];
}

//-------------функция форматирования времени-------------//
function timeAgo($timestamp, $granularity = 2, $format = 'Y-m-d H:i:s')
{
        
$difference = time() - $timestamp;
        if (
$difference < 0) return 'только что';
        elseif (
$difference < 864000)
        {
                
$periods = array('нед.' => 604800, 'дн.' => 86400, 'ч.' => 3600, 'мин.' => 60, 'сек.' => 1);
                
$output = '';
                foreach(
$periods as $key => $value)
                {
                        if (
$difference >= $value)
                        {
                                
$time = round($difference / $value);
                                
$difference %= $value;
                                
$output .= ($output ? ' ' : '') . $time . ' ';
                                
$output .= (($time > 1 && $key == 'дн.') ? $key . 'сек.' : $key);
                                
$granularity--;
                        }
                        if (
$granularity == 0) break;
                }
                return (
$output ? $output : 'только что');
        }
        else return 
date($format, $timestamp);
}

//-------------функция записи онлайна-------------//
function visit($room)
{
global 
$user, $ipl, $agent;

if (!empty(
$_SESSION['us']))
{
    
$agent = char($agent, 0);

    
mysql_query("UPDATE `users` SET
                `onl` = '" 
. time() . "',
                `visit` = '" 
. date('d-m-y в H:i') . "',
                `ip` = '
$ipl',
                `soft` = '
$agent',
                `where` = '
$room'
                WHERE `id` = '
$user[id]' LIMIT 1");
}
}

//-------------функция экранирования и замены спецсимволов-------------//
function char($message, $n)
{
    
$message = preg_replace("/(rn)+(rn)/i", "rnrn", $message);
    
$message = nl2br(htmlspecialchars($message, ENT_QUOTES, 'UTF-8'));
    
$message = iconv('utf-8', 'windows-1251', $message);
    
$message = iconv('windows-1251', 'utf-8', $message);
    
$message = preg_replace('#(.|?|!|s){3,}#', '111', $message);
    
$message = ($n == true) ? addcslashes($message, '_%') : $message;
    return 
$message;
}

?>
Онлайн: 0
Реклама