Вход Регистрация
Файл: pvm.php
Строк: 260
<?php
//Файл боя  (бой с монстром)
include_once "./#conf/bd.php";
include_once 
"./#conf/session_start.php";
if(!
$user)
{
mset_err("Требуется авторизация!");
header("Location: index.php?l=main"); exit;
}
//
function addToLog($text)
{
global 
$s_time$user;
$freq="$user[locatid]#$user[coord]"
mysql_query("INSERT INTO `logs` SET
         `locid`='
$user[locatid]',
         `coord`='
$user[coord]',
         `freq`='
$freq',
         `time`='
$s_time',
         `post`='
$text'
          "
);
if(
mysql_affected_rows()>0){return true;}else{return false;} 
}

//
// Запись боя
$fight=mysql_fetch_array(mysql_query("SELECT * FROM `fight` WHERE `id`='$user[fight]' LIMIT 1"),MYSQL_ASSOC);
$lit_com='exp_com_'.$user['fight_com'];
if(!
$fight or $fight['stop']>0)
{
mysql_query("UPDATE `user` SET `fight`='0' WHERE `id`='$user[id]'");
/* mysql_query("DELETE FROM `user` WHERE `p`='m' AND `fight`='$user[fight]'"); // */
mset_msg("Бой уже завершился!");
header("Location: index.php?l=locat"); exit;

}
$err=""$OTV=false;
###################################################################### <ДОП ДЕЙСТВИЙ> 
// Использование аптечки
foreach($_POST as $k=>$v)
{
   if(
substr_count($k,'medikal_'))
   {
   
$med_id=intval(str_replace('medikal_','',$k));
   
#echo $med_id." идентификатор записи<br />";
   
$med=mysql_fetch_array(mysql_query("SELECT * FROM `rukzak` WHERE `uid`='$user[id]' AND `type`='medikal' AND `kol`>'0' AND `id`='$med_id' LIMIT 1"),MYSQL_ASSOC);
    if(!
$med){mset_err("Медикаменты не обнаружены");}else{
    
mysql_query("UPDATE `user` SET `live`=(`live`+$med[pllive]), `energy`=(`energy`+$med[plener]), `uptime`='$s_time' WHERE `id`='$user[id]' LIMIT 1"); //*
      
if(mysql_affected_rows()>0)
      {
      
mysql_query("UPDATE `rukzak` SET `kol`=(`kol`-1) WHERE `id`='$med[id]' LIMIT 1"); //*
      
mset_msg("Использовано $med[name] 1 шт. Восстановлено $med[pllive] здоровья");
      
#mset_msg("Использовано $med[name] 1 шт.");  
      
}
    }
   break; 
   }
}
###################################################################### < / ДОП ДЕЙСТВИЙ> 
###################################################################### <ОБРАБОТКА УДАРОВ>
// ОБРАБОТКА АТАКИ
$userpar=array();
if(isset(
$_POST['attack']) and $user['live']>0)
{
$userpar=GetUserParam($user['id']);
#echo "вход в процедуру атаки<br />";
$err=''$oruz_id=0$prot=false;
if(isset(
$_POST['attackoruz'])){$oruz_id=intval($_POST['attackoruz']);}
if(
$user['energy']<=0){$err.="У Вас нет сил атаковать противника!<br />";}
$oruz=mysql_fetch_array(mysql_query("SELECT * FROM `rukzak` WHERE `id`='$oruz_id' AND `uid`='$user[id]' AND `kol`>'0' LIMIT 1"),MYSQL_ASSOC);
if(!
$oruz){$err.="Оружие не найдено!<br />";}
if(
$oruz['dolgov']<=0){$err.="Оружие повреждено и не может стрелять!<br />";}
if(
$oruz['type']!='granat')
{
$patron=mysql_fetch_array(mysql_query("SELECT * FROM `rukzak` WHERE `uid`='$user[id]' AND `type`='patron' AND `incode`='$oruz[patron]' AND `kol`>'0' LIMIT 1"),MYSQL_ASSOC);
}else{
$patron['povrej']=$oruz['povrej'];
}
if(!
$patron)
{
mset_err("Нет патронов для $oruz[name]!");
 
$oruz['name']='Нож';
 
$oruz['tochn']=100;
 
$oruz['skor']=1;
 
$oruz['povrej']=0;
 
#$patron=true;
 
$patron['kol']=1;
 
$patron['povrej']=10;
 
$patron['id']=0;
}
#if($err)echo $err."<br />";

#echo "вход в процедуру чтения противника<br />";
$prot_id=intval($_POST['attackprot']);
$prot=mysql_fetch_array(mysql_query("SELECT * FROM `monstr` WHERE `id`='$prot_id' AND `fight`='$user[fight]' AND `fight_com`!='$user[fight_com]' LIMIT 1"),MYSQL_ASSOC);
if(!
$prot){$err.="Противник не найден!<br />";}
if(
$prot['live']<=0){$err.="Противник уже повержен!<br />";}
  

#echo H."/#monstr/$prot[pass]";
if (file_exists(H."/#monstr/$prot[pass]") and $prot)
{
#echo "Чтение параметров монстра<br />";
include_once H."/#monstr/$prot[pass]";
}else{
$err.="Файл параметров монстра не найден или поврежден!<br />";}


  if(
$err=='' and $oruz and $patron and $prot)
  { 
// Формируем удар
  #echo "Обработка удара пользователя<br />";
    
$tochn=rand($oruz['tochn']/2,$oruz['tochn'])/100;   // Рачет точности
    #$oruz['skor']=$oruz['skor'];
    
$kol_patron=$oruz['skor'];// Количество патронов
    
if ($kol_patron>$patron['kol']){$kol_patron=$patron['kol'];}
    
    
$udar=intval(($kol_patron*($patron['povrej']+$oruz['povrej']))*$tochn)-$m['bron']+$user['level'];  // Рачет силы удара
    
if($udar>=$prot['live'])
    { 
// Вставка приза за убийство монстра
    
$udar=$prot['live'];
    
addToLog("Монстр $prot[login] уничтожен!");
      if(
$prot['exp']>0)
      {
      
$prize=mysql_fetch_array(mysql_query("SELECT * FROM `tovar` WHERE `id`='$prot[exp]' LIMIT 1"),MYSQL_ASSOC);
        if(
$prize)
          {
          
$check_pr=mysql_fetch_array(mysql_query("SELECT * FROM `rukzak` WHERE `uid`='$user[id]' AND `incode`='$prize[incode]' LIMIT 1"),MYSQL_ASSOC);
            if(!
$check_pr)
            {
              
mysql_query("INSERT INTO `rukzak` SET
              `uid`='
$user[id]',
              `name`='
$prize[name]',
              `type`='
$prize[type]',
              `incode`='
$prize[incode]',
              `ico`='
$prize[ico]',
              `massa`='
$prize[massa]',
              `price`='
$prize[price]',
              `kol`='1',
              `type_name`='
$prize[type_name]',
              `slot`='',
              `minlev`='
$prize[minlev]',
              `dolgov`='1',
              `maxdolg`='1'
            "
);
            
#echo mysql_error()."<br />";;
            
}else{
            
mysql_query("UPDATE `rukzak` SET `kol`=(`kol`+1) WHERE `id`='$check_pr[id]' LIMIT 1");
            
#echo mysql_error()."<br />";;
            
}
          if(
mysql_affected_rows()>0){addToLog("<a href="?l=uinf&id=$user[id]">$user[login]</a> подбирает 1 шт. $prize[name] ");}
          }
      }
    }
    
    if(
$udar<0)$udar=0;
    
    if(
$kol_patron==$patron['kol'])
    {
    
#echo "запрос на удаление<br />";
    
mysql_query("DELETE FROM `rukzak` WHERE `id`='$patron[id]' LIMIT 1"); //*
    
}else{
    
#echo mysql_error()." запрос на убавление<br />";
    
mysql_query("UPDATE `rukzak` SET `kol`=(`kol`-$kol_patron) WHERE `id`='$patron[id]' LIMIT 1"); //*
    
}
    if(
mysql_affected_rows()>0)
    {
    
addToLog("Использовано $kol_patron $patron[name] ($user[login])");
    }
    
// Обновляем здоровье противника
    
mysql_query("UPDATE `monstr` SET `live`=(`live`-$udar), `energy`=(`energy`-1), `uptime`='$s_time' WHERE `id`='$prot[id]' LIMIT 1"); //*
    // Добавляем опыт команде
    
mysql_query("UPDATE `fight` SET `exp_com_$user[fight_com]`=(`exp_com_$user[fight_com]`+$udar) WHERE `id`='$user[fight]' LIMIT 1");
    
// <a href="?l=uinf&id=$user[id]"> </a>
    #echo $oruz['name']."<br />";
    
if (!isset($prot['name']))$prot['name']='';
    if(
mysql_affected_rows()>0){addToLog("<a href="?l=uinf&id=$user[id]">$user[login]</a> атакует $prot[login], используя $oruz[name], ослабив его на  $udar");}else{addToLog("<a href="?l=uinf&id=$user[id]">$user[login]</a> атакует $prot[name], используя $oruz[name], но промахивается");}
  }
$OTV=true#mysql_free_result($prot);
}
if(
$OTV)   // Ответ на удары

