2018-01-28 16:40:49 +00:00
< ? php
session_start ();
2018-11-06 01:28:10 +00:00
if ( ! isset ( $_SESSION [ 'uid' ])) {
header ( " Location: index.php " );
}
2018-01-28 16:40:49 +00:00
include ( " config.php " );
include ( " functions.php " );
2018-11-06 01:28:10 +00:00
if ( $user [ 'battle' ] != 0 ) {
header ( 'Location: fbattle.php' );
die ();
}
2019-06-21 18:43:56 +00:00
2019-06-21 18:45:17 +00:00
db :: c () -> query ( 'LOCK TABLES `bots` WRITE, `battle` WRITE, `logs` WRITE, `users` WRITE, `inventory` WRITE, `zayavka` WRITE, `effects` WRITE, `online` WRITE, `clans` WRITE' );
2018-01-28 16:40:49 +00:00
2019-06-21 17:48:47 +00:00
if (( input :: check ( 'do' ) == " clear " ) AND $user [ 'admin' ] == 1 ) {
2018-11-06 01:28:10 +00:00
db :: c () -> query ( 'UPDATE `zayavka` SET `coment` = "?s" WHERE `id` = ?i' , '<em>Вырезано цензурой!</em>' , $_GET [ 'zid' ]);
2018-01-28 16:40:49 +00:00
}
2019-06-21 17:35:40 +00:00
if ( ! empty ( $_GET [ 'del' ]) && $user [ 'admin' ] == 1 ) { //удаление заявки на бой.
2018-11-06 01:28:10 +00:00
$zayavka = db :: c () -> query ( 'SELECT `id` FROM `zayavka` WHERE `id` = ?i' , $_GET [ 'zid' ]) -> fetch_assoc ();
if ( isset ( $zayavka [ 'id' ])) {
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = 0 WHERE `zayavka` = ?i' , $zayavka [ 'id' ]);
db :: c () -> query ( 'DELETE FROM `zayavka` WHERE `id` = ?i' , $zayavka [ 'id' ]);
2018-01-28 16:40:49 +00:00
} else {
echo 'Заявка не найдена ...' ;
}
}
2019-06-22 15:09:03 +00:00
$_SESSION [ 'view' ] = false ;
2018-11-06 01:28:10 +00:00
if ( isset ( $_REQUEST [ 'view' ])) $_SESSION [ 'view' ] = $_REQUEST [ 'view' ];
class zayavka
{
var $mysql ;
function __construct ()
{
global $mysql ;
$this -> mysql = $mysql ;
}
function fteam ( $team )
{
$team = explode ( " ; " , $team );
unset ( $team [ count ( $team ) - 1 ]);
return $team ;
}
2019-06-22 10:05:59 +00:00
/**
2019-09-24 11:55:23 +00:00
* @ param int $razdel - тип поединка ( 1 - нубы , 2 - физы , 4 - группы , 5 - х а о с )
* @ param null $level - показывать заявки только N уровня
2019-06-22 10:05:59 +00:00
* @ param null $id
2019-09-24 11:55:23 +00:00
*
2019-06-22 10:05:59 +00:00
* @ return mixed
* @ throws \Krugozor\Database\Mysql\Exception
*/
2019-09-24 12:36:26 +00:00
function getlist ( $razdel = 4 , $level = null , $id = null )
2018-11-06 01:28:10 +00:00
{
2019-06-22 09:34:23 +00:00
$sql = db :: c () -> prepare ( 'SELECT * FROM `zayavka` WHERE `level` = ?i' , $razdel );
if ( ! is_null ( $level )) {
2019-06-22 09:35:22 +00:00
$sql .= db :: c () -> prepare ( ' AND (`t1min` <= ?i OR `t1min` = 99) AND (`t1max` >= ?i OR `t1max` = 99)' , $level , $level );
2019-06-22 09:34:23 +00:00
if ( 4 == $razdel ) {
2019-06-22 09:35:22 +00:00
$sql .= db :: c () -> prepare ( ' AND (`t2min` <= ?i OR `t2min` = 99) AND (`t2max` >= ?i OR `t2max` = 99)' , $level , $level );
2019-06-22 09:34:23 +00:00
}
}
if ( ! is_null ( $id )) {
2019-06-22 09:35:22 +00:00
$sql .= db :: c () -> prepare ( ' AND `id` = ?i' , $id );
2019-06-22 09:34:23 +00:00
}
$fict = db :: c () -> query ( $sql );
while ( $row = $fict -> fetch_assoc ()) {
2018-11-06 01:28:10 +00:00
if (( $row [ 'start' ] + 300 ) < time ()) {
2019-06-22 09:34:23 +00:00
if ( db :: c () -> query ( 'DELETE FROM `zayavka` WHERE `id` = ?i' , $row [ 'id' ])) {
2018-11-06 01:28:10 +00:00
$team1 = $this -> fteam ( $row [ 'team1' ]);
foreach ( $team1 as $k => $v ) {
2019-06-22 09:34:23 +00:00
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = 0 WHERE `id` = ?i' , $v );
2018-11-06 01:28:10 +00:00
}
$team2 = $this -> fteam ( $row [ 'team2' ]);
foreach ( $z [ $zay ][ 'team2' ] as $k => $v ) {
2019-06-22 09:34:23 +00:00
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = 0 WHERE `id` = ?i' , $v );
2018-11-06 01:28:10 +00:00
}
}
}
2019-09-24 11:55:23 +00:00
$zay [ $row [ 'id' ]] = [ " team1 " => $this -> fteam ( $row [ 'team1' ]), " team2 " => $this -> fteam ( $row [ 'team2' ]), " coment " => $row [ 'coment' ], " type " => $row [ 'type' ], " timeout " => $row [ 'timeout' ], " start " => $row [ 'start' ], " t1min " => $row [ 't1min' ], " t1max " => $row [ 't1max' ], " t2min " => $row [ 't2min' ], " t2max " => $row [ 't2max' ], " t1c " => $row [ 't1c' ], " t2c " => $row [ 't2c' ], " podan " => $row [ 'podan' ], " id " => $row [ 'id' ], " level " => $row [ 'level' ], " blood " => $row [ 'blood' ], " bots " => $row [ 'bots' ]];
2018-11-06 01:28:10 +00:00
}
return $zay ;
}
2019-09-24 10:38:05 +00:00
function addteam ( $team , $r )
2018-11-06 01:28:10 +00:00
{
global $user ;
2019-09-24 10:38:05 +00:00
$id = $_SESSION [ 'uid' ];
$zay = $_REQUEST [ 'gocombat' ];
2019-06-22 15:43:05 +00:00
$owntravma = db :: c () -> query ( 'SELECT `id`, `type` FROM `effects` WHERE (`type` = 12 OR `type` = 13) AND `owner` = ?i' , $id ) -> fetch_assoc ();
2018-11-06 01:28:10 +00:00
$z = $this -> getlist ( $r , null , $zay );
if ( $owntravma ) {
switch ( $owntravma [ 'type' ]) {
case ( $owntravma [ 'type' ] == 12 && ( $z [ $zay ][ 'type' ] != 4 && $z [ $zay ][ 'type' ] != 5 )) :
return " У В а с средняя травма, поединки с оружием слишком тяжелы для В а с ..." ;
break ;
case 13 :
return " У В а с тяжелая травма, Вы не сможете драться..." ;
break ;
}
}
2019-06-22 15:09:03 +00:00
if ( ! empty ( $user [ 'zayavka' ])) return " Вы находитесь в заявке " ;
2018-11-06 01:28:10 +00:00
2019-06-22 15:09:03 +00:00
if ( $user [ 'hp' ] < $user [ 'maxhp' ] * 0.33 ) return " Вы слишком ослаблены для боя, восстановитесь. " ;
2018-11-06 01:28:10 +00:00
2019-06-22 15:09:03 +00:00
if ( ! $z ) return " Эта заявка не может быть принята Вами. " ;
2018-11-06 01:28:10 +00:00
2019-06-22 15:09:03 +00:00
if ( $this -> user_status ( $id ) != 0 ) return " Эта заявка не может быть принята Вами. " ;
2018-11-06 01:28:10 +00:00
2019-06-22 15:09:03 +00:00
if ( $z [ $zay ][ 'type' ] != 3 OR $z [ $zay ][ 'type' ] != 5 ) {
if ( $team == 1 ) $teamz = 2 ;
else $teamz = 1 ;
2018-11-06 01:28:10 +00:00
foreach ( $z [ $zay ][ 'team' . $teamz ] as $v ) {
2019-06-22 15:09:03 +00:00
$enemy = db :: c () -> query ( 'SELECT `klan` FROM `users` WHERE `id` = ?i' , $v ) -> fetch_assoc ();
if ( $user [ 'klan' ] == $enemy [ 'klan' ]) return " Нельзя драться против сокланов! " ;
2018-11-06 01:28:10 +00:00
}
}
if ( $z [ $zay ][ 't' . $team . 'min' ] == 99 ) {
2019-06-22 15:43:05 +00:00
$toper = db :: c () -> query ( 'SELECT `klan` FROM `users` WHERE `id` = ?i' , $z [ $zay ][ 'team' . $team ][ 0 ]) -> fetch_assoc ();
if ( $user [ 'klan' ] != $toper [ 'klan' ]) return " Эта заявка не может быть принята Вами. " ;
2018-11-06 01:28:10 +00:00
} else {
if ( $user [ 'level' ] > 0 && ! ( $z [ $zay ][ 't' . $team . 'min' ] <= $user [ 'level' ] && $z [ $zay ][ 't' . $team . 'max' ] >= $user [ 'level' ])) {
return " Эта заявка не может быть принята Вами. - " . $z [ $zay ][ 't' . $team . 'min' ];
}
}
if ( count ( $z [ $zay ][ 'team' . $team ]) >= $z [ $zay ][ 't' . $team . 'c' ]) {
return " Группа уже набрана. " ;
}
$z [ $zay ][ 'team' . $team ][] = '' ;
if ( mysql_query ( " UPDATE `users`, `zayavka` SET `users`.`zayavka` = { $zay } , `zayavka`.`team { $team } ` = ' " . implode ( " ; " , $z [ $zay ][ 'team' . $team ]) . " " . $id . " ;' WHERE `users`.`id` = { $id } AND `users`.`zayavka` = 0 AND `zayavka`.`id` = { $zay } " )) {
return " Вы приняли заявку на бой. " ;
2019-06-21 17:42:46 +00:00
} else return 'addteam(): database error!' ;
2018-11-06 01:28:10 +00:00
}
2019-06-22 15:09:03 +00:00
function delteam ( $id , $zay , $r )
2018-11-06 01:28:10 +00:00
{
$z = $this -> getlist ( $r , null , $zay );
if ( $z [ $zay ][ 'level' ] > 3 || $z [ $zay ][ 'level' ] == null ) {
return " Ай-ай-ай! " ;
}
2019-06-22 15:09:03 +00:00
foreach ( $z [ $zay ][ 'team2' ] as $v ) {
2018-11-06 01:28:10 +00:00
if ( $v != $id ) {
$teams [] = $v ;
}
}
if ( mysql_query ( " UPDATE `users`, `zayavka` SET `users`.`zayavka` = '0', `zayavka`.`team { $team } ` = ' { $teams } ' WHERE `users`.`id` = { $id } AND `zayavka`.`id` = { $zay } ; " )) {
return " Вы отозвали запрос " ;
2019-06-21 17:42:46 +00:00
} else return 'delteam(): database error!' ;
2018-11-06 01:28:10 +00:00
}
2019-09-24 13:27:46 +00:00
function addzayavka ( $start , $timeout , $t1c , $t2c , $type , $t1min , $t2min , $t1max , $t2max , $coment , $level , $blood = 0 )
2018-11-06 01:28:10 +00:00
{
global $user ;
2019-09-24 13:27:46 +00:00
if ( ! in_array ( $level , [ 2 , 4 , 5 ])) $level = 4 ; /*2-физ, 4-группа, 5-х а о с */
2018-01-28 16:40:49 +00:00
2018-11-06 01:28:10 +00:00
if ( $level == 2 AND $type != 1 AND $type != 4 AND $type != 6 ) $type = 1 ;
if ( $level == 4 AND $type != 2 AND $type != 4 ) $type = 2 ;
if ( $level == 5 AND $type != 3 AND $type != 5 ) $type = 3 ;
2018-01-28 16:40:49 +00:00
2019-09-24 13:27:46 +00:00
if ( ! in_array ( $start , [ 1 , 3 , 5 , 10 , 15 , 30 , 60 ])) $start = 1 ;
if ( ! in_array ( $timeout , [ 1 , 3 , 5 , 10 ])) $timeout = 1 ;
2018-11-06 01:28:10 +00:00
2019-09-24 13:27:46 +00:00
if ( $this -> user_status ( $user [ 'id' ]) != 0 ) exit ();
2018-11-06 01:28:10 +00:00
if ( ! $user [ 'klan' ] && $t1min == 99 ) {
return " Вы не состоите в клане. " ;
}
if ( $user [ 'hp' ] < $user [ 'maxhp' ] * 0.33 ) {
return " Вы слишком ослаблены для боя, восстановитесь. " ;
}
if ( $type == 3 ) {
AddChatSystem ( 'Внимание! Подана заявка на хаотический поединок ({$t1min} - {$t1max}), который начнется через {$start} минут.' );
}
$start = time () + $start * 60 ;
db :: c () -> query ( ' INSERT INTO `zayavka`
2019-09-24 13:27:46 +00:00
( `start` , `timeout` , `t1c` , `t2c` , `type` , `level` , `coment` , `team1` , `t1min` , `t2min` , `t1max` , `t2max` , `podan` , `blood` )
2018-11-06 01:28:10 +00:00
VALUES ( ? i , ? i , ? i , ? i , ? i , ? i , " ?s " , " ?s " , ? d , ? i , ? i , ? i , ? i , " ?s " , ? i ) ' ,
2019-09-24 13:27:46 +00:00
$start , $timeout , $t1c , $t2c , $type , $level , $coment , $user [ 'id' ], $t1min , $t2min , $t1max , $t2max , date ( 'H:i' ), $blood );
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = ?i WHERE `id` = ?i' , db :: c () -> getLastInsertId (), $user [ 'id' ]);
2018-11-06 01:28:10 +00:00
return null ;
}
function delzayavka ( $id , $zay , $r , $f = 1 )
{
$z = $this -> getlist ( $r , null , $zay );
if ( $f != 1 ) {
if ( $z [ $zay ][ 'level' ] > 3 ) {
return 'Ай-ай-ай!' ;
}
}
if ( mysql_query ( " DELETE FROM `zayavka` WHERE `id` = { $zay } AND (`team1` LIKE ' { $id } ;%' OR `team2` LIKE ' { $id } ;%') LIMIT 1 " )) {
if ( count ( $z [ $zay ][ 'team1' ]) > 0 ) {
2019-06-22 15:43:05 +00:00
foreach ( $z [ $zay ][ 'team1' ] as $k => $v )
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = 0 WHERE `id` = ?i' , $v );
2018-11-06 01:28:10 +00:00
}
if ( count ( $z [ $zay ][ 'team2' ]) > 0 ) {
2019-06-22 15:43:05 +00:00
foreach ( $z [ $zay ][ 'team2' ] as $k => $v )
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = 0 WHERE `id` = ?i' , $v );
2018-11-06 01:28:10 +00:00
}
return 'Вы отозвали заявку.' ;
2019-06-21 17:42:46 +00:00
} else return 'delzayavka(): database error!' ;
2018-11-06 01:28:10 +00:00
}
function showfiz ( $row )
{
global $user ;
$rr = " <input type= \" radio \" " . (( in_array ( $user [ 'id' ], $row [ 'team1' ]) || in_array ( $user [ 'id' ], $row [ 'team2' ]) || $row [ 'team2' ]) ? " disabled " : " " ) . " name= \" gocombat \" value= \" { $row [ 'id' ] } \" /><font class=date> { $row [ 'podan' ] } </font> " ;
foreach ( $row [ 'team1' ] as $k => $v ) {
$rr .= nick :: id ( $v ) -> full ( 1 );
}
if ( $row [ 'team2' ]) {
$rr .= " <i>против</i> " ;
foreach ( $row [ 'team2' ] as $k => $v ) {
$rr .= nick :: id ( $v ) -> full ( 1 );
}
}
$rr .= " тип боя: " ;
if ( $row [ 'type' ] == 4 ) {
$rr .= " <img src= \" i/fighttype4.gif \" width= \" 20 \" height= \" 20 \" title= \" Кулачный бой \" /> " ;
} elseif ( $row [ 'type' ] == 6 ) {
$rr .= " <img src= \" i/fighttype6.gif \" width= \" 20 \" height= \" 20 \" title= \" Кровавый бой \" /> " ;
} elseif ( $row [ 'type' ] == 1 ) {
$rr .= " <img src= \" i/fighttype1.gif \" width= \" 20 \" height= \" 20 \" title= \" Физический бой \" /> " ;
}
$rr .= " (таймаут { $row [ 'timeout' ] } мин.) <br /> " ;
return $rr ;
}
function showgroup ( $row )
{
if ( $row [ 't1min' ] == 99 ) {
$range1 = " <i>клан</i> " ;
} else {
$range1 = " { $row [ 't1min' ] } - { $row [ 't1max' ] } " ;
}
if ( $row [ 't2min' ] == 99 ) {
$range2 = " <i>клан</i> " ;
} else {
$range2 = " { $row [ 't2min' ] } - { $row [ 't2max' ] } " ;
}
2019-09-24 09:49:05 +00:00
$rr = " <input type= \" radio \" " . (( in_array ( $user [ 'id' ], $row [ 'team1' ]) || in_array ( $user [ 'id' ], $row [ 'team2' ])) ? " disabled " : " " ) . " name= \" gocombat \" value= \" { $row [ 'id' ] } \" ><span class=date> { $row [ 'podan' ] } </span> <b> { $row [ 't1c' ] } </b>( { $range1 } ) ( " ;
2018-11-06 01:28:10 +00:00
foreach ( $row [ 'team1' ] as $k => $v ) {
if ( $k != 0 ) {
$rr .= " , " ;
}
$rr .= nick :: id ( $v ) -> full ( 1 );
}
$rr .= " ) <i>против</i> <b> { $row [ 't2c' ] } </b>( { $range2 } )( " ;
foreach ( $row [ 'team2' ] as $k => $v ) {
if ( $k != 0 ) {
$rr .= " , " ;
}
$rr .= nick :: id ( $v ) -> full ( 1 );
}
if ( count ( $row [ 'team2' ]) == 0 ) {
$rr .= " <i>группа не набрана</i> " ;
}
if ( $row [ 'blood' ] && $row [ 'type' ] == 5 ) {
$rr .= " <img src= \" i/fighttype6.gif \" width= \" 20 \" height= \" 20 \" /> " ;
}
2019-09-24 09:49:05 +00:00
$a = db :: c () -> query ( 'SELECT `admin` FROM `users` WHERE `id` = ?i' , $user [ 'id' ]) -> fetch_assoc ();
2018-11-06 01:28:10 +00:00
$rr .= " ) тип боя: " ;
if ( $row [ 'blood' ] && $row [ 'type' ] == 4 ) {
$rr .= " <img src= \" i/fighttype4.gif \" width= \" 20 \" height= \" 20 \" title= \" кулачный бой \" /><img src= \" i/fighttype6.gif \" width= \" 20 \" height= \" 20 \" title= \" Кровавый поединок \" /> " ;
} elseif ( $row [ 'blood' ] && $row [ 'type' ] == 2 ) {
$rr .= " <img src= \" i/fighttype6.gif \" width= \" 20 \" height= \" 20 \" title= \" Кровавый поединок \" /> " ;
} elseif ( $row [ 'type' ] == 2 ) {
$rr .= " <img src= \" i/fighttype2.gif \" width= \" 20 \" height= \" 20 \" title= \" групповой бой \" /> " ;
} elseif ( $row [ 'type' ] == 4 ) {
$rr .= " <img src= \" i/fighttype4.gif \" width= \" 20 \" height= \" 20 \" title= \" кулачный групповой бой \" /> " ;
}
$rr .= " (таймаут { $row [ 'timeout' ] } мин.) <span style='color: gray;'><i>бой начнется через " . round (( $row [ 'start' ] - time ()) / 60 , 1 ) . " мин. " . (( $row [ 'coment' ]) ? " ( " . $row [ 'coment' ] . " ) " : " " ) . " </i></span> " ;
2019-09-24 09:49:05 +00:00
if ( $a [ 'admin' ] === 1 ) {
2018-11-06 01:28:10 +00:00
$rr .= " <a href='?zid= { $row [ 'id' ] } &do=clear'><small>Удалить комментарий</small></a><br /> " ;
} else {
$rr .= " <br /> " ;
}
return $rr ;
}
function showhaos ( $row )
{
global $user ;
$rr = " <input type= \" radio \" " . (( in_array ( $user [ 'id' ], $row [ 'team1' ]) || in_array ( $user [ 'id' ], $row [ 'team2' ])) ? " disabled " : " " ) . " name= \" gocombat \" value= \" { $row [ 'id' ] } \" /><font class= \" date \" > { $row [ 'podan' ] } </font> ( " ;
if ( $row [ 'bots' ] == '7' ) {
$rr .= nick :: id ( 10962 ) -> full ( 1 );
$rr .= " , " ;
$rr .= nick :: id ( 10964 ) -> full ( 1 );
$rr .= " , " ;
$rr .= nick :: id ( 10965 ) -> full ( 1 );
$rr .= " , " ;
} elseif ( $row [ 'bots' ] == '8' || $row [ 'bots' ] == '13' ) {
$rr .= nick :: id ( 10124 ) -> full ( 1 );
$rr .= " , " ;
$rr .= nick :: id ( 10125 ) -> full ( 1 );
$rr .= " , " ;
$rr .= nick :: id ( 10126 ) -> full ( 1 );
$rr .= " , " ;
}
foreach ( $row [ 'team1' ] as $k => $v ) {
if ( $k != 0 ) {
$rr .= " , " ;
}
$rr .= nick :: id ( $v ) -> full ( 1 );
}
if ( count ( $row [ 'team1' ]) == 0 && $row [ 'bots' ] == 0 ) {
$rr .= " <i>группа не набрана</i> " ;
}
$rr .= " ) ( { $row [ 't1min' ] } - { $row [ 't1max' ] } ) тип боя: " ;
if ( $row [ 'blood' ] && $row [ 'type' ] == 5 ) {
$rr .= " <img src= \" i/fighttype5.gif \" style= \" width: 20px; height: 20px; \" title= \" Кулачный бой \" /><img src= \" i/fighttype6.gif \" style= \" width: 20px; height: 20px; \" title= \" Кровавый поединок \" /> " ;
} elseif ( $row [ 'blood' ] && $row [ 'type' ] == 3 ) {
$rr .= " <img src= \" i/fighttype6.gif \" style= \" width: 20px; height: 20px; \" title= \" Кровавый поединок \" /> " ;
} elseif ( $row [ 'type' ] == 3 ) {
$rr .= " <img src= \" i/fighttype3.gif \" style= \" width: 20px; height: 20px; \" title= \" Групповой бой \" /> " ;
} elseif ( $row [ 'type' ] == 5 ) {
$rr .= " <img src= \" i/fighttype5.gif \" style= \" width: 20px; height: 20px; \" title= \" Кулачный групповой бой \" /> " ;
}
$rr .= " (таймаут { $row [ 'timeout' ] } мин.) <span style='color: gray;'><i >бой начнется через " . round (( $row [ 'start' ] - time ()) / 60 , 1 ) . " мин. " . (( $row [ 'coment' ]) ? " ( " . $row [ 'coment' ] . " ) " : " " ) . " </i></span> " ;
2019-09-24 09:49:05 +00:00
if ( $user [ 'admin' ] === 1 ) {
2018-11-06 01:28:10 +00:00
$rsr = ' | <a href=\'?level=haos&zid=' . $row [ 'id' ] . '&del=true\'>Удалить заявку</a>' ;
} else {
$rsr = '' ;
}
2019-09-24 09:49:05 +00:00
if ( $user [ 'admin' ] == 1 ) {
2018-11-06 01:28:10 +00:00
$rr .= " <small><a href='?zid= { $row [ 'id' ] } &do=clear'>Удалить коммнтарий</a> $rsr </small><br /> " ;
} else {
$rr .= " <br /> " ;
}
return $rr ;
}
function user_status ( $id )
{
$r = db :: c () -> query ( 'SELECT `team1`,`team2` FROM `zayavka`, `users` WHERE `users`.`id` = ?i AND `zayavka`.`id` = `users`.`zayavka`' , $id ) -> fetch_assoc ();
$t1 = $this -> fteam ( $r [ 'team1' ]);
$t2 = $this -> fteam ( $r [ 'team2' ]);
if ( in_array ( $id , $t1 )) {
return 1 ;
} elseif ( in_array ( $id , $t2 )) {
return 2 ;
} else {
return 0 ;
}
}
function battlestart ( $id , $zay , $r )
{
global $user ;
$z = $this -> getlist ( $r , null , $zay );
if ( $id == 'CHAOS' ) {
$id = $z [ $zay ][ 'team1' ][ 0 ];
}
$this -> delzayavka ( $id , $zay , $r );
$z = $z [ $zay ];
$count_users = count ( $z [ 'team1' ]);
$bot = 0 ;
if ( $z [ 'bots' ] > 0 && $count_users > 0 ) {
2019-09-24 11:55:23 +00:00
$bots_raw = [ 7 => [ 10962 , 10964 , 10965 ], 8 => [ 10124 , 10125 , 10126 ], 13 => [ 10124 , 10125 , 10126 ]];
2018-11-06 01:28:10 +00:00
$i = 0 ;
while ( $i <= count ( $bots_raw [ $z [ 'bots' ]])) {
$bot_id = $bots_raw [ $z [ 'bots' ]][ $i ];
$bot = createbot ( $bot_id , '' );
$z [ 'team1' ][] = $bot [ 'id' ];
$i ++ ;
$count_users ++ ;
}
}
if ( $z [ 'type' ] == 4 || $z [ 'type' ] == 5 ) {
foreach ( $z [ 'team1' ] as $k => $v ) {
undressall ( $v );
}
foreach ( $z [ 'team2' ] as $k => $v ) {
undressall ( $v );
}
}
if ( $z [ 'level' ] == 2 ) {
$btfl = fopen ( '' . $z [ 'team1' ][ 0 ] . '.btl' , 'a' );
fwrite ( $btfl , '{[=' . $z [ 'team2' ][ 0 ] . '=]}' );
fclose ( $btfl );
$btfl = fopen ( '' . $z [ 'team2' ][ 0 ] . '.btl' , 'a' );
fwrite ( $btfl , '{[=' . $z [ 'team1' ][ 0 ] . '=]}' );
fclose ( $btfl );
}
if ( $z [ 'type' ] == 3 || $z [ 'type' ] == 5 ) {
if ( $count_users < 4 ) {
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = 0 WHERE `zayavka` = ?i' , $zay );
foreach ( $z [ 'team1' ] as $k => $v ) {
if ( $v < _BOTSEPARATOR_ ) {
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().
#addchp('<font color=red>Внимание!</font> Ваш бой не может начаться по причине <b>Группа не набрана</b>.', '{[]}' . nick::id($v)->short() . '{[]}');
die ( 'Bitch' );
}
}
db :: c () -> query ( 'UPDATE `variables` SET `value` = ?i WHERE `var` = "?s"' , $count_users , 'haos_match' );
db :: c () -> query ( 'DELETE FROM `zayavka` WHERE `id` = ?i' , $zay );
header ( " Location: zayavka.php " );
}
$all = count ( $z [ 'team1' ]) - 1 ;
$power1 = 0 ;
$power2 = 0 ;
// А ЭТО ещё что за хренотень?! О _о
for ( $i = 0 ; $i <= $all ; $i ++ ) {
if ( $z [ 'team1' ][ $i ] < _BOTSEPARATOR_ ) {
2019-06-22 15:43:05 +00:00
$gamer = db :: c () -> query ( 'SELECT (`level`*50)+`sila`+`lovk`+`inta`+`vinos`+`intel`+`stats`+IFNULL((SELECT SUM(`cost`) FROM `inventory` WHERE `owner` = `users`.`id` AND `dressed` = 1), 0) FROM `users` WHERE `id` = ?i' , $z [ 'team1' ][ $i ]) -> fetch_assoc ();
2018-11-06 01:28:10 +00:00
} else {
2019-06-22 15:43:05 +00:00
$bt = db :: c () -> query ( 'SELECT `prototype` FROM `bots` WHERE `id` = ?i' , $z [ 'team1' ][ $i ]) -> fetch_assoc ();
$gamer = db :: c () -> query ( 'SELECT (`level`*50)+`sila`+`lovk`+`inta`+`vinos`+`intel`+`stats`+IFNULL((SELECT SUM(`cost`) FROM `inventory` WHERE `owner` = `users`.`id` AND `dressed` = 1), 0) FROM `users` WHERE `id` = ?i' , $bt [ 'prototype' ]) -> fetch_assoc ();
2018-11-06 01:28:10 +00:00
}
2019-09-24 11:55:23 +00:00
$cost [] = [ $z [ 'team1' ][ $i ], $gamer [ 0 ]];
2018-11-06 01:28:10 +00:00
}
$z [ 'team1' ] = null ;
$z [ 'team2' ] = null ;
$flag = true ;
while ( $flag ) {
$flag = false ;
for ( $ii = 0 ; $ii <= $all - 1 ; $ii ++ ) {
if ( $cost [ $ii ][ 1 ] < $cost [ $ii + 1 ][ 1 ]) {
$ctr = $cost [ $ii + 1 ];
$cost [ $ii + 1 ] = $cost [ $ii ];
$cost [ $ii ] = $ctr ;
$flag = true ;
}
}
}
while ( count ( $cost ) > 0 ) {
if ( $power1 <= $power2 ) {
$tmp = array_shift ( $cost );
$power1 += $tmp [ 1 ];
$z [ 'team1' ][] = $tmp [ 0 ];
} else {
$tmp = array_shift ( $cost );
$power2 += $tmp [ 1 ];
$z [ 'team2' ][] = $tmp [ 0 ];
}
}
}
2019-09-24 11:55:23 +00:00
$teams = [];
2018-11-06 01:28:10 +00:00
foreach ( $z [ 'team1' ] as $k => $v ) {
foreach ( $z [ 'team2' ] as $kk => $vv ) {
2019-09-24 11:55:23 +00:00
$teams [ $v ][ $vv ] = [ 0 , 0 , time ()];
2018-11-06 01:28:10 +00:00
}
}
foreach ( $z [ 'team2' ] as $k => $v ) {
foreach ( $z [ 'team1' ] as $kk => $vv ) {
2019-09-24 11:55:23 +00:00
$teams [ $v ][ $vv ] = [ 0 , 0 , time ()];
2018-11-06 01:28:10 +00:00
}
}
if ( count ( $z [ 'team2' ]) == 0 ) {
db :: c () -> query ( 'UPDATE `users` SET `zayavka` = 0 WHERE `zayavka` = ?i' , $zay );
db :: c () -> query ( 'DELETE FROM `zayavka` WHERE `id` = ?i' , $zay );
foreach ( $z [ 'team1' ] as $k => $v ) {
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[2]
#addchp('<font color=red>Внимание!</font> Ваш бой не может начаться по причине "Группа не набрана".', '{[]}' . nick::id($v)->short() . '{[]}');
return null ;
}
header ( " Location: zayavka.php " );
die ();
}
if ( ! in_array ( $z [ 'timeout' ], [ 3 , 4 , 5 , 7 , 10 ])) $z [ 'timeout' ] = 3 ;
if ( count ( $teams ) > 1 ) {
if ( $z [ 'type' ] == 1 || $z [ 'type' ] == 4 ) {
$rs = ', `fiz`' ;
$rss = ', 1' ;
} else {
$rs = '' ;
$rss = '' ;
}
db :: c () -> query ( '
INSERT INTO `battle` ( `coment` , `teams` , `timeout` , `type` , `status` , `t1` , `t2` , `to1` , `to2` , ? f , `bots` )
VALUES ( " ?s " , " ?s " , ? i , ? i , ? i , " ?s " , " ?s " , ? i , ? i , ? i , ? i ) ' ,
'blood' . $rs , $z [ 'coment' ], serialize ( $teams ), $z [ 'timeout' ], $z [ 'type' ], 0 , implode ( ';' , $z [ 'team1' ]), implode ( ';' , $z [ 'team2' ]), time (), time (), $z [ 'blood' ], $rss , $z [ 'bots' ]);
$id = db :: c () -> getLastInsertId ();
$rr = " <b> " ;
foreach ( $z [ 'team1' ] as $k => $v ) {
if ( $k != 0 ) {
$rr .= " , " ;
}
$rr .= nick :: id ( $v ) -> full ( 1 );
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[3]
#addchp('<font color=red>Внимание!</font> Ваш бой начался!<br />\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ', '{[]}' . nick::id($v)->short() . '{[]}');
}
$rr .= " </b> и <b> " ;
foreach ( $z [ 'team2' ] as $k => $v ) {
if ( $k != 0 ) {
$rr .= " , " ;
}
$rr .= nick :: id ( $v ) -> full ( 1 );
//TODO Написать добавлялку в чат для определённого чеговека. Плясать от AddChatSystem().[4]
#addchp('<font color=red>Внимание!</font> Ваш бой начался!<br />\'; top.frames[\'main\'].location=\'fbattle.php\'; var z = \' ', '{[]}' . nick::id($v)->short() . '{[]}');
}
$rr .= " </b> " ;
addlog ( $id , " Часы показывали <span class=date> " . date ( " Y.m.d H.i " ) . " </span>, когда " . $rr . " бросили вызов друг другу.<BR> " );
foreach ( $z [ 'team1' ] as $k => $v ) {
if ( $v < _BOTSEPARATOR_ ) {
2019-06-22 15:09:03 +00:00
db :: c () -> query ( 'UPDATE `users` SET `battle` = ?i, `zayavka` = 0 WHERE `id` = ?i' , $id , $v );
2018-11-06 01:28:10 +00:00
} else {
2019-06-22 15:09:03 +00:00
db :: c () -> query ( 'UPDATE `bots` SET `battle` = ?i WHERE `id` = ?i' , $id , $v );
2018-11-06 01:28:10 +00:00
}
}
foreach ( $z [ 'team2' ] as $k => $v ) {
if ( $v < _BOTSEPARATOR_ ) {
2019-06-22 15:09:03 +00:00
db :: c () -> query ( 'UPDATE `users` SET `battle` = ?i, `zayavka` = 0 WHERE `id` = ?i' , $id , $v );
2018-11-06 01:28:10 +00:00
} else {
2019-06-22 15:09:03 +00:00
db :: c () -> query ( 'UPDATE `bots` SET `battle` = ?i WHERE `id` = ?i' , $id , $v );
2018-11-06 01:28:10 +00:00
}
}
if ( $bot ) {
2019-06-22 15:09:03 +00:00
db :: c () -> query ( 'UPDATE `bots` SET `battle` = ?i WHERE `id` = ?i' , $id , $bot [ 'id' ]);
2018-11-06 01:28:10 +00:00
}
}
if ( $user [ 'zayavka' ] == $zay ) {
die ( " <script>location.href='fbattle.php';</script> " );
}
}
2018-01-28 16:40:49 +00:00
}
$zay = new zayavka ;
header ( " Cache-Control: no-cache " );
2019-06-21 18:56:59 +00:00
if ( ! empty ( $_POST [ 'open' ])) {
2018-11-06 01:28:10 +00:00
$f = fopen ( " /tmp/zayavka/ " . $user [ 'id' ] . " .txt " , " w+ " );
fputs ( $f , time ());
fclose ( $f );
2018-01-28 16:40:49 +00:00
}
?>
2019-09-24 09:49:05 +00:00
< HTML lang = " ru " >
2018-11-06 01:28:10 +00:00
< HEAD >
< link rel = stylesheet href = " css/main.css " >
< meta charset = utf - 8 " >
< style >
. m {
background : #99CCCC;
text - align : center ;
}
2018-01-28 16:40:49 +00:00
2018-11-06 01:28:10 +00:00
. s {
background : #BBDDDD;
text - align : center ;
}
</ style >
2019-09-24 09:49:05 +00:00
< title ></ title >
2018-11-06 01:28:10 +00:00
</ HEAD >
< body onload = " top.setHP(<?= $user['hp'] ?>,<?= $user['maxhp'] ?>,<?php if (! $user['battle'] ) {
2019-06-22 15:09:03 +00:00
echo " 100 " ;
} else {
echo " 0 " ;
} ?> );">
2018-11-06 01:28:10 +00:00
< TABLE width = 100 % cellspacing = 1 cellpadding = 1 >
2019-06-22 16:01:21 +00:00
< TR >
< TD colspan = 5 >
< ? php if ( ! empty ( $level )) echo nick ( $user ); ?>
</ TD >
< TD colspan = 4 align = right >
< INPUT TYPE = button value = " Вернуться " onclick = " location.href='main.php?top=<?= mt_rand() ?>'; " >
</ TD >
</ TR >
< TR >
< TD class = m width = 40 >& nbsp ; < B > Бои :</ B ></ TD >
2019-09-24 10:26:08 +00:00
< TD class = s >< A HREF = " ?fiz " > Физические </ A ></ TD >
< TD class = s >< A HREF = " ?group " > Групповые </ A ></ TD >
< TD class = s >< A HREF = " ?haos " > Хаотические </ A ></ TD >
< TD class = s >< A HREF = " ?current " > Текущие </ A >
2019-06-22 16:01:21 +00:00
</ TD >
</ TR >
2018-11-06 01:28:10 +00:00
</ TABLE >
2019-09-24 11:06:55 +00:00
< TABLE class = " allzeroes " >
2018-11-06 01:28:10 +00:00
< TR >
2019-09-24 11:06:55 +00:00
< TD >
2018-11-06 01:28:10 +00:00
< ? php
2019-09-24 10:26:08 +00:00
$get = urldecode ( filter_input ( INPUT_SERVER , 'QUERY_STRING' ));
if ( $user [ 'room' ] != 1 AND $get != 'current' ) die ( err ( 'В этой комнате невозможно подавать заявки!' ));
if ( ! $get ) echo '<p style="text-align: center; font-weight: bold; margin-top: 16px;">Выберите раздел</p>' ;
2018-11-06 01:28:10 +00:00
2019-09-24 10:26:08 +00:00
if ( $get == 'fiz' ) {
2019-09-24 11:06:55 +00:00
echo " <b style='color: #f80000;'> " ;
2019-06-21 19:01:06 +00:00
if ( ! empty ( $_POST [ 'open' ])) {
2018-11-06 01:28:10 +00:00
if ( $_POST [ 'k' ] == 6 ) {
$blood = 1 ;
} else {
$blood = 0 ;
}
2019-09-24 13:27:46 +00:00
echo $zay -> addzayavka ( 0 , $_POST [ 'timeout' ], 1 , 1 , $_POST [ 'k' ], $user [ 'level' ], 1 , $user [ 'level' ], 21 , '' , 2 , $blood );
2019-09-24 10:26:08 +00:00
die ( " <script>document.location='zayavka.php?fiz';</script> " );
2018-11-06 01:28:10 +00:00
}
2019-06-21 19:01:06 +00:00
if ( ! empty ( $_POST [ 'back' ])) {
2018-11-06 01:28:10 +00:00
unlink ( " /tmp/zayavka/ " . $user [ 'id' ] . " .txt " );
echo $zay -> delzayavka ( $user [ 'id' ], $user [ 'zayavka' ], 2 , 0 );
}
2019-06-21 19:01:06 +00:00
if ( ! empty ( $_POST [ 'back2' ])) {
2018-11-06 01:28:10 +00:00
$z = $zay -> getlist ( 2 , null , $user [ 'zayavka' ]);
AddChatSystem ( 'Внимание!' . nick :: id ( $user [ 'id' ]) -> short () . ' отозвал заявку.' );
2019-06-22 15:09:03 +00:00
echo $zay -> delteam ( $user [ 'id' ], $user [ 'zayavka' ], 2 );
2018-11-06 01:28:10 +00:00
}
2019-06-21 19:01:06 +00:00
if ( ! empty ( $_POST [ 'cansel' ])) {
2018-11-06 01:28:10 +00:00
$z = $zay -> getlist ( 2 , null , $user [ 'zayavka' ]);
2019-06-22 15:09:03 +00:00
echo $zay -> delteam ( $z [ $user [ 'zayavka' ]][ 'team2' ][ 0 ], $user [ 'zayavka' ], 2 );
2018-11-06 01:28:10 +00:00
AddChatSystem ( 'Внимание!' . nick :: id ( $user [ 'id' ]) -> short () . ' отказался от поединка.' );
}
2019-06-21 19:01:06 +00:00
if ( ! empty ( $_POST [ 'confirm2' ]) AND empty ( $user [ 'zayavka' ])) {
2018-11-06 01:28:10 +00:00
$z = $zay -> getlist ( 2 , null , $_REQUEST [ 'gocombat' ]);
2019-06-22 15:43:05 +00:00
$toper = db :: c () -> query ( 'SELECT `klan` FROM `users` WHERE `id` = ?i' , $z [ $_REQUEST [ 'gocombat' ]][ 'team1' ][ 0 ]) -> fetch_assoc ();
2018-11-06 01:28:10 +00:00
if ( $user [ 'klan' ] != $toper [ 'klan' ] || $user [ 'klan' ] == '' ) {
AddChatSystem ( 'Внимание!' . nick :: id ( $user [ 'id' ]) -> short () . ' принял заявку, нужно принять вызов или отказать.' );
}
2019-09-24 10:38:05 +00:00
echo $zay -> addteam ( 2 , 2 );
2018-11-06 01:28:10 +00:00
echo " </b></font><BR>Ожидаем подтверждения боя. <input type=submit name=back2 value='Отозвать заявку'> " ;
}
2019-06-21 19:01:06 +00:00
if ( ! empty ( $_POST [ 'gofi' ])) {
2018-11-06 01:28:10 +00:00
$zay -> battlestart ( $user [ 'id' ], $user [ 'zayavka' ], 2 );
}
2019-09-24 11:06:55 +00:00
echo " </b> " ;
2018-11-06 01:28:10 +00:00
echo '<table cellspacing=0 cellpadding=0><tr><td>' ;
2019-09-24 11:55:23 +00:00
if ( $zay -> user_status ( $user [ 'id' ]) == 0 ) { ?>
< FIELDSET >
< LEGEND >< B > Подать заявку на бой </ B ></ LEGEND >
Таймаут
< SELECT NAME = timeout >
2019-09-24 13:27:46 +00:00
< OPTION value = 1 selected > 1 мин .
< OPTION value = 3 > 3 мин .
2019-09-24 11:55:23 +00:00
< OPTION value = 5 > 5 мин .
< OPTION value = 10 > 10 мин .
</ SELECT >
Тип боя
< SELECT NAME = k >
< OPTION value = 1 > с оружием
< OPTION value = 4 > кулачный
< OPTION value = 6 > кровавый
</ SELECT >
< INPUT TYPE = submit name = open value = " Подать заявку " >
</ FIELDSET >
< ? php }
2018-11-06 01:28:10 +00:00
$z = $zay -> getlist ( 2 , null , $user [ 'zayavka' ]);
if ( $zay -> user_status ( $user [ 'id' ]) == 1 ) {
if ( count ( $z [ $user [ 'zayavka' ]][ 'team2' ]) > 0 ) {
echo " <B><font color=red>Внимание! " . nick :: id ( $z [ $user [ 'zayavka' ]][ 'team2' ][ 0 ]) -> full ( 1 ) . " принял заявку на бой, нужно отказать или принять вызов.</font></b> <input type=submit value='Битва!' name=gofi> <input type=submit value='Отказать' name=cansel> " ;
} else {
if ( $z [ $user [ 'zayavka' ]][ 'level' ] == 2 ) {
echo " Заявка на бой подана, ожидаем противника. <input type=submit name=back value='Отозвать заявку'> " ;
$Path = " /tmp/zayavka/ " . $user [ 'id' ] . " .txt " ;
$f = fopen ( $Path , " r " );
$timeFigth = fread ( $f , filesize ( $Path ));
fclose ( $f );
if ( $timeFigth < time () && ( $user [ 'level' ] <= 14 )) {
2019-09-24 10:26:08 +00:00
if ( $get == 'trainstart' && $user [ 'hp' ] > $user [ 'maxhp' ] * 0.33 && ( $user [ 'level' ] <= 7 || $user [ 'admin' ] == 1 )) {
2018-11-06 01:28:10 +00:00
unlink ( " /tmp/zayavka/ " . $user [ 'id' ] . " .txt " );
$zay -> delzayavka ( $user [ 'id' ], $user [ 'zayavka' ], 2 , 0 );
mysql_query ( " INSERT INTO `bots` (`name`, `prototype`, `battle`, `hp`) values (' " . $user [ 'login' ] . " (Клон 1)',' " . $user [ 'id' ] . " ','',' " . $user [ 'maxhp' ] . " '); " );
$bot = mysql_insert_id ();
2019-09-24 11:55:23 +00:00
$teams = [];
2018-11-06 01:28:10 +00:00
2019-09-24 11:55:23 +00:00
$teams [ $user [ 'id' ]][ $bot ] = [ 0 , 0 , time ()];
$teams [ $bot ][ $user [ 'id' ]] = [ 0 , 0 , time ()];
2018-11-06 01:28:10 +00:00
mysql_query ( " INSERT INTO `battle`
2018-01-28 16:40:49 +00:00
( `teams` , `timeout` , `type` , `status` , `t1` , `t2` , `to1` , `to2` , `clone`
)
VALUES
2018-11-06 01:28:10 +00:00
( '" . serialize($teams) . "' , '3' , '1' , '0' , '" . $user[' id '] . "' , '" . $bot . "' , '" . time() . "' , '" . time() . "' , 1
2018-01-28 16:40:49 +00:00
) " );
2018-11-06 01:28:10 +00:00
$id = mysql_insert_id ();
mysql_query ( " UPDATE `bots` SET `battle` = { $id } WHERE `id` = { $bot } LIMIT 1 " );
$rr = " <b> " . nick :: id ( $user [ 'id' ]) -> full ( 1 ) . " </b> и <b> " . nick :: id ( $bot ) -> full ( 1 ) . " </b> " ;
addlog ( $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' ] } ; " );
die ( " <script>location.href='fbattle.php';</script> " );
}
$Path = " /tmp/zayavka/ " . $user [ 'id' ] . " .txt " ;
$f = fopen ( $Path , " r " );
$timeFigth = fread ( $f , filesize ( $Path ));
fclose ( $f );
2019-09-24 11:55:23 +00:00
if ( $user [ 'admin' ] == 1 ) {
2019-09-24 10:26:08 +00:00
echo " или <input type=button onclick= \" location.href='zayavka.php?trainstart'; \" value= \" Начать тренировочный бой \" > " ;
2018-11-06 01:28:10 +00:00
}
}
}
}
}
if ( $zay -> user_status ( $user [ 'id' ]) == 2 ) {
if ( $z [ $user [ 'zayavka' ]][ 'level' ] == 2 )
echo " Ожидаем подтверждения боя. <input type=submit name=back2 value='Отозвать заявку'> " ;
}
echo '</td></tr></table></TD><TD align=right valign=top rowspan=2><INPUT TYPE=submit name=tmp value="Обновить"><BR><FIELDSET style="width:150px;"><LEGEND>Показывать заявки</LEGEND><table cellspacing=0 cellpadding=0 ><tr><td width=1%><input type=radio name=view value="' . $user [ 'level' ] . '" ' . (( $_SESSION [ 'view' ] != null ) ? " checked " : " " ) . '></td><td>моего уровня</td></tr><tr><td><input type=radio name=view value="" ' . (( $_SESSION [ 'view' ] == null ) ? " checked " : " " ) . '></td><td>все</td></tr></table></FIELDSET>' ;
echo '<tr><td><INPUT TYPE=hidden name=level value=fiz><INPUT TYPE=submit value="Принять вызов" NAME=confirm2><BR>' ;
if ( $z = $zay -> getlist ( 2 , $_SESSION [ 'view' ]))
foreach ( $z as $k => $v ) {
echo $zay -> showfiz ( $v );
}
echo '<INPUT TYPE=submit value="Принять вызов" NAME=confirm2></TD></TR></TABLE>' ;
}
2019-09-24 10:26:08 +00:00
if ( $get == 'group' ) {
2019-09-24 11:55:23 +00:00
2019-09-24 12:36:26 +00:00
if ( $zay -> user_status ( $user [ 'id' ]) != 0 ) {
$z = $zay -> getlist ( 4 , null , $user [ 'zayavka' ]);
if ( $z [ $user [ 'zayavka' ]][ 'level' ] == 4 ) {
$battleStartTime = round (( $z [ $user [ 'zayavka' ]][ 'start' ] - time ()) / 60 , 1 );
echo " <div><b>Ожидаем начала группового боя...</b><br>Бой начнется через: $battleStartTime мин.</div> " ;
2018-11-06 01:28:10 +00:00
}
2019-09-24 12:36:26 +00:00
} else { ?>
< TABLE >
< TR >
< TD >
2019-09-24 15:47:17 +00:00
< H3 > Подать заявку на поединок </ H3 >
< select NAME = startime >
< option selected disabled > Начало боя </ option >
< option value = 60 > через 1 минуту </ option >
< option value = 180 > через 3 минуты </ option >
< option value = 300 > через 5 минут </ option >
< option value = 600 > через 10 минут </ option >
</ select >
< select NAME = timeout >
< option selected disabled > Таймаут </ option >
< option value = 1 > 1 мин .</ option >
< option value = 3 selected > 3 мин .</ option >
< option value = 5 > 5 мин .</ option >
< option value = 10 > 10 мин .</ option >
</ select >
2019-09-24 12:36:26 +00:00
< BR >< BR >
2019-09-24 15:47:17 +00:00
Ваша команда < INPUT TYPE = text NAME = nlogin1 size = 3 maxlength = 2 placeholder = " Количество союзников " > бойцов < BR >
2019-09-24 12:36:26 +00:00
Уровни союзников & nbsp ; & nbsp ; < SELECT NAME = levellogin1 >
< option value = 0 > любой
< option value = 1 > только моего и ниже
< option value = 2 > только ниже моего уровня
< option value = 3 > только моего уровня
< option value = 4 > не старше меня более чем на уровень
< option value = 5 > не младше меня более чем на уровень
< option value = 6 > мой уровень +/- 1
< option value = 99 > мой клан
</ SELECT >
< BR >< BR >
Противники & nbsp ; & nbsp ; < INPUT TYPE = text NAME = nlogin2 size = 3 maxlength = 2 > бойцов < BR >
Уровни противников < SELECT NAME = levellogin2 >
< option value = 0 > любой
< option value = 1 > только моего и ниже
< option value = 2 > только ниже моего уровня
< option value = 3 > только моего уровня
< option value = 4 > не старше меня более чем на уровень
< option value = 5 > не младше меня более чем на уровень
< option value = 6 > мой уровень +/- 1
< option value = 99 > только клан
</ SELECT >
< p >< INPUT TYPE = checkbox NAME = k > Кулачный бой </ p >
< INPUT TYPE = checkbox NAME = travma > Бой без правил ( < span class = dsc > проигравшая сторона получает инвалидность </ span > ) < BR >
Комментарий к бою < INPUT TYPE = text NAME = cmt maxlength = 40 size = 40 >
</ TD >
</ TR >
< TR >
< TD align = center >
< INPUT TYPE = submit value = " Начнем месилово! :) " name = open >
</ TD >
</ TR >
</ TABLE >
</ TD >
< TD align = right valign = top >
< INPUT TYPE = submit value = " Вернуться " >
</ TD >
</ TR >
</ TABLE >
< INPUT TYPE = hidden name = level value = group >
< ? php }
2018-01-28 16:40:49 +00:00
2019-09-24 12:36:26 +00:00
if ( ! empty ( $_POST [ 'goconfirm' ]) AND empty ( $user [ 'zayavka' ])) {
echo '<TABLE width=100%><TR><TD>' ;
$z = $zay -> getlist ( 4 , null , $_POST [ 'gocombat' ]);
echo " <B>Ожидаем начала группового боя...</B><BR>Бой начнется через: " . round (( $z [ $_POST [ 'gocombat' ]][ 'start' ] - time ()) / 60 , 1 ) . " мин. " ;
echo ' </ TD >< TD align = right >< INPUT TYPE = submit value = " Вернуться " ></ TD ></ TR ></ TABLE >< H3 > Н а чьей стороне будете сражаться ? </ H3 >
2018-01-28 16:40:49 +00:00
< TABLE align = center cellspacing = 4 cellpadding = 1 >< TR >< TD bgcolor = 99 CCCC >< B > Группа 1 :</ B >< BR >
2018-11-06 01:28:10 +00:00
Максимальное кол - во : ' . $z[$_POST[' gocombat ']][' t1c '] . ' < BR >
Ограничения по уровню : ' . ($z[$_POST[' gocombat ']][' t1min '] == 99 ? ' клан ' : $z[$_POST[' gocombat ']][' t1min '] . " - " . $z[$_POST[' gocombat ']][' t1max ']) . '
2018-01-28 16:40:49 +00:00
</ TD >< TD bgcolor = 99 CCCC >< B > Группа 2 :</ B >< BR >
2018-11-06 01:28:10 +00:00
Максимальное кол - во : ' . $z[$_POST[' gocombat ']][' t2c '] . ' < BR >
Ограничения по уровню : ' . ($z[$_POST[' gocombat ']][' t2min '] == 99 ? ' клан ' : $z[$_POST[' gocombat ']][' t2min '] . " - " . $z[$_POST[' gocombat ']][' t2max ']) . '
2018-01-28 16:40:49 +00:00
</ TD ></ TR >< TR >
< TD align = center > ' ;
2019-09-24 12:36:26 +00:00
foreach ( $z [ $_POST [ 'gocombat' ]][ 'team1' ] as $k => $v ) {
if ( $k != 0 ) $rr .= " <BR> " ;
echo nick :: id ( $v ) -> full ( 1 );
}
echo '</TD><TD align=center>' ;
foreach ( $z [ $_POST [ 'gocombat' ]][ 'team2' ] as $k => $v ) {
if ( $k != 0 ) $rr .= " <BR> " ;
echo nick :: id ( $v ) -> full ( 1 );
}
echo '</TD></TR><TR>' ;
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
if ( $z [ $_POST [ 'gocombat' ]][ 'team1' ][ 0 ] != 1000 && $z [ $_POST [ 'gocombat' ]][ 'team1' ][ 0 ] != 1001 )
echo '<TD align=center><INPUT TYPE=submit name=confirm1 value="Я за этих!"></TD>' ;
else echo '<TD align=center>Силы Х а о с а </TD>' ;
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
echo '<TD align=center><INPUT TYPE=submit name=confirm2 value="Я за этих!"></TD></TR></TABLE><INPUT TYPE=hidden name=gocombat value="' . $_POST [ 'gocombat' ] . '"><INPUT TYPE=hidden name=level value=group>' ;
die ();
}
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
echo " <b style='color: #f80000;'> " ;
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
if ( ! empty ( $_POST [ 'confirm1' ]) AND ! empty ( $_POST [ 'gocombat' ]) AND empty ( $user [ 'zayavka' ])) {
echo $zay -> addteam ( 1 , 4 );
}
if ( ! empty ( $_POST [ 'confirm2' ]) AND $_POST [ 'gocombat' ] AND empty ( $user [ 'zayavka' ])) {
echo $zay -> addteam ( 2 , 4 );
}
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
if ( ! empty ( $_POST [ 'open' ]) AND empty ( $user [ 'zayavka' ])) {
//print_r($_REQUEST);
switch ( $_POST [ 'levellogin1' ]) {
case 0 : //любой
2019-09-24 13:27:46 +00:00
$min1 = 0 ;
2019-09-24 12:36:26 +00:00
$max1 = 21 ;
break ;
case 1 : //только моего и ниже
2019-09-24 13:27:46 +00:00
$min1 = 0 ;
2019-09-24 12:36:26 +00:00
$max1 = $user [ 'level' ];
break ;
case 2 : //только ниже моего уровня
2019-09-24 13:27:46 +00:00
$min1 = 0 ;
2019-09-24 12:36:26 +00:00
$max1 = $user [ 'level' ] - 1 ;
break ;
case 3 : //только моего уровня
$min1 = $user [ 'level' ];
$max1 = $user [ 'level' ];
break ;
case 4 : //не старше меня более чем на уровень
$min1 = $user [ 'level' ];
$max1 = $user [ 'level' ] + 1 ;
break ;
case 5 : //не младше меня более чем на уровень
$min1 = $user [ 'level' ] - 1 ;
$max1 = $user [ 'level' ];
break ;
case 6 : //мой уровень +/- 1
$min1 = ( int ) $user [ 'level' ] - 1 ;
$max1 = ( int ) $user [ 'level' ] + 1 ;
break ;
case 99 : // кланы
$min1 = 99 ;
$max1 = 99 ;
break ;
}
switch ( $_POST [ 'levellogin2' ]) {
case 0 : //любой
2019-09-24 13:27:46 +00:00
$min1 = 0 ;
2019-09-24 12:36:26 +00:00
$max1 = 21 ;
break ;
case 1 : //только моего и ниже
2019-09-24 13:27:46 +00:00
$min1 = 0 ;
2019-09-24 12:36:26 +00:00
$max1 = $user [ 'level' ];
break ;
case 2 : //только ниже моего уровня
2019-09-24 13:27:46 +00:00
$min1 = 0 ;
2019-09-24 12:36:26 +00:00
$max1 = $user [ 'level' ] - 1 ;
break ;
case 3 : //только моего уровня
$min1 = $user [ 'level' ];
$max1 = $user [ 'level' ];
break ;
case 4 : //не старше меня более чем на уровень
$min1 = $user [ 'level' ];
$max1 = $user [ 'level' ] + 1 ;
break ;
case 5 : //не младше меня более чем на уровень
$min1 = $user [ 'level' ] - 1 ;
$max1 = $user [ 'level' ];
break ;
case 6 : //мой уровень +/- 1
$min1 = ( int ) $user [ 'level' ] - 1 ;
$max1 = ( int ) $user [ 'level' ] + 1 ;
break ;
case 99 : // кланы
$min1 = 99 ;
$max1 = 99 ;
break ;
}
2019-09-24 13:27:46 +00:00
if ( $min1 < 0 ) $min1 = 0 ;
if ( $max1 < 0 ) $max1 = 0 ;
2019-09-24 12:36:26 +00:00
if ( $_POST [ 'k' ]) {
$_POST [ 'k' ] = 4 ;
} else {
$_POST [ 'k' ] = 2 ;
}
if ( $_POST [ 'travma' ]) {
$blood = 1 ;
} else {
$blood = 0 ;
}
if ( $_POST [ 'nlogin1' ] == 1 && $_POST [ 'nlogin2' ] == 1 ) {
echo " Н е надо превращать групповой бой в физический поединок" ;
} else {
2019-09-24 13:27:46 +00:00
echo $zay -> addzayavka ( $_POST [ 'startime' ] / 60 , $_POST [ 'timeout' ], $_POST [ 'nlogin1' ], $_POST [ 'nlogin2' ], $_POST [ 'k' ], $min1 , $min2 , $max1 , $max2 , $_POST [ 'cmt' ], 4 , $blood );
2019-09-24 12:36:26 +00:00
}
}
/////////////////////////////////
echo " </b><INPUT TYPE=hidden name=level value=group> " ;
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
echo '</TD><TD align=right valign=top rowspan=2><INPUT TYPE=submit name=tmp value="Обновить"><BR><FIELDSET style="width:150px;"><LEGEND>Показывать заявки</LEGEND><table cellspacing=0 cellpadding=0 ><tr><td width=1%><input type=radio name=view value="' . $user [ 'level' ] . '" ' . (( $_SESSION [ 'view' ] != null ) ? " checked " : " " ) . '></td><td>моего уровня</td></tr><tr><td><input type=radio name=view value="" ' . (( $_SESSION [ 'view' ] == null ) ? " checked " : " " ) . '></td><td>все</td></tr></table></FIELDSET>' ;
echo '<tr><td width=85%>' ;
echo '<BR><INPUT TYPE=submit value="Принять участие" NAME=goconfirm><BR>' ;
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
if ( $z = $zay -> getlist ( 4 , $_SESSION [ 'view' ]))
foreach ( $z as $k => $v ) {
if ((( $z [ $k ][ 'start' ] - time ()) < 0 ) || (( $z [ $k ][ 't1c' ] == count ( $z [ $k ][ 'team1' ])) && ( $z [ $k ][ 't2c' ] == count ( $z [ $k ][ 'team2' ])))) {
$zay -> battlestart ( " CHAOS " , $k , 4 );
}
echo $zay -> showgroup ( $v );
}
echo '<INPUT TYPE=submit value="Принять участие" NAME=goconfirm></td></tr></table>' ;
}
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
if ( $get == 'haos' ) {
if ( $user [ 'level' ] < 2 ) {
die ( " <BR><BR><BR><CENTER><B>Хаотичные бои доступны с 2 уровня.</b></CENTER> " );
}
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
if ( ! empty ( $_POST [ 'open' ]) AND empty ( $user [ 'zayavka' ])) {
switch ( $_POST [ 'levellogin1' ]) {
case 0 :
$min1 = 1 ;
$max1 = 21 ;
break ;
case 3 :
$min1 = $user [ 'level' ];
$max1 = $user [ 'level' ];
break ;
case 6 :
$min1 = ( int ) $user [ 'level' ] - 1 ;
$max1 = ( int ) $user [ 'level' ] + 1 ;
break ;
}
//$_POST['k'] = 3;
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
$blood = 0 ;
if ( $_POST [ 'travma' ]) {
$blood = 1 ;
}
2019-09-24 13:27:46 +00:00
echo $zay -> addzayavka ( $_POST [ 'startime2' ] / 60 , $_POST [ 'timeout' ], 99 , 99 , $_POST [ 'k' ], $min1 , $min1 , $max1 , $max1 , $_POST [ 'cmt' ], 5 , $blood );
2019-09-24 12:36:26 +00:00
}
if ( ! empty ( $_POST [ 'confirm2' ])) {
2020-06-23 09:24:37 +00:00
echo " <span class='success'> " . $zay -> addteam ( 1 , 5 ) . " </span> " ;
2019-09-24 12:36:26 +00:00
}
echo '<table cellspacing=0 cellpadding=0><tr><td>' ;
if ( $zay -> user_status ( $user [ 'id' ]) == 0 ) {
echo 'Хаотичный бой - разновидность группового, где группы формируются автоматически. Бой не начнется, если собралось меньше 4-х человек. <DIV id="dv2" style="display:"><A href="#" onclick="dv1.style.display=\'\'; dv2.style.display=\'none\'; return false">Подать заявку на хаотичный бой</A></DIV><DIV id="dv1" style="display: none"><FIELDSET><LEGEND><B>Подать заявку на хаотичный бой</B> </LEGEND>Начало боя через <SELECT NAME=startime2><option value=180>3 минуты</option><option value=300 selected>5 минут</option><option value=600>10 минут</option><option value=900>15 минут</option><option value=1800>30 минут</option><option value=2700>45 минут</option><option value=3600>1 час</option></SELECT> Таймаут <SELECT NAME=timeout><OPTION value=3 SELECTED>3 мин.<OPTION value=5>5 мин.<OPTION value=10>10 мин.</SELECT><BR>Уровни бойцов <SELECT NAME=levellogin1><option value=0>любой<option value=3>только моего уровня<option value=6 selected>мой уровень +/- 1</SELECT><BR><BR>Тип боя <SELECT NAME=k><OPTION value=3>с оружием<OPTION value=5>кулачный</SELECT><BR><INPUT TYPE=checkbox NAME=travma> Бой без правил (<font class=dsc>проигравшая сторона получает инвалидность</font>)<BR><INPUT TYPE=submit name=open value="Подать заявку"> <BR>Комментарий к бою <INPUT TYPE=text NAME=cmt maxlength=40 size=40></FIELDSET><BR></DIV>' ;
}
if ( $zay -> user_status ( $user [ 'id' ]) != 0 ) {
$z = $zay -> getlist ( 5 , null , $user [ 'zayavka' ]);
if ( $z [ $user [ 'zayavka' ]][ 'level' ] == 5 )
echo " <B>Ожидаем начала группового боя...</B><BR>Бой начнется через: " . round (( $z [ $user [ 'zayavka' ]][ 'start' ] - time ()) / 60 , 1 ) . " мин. " ;
}
echo '</td></tr></table></TD><TD align=right valign=top rowspan=2><INPUT TYPE=submit name=tmp value="Обновить"><BR><FIELDSET style="width:150px;"><LEGEND>Показывать заявки</LEGEND><table cellspacing=0 cellpadding=0 ><tr><td width=1%><input type=radio name=view value="' . $user [ 'level' ] . '" ' . (( $_SESSION [ 'view' ] != null ) ? " checked " : " " ) . '></td><td>моего уровня</td></tr><tr><td><input type=radio name=view value="" ' . (( $_SESSION [ 'view' ] == null ) ? " checked " : " " ) . '></td><td>все</td></tr></table></FIELDSET>' ;
echo '<tr><td width=85%><INPUT TYPE=hidden name=level value=haos><INPUT TYPE=submit value="Принять участие" NAME=confirm2><BR>' ;
if ( $z = $zay -> getlist ( 5 , $_SESSION [ 'view' ]))
foreach ( $z as $k => $v ) {
if (( $z [ $k ][ 'start' ] - time ()) < 0 ) {
$zay -> battlestart ( " CHAOS " , $k , 5 );
2018-11-06 01:28:10 +00:00
}
2019-09-24 12:36:26 +00:00
echo $zay -> showhaos ( $v );
}
echo '<INPUT TYPE=submit value="Принять участие" NAME=confirm2></TD></TR></TABLE>' ;
//print_r($_POST);
}
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
if ( $get == 'current' ) {
$t1 = floor ( time () - 900 );
$data = db :: c () -> query ( 'SELECT * FROM `battle` WHERE `win` = 3 AND `to1` > ?i AND `to2` > ?i ORDER BY `id` ASC' , $t1 , $t1 );
if ( empty ( $data -> getNumRows ())) echo 'Надо же! Ни одного поединка!' ;
else while ( $row = $data -> fetch_assoc ()) {
echo " <span class=date> { $row [ 'date' ] } </span> " ;
$z = explode ( " ; " , $row [ 't1' ]);
foreach ( $z as $k => $v ) {
if ( $k > 0 ) {
echo " , " ;
2018-11-06 01:28:10 +00:00
}
2019-09-24 12:36:26 +00:00
nick :: id ( $v ) -> full ();
}
echo " против " ;
$z = explode ( " ; " , $row [ 't2' ]);
foreach ( $z as $k => $v ) {
if ( $k > 0 ) {
echo " , " ;
}
nick :: id ( $v ) -> full ();
}
echo " <img src='i/fighttype { $row [ 'type' ] } .gif'> <a href='logs.php?log= { $row [ 'id' ] } ' target=_blank>»»</a><br /> " ;
}
}
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
db :: c () -> query ( 'UNLOCK TABLES' );
2018-11-06 01:28:10 +00:00
2019-09-24 12:36:26 +00:00
?>
</ form >
2018-01-28 16:40:49 +00:00
</ body >
</ html >