Файл: fight.php
Строк: 436
<?
define('PROTECTOR', 1);
if($_GET[mod]=='ataka'){
$header=TRUE;
}else{
$textl='Битва';
}
$headmod = 'fight';//фикс. места
include('files/path.php');
include($path.'files/db.php');
include($path.'files/auth.php');
include($path.'files/func.php');
include($path.'files/core.php');
include($path.'files/head.php');
include($path.'files/zag.php');
$timer=time()+300;
////////////////////////
$req = mysql_query("SELECT * FROM `tmp_zamok` WHERE `usr` = '$log' LIMIT 1");
////////////////////////////
if (mysql_num_rows($req)==0){echo"Вы ненаходитесь в бою!";include($path.'files/down.php');exit;}
$m = mysql_fetch_array($req);
$req = mysql_query("SELECT * FROM `guards` WHERE `id` = '$m[mob]' LIMIT 1");
$mob = mysql_fetch_array($req);
$req = mysql_query("SELECT * FROM `pit` WHERE `usr` = '$log'");
$avto=mysql_num_rows($req);
if($avto==1){
$pit = mysql_fetch_array($req);
}
function timer(){
global $log;
$time=time();
mysql_query("UPDATE `tmp` SET `ltime` = '$time' WHERE `usr` = '$log'");
}
///////////////////////
function lose(){
global $log,$pas,$m,$pit,$mob,$udata;
$time=time();
$losetime=$m[ltime]+120;
if($udata[hp]<=0 or $time>$losetime){
$nloses=$udata[loses]+1;
if($mob[hp]<=0){
mysql_query("UPDATE `guards` SET `hp` = '0',`status`='off',`oponent`='$time' WHERE `id` = '$m[mob]'");
}else{
mysql_query("UPDATE `guards` SET `hp` = '$mob[hp]',`status`='on',`oponent`='not' WHERE `id` = '$m[mob]'");
}
mysql_query("UPDATE `mesto` SET `place` = 'gorod',`city` = '0' WHERE `usr` = '$log'");
mysql_query("UPDATE users SET loses = '$nloses',hp='0' WHERE usr = '$log'");//пишем данные в плэера
mysql_query("UPDATE regenerator SET last = '$time' WHERE usr = '$log'");//сбиваем регенерацию
mysql_query("DELETE FROM `tmp_zamok` WHERE usr='$log'");//чистим логи
$time=time()+1200;
mysql_query("INSERT INTO
`out` SET
`usr` = '$log',
`timeout` = '$time'");
//питы
if($pit[status]==on){
if($pit[hp]<=0){
mysql_query("UPDATE pit SET status = 'die' WHERE `usr` = '$log'");
}
}
echo"Вы проиграли бой!<br/>";
echo"<a href="pers.php?">Продолжить</a>";
include($path.'files/down.php');
exit;
}
}
function win(){
global $log,$pas,$m,$mob,$pit,$udata;
$time=time();
if($mob[hp]<=0){
$nwins=$udata[wins]+1;
$nexp=$udata[exp]+$mob[exp]+$mob[lvl];
//питы
if($pit[status]==on){
if($pit[hp]<=0){
mysql_query("UPDATE pit SET status = 'die' WHERE `usr` = '$log'");
}else{
$pexp=round($mob[exp]/2);
$pexp=$pit[exp]+$pexp;
mysql_query("UPDATE pit SET exp='$pexp' WHERE `usr` = '$log'");
}
}
$sm=rand(1,$mob[sm]);
if($sm==1){
$nmoney=$udata[money]+$mob[money];
}
mysql_query("UPDATE `guards` SET `hp` = '0',`status`='off',`oponent`='$time' WHERE `id` = '$m[mob]'");
if(!empty($nmoney)){
mysql_query("UPDATE users SET wins = '$nwins',exp='$nexp',money='$nmoney' WHERE usr = '$log'");//пишем данные в плэера
}else{
mysql_query("UPDATE users SET wins = '$nwins',exp='$nexp' WHERE usr = '$log'");
}
mysql_query("DELETE FROM `tmp_zamok` WHERE usr='$log'");//чистим логи
mysql_query("UPDATE regenerator SET last = '$time' WHERE usr = '$log'");//сбиваем регенерацию
echo"Вы победили в бою с $mob[name]!<br/>";
if(!empty($drop[name])){
echo"Выпало: $drop[name]<br/>";
}
echo"+$mob[exp] опыта<br/>";
if(!empty($nmoney)){
echo"+$mob[money] монет<br/>";
}
if(!empty($pexp)){
echo"+$pexp опыта получил $pit[name]<br/>";
}
echo"<a href="zamok.php?">Продолжить</a>";
include($path.'files/down.php');
exit;
}
}
function pit(){
global $log,$pas,$pit,$udata;
if($pit[status]==on){
if($pit[hp]<=0){
mysql_query("UPDATE pit SET status = 'die' WHERE `usr` = '$log'");
}
}
}
function mein(){
global $log,$pas,$m,$pit,$mob,$udata;
timer();
lose();
win();
pit();
if(!empty($pit[id])){
if($pit[status]==on){
echo"<b>$pit[name]:</b> ($pit[hp]/$pit[hpall])<br/>";
}}
echo"<b>$mob[name]:</b> ($mob[hp]/$mob[hpall])<br/>";
echo "<form action='fight.php?mod=ataka' method='post'>";
echo "<b>Атака:</b><br/>
<select name="udar">
<option value="1">Голова</option>
<option value="2">Туловище</option>
<option value="3">Ноги</option>";
$req = mysql_query("SELECT * FROM `mag` WHERE `usr` = '$log'");
if(mysql_num_rows($req)>=1)
{
While($mag = mysql_fetch_array($req))
{
$mag[lvl]=$mag[lvl]-1;
$magmp=explode("|",$mag[mp]);
$mag[mp]=$magmp[$mag[lvl]];//мп
$maghp=explode("|",$mag[hp]);
$mag[hp]=$maghp[$mag[lvl]];//хп
$maghp=explode("|",$mag[plushp]);
$mag[plushp]=$maghp[$mag[lvl]];//+хп
$maghp=explode("|",$mag[uron]);
$mag[uron]=$maghp[$mag[lvl]];//+урон
echo"<option value="mag,$mag[id]">$mag[name]($mag[uron],$mag[mp],$mag[hp],$mag[plushp])</option>";
}
}
echo"</select><br/>";
echo "<b>Защита:</b><br/>
<select name="block">
<option value="1">Голова</option>
<option value="2">Туловище</option>
<option value="3">Ноги</option>
</select><br/>";
echo "<input type='submit' value='Ок' /></form>";
log_msg($tlog='battle');
}
//////////
function ataka(){
global $log,$pas,$m,$pit,$timer,$mob,$udata;
////AI
$mudar=rand(1,3);
$mblock=rand(1,3);
////AI PITA
$pudar=rand(1,3);
$pblock=rand(1,3);
/////////////
$ud = explode(",",$_POST[udar]);
if($ud[0]=='mag'){
$req = mysql_query("SELECT * FROM `mag` WHERE `id` = '$ud[1]' and `usr` = '$log' LIMIT 1");
if (mysql_num_rows($req)==0){
mysql_query("INSERT INTO log SET usr='$log',text='Нет такого умения',kto='system',place='battle',timer='$timer'");
header ("Location: fight.php?");exit;
}
$mag = mysql_fetch_array($req);
$mag[lvl]=$mag[lvl]-1;
$magmp=explode("|",$mag[mp]);
$mag[mp]=$magmp[$mag[lvl]];//мп
$maghp=explode("|",$mag[hp]);
$mag[hp]=$maghp[$mag[lvl]];//хп
$maghp=explode("|",$mag[plushp]);
$mag[plushp]=$maghp[$mag[lvl]];//+хп
$maghp=explode("|",$mag[uron]);
$mag[uron]=$maghp[$mag[lvl]];//+урон
if ($mag[hp]>=$udata[hp]){
mysql_query("INSERT INTO log SET usr='$log',text='Нехватает здоровья',kto='system',place='battle',timer='$timer'");
header ("Location: fight.php?");exit;
}
if ($mag[mp]>$udata[mp]){
mysql_query("INSERT INTO log SET usr='$log',text='Нехватает маны',kto='system',place='battle',timer='$timer'");
header ("Location: fight.php?");exit;
}
$uron=$mag[uron];
$uron=$uron-$mob[pmag];
if($uron<=0){$uron=round(0,1);}
$newmob=$mob[hp]-$uron;
$newmp=$udata[mp]-$mag[mp];
$newhp=$udata[hp]-$mag[hp]+$mag[plushp];
mysql_query("UPDATE `users` SET `mp` = '$newmp',`hp` = '$newhp' WHERE `usr` = '$log'");
mysql_query("INSERT INTO log SET usr='$log',text='Ты используешь $mag[name]! -$uron',kto='user',place='battle',timer='$timer'");
}else{
if($_POST[udar]==1){$bonus=1.25;$kuda='в голову';}
if($_POST[udar]==2){$bonus=1;$kuda='по туловищу';}
if($_POST[udar]==3){$bonus=0.70;$kuda='по ногам';}
#********************************#
if($udata[lovk]<$mob[lovk]){
$s_l=rand(1,100);
$shans_lovk=round(($mob[lovk]-$udata[lovk])*5);
}
#********************************#
if($_POST[udar]!=$mblock and ($udata[lovk]>=$mob[lovk] or $s_l>$shans_lovk)){
if($_POST[udar]==1){$mprotect='pgolova';}
if($_POST[udar]==2){$mprotect='pbody';}
if($_POST[udar]==3){$mprotect='pnogi';}
$uron=rand($udata[umin],$udata[umax])+$udata[sila];
$krit=rand(1,100);
if($krit<=$udata[krit]){
$makrit=rand(1,100);
if($makrit<=$mob[antikrit]){
$newmob=$mob[hp];
$msg=rand(0,2);
if($msg=="0"){$sms="Ты наносишь крит-удар $kuda, но $mob[name] блокирует!";}
if($msg=="1"){$sms="Ты бьёшь крит-удар $kuda, но $mob[name] угинается!";}
if($msg=="2"){$sms="Ты наносишь крит-удар $kuda, но $mob[name] отпрыгивает!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}else{
$mno=round(($uron/100)*$udata[ukrit]);
$uron=$uron+$mno;
$uron=$uron-$mob[$mprotect];
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newmob=$mob[hp]-$uron;
$msg=rand(0,2);
if($msg=="0"){$sms="Ты наносишь крит-удар $kuda $mob[name]! -$uron";}
if($msg=="1"){$sms="Ты бьёшь крит-удар $kuda $mob[name]! -$uron";}
if($msg=="2"){$sms="Ты наносишь крит-удар $kuda $mob[name]! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}
}else{
$uron=$uron-$mob[$mprotect];
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newmob=$mob[hp]-$uron;
$msg=rand(0,2);
if($msg=="0"){$sms="Ты бьёшь $mob[name] $kuda! -$uron";}
if($msg=="1"){$sms="Ты атакуешь $mob[name] $kuda! -$uron";}
if($msg=="2"){$sms="Ты бьёшь $mob[name] $kuda! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}
}else{
$newmob=$mob[hp];
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] угнулся от твоего удара!";}
if($msg=="1"){$sms="$mob[name] блокировал твой удар!";}
if($msg=="2"){$sms="$mob[name] увернулся от твоего удара!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}
}
//////////////////
///////////////////
if($mudar==1){$bonus=1.25;$kuda='в голову';}
if($mudar==2){$bonus=1;$kuda='по туловищу';}
if($mudar==3){$bonus=0.70;$kuda='по ногам';}
#********************************#
if($mob[lovk]<$udata[lovk]){
$ms_l=rand(1,100);
$mshans_lovk=round(($udata[lovk]-$mob[lovk])*5);
}
#********************************#
if($_POST[block]!=$mudar and ($mob[lovk]>=$udata[lovk] or $ms_l>$mshans_lovk)){
/////protect//////////////////////////////
//////////////////////////////////////////////////////
switch($mudar){
case '1':
$protect=round(($udata[prot]+$udata[pgolova])/3);
break;
case '2':
$protect=round(($udata[prot]+$udata[pbody])/3);
break;
case '3':
$protect=round(($udata[prot]+$udata[pnogi])/3);
break;
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//////////////////////////////////////////////////////
$uron=rand($mob[umin],$mob[umax]);
$krit=rand(1,100);
if($krit<=$mob[krit]){
$makrit=rand(1,100);
if($makrit<=$udata[antikrit]){
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] наносит крит-удар $kuda, но ты блокируешь!";}
if($msg=="1"){$sms="$mob[name] бьёть крит-удар $kuda, но ты угинаешься!";}
if($msg=="2"){$sms="$mob[name] наносит крит-удар $kuda, но ты отпрыгиваешь!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}else{
$mno=round(($uron/100)*$mob[ukrit]);
$uron=$uron+$mno;
$uron=$uron-$protect;
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newhp=$udata[hp]-$uron;
mysql_query("UPDATE `users` SET `hp` = '$newhp' WHERE `usr` = '$log'");
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] наносит крит-удар $kuda! -$uron";}
if($msg=="1"){$sms="$mob[name] бьёт крит-удар $kuda! -$uron";}
if($msg=="2"){$sms="$mob[name] наносит крит-удар $kuda! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}
}else{
$uron=$uron-$protect;
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newhp=$udata[hp]-$uron;
mysql_query("UPDATE `users` SET `hp` = '$newhp' WHERE `usr` = '$log'");
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] сильно бьёт $kuda! -$uron";}
if($msg=="1"){$sms="$mob[name] атакует $kuda! -$uron";}
if($msg=="2"){$sms="$mob[name] метко бьёт $kuda! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}
}else{
$msg=rand(0,2);
if($msg=="0"){$sms="Ты угнулся от удара!";}
if($msg=="1"){$sms="Ты блокировал удар!";}
if($msg=="2"){$sms="Ты увернулся от удара!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}
///////////////////////
//////////////////////////
if($pit[status]==on){
///////////////////////////
////////////////////////////
#********************************#
if($pit[lovk]<$mob[lovk]){
$ps_l=rand(1,100);
$pshans_lovk=round(($mob[lovk]-$pit[lovk])*5);
}
#********************************#
if($pudar==1){$bonus=1.25;$kuda='в голову';}
if($pudar==2){$bonus=1;$kuda='по туловищу';}
if($pudar==3){$bonus=0.70;$kuda='по ногам';}
/////////////
if($pudar!=$mblock and ($pit[lovk]>=$pit[lovk] or $ps_l>$pshans_lovk)){
if($pudar==1){$mprotect='pgolova';}
if($pudar==2){$mprotect='pbody';}
if($pudar==3){$mprotect='pnogi';}
$uron=rand($pit[umin],$pit[umax])+$pit[sila];
$krit=rand(1,100);
if($krit<=$pit[krit]){
$makrit=rand(1,100);
if($makrit<=$mob[antikrit]){
$msg=rand(0,2);
if($msg=="0"){$sms="$pit[name] наносит крит-удар $kuda, но $mob[name] блокирует!";}
if($msg=="1"){$sms="$pit[name] бьёт крит-удар $kuda, но $mob[name] угинается!";}
if($msg=="2"){$sms="$pit[name] наносит крит-удар $kuda, но $mob[name] отпрыгивает!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}else{
$mno=round(($uron/100)*$pit[ukrit]);
$uron=$uron+$mno;
$uron=$uron-$mob[$mprotect];
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newmob=$newmob-$uron;
mysql_query("UPDATE `guards` SET `hp` = '$newmob' WHERE `id` = '$m[mob]'");
$msg=rand(0,2);
if($msg=="0"){$sms="$pit[name] наносит крит-удар $kuda $mob[name]! -$uron";}
if($msg=="1"){$sms="$pit[name] бьёт крит-удар $kuda $mob[name]! -$uron";}
if($msg=="2"){$sms="$pit[name] наносит крит-удар $kuda $mob[name]! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}
}else{
$uron=$uron-$mob[$mprotect];
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newmob=$newmob-$uron;
mysql_query("UPDATE `guards` SET `hp` = '$newmob' WHERE `id` = '$m[mob]'");
$msg=rand(0,2);
if($msg=="0"){$sms="$pit[name] бьёт $mob[name] $kuda! -$uron";}
if($msg=="1"){$sms="$pit[name] атакует $mob[name] $kuda! -$uron";}
if($msg=="2"){$sms="$pit[name] бьёт $mob[name] $kuda! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}
}else{
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] угнулся от удара $pit[name]!";}
if($msg=="1"){$sms="$mob[name] блокировал удар $pit[name]!";}
if($msg=="2"){$sms="$mob[name] увернулся от удара $pit[name]!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='user',place='battle',timer='$timer'");
}
//////////////////
///////////////////
if($mudar==1){$bonus=1.25;$kuda='в голову';}
if($mudar==2){$bonus=1;$kuda='по туловищу';}
if($mudar==3){$bonus=0.70;$kuda='по ногам';}
if($pblock!=$mudar){
/////protect//////////////////////////////
////////////////////////////////////////////////////////
//////////////////////////////////////////////////////
switch($mudar){
case '1':
$protect=round(($pit[prot]+$pro[golova]+$pro[weapon])/3);
break;
case '2':
$protect=round(($pit[prot]+$pro[body]+$pro[weapon])/3);
break;
case '3':
$protect=round(($pit[prot]+$pro[nogi]+$pro[weapon])/3);
break;
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
//////////////////////////////////////////////////////
$uron=rand($mob[umin],$mob[umax]);
$krit=rand(1,100);
if($krit<=$mob[krit]){
$makrit=rand(1,100);
if($makrit<=$pit[antikrit]){
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] наносит крит-удар $kuda, но $pit[name] блокирует!";}
if($msg=="1"){$sms="$mob[name] бьёть крит-удар $kuda, но $pit[name] угинается!";}
if($msg=="2"){$sms="$mob[name] наносит крит-удар $kuda, но $pit[name] отпрыгивает!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}else{
$mno=round(($uron/100)*$mob[ukrit]);
$uron=$uron+$mno;
$uron=$uron-$protect;
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newhp=$pit[hp]-$uron;
mysql_query("UPDATE `pit` SET `hp` = '$newhp' WHERE `usr` = '$log'");
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] наносит крит-удар $kuda $pit[name]! -$uron";}
if($msg=="1"){$sms="$mob[name] бьёт крит-удар $kuda $pit[name]! -$uron";}
if($msg=="2"){$sms="$mob[name] наносит крит-удар $kuda $pit[name]! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}
}else{
$uron=$uron-$protect;
$uron=round($uron*$bonus);
if($uron<=0){$uron=round(0,1);}
$newhp=$pit[hp]-$uron;
mysql_query("UPDATE `pit` SET `hp` = '$newhp' WHERE `usr` = '$log'");
$msg=rand(0,2);
if($msg=="0"){$sms="$mob[name] сильно бьёт $kuda $pit[name]! -$uron";}
if($msg=="1"){$sms="$mob[name] атакует $kuda $pit[name]! -$uron";}
if($msg=="2"){$sms="$mob[name] метко бьёт $kuda $pit[name]! -$uron";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}
}else{
$msg=rand(0,2);
if($msg=="0"){$sms="$pit[name] угнулся от удара!";}
if($msg=="1"){$sms="$pit[name] блокировал удар!";}
if($msg=="2"){$sms="$pit[name] увернулся от удара!";}
mysql_query("INSERT INTO log SET usr='$log',text='$sms',kto='enemy',place='battle',timer='$timer'");
}
}
mysql_query("UPDATE `guards` SET `hp` = '$newmob' WHERE `id` = '$m[mob]'");
/////////////////////////////////////////////////
header ("Location: fight.php?");exit; //в бой
}
/////страница!!начало
if($_GET[mod]=='ataka'){
ataka();
}else{
mein();
}
include($path.'files/down.php');
?>