#echo "Вход в процедуру ответных ударов монстров<br />";
/*
foreach($userpar as $k=>$v)
{
  echo $k." - ".$v."<br />";
}
*/
#if ($userpar) echo "Чтение параметров пользователя выполнено<br />";
$prots=mysql_query("SELECT * FROM `monstr` WHERE `fight`='$user[fight]' AND `live`>'0' AND `fight_com`!='$user[fight_com]'");
  if(
mysql_num_rows($prots))
    {
    
$summudar=0$logstr=''$summenerg=0;
      while(
$data=mysql_fetch_array($prots,MYSQL_ASSOC))
        {
        
//
        
$udar=intval(rand($m['udar']/2,$m['udar'])-$userpar['bron'])+$data['level'];
        if(
$udar>0){$logstr.="$data[login] атакует <a href="?l=uinf&id=$user[id]">$user[login]</a>, ослабив его на $udar";$summudar=$summudar+$udar;}#else{$logstr.="$data[login] не может пробить защиту $user[login]";}
        
$radudar=rand($m['radudar']/2,$m['radudar'])-$userpar['antirad'];
        if(
$radudar>0){$logstr.="<br />$data[login] облучает радиацией <a href="?l=uinf&id=$user[id]">$user[login]</a>, ослабив его на $radudar";$summudar=$summudar+$radudar;}#else{$logstr.="$data[login] не может пробить защиту $user[login]";}
        
$himudar=rand($m['himudar']/2,$m['himudar'])-$userpar['antihim'];
        if(
$himudar>0){$logstr.="<br />$data[login] наносит хим ожог <a href="?l=uinf&id=$user[id]">$user[login]</a>, ослабив его на $himudar";$summudar=$summudar+$himudar;}#else{$logstr.="$data[login] не может пробить защиту $user[login]";}
        
$psiudar=rand($m['psiudar']/2,$m['psiudar'])-$userpar['antipsi'];
        if(
$psiudar>0){$logstr.="<br />$data[login] наносит пси удар <a href="?l=uinf&id=$user[id]">$user[login]</a>, ослабив его на $psiudar";$summudar=$summudar+$psiudar;}#else{$logstr.="$data[login] не может пробить защиту $user[login]";}
        
$termoudar=rand($m['termoudar']/2,$m['termoudar'])-$userpar['antitermo'];
        if(
$termoudar>0){$logstr.="<br />$data[login] обжигает <a href="?l=uinf&id=$user[id]">$user[login]</a>, ослабив его на $termoudar";$summudar=$summudar+$termoudar;}#else{$logstr.="$data[login] не может пробить защиту $user[login]";}
        
$energy=rand($m['energy']/2,$m['energy'])-$userpar['bron'];
        if(
$energy>0){$logstr.="<br />$data[login] отнимает у <a href="?l=uinf&id=$user[id]">$user[login]</a> $energy энергии";$summenerg=$summenerg+$energy;}#else{$logstr.="$data[login] не может пробить защиту $user[login]";}
        //
        
$summudar=$summudar-$userpar['pllive'];
        if(
$summudar<=0)$summudar=0;
        
$summenerg=$summenerg-$userpar['plener'];
        if(
$summenerg<=0)$summenerg=0;
        
//
        
if($logstr){addToLog($logstr);$logstr='';}
        }
    
// Записываем удар монстра 
    
mysql_query("UPDATE `user` SET `live`=(`live`-$summudar), `energy`=(`energy`-$summenerg), `uptime`='$s_time' WHERE `id`='$user[id]' LIMIT 1"); //*
      
if (mysql_affected_rows()>0)
      {
        
$user['live']=$user['live']-$summudar;
        
$user['energy']=$user['energy']-$summenerg;  
      }
    }else{ 
// если противников не осталось
    
if($user['fight_com']=='a'){$p_com='bkom';$u_com='akom';}else{$p_com='akom';$u_com='bkom';}
    
$count_prot=count(explode(',',$fight[$p_com]));
    
$count_u=count(explode(',',$fight[$u_com]));
    
// раздаем призы
    
$prize_ball=intval($fight[$lit_com]/$count_u);
     
addToLog("Каждый участник боя получает $prize_ball опыта");
     
mysql_query("UPDATE `user` SET `exp`=(`exp`+$prize_ball) WHERE `id` IN ($fight[$u_com])");
    
#echo "противников не осталось<br />";
    // Завершаем бой
    
mysql_query("UPDATE `fight` SET `stop`='$s_time' WHERE `id`='$user[fight]' LIMIT 1");
    
//Удаляем монстров
    
mysql_query("DELETE FROM `user` WHERE `p`='m' AND `fight`='$user[fight]'"); //*
    
    // Обнуляем запись боя
    
mysql_query("UPDATE `user` SET `fight`='0', `upfight`='$s_time' WHERE `fight`='$user[fight]'"); //*
    
mset_msg("Ваша команда победила!");
    
mysql_query("OPTIMIZE TABLE `user`, `fight`, `rukzak`, `monstr`");
    
header("Location: index.php?l=locat"); exit;
    }
