<?php
// Модуль вычисления ударов
include('includes/battle/modules/battle_function.php');
// Модуль травм
include('includes/battle/modules/travma_function.php');
// Основные боевые константы
include('includes/vars.php');
// Основные боевые функции
include('includes/battle/functions.php');
// Функция добавления вещи в рюкзак
include('function/InsertItem.php');
// Вычисляем основные параметры надетых на игрока вещей
$get = 1;
include('includes/battle/alt.php');
// Рефрешь остатки хп
//include('includes/battle/ref.php');
// Задаём диапазон обновления страницы
echo"
<link href='../img/game/css/mainsity.css' type='text/css' rel='stylesheet'>
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"45; URL=main.php?do=smena&smena=".intval($_GET['smena'])."&tmp=".time()."\">
<div id=mainform style='position:absolute; left:600px; top:160px'></div>";
$stat['battle_t'] = $stat['battle'];
$opponent = $_POST['opponent'];
$use_priem = intval($_GET['use_priem']);
if (!empty($use_priem)){
if (!preg_match("/^[0-9]{1,10}$/", $use_priem)) die("Читер?");
if (!$priem_full[$use_priem]['name']) die("Такого приёма не существует!!!");
else{
mysql_query("UPDATE `BattleFighter` SET `priem` = '".$use_priem."', `wait` = '".$priem_full[$use_priem]['wait']."', `time` = '".$priem_full[$use_priem]['time']."', `hit` = `hit` - '".$priem_full[$use_priem]['hit']."', `block` = `block` - '".$priem_full[$use_priem]['block']."', `krit` = `krit` - '".$priem_full[$use_priem]['krit']."', `spirit` = `spirit` - '".$priem_full[$use_priem]['mag']."', `parry` = `parry` - '".$priem_full[$use_priem]['parry']."', `hp` = `hp` - '".$priem_full[$use_priem]['dam']."' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$stat['id']."'");
}
}
// Вычисляем основные параметры игрока
include("includes/battle/changed_1.php");
// Зануляем удары и блоки
$kick1 = 0;
$kick2 = 0;
$block1 = 0;
$block2 = 0;
$block3 = 0;
// Вычисляем цифровые значения ударов и блоков по зонам удара
if ($_POST['headImpact'] == "yes") $kick1 = 1;
if ($_POST['caseImpact'] == "yes"){ if ($kick1 > 0 && $stat_kick == 2 && $kick2 == 0) $kick2 = 2; else $kick1 = 2; }
if ($_POST['stomachImpact'] == "yes"){ if ($kick1 > 0 && $stat_kick == 2 && $kick2 == 0) $kick2 = 3; else $kick1 = 3; }
if ($_POST['beltImpact'] == "yes"){ if ($kick1 > 0 && $stat_kick == 2 && $kick2 == 0) $kick2 = 4; else $kick1 = 4; }
if ($_POST['legsImpact'] == "yes"){ if ($kick1 > 0 && $stat_kick == 2 && $kick2 == 0) $kick2 = 5; else $kick1 = 5; }
if ($_POST['headBlock'] == "yes") $block1 = 1;
if ($_POST['caseBlock'] == "yes"){ if ($block1 > 0 && $stat_block == 2 && $block2 == 0) $block2 = 2; else $block1 = 2; }
if ($_POST['stomachBlock'] == "yes"){ if ($block1 > 0 && $stat_block == 2 && $block2 == 0) $block2 = 3; elseif ($block1 > 0 && $block2 > 0 && $stat_block == 3 && $block3 == 0) $block3 = 3; else $block1 = 3; }
if ($_POST['beltBlock'] == "yes"){ if ($block1 > 0 && $stat_block == 2 && $block2 == 0) $block2 = 4; elseif ($block1 > 0 && $block2 > 0 && $stat_block == 3 && $block3 == 0) $block3 = 4; else $block1 = 4; }
if ($_POST['legsBlock'] == "yes"){ if ($block1 > 0 && $stat_block == 2 && $block2 == 0) $block2 = 5; elseif ($block1 > 0 && $block2 > 0 && $stat_block == 3 && $block3 == 0) $block3 = 5; else $block1 = 5; }
// ----- # Узнаем, в какой команде, и общие сведения о состоянии боя # ----- //
// Team - команды в бою (0 - левые и 1 - правые)
// EndRound - закончил ли ты ход
// TotalExpa - базовое коллчество опыта от перса
// x - координата игрока по вертикальной оси
// y - координата игрока по горизонтальной оси
$BattleFighter = mysql_fetch_array(mysql_query("SELECT * FROM `BattleFighter` WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$stat['id']."' LIMIT 1"));
if ($BattleFighter['Team'] == "") $participant['Team'] = 0; // Если не задана команда, то по-умолчанию левая.
switch ($BattleFighter['Team']) { // Определяем команду противника (противоположную своей)
case 0: $opp_side = 1; break;
case 1: $opp_side = 0; break;
}
// ----- # Информация о бое (Из таблицы заявок) # ----- //
// StartTime - время начала поединка (юникстайм)
// BattleType - тип поединка (1 - дуэль, 2 - групповой бой, 3 - хаот, 4 - бой склонностей)
// WeaponUsing - можно ли использовать оружие в бою (1 - рукопашка, 0 - обычный с оружием)
// IsBlood - кровавый бой
// Timeout - таймаут хода
$Battles = mysql_fetch_array(mysql_query("SELECT `StartTime`, `BattleType`, `Raund`, `RaundTime`, `WeaponUsing`, `IsBlood`, `Timeout`, `Status` FROM `Battles` WHERE `BattleID` = '".$stat['battle']."' LIMIT 1"));
echo"<script LANGUAGE='JavaScript'>
<!--
var is_user = '".$stat['user']."';
var offer_date = '".date("H:i:s", $Battles['StartTime'])."';
//-->
</SCRIPT>";
if ($stat['hp_now'] > 0 && $BattleFighter['EndRound'] == 0 && $BattleFighter['died'] == '0') { // Если есть у перса жизни и он ещё не ходил, то он может сделать ход
if ($_GET['go_right'] != "") $go_x = intval($_GET['go_right']) + 1;
if ($_GET['go_up'] != "") $go_y = intval($_GET['go_up']) + 1;
if (($kick1 != "" && $block1 != "" && $opponent != "") || ($go_x > 0 && $go_y > 0)) { // Если стоит хоть один удар, блок и есть противник
// Сходил ли ты?
$user_turn = mysql_fetch_array(mysql_query("SELECT `HitID` FROM `BattleLog` WHERE `BattleID` = '".$stat['battle']."' AND `AttackerFighter` = '".$stat['user']."' AND `HitStatus` = '".$Battles['Raund']."'"));
if ($go_x > 0 && $go_y > 0 && !$user_turn) {
if ((($go_x == $BattleFighter['x'] + 2 || $go_x == $BattleFighter['x']) && $go_y == $BattleFighter['y'] + 1) || (($go_y == $BattleFighter['y'] + 2 || $go_y == $BattleFighter['y']) && ($go_x == $BattleFighter['x'] || $go_x == $BattleFighter['x'] + 1 || $go_x == $BattleFighter['x'] + 2))){
mysql_query("UPDATE `BattleFighter` SET `x` = ".($go_x - 1).", `y` = ".($go_y - 1).", `EndRound` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$stat['id']."'");
$BattleFighter['x'] = $go_x - 1;
$BattleFighter['y'] = $go_y - 1;
$BattleFighter['EndRound'] = 1;
// Запись в текстовый лог основных параметров игрока
$battle_file = "battle_".$stat['battle'].".txt";
$fp = fopen("battle/".$battle_file, "a");
flock($fp, LOCK_EX);
$text = "".$stat['user']."||0:0|0:0:0|0|".$BattleFighter['Team']."|".$stat['strength']."|".$stat['dex']."|".$stat['agility']."|".$stat['vitality']."|".$stat['power']."|".$stat['razum']."|".$stat['hp']."|".$stat['hp_max']."|".$stat['energy']."|".$stat['energy_max']."|".$stat['br1'].":".$stat['br2'].":".$stat['br3'].":".$stat['br4'].":".$stat['br5']."|".$stat['min']."|".$stat['min1']."|".$stat['min2']."|".$stat['max']."|".$stat['max1']."|".$stat['max2']."|".$stat['krit']."|".$stat['mkrit']."|".$stat['unkrit']."|".$stat['uv']."|".$stat['unuv']."|".$stat['pblock']."|".$stat['mblock']."|".$stat['pbr']."|".$stat['kbr']."|".$stat['metk']."";
if ($BattleFighter['wait'] == 1) $text .= "|".$BattleFighter['priem']."|".$BattleFighter['time']."|".$BattleFighter['wait']."\n";
else $text .= "|0|0|0\n";
fwrite($fp, $text);
flock($fp, LOCK_UN);
fclose($fp);
mysql_query(
"INSERT INTO `BattleLog` (HitID, BattleID, HitTime, HitStatus, AttackerFighter, AttackerTeam, RedComment)
VALUES (0, ".$stat['battle'].", ".$now.", ".$Battles['Raund'].", '".$stat['user']."', '".$BattleFighter['Team']."', ".rand(90, 93).")");
} else {
echo"<script>alert('Сюда ходить нельзя!');</script>";
}
// Если ты ещё не сходил, то ходим
} elseif ($kick1 != 0 && $block1 != 0 && $opponent != "" && !$user_turn) {
$opp_stats = mysql_query("SELECT id, user, hp_now, battle, quest FROM `person` WHERE `id` = '".intval($opponent)."' LIMIT 1");
$opp_stat = mysql_fetch_assoc($opp_stats);
if ($opp_stat['hp_now'] <= 0) $opponent = ""; // Если противник убит, то он не может быть ударен
if ($opponent != ""){
// Запись в текстовый лог основных параметров игрока
$battle_file = "battle_".$stat['battle'].".txt";
$fp = fopen("battle/".$battle_file, "a");
flock($fp, LOCK_EX);
$text = "".$stat['user']."|".$opp_stat['user']."|".$kick1.":".$kick2."|".$block1.":".$block2.":".$block3."|".$class5."|".$BattleFighter['Team']."|".$stat['strength']."|".$stat['dex']."|".$stat['agility']."|".$stat['vitality']."|".$stat['power']."|".$stat['razum']."|".$stat['hp']."|".$stat['hp_max']."|".$stat['energy']."|".$stat['energy_max']."|".$stat['br1'].":".$stat['br2'].":".$stat['br3'].":".$stat['br4'].":".$stat['br5']."|".$stat['min']."|".$stat['min1']."|".$stat['min2']."|".$stat['max']."|".$stat['max1']."|".$stat['max2']."|".$stat['krit']."|".$stat['mkrit']."|".$stat['unkrit']."|".$stat['uv']."|".$stat['unuv']."|".$stat['pblock']."|".$stat['mblock']."|".$stat['pbr']."|".$stat['kbr']."|".$stat['metk']."";
if ($BattleFighter['wait'] == 1) $text .= "|".$BattleFighter['priem']."|".$BattleFighter['time']."|".$BattleFighter['wait']."\n";
else $text .= "|0|0|0\n";
fwrite($fp, $text);
flock($fp, LOCK_UN);
fclose($fp);
// Помечаем окончание раунда
mysql_query("UPDATE `BattleFighter` SET `EndRound` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$stat['id']."'");
$BattleFighter['EndRound'] = 1;
// Запись в бд
mysql_query(
"INSERT INTO `BattleLog` (HitID, BattleID, HitTime, HitStatus, AttackerFighter, AttackerTeam, AttackerHitType, AttackerBlock, DefenderFighter)
VALUES (0, ".$stat['battle'].", ".$now.", ".$Battles['Raund'].", '".$stat['user']."', '".$BattleFighter['Team']."', '".$kick1.",".$kick2."', '".$block1.",".$block2.",".$block3."', '".$opp_stat['user']."')");
}
}
} // Есть ли у тебя удары и блоки
} // Есть ли у тебя жизни
if ($BattleFighter['EndRound'] == 1) {
// Запоминаем свой ник для подсчётов урона
$username = $stat['user'];
$dama = 0;
$damb = 0;
// Выбираем бойцов которые не сходили в бою и живы
$Raund_pl = mysql_query("SELECT `BattleFighter`.`FighterID` FROM `BattleFighter`, `person` WHERE `BattleFighter`.BattleID = ".$stat['battle']." AND `BattleFighter`.`EndRound` = 0 AND `BattleFighter`.`died` = 0 AND `BattleFighter`.`isBot` = 0 AND `person`.`id` = `BattleFighter`.`FighterID` AND `person`.`hp_now` > 0");
// Если все сходили, то заканчиваем раунд
if (mysql_num_rows($Raund_pl) == 0) {
// Определяе откуда брать основные данные о бое
$battle_file = "battle_".$stat['battle'].".txt";
$battle_logs = file("battle/".$battle_file);
// Задаём массив инфы о бое
$battle = array('id' => ''.$stat["battle"].'', 'raund' => ''.$Battles["Raund"].'');
// Последовательно идём по массиву
foreach ($battle_logs as $this_log) {
$log = explode("|", $this_log);
if ($log['1'] != ""){
// Ищем противника в том же массиве
foreach ($battle_logs as $this_opp) {
$opp = explode("|", $this_opp);
// Если это противник, то расчитываем удар
if ($log['1'] == $opp['0']){
udar ($log, $opp, $battle);
}
//unset($opp);
}
}
//unset($log);
}
// Чистим файл данных
$fp = fopen("battle/".$battle_file, "w");
fclose($fp);
// Зануляем инфу о раунде и переходим к следующему раунду
mysql_query("UPDATE `Battles`, `BattleFighter` SET `Battles`.`Raund` = `Raund`+1, `Battles`.`RaundTime` = ".$now.", `BattleFighter`.EndRound = '0' WHERE `Battles`.`BattleID` = ".$stat['battle']." AND `BattleFighter`.`BattleID` = ".$stat['battle']."");
$Battles['Raund']++;
$BattleFighter['EndRound'] = 0;
$Battles['RaundTime'] = $now;
}
$BattleFighter['damage'] += $dama;
//$stat['hp_now'] -= $damb;
if ($BattleFighter['wait'] == 1 && $BattleFighter['time'] > 1){}
elseif ($BattleFighter['wait'] > 0) $BattleFighter['wait'] -= 1;
}
// Вычисляем время таймаута
$timeout = $Battles['Timeout'] - ($now - $Battles['RaundTime']);
// ----- # HP равно нулю, проигрываем, выигрываем, или ждём окончания боя # ----- //
if ($stat['hp_now'] <= 0 || $BattleFighter['died'] == '1') {
if ($BattleFighter['died'] == 0){
mysql_query("UPDATE `BattleFighter` SET `died` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$stat['id']."'");
$BattleFighter['died'] = 1;
}
$user_command = mysql_fetch_assoc(mysql_query("SELECT count(FighterID) AS count FROM BattleFighter bf, person p
WHERE bf.BattleID = ".$stat['battle']." AND bf.Team = '".$BattleFighter['Team']."' AND bf.died = 0 AND p.id = bf.FighterID AND p.hp_now > 0"));
$user_opponent_command = mysql_fetch_assoc(mysql_query("SELECT count(FighterID) AS count FROM BattleFighter bf, person p
WHERE bf.BattleID = ".$stat['battle']." AND bf.Team = '".$opp_side."' AND bf.died = 0 AND p.id = bf.FighterID AND p.hp_now > 0"));
// ----- # НИЧЬЯ # ----- //
if (($user_command['count'] == 0 && $user_opponent_command['count'] == 0) && !$endbattle) {
$echo = "<center>[b]Бой закончен. Ничья.[/b]
<input type=button value=' Вернуться ' onclick='window.location.href=\"main.php?tmp=\"+Math.random();\"\"' class=standbut></center>
";
mysql_query("UPDATE person SET last_battle = ".$stat['battle']." WHERE battle = '".$stat['battle']."' AND rank = 60");
mysql_query("UPDATE person SET drawn=drawn+1, battle=0 WHERE id='".$stat['id']."'");
mysql_query("UPDATE `BattleFighter` SET `died` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$stat['id']."'");
//
if (fopen('battle/battle_'.$stat["battle"].'.txt', 'a')) unlink('battle/battle_'.$stat["battle"].'.txt');
//
require_once("function/chat_insert.php");
insert_msg ("К сожалению бой закончился ничьёй. Попытайтесь снова. Всего Вами нанесено урона: [b][u]".$BattleFighter['damage']." HP[/u][/b].","","","1",$stat['user'],"",$stat['room']);
aktivnost();
$masseg = iznos();
if ($masseg) insert_msg ($masseg,"","","1",$stat['user'],"",$stat['room']);
$endbattle = 1;
$stat['battle'] = '';
}
// ----- # ПРОИГРЫШ КОМАНДЫ # ----- //
elseif (($user_command['count'] == 0 && $user_opponent_command['count'] > 0) && !$endbattle) {
$echo = "<center>[b]Бой закончен. Вы проиграли.[/b]
<input type=button value=' Вернуться ' onclick='window.location.href=\"main.php?tmp=\"+Math.random();\"\"' class=standbut></center>
";
mysql_query("UPDATE person SET last_battle = ".$stat['battle']." WHERE battle = '".$stat['battle']."' AND `rank` = 60");
mysql_query("UPDATE person SET losses=losses+1, battle=0 WHERE id='".$stat['id']."'");
mysql_query("UPDATE `BattleFighter` SET `died` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$stat['id']."'");
//
if (fopen('battle/battle_'.$stat["battle"].'.txt', 'a')) unlink('battle/battle_'.$stat["battle"].'.txt');
//
require_once("function/chat_insert.php");
insert_msg ("Бой закончен, Вы проиграли. Всего Вами нанесено урона: [b][u]".$BattleFighter['damage']." HP[/u][/b].","","","1",$stat['user'],"",$stat['room']);
aktivnost();
$masseg = iznos();
if ($masseg) insert_msg ($masseg,"","","1",$stat['user'],"",$stat['room']);
if ($Battles['IsBlood'] == 1) mysql_query("UPDATE person SET travma=$now+10800 WHERE id='".$stat['id']."'");
$endbattle = 1;
$stat['battle'] = '';
}
// ----- # ПОБЕДА КОМАНДЫ # ----- //
elseif (($user_command['count'] > 0 && $user_opponent_command['count'] == 0) && !$endbattle) {
$echo = "<center>[b]Поздравляем, Вы одержали победу![/b]
<input type=button value=' Вернуться ' onclick='window.location.href=\"main.php?tmp=\"+Math.random();\"\"' class=standbut></center>
";
// Пометили что боты закончили поединок
mysql_query("UPDATE person SET last_battle = ".$stat['battle']." WHERE battle = '".$stat['battle']."' AND rank = 60");
// Закончили битву, пометили что она завершена
if ($Battles['Status'] == 'InProcess') mysql_query("UPDATE Battles SET Status = 'Finished' WHERE BattleID = '".$stat['battle']."'");
if ($Battles['BattleType'] == '4'){
if ($stat['sclon'] == 1) mysql_query("UPDATE game_stats SET value = value + 1 WHERE name = 'light'");
elseif ($stat['sclon'] == 2) mysql_query("UPDATE game_stats SET value = value + 1 WHERE name = 'dark'");
}
get_exp();
drop();
level_up();
aktivnost();
require_once("function/chat_insert.php");
insert_msg("Поздравляем, Вы одержали победу! Всего Вами нанесено урона: [b][u]".$BattleFighter['damage']." HP[/u][/b]. Получено опыта: [b][u]".$addexp."[/u][/b].","","","1",$stat['user'],"",$stat['room']);
$endbattle = 1;
$stat['battle'] = '';
}
// ----- # ЖДЁМ ОКОНЧАНИЯ БОЯ # ----- //
elseif ($user_command['count'] > 0 && $user_opponent_command['count'] > 0) {
$echo="<center>[b]К сожалению, для Вас бой окончен. Ожидайте окончания боя...[/b]
<input type=button value=' Обновить ' name=ref onclick='ref.disabled = true; window.location.href=\"main.php?tmp=\"+Math.random();\"\"' class=standbut></center>
";
}
} else {
$n = 0;
$victims = array();
$opponents = mysql_query("SELECT `person`.id, `person`.user, `BattleFighter`.x AS mx, `BattleFighter`.y AS my FROM `BattleFighter`, `person` WHERE `BattleFighter`.BattleID = ".$stat['battle']." AND `BattleFighter`.Team = '".$opp_side."' AND `BattleFighter`.died = 0 AND `person`.id = `BattleFighter`.FighterID AND `person`.hp_now > 0");
if (mysql_num_rows($opponents) > 0){
echo"<script>var shw=0; function Spisok () { var el, x, y; el = document.getElementById('oMen'); if (shw==0){x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft + 15; y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop - 200; if (window.event.clientY + 72 > document.body.clientHeight) { y -= 34 } else { y -= 2 } el.innerHTML += '<table width=\"200\"><tr><td align=center>Выберите противника:</td></tr>';";
while ($opponent = mysql_fetch_assoc($opponents)) {
if ($class5 == 0) $rad = 1;
else $rad = 3;
$accept = 0;
if (($BattleFighter['x'] >= $opponent['mx'] - $rad && $BattleFighter['x'] <= $opponent['mx'] + $rad) && ($BattleFighter['y'] >= $opponent['my'] - $rad && $BattleFighter['y'] <= $opponent['my'] + $rad)) {
$n++;
$victims[$n-1] = $opponent['id'];
if (intval($_GET['smena']) == $opponent['id']) $accept = 1;
echo"el.innerHTML += '<tr><td><A class=menuItem HREF=\"?smena=".$opponent['id']."\">".$opponent['user']."</a></td></td>';";
}
}
echo"el.innerHTML += '</table>'; el.style.left = x + 'px'; el.style.top = y + 'px'; el.style.visibility = 'visible'; shw=1;}else{ el.style.visibility = 'hidden'; el.innerHTML = ''; shw=0;} } </script>";
// Если противников нет
if ($BattleFighter['EndRound'] == 1) {
// ----------------------------- # Выиграли по таймауту # -------------------------- //
if ($timeout <= 0 && !$endbattle) {
// Выбираем игроков в бою которые не сходили к моменту таймаута
$sliv = mysql_query("SELECT BattleFighter.Team, BattleFighter.TotalExpa, person.* FROM BattleFighter, person WHERE BattleFighter.BattleID = ".$stat['battle']." AND BattleFighter.EndRound = 0 AND BattleFighter.died = 0 AND BattleFighter.isBot = 0 AND person.id = BattleFighter.FighterID AND person.hp_now > 0"); // AND person.hp_now > 0 убрал для более детального изучения
while ($opp_stat = mysql_fetch_array($sliv)){
include("includes/battle/changed_2.php");
// Запись в текстовый лог основных параметров игрока
$battle_file = "battle_".$stat['battle'].".txt";
$fp = fopen("battle/".$battle_file, "a");
flock($fp, LOCK_EX);
$text = "".$opp_stat['user']."||0:0|0:0:0|0|".$opp_stat['Team']."|".$opp_stat['strength']."|".$opp_stat['dex']."|".$opp_stat['agility']."|".$opp_stat['vitality']."|".$opp_stat['power']."|".$opp_stat['razum']."|".$opp_stat['hp']."|".$opp_stat['hp_max']."|".$opp_stat['energy']."|".$opp_stat['energy_max']."|".$opp_stat['br1'].":".$opp_stat['br2'].":".$opp_stat['br3'].":".$opp_stat['br4'].":".$opp_stat['br5']."|".$opp_stat['min']."|".$opp_stat['min1']."|".$opp_stat['min2']."|".$opp_stat['max']."|".$opp_stat['max1']."|".$opp_stat['max2']."|".$opp_stat['krit']."|".$opp_stat['mkrit']."|".$opp_stat['unkrit']."|".$opp_stat['uv']."|".$opp_stat['unuv']."|".$opp_stat['pblock']."|".$opp_stat['mblock']."|".$opp_stat['pbr']."|".$opp_stat['kbr']."|".$opp_stat['metk']."|0|0|0\n";
fwrite($fp, $text);
flock($fp, LOCK_UN);
fclose($fp);
if ($Battles['Raund'] > 1){
// Помечаем окончание раунда
mysql_query("UPDATE `BattleFighter` SET `EndRound` = '1', `died` = '1', `TotalExpa` = '".($opp_stat['TotalExpa']/2)."' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$opp_stat['id']."'");
// Запись в бд
mysql_query("INSERT INTO `BattleLog` (HitID, BattleID, HitTime, HitStatus, AttackerFighter, AttackerTeam, RedComment)VALUES (0, ".$stat['battle'].", ".$now.", ".$Battles['Raund'].", '".$opp_stat['user']."', '".$opp_stat['Team']."', '79')");
}else{
// Помечаем окончание раунда
mysql_query("UPDATE `BattleFighter` SET `EndRound` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$opp_stat['id']."'");
// Запись в бд
mysql_query("INSERT INTO `BattleLog` (HitID, BattleID, HitTime, HitStatus, AttackerFighter, AttackerTeam, RedComment)VALUES (0, ".$stat['battle'].", ".$now.", ".$Battles['Raund'].", '".$opp_stat['user']."', '".$opp_stat['Team']."', '78')");
}
}
echo"<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL=main.php?set=battle&smena=".intval($_GET['smena'])."&tmp=".time()."\">";
//die();
// --------------------------------- # Конец # ------------------------------------- //
} else {
$a123 = array('Ожидаем хода противника','Ща ответят','Ждемс','Еще немного','Жахнет Гендальф или нет?','ЩАс все будет','Еще немного подождем','Противник явно маринует','Сейчас долбанет','Блин ну когда же','Ахтунг в тапках','Только бы никто не вмешался','Перекур','Таймаут был близок','Ждем-недождемся','Ща ведь ударит, зараза','Кто-то щас кританет','Ау блин слоники??','Заснули там??','Эй там, на берегу!','Давай мочи зараза!','Рубись!!!','И долго еще так сидеть?','А ответить?');
$r123 = rand(0, count($a123) - 1);
$echo = "<center>[b]".$a123[$r123]."[/b]
<input type=button name=ref value=' Обновить ' onclick='ref.disabled = true; window.location.href=\"main.php?tmp=\"+Math.random();\"\"' class=standbut></center>
";
}
} else {
$random = 0; // rand(0, $n - 1);
if ($accept == 1) $victims['0'] = intval($_GET['smena']);
// ----------------------------- # Проигрыш по таймауту # -------------------------- //
if ($timeout <= 0 && !$endbattle){
// Выбираем игроков в бою которые не сходили к моменту таймаута
$sliv = mysql_query("SELECT BattleFighter.Team, BattleFighter.TotalExpa, person.* FROM BattleFighter, person WHERE BattleFighter.BattleID = ".$stat['battle']." AND BattleFighter.EndRound = '0' AND BattleFighter.died = 0 AND BattleFighter.isBot = 0 AND person.id = BattleFighter.FighterID AND person.hp_now > 0"); // AND person.hp_now > 0
while ($opp_stat = mysql_fetch_array($sliv)){
include("includes/battle/changed_2.php");
// Запись в текстовый лог основных параметров игрока
$battle_file = "battle_".$stat['battle'].".txt";
$fp = fopen("battle/".$battle_file, "a");
flock($fp, LOCK_EX);
$text = "".$opp_stat['user']."||0:0|0:0:0|0|".$opp_stat['Team']."|".$opp_stat['strength']."|".$opp_stat['dex']."|".$opp_stat['agility']."|".$opp_stat['vitality']."|".$opp_stat['power']."|".$opp_stat['razum']."|".$opp_stat['hp']."|".$opp_stat['hp_max']."|".$opp_stat['energy']."|".$opp_stat['energy_max']."|".$opp_stat['br1'].":".$opp_stat['br2'].":".$opp_stat['br3'].":".$opp_stat['br4'].":".$opp_stat['br5']."|".$opp_stat['min']."|".$opp_stat['min1']."|".$opp_stat['min2']."|".$opp_stat['max']."|".$opp_stat['max1']."|".$opp_stat['max2']."|".$opp_stat['krit']."|".$opp_stat['mkrit']."|".$opp_stat['unkrit']."|".$opp_stat['uv']."|".$opp_stat['unuv']."|".$opp_stat['pblock']."|".$opp_stat['mblock']."|".$opp_stat['pbr']."|".$opp_stat['kbr']."|".$opp_stat['metk']."|0|0|0\n";
fwrite($fp, $text);
flock($fp, LOCK_UN);
fclose($fp);
if ($Battles['Raund'] > 1){
// Помечаем окончание раунда
mysql_query("UPDATE `BattleFighter` SET `EndRound` = '1', `died` = '1', `TotalExpa` = '".($opp_stat['TotalExpa']/2)."' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$opp_stat['id']."'");
// Запись в бд
mysql_query("INSERT INTO `BattleLog` (HitID, BattleID, HitTime, HitStatus, AttackerFighter, AttackerTeam, RedComment)VALUES (0, ".$stat['battle'].", ".$now.", ".$Battles['Raund'].", '".$opp_stat['user']."', '".$opp_stat['Team']."', '79')");
}else{
// Помечаем окончание раунда
mysql_query("UPDATE `BattleFighter` SET `EndRound` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$opp_stat['id']."'");
// Запись в бд
mysql_query("INSERT INTO `BattleLog` (HitID, BattleID, HitTime, HitStatus, AttackerFighter, AttackerTeam, RedComment)VALUES (0, ".$stat['battle'].", ".$now.", ".$Battles['Raund'].", '".$opp_stat['user']."', '".$opp_stat['Team']."', '78')");
}
}
echo"<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL=main.php?set=battle&smena=".intval($_GET['smena'])."&tmp=".time()."\">";
//die();
}
// --------------------------------- # Конец # ------------------------------------- //
if (($timeout > 0 || $max['time'] == '') && ($victims[$random] || $BattleFighter['EndRound'] == 0)){
if ($victims[$random] == "") {
$stat_block = 0;
$stat_kick = 0;
}
$echo = "<form method=POST action=main.php?set=battle&smena=".intval($_GET['smena'])."><input type=hidden name=opponent value='".$victims[$random]."'>";
$p_block = $BattleFighter['block'];
$p_hit = $BattleFighter['hit'];
$p_krit = $BattleFighter['krit'];
$p_mag = $BattleFighter['spirit'];
$p_parry = $BattleFighter['parry'];
$p_hp = $BattleFighter['hp'];
$SL_P = mysql_fetch_array(mysql_query("select * from slots_priem where id = $stat[id]"));
for ($i = 1; $i < 11; $i++) {
if ($SL_P[$i] != 0){
if ($p_block < $priem_full[$SL_P[$i]]['block'] || $p_hit < $priem_full[$SL_P[$i]]['hit'] || $p_krit < $priem_full[$SL_P[$i]]['krit'] || $p_mag < $priem_full[$SL_P[$i]]['mag'] || $p_parry < $priem_full[$SL_P[$i]]['parry'] || $p_hp < $priem_full[$SL_P[$i]]['dam'] || $BattleFighter['wait'] > 0) {
$priem_[$i] = "<IMG width=40 height=25 src=\'img/battle/priem/".$SL_P[$i]."n.gif\' onmouseover=\"set_text_hint(\'<table width=130 cellspacing=0 cellpadding=0 border=0><tr><td><font color=blue>[b]".$priem_full[$SL_P[$i]][name]."</td></tr><tr><td><font color=red size=1>мин. треб:
</font><font size=1>Блокирование: ".$priem_full[$SL_P[$i]]['block']."
<font size=1>Пробой: ".$priem_full[$SL_P[$i]]['hit']."
<font size=1>Крит: ".$priem_full[$SL_P[$i]]['krit']."
Парирование: ".$priem_full[$SL_P[$i]]['parry']."
Урон: ".$priem_full[$SL_P[$i]]['dam']."
Магия: ".$priem_full[$SL_P[$i]]['mag']."
</font><font color=red size=1>Описание:
</font><font size=1>".$priem_full[$SL_P[$i]]['about']."</font>[/b]</td></tr></table>\');show_hint();\" onmouseout=\"hide_hint();\" onmousemove=\"show_hint();\">";
} else {
$priem_[$i] = "<IMG style=\'CURSOR: HAND;\' width=40 height=25 src=\'img/battle/priem/".$SL_P[$i].".gif\' alt=\'Нажмите для использования\' onmouseover=\"set_text_hint(\'<table width=130 cellspacing=0 cellpadding=0 border=0><tr><td><font color=blue>[b]".$priem_full[$SL_P[$i]][name]."</td></tr><tr><td><font color=red size=1>мин. треб:
</font><font size=1>Блокирование: ".$priem_full[$SL_P[$i]]['block']."
<font size=1>Пробой: ".$priem_full[$SL_P[$i]]['hit']."
<font size=1>Крит: ".$priem_full[$SL_P[$i]]['krit']."
Парирование: ".$priem_full[$SL_P[$i]]['parry']."
Урон: ".$priem_full[$SL_P[$i]]['dam']."
Магия: ".$priem_full[$SL_P[$i]]['mag']."
</font><font color=red size=1>Описание:
</font><font size=1>".$priem_full[$SL_P[$i]]['about']."</font>[/b]</td></tr></table>\');show_hint();\" onmouseout=\"hide_hint();\" onmousemove=\"show_hint();\" onclick=\'window.location.href=\"?use_priem=$SL_P[$i]&use_slot=$i&tmp=\"+Math.random();\"\"\'>";}
} else {
$priem_[$i] = "<IMG width=40 height=25 src=\'img/battle/priem/clear.gif\' alt=\'Пустой слот приёма\'>";}
}
if($_POST['auto_go']) $_SESSION['auto_go'] = 'on';
$form = "<center>
<table width=280 align=center border=0 cellspacing=0 cellpadding=5 bordercolor=A5A5A5>
<tr>
<td align=center style=' BORDER-BOTTOM: 1px solid' colspan=2>[b]Бой[/b]</td>
</tr>
<tr>
<td valign=center ALIGN=CENTER>
<script LANGUAGE='JavaScript'>
<!--
var stat_block = ".($stat_block + 0).";
var stat_kick = ".($stat_kick + 0).";
function DrawAutoUdar () {
var HTML = '';
HTML += '<table><tr><td align=center>';
HTML += '<input type=\'checkbox\' name=\'auto_go\'"; if($_SESSION['auto_go']) $form .= " checked disabled"; $form .="> - автоматический ход, если выбран удар и блок';
HTML += '</td></tr><tr><td align=center>';
HTML += DrawRes( ".(0+$p_block).", ".(0+$p_hit).", ".(0+$p_krit).", ".(0+$p_parry).", ".(0+$p_hp).", ".(0+$p_mag).");
HTML += '</td></tr>';
HTML += '<tr><td align=center>".$priem_['1'].$priem_['2'].$priem_['3'].$priem_['4'].$priem_['5'].$priem_['6'].$priem_['7'].$priem_['8'].$priem_['8'].$priem_['10']."</td></tr>';
HTML += '</table>';
return HTML;
}
//-->
</SCRIPT>
<DIV ID=oMen CLASS=\"menu\" width=0 height=0></DIV>
</tr>";
if ($BattleFighter['wait'] > 0) $form .= "<tr><td colspan=2 align=center>Выбран приём [b]".$priem_full[$BattleFighter[priem]]['name']."[/b]
Ожидание/Действие: [b]".$BattleFighter['wait']."/".$BattleFighter['time']."[/b] ходов.</td></tr>";
$form .= "<tr>
<table width=100% border=0 cellspacing=0 cellpadding=0 align=center>
<tr>
<td align=center><input type=button value=' Ударить ' class=standbut name=fight onClick=\"gofight(this)\"></td>
<td align=center><input type=button value=' Карта / Бой ' class=standbut name=map3 onClick=\"ShowMap()\"></td>
<td align=center><input type=button value=' Сменить ' onclick='Spisok();' class=standbut></td>
<td align=center><input type=button name=ref value=' Обновить ' onclick='ref.disabled = true; window.location.href=\"main.php?do=smena&smena=".intval($_GET['smena'])."&tmp=\"+Math.random();\"\"' class=standbut></td>
</tr>
</table>
</center>
</form>";
}
}
} else {
// ----- # Выигрыш # ----- //
if (!$endbattle) {
$echo = "<center>[b]Поздравляем! Победа за Вами![/b]
<input type=button value=' Вернуться ' onclick='window.location.href=\"main.php?tmp=\"+Math.random();\"\"' class=standbut></center>
";
mysql_query("UPDATE person SET last_battle = ".$stat['battle']." WHERE battle = '".$stat['battle']."' AND `rank` = 60");
// Закончили битву, пометили что она завершена
if ($Battles['Status'] == 'InProcess') mysql_query("UPDATE Battles SET Status = 'Finished' WHERE BattleID = '".$stat['battle']."'");
get_exp();
drop();
level_up();
aktivnost();
//
if (fopen('battle/battle_'.$stat["battle"].'.txt', 'a')) unlink('battle/battle_'.$stat["battle"].'.txt');
//
if ($Battles['BattleType'] == '4'){
if ($stat['sclon'] == 1) mysql_query("UPDATE game_stats SET value = value + 1 WHERE name = 'light'");
elseif ($stat['sclon'] == 2) mysql_query("UPDATE game_stats SET value = value + 1 WHERE name = 'dark'");
}
if ($stat['tribe'] && $opp_stat['rank'] != 60){
$add1 = round($BattleFighter['damage']/2);
$add2 = round($BattleFighter['damage']*1.5);
$addpoints = rand($add1, $add2);
$Dro = mysql_query("SELECT * FROM `drop` WHERE `id` = '".$opp_stat['quest']."'");
if (mysql_num_rows($Dro)){
$Dropa = mysql_fetch_array($Dro);}
$SS = mysql_query("UPDATE tribes SET points=points+$addpoints WHERE name='".$stat['tribe']."' ");
}
if ($opp_stat['rank']==60){
mysql_query("update person set credits=credits+1.00 where id='".$stat['id']."'");
$addmoney = 0.05;
}else{
if ($stat['room'] == 1) $addmoney = 0.5*($opp_stat['level'] + 1); else $addmoney = 0.1;
mysql_query("update person set credits=credits+$addmoney where id='".$stat['id']."'");
}
require_once("function/chat_insert.php");
insert_msg("Поздравляем, Вы одержали победу! Всего Вами нанесено урона: [b][u]".$BattleFighter['damage']." HP[/u][/b]. Получено опыта: [b][u]".$addexp."[/u][/b]. Получена награда: [b][u]".$addmoney."[/u] кр.[/b].","","","1",$stat['user'],"",$stat['room']);
mysql_query("UPDATE `person_q` SET `q_st` = `q_st` + ".$Dropa['q_in']." WHERE `id` = '".$stat['id']."'");
if ($STD == 1) insert_msg ("После боя вы обнаружили [b]".$Drops['title']."[/b]. Вы подняли его и положили в рюкзак.","","","1",$stat['user'],"",$stat['room']);
if ($SS) insert_msg ("Вы заработали для клана ".$addpoints." очков рейтинга.","","","1",$stat['user'],"",$stat['room']);
$endbattle = 1;
$stat['battle'] = '';
}
// ----- # Конец # ----- //
}
}
include("includes/magic/use.php");
include("includes/battle/left.php");
if (!empty($nms)) echo"<center><font color=red>[b]".$nms."[/b]</font></center>";
echo"$echo$form";
if (!$endbattle) {
$MapUnits = "";
// Построение комманд
$_comm = mysql_query("SELECT `BattleFighter`.EndRound, `BattleFighter`.Team, `BattleFighter`.x, `BattleFighter`.y, `person`.hp_now as hp, `person`.level as lvl, `person`.rank, `person`.user, `person`.id FROM `BattleFighter`, `person` WHERE BattleFighter.BattleID = ".$stat['battle']." AND BattleFighter.died = '0' AND person.id = BattleFighter.FighterID AND person.hp_now > 0 ORDER BY person.rank ASC, person.level");
$TU = mysql_num_rows($_comm);
for ($i = 0; $i < $TU; $i++) {
$comm = mysql_fetch_array($_comm);
$comm['hp'] = round($comm['hp']);
switch ($comm['Team']) {
case 0:
$command['left'][] = $comm['user']; // Персы в левой команде (не трупы)
$command['left_hp'][] = $comm['hp'];
$command['left_lvl'][] = $comm['lvl'];
break;
case 1:
$command['right'][] = $comm['user']; // Персы в правой команде (не трупы)
$command['right_hp'][] = $comm['hp'];
$command['right_lvl'][] = $comm['lvl'];
break;
}
if ($comm['rank'] == 60 && $comm['EndRound'] == 0) {
if ($comm['Team'] == 0) $user_opp = $command['right'][rand(0, count($command[right])-1)];
else $command['left'][rand(0, count($command[left])-1)];
if (!$user_opp) $user_opp = $stat['user'];
$bots = mysql_query("SELECT * FROM `person` WHERE `person`.`id` = ".$comm['id']."");
$opp_stat = mysql_fetch_assoc($bots);
include("includes/battle/changed_2.php");
$opponent_kick1 = rand(1,5);
$opponent_block1 = rand(1,5);
$opponent_block2 = rand(1,5);
do{
$opponent_block2 = rand(1,5);
}while ($opponent_block1 == $opponent_block2);
// Запись в текстовый лог основных параметров игрока
$battle_file = "battle_".$stat['battle'].".txt";
$fp = fopen("battle/".$battle_file, "a");
flock($fp, LOCK_EX);
$text = "".$opp_stat['user']."|".$user_opp."|".$opponent_kick1.":0|".$opponent_block1.":".$opponent_block2.":0|0|".$comm['Team']."|".$opp_stat['strength']."|".$opp_stat['dex']."|".$opp_stat['agility']."|".$opp_stat['vitality']."|".$opp_stat['power']."|".$opp_stat['razum']."|".$opp_stat['hp']."|".$opp_stat['hp_max']."|".$opp_stat['energy']."|".$opp_stat['energy_max']."|".$opp_stat['br1'].":".$opp_stat['br2'].":".$opp_stat['br3'].":".$opp_stat['br4'].":".$opp_stat['br5']."|".$opp_stat['min']."|".$opp_stat['min1']."|".$opp_stat['min2']."|".$opp_stat['max']."|".$opp_stat['max1']."|".$opp_stat['max2']."|".$opp_stat['krit']."|".$opp_stat['mkrit']."|".$opp_stat['unkrit']."|".$opp_stat['uv']."|".$opp_stat['unuv']."|".$opp_stat['pblock']."|".$opp_stat['mblock']."|".$opp_stat['pbr']."|".$opp_stat['kbr']."|".$opp_stat['metk']."|0|0|0\n";
fwrite($fp, $text);
flock($fp, LOCK_UN);
fclose($fp);
// Помечаем окончание раунда
mysql_query("UPDATE `BattleFighter` SET `EndRound` = '1' WHERE `BattleID` = '".$stat['battle']."' AND `FighterID` = '".$opp_stat['id']."'");
// Запись в бд
mysql_query(
"INSERT INTO `BattleLog` (HitID, BattleID, HitTime, HitStatus, AttackerFighter, AttackerTeam, AttackerHitType, AttackerBlock, DefenderFighter)
VALUES (0, ".$stat['battle'].", ".$now.", ".$Battles['Raund'].", '".$opp_stat['user']."', '".$comm['Team']."', '".$opponent_kick1.",0', '".$opponent_block1.",".$opponent_block2.",0', '".$user_opp."')");
}
if ($i > 0) $MapUnits .= ",";
$MapUnits .= "".$comm['id'].":{nk:\"".$comm['user']."\",sd:".$comm['Team'].",x:".$comm['x'].",y:".$comm['y'].",hp:".$comm['hp']."}"; // Заполняем карту арены
}
//
echo"<script language=\"javascript\">
<!--
var UNBS = {".$MapUnits."};
var OBSTACLES = {};
var FLDX = 11;
var FLDY = 8;
var ME = {id:".$stat['id'].",nk:\"".$stat['user']."\"};
var SM = 0;
//-->
</script>";
?>
<script language="javascript">
setTimeout(ShowMap, 500);
</script>
<?
echo"<TABLE WIDTH=100% cellspacing=0 cellpadding=5 background='/img/design_new/inman/inman_fon2.gif' border = 1 style='border-collapse: collapse; border-style: solid; padding: 2' bordercolor='#D8C792'>
<TR>
<TD width=50% style='BORDER-RIGHT: 0px solid' align=top><CENTER>
[b][u]Союзники[/u][/b]</CENTER>
\n";
// Список команд
$counts = count($command[left]);
for ($i = 0; $i < $counts; $i++) {
echo"<center><a href=\"java script:top.to('".$command[left][$i]."')\" oncontextmenu=\"top.pp('".$command[left][$i]."'); return false;\"><font color=0000FF>".$command[left][$i]."[".$command[left_lvl][$i]."]</font></a> [size="1"] [ ".$command[left_hp][$i]." ][/size]</center>\n";
}
echo"</td><TD width=50% style='BORDER-LEFT: 1px solid' align=top><CENTER>
[b][u]Противники[/u][/b]</CENTER>
\n";
$counts = count($command[right]);
for ($i = 0; $i < $counts; $i++) {
echo "<center><a href=\"java script:top.to('".$command[right][$i]."')\" oncontextmenu=\"top.pp('".$command[right][$i]."'); return false;\"><font color=FF1020>".$command[right][$i]."[".$command[right_lvl][$i]."]</font></a> [size="1"] [ ".$command[right_hp][$i]." ][/size]</center>\n";
}
//
echo"</TD></TR></TABLE>";
}
$last_turns = mysql_query("SELECT * FROM `BattleLog` WHERE `BattleID` = '".$stat['battle_t']."' AND `RedComment` != '0' AND `HitStatus` != ".$Battles['Raund']." ORDER BY HitID DESC, HitStatus DESC LIMIT 10");
if ($last_turns){
$BattleLog = "";
for ($i = 0; $i < mysql_num_rows($last_turns); $i++) {
if ($i == 0) {
echo "<TABLE CELLSPACING=0 CELLPADDING=1 WIDTH=100%><TR><TD";
if (!$endbattle) echo" WIDTH=50%><center>Нанесено урона: [u]".$BattleFighter['damage']." HP[/u]";
else echo" WIDTH=100% ALIGN=CENTER>[b]Бой закончен.[/b]
Нанесено урона: [u]".$BattleFighter['damage']." HP[/u].";
if ($timeout < 0) $timeout = 0;
if ($endbattle != 1) {
echo" Тайм-аут: [u]",$Battles['Timeout']/60,"[/u] мин.
До тайм-аута: <b id='timeout'>[/b]";
if ($timeout < -15) echo"";
else
echo"<script>ShowTime('timeout', ".$timeout.", 1);</script><HR color=e2e0e0>[b]Полный лог боя <a href=\"view_logs.php?log=".$stat['battle']."\" target=\"_blank\"> тут</a>[/b]</center>";
}
echo"</TR></TABLE><HR color=e2e0e0>\n";
}
$turn = mysql_fetch_array($last_turns);
if ($i == 0) $lg = $turn['HitStatus'];
if ($lg > $turn['HitStatus']) $BattleLog .= "<HR color=e2e0e0>\n";
$BattleLog .= "<script>SC(".$turn['HitID'].", '".date("H:i", $turn['HitTime'])."', ".$turn['HitStatus'].", '".$turn['AttackerFighter']."', ".$turn['AttackerTeam'].", '".$turn['AttackerHitType']."', ".$turn['AttackerDamage'].", '".$turn['AttackerBlock']."', '".$turn['DefenderFighter']."', '".$turn['DefenderHitType']."', ".$turn['DefenderDamage'].", '".$turn['DefenderBlock']."', ".$turn['RedComment'].");</script>\n";
$lg = $turn['HitStatus'];
}
}
if ($timeout > 0 and $stat['hp_now'] > 0 and !$endbattle and $victims[$random] != "") include('includes/battle/right.php');
else echo"</td><td valign=top align=right><img src=/img/battle/1.gif width=210 height=277></td></tr>";
echo"</table><table width=\"100%\"><tr><td valign=top align=\"left\">".$BattleLog."</td></tr></table></body></html>";
?>