Файл: gamele.ru/func/sql_func.php
Строк: 1410
<?php
//--Добавлено 03.05.2013
function tp($l) {
$l = mtrunc($l);
$n='';
if ((floor($l/86400))<>0) {$n = $n.(floor($l/86400))."д ";$l=$l%86400;}
if ((floor($l/3600))<>0) $n = $n.(floor($l/3600))."ч ";
if ((floor(($l%3600)/60))<>0) $n = $n.(floor(($l%3600)/60))."м ";
$n = $n.(($l%3600)%60)."с";
return $n;
}
function sqla($q)
{
return mysql_fetch_array(sql($q));
}
function sql($q)
{
//GLOBAL $main_conn;
$r = mysql_query($q);
## Ошибки.
// $error = mysqli_error();
// if ($error and $_COOKIE["uid"]==1){
// echo "<font class=hp><b>SQL ОШИБКА : ".$error." <i>[".$q."]</i></b></font>";
// }
return $r;
}
function mysqli_result($query, $key = 0) {
$row = mysql_fetch_row($query);
return $row[$key];
}
//-
function varcheck($input){
if(!is_array($input)){
if(is_numeric($input))
{
#Функция актуальна при условии, если значение больше 0
#Получает целочисленное значение переменной
$number = intval($input);
//echo 'numeric';
return $number;
}
else
{
#Вырезаем html теги
$out_string= strip_tags($input);
#Преобразует специальные символы в HTML сущности.
$out_string= htmlspecialchars($out_string);
#Экранирует специальные символы в строке,принмимая во внимание кодировку соединения.
$out_string= mysql_escape_string($out_string);
return $out_string;
}
}else{
foreach($input as $key=>$val){
$out_string[$key] = varcheck($val);
}
return $out_string;
}
}
//тотемы
function totembuffs(){
$player=player();
//$totemtime = Array('00','02','04','06','08','10','12','14','16','18','20','22');
$totemtime = Array('10','20','02','00','22','18','12','04','14','06','08','16');
$bufftime = $totemtime[$player['thotem']]; $buff=0;
if($bufftime == date("H")){$buff = 1;}
elseif($bufftime == (date("H")-1)){$buff = 1;}
return $buff;
}
//енд_тотемы
//фильтр для предметов, которые не поддаются модификации, ремонту и т.д
function itemfilter(){
$filt=" AND `items`.`type`!='w0' AND `items`.`type`!='w29' AND `items`.`type`!='w61' AND `items`.`type`!='w66' AND `items`.`type`!='w67' AND `items`.`type`!='w68' AND `items`.`type`!='w69' ";
return $filt;
}
//end_itemfilter
function player(){
return mysql_fetch_assoc(mysql_query("SELECT `active_session`.*, `user`.* FROM `user` INNER JOIN `active_session` ON `user`.`id` = `active_session`.`User_ID` WHERE `user`.`pcid` = `active_session`.`session` AND `pcid`='".mysql_real_escape_string($_COOKIE['HonorHash'])."';"));
}
function allitemparam($it,$loc){
switch($loc){
case 'inv': break;
}
}
function chars($inp){
$inp=htmlspecialchars($inp);
$inp=eregi_replace("['"<>/%]","",$inp);
return $inp;
}
function mtrunc($q)
{
if ($q<0) $q=0;
return $q;
}
function send_mail_fake($email,$header,$body){
$subject = '=?windows-1251?B?'.base64_encode($header).'?=';
$headers = "From: NeverLands <noreplay@neverlands.ru>rn";
$headers .= "Return-path: <noreplay@neverlands.ru>rn";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=windows-1251; boundary="--".md5(uniqid(time())).""rn";
if( mail($email, $subject, $body, $headers) ){
return true;
}else{
return false;
}
}
function tradelic($lic){
$li=array(1=>0,0,0,0,0,0,0,0,0,0,0,0,0,0);
$lic=explode("|",$lic);
foreach($lic as $val){
$treid=explode("@",$val);
if($treid[1]>time()){
$li[$treid[0]]=1;
}
}
return $li;
}
function bot($od,$hp,$hpa,$mp,$mpa,$zn,$sil){
if($hp<($hpa*0.5)and $mp>5 and $zn>1){
$s['mag']="320_0@";
}
if($zn>$sil and $mpa>50 and $mp>10){
$s2="_2_100@";
}else{
$s2="_0_0@";
}
if($od<140){
$s['ud']=rand(0,3).$s2;
}else{
$s1=rand(0,2);
$s['ud']=$s1.$s2.($s1+1).$s2;
}
$s['bl']="0_".rand(4,25)."_0@";
return $s;
}
function chlevel($exp,$lev,$id){
$user=$_SESSION['user'];
$pers = player();
$arr=exp_level($lev);
if(array_sum($exp)>=$arr['exp']){
if($pers['level'] >= 9 and $pers['instructor'] > 0){
$pl = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id`='".$pers['instructor']."'"));
$PlExps = explode("|",$pl['exp']);
mysql_query("UPDATE `user` SET `nv`=`nv`+'".((($row['good_pupils_count']+1)%5 == 0)?2500:500)."',`dd`=`dd`+'0.15',`exp`='".$PlExps[0]."|".($PlExps[1]+100)."|".$PlExps[2]."',`good_pupils_count`=`good_pupils_count`+'1' WHERE `id`='".$pers['instructor']."'");
mysql_query("UPDATE `user` SET `instructor`='0' WHERE `id`='".$pers['id']."'");
chmsg("top.frames['chmain'].add_msg('<font class=yochattime> ".date("H:i:s")." </font> <font color=000000><font color=#000000><b>Системная информация.</b></font> Персонаж <b>".$pers["login"]."</b>[".$pers["level"]."/".$pers["u_lvl"]."] закончил свое обучение, вы получили награду.</font><BR>'+'');",$pl['login']);
echo"<script>top.frames['chmain'].add_msg('<font class=yochattime> ".date("H:i:s")." </font> <font color=000000><font color=#000000><b>Системная информация.</b></font> Вы успешно закончили свое обучение.</font><BR>'+'');</script>";
}
mysql_query("UPDATE user SET level=level+1, nv=nv+$arr[nv],fr_bum=fr_bum+$arr[bum],fr_mum=fr_mum+$arr[mum],free_stat=free_stat+$arr[frs],nav=nav+$arr[nav] WHERE id='$id';");
event_to_log(date("H:i:s"),5,0,(($pers['clan_id']!='none') ? $pers['clan_gif'].':'.$pers['clan'].':'.$pers['clan_d'] : 'none'),$pers["login"],$pers["level"],$pers['sklon'],($pers["level"]+1));
$ms="top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#CC0000>Поздравляем!</font></b></font> Вы достигли <b>".($lev+1)."</b> уровня.</font><BR>'+'');";
chmsg($ms,$user[login]);
}
}
function newbattle($style,$arena,$type,$time_start,$timeout,$travma,$downl,$upl,$koll,$downr,$upr,$kolr,$vis,$bt){
mysql_query("LOCK TABLES arena READ, fight arena;");
db_query('INSERT INTO arena (style,arena,type,time,time_start,timeout,travma,downl,upl,kol1,downr,upr,kol2,vis,t2,bt) VALUES ('.AP.$style.AP.','.AP.$arena.AP.','.AP.$type.AP.','.AP.date("H:i:s").AP.','.AP.$time_start.AP.','.AP.$timeout.AP.','.AP.$travma.AP.','.AP.$downl.AP.','.AP.$upl.AP.','.AP.$koll.AP.','.AP.$downr.AP.','.AP.$upr.AP.','.AP.$kolr.AP.','.AP.$vis.AP.','.AP.time().AP.','.AP.$bt.AP.');');
$V01=mysql_query("SELECT MAX(id_battle) FROM arena LIMIT 1;");
$V01=mysql_result($V01, 0);
mysql_query("UNLOCK TABLES;");
return $V01;
}
function savelog($log,$bat){
$fp = fopen ("/var/www/gamale/data/battles/logs/".$bat.".txt","a");
fwrite($fp,$log."n");
fclose($fp);
}
function savestats($log,$bat){
$fp = fopen ("/var/www/gamale/data/battles/stats/".$bat.".txt","a");
fwrite($fp,$log."n");
fclose($fp);
}
function exp_level($level){
switch($level){
case 0: $arr=array("exp"=>100,"ma"=>8,"ex"=>1,"frs"=>15,"nv"=>50,"nav"=>1,"mum"=>2,"bum"=>10);break;
case 1: $arr=array("exp"=>300,"ma"=>12,"ex"=>1,"frs"=>3,"nv"=>100,"nav"=>1,"mum"=>3,"bum"=>4);break;
case 2: $arr=array("exp"=>800,"ma"=>16,"ex"=>1,"frs"=>3,"nv"=>150,"nav"=>0,"mum"=>4,"bum"=>5);break;
case 3: $arr=array("exp"=>1800,"ma"=>20,"ex"=>1,"frs"=>3,"nv"=>200,"nav"=>0,"mum"=>4,"bum"=>5);break;
case 4: $arr=array("exp"=>3500,"ma"=>24,"ex"=>1,"frs"=>5,"nv"=>300,"nav"=>1,"mum"=>5,"bum"=>4);break;
case 5: $arr=array("exp"=>5500,"ma"=>40,"ex"=>1,"frs"=>5,"nv"=>350,"nav"=>1,"mum"=>5,"bum"=>5);break;
case 6: $arr=array("exp"=>10000,"ma"=>52,"ex"=>1,"frs"=>5,"nv"=>250,"nav"=>0,"mum"=>6,"bum"=>6);break;
case 7: $arr=array("exp"=>18000,"ma"=>56,"ex"=>1,"frs"=>10,"nv"=>300,"nav"=>0,"mum"=>7,"bum"=>6);break;
case 8: $arr=array("exp"=>30000,"ma"=>64,"ex"=>1,"frs"=>5,"nv"=>400,"nav"=>1,"mum"=>8,"bum"=>7);break;
case 9: $arr=array("exp"=>50000,"ma"=>76,"ex"=>1,"frs"=>7,"nv"=>500,"nav"=>0,"mum"=>9,"bum"=>8);break;
case 10: $arr=array("exp"=>200000,"ma"=>80,"ex"=>1,"frs"=>15,"nv"=>400,"nav"=>1,"mum"=>12,"bum"=>10);break;
case 11: $arr=array("exp"=>500000,"ma"=>104,"ex"=>1,"frs"=>7,"nv"=>500,"nav"=>0,"mum"=>15,"bum"=>5);break;
case 12: $arr=array("exp"=>900000,"ma"=>120,"ex"=>1,"frs"=>12,"nv"=>600,"nav"=>1,"mum"=>15,"bum"=>10);break;
case 13: $arr=array("exp"=>1600000,"ma"=>136,"ex"=>1,"frs"=>10,"nv"=>600,"nav"=>1,"mum"=>20,"bum"=>15);break;
case 14: $arr=array("exp"=>3000000,"ma"=>150,"ex"=>1,"frs"=>12,"nv"=>800,"nav"=>0,"mum"=>12,"bum"=>15);break;
case 15: $arr=array("exp"=>10000000,"ma"=>170,"ex"=>1,"frs"=>15,"nv"=>1000,"nav"=>1,"mum"=>15,"bum"=>15);break;
case 16: $arr=array("exp"=>25000000,"ma"=>180,"ex"=>1,"frs"=>15,"nv"=>1500,"nav"=>1,"mum"=>25,"bum"=>20);break;
case 17: $arr=array("exp"=>50000000,"ma"=>190,"ex"=>1,"frs"=>15,"nv"=>2000,"nav"=>0,"mum"=>25,"bum"=>20);break;
case 18: $arr=array("exp"=>80000000,"ma"=>200,"ex"=>1,"frs"=>15,"nv"=>2500,"nav"=>1,"mum"=>25,"bum"=>20);break;
case 19: $arr=array("exp"=>160000000,"ma"=>220,"ex"=>1,"frs"=>15,"nv"=>3000,"nav"=>1,"mum"=>15,"bum"=>20);break;
case 20: $arr=array("exp"=>500000000,"ma"=>240,"ex"=>1,"frs"=>10,"nv"=>3500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 21: $arr=array("exp"=>1200000000,"ma"=>240,"ex"=>1,"frs"=>15,"nv"=>4000,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 22: $arr=array("exp"=>1000000000,"ma"=>240,"ex"=>1,"frs"=>20,"nv"=>4500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 23: $arr=array("exp"=>2000000000,"ma"=>240,"ex"=>1,"frs"=>25,"nv"=>5500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 24: $arr=array("exp"=>4000000000,"ma"=>240,"ex"=>1,"frs"=>20,"nv"=>6500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 25: $arr=array("exp"=>5000000000,"ma"=>240,"ex"=>1,"frs"=>30,"nv"=>7500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 26: $arr=array("exp"=>6000000000,"ma"=>240,"ex"=>1,"frs"=>35,"nv"=>8500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 27: $arr=array("exp"=>7000000000,"ma"=>240,"ex"=>1,"frs"=>40,"nv"=>10500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 28: $arr=array("exp"=>8000000000,"ma"=>240,"ex"=>1,"frs"=>45,"nv"=>12500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 29: $arr=array("exp"=>9000000000,"ma"=>240,"ex"=>1,"frs"=>50,"nv"=>15500,"nav"=>0,"mum"=>25,"bum"=>10);break;
case 30: $arr=array("exp"=>1200000000,"ma"=>240,"ex"=>1,"frs"=>55,"nv"=>17500,"nav"=>0,"mum"=>25,"bum"=>10);break;
}
return $arr;
}
function log_write($act,$idit,$sum,$to,$ty){
if(empty($ip)){if (getenv('HTTP_X_FORWARDED_FOR')){$ip=getenv('HTTP_X_FORWARDED_FOR');}else{$ip=getenv('REMOTE_ADDR');}}
$bro=explode(" ",getenv('HTTP_USER_AGENT'));
db_query('INSERT INTO mlog (action,ip,brouser,id_item,sum,login,tologin,typ) VALUES ('.AP.$act.AP.','.AP.$ip.AP.','.AP.$bro[0].AP.','.AP.$idit.AP.','.AP.$sum.AP.','.AP.$_SESSION['user'][login].AP.','.AP.$to.AP.','.AP.$ty.AP.');');
}
function pvu_logs($uid,$see,$ip,$reason,$dop=NULL){
mysql_query("INSERT INTO `pvu_logs` (`uid`,`see`,`time_unix`,`time_norm`,`reason`,`ip`".(($see=='1')?',`Browser`':'').") VALUES ('".$uid."','".$see."','".time()."','".date("Y-m-d H:i:s",time())."','".$reason."','".$ip."'".(($see=='1')?",'".$dop."'":'').");");
}
function locations($loc,$pos)
{
$ct = online_now(0);
$time=time()-300;
if($loc!=28){
$rooms= mysql_fetch_assoc(mysql_query("SELECT loc.id, loc.loc, loc.room, loc.city FROM loc WHERE id='".$loc."' LIMIT 1;"));
if($rooms['room']!=''){$room=",<br>$rooms[room]";}else if($rooms['city']!=""){$city="$rooms[city],<br>";}
$count= mysql_num_rows(mysql_query("SELECT user.id, user.loc FROM user WHERE last >$time AND loc = '$loc'"));}
if($loc==28){
$rooms= mysql_fetch_assoc(mysql_query("SELECT map.id, map.loc, map.name FROM map WHERE coord='".$pos."' LIMIT 1;"));
if($rooms['name']!=""){$room=",<br>$rooms[name]";}
if($rooms['loc']==''){$city="Природа";}
$count= mysql_num_rows(mysql_query("SELECT user.id FROM user WHERE last >$time AND pos = '$pos' AND loc='$loc'"));
}
echo "<font class=placename><b>$city$rooms[loc]$room</b></font></a> [ $count ] <br><a href=ch.php?lo=1&all=yes><font class=placename><b>Всего</b></a> [ $ct ]</font>";
return $count;
}
function ar_rooms()
{$rooms= mysql_query("SELECT user.loc, Count(user.Login) AS Count FROM user WHERE (((user.last)>".(time()-299).") AND ((user.loc)='6' Or (user.loc)='7' Or (user.loc)='8' Or (user.loc)='9' Or (user.loc)='10' Or (user.loc)='11' Or (user.loc)='12' Or (user.loc)='13' Or (user.loc)='14' Or (user.loc)='15')) GROUP BY user.loc ORDER BY user.loc;");
$a['6']=0;$a['7']=0;$a['8']=0;$a['9']=0;$a['10']=0;$a['11']=0;$a['12']=0;$a['13']=0;$a['14']=0;$a['15']=0;
while ($r = mysql_fetch_assoc($rooms)) {
$a[$r['loc']]=$r['Count'];
}echo "$a[6],$a[7],$a[8],$a[9],$a[10],$a[11],$a[12],$a[13],$a[14],$a[15]";}
function online($login,$pcid)
{//------добавление, обновление online----------------
db_query('UPDATE user SET pcid='.AP.$pcid.AP.',last='.AP.time().AP.' WHERE login='.AP.$login.AP.'LIMIT 1;');
}
function online_now($loc)
{//------количество человек online------
if($loc=='0'){$sql = "SELECT * FROM user WHERE last >".(time()-300).";";}else{$sql = "SELECT user.login FROM user LEFT JOIN loc ON user.loc = loc.id WHERE (((user.loc)='".$loc."') AND ((user.last)>'".(time()-300)."'));";}
$result = mysql_query($sql);
return mysql_num_rows($result);
mysql_free_result($result);
}
function option($pl,$num)
{
$opt= explode('|',$pl);
return $opt[$num];
}
function chat($login,$str)
{
$chat = player();
if($chat['chat']==1){$arr=explode(" ",$str);
for ($i=0; $i<strlen($str); $i++)
{$arr[$i]=str_shuffle($arr[$i]);
$res.=$arr[$i]." ";
}return $res;}
if($chat['chat']==0){return $str;}
if($chat['chat']==2){$str='';
return $str;}
}
function save_hp_roun($pl){
$hps=$pl['hp_all']/$pl['hps'];
$mps=$pl['mp_all']/$pl['mps'];
if(time()>=$pl['chp']){$curhp=$pl['hp_all'];}else{$curhp=$pl['hp_all']-(($pl['chp']-time())*$hps);}
if(time()>=$pl['cmp']){$curmp=$pl['mp_all'];}else{$curmp=$pl['mp_all']-(($pl['cmp']-time())*$mps);}
$curhp=round($curhp);$curmp=round($curmp);
if($pl['hp_all']!=$pl['hp'] or $pl['mp_all']!=$pl['mp']){
mysql_query("UPDATE `user` SET `hp`='".$curhp."',`mp`='".$curmp."' WHERE `login`='".$pl['login']."' LIMIT 1;");
}
}
function inshp()
{
$pl=player();
$hps=$pl['hp_all']/$pl['hps'];
$mps=$pl['mp_all']/$pl['mps'];
$chp=time()+(($pl['hp_all']-$pl['hp'])/$hps);
$cmp=time()+(($pl['mp_all']-$pl['mp'])/$mps);
mysql_query("UPDATE `user` SET `chp`='".$chp."',`cmp`='".$cmp."' WHERE `login`='".$pl['login']."' LIMIT 1;");
}
function inshp2($pl)
{
$hps=$pl['hp_all']/$pl['hps'];
$mps=$pl['mp_all']/$pl['mps'];
$chp=time()+(($pl['hp_all']-$pl['hp'])/$hps);
$cmp=time()+(($pl['mp_all']-$pl['mp'])/$mps);
mysql_query("UPDATE `user` SET `chp`='".$chp."',`cmp`='".$cmp."' WHERE `login`='".$pl['login']."' LIMIT 1;");
}
function save_hp(){
$pl=player();
$hps=$pl['hp_all']/$pl['hps'];
$mps=$pl['mp_all']/$pl['mps'];
if(time()>=$pl['chp']){$curhp=$pl['hp_all'];}else{$curhp=$pl['hp_all']-(($pl['chp']-time())*$hps);}
if(time()>=$pl['cmp']){$curmp=$pl['mp_all'];}else{$curmp=$pl['mp_all']-(($pl['cmp']-time())*$mps);}
if($pl['hp_all']!=$pl['hp'] or $pl['mp_all']!=$pl['mp']){
mysql_query("UPDATE `user` SET `hp`='".$curhp."',`mp`='".$curmp."' WHERE `login`='".$pl['login']."' LIMIT 1;");
}
$str="<SCRIPT language="JavaScript">n
ins_HP($curhp,$pl[hp_all],$curmp,$pl[mp_all],$pl[hps],$pl[mps]); n
</SCRIPT>n";
return $str;
}
function calchp(){
if(empty($id)){
$pl=player();
}else{
$pl=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id`='".intval($id)."'"));
}
if($pl['clan_id']!='none'){
$clsql=mysql_fetch_array(mysql_query("SELECT * FROM `clans` WHERE `clan_id`='".$pl['clan_id']."';"));
$uphp+=$clsql['cl_hp'];
$upmp+=$clsql['cl_mp'];
}
$s=explode("|",$pl[st]);
$trw=affect($pl['id'],3);
if(!empty($trw)){
foreach ($trw as $key => $val){
switch($key){
case'30':
$pl['sila']+=$val;
break;
case'31':
$pl['lovk']+=$val;
break;
case'32':
$pl['uda4a']+=$val;
break;
case'33':
$pl['zdorov']+=$val;
break;
case'34':
$pl['znan']+=$val;
break;
case'27':
$pl['hp']+=$val;
break;
case'29':
$pl['mp']+=$val;
break;
default:
$pt[$key]+=$val;
break;
}
}
}
foreach (explode("|",$pl['perk']) as $key => $val){
if($val==''){
$val=0;
}
$perk[$key]=$val;
}
$hps=$pl['hp_all']/$pl['hps'];
$mps=$pl['mp_all']/$pl['mps'];
$hp=(($pl['zdorov']+$s[33]+($p[8]*2)+(($pl[level]+1)*$p[18]))*5)+$s[27]+$uphp;
$mp=(($pl['znan']+$s[34]+($p[11]*2))*7)+$s[29]+$upmp;
if($hp!=$pl['hp_all'] or $mp!=$pl['mp_all']){
db_query('UPDATE user SET hp_all='.AP.$hp.AP.',mp_all='.AP.$mp.AP.' WHERE login='.AP.$_SESSION['user']['login'].AP.'LIMIT 1;');
}
inshp();
}
function calchp2($pl,$uphp,$upmp)
{
$s=explode("|",$pl['st']);
foreach (explode("|",$pl[perk]) as $key => $val){if($val==''){$val=0;}$p[$key]=$val;}
$hp=(($pl['zdorov']+$s[33]+($p[8]*2)+(($pl['level']+1)*$p[18]))*5)+$s[27]+$uphp;
$mp=(($pl['znan']+$s[34]+($p[11]*2))*7)+$s[29]+$upmp;
if($hp!=$pl['hp_all'] or $mp!=$pl['mp_all']){
mysql_query("UPDATE `user` SET `hp_all`='".$hp."',`mp_all`='".$mp."' WHERE `login`='".$pl['login']."'LIMIT 1;");
}
inshp2($pl);
}
function calchp3($uphp,$upmp)
{
$pl=player();
$s=explode("|",$pl['st']);
foreach (explode("|",$pl[perk]) as $key => $val){if($val==''){$val=0;}$p[$key]=$val;}
$hp=(($pl['zdorov']+$s[33]+($p[8]*2)+(($pl['level']+1)*$p[18]))*5)+$s[27]+$uphp;
$mp=(($pl['znan']+$s[34]+($p[11]*2))*7)+$s[29]+$upmp;
if($hp!=$pl['hp_all'] or $mp!=$pl['mp_all']){
mysql_query("UPDATE `user` SET `hp_all`='".$hp."',`mp_all`='".$mp."' WHERE `login`='".$pl['login']."'LIMIT 1;");
}
inshp();
}
function change_get($go){
$player = player();
$GoLoc = mysql_fetch_assoc(mysql_query("SELECT * FROM `loc` WHERE `id`='".$go."' LIMIT 1;"));
$GoArray = explode("|",$GoLoc['access_go']);
if($GoLoc['go_id'] == $player['loc'] or in_array($player['loc'],$GoArray)){
mysql_query("UPDATE `user` SET `loc`='".$go."' WHERE `login`='".$_SESSION['user']['login']."' LIMIT 1;");
echo"<script>top.frames['ch_list'].location='ch.php?lo=1'</script>";
}
}
function pl_loc($id){
$loc= mysql_fetch_assoc(mysql_query("SELECT `id`,`inc`,`core2` FROM `loc` WHERE `id`='".$id."' LIMIT 1;"));
return $loc['core2']?'core2.php':$loc['inc'];
}
function ret_id($id,$pos){
if($id!=28){
$loc= mysql_fetch_assoc(mysql_query("SELECT `id`,`loc`,`go_id`,`but`,`folder` FROM `loc` WHERE `id`='".$id."' LIMIT 1;"));
}
if($loc['go_id']==$loc['id']){
$s=1;
}
$locte=array($loc['go_id'],$loc['but'],$loc['loc'],$loc['folder'],$s);
return $locte;
}
function gethaot($lev)
{
if($lev>4 and $lev<8){$level=array(5,7);}else if($lev>7 and $lev<11){$level=array(8,10);}else if($lev>10 and $lev<14){$level=array(11,13);}else{$level=array(14,33);}
return $level;
}
function testarena($batt)
{$test= mysql_query("SELECT user.id FROM user WHERE battle=$batt;");
return mysql_num_rows($test);
mysql_free_result($test);
}
function testarena2($batt)
{$test= mysql_query("SELECT user.id FROM user WHERE battle=$batt and side='2';");
return mysql_num_rows($test);
mysql_free_result($test);
}
function sumbat($bat,$msg,$type){
$user=$_SESSION['user'];
$result=mysql_query("SELECT user.login FROM user WHERE battle=".$bat.";");
while ($row = mysql_fetch_assoc($result)) {
if($type==1 and $row['login']==$_SESSION['user']['login'])continue;
$log.='<'.$row['login'].'>';}
db_query('INSERT INTO chat (time,login,dlya,msg) VALUES ('.AP.time().AP.','.AP."sys".AP.','.AP.$log.AP.','.AP.addslashes("$msg").AP.');');
}
function updatebatt($id){
if(testarena2($id)==0){
sumbat($id,"top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#cc0000>Внимание!</font></b> Заявка не набрана!</font><BR>'+'');$redirect",0);
db_query('DELETE FROM arena WHERE id_battle = '.AP.$id.AP.';');
db_query('UPDATE user SET battle='.AP."0".AP.' WHERE battle='.AP.$id.AP);
}else{startbat($id,1);sumbat($id,"$redirect",0);}}
function startbat($id,$fy,$desc=NULL){
save_hp_all($id);
$log=',[[0,"'.date("H:i").'"],"Бой между "';
$pl= mysql_query("SELECT `side`,`battle`,`level`,`sklon`,`clan_gif`,`login`,`invisible`,`id`,`hp`,`mp` FROM `user` WHERE `battle`='".$id."';");
while ($val = mysql_fetch_assoc($pl)) {
if($val['side']==1){
if($val['invisible']<time()){
$log.=",[1,$val[side],"$val[login]",$val[level],$val[sklon],"$val[clan_gif]"],","";
}else{
$log.=",[4,$val[side]],","";
}
}else{
if($val['invisible']<time()){
$log2.=",[1,$val[side],"$val[login]",$val[level],$val[sklon],"$val[clan_gif]"],","";
}else{
$log2.=",[4,$val[side]],","";
}
}
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`fight`,`side`) VALUES ('".$val['id']."','".$val['hp']."','".$val['mp']."','".$id."','".$fy."','".$val['side']."');");
}
$log=substr_replace($log, '', -3);
$log2=substr_replace($log2, '', -3);
$log.="" и "$log2" начался."]";
savelog($log,$id);
db_query('UPDATE arena SET vis="0", t2='.AP.time().AP.' WHERE id_battle ='.AP.$id.AP.'LIMIT 1;');
db_query('UPDATE user SET fight='.AP.$fy.AP.' WHERE battle='.AP.$id.AP);
}
function save_hp_all($id){
$app= mysql_query("SELECT user.id, user.battle, user.hp_all, user.mp_all, user.hps, user.mps, user.chp, user.cmp, user.hp, user.mp FROM user WHERE battle=$id;");
while ($pl = mysql_fetch_assoc($app)) {
$hps=$pl['hp_all']/$pl['hps'];
$mps=$pl['mp_all']/$pl['mps'];
if(time()>=$pl['chp']){$curhp=$pl['hp_all'];}else{$curhp=$pl['hp_all']-(($pl['chp']-time())*$hps);}
if(time()>=$pl['cmp']){$curmp=$pl['mp_all'];}else{$curmp=$pl['mp_all']-(($pl['cmp']-time())*$mps);}
if($pl['hp_all']!=$pl['hp'] or $pl['mp_all']!=$pl['mp']){db_query('UPDATE user SET hp='.AP.$curhp.AP.', mp='.AP.$curmp.AP.' WHERE id='.AP.$pl['id'].AP.' LIMIT 1;');}}}
function botslot($id)
{
$sl = array(1 => 'sl_l_0.gif:Слот для шлема', 'sl_l_1.gif:Слот для ожерелья', 'sl_l_2.gif:Слот для оружия', 'sl_l_3.gif:Слот для пояса', 'sl_l_4.gif:Слот для содержимого пояса', 'sl_l_4.gif:Слот для содержимого пояса', 'sl_l_4.gif:Слот для содержимого пояса', 'sl_l_5.gif:Слот для сапог', 'sl_r_0.gif:Слот для кармана', 'sl_r_1.gif:Слот для содержимого кармана', 'sl_r_2.gif:Слот для наручей', 'sl_r_3.gif:Слот для перчаток', 'sl_l_2.gif:Слот для оружия/щита', 'sl_r_5.gif:Слот для кольца', 'sl_r_5.gif:Слот для кольца', 'sl_r_6.gif:Слот для брони', 'sl_r_6.gif:Слот для брони');
db_query("SELECT `invent`.*, `items`.* FROM `items` INNER JOIN `invent` ON `items`.`id` = `invent`.`protype` WHERE `used`='1' AND `pl_id`='".$id."';");
while ($row = db_fetch()) {
$it = explode("|",$row['i_param']);
if($row[slot]==5){$ret.="$row[id_item]@$row[num_a]|";}
$par='';
foreach ($it as $value) {
$stat=explode("@",$value);
switch($stat[0]){
case 0: $par[0]="$stat[1]"; break;
case 1: $ud=explode("-",$stat[1]);
$par[1]="$ud[0]";
$par[2]="$ud[1]";
break;
case 2: $par[7]=$row['dolg'];break;
case 9: $par[3]="$stat[1]";break;
case 10: $par[4]="$stat[1]";break;
case 27: $par[5]="$stat[1]";break;
case 29: $par[6]="$stat[1]";break;}
}
$p="$par[0]|$par[1]|$par[2]|$par[3]|$par[4]|$par[5]|$par[6]|$par[7]";
$sl_free[$row['curslot']]="$row[gif]:$row[name]:$p";
$sl_id[$row['curslot']]=$row['id_item'];
$sl_pr[$row['curslot']]=$row['dolg']-$row['iznos'];
$v_c[$row['curslot']]=scode();
}
for($i=1; $i<=15; $i++){
$idd.=$sl_id[$i].'@';
$pr .= $sl_pr[$i].'@';
$item .= $sl_free[$i].'@';
$vcod.=$v_c[$i].'@';}
if($sl_free[16]!='sl_r_6.gif:Слот для брони'){$pr .= $sl_pr[16]; $item .= $sl_free[16]; $idd .= $sl_id[16];$vcod.=scode();}elseif($sl_free[17]!='sl_r_6.gif:Слот для брони'){$pr .= $sl_pr[17]; $item .= $sl_free[17]; $idd .= $sl_id[17];$vcod.=scode();}else{$item .= $sl_free[17];}
if($s==1){$invs=","$idd","$vcod"";}
echo "$item"$invs,"$pr";
return substr_replace($ret, '', -1);
}
function slotwiev($id,$s)
{
$sl_free = array(1 => 'sl_l_0.gif:Слот для шлема', 'sl_l_1.gif:Слот для ожерелья', 'sl_l_2.gif:Слот для оружия', 'sl_l_3.gif:Слот для пояса', 'sl_l_4.gif:Слот для содержимого пояса', 'sl_l_4.gif:Слот для содержимого пояса', 'sl_l_4.gif:Слот для содержимого пояса', 'sl_l_5.gif:Слот для сапог', 'sl_r_0.gif:Слот для кармана', 'sl_r_1.gif:Слот для содержимого кармана', 'sl_r_2.gif:Слот для наручей', 'sl_r_3.gif:Слот для перчаток', 'sl_l_2.gif:Слот для оружия/щита', 'sl_r_5.gif:Слот для кольца', 'sl_r_5.gif:Слот для кольца', 'sl_r_6.gif:Слот для брони', 'sl_r_6.gif:Слот для брони');
db_query('SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE used='.AP.'1'.AP.' and pl_id='.AP.$id.AP.'');
while ($row = db_fetch()) {
$it = explode("|",$row['i_param']);
$modstat='';
$mod=explode("|",$row['mod']);
foreach ($mod as $value){
$modstats=explode("@",$value);
$modstat[$modstats[0]]=$modstats[1];
}
if($row[slot]==5){$ret.="$row[id_item]@$row[num_a]|";}
$par='';
foreach ($it as $value) {
$stat=explode("@",$value);
switch($stat[0]){
case 0: $par[0]="$stat[1]"; break;
case 1:
$ud=explode("-",$stat[1]);
$tmp='';
if($modstat[1]!=''){
$tmp=explode("-",$modstat[1]);
}
$par[1]=$ud[0]+$tmp[0];
$par[2]=$ud[1]+$tmp[1];
break;
case 2: $par[7]=$row['dolg'];break;
case 9:
$par[3]=$stat[1]+$modstat[9];
break;
case 10: $par[4]="$stat[1]";break;
case 27: $par[5]="$stat[1]";break;
case 29: $par[6]="$stat[1]";break;
}
}
switch($row['mod_color']){
case 0: $rnn="<b>".$row[name].($row['modified']==1 ? "</b> [ап]" : "")."</b>"; break;
case 1: $rnn="<b><font color=#006600>".$row[ItemName]." [мод]".($row['modified']==1 ? "</b> [ап]" : "")."</b></font>"; break;
case 2: $rnn="<b><font color=#3333CC>".$row[ItemName]." [мод]".($row['modified']==1 ? "</b> [ап]" : "")."</b></font>"; break;
case 3: $rnn="<b><font color=#AF51B5>".$row[ItemName]." [мод]".($row['modified']==1 ? "</b> [ап]" : "")."</b></font>"; break;
}
$p="$par[0]|$par[1]|$par[2]|$par[3]|$par[4]|$par[5]|$par[6]|$par[7]";
$sl_free[$row['curslot']]=$row[gif].":".$rnn.":".$p;
$sl_id[$row['curslot']]=$row['id_item'];
$sl_pr[$row['curslot']]=$row['dolg']-$row['iznos'];
$v_c[$row['curslot']]=scode();
}
for($i=1; $i<=15; $i++){
$idd.=$sl_id[$i].'@';
$pr .= $sl_pr[$i].'@';
$item .= $sl_free[$i].'@';
$vcod.=$v_c[$i].'@';
}
if($sl_free[16]!='sl_r_6.gif:Слот для брони'){$pr .= $sl_pr[16].'@'; $item .= $sl_free[16].'@'; $idd .= $sl_id[16].'@';$vcod.=$v_c[16].'@';}
elseif($sl_free[17]!='sl_r_6.gif:Слот для брони'){$pr .= $sl_pr[17].'@'; $item .= $sl_free[17].'@'; $idd .= $sl_id[17].'@';$vcod.=$v_c[17].'@';}else{$item .= $sl_free[17].'@';}
$pr .= $sl_pr[18].'@'; $item .= $sl_free[18].'@'; $idd .= $sl_id[18].'@';$vcod.=$v_c[18].'@';
$pr .= $sl_pr[19]; $item .= $sl_free[19]; $idd .= $sl_id[19];$vcod.=$v_c[19];
if($s==1){$invs=","$idd","$vcod"";}
echo "$item"$invs,"$pr";
return substr_replace($ret, '', -1);
}
function ignor_add($nic){
$_SESSION['ignor'][$nic]=1;
}
function ignor_rem($nic){
unset($_SESSION['ignor'][$nic]);
}
function updateslot($act,$item,$pid,$slot)
{
switch($act){
case 0: mysql_query("UPDATE invent SET used='0', curslot='0' WHERE id_item='$item' and pl_id='$pid'");break;
case 1: mysql_query("UPDATE invent SET used='1', curslot='$slot' WHERE id_item='$item' and pl_id='$pid';");break;
case 2: mysql_query("UPDATE invent SET used='0', curslot='0' WHERE curslot='$slot' and pl_id='$pid'");mysql_query("UPDATE invent SET used='1', curslot='$slot' WHERE id_item='$item' and pl_id='$pid'");break;
case 3: db_query('UPDATE invent SET used=0, curslot=0 WHERE pl_id='.AP.$pid.AP.'');break;}
}
function calcstat($id){
$pl=mysql_fetch_array(mysql_query("SELECT SQL_CACHE * FROM `user` WHERE `id`='".$id."' LIMIT 1;"));
$um=explode("|",$pl['umen']);
$t=array(0=> 0,2,4);
$od=45;
$bl=0;
$mysql=mysql_query("SELECT `invent`.*, `items`.* FROM `items` INNER JOIN `invent` ON `items`.`id` = `invent`.`protype` WHERE `used`='1' AND `pl_id`='".$id."';");
while ($row = mysql_fetch_array($mysql)) {
$modstat='';
$item = explode("|",$row['i_param']);
$mod=explode("|",$row['mod']);
foreach ($mod as $value){
$modstats=explode("@",$value);
$modstat[$modstats[0]]=$modstats[1];
}
if($row['type']=='w20'){$bl=$row['block'];$tw=$row['type'];}
if($row['slot']>0 and $row['type']!='w20'){
$it = explode("|",$row['i_need']);
foreach ($it as $val) {
$need=explode("@",$val);
if($need[0]==28 and $need[1]>$od){
$od=$need[1];
$tw=$row['type'];
}
}
}
foreach ($item as $value) {
$k=1;
$stat=explode("@",$value);
if(in_array ($stat[0], $t)){$par[$stat[0]]='';continue;}
if($stat[0]==1){
$tmp=explode("-",$stat[1]);
switch($tw){
case w1: $k=($um[10]/300+$um[1]/150)+1;break;
case w2: $k=($um[10]/300+$um[2]/150)+1;break;
case w3: $k=($um[10]/300+$um[3]/150)+1;break;
case w4: $k=($um[10]/300+$um[4]/150)+1;break;
case w5: $k=($um[10]/300+$um[5]/150)+1;break;
case w6: $k=($um[10]/300+$um[6]/150)+1;break;
case w7: $k=($um[10]/300+$um[7]/150)+1;break;
case w20: $k=$um[10]/300+1;break;
}
$tmp[0]=round($tmp[0]*$k);$tmp[1]=round($tmp[1]*$k);
$tmp1=explode("-",$par[1]);
$modstat[1]!='' ? $tmp2=explode("-",$modstat[1]) : $tmp2='';
$tmp[0]+=$tmp1[0]+$tmp2[0];$tmp[1]+=$tmp1[1]+$tmp2[1]; continue;
}
$par[1]=implode("-",$tmp);
$par[$stat[0]]+=($stat[1]+$modstat[$stat[0]]);
}
if($row['damage_mod']!=0){
$dmod=explode("@",$row['damage_mod']);
$dmoddmg=explode("-",$dmod[1]);
$damage_mod[$dmod[0]][0]+=$dmoddmg[0];
$damage_mod[$dmod[0]][1]+=$dmoddmg[1];
}
}
for($dm=1;$dm<=4;$dm++){
$moddmg[$dm]=implode("-",$damage_mod[$dm]);
$dmgmod.=(($damage_mod[$dm]=='')?'':$dm."@".$moddmg[$dm]."|");
}
if($dmgmod==''){$dmgmod=0;}
$sil=$par[30]+$pl['sila'];
$dmg=explode("-",$par[1]);
$dmg[0]+=$sil;
$dmg[1]+=$sil*1.5;$par[1]=implode("-",$dmg);
switch($tw){
case '': $od=45;$od=round($od/(($um[0]/100+$um[10]/200)*0.15+1));$par[1]=round($sil*(1+$um[0]/300))."-".round($sil*(1+$um[0]/150)+1); break;
case w1: $od=round($od/(($um[1]/100+$um[10]/200)*0.15+1));break;
case w2: $od=round($od/(($um[2]/100+$um[10]/200)*0.15+1));break;
case w3: $od=round($od/(($um[3]/100+$um[10]/200)*0.15+1));break;
case w4: $od=round($od/(($um[4]/100+$um[10]/200)*0.15+1));break;
case w5: $od=round($od/(($um[5]/100+$um[10]/200)*0.15+1));break;
case w6: $od=round($od/(($um[6]/100+$um[10]/200)*0.15+1));break;
case w7: $od=round($od/(($um[7]/100+$um[10]/200)*0.15+1));break;
}
if($pl['type']!=3){
$buff=totembuffs();
// $totembuff = Array('9@0'/*сфинкс +100кб*/,'63@0'/*тигр +50 оружейника*/,'58@0'/*лев +50 странника*/,'invis@0'/*дракон невидимость*/,'attack@0'/*василиск нападение*/,'32@5'/*скорпион +10 удача +50% уловки*/,'31@6'/*рыба +10 ловкости +50% точности*/,'61@0'/*мутант +50 ювы*/,'mass@30'/*небесный кит +15 силы и +150 массы*/,'56@0'/*древний ящер +50 наблюд*/,'7@8'/*ворон смерти +50 мф сокрушения и стойкости*/,'exp@0'/*клинки 20% экспы на час*/);
if($buff==1){
switch($pl['thotem']){
case 0: $par[9]+=100; break;
case 1: $par[63]+=50; break;
case 2: $par[58]+=50; break;
case 3: break;
case 4: break;
case 5: $par[32]+=10; $par[5]+=50; break;
case 6: $par[31]+=10; $par[6]+=50; break;
case 7: $par[61]+=50; break;
case 8: $par[30]+=15; break;
case 9: $par[56]+=50; break;
case 10: $par[7]+=50; $par[8]+=50; break;
case 11: break;
}
}
}
$hps=(1500/(($par[62]+$um[30])/100+1));
$mps=(9000/(($par[66]+$um[33])/100+1));
$clnablud=0;
if($pl['clan_id']!='none'){
$clsql=mysql_fetch_array(mysql_query("SELECT * FROM `clans` WHERE `clan_id`='".$pl['clan_id']."';"));
$par[30]+=$clsql['cl_sila'];
$par[31]+=$clsql['cl_lovkost'];
$par[32]+=$clsql['cl_ydacha'];
$par[33]+=$clsql['cl_zdorov'];
$par[34]+=$clsql['cl_znan'];
$uphp+=$clsql['cl_hp'];
$upmp+=$clsql['cl_mp'];
$clnablud=100-$clsql['cl_up']-$clsql['cl_buyup'];
}
for($i=0;$i<=71;$i++){
$st.="$par[$i]|";
}
$rank_i = ($par[30]+$par[31]+$$par[32]+$par[33]+$par[34]+$par[35]+$par[9])*0.3 + ($par[5]+$par[6]+$par[7]+$par[8]+$par[10])*0.03 + ($pl["hp_all"]+$pl["mp_all"])*0.04+(round($sil*(1+$um[0]/300))+round($sil*(1+$um[0]/150)+1))*0.3;
mysql_query("UPDATE `user` SET `damage_mods`='".$dmgmod."',`bl`='".$bl."',`od`='".$od."',`st`='".$st."',`hps`='".$hps."',`mps`='".$mps."',`rank_i`='".$rank_i."' WHERE `id`='".$id."' LIMIT 1;");
if($uphp>0 or $upmp>0){calchp3($uphp,$upmp);}
else{calchp();}
}
function allparam($pl){
$pt=explode("|",$pl['st']);
$um=explode("|",$pl['umen']);
$mass=mysql_fetch_assoc(mysql_query("SELECT Sum(`items`.`massa`) AS `mass` ,`invent`.`pl_id`,`invent`.`bank` FROM `items` INNER JOIN `invent` ON `items`.`id` = `invent`.`protype` WHERE `pl_id`='".$pl['id']."' AND `invent`.`bank`='0' AND `invent`.`auction`='0';"));
$trw=affect($pl['affect'],3);
if(!empty($trw)){
foreach ($trw as $key => $val){
switch($key){
case'30':
$pl['sila']+=$val;
break;
case'31':
$pl['lovk']+=$val;
break;
case'32':
$pl['uda4a']+=$val;
break;
case'33':
$pl['zdorov']+=$val;
break;
case'34':
$pl['znan']+=$val;
break;
case'27':
$pl['hp']+=$val;
break;
case'29':
$pl['mp']+=$val;
break;
default:
$pt[$key]+=$val;
break;
}
}
}
foreach (explode("|",$pl['perk']) as $key => $val){
if($val==''){
$val=0;
}
$perk[$key]=$val;
}
$pt[30]+=($pl['sila'])+($perk[7]*2);
$pt[31]+=($pl['lovk'])+($perk[9]*2);
$pt[32]+=($pl['uda4a'])+($perk[10]*2);
$pt[33]+=($pl['zdorov'])+($perk[8]*2);
$pt[34]+=($pl['znan'])+($perk[11]*2);
$pt[35]+=($pl['mudr']);
for($i=30;$i<=35;$i++){
if($pt[$i]<0)$pt[$i]=1;
}
if($pl['level']<5){
$od=80;
}else if($pl['level']<10){
$od=90;
}else{
$od=100;
}
$pt[5]+=$perk[19]*30;
$pt[6]+=$perk[0]*30;
$pt[7]+=$perk[5]*30;
$pt[8]+=$perk[15]*30;
$pt[9]+=$perk[32]*30;
//$pt[10]+=$pl[10]+($perk[19]*30);
if($pl['level']<5){$od=80;}else if($pl['level']<10){$od=90;}else $od=100;
$pt[28]=$od+$um[11]+$pt[28];
$pt[36]+=$um[1];
$pt[37]+=$um[2];
$pt[38]+=$um[3];
$pt[39]+=$um[4];
$pt[40]+=$um[5];
$pt[41]+=$um[6];
$pt[42]+=$um[7];
$pt[43]+=$um[8];
$pt[44]+=$um[9];
$pt[45]+=$um[12]+($perk[27]*25);
$pt[46]+=$um[13]+($perk[24]*25);//магия огня и воды
$pt[49]+=$um[16]+($perk[28]*25);
$pt[50]+=$um[17]+($perk[29]*25);//сопротивление магии огня и воды
$pt[53]+=$um[21];
$pt[54]+=$um[22];
$pt[55]+=$um[23];
$pt[56]+=$um[24];
$pt[57]+=$um[25];
$pt[58]+=$um[26];
$pt[59]+=$pl['fish_skill'];
$pt[60]+=$pl['les'];
$pt[61]+=$um[29];
$pt[62]+=$um[30];
$pt[63]+=$um[31];
$pt[64]+=$um[32];
$pt[65]+=$pl['shaht'];
$pt[66]+=$um[33];
$pt[68]+=$pl['alhim'];
$pt[69]+=$pl['ohotnik'];
$pt[70]+=$pl['trav'];
$pt[72]=$pl['level'];
$pt[73]=$pt[71];
$pt[71]=$mass['mass'];
$pt[99]=$um[20];
$pt[101]=0;
$pt[102]=0;
$pt[103]=0;
$pt[104]=0;
if($pl['damage_mods']!=0){
$mods=explode("|",$pl['damage_mods']);
foreach($mods as $mval){
if($mval!=''){
$mod=explode("@",$mval);
$pt[$mod[0]+100]=$mod[1];
}
}
}
return $pt;
}
function sqlrr($q,$count=0)
{
if (empty($count)) return mysql_result(mysql_query($q),0);
else
return mysql_result(mysql_query($q),$count);
}
function used($id,$login,$loc){
$user=$_SESSION['user'];
$pl=mysql_fetch_assoc(mysql_query("SELECT * FROM user WHERE login='$login'"));
if($pl==''){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Персонажа "$login" несуществует!</font></font></b><br>";
}else if($pl[last]<(time()-300)){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Персонажа "$login" нет в игре!</font></font></b><br>";
}else if($loc!=$pl[loc]){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Персонажа "$login" нет в этой локации!</font></font></b><br>";
}else if($pl[fight]>0){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Неудачно! Персонаж "$login" в бою!</font></font></b><br>";
}else{
$it=mysql_fetch_assoc(mysql_query("SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE id_item='$id'"));
switch ($it[num_a]) {
case 32:
$pl[hp]+=$it[effect];
$msg[0]="Зелье Восстановления $it[effect] HP";
break;
case 33:
$pl[mp]+=$it[effect];
$msg[0]="Зелье Восстановления $it[effect] MP";
break;
}
if($pl[hp]>$pl[hp_all]){
$pl[hp]=$pl[hp_all];
}
if($pl[mp]>$pl[mp_all]){
$pl[mp]=$pl[mp_all];
}
//---пересчет восстановления
$hps=$pl['hp_all']/$pl['hps'];
$mps=$pl['mp_all']/$pl['mps'];
$chp=time()+(($pl['hp_all']-$pl['hp'])/$hps);
$cmp=time()+(($pl['mp_all']-$pl['mp'])/$mps);
//-----------------
if($_SESSION['user']['login']!=$login){
$ms="top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#cc0000>Внимание!</font></b> Персонаж <b>".$_SESSION['user']['login']."</b> пременил к вам <b>"$it[name]".</b></font><BR>'+'');";
chmsg($ms,$login);
}
db_query('UPDATE user SET hp='.AP.$pl[hp].AP.', mp='.AP.$pl[mp].AP.', chp='.AP.$chp.AP.', cmp='.AP.$cmp.AP.' WHERE id='.AP.$pl[id].AP.'LIMIT 1;');
$msg[msg]="<b><font class=nickname><font color=#cc0000>Вы удачно применили "$msg[0]"!</font></font></b><br>";
it_break($id);
}
return $msg;
}
function it_break($id){
$it = mysql_fetch_assoc(mysql_query("SELECT `invent`.`iznos`,`invent`.`dolg`,`items`.`acte` FROM `items` INNER JOIN `invent` ON `items`.`id` = `invent`.`protype` WHERE `id_item`='".$id."'"));
$it['iznos']+=1;
if($it['acte']!='' and $it['iznos'] == $it['dolg']){
mysql_query("DELETE FROM `invent` WHERE `id_item`='".$id."' LIMIT 1;");
}else{
mysql_query("UPDATE `invent` SET `iznos`='".$it['iznos']."' WHERE `id_item`='".$id."' LIMIT 1;");
}
}
function Guild_Logs($uid,$see,$reason){
mysql_query("INSERT INTO `pvu_logs` (`uid`, `see`, `time_unix`, `time_norm`,`reason`) VALUES ('".$uid."', '".$see."', '".time()."', '".date("Y-m-d H:i:s",time())."','".$reason."');");
}
function transfer($id,$login,$loc,$name,$transferer,$sum,$player,$ttext = NULL){
global $player;
$login=chars($login);
$pl=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `login`='$login'"));
if($pl==''){
$msg['msg']="<b><font class=nickname><font color=#cc0000>Персонажа "".$login."" несуществует!</font></font></b><br>";
}else if($pl['last']<(time()-300)){
$msg['msg']="<b><font class=nickname><font color=#cc0000>Персонажа "".$pl['login']."" нет в игре!</font></font></b><br>";
}else if($player['loc']!=$pl['loc'] or $player['pos']!=$pl['pos']){
$msg['msg']="<b><font class=nickname><font color=#cc0000>Персонажа "".$pl['login']."" нет в этой локации!</font></font></b><br>";
}else if($pl['fight']>0){
$msg['msg']="<b><font class=nickname><font color=#cc0000>Неудачно! Персонаж "".$pl['login']."" в бою!</font></font></b><br>";
}else{
if($id!=0){
$GetItem = mysql_fetch_assoc(mysql_query("SELECT `invent`.*,`items`.* FROM `items` INNER JOIN `invent` ON `items`.`id` = `invent`.`protype` WHERE `id_item`='".$id."' AND `pl_id`='".$player['id']."'"));
if($GetItem){
mysql_query("UPDATE `invent` SET `pl_id` = '".$pl['id']."' WHERE `id_item` = '".intval($id)."'LIMIT 1;");
Guild_Logs($player['id'],"4","|0|".getIP()."|".$pl['ip']."|".$pl['level']."|".$pl['login']."|".$GetItem['level']."|".$GetItem['price']."|".($GetItem['dolg']-$GetItem['iznos'])."|".$GetItem['dolg']."|0|".$GetItem['name']);
Guild_Logs($pl['id'],"4","|1|".$pl['ip']."|".getIP()."|".$player['level']."|".$player['login']."|".$GetItem['level']."|".$GetItem['price']."|".($GetItem['dolg']-$GetItem['iznos'])."|".$GetItem['dolg']."|0|".$GetItem['name']);
$msg['msg']="<b><font class=nickname><font color=#cc0000>Вы удачно передали "".$name.""!</font></font></b><br>";
$ms="top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#cc0000>Внимание!</font></b> Персонаж <b>".$player['login']."</b> передал вам "<b>".$name."</b>".</font><BR>'+'');";
}
}else{
if($pl['level']<5){
$msg['msg']="<b><font class=nickname><font color=#cc0000>Игровую валюту можно передовать только персонажам достигшим 5 уровень!</font></font></b><br>";
}else if($player['nv']<$sum){
$msg['msg']="<b><font class=nickname><font color=#cc0000>У вас недостаточно средств</font></font></b><br>";
}else{
$msg['msg']="<b><font class=nickname><font color=#cc0000>Вы удачно передали <b>$sum ER.</b>!</font></font></b><br>";
mysql_query("UPDATE `user` SET `nv`=`nv`+'".$sum."' WHERE `id`='".$pl['id']."' LIMIT 1;");
mysql_query("UPDATE `user` SET `nv`=`nv`-'".$sum."' WHERE `login`='".$player['login']."' LIMIT 1;");
chmsg("top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#cc0000>Внимание!</font></b> Вы удачно передали "<b>Игровую валюту</b>" в размере <b>$sum</b> ER персонажу <b>".$login."</b>.</font><BR>'+'');",$transferer);
$ms="top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#cc0000>Внимание!</font></b> Персонаж <b>$transferer</b> передал вам "<b>$name</b>" в размере <b>$sum ER.</b></font><BR>'+'');";
Guild_Logs($player['id'],"2","|0|".getIP()."|".$pl['ip']."|".$pl['level']."|".$pl['login']."|".$sum."|0|".$ttext);
Guild_Logs($pl['id'],"2","|1|".$pl['ip']."|".getIP()."|".$player['level']."|".$player['login']."|".$sum."|0|".$ttext);
}
}
chmsg($ms,$login);
}
return $msg;
}
function gift($id,$login,$loc,$name,$gifter,$sum){
$login=chars($login);
$pl=mysql_fetch_assoc(mysql_query("SELECT * FROM user WHERE login='$login'"));
if($pl==''){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Персонажа "$login" несуществует!</font></font></b><br>";
}else if($pl[last]<(time()-300)){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Персонажа "$login" нет в игре!</font></font></b><br>";
}else if($loc!=$pl[loc]){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Персонажа "$login" нет в этой локации!</font></font></b><br>";
}else if($pl[fight]>0){
$msg[msg]="<b><font class=nickname><font color=#cc0000>Неудачно! Персонаж "$login" в бою!</font></font></b><br>";
}else{
$gift="Подарок от "$gifter"";
db_query('UPDATE invent SET pl_id='.AP.$pl[id].AP.', gift='.AP.$gift.AP.' WHERE id_item='.AP.$id.AP.'LIMIT 1;');
$msg[msg]="<b><font class=nickname><font color=#cc0000>Вы подарили "$name" для $login!</font></font></b><br>";
log_write("present",$name,$sum,$login);
$ms="top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#cc0000>Внимание!</font></b> Получен подарок <b>"$name"</b> от <b>$gifter.</b></font><BR>'+'');";
chmsg($ms,$login);
}
return $msg;
}
function chmsg($msg,$login){
mysql_query("INSERT INTO `chat` (`time`,`login`,`dlya`,`msg`) VALUES ('".time()."','sys','".(($login)?'<'.$login.'>':'')."','".addslashes($msg)."');");
}
function testcompl(){
$pl=player();
$st=allparam($pl);
db_query('SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE used='.AP.'1'.AP.' and pl_id='.AP.$pl[id].AP.' ORDER BY slot');
while($row = db_fetch()) {
$it = explode("|",$row['i_need']);
if($row['slot']==5){
$el+=1;
}
if($row[slot]==5 and $el>$st[3]){
updateslot(0,$row['id_item'],$pl['id'],0);
continue;
}
foreach ($it as $value){
$stat=explode("@",$value);
if($stat[0]==72){
$stat[1] = $row['level'];
}
if($st[$stat[0]]<$stat[1]){
if($row['slot']==4){
$st[3]=0;
}
$s[]="id_item='".$row['id_item']."'";
}
}
}
if($s!=''){
$s=implode(" or ",$s);
mysql_query("UPDATE invent SET used='0', curslot='0' WHERE $s and pl_id='$pl[id]'");
calcstat($pl['id']);
testcompl();
}
if($pl['fight']==0){
save_hp();
}
calchp();
}
function affect($UserID,$var){
/* DataBase */
$effects = array('','Боевая травма','Тяжелая травма','Средняя травма','Легкая травма','Излечение','','','Темное проклятие','Благословение ангела','Магическое зеркало','Берсеркер','Милосердие Создателя','Алкогольное опьянение','Свиток Покровительства','Блок','Тюрьма','Молчанка','Форумная молчанка','Свиток Неизбежности','Зелье Колкости','Зелье Загрубелой Кожи','Зелье Просветления','Зелье Гения','Яд','Зелье Иммунитета','Зелье Силы','Зелье Защиты От Ожогов','Зелье Арктических Вьюг','Зелье Жизни','Зелье Сокрушительных Ударов','Зелье Стойкости','Зелье Недосягаемости','Зелье Точного Попадания','Зелье Ловкости','Зелье Удачи','Зелье Огненного Ореола','Зелье Метаболизма','Зелье Медитации','Зелье Громоотвода','Зелье Сильной Спины','Зелье Скорбь Лешего','Зелье Боевой Славы','Зелье Ловких Ударов','Зелье Спокойствия','Зелье Мужества','Зелье Человек-Гора','Зелье Секрет Волшебника','Зелье Инквизитора','Зелье Панциря','','Секретное Зелье','Зелье Скорости','Зелье Соколиный Взор','Зелье Подвижности','Фронтовые 100 грамм','','','','','','','','','','','','','','','Зелье Кровожадности','Зелье Быстроты','Свиток Величия','Свиток Каменной кожи','Слеза Создателя','Гнев Локара','Дар Иланы','Новогодний бонус','Эликсир из Подснежника','Молодильное яблочко','Благословение Иланы','День всех влюбленных','Галантный кавалер');
/* Effects Show */
$Query = mysql_query("SELECT * FROM `effects` WHERE `userid`='".$UserID."' AND `time`>'".time()."' ORDER BY `time` DESC");
while($row = mysql_fetch_assoc($Query)){
/* Вычесляем время */
if($row['time']>time()){
$row['time']-=time();
$ch=floor($row['time']/3600);
$min=floor(($row['time']-($ch*3600))/60);
$sec=floor(($row['time']-($ch*3600))%60);
if($var==0){
$row['time']=$ch."ч ".$min."мин ";
}elseif($var==1){
$row['time']=(($ch<10)?'0'.$ch:$ch).":".(($min<10)?'0'.$min:$min).":".(($sec<10)?'0'.$sec:$sec);
}
}
/* Считаем статы */
$params=explode(";",$row['f_params']);
foreach ($params as $f_params){
$sts=explode("/",$f_params);
$stat[$sts[0]]+=$sts[1];
}
/* Колество травм на вывод, допустим (x2) */
$Effect[$row['eff_id']] += 1;
/* Подсчет и написание текстов */
if($var==1 and $effects[$row['eff_id']] != '' and $Effect[$row['eff_id']] == 1){
$CountEff = mysql_num_rows(mysql_query("SELECT * FROM `effects` WHERE `userid`='".$UserID."' AND `time`>'".time()."' AND `eff_id`='".$row['eff_id']."' ORDER BY `time` DESC"));
$s.="[".$row['eff_id'].",'<b>".$effects[$row['eff_id']]."</b> (x".$CountEff.") (еще ".$row['time'].")'],";
}
if($var==0 and !empty($effects[$row['eff_id']])){
$s.= $effects[$row['eff_id']]." еще ".$row['time'].",";
}
if($var==2 and !empty($effects[$row['eff_id']])){
$s.= $effects[$row['eff_id']]."<br>еще ".$row['time']."<br>";
}
}
if($var == 0){
return substr($s,0,strlen($s)-1);
}elseif($var == 3){
return $stat;
}else{
return $s;
}
}
function effect($aff,$var){
$aff=explode("|",$aff);
foreach ($aff as $val){
$v=0;
$par=explode("@",$val);
if($par[1]>time()){
$par[1]-=time();
$ch=floor($par[1]/3600);
$min=floor(($par[1]-($ch*3600))/60);
$par[1]=$ch."ч ".$min."м ";
}else{
$par[1]=0;
continue;
}
$par2=explode(";",$par[0]);
foreach ($par2 as $val2){
$sts=explode("/",$val2);
$stat[$sts[0]]+=$sts[1];
switch($par[2]){
case 1: $tr="Легкая травма";$v=1;break;
case 2: $tr="Средняя травма";$v=1;break;
case 3: $tr="Тяжелая травма";$v=1;break;
case 4: $tr="Боевая травма";$v=1;break;
}
}
if($var==1 and $v==1){
$s .= $tr."<br>еще ".$par[1]."<br>";
}
if($var==0 and $v==1){
$s .= $tr." еще ".$par[1].",";
}
if($var==2 and $v==1){
$s .= $tr."<br>еще ".$par[1]."<br>";
}
}
if($var==3){
return $stat;
}
if($var==2 and $s!=''){
foreach ($stat as $key => $val){
$key = stats($key);
$st .= "<tr><td><font class=travma> ".$key.": </td><td><div align=center><font class=travma><font color=#D90000><b>".$val."</div></td></tr>";
}
$s = "<tr><td><table cellpadding=0 cellspacing=0 border=0 width=100%><tr><td colspan=3><img src=http://image.gamele.ru/1x1.gif width=1 height=1></td></tr><tr><td bgcolor=#eaeaea><div align=center><img src=http://image.gamele.ru/redcross.gif width=19 height=19 hspace=2 vspace=2></div></td><td bgcolor=#cccccc><img src=http://image.gamele.ru/1x1.gif width=1 height=1></td><td bgcolor=#f5f5f5><font class=travma><div align=center>$s</div><hr size=1 color=#CCCCCC><table cellpadding=0 cellspacing=3 border=0 width=100%>$st<tr><td colspan=2><img src=http://image.gamele.ru/1x1.gif width=1 height=6></td></table></font></td></tr><tr><td colspan=3><img src=http://image.gamele.ru/1x1.gif width=1 height=5></td></tr></table></td></tr>";
}
return $s;
}
function test_affect($aff){
$aff=explode("|",$aff);
foreach ($aff as $val){
$par=explode("@",$val);
if($par[1]<time() and $par[1]!=''){
continue;
}
$a[]=$val;
}
$aff=implode("|",$a);
return $aff;
}
function add_trw($pl,$persent){
$trvm_logs = array(1=>array('«Множественные повреждения основания свода черепа»'),2=>array('«Рези в желудке, остекленение взгляда, помутнение рассудка (чтобы испытать действие нового зелья, не обязательно было пить его самому)»','«Клиническая смерть (возможно экстремальные виды отдыха не для вас… подумайте, если еще не прошло получаса)»','«Сдвиг позвонков (забудьте о знаниях, смолоду качайте мускулатуру, учиться то оно ведь никогда не поздно)»','«Раздроблены обе ступни, вывих обеих ног (если перед вами танк, то, возможно, не стоит под него кидаться)»','«Проникающее ранение грудной клетки (и не смотрите вы так на торчащую из вас железку, да в вас попали)»','«Перелом затылочной кости (не крутите в бою головой, ибо в это время можете получить по шее)»','«Гангрена (чтобы ходить по стеклам нужно быть йогом, а вы хоть дома тапочки снимали?)»','«Внутричерепное давление (выньте же наконец ножичек из глаза, он вам что не мешает?)»','«Коллапс легких (забыли как дышать? у вас 5 минут чтобы вспомнить все)»','«Раздробление позвонков (такой груз знаний не по вашим возможностям)»','«Кома (и нечего из нее выходить, лежите и наслаждайтесь)»','«Потеря нижней конечности (купи протез и все пройдет)»','«Перелом гортани (много говорите, а противник делает)»','«Выпадение волос (во многих знаниях скорая старость)»','«Эпилепсия (у вас осталось две попытки…)»'),3=>array('«Разрыв сухожилий (плохо двигался в бою, послали к ближайшему забору, табличку «Осторожно злая собака» проигнорировал…)»','«Бронхит (привязали к столбу, обливали ледяной водой, хотели укрепить организм, забыли отвязать после боя)»','«Изжога (в организме не хватало железа, противник решил помочь, засунул под ребро свою железку)»','«Боли в ягодичных мышцах (на правах рекламы: чем тяжелее сапоги, тем круче по противнику пинки)»','«Камни в почках (будете кусать край щита в приливе ярости, будете иметь проблемы со здоровьем)»','«Перелом голени (много ходил в поисках знаний, забрел не туда, попросили больше не приходить)»','«Кровотечение, перелом носа (не бейте противника головой, особенно если он в доспехах)»','«Тупая травма ушной раковины, заражение мозга (не прячьте оружие под подушку, чревато)»','«Перелом плеча (не стоит брать на себя слишком много, особенно если вы мало знаете)»','«Рваная рана бедра (не стойте столбом, когда противник готов грызть вас зубами)»','«Вывих челюсти (пытался заболтать противника, а тот говорил на другом языке)»','«Вывих колена (не лезьте в чужую душу, там темно и скользко)»','«Ожег ушей (увидел команду соперников, смутился, покраснел)»','«Заворот кишок (плохо кушал, усвоение материала понижено)»','«Перелом ребра (в бою юмор неуместен, могут не понять)»','«Боли в пояснице (в бою надо драться, а не танцевать)»'),4=>array('«Перелом ключицы (бойцы вражеской команды решили поспорить, а куриной косточки под рукой не оказалось)»','«Разрыв пупка, удача отвернулась лицом к лесу (следовал моде, в роддоме обменял рубашку на памперсы)»','«Легкий паралич нижних конечностей, связанный с сильным испугом»','«Вывих извилин до формы зигзагов в результате удара по пятке»','«Перелом стенок глазницы, частичные изменения в ориентации»','«Раздутие грудных мышц вследствие излишней самоуверенности»','«Потеря почки (противник в бою оказался черным хирургом)»','«Обострение радикулита с последующим скрючиванием»','«Усыхание мозга и превращение его в мозжечок»','«Сотрясение тысячелепесткового чакрама»','«Обрыв сердца, распухание левой пятки','«Разрыв склера с выпадением оболочек»','«Вывих среднего пальца правой ноги»','«Ушиб четырехлепесткового чакрама»','«Гематома грудной мышцы»'));
if($pl['invisible']<time()){
$logpl='[1,'.$pl['side'].',"'.$pl['login'].'",'.$pl['level'].','.$pl['sklon'].',"'.(($pl['clan_gif']!='chaos.gif')?$pl['clan_gif']:'').'"]';
}else{
$logpl='[4,'.$pl['side'].']';
}
if($persent <= 100){
$rand = rand(0,100);
if($rand <= $persent){
$rand = rand(0,100);
if($rand < 50){
$tr = 4;
$time = time()+trw_time(rand(1,3));
$sts = rand(1,2)/10;
$trvm = 'легкую травму';
}else if($rand < 80){
$tr = 3;
$time = time()+trw_time(rand(3,6));
$sts = rand(3,4)/10;
$trvm = 'среднюю травму';
}else{
$tr = 2;
$time = time()+trw_time(rand(7,9));
$sts = rand(5,6)/10;
$trvm = 'тяжёлую травму';
}
}
$stt = rand(0,3);
switch($stt){
case 0:
$st = "30/-".round($pl['sila']*$sts);
break;
case 1:
$st = "31/-".round($pl['lovk']*$sts);
break;
case 2:
$st = "32/-".round($pl['uda4a']*$sts);
break;
case 3:
$st = "34/-".round($pl['znan']*$sts);
break;
}
}else{
$MaxStat = array('sila'=>$pl['sila'],'lovk'=>$pl['lovk'],'uda4a'=>$pl['uda4a'],'znan'=>$pl['znan']);
$tr = 1;
$time = time()+trw_time(rand(8,9));
$st = '30/-'.(($pl['sila'] == max($MaxStat))?'90':rand(30,45)).';31/-'.(($pl['lovk'] == max($MaxStat))?'90':rand(30,45)).';32/-'.(($pl['uda4a'] == max($MaxStat))?'90':rand(30,45)).';34/-'.(($pl['znan'] == max($MaxStat))?'90':rand(30,45));
$trvm = 'осложненную травму';
mysql_query("UPDATE `invent` SET `used` = '0' WHERE `pl_id` = '".$pl['id']."'");
calcstat($pl['id']);
}
mysql_query("INSERT INTO `effects` (`userid`,`time`,`eff_id`,`f_params`) VALUES ('".$pl['id']."','".$time."','".$tr."','".$st."');");
testcompl();
$ret .= ',[[0,"'.date("H:i").'"],'.$logpl.'," получил'.(($pl['sex']=='female')?'а':'').' '.$trvm.' <font color=#E34242><b>'.($trvm_logs[$tr][rand(0,(count($trvm_logs[$tr])-1))]).'</b></font>."]';
return $ret;
}
function trw_time($t){
switch($t){
case 1: $tr=900; break;
case 2: $tr=1800;break;
case 3: $tr=2700;break;
case 4: $tr=3600;break;
case 5: $tr=5400;break;
case 6: $tr=10800;break;
case 7: $tr=21600;break;
case 8: $tr=43200;break;
case 9: $tr=86400;break;
}
return $tr;
}
function stats($st){
switch($st)
{
case 0: $st="Гравировка"; break;
case 1: $st="Удар";break;
case 2: $st="Долговечность";break;
case 3: $st="Карманов";break;
case 4: $st="Материал";break;
case 5: $st="Уловка";break;
case 6: $st="Точность";break;
case 7: $st="Сокрушение";break;
case 8: $st="Стойкость";break;
case 9: $st="Класс брони";break;
case 10: $st="Пробой брони";break;
case 11: $st="Пробой колющим ударом";break;
case 12: $st="Пробой режущим ударом";break;
case 13: $st="Пробой проникающим ударом";break;
case 14: $st="Пробой пробивающим ударом";break;
case 15: $st="Пробой рубящим ударом";break;
case 16: $st="Пробой карающим ударом";break;
case 17: $st="Пробой отсекающим ударом";break;
case 18: $st="Пробой дробящим ударом";break;
case 19: $st="Защита от колющих ударов";break;
case 20: $st="Защита от режущих ударов";break;
case 21: $st="Защита от проникающих ударов";break;
case 22: $st="Защита от пробивающих ударов";break;
case 23: $st="Защита от рубящих ударов";break;
case 24: $st="Защита от карающих ударов";break;
case 25: $st="Защита от отсекающих ударов";break;
case 26: $st="Защита от дробящих ударов";break;
case 27: $st="НР";break;
case 28: $st="Очки действия";break;
case 29: $st="Мана";break;
case 30: $st="Cила";break;
case 31: $st="Ловкость";break;
case 32: $st="Удача";break;
case 33: $st="Здоровье";break;
case 34: $st="Знания";break;
case 35: $st="Мудрость";break;
case 36: $st="Владение мечами";break;
case 37: $st="Владение топорами";break;
case 38: $st="Владение дробящим оружием";break;
case 39: $st="Владение ножами";break;
case 40: $st="Владение метательным оружием";break;
case 41: $st="Владение алебардами и копьями";break;
case 42: $st="Владение посохами";break;
case 43: $st="Владение экзотическим оружием";break;
case 44: $st="Владение двуручным оружием";break;
case 45: $st="Магия огня";break;
case 46: $st="Магия воды";break;
case 47: $st="Магия воздуха";break;
case 48: $st="Магия земли";break;
case 49: $st="Сопротивление магии огня";break;
case 50: $st="Сопротивление магии воды";break;
case 51: $st="Сопротивление магии воздуха";break;
case 52: $st="Сопротивление магии земли";break;
case 53: $st="Воровство";break;
case 54: $st="Осторожность";break;
case 55: $st="Скрытность";break;
case 56: $st="Наблюдательность";break;
case 57: $st="Торговля";break;
case 58: $st="Странник";break;
case 59: $st="Рыбалка";break;
case 60: $st="Лесоруб";break;
case 61: $st="Ювелирное дело";break;
case 62: $st="Самолечение";break;
case 63: $st="Оружейник";break;
case 64: $st="Доктор";break;
case 65: $st="Шахтер";break;
case 66: $st="Быстрое восстановление маны";break;
case 67: $st="Лидерство";break;
case 68: $st="Алхимия";break;
case 69: $st="Развитие горного дела";break;
case 70: $st="Травничество";break;
}
return $st;
}
function endbat($id,$t){
$side=array(1=>2,2=>1);
$order=array(1=>"ASC",2=>"DESC");
db_query('UPDATE arena SET vis="3" WHERE id_battle='.AP.$id.AP.'LIMIT 1;');
$sql=mysql_query("SELECT `arena`.`id_battle`,`arena`.`travma`,`arena`.`bt`,`user`.`type`,`user`.`premium`,`user`.`id`,`fight_users`.`side`,`user`.`sklon`,`user`.`clan_gif`,`user`.`clan_id`,`user`.`level`,`user`.`login`,`fight_users`.`dmg`,`user`.`wins`,`user`.`hp_all`,`user`.`invisible` FROM `user`,`arena` LEFT JOIN `fight_users` ON `arena`.`id_battle` = `fight_users`.`battle` WHERE `fight_users`.`id` = `user`.`id` AND `arena`.`id_battle` = '".$id."' ORDER BY `fight_users`.`side` ".$order[$t[0]]."");
if(mysql_num_rows($sql)!=0){
while ($p = mysql_fetch_assoc($sql)) {
$userprem=explode("|",$p['premium']);
$prsql=mysql_fetch_array(mysql_query("SELECT * FROM premium_info WHERE id='".$userprem[0]."';"));
$wins=explode("|",$p['wins']);
if($p['bt']==1){
$p['bt']=2;
}
if($p['id']<10000){
db_query('UPDATE user SET battle='.AP.'0'.AP.', fight='.AP.'0'.AP.', dmg=default WHERE id='.AP.$p['id'].AP.';');
}
if($p['side']==$t[0]){
if($p['invisible']<time()){
$win.=',[1,'.$p['side'].',"'.$p['login'].'",'.$p['level'].','.$p['sklon'].',"'.(($p['clan_gif']!='chaos.gif')?$p['clan_gif']:'').'"]," "';
}else{
$win.=',[4,'.$p['side'].',"",,,""]," "';
}
$k3=1;
$wins[$p['bt']]+=1;
}else if($t[0]!=0){
$k3=0.2;
$wins[$p['bt']+=1]+=1;
}else{
$k3=0.5;
}
$c1=sqlrr("SELECT COUNT(id) FROM `fight_users` WHERE `battle`=".$player["battle"]." and side=1",0);
$c2=sqlrr("SELECT COUNT(id) FROM `fight_users` WHERE `battle`=".$player["battle"]." and side=2",0);
## new module for exp.
$k=($t[$side[$p["side"]]]+5)/($t[$p["side"]]+5);
if ($p["travma"]<=10) $k2 = 2/5;
if ($p["travma"]==30) $k2 = 3/5;
if ($p["travma"]==50) $k2 = 4/5;
if ($p["travma"]==80) $k2 = 5/4;
if ($p["travma"]>80) $k2 = 5/4;
$dmg=explode(",",$p["dmg"]);
$ex=exp_level($p["level"]);
$exp = floor(abs($dmg[1]*$k*($c1/$c2)*$k2*$dmg[6] + 1*$p["level"]));
//ФОРМУЛА ОПЫТА
$ex=exp_level($p[level]); //базовый опыт
$exp1=($dmg[1]*($ex['ex']/$p['hp_all'])); // умножаем урон на базовый опыт
$exp2=$dmg[6]*200+1; //первая цифра отвечающая за опыт - зависит от количества убитых противников максимум 1.4 при 8 противниках
$exp3=($k*$k2*$k3)/4; //коэффициэнты
if($dmg[6]==0){$dmg[6]=1;}
$exp=round(($exp1*$exp2*$exp3)*($prsql['exp'] + ($t['type'] == 1 ? ((($t['sklon']!=$p['sklon'] and $t['sklon']!=0) ? $prsql['exp_sklon']-1 : 0.1) + $prsql['exp_pvp']-1) : 0)));
//$exp=round(($exp1*$exp2*$exp3)/$dmg[6]); *($prsql['exp'] + ($t['type'] == 1 ? ((($t['sklon']!=$p['sklon'] and $t['sklon']!=0) ? $prsql['exp_sklon']-1 : 0.1) + $prsql['exp_pvp']-1) : 0))
//КОНЕЦ ФОРМУЛЫ ОПЫТА
if ($p["level"]==0 && $exp>80*$prsql['exp_max']) $exp = 80*$prsql['exp_max'];
if ($p["level"]<5 && $p["level"]>=1 && $exp>9000*$prsql['exp_max']) $exp = 9000*$prsql['exp_max'];
if ($p["level"]>=5 && $p["level"]<10 && $exp>15000*$prsql['exp_max']) $exp = 15000*$prsql['exp_max'];
if ($p["level"]>=10 && $p["level"]<15 && $exp>50000*$prsql['exp_max']) $exp = 50000*$prsql['exp_max'];
if ($p["level"]>=15 && $exp>100000) $exp = 100000;
if ($exp>100000*$prsql['exp_max']) $exp = 100000*$prsql['exp_max'];
## Если проебал, пошел нахуй опыт делим на 4 !!!
if ($k3 != 1) $exp = floor($exp/4);
## Сервис опыт х50
if ($p["rashexps"]==1) $exp = floor($exp*1.50);
mysql_query("UPDATE `user` SET `wins`='".implode("|",$wins)."',`victories`='".$wins[0]."',`losses`='".$wins[1]."',`bot_victories`='".$wins[2]."',`bot_losses`='".$wins[3]."',`dmg`='".$exp."' WHERE `id`='".$p['id']."' AND `id` > '9999' LIMIT 1;");
//-- Начало повышения доблести
if ($p["loc"] = 6 or $p["loc"] = 7 or $p["loc"] = 8 or $p["loc"] = 9 or $p["loc"] = 10 or $p["loc"] = 11 or $p["loc"] = 12 or $p["loc"] = 13 or $p["loc"] = 14 or $p["loc"] = 15){
if ($k3 == 1 and $p["travma"]>=80) {
sql("UPDATE `user` SET `dob`=`dob`+1 WHERE `id`='".$p['id']."' AND `id` > '9999' LIMIT 1;");
}}
//-- Конец повышения доблести
//--Подземелье
## inst for 1.
if ($player["loc"] = 60){
## Проебал!
if ($k3 != 1) {
$time_in = (time()+21600);
sql("UPDATE `instant` SET `level`='0',`time`='".$time_in."' WHERE `uid`='".$p['id']."'");
}
if ($k3 == 1) {
sql("UPDATE `instant` SET `level`=`level`+1 WHERE `uid`='".$p['id']."' and `type`=0");
}
}
if(isset($li)){
$zp=",";
}
if($p['invisible']<time()){
$li.=$zp.'[1,'.$p['side'].',"'.$p['login'].'",'.$p['level'].','.$p['sklon'].',"'.(($p['clan_gif']!='chaos.gif')?$p['clan_gif']:'').'",'.$p['dmg'].','.$exp.']';
}else{
$li.=$zp.'[4,'.$p['side'].',"",0,0,"",'.$p['dmg'].','.$exp.']';
}
}
}
savestats($li,$id);
switch($t[0]){
case 1:
case 2: $log=",[[0,"".date("H:i").""],"<b>Бой закончен.</b> Победа за "".$win.","."]";break;
case 3: $log=",[[0,"".date("H:i").""],"<b>Бой закончен.</b> Ничья."]";break;
case 4: $log=",[[0,"".date("H:i").""],"<b>Бой закончен по таймауту.</b> "".$looser."," проиграл бой."]";break;
}
savelog($log,$id);
/*
if(rand(0,10)<4){
$pers = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `login` = '".$_SESSION['user']['login']."'"));
if($pers['capcode']<time()){
$randomize = md5(time());
mysql_query("UPDATE `user` SET `randomize` = '".$randomize."' WHERE `login`='".$_SESSION['user']['login']."'");
}
}
*/
return $li;
}
function obnul_pl($pl){
switch($pl['level']){
case 0: $a=array(1=>15,1,2,10);break;
case 1: $a=array(1=>18,2,5,14);break;
case 2: $a=array(1=>21,2,9,19);break;
case 3: $a=array(1=>24,2,13,24);break;
case 4: $a=array(1=>29,3,18,28);break;
case 5: $a=array(1=>34,4,23,33);break;
case 6: $a=array(1=>39,4,29,39);break;
case 7: $a=array(1=>49,4,36,45);break;
case 8: $a=array(1=>54,5,44,52);break;
case 9: $a=array(1=>61,5,53,60);break;
case 10: $a=array(1=>76,6,65,70);break;
case 11: $a=array(1=>83,6,80,75);break;
case 12: $a=array(1=>95,7,95,85);break;
case 13: $a=array(1=>105,8,115,100);break;
case 14: $a=array(1=>117,8,127,115);break;
case 15: $a=array(1=>132,9,142,130);break;
case 16: $a=array(1=>147,10,167,150);break;
case 17: $a=array(1=>162,10,192,170);break;
case 18: $a=array(1=>177,11,217,190);break;
case 19: $a=array(1=>192,12,232,210);break;
case 20: $a=array(1=>202,12,257,220);break;
case 21: $a=array(1=>217,12,282,230);break;
case 22: $a=array(1=>237,12,307,240);break;
case 23: $a=array(1=>262,12,332,250);break;
case 24: $a=array(1=>282,12,357,260);break;
case 25: $a=array(1=>312,12,382,270);break;
case 26: $a=array(1=>347,12,407,280);break;
case 27: $a=array(1=>387,12,432,290);break;
case 28: $a=array(1=>432,12,457,300);break;
case 29: $a=array(1=>482,12,482,310);break;
case 30: $a=array(1=>537,12,507,320);break;
}
mysql_query("UPDATE `user` SET `sila`=default,`lovk`=default,`uda4a`=default,`zdorov`=default,`znan`=default,`mudr`=default,`obr_col`=default,`od`=default,
`bl`=default,`free_stat`='".$a[1]."',`hp`=default,`hp_all`=default,`mp`=default,`mp_all`=default,`hps`=default,`mps`=default,`chp`='0',`cmp`='0',`st`='1-2|',
`umen`='',`perk`='',`fr_bum`='".$a[4]."',`fr_mum`='".$a[3]."',`nav`='".$a[2]."',`obnul`=`obnul`-'1' WHERE id='".$pl['id']."' LIMIT 1;");
mysql_query("UPDATE `invent` SET `used`='0' WHERE `pl_id`='".$pl['id']."';");
}
function SvitokDefance($Enemy,$ItemName){
global $player,$user;
if( $Enemy['fight'] != '0' and $Enemy['battle'] != '0' ){
// Себя засовываем в бой
mysql_query("UPDATE `user` SET `battle`='".$Enemy['battle']."',`side`='".$Enemy['side']."' WHERE `id`='".$player['id']."' LIMIT 1;");
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`side`) VALUES ('".$player['id']."','".$player['hp']."','".$player['mp']."','".$Enemy['battle']."','".$Enemy['side']."');");
save_hp_roun($player);
if($player['invisible']<time()){
$log = ',[1,'.$Enemy['side'].',"'.$player['login'].'",'.$player['level'].','.$player['sklon'].',"'.(($player['clan_gif']!='chaos.gif')?$player['clan_gif']:'').'"]';
}else{
$log = ',[4,'.$Enemy['side'].']';
}
savelog(',[[0,"'.date("H:i").'"]'.$log.',[7,"'.$ItemName.'",0]," и <b>вмешался в бой.</b>"]',$Enemy['battle']);
mysql_query("UPDATE `fight_users` SET `fight` = '2' WHERE `id` = '".$player['id']."'");
mysql_query("UPDATE `user` SET `fight`='2' WHERE `id`='".$player['id']."'");
echo'<script>top.frames['main_top'].location='/main.php';</script>';
}
}
function SvitokAttack($Enemy,$ItemName,$travm=NULL){
global $player,$user;
if( $Enemy['fight'] == '0' and $Enemy['battle'] == '0' ){
$fid = newbattle(2,$player['loc'],1,time(),300,(($travm)?$travm:10),0,0,0,0,0,0,0,1);
// Себя засовываем в бой
mysql_query("UPDATE `user` SET `battle`='".$fid."',`side`='1' WHERE `id`='".$player['id']."' LIMIT 1;");
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`side`) VALUES ('".$player['id']."','".$player['hp']."','".$player['mp']."','".$fid."','1');");
// Засовываем нашего противника
mysql_query("UPDATE `user` SET `battle`='".$fid."',`side`='2' WHERE `id`='".$Enemy['id']."' LIMIT 1;");
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`side`) VALUES ('".$Enemy['id']."','".$Enemy['hp']."','".$Enemy['mp']."','".$fid."','2');");
//Start Battle
$log=',[[0,"'.date("H:i").'"],"Бой между "';
$LeftTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '1'");
while ($val = mysql_fetch_assoc($LeftTeam)) {
if($val['side']=='1'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log .= '" и "';
$RightTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '2'");
while ($val = mysql_fetch_assoc($RightTeam)) {
if($val['side']=='2'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log.='" начался ('.$ItemName.')."]';
savelog($log,$fid);
mysql_query("UPDATE `arena` SET `vis`='0',`t2`='".time()."' WHERE `id_battle`='".$fid."'LIMIT 1;");
mysql_query("UPDATE `fight_users` SET `fight` = '2' WHERE `battle` = '".$fid."'");
mysql_query("UPDATE `user` SET `fight`='2' WHERE `battle`='".$fid."'");
save_hp_all($fid);
chmsg("top.frames['chmain'].add_msg('<font class=chattime> ".date("H:i:s")." </font> <font color=000000><b><font color=#cc0000>Внимание!</font></b> На вас использовывали "".$ItemName.""! </font><BR>'+'');$redirect",$Enemy['login']);
echo'<script>top.frames['main_top'].location='/main.php';</script>';
}else{
// Себя засовываем в бой
mysql_query("UPDATE `user` SET `battle`='".$Enemy['battle']."',`side`='".(($Enemy['side']=='2')?'1':'2')."' WHERE `id`='".$player['id']."' LIMIT 1;");
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`side`) VALUES ('".$player['id']."','".$player['hp']."','".$player['mp']."','".$Enemy['battle']."','".(($Enemy['side']=='2')?'1':'2')."');");
save_hp_roun($player);
if($player['invisible']<time()){
$log = ',[1,'.(($Enemy['side']=='2')?'1':'2').',"'.$player['login'].'",'.$player['level'].','.$player['sklon'].',"'.(($player['clan_gif']!='chaos.gif')?$player['clan_gif']:'').'"]';
}else{
$log = ',[4,'.(($Enemy['side']=='2')?'1':'2').']';
}
savelog(',[[0,"'.date("H:i").'"]'.$log.',[7,"'.$ItemName.'",0]," и <b>вмешался в бой.</b>"]',$Enemy['battle']);
mysql_query("UPDATE `fight_users` SET `fight` = '2' WHERE `id` = '".$player['id']."'");
mysql_query("UPDATE `user` SET `fight`='2' WHERE `id`='".$player['id']."'");
echo'<script>top.frames['main_top'].location='/main.php';</script>';
}
}function NatureBotAttack($Query,$Boss=NULL,$PrTravm=NULL,$CountS=1,$CountE=5){
global $player,$user;
save_hp_roun($player);
$player=player();
$TravmTypes = array(10,10,10,10,10,30,30,30,30,50,50,50,80,80,100);
$fid = newbattle(2,$player['loc'],1,time(),300,(($PrTravm)?$PrTravm:$TravmTypes[rand(0,(count($TravmTypes)-1))]),0,0,0,0,0,0,0,1);
if($Boss == 'GOLDEN'){
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`) VALUES ('9000','7500','7','".$fid."');");
for($i=1;$i<=rand(6,10);$i++){
$bot[$i] = mysql_fetch_assoc(mysql_query("SELECT `id`,`hp_all`,`mp_all` FROM `user` WHERE `id`='9900' LIMIT 1;"));
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`) VALUES ('".$bot[$i]['id']."','".$bot[$i]['hp_all']."','".$bot[$i]['mp_all']."','".$fid."');");
}
list($player['x'],$player['y']) = explode("_",$player['pos']);
mysql_query("DELETE FROM `nature_bots` WHERE `x` = '".$player['x']."' AND `y` = '".$player['y']."' LIMIT 1");
}else{
for($i=1;$i<=rand($CountS,$CountE);$i++){
$bot[$i] = mysql_fetch_assoc(mysql_query("SELECT `id`,`hp_all`,`mp_all` FROM `user` WHERE ".$Query." AND `id` < '10000' ORDER by rand() LIMIT 1;"));
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`) VALUES ('".$bot[$i]['id']."','".$bot[$i]['hp_all']."','".$bot[$i]['mp_all']."','".$fid."');");
}
}
mysql_query("UPDATE `user` SET `battle`='".$fid."',`side`='1' WHERE `login`='".$_SESSION['user']['login']."'LIMIT 1;");
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`side`) VALUES ('".$player['id']."','".$player['hp']."','".$player['mp']."','".$fid."','1');");
//Start Battle
$log=',[[0,"'.date("H:i").'"],"Бой между "';
$LeftTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '1'");
while ($val = mysql_fetch_assoc($LeftTeam)) {
if($val['side']=='1'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log .= '" и "';
$RightTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '2'");
while ($val = mysql_fetch_assoc($RightTeam)) {
if($val['side']=='2'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log.='" начался (нападение бота)."]';
savelog($log,$fid);
mysql_query("UPDATE `arena` SET `vis`='0', `t2`='".time()."' WHERE `id_battle`='".$fid."' LIMIT 1;");
mysql_query("UPDATE `fight_users` SET `fight` = '2' WHERE `battle` = '".$fid."'");
mysql_query("UPDATE `user` SET `fight`='2' WHERE `battle`='".$fid."'");
mysql_query("UPDATE `user` SET `lastbots` = '".(time()+rand(150,780))."' WHERE `id` = '".$player['id']."'");
save_hp_all($fid);
echo'<script>top.frames['main_top'].location='/main.php';</script>';
}
function TrainBots($level,$count){
global $player;
$fid=newbattle(2,$player['loc'],1,time(),300,10,0,0,0,0,0,0,0,1);
if(!empty($levelmin)){
$Whesr = " AND level>='".$levelmin."' AND level<='".$levelmax."'";
}else{
$Whesr = '';
}
for($i = 1;$i <= rand(1,$count);$i++){
$bot[$i] = mysql_fetch_assoc(mysql_query("SELECT `id`,`hp_all`,`mp_all` FROM `user` WHERE `fight`='0' AND `id`<'100' and `level`<='".rand(0,$level)."' ORDER by rand() LIMIT 1;"));
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`) VALUES ('".$bot[$i]['id']."','".$bot[$i]['hp_all']."','".$bot[$i]['mp_all']."','".$fid."');");
}
save_hp_roun($player);
db_query('UPDATE `user` SET battle='.AP.$fid.AP.',side="1",hp='.AP.$fid.AP.' WHERE login='.AP.$_SESSION['user']['login'].AP.'LIMIT 1;');
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`side`) VALUES ('".$player['id']."','".$player['hp']."','".$player['mp']."','".$fid."','1');");
//Start Battle
$log=',[[0,"'.date("H:i").'"],"Бой между "';
$LeftTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '1'");
while ($val = mysql_fetch_assoc($LeftTeam)) {
if($val['side']=='1'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log .= '" и "';
$RightTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '2'");
while ($val = mysql_fetch_assoc($RightTeam)) {
if($val['side']=='2'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log.='" начался (нападение бота)."]';
savelog($log,$fid);
db_query('UPDATE arena SET vis="0", t2='.AP.time().AP.' WHERE id_battle ='.AP.$fid.AP.'LIMIT 1;');
mysql_query("UPDATE `fight_users` SET `fight` = '2' WHERE `battle` = '".$fid."'");
db_query('UPDATE user SET fight="2" WHERE `battle`='.AP.$fid.AP);
save_hp_all($fid);
}
function BotAtack($id){
global $player;
$fid=newbattle(2,$player['loc'],1,time(),300,10,0,0,0,0,0,0,0,1);
$bot = mysql_fetch_assoc(mysql_query("SELECT `id`,`hp_all`,`mp_all` FROM `user` WHERE `fight`='0' AND `id`='".$id."' LIMIT 1;"));
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`) VALUES ('".$bot['id']."','".$bot['hp_all']."','".$bot['mp_all']."','".$fid."');");
save_hp_roun($player);
db_query('UPDATE `user` SET battle='.AP.$fid.AP.',side="1",hp='.AP.$fid.AP.' WHERE login='.AP.$_SESSION['user']['login'].AP.'LIMIT 1;');
mysql_query("INSERT INTO `fight_users` (`id`,`hp`,`mp`,`battle`,`side`) VALUES ('".$player['id']."','".$player['hp']."','".$player['mp']."','".$fid."','1');");
//Start Battle
$log=',[[0,"'.date("H:i").'"],"Бой между "';
$LeftTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '1'");
while ($val = mysql_fetch_assoc($LeftTeam)) {
if($val['side']=='1'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log .= '" и "';
$RightTeam=mysql_query("SELECT `fight_users`.`side`,`fight_users`.`battle`,`user`.`level`,`user`.`sklon`,`user`.`clan_gif`,`user`.`login`,`user`.`invisible` FROM `fight_users`,`user` WHERE `fight_users`.`id` = `user`.`id` AND `fight_users`.`battle`='".$fid."' AND `fight_users`.`side` = '2'");
while ($val = mysql_fetch_assoc($RightTeam)) {
if($val['side']=='2'){
if($val['invisible']<time()){
$log.=',[1,'.$val['side'].',"'.$val['login'].'",'.$val['level'].','.$val['sklon'].',"'.(($val['clan_gif']!='chaos.gif')?$val['clan_gif']:'').'"],","';
}else{
$log.=',[4,'.$val['side'].'],","';
}
}
}
$log=substr_replace($log, '', -3);
$log.='" начался (нападение бота)."]';
savelog($log,$fid);
db_query('UPDATE arena SET vis="0", t2='.AP.time().AP.' WHERE id_battle ='.AP.$fid.AP.'LIMIT 1;');
mysql_query("UPDATE `fight_users` SET `fight` = '2' WHERE `battle` = '".$fid."'");
db_query('UPDATE user SET fight="2" WHERE `battle`='.AP.$fid.AP);
save_hp_all($fid);
}
function getIP(){
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip = $_SERVER['HTTP_CLIENT_IP'];
}else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
function Show_Log($id,$mcount){
$lines = file("/var/www/gamale/data/battles/logs/".$id.".txt");
$num = count($lines);
if($num<$mcount){
$start=0;
}else{
$start=$num-$mcount;
}
$res='';
for($i=$num;$i>=$start;$i--){
$res .= $lines[$i];
}
return $res;
}
function Show_Stat($id){
$lines = file("/var/www/gamale/data/battles/stats/".$id.".txt");
$num = count($lines);
$res='';
for($i=0;$i<$num;$i++){
$res .= $lines[$i];
}
return $res;
}
function accesses($uid,$acc,$response=NULL){
$access = mysql_fetch_array(mysql_query("SELECT * FROM `accesses` WHERE `uid` = '".$uid."'"));
if(!$response){
return $access[$acc]?true:false;
}else{
return $access[$acc];
}
}
function Level_rooms($level){
if($level>0 and $level<=5){
return 0;
}
if($level>5 and $level<=10){
return 5;
}
if($level>10 and $level<=20){
return 25;
}
if($level>20){
return 50;
}
}
function DocType($type){
switch($type){
case'1': return 4; break;
case'2': return 3; break;
case'3': return 2; break;
case'4': return 1; break;
}
}
function normJsonStr($str){
$str = preg_replace_callback('/\u([a-f0-9]{4})/i', create_function('$m', 'return chr(hexdec($m[1])-1072+224);'), $str);
return iconv('cp1251', 'utf-8', $str);
}
function CountOD($pod,$inu,$inb,$ina){
// Стандартные Параметры из базы
$pos_ochd = array(0,0,50,90,35,50,60,30,50,60,30,50,35,80,40,85,40,85,40,85,40,100,45,70,70,70,130,90,90,45,60,90,30,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,70,90,70,90,70,90,70,100,100,100,70,100,70,70,100,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,0,30,30,30);
$shtra_ud = array(0,0,25,75,150,250);
// Проверяем удары
$tInu = explode("@",$inu);
for($i = 0; $i < count($tInu)-1; $i++){
$t2Inu = explode("_",$tInu[$i]);
$ochd[] = $t2Inu[1];
}
// Удары с учетом штрафов
$count_od = $shtra_ud[count($ochd)];
// Проверяем Блоки
$tInb = explode("@",$inb);
for($i = 0; $i < count($tInb)-1; $i++){
$t2Inb = explode("_",$tInb[$i]);
$ochd[] = $t2Inb[1];
}
// Проверяем Магию
$tIna = explode("@",$ina);
for($i = 0; $i < count($tIna)-1; $i++){
$t2Ina = explode("_",$tIna[$i]);
$ochd[] = $t2Ina[1];
}
//Считаем количество ОД
for($i = 0; $i < count($ochd);$i++){
if($ochd[$i] > 2){
$count_od += $pos_ochd[$ochd[$i]];
}else{
switch($ochd[$i]){
case 0:
$count_od += $pod;
break;
case 1:
$count_od += ($pod+20);
break;
}
}
}
// Выводим результат ОД
return $count_od;
}