<?
function lvl ($exp) //расчет уровня по экспе - exp(экспа перса)
{
$c=$exp+20;
$a=5;
$b=5;
$d =$b*$b+4*$a*$c;
if($d>0) { $lvl[0]=((-$b+sqrt($d))/(2*$a)); $lvl[1]=((-$b-+sqrt($d))/(2*$a));}
if($d==0) {$lvl[0]=-$b/(2*$a);}
if ($lvl[0]>=0){return floor($lvl[0]);}else{return floor($lvl[1]);}
}
function n_lvl_exp ($exp) //расчет экспы для следующего уровня - exp(экспа перса)
{
$lvl_now=lvl($exp)+1;
$exp=5*($lvl_now*$lvl_now)+5*$lvl_now-20;
return $exp;
}
function training_cost ($stat, $type) //расчет стоймости тренировки - stat(сколько статов у перса) type(тип стат)
{
if ($type=='pow'){$cost=floor(6.386*$stat*$stat-74.33*$stat+222.8); return $cost;}
if ($type=='def' || $type=='chr'){$cost=floor(4.822*$stat*$stat-53.97*$stat+155.6); return $cost;}
if ($type=='agi' || $type=='stam'){$cost=floor(2.674*$stat*$stat-27.43*$stat+72.49); return $cost;}
}
function pl_cost ($stat, $type)//расчет стоймости строений в тайнике - stat(сколько статов у перса) type(тип стат)
{
$stat++;
if ($type=='house'){$stat=ceil(28.58*pow($stat, 5.181));return $stat;}
if ($type=='fence'){$stat=ceil(28.58*pow($stat, 4.181));return $stat;}
if ($type=='road'){$stat=ceil(28.58*pow($stat, 3.181));return $stat;}
if ($type=='nbh'){$stat=ceil(28.58*pow($stat, 2.181));return $stat;}
}
function cemetery ($speed)//работа на кладбище - speed(продолжительность действия)
{
$res = mysql_fetch_assoc(count_query("SELECT * FROM user WHERE id = '".$_SESSION['id']."'"));//параметры игрока
$gold=floor(21.69*pow(lvl($res['exp']),0.915))*$speed;// расчет получения денег
$exp=ceil($gold/rand(100,200));// расчет получения опыта
count_query("UPDATE user SET gold=gold+'$gold', exp=exp+'$exp' WHERE id = '".$_SESSION['id']."'");
count_query("INSERT INTO mail (to_id, msg) VALUES ('".$_SESSION['id']."', 'Вы получили деньги и опыт (".$gold."<img src=img/res2.gif alt=Золото align=absmiddle border=0>, ".$exp." exp ) за работу на кладбище.')");
}
function grot ($speed)//пещеры - speed(продолжительность действия)
{
$res = mysql_fetch_assoc(count_query("SELECT * FROM user WHERE id = '".$_SESSION['id']."'"));//параметры игрока
$item = count_query("SELECT item.*, items_p.* FROM items_p RIGHT JOIN item ON items_p.item_num=item.id WHERE items_p.uid = '".$_SESSION['id']."' AND items_p.stat='on' ");//учет вещей (одетых)
if($res['pl_grg_t']>time()){$res['ab_def']=ceil($res['ab_def']*1.3);}//время действия купленых фич в тайнике
while ($item1 = mysql_fetch_assoc($item))
{
$res['ab_def']+=$item1['def'];
}
$gold=($res['ab_def']*5+lvl($res['exp'])*10)*$speed;// расчет получения денег
count_query("UPDATE user SET gold=gold+'$gold' WHERE id = '".$_SESSION['id']."'");
$ignicit_chance=ceil(rand(5,35)/$speed);
$ignicit=0;
if ($ignicit_chance==6){count_query("UPDATE user SET ignicit=ignicit+1 WHERE id = '".$_SESSION['id']."'");$ignicit=1; }
count_query("INSERT INTO mail (to_id, msg) VALUES ('".$_SESSION['id']."', 'Вы получили деньги (".$gold." <img src=img/res2.gif alt=Золото align=absmiddle border=0>) за исследование пещер и ".$ignicit." <img src=img/res3.gif alt=Игницит align=absmiddle border=0>')");
}
function rob ($speed)//людишки - speed(продолжительность действия)
{
$res = mysql_fetch_assoc(count_query("SELECT * FROM user WHERE id = '".$_SESSION['id']."'"));//параметры игрока
$item = count_query("SELECT item.*, items_p.* FROM items_p RIGHT JOIN item ON items_p.item_num=item.id WHERE items_p.uid = '".$_SESSION['id']."' AND items_p.stat='on' ");//учет вещей (одетых)
while ($item1 = mysql_fetch_assoc($item))
{
$res['ab_agi']+=$item1['agi'];
$res['ab_chr']+=$item1['chr'];
}
$gold=($res['ab_agi']*2+$res['ab_chr']*3+lvl($res['exp'])*20)*$speed;// расчет получения денег
$prey=rand(1,3);// расчет добычи
count_query("UPDATE user SET gold=gold+'$gold', stat_prey=stat_prey+'$prey' WHERE id = '".$_SESSION['id']."'");
count_query("INSERT INTO mail (to_id, msg) VALUES ('".$_SESSION['id']."', 'Вы получили деньги (".$gold." <img src=img/res2.gif alt=Золото align=absmiddle border=0>) и добычу.')");
$item_chance=ceil(rand(5,200)/$speed);// дроп вещи
$item=rand(1,210);// какой именно вещи
if ($item_chance==56){
$model=count_query("SELECT model FROM item WHERE id = '$item'");
count_query("INSERT INTO items_p(model,uid,item_num,stat,vol) VALUES ('$model','".$_SESSION['id']."','$item', 'off','1')");}
}
function hp_rec()
{
$res = count_query("SELECT id, hp_now, hp_max FROM user WHERE hp_now < hp_max");
while ($row = mysql_fetch_assoc($res))
{
$tik=ceil($row['hp_max']/480);
$toc=$row['hp_now']+$tik;
if ($toc>$row['hp_max'])
{
$toc=$row['hp_max'];
}
count_query("UPDATE user set hp_now = $toc WHERE id = ".$row['id']);
}
}
function lot($type, $money)
{
$count = mysql_fetch_assoc(count_query("SELECT count(*) FROM lot WHERE lot = '$type'"));
$i=rand(1, $count['count(*)']);
$res = count_query("SELECT * FROM lot WHERE lot = '$type'");
$z=0;
$gold=$count['count(*)']*$money;
while ($row = mysql_fetch_assoc($res))
{
$z++;
if ($i==$z)
{
count_query("UPDATE user SET gold = gold+'$gold' WHERE id = ".$row['uid']);
}
}
count_query("DELETE FROM lot WHERE lot = '$type'");
}
function b($id)
{
//параметры игрока
$res = mysql_fetch_assoc(count_query("SELECT * FROM user WHERE id = '".$id."'"));
//параметры вещей, которые есть у игрока
$item = count_query("SELECT item.*, items_p.* FROM items_p RIGHT JOIN item ON items_p.item_num=item.id WHERE items_p.uid = '".$id."' AND items_p.stat ='on'");
//клановые абилки
$klan = mysql_fetch_assoc(count_query("SELECT k_klan.k_id , k_klan.k_pow_up, k_klan.k_def_up, k_klan.k_stam_up, k_klan.k_chr_up FROM k_memb RIGHT JOIN k_klan ON k_klan.k_id=k_memb.m_klan WHERE k_memb.m_uid = '".$id."'"));
$meta['timer']=$res['timer'];
$meta['id']=$res['id'];
$meta['klan']=$klan['k_id'];
$meta['race']=$res['race'];
$meta['exp']=$res['exp'];
$meta['hp']=$res['hp_now'];
$meta['hp_max']=$res['hp_max'];
$meta['gold']=$res['gold'];
$meta['pow']=$res['ab_pow'];
$meta['def']=$res['ab_def'];
$meta['agi']=$res['ab_agi'];
$meta['stam']=$res['ab_stam'];
$meta['chr']=$res['ab_chr'];
$meta['s_double']=0;
$meta['s_block']=0;
$meta['s_chance_kick']=0;
$meta['s_chance_blow']=0;
$meta['s_dam']=0;
while ($item1 = mysql_fetch_assoc($item))
{
if ($item1['stat']=='on')
{
//расчет статов от вещей (для дальнейшего плюсования к основным статам) - если вещь одета
$meta['pow']+=$item1['pow'];
$meta['def']+=$item1['def'];
$meta['agi']+=$item1['agi'];
$meta['stam']+=$item1['stam'];
$meta['chr']+=$item1['chr'];
$meta['s_double']+=$item1['s_double'];
$meta['s_block']+=$item1['s_block'];
$meta['s_chance_kick']+=$item1['s_chance_kick'];
$meta['s_chance_blow']+=$item1['s_chance_blow'];
$meta['s_dam']+=$item1['s_dam'];
}
}
if($klan['k_pow_up']>time()){$meta['pow']+=ceil($res['ab_pow']*0.3);}//клановая абилка
if($klan['k_def_up']>time()){$meta['def']+=ceil($res['ab_def']*0.3);}//клановая абилка
if($klan['k_stam_up']>time()){$meta['stam']+=ceil($res['ab_stam']*0.3);}//клановая абилка
if($klan['k_chr_up']>time()){$meta['chr']+=ceil($res['ab_chr']*0.3);}//клановая абилка
if($res['pl_book_t']>time()){$meta['pow']+=ceil($res['ab_pow']*0.3);}//действиe купленых фич в тайнике-КНИГА
if($res['pl_grg_t']>time()){$meta['def']+=ceil($res['ab_def']*0.3);}// действиe купленых фич в тайнике-ГОРГУЛЬЯ
if($res['pl_chest_t']>time()){$meta['chest']=2;}else{$meta['chest']=1;}// действиe купленых фич в тайнике-СУНДУК
return $meta;
}
?>