Файл: system/func.php
Строк: 327
<?php
error_reporting(0);
##############################
##### ПОДКЛЮЧЕНИЕ К БАЗЕ #####
##############################
$mc = mysql_connect('localhost', 'zogame', '7I8m7N6v') or die('Тех работы');
mysql_query('SET NAMES `utf8`', $mc);
mysql_select_db('zogame', $mc) or die('Указанная таблица не найдена');
##################
#### Антиспам ####
##################
function strong($msg)
{
global $db;
$msg = htmlspecialchars(trim($msg), ENT_QUOTES, 'UTF-8');
$msg = $db->real_escape_string($msg);
$ant = $db->query('SELECT * FROM `antispam_word` ORDER BY `id` DESC');
while ($a = $db->fetch_assoc($ant))
$msg = preg_replace("/(".$a['input_text'].")/iu",$a['output_text'],$msg);
return $msg;
}
##################
##### СЕССИИ #####
##################
session_start();
ob_start();
########################
## ОПРЕДЕЛЯЕМ БРАУЗЕР ##
########################
if (isset($_SERVER["HTTP_USER_AGENT"]) && preg_match('#up-browser|blackberry|windows ce|symbian|palm|nokia|android#i', $_SERVER["HTTP_USER_AGENT"]))
$webbrowser = false;
elseif (isset($_SERVER["HTTP_USER_AGENT"]) && (preg_match('#windows#i', $_SERVER["HTTP_USER_AGENT"]) ||preg_match('#linux#i', $_SERVER["HTTP_USER_AGENT"]) ||preg_match('#bsd#i', $_SERVER["HTTP_USER_AGENT"]) ||preg_match('#x11#i', $_SERVER["HTTP_USER_AGENT"]) ||preg_match('#unix#i', $_SERVER["HTTP_USER_AGENT"]) ||preg_match('#macos#i', $_SERVER["HTTP_USER_AGENT"]) ||preg_match('#macintosh#i', $_SERVER["HTTP_USER_AGENT"])))
$webbrowser = true; else $webbrowser = false; // определение типа браузера
######################
##### ФИЛЬТРАЦИИ #####
######################
function esc($text,$br=NULL){ // Вырезает все нечитаемые символы
if ($br!=NULL)
for ($i=0;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);
else{
for ($i=0;$i<10;$i++)$text=str_replace(chr($i), NULL, $text);
for ($i=11;$i<20;$i++)$text=str_replace(chr($i), NULL, $text);
for ($i=21;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);}
return $text;
}
function text($m){
$m = htmlspecialchars($m);
$m = mysql_escape_string($m);
return $m;
} /* Фильтрует текст */
function num($m){
$m = intval($m);
$m = abs($m);
return $m;
} /* Фильтрует цифры */
################
##### КУКИ #####
################
if (isset($_COOKIE['login']) and isset($_COOKIE['password'])) {
$login = text($_COOKIE['login']);
$password = text($_COOKIE['password']);
$dbs = mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' and `password` = '".$password."' LIMIT 1");
$user = mysql_fetch_assoc($dbs);
if (isset($user['id'])) {
if ($user['login'] != $login or $user['password'] != $password) {
setcookie('login', '', time() - 86400*31);
setcookie('password', '', time() - 86400*31);
}
}
$users = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' and `password`='".$password."' LIMIT 1"));
if(isset($user['id']) && $users['login']!=$login or $users['password']!=$password) {
setcookie('login', '', time() - 86400*31);
setcookie('password', '', time() - 86400*31);
}
}
$myLogin = $user['login'];
$myID = $user['id'];
$__str = round($user['str']/6);
$___str = round($user['str']/4);
$_str = rand($__str, $___str);
$__def = round($user['def']/12);
$___def = round($user['def']/7);
$_def = rand($__def, $___def);
if($user['health'] < 0)$user['health'] = 0;
if($user['energy'] < 0)$user['energy'] = 0;
define('H', $_SERVER['DOCUMENT_ROOT']);
require_once H.'/system/auction.php';
require_once H.'/system/effects.php';
require_once H.'/system/duel.php';
require_once H.'/system/gold.php';
require_once H.'/system/limit_clan_kazna.php';
require_once H.'/system/MySQL_Zapros.php';
require_once H.'/system/ten.php';
require_once H.'/system/clan_bonus.php';
###########################
##### Инергия и Жизнь #####
###########################
if($user){
$be = mysql_fetch_array(mysql_query("SELECT * FROM hp_mp WHERE id_user = '".$user['id']."' LIMIT 1"));
if($be['id_user'] != $user['id']){
mysql_query("UPDATE users SET health = '".num($user[max_health]*2)."', energy = '$user[max_energy]' WHERE id = '".$user['id']."' LIMIT 1");
mysql_query("INSERT INTO `hp_mp` SET `id_user` = '$user[id]', `last` = '".time()."'");
}else{
$k_point = intval((time()-$be['last'])/10);
if($effect_3[on] == 1)$k_point = intval((time()-$be['last'])/5);
if($k_point >= 1 && isset($user)){
$hp = $user['health']+(3*$k_point);
$mp = $user['energy']+(1*$k_point);
mysql_query("UPDATE users SET health = '$hp', energy = '$mp' WHERE id = '".$user['id']."' LIMIT 1");
mysql_query("UPDATE hp_mp SET last = '".time()."' WHERE id_user = '$user[id]' LIMIT 1");
}
}
if($user['health'] > num($user['max_health']*2))$user['health'] = num($user['max_health']*2);
if($user['energy'] > $user['max_energy'])$user['energy'] = $user['max_energy'];
## Записываем IP и онлайн ##
mysql_query("update `users` set `online` = '".time()."', `ip` = '".$_SERVER['REMOTE_ADDR']."',`browser` = '".$_SERVER['HTTP_USER_AGENT']."', `fix_mesto` = '".$_SERVER['PHP_SELF']."', `fix_url` = '".$_SERVER['REQUEST_URI']."' where (`id` = '".$myID."')");
## Если IP не совпадает с баном ##
$ban = mysql_query('SELECT * FROM `ban` WHERE `id_user` = "'.$myID.'" AND `last` > "'.time().'" ORDER BY `id` DESC LIMIT 1');
$ban = mysql_fetch_array($ban);
if($ban['ip'] != $user['ip']){
mysql_query("update `ban` set `ip` = '".$user['ip']."' where (`id` = '".$ban['id']."')");
}
}
###################
##### ФУНКЦИИ #####
###################
function clan_exp_koll($exp){
global $user;
$koll = mysql_num_rows(mysql_query("SELECT * FROM `bashna`"));
$good = mysql_num_rows(mysql_query("SELECT * FROM `bashna` WHERE `side` = 'good'"));
$evil = mysql_num_rows(mysql_query("SELECT * FROM `bashna` WHERE `side` = 'evil'"));
if($user['side'] == 'good'){
$my = $good;
}else{
$my = $evil;
}
$domination = round($my/$koll*100);
if($domination < 15)$domination = 15;
$exp = ceil($exp*$domination/100);
return $exp;
}
function exp_koll($exp){
global $user;
global $auction;
global $auction_name;
global $auction_summa;
global $auction_skidka;
if($auction == 1 and $auction_name == 'exp' and $user['auction'] >= $auction_summa)$exp += ceil($exp*$auction_skidka/100);
return $exp;
}
function fix_mesto($id){
$user = mysql_query("SELECT * FROM `users` WHERE `id` = '".$id."' LIMIT 1");
$user = mysql_fetch_assoc($user);
switch($user['fix_mesto']){
case '/online.php':
$mesto = 'Смотрит онлайн';
break;
case '/forum.php':
$mesto = 'На форуме';
break;
case '/chat.php':
$mesto = 'В чате';
break;
case '/clan.php':
$mesto = 'В клане';
break;
case '/clan_journal.php':
$mesto = 'В клане';
break;
case '/cforum.php':
$mesto = 'В клане';
break;
case '/rating.php':
$mesto = 'Смотрит рейтинг';
break;
case '/war.php':
$mesto = 'Битва за власть';
break;
case '/rinok.php':
$mesto = 'На площади';
break;
case '/main.php':
$mesto = 'В городе';
break;
case '/profile.php':
$mesto = 'Персонаж';
break;
case '/duel_batle.php':
$mesto = 'В дуэлях';
break;
case '/clans.php':
$mesto = 'Смотрит рейтинг';
break;
case '/drakon.php':
$mesto = 'Огнедышащий Дракон';
break;
case '/mertvec.php':
$mesto = 'Долина мертвецов';
break;
case '/boss.php':
$mesto = 'Кровавый остров';
break;
case '/mail.php':
$mesto = 'Почта';
break;
case '/coliseum.php':
$mesto = 'Колизей';
break;
case '/coliseum_rating.php':
$mesto = 'Смотрит рейтинг';
break;
case '/clan_podzemelie.php':
$mesto = 'Клановое подземелье';
break;
case '/fights.php':
$mesto = 'В сражениях';
break;
}
if(!$mesto)$mesto = 'В поиске';
return $mesto;
}
function rez_text( $text, $maxwords = 40, $maxchar = 45 ){
$sep=' ';
$words = explode($sep,$text);
$char = iconv_strlen($text,'utf-8');
if (count($words) > $maxwords){
$text = join($sep, array_slice($words, 0, $maxwords));
}
if ( $char > $maxchar ){
$sep2='...';
$text = iconv_substr( $text, 0, $maxchar, 'utf-8' );
}
return $text.$sep2;
}
function icons_user($user){
$user = mysql_query("SELECT * FROM `users` WHERE `id` = '".$user."' LIMIT 1");
$user = mysql_fetch_assoc($user);
if($user['online'] > time()-600){
$image = "<img src='/images/icons/".($user['sex'] == 'w' ? 'w' : '')."$user[side].png' width='15px'>";
}else{
$image = "<img src='/images/icons/".($user['sex'] == 'w' ? 'w' : '')."$user[side].png' style='opacity: 0.3;' width='15px'>";
}
return $image;
}
function text_msg($msg){
$bbcode=array();
$bbcode['/n/isU']='<br>';
$bbcode['/[br]/isU']='<br>';
global $ank;
if($ank['access'] > 0){
$bbcode['/[center](.+)[/center]/isU'] = '<center>$1</center>';
}
if($ank['access'] > 0){
$bbcode['/[b](.+)[/b]/isU'] = '<b>$1</b>';
}
if($ank['access'] > 0){
$bbcode['/[img](.*)[/img]/isU'] = "<img src='$1'/>$2</img>";
}
if($ank['access'] > 0){
$bbcode['/[url=(.+)](.+)[/url]/isU'] = "<a href='$1'>$2</a>";
}
if($ank['access'] > 0){
$bbcode['/[a](.+)[/a]/isU'] = "<a>$1</a>";
}
if($ank['access'] > 0){
$bbcode['/[color=(.+)](.+)[/color]/isU'] = "<font color='$1'>$2</font>";
}
$bbcode['/[right](.+)[/right]/isU'] = '<left>$1</left>';
if (count($bbcode))$msg = preg_replace(array_keys($bbcode), array_values($bbcode), $msg);
if($ank['access'] == 2)$msg = "<span class='item-2'>$msg</span>";
if($ank['access'] == 1)$msg = "<span class='item-1'>$msg</span>";
$msg = str_replace(array(':*',':-*'), '<img src="/images/smiles/love.png" alt="*"/>', $msg);
$msg = str_replace(array(':)',':-)'), '<img src="/images/smiles/ulibka.png" alt="*"/>', $msg);
$msg = str_replace(array('z_z','Z_Z'), '<img src="/images/smiles/spit.png" alt="*"/>', $msg);
$msg = str_replace(array(':P',':-P'), '<img src="/images/smiles/izik.png" alt="*"/>', $msg);
$msg = str_replace(array(':Z',':-Z'), '<img src="/images/smiles/kras_zloi.png" alt="*"/>', $msg);
$msg = str_replace(array('o_o'), '<img src="/images/smiles/ocki.png" alt="*"/>', $msg);
$msg = str_replace(array(':bandit'), '<img src="/images/smiles/bandit.png" alt="*"/>', $msg);
$msg = str_replace(array(':сердце'), '<img src="/images/smiles/serdce.png" alt="*"/>', $msg);
$msg = str_replace(array(':^('), '<img src="/images/smiles/plak.png" alt="*"/>', $msg);
$msg = str_replace(array(':F',':-F'), '<img src="/images/smiles/radost.png" alt="*"/>', $msg);
$msg = str_replace(array(':u',':-u'), '<img src="/images/smiles/uporot.png" alt="*"/>', $msg);
$msg = str_replace(array(':D',':-D'), '<img src="/images/smiles/xixi.png" alt="*"/>', $msg);
$msg = str_replace(array(':#',':-#'), '<img src="/images/smiles/zatkniz.png" alt="*"/>', $msg);
$msg = str_replace(array(':a',':A'), '<img src="/images/smiles/zlost.png" alt="*"/>', $msg);
return $msg;
}
function msg($sms,$tip='msg'){
echo '<div class="sep-stone"><div class="'.$tip.'"><b><h2> '.$sms.' </h2></b></div></div>';
}
function ico($dir,$file){
$img = '<img src="/images/'.$dir.'/'.$file.'" width="15px" alt="*" />';
return $img;
}
function img($dir,$file){
$img = '<img src="/images/'.$dir.'/'.$file.'" alt="*" />';
return $img;
}
function tl($tl){
$d=3600*24;
$day=floor($tl/$d);
$tl=$tl-($d*$day);
$hour=floor($tl/3600);
$tl=$tl-(3600*$hour);
$minute=floor($tl/60);
$tl=$tl-(60*$minute);
$second=floor($tl);
$dayt="".($day>0?"$day д. ":null)."";
$hourt="".($hour>0?"$hour ч. ":null)."";
$minutet="".($minute>0?"$minute м. ":null)."";
$secondt="".($second>0?"$second с. ":null)."";
if($day>0){
$minutet=NULL;
$secondt=NULL;
}
if($hour>0 && $day==0){
$secondt=NULL;
$dayt=NULL;
}
return "$dayt$hourt$minutet$secondt";
} /* Вывод оставшегося времени */
function vremja($time=NULL){
if ($time == NULL)$time = time();
$timep="".date("j M yг. в H:i", $time)."";
$time_p[0]=date("j n Y", $time);
$time_p[1]=date("H:i", $time);
if ($time_p[0] == date("j n Y"))$timep = date("H:i:s", $time);
if ($time_p[0] == date("j n Y", time()-60*60*24))$timep = "Вчера в $time_p[1]";
$timep=str_replace("Jan","Янв",$timep);
$timep=str_replace("Feb","Фев",$timep);
$timep=str_replace("Mar","Мар",$timep);
$timep=str_replace("May","Мая",$timep);
$timep=str_replace("Apr","Апр",$timep);
$timep=str_replace("Jun","Июня",$timep);
$timep=str_replace("Jul","Июля",$timep);
$timep=str_replace("Aug","Авг",$timep);
$timep=str_replace("Sep","Сент",$timep);
$timep=str_replace("Oct","Окт",$timep);
$timep=str_replace("Nov","Нояб",$timep);
$timep=str_replace("Dec","Дек",$timep);
return $timep;
} /* Вывод времени */
function noauth(){
global $user;
if(isset($user['id'])) header('Location: /main');
}
function auth(){
global $user;
if(!isset($user['id'])) header('Location: /');
}
function access($access = 0){
global $user;
if($user['access'] < $access) header('Location: /main');
}
function page($k_page=1){ // Выдает текущую страницу
$page=1;
if (isset($_GET['page'])){
if ($_GET['page']=='end')$page=intval($k_page);elseif(is_numeric($_GET['page'])) $page=intval($_GET['page']);}
if ($page<1)$page=1;
if ($page>$k_page)$page=$k_page;
return $page;}
function k_page($k_post=0,$k_p_str=10){ // Высчитывает количество страниц
if ($k_post!=0){$v_pages=ceil($k_post/$k_p_str);return $v_pages;}
else return 1;}
function str($link='?',$k_page=1,$page=1){ // Вывод номеров страниц (только на первый взгляд кажется сложно ;))
if ($page<1)$page=1;
echo "<div class="str">n";
if ($page!=1)echo "<span class='pag'><a href="".$link."page=".($page-1)."" title='Предыдущая страница (№".($page-1).")'><Назад</a></span> ";else echo "<span class='white'><Назад</span>";
echo " | ";
if ($page!=$k_page)echo " <span class='pag'><a href="".$link."page=".($page+1)."" title='Следующая страница (№".($page+1).")'>Вперёд></a></span>";else echo "<span class='white'>Вперёд></span>";
echo "<br />n";
if ($page!=1)echo "<span class='pag'><a href="".$link."page=1" title='Первая страница'><<</a></span> ";
if ($page!=1)echo "<span class='pag'><a href="".$link."page=1" title='Страница №1'>1</a></span>";else echo "<span class='white'>1</span>";
for ($ot=-3; $ot<=3; $ot++){
if ($page+$ot>1 && $page+$ot<$k_page){
if ($ot==-3 && $page+$ot>2)echo " ..";
if ($ot!=0)echo " <span class='pag'><a href="".$link."page=".($page+$ot)."" title='Страница №".($page+$ot)."'>".($page+$ot)."</a></span>";else echo " <span class='white'> ".($page+$ot)."</span>";
if ($ot==3 && $page+$ot<$k_page-1)echo " ..";}}
if ($page!=$k_page)echo " <span class='pag'><a href="".$link."page=end" title='Страница №$k_page'>$k_page</a></span>";elseif ($k_page>1)echo " <span class='white'>$k_page</span>";
if ($page!=$k_page)echo " <span class='pag'><a href="".$link."page=end" title='Последняя страница'> >></a></span>";
echo "</div>n";
}
function n_f($i, $tip = 0) {
if($tip == 1){
$i = number_format($i, 0, '', ''');
}else{
if($i >= 10000 && $i < 1000000) {
$i = number_format($i, 0, '', '.');
$i = round($i,1).'K';
}
elseif($i >= 1000000) {
$i = number_format($i, 0, '', '.');
$i = round($i,1).'M';
}
else
{
$i = number_format($i, 0, '', ''');
}
}
return $i;
}
function skill($skill){
switch($skill){
case 0:
$class = 0;
break;
case 1:
$class = 1;
break;
case 10:
$class = 2;
break;
case 26:
$class = 3;
break;
case 48:
$class = 4;
break;
case 100:
$class = 5;
break;
}
return $class;
}
$separ = "<div class='separ'></div>";
$random = rand(4999,6999);
$ftime = strtotime("-1 day 23:59:59");
?>