// Проверка на уничтожение
//
if($user['live']<=0)  // Пользователь повержен
// Завершение боя

// Повреждаем надетые вещи
$povr=rand(0,2);
mysql_query("UPDATE `rukzak` SET `dolgov`=(`dolgov`-$povr) WHERE `uid`='$user[id]' AND `slot`!='' AND `dolgov`>='$povr' AND (`type`='loruz' OR `type`='oruz' OR `type`='shmot') "); //
//  Закрываем бой  если пользователь один в бою
/*/ 
$check_count_pl=mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `fight`='$user[fight]' AND `live`>'0'"),0);
  if($check_count_pl==0)
  {
  #echo "Не осталось ни одного бойца<br />";
  mysql_query("UPDATE `fight` SET `stop`='$s_time' WHERE `id`='$user[fight]' LIMIT 1");
  //Удаляем монстров
  mysql_query("DELETE FROM `monstr` WHERE `fight`='$user[fight]'"); //*
  // Обнуляем запись боя
  mysql_query("UPDATE `user` SET `fight`='0', `upfight`='$s_time' WHERE `fight`='$user[fight]'"); //*
  }
/*/
}
//
}// Завершение обработки атаки и ответных ударов

if($err)mset_err($err);
//
###################################################################### </ ОБРАБОТКА УДАРОВ>
$_SESSION['title']="Бой с монстром";
heads($headers_page$set_ob_start);   //подключение шапки
include_once SYS."/emission.php";
$user['maxlive']=(250+($user['level']*5));
#echo $user['maxlive']."<br />";
//формула расчета экспоненты  4+($guser[glevel]*4)
include_once SYS."/exp.st";

// Данные игрока  <label >
$path=M."/img/ico";
echo 
"<div class='ssila'>";
echo 
"[$user[level]$user[login]($user[exp]/$user[maxexp]) ";
echo 
"Счет: ".number_format($user['kredits'],2,',',' ')." руб.<br />";
echo 
"<img title='Здоровье' src='$path/live.png' alt='*' />($user[live]/$user[maxlive]) <img title='Энергия' src='$path/energy.png' alt='*' />($user[energy]/$user[maxenergy])<br />";
echo 
"</div>";

// ВЫВОД ИНТЕРФЕЙСА БОЯ
if($user['fight_com']=='a'){$p_com='bkom';$u_com='akom';}else{$p_com='akom';$u_com='bkom';}
$count_prot=count(explode(',',$fight[$p_com]));
$count_u=count(explode(',',$fight[$u_com]));
// Выборка команды пользователя
$m_comm=mysql_query("SELECT * FROM `user` WHERE `fight`='$fight[id]' AND `fight_com`='$user[fight_com]'");
$imgpath=M."/img/ava";
echo 
"<table border='0' width='100%'>";
echo 
"<tr class='ssila'>";
echo 
"<td>";
echo 
"<img src='$imgpath/$user[ava]' alt='*' /> ";
echo 
"</td>";
echo 
"<td>";
echo 
"Всего бойцов $count_u<br /> ";
while(
$data=mysql_fetch_assoc($m_comm))
{
echo 
"[$data[level]$data[login] ($data[live]) ";
}

echo 
"<br /> опыт команды $fight[$lit_com] ";
echo 
"</td></tr>";
#echo "</span>";
// Команда противника
echo "<tr class='title'><td colspan='2' alignt='center'> <b>VS</b> </td></tr>";
$p_comm=mysql_query("SELECT * FROM `monstr` WHERE `fight`='$user[fight]' AND `fight_com`!='$user[fight_com]' ORDER BY `live` ASC");
#echo "<span class='slive'>";
echo "<tr class='slive'>";
$str_prot='';
while(
$data=mysql_fetch_assoc($p_comm))
{
$str_prot.= "[$data[level]$data[login] ($data[live]) ";
$ico=$data['ava'];
}
echo 
"<td>";
echo 
"<img src='$imgpath/$ico' alt='*' />"
echo 
"</td>";
echo 
"<td>";
echo 
"Всего противников $count_prot<br />";
echo 
$str_prot;
unset(
$str_prot);
echo 
"</td>";
echo 
"</tr>";
echo 
"</table>";
#echo "</span></div>";

// Для удара
// Выбор одетого оружия из рюкзака
if($user['live']>0)
{
$oruz=mysql_query("SELECT * FROM `rukzak` WHERE `uid`='$user[id]' AND (`type`='oruz' OR `type`='loruz' OR `type`='granat') AND `slot`!='' ORDER BY `price` DESC");
echo 
"<form class='title' action='' method='post'>";
#echo mysql_error()."<br />";
if(mysql_num_rows($oruz))
{
echo 
"Выбор оружия<br /><select size='2' name='attackoruz'>";   //Patron9_18 Patron9_19
$sort=' selected='selected'';
  while(
$data=mysql_fetch_assoc($oruz))
    {
     echo 
"<option value='$data[id]'$sort>$data[name]</option>";
     
$sort=''
    }
echo 
"</select><br />";
}
// Выбираем противника
if(mysql_num_rows($p_comm))
{
mysql_data_seek($p_comm,0);
echo 
"Выбор противника<br /><select name='attackprot'>";   //Patron9_18 Patron9_19
  
while($data=mysql_fetch_assoc($p_comm))
    {
     if(
$data['live']>0){echo "<option value='$data[id]'>$data[login] ($data[live])</option>";} 
    }
echo 
"</select><br />";
}
echo 
"<input type='submit' name='attack' value='атаковать' />";
//  Проверка медикаментов
$check_med=mysql_query("SELECT * FROM `rukzak` WHERE `uid`='$user[id]' AND `type`='medikal' AND `kol`>'0'");
if(
mysql_num_rows($check_med))
{
echo 
"<div class='none'>";
$icopath=M."/img/tov";
  while(
$data=mysql_fetch_array($check_med,MYSQL_ASSOC))
    {
      echo 
"<input type='image' name='medikal_$data[id]' title='использовать $data[name]' src='$icopath/$data[ico]' width='25' height='25'  /><br />";
    }
echo 
"</div>";
}
//
echo "</form>";
}else{
$check_count_pl=mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `fight`='$user[fight]' AND `live`>'0' AND `fight_com`='$user[fight_com]'"),0);
#echo $check_count_pl."<br />";
if($check_count_pl==0)
  {
  
#echo "Не осталось ни одного бойца<br />";
  
mysql_query("UPDATE `fight` SET `stop`='$s_time' WHERE `id`='$user[fight]' LIMIT 1");
  
//Удаляем монстров
  
mysql_query("DELETE FROM `monstr` WHERE `p`='m' AND `fight`='$user[fight]'"); //*
  // Обнуляем запись боя
  
mysql_query("UPDATE `user` SET `fight`='0', `upfight`='$s_time' WHERE `fight`='$user[fight]'"); //*
  
}
$rnd=rand(1000,9999);
echo 
"<div class='errh'> Вы повержены!<br /> дождитесь окончания боя!<br /><a href='?$rnd'> обновить </a></div>";
}

###########################   Вывод лога
$freq="$user[locatid]#$user[coord]";
$all=mysql_result(mysql_query("SELECT COUNT(*) FROM `logs` WHERE `freq`='$freq'"),0);
#echo $all."<br />";
$pnumber=$user['pstr']; //$user['set_p_str']; //
    
if(!isset($_GET['page'])){$_GET['page']=1;}
        
//$n=new Navigator($all,$pnumber);
    
$n=k_page($all,$pnumber);
    if(
$_GET['page']=='end'){$page=$n;}
    else{
$page=intval($_GET['page']);}
    if(
$page<1){$page=1;}
    
$start=$page*$pnumber-$pnumber;
    if(
$start<1){$start=0;}
$logs=mysql_query("SELECT * FROM `logs` WHERE `freq`='$freq' ORDER BY `id` DESC  LIMIT $start,$pnumber");
#echo mysql_num_rows($logs)."<br />";
if(mysql_num_rows($logs))
{
echo 
"<div class='slive'>";
  while(
$dlog=mysql_fetch_assoc($logs))
    {
      echo 
vremja($dlog['time']).$dlog[post]<br />";
    }
echo 
"</div>";
#echo $n."-".$all."<br />";
  
if($n>1){echo str2($link="pvm.php?",$n,$page);}
}
###########################
closed_page($headers_page,$set_ob_start);  //ноги
?>
Онлайн: 1
Реклама