battles/magic/ebattack.php

208 lines
10 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use Battles\GameLogs;
use Battles\Nick;
$us = mysql_fetch_array(mysql_query("SELECT *,(select `id` from `online` WHERE `real_time` >= ".(time()-60)." AND `id` = users.`id`) as `online` FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
$owntravma = mysql_fetch_array(mysql_query("SELECT * FROM `effects` WHERE `owner` = ".$us['id']." AND (type=13 OR type=12 OR type=14);"));
$raid_t=mysql_fetch_array(mysql_query("SELECT * FROM variables WHERE var='raid_on_status' limit 1;"));
$effect = mysql_fetch_array(mysql_query("SELECT `id` FROM `effects` WHERE `owner` = '{$us['id']}' AND `time` > '".time()."' AND `type` = '227' LIMIT 1"));
$hm=mysql_fetch_array(mysql_query("SELECT `value` FROM `variables` WHERE `var` = 'haos_match' LIMIT 1;"));
$hm=unserialize($hm['value']);
$us_b=mysql_fetch_array(mysql_query("SELECT `type`,`open` FROM `battle` WHERE `id`='{$us['battle']}';"));
$forb_battle=array();
if($raid_t['value']>0)
$forb_battle[]=$raid_t['value'];
foreach($hm as $lv=>$num)
if($num>0)
$forb_battle[]=$num;
if ($user['intel'] > 0) {
$int=90 + $user['intel']*3;
if ($int>98){$int=99;}
}
else {$int=91;}
if ($user['battle'] > 0) {
echo "Не в бою...";
} elseif ($us_b['type']==3 || $us_b['type']==5) {
echo "Запрещено входить в хаотический бой!";
} elseif ($us['battle']>0 && $us_b['open']==0) {
echo "Бой закрыт для вмешательства!";
} elseif (in_array($us['battle'],$forb_battle)) {
echo "Вы не можете вступать в бой за силы Хаоса!!";
}
elseif (!$us['online']) {
echo "Персонаж не в игре!";
}
elseif ($user['zayavka'] > 0) {
echo "Вы ожидаете поединка...";
} elseif ($owntravma['id'] && !$us['battle']) {
echo "Персонаж тяжело травмирован...";
} elseif(in_array($us['room'], UNKILABLE['rooms'])) {
echo "В данной комнате запрещены нападения ...";
} elseif(in_array($us['id'], UNKILABLE['users'])) {
echo "Персонаж под защитой от нападений ...";
} elseif(isset($effect['id'])) {
echo "Персонаж под защитой от нападений ...";
} elseif ($user['klan'] != '' && ($user['klan'] == $us['klan'])) {
echo "Чтите честь ваших сокланов.";
} elseif ($user['align'] >1 && $user['align'] <2 && $us['align'] >1 && $us['align'] <2) {
echo "Чтите честь братьев.";
} elseif ($user->getRoom() != $us['room']) {
echo "Персонаж в другой комнате!";
} elseif ($us['room'] == 31 || $us['room'] == 46 || $us['room'] == 47 || $us['room'] == 48 || $us['room'] == 49 ||$us['room'] == 600 || $us['room'] == 601 || $us['room'] == 45 || $us['room'] == 602 || $us['room'] == 43 || $us['room'] ==45) {
echo "Нападения в этой локации запрещены!";
} elseif ($us['align'] == 2.9) {
echo "Нападения на Ангела строго запрещено!";
} elseif ($us['align'] == 8.11) {
echo "Нападение на Гвардейца Света запрещено!";
} elseif ($us['align'] == 8.21) {
echo "Нападение на Гвардейца Тьмы запрещено!";
} elseif ($us['align'] == 8.31) {
echo "Нападение на Гвардейца Нейтралитета запрещено!";
} elseif ($us['align'] >1 && $us['align'] <2) {
echo "Нападение на Паладинов запрещено!";
} elseif ($us['align'] == 4.99) {
echo "Нападение на Комментатора запрещено!";
} elseif ($us['level'] < 1) {
echo "Новички находятся под защитой Мироздателя!";
} elseif ($us['hp'] < $us['maxhp']*0.33 && !$us['battle']) {
echo "Жертва слишком слаба!";
} elseif ($user['hp'] < $user['maxhp']*0.33) {
echo "Вы слишком ослаблены для нападения!";
} elseif ($us['hp'] < 1 && $us['battle']) {
echo "Вы не можете напасть на погибшего!";
} elseif (rand(1,100) < $int) {
if ($user['sex'] == 1) {$action="напал";} else {$action="напала";}
if ($user['align'] > '2' && $user['align'] < '3') {
$angel="Ангел";
} elseif ($user['align'] > '1' && $user['align'] < '2') {
$angel="Персонаж";
}
$jert = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '{$_POST['target']}' LIMIT 1;"));
if($jert['id']!=$user['id']) {
addch("<img src=i/magic/attackb.gif> <B>{$user['login']}</B>, применив магию нападения, внезапно ".$action." на &quot;{$_POST['target']}&quot;");
addchp ('<font color=red>Внимание!</font> На вас '.$action.' <B>'.$user['login'].'</B>.<BR>\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ','{[]}'.Nick::id($jert['id'])->short().'{[]}');
//destructitem($row['id']);
$bet=1;
//арх
if($jert['id'] > _BOTSEPARATOR_) {
$arha = mysql_fetch_array(mysql_query ('SELECT * FROM `bots` WHERE `prototype` = '.$jert['id'].' LIMIT 1;'));
$jert['battle'] = $arha['battle'];
$jert['id'] = $arha['id'];
$bot=1;
}
if($jert['battle'] > 0) {
//вмешиваемся
$bd = mysql_fetch_array(mysql_query ('SELECT * FROM `battle` WHERE `id` = '.$jert['battle'].' LIMIT 1;'));
$battle = unserialize($bd['teams']);
$ak = array_keys($battle[$jert['id']]);
$battle[$user['id']] = $battle[$ak[0]];
foreach($battle[$user['id']] as $k => $v) {
$battle[$user['id']][$k] =array(0,0,time());
$battle[$k][$user['id']] = array(0,0,time());
}
$t1 = explode(";",$bd['t1']);
// проставляем кто-где
if (in_array ($jert['id'],$t1)) {
$ttt = 2;
} else {
$ttt = 1;
}
addch ("<b>".Nick::id($user['id'])->short()."</b> вмешался в <a href=logs.php?log=".$id." target=_blank>поединок »»</a>. ",$user->getRoom());
//mysql_query('UPDATE `logs` SET `log` = CONCAT(`log`,\'<span class=date>'.date("H:i").'</span> '.nick::id($user['id'])->short().' вмешался в поединок!<BR>\') WHERE `id` = '.$jert['battle'].'');
GameLogs::addBattleLog($jert['battle'],'<span class=date>'.date("H:i").'</span> '.Nick::id($user['id'])->short().' вмешался в поединок!<BR>');
mysql_query('UPDATE `battle` SET `teams` = \''.serialize($battle).'\', `t'.$ttt.'`=CONCAT(`t'.$ttt.'`,\';'.$user['id'].'\') WHERE `id` = '.$jert['battle'].' ;');
mysql_query("UPDATE users SET `battle` =".$jert['battle'].",`zayavka`=0 WHERE `id`= ".$user['id']);
$outok=1;
header("Location:fbattle.php");
//exit("<script>location.href='fbattle.php';</script>");
}
else
{
// начинаем бой
// если чел в заявке, выбиваем его
if($jert['zayavka']) {
$fict1 = mysql_fetch_array(mysql_query("SELECT * FROM `zayavka` WHERE `team1` LIKE '{$jert['id']};%' OR `team1` LIKE '%;{$jert['id']};%' LIMIT 1;"));
$fict2 = mysql_fetch_array(mysql_query("SELECT * FROM `zayavka` WHERE `team2` LIKE '{$jert['id']};%' OR `team2` LIKE '%;{$jert['id']};%' LIMIT 1;"));
if($fict1) { $team=1; }
elseif($fict2) { $team=2; }
mysql_query("UPDATE `users` SET `zayavka` = '' WHERE `id` = {$jert['id']} LIMIT 1;");
$z = mysql_fetch_array(mysql_query("SELECT `team{$team}` FROM `zayavka` WHERE `id`=".$jert['zayavka'].";"));
$teams = str_replace($jert['id'].";","",implode(";",$z[0]));
mysql_query("UPDATE `zayavka` SET team{$team} = '{$teams}' WHERE id = {$jert['zayavka']};");
}
//arch
if($bot) {
mysql_query("INSERT INTO `bots` (`name`,`prototype`,`battle`,`hp`) values ('Архивариус','83','','".$jert['hp']."');");
$jert['id'] = mysql_insert_id();
}
$teams = array();
$teams[$user['id']][$jert['id']] = array(0,0,time());
$teams[$jert['id']][$user['id']] = array(0,0,time());
$sv = array(3,4,5);
//$tou = array_rand($sv,1);
mysql_query("INSERT INTO `battle`
(
`id`,`coment`,`teams`,`timeout`,`type`,`status`,`t1`,`t2`,`to1`,`to2`,`blood`
)
VALUES
(
NULL,'','".serialize($teams)."','".$sv[rand(0,2)]."','6','0','".$user['id']."','".$jert['id']."','".time()."','".time()."','1'
)");
//логирование для уменьшения опыта при повторных боях
$btfl=fopen('/tmp/'.$user['id'].'.btl','a');
fwrite($btfl,'{[='.$jert['id'].'=]}');
fclose($btfl);
$btfl=fopen('/tmp/'.$jert['id'].'.btl','a');
fwrite($btfl,'{[='.$user['id'].'=]}');
fclose($btfl);
//логирование для уменьшения опыта при повторных боях
$id = mysql_insert_id();
// апдейтим врага
if($bot) {
mysql_query("UPDATE `bots` SET `battle` = {$id} WHERE `id` = {$jert['id']} LIMIT 1;");
} else {
mysql_query("UPDATE `users` SET `battle` = {$id} WHERE `id` = {$jert['id']} LIMIT 1;");
}
// создаем лог
$rr = "<b>".Nick::id($user['id'])->full(1)."</b> и <b>".Nick::id($jert['id'])->full(1)."</b>";
addch ("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->getRoom());
//mysql_query("INSERT INTO `logs` (`id`,`log`) VALUES('{$id}','Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>');");
GameLogs::addBattleLog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." бросили вызов друг другу. <BR>");
mysql_query("UPDATE users SET `battle` ={$id},`zayavka`=0 WHERE `id`= {$user['id']} OR `id` = {$jert['id']}");
$outok=1;
header("Location:fbattle.php");
//exit("<script>location.href='fbattle.php';</script>");
}
} else {
echo '<font color=red>Мазохист?...</font>';
}
//$bet=1;
} else {
echo "Свиток рассыпался в ваших руках...";
$bet=1;
}