2022-12-19 22:22:19 +02:00
< ? php
2022-12-30 21:03:37 +02:00
use Core\Config ;
use Core\Db ;
2022-12-19 22:22:19 +02:00
class FightRequest
{
2023-01-10 18:29:32 +02:00
private array $z1n = [ 4 => 'групповые' , 5 => 'хаотичные' ];
private array $z2n = [ 4 => 'группового' , 5 => 'хаотичного' ];
private bool $backTest = false ; // Для проверок хаотических поединков.
2022-12-30 21:03:37 +02:00
private static bool $bcktst ;
private User $u ;
private ? int $zv_see = null ;
public string $test_s = '' ;
public string $error = '' ;
2022-12-19 22:22:19 +02:00
/**
2023-01-10 18:29:32 +02:00
* Заявки на бой.
2022-12-19 22:22:19 +02:00
*/
public function __construct ()
{
$this -> u = User :: start ();
unset ( $_POST [ 'kingfight' ], $_POST [ 'nobot' ], $_POST [ 'mut_clever' ]);
$this -> u -> info [ 'no_zv_key' ] = true ;
if ( ! empty ( $_GET [ 'del_z_time' ])) {
$zay = Db :: getValue (
'select count(*) from zayvki where id = ? and creator = ? and start = 0 and cancel = 0 and btl_id = 0 and priz = 0' ,
[ $this -> u -> info [ 'zv' ], $this -> u -> info [ 'id' ]]
);
if ( $zay ) {
$colls = Db :: getValue ( 'select count(*) from stats where zv = ?' , [ $this -> u -> info [ 'zv' ]]);
if ( $colls === 1 ) {
Db :: sql ( 'update stats set zv = 0 where id = ?' , [ $this -> u -> info [ 'id' ]]);
Db :: sql ( 'delete from zayvki where id = ?' , [ $this -> u -> info [ 'zv' ]]);
}
}
}
2023-01-10 18:29:32 +02:00
$this -> test (); //проверяем заявки
2022-12-19 22:22:19 +02:00
}
private function add_effn ( $uid , $id )
{
$eff = Db :: getRow ( 'select mname, mdata, oneType, id2 from eff_main where id2 = ?' , [ $id ]);
if ( ! $eff [ 'id2' ]) {
return ;
}
2022-12-30 21:03:37 +02:00
Db :: sql (
2022-12-19 22:22:19 +02:00
'insert into eff_users (overType, id_eff, uid, name, timeUse, data) values (?,?,?,?,unix_timestamp(),?)' ,
[ $eff [ 'oneType' ], $eff [ 'id2' ], $uid , $eff [ 'mname' ], $eff [ 'mdata' ]]
);
// Db::sql('
// insert into eff_users (overType, id_eff, uid, name, timeUse, data)
// select oneType, id2, ?, mname, unix_timestamp(), mdata from eff_main
// where id2 = ?',
// [$uid, $id]);
}
private function testTravm ()
{
$tr = Db :: getValue (
'select v1 from eff_users where id_eff = 4 and `delete` = 0 and uid = ? order by v1 desc limit 1' ,
[ $this -> u -> info [ 'id' ]]
);
return $tr ? $tr - 1 : 0 ;
}
private function testTurnir ()
{
$chat = new Chat ();
2023-01-10 18:29:32 +02:00
//Проверяем турниры в этом городе
2022-12-19 22:22:19 +02:00
$trn = Db :: getRows ( 'select * from turnirs where status != -1' );
$stmt = Db :: prepare ( 'update turnirs set chat = ? where id = ?' );
foreach ( $trn as $pl ) {
2023-01-10 18:29:32 +02:00
//Начало турнира
2022-12-19 22:22:19 +02:00
if ( $pl [ 'status' ] == 0 && $pl [ 'time' ] > time ()) {
if ( floor (( $pl [ 'time' ] - time ()) / 60 ) <= 2 && $pl [ 'chat' ] > 0 ) {
$stmt -> execute ([ 0 , $pl [ 'id' ]]);
} elseif ( floor (( $pl [ 'time' ] - time ()) / 60 ) <= 5 && $pl [ 'chat' ] > 1 ) {
2023-01-10 18:29:32 +02:00
//Осталось 5 мин.
$chat -> sendsys ( '<b style="color: red;">Турниры:</b> До начала турнира осталось 5 минут.' );
2022-12-19 22:22:19 +02:00
$stmt -> execute ([ 1 , $pl [ 'id' ]]);
} elseif ( floor (( $pl [ 'time' ] - time ()) / 60 ) <= 10 && $pl [ 'chat' ] > 2 ) {
2023-01-10 18:29:32 +02:00
//Осталось 10 мин.
$chat -> sendsys ( '<b style="color: red;">Турниры:</b> До начала турнира осталось 10 минут.' );
2022-12-19 22:22:19 +02:00
$stmt -> execute ([ 2 , $pl [ 'id' ]]);
} elseif ( floor (( $pl [ 'time' ] - time ()) / 60 ) <= 15 && $pl [ 'chat' ] > 3 ) {
2023-01-10 18:29:32 +02:00
//Осталось 15 мин.
$chat -> sendsys ( '<b style="color: red;">Турниры:</b> До начала турнира осталось 15 минут.' );
2022-12-19 22:22:19 +02:00
$stmt -> execute ([ 3 , $pl [ 'id' ]]);
}
}
if ( $pl [ 'status' ] != 0 || $pl [ 'time' ] >= time ()) {
continue ;
}
if ( $pl [ 'users_in' ] > 1 ) {
2023-01-10 18:29:32 +02:00
//Начало турнира
2022-12-30 21:03:37 +02:00
Db :: sql ( 'update turnirs set time = unix_timestamp() + ?, status = 1 where id = ?' , [ $pl [ 'time3' ], $pl [ 'id' ]]);
2022-12-19 22:22:19 +02:00
$usp = mysql_query (
'SELECT * FROM `users` WHERE `inTurnirnew` = "' . $pl [ 'id' ] . '" LIMIT ' . $pl [ 'users_in' ]
);
while ( $ur = mysql_fetch_array ( $usp )) {
mysql_query (
2023-01-06 16:57:25 +02:00
'INSERT INTO `users` (`login`,`room`,`name`,`sex`,`level`,`inTurnirnew`,`bithday`) VALUES ("' . $ur [ 'login' ] . '","318","' . $ur [ 'name' ] . '","' . $ur [ 'sex' ] . '","' . $t [ 'level' ] . '","' . $pl [ 'id' ] . '","01.01.2001")'
2022-12-19 22:22:19 +02:00
);
$uri = mysql_insert_id ();
mysql_query (
'INSERT INTO `users_turnirs` (`uid`,`bot`,`turnir`) VALUES ("' . $ur [ 'id' ] . '","' . $uri . '","' . $pl [ 'id' ] . '")'
);
$zid = 0 ;
$x1 = 0 ;
$y1 = 0 ;
mysql_query (
'INSERT INTO `stats` (`upLevel`,`dnow`,`id`,`stats`,`exp`,`ability`,`skills`,`x`,`y`) VALUES ("98","' . $zid . '","' . $uri . '","s1=3|s2=3|s3=3|s4=3|s5=0|s6=0|rinv=40|m9=5|m6=10","0","0","0",' . $x1 . ',' . $y1 . ')'
);
mysql_query (
'UPDATE `users` SET `inUser` = "' . $uri . '" WHERE `id` = "' . $ur [ 'id' ] . '" LIMIT 1'
);
2023-01-10 18:29:32 +02:00
//Добавляем эффекты скорость регена и запрет передвижения
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
//Отмена турнира
2022-12-19 22:22:19 +02:00
mysql_query (
'UPDATE `turnirs` SET `time` = "' . ( time (
) + $pl [ 'time2' ]) . '",`users_in` = "0" WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1'
);
mysql_query ( 'UPDATE `users` SET `inTurnirnew` = "0" WHERE `inTurnirnew` = "' . $pl [ 'id' ] . '"' );
}
}
}
private function testGroupAndChaotic ()
{
2023-01-10 18:29:32 +02:00
//Проверяем хаотичные и групповые бои в этом городе
2022-12-19 22:22:19 +02:00
$sp = mysql_query (
'SELECT * FROM `zayvki` AS `z` WHERE `z`.`btl_id` = "0" AND `z`.`cancel` = "0" AND `z`.`start` = "0" AND (`z`.`razdel` = 4 OR `z`.`razdel` = 5) ORDER BY `z`.`id` DESC LIMIT 22'
);
while ( $pl = mysql_fetch_array ( $sp )) {
$uz = mysql_query (
'SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $pl [ 'id' ] . '"'
);
$tm1 = [];
$tm2 = [];
$i = [];
$toChat = '' ;
$toChat2 = '' ;
$toWhere = '' ;
while ( $t = mysql_fetch_array ( $uz )) {
if ( ! isset ( $ { 'tm' . $t [ 'team' ]})) {
$ { 'tm' . $t [ 'team' ]} = [];
}
if ( ! isset ( $i [ $t [ 'team' ]])) {
$i [ $t [ 'team' ]] = 0 ;
}
$ { 'tm' . $t [ 'team' ]}[ $i [ $t [ 'team' ]]] = $t ;
$toChat .= '' . $t [ 'login' ] . ',' ;
$toWhere .= 'OR `id` = "' . $t [ 'id' ] . '" ' ;
if ( $pl [ 'razdel' ] == 5 && $pl [ 'time_start' ] - 180 < time () - $pl [ 'time' ] && $pl [ 'send' ] == 0 ) {
$toChat2 .= '' . $this -> u -> microLogin2 ( $t ) . ', ' ;
}
$i [ $t [ 'team' ]] ++ ;
}
if ( $pl [ 'razdel' ] == 5 ) {
$col_p = mysql_fetch_array (
mysql_query ( 'SELECT COUNT(*) FROM `stats` WHERE `zv` = "' . $pl [ 'id' ] . '"' )
);
$cols = $col_p [ 0 ];
if ( $cols >= $pl [ 'maxplayers' ]) {
$pl [ 'time_start' ] = time () - $pl [ 'time' ] - 1 ;
}
}
if ( $pl [ 'time_start' ] < time (
) - $pl [ 'time' ] || ( $pl [ 'razdel' ] == 4 && $i [ 1 ] >= $pl [ 'tm1max' ] && $i [ 2 ] >= $pl [ 'tm2max' ])) {
$toChat = rtrim ( $toChat , ',' );
$toWhere = ltrim ( $toWhere , 'OR ' );
if ( $pl [ 'razdel' ] == 4 ) {
2023-01-10 18:29:32 +02:00
//группы
2022-12-19 22:22:19 +02:00
$this -> testGroup ( $i , $pl , $toChat , $toWhere );
} elseif ( $pl [ 'razdel' ] == 5 ) {
2023-01-10 18:29:32 +02:00
//fixme ёбаный костыль!
2022-12-19 22:22:19 +02:00
$this -> testCronChaotic ( $pl , $toChat , $toWhere );
return ;
2023-01-10 18:29:32 +02:00
//хаоты
2022-12-19 22:22:19 +02:00
//
$i = mysql_fetch_array (
mysql_query ( 'SELECT COUNT(*) FROM `stats` WHERE `zv` = "' . $pl [ 'id' ] . '" LIMIT 1' )
);
if ( $i [ 0 ] < 4 && ( $i [ 0 ] < 2 || $pl [ 'fastfight' ] == 0 )) {
2023-01-10 18:29:32 +02:00
//группа не набрана
$this -> cancelGroup ( $pl , $toChat , ' Беда!' );
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
//Начинаем поединок
2022-12-19 22:22:19 +02:00
$this -> startBattle ( $pl [ 'id' ], $toChat . '|-|' . $toWhere );
}
}
}
}
}
2023-01-10 18:29:32 +02:00
/** Проверяем заявки
2022-12-19 22:22:19 +02:00
* @return void
*/
private function test ()
{
if ( $this -> u -> info [ 'zv' ] > 0 ) {
$z = Db :: getRow ( 'select * from zayvki where id = ?' , [ $this -> u -> info [ 'zv' ]]);
if ( $z [ 'id' ] && ( $z [ 'cancel' ] || $z [ 'btl_id' ] || $z [ 'time' ] < time () - 3600 ) || ! $z [ 'id' ]) {
$this -> u -> info [ 'zv' ] = 0 ;
Db :: sql ( 'update stats set zv = 0 where id = ?' , [ $this -> u -> info [ 'id' ]]);
}
}
$this -> testTurnir ();
$this -> testGroupAndChaotic ();
}
private function testCronTurnir ()
{
2023-01-10 18:29:32 +02:00
//Проверяем турниры в этом городе
2022-12-19 22:22:19 +02:00
$sp = mysql_query ( 'SELECT * FROM `turnirs` WHERE `status` != "-1"' );
while ( $pl = mysql_fetch_array ( $sp )) {
2023-01-10 18:29:32 +02:00
//Начало турнира
2022-12-19 22:22:19 +02:00
if ( $pl [ 'status' ] != 0 || $pl [ 'time' ] >= time ()) {
continue ;
}
if ( $pl [ 'users_in' ] > 1 ) {
2023-01-10 18:29:32 +02:00
//Начало турнира
2022-12-19 22:22:19 +02:00
mysql_query (
'UPDATE `turnirs` SET `time` = "' . ( time (
) + $pl [ 'time3' ]) . '",`status` = "1" WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1'
);
$usp = mysql_query (
'SELECT * FROM `users` WHERE `inTurnirnew` = "' . $pl [ 'id' ] . '" LIMIT ' . $pl [ 'users_in' ]
);
while ( $ur = mysql_fetch_array ( $usp )) {
mysql_query (
2023-01-06 16:57:25 +02:00
'INSERT INTO `users` (`login`,`room`,`name`,`sex`,`level`,`inTurnirnew`,`bithday`) VALUES ("' . $ur [ 'login' ] . '","318","' . $ur [ 'name' ] . '","' . $ur [ 'sex' ] . '","' . $t [ 'level' ] . '","' . $pl [ 'id' ] . '","01.01.2001")'
2022-12-19 22:22:19 +02:00
);
$uri = mysql_insert_id ();
mysql_query (
'INSERT INTO `users_turnirs` (`uid`,`bot`,`turnir`) VALUES ("' . $ur [ 'id' ] . '","' . $uri . '","' . $pl [ 'id' ] . '")'
);
$zid = 0 ;
$x1 = 0 ;
$y1 = 0 ;
mysql_query (
'INSERT INTO `stats` (`upLevel`,`dnow`,`id`,`stats`,`exp`,`ability`,`skills`,`x`,`y`) VALUES ("98","' . $zid . '","' . $uri . '","s1=3|s2=3|s3=3|s4=3|s5=0|s6=0|rinv=40|m9=5|m6=10","0","0","0",' . $x1 . ',' . $y1 . ')'
);
mysql_query (
'UPDATE `users` SET `inUser` = "' . $uri . '" WHERE `id` = "' . $ur [ 'id' ] . '" LIMIT 1'
);
2023-01-10 18:29:32 +02:00
//Добавляем эффекты скорость регена и запрет передвижения
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
//Отмена турнира
2022-12-19 22:22:19 +02:00
mysql_query (
'UPDATE `turnirs` SET `time` = "' . ( time (
) + $pl [ 'time2' ]) . '",`users_in` = "0" WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1'
);
mysql_query ( 'UPDATE `users` SET `inTurnirnew` = "0" WHERE `inTurnirnew` = "' . $pl [ 'id' ] . '"' );
}
}
}
private function testGroup ( $groups , $zayavka , $toChat , $toWhere )
{
if ( $zayavka [ 'razdel' ] != 4 ) {
return ;
}
if (
empty ( $groups [ 1 ]) ||
empty ( $groups [ 2 ]) ||
(
empty ( $groups [ 3 ]) &&
$zayavka [ 'teams' ] == 3
)
) {
2023-01-10 18:29:32 +02:00
//группа не набрана
2022-12-19 22:22:19 +02:00
$this -> cancelGroup ( $zayavka , $toChat );
} else {
2023-01-10 18:29:32 +02:00
//Начинаем поединок
2022-12-19 22:22:19 +02:00
$this -> startBattle ( $zayavka [ 'id' ], $toChat . '|-|' . $toWhere );
}
}
private function testCronChaotic ( $zayavka , $toChat , $toWhere )
{
$chat = new Chat ();
$levelToExp = [
0 => 0 ,
1 => 110 ,
2 => 420 ,
3 => 1300 ,
4 => 2500 ,
5 => 5000 ,
6 => 12500 ,
7 => 30000 ,
8 => 300000 ,
9 => 3000000 ,
10 => 10000000 ,
11 => 52000000 ,
12 => 63000000 ,
13 => 182000000 ,
14 => 212000000 ,
15 => 352000000 ,
16 => 504000000 ,
17 => 1187000000 ,
18 => 2455000000 ,
19 => 4387000000 ,
20 => 6355000000 ,
21 => 15500000000 ,
22 => 755500000000 ,
];
$botUsers = [];
define ( 'FAST_FIGHT_REQUIRED_FIGHTERS_COUNT' , 2 );
define ( 'FIGHT_REQUIRED_FIGHTERS_COUNT' , 6 );
$requiredFightersToStartBattle = FIGHT_REQUIRED_FIGHTERS_COUNT ;
if ( $zayavka [ 'fastfight' ] > 0 ) {
$requiredFightersToStartBattle = FAST_FIGHT_REQUIRED_FIGHTERS_COUNT ;
}
$pendingFightersCount = Db :: getValue ( 'select count(*) from stats where zv = ?' , [ $zayavka [ 'id' ]]);
if ( $pendingFightersCount < $requiredFightersToStartBattle ) {
2023-01-10 18:29:32 +02:00
//группа не набрана
//Добавляем недостающих игроков
if ( ! $zayavka [ 'nobot' ]) { // Если нет запрета на ботов.
2022-12-19 22:22:19 +02:00
$getRealPlayersQuery = 'select * from stats left join users on stats.id = users.id where exp >= ? and exp < ? and bot = 0 order by btl_cof desc limit 50' ;
$getBotsQuery = 'select * from stats left join users on stats.id = users.id where bot = 2 and exp >= ? and exp < ?' ;
$botUsers = Db :: getRows ( $getBotsQuery , [ $levelToExp [ $zayavka [ 'min_lvl_1' ]], $levelToExp [ $zayavka [ 'max_lvl_1' ] + 1 ]]);
}
if ( empty ( $botUsers )) {
2023-01-10 18:29:32 +02:00
$text = ' Не удалось начать поединок по причине: Группа не набрана. (' . $zayavka [ 'id' ] . ': 0 ' . $levelToExp [ $zayavka [ 'min_lvl_1' ]] . '-' . $levelToExp [ $zayavka [ 'max_lvl_1' ] + 1 ] . ')' ;
2022-12-19 22:22:19 +02:00
$chat -> sendsys ( $text , 'Merlin' );
2023-01-10 18:29:32 +02:00
$this -> cancelGroup ( $zayavka , $toChat , ' Боты проспали.' );
2022-12-19 22:22:19 +02:00
} else {
$pendingBotsCount = 0 ;
for ( $i = 0 ; $i < $requiredFightersToStartBattle - $pendingFightersCount ; $i ++ ) {
shuffle ( $botUsers );
$botInfo = array_shift ( $botUsers );
$botData = [
'id' => $botInfo [ 'id' ],
'login' => $botInfo [ 'login' ],
'level' => $botInfo [ 'level' ],
'city' => $botInfo [ 'city' ],
'cityreg' => $botInfo [ 'city' ],
'name' => $botInfo [ 'login' ],
'sex' => $botInfo [ 'sex' ],
'hobby' => '' ,
'time_reg' => time (),
'obraz' => $botInfo [ 'obraz' ],
'stats' => $botInfo [ 'stats' ],
'upLevel' => $botInfo [ 'upLevel' ],
'priems' => $botInfo [ 'priems' ],
'loclon' => true ,
];
$bot = $this -> u -> addNewbot ( 1 , null , $botData , null , true );
if ( $bot ) {
Db :: sql (
'update stats set btl_cof = ?, zv = ?, hpNow = 1000000, mpNow = 1000000 where id = ?' ,
[ $botInfo [ 'btl_cof' ], $zayavka [ 'id' ], $bot ]
);
Db :: sql ( 'update users set room = 303, battle = 0 where id = ?' , [ $bot ]);
$pendingBotsCount ++ ;
}
}
unset ( $botUsers , $botInfo , $botData , $bot );
if ( $pendingBotsCount + $pendingFightersCount >= $requiredFightersToStartBattle ) {
$this -> backTest = true ;
self :: $bcktst = true ;
}
}
} else {
2023-01-10 18:29:32 +02:00
//Начинаем поединок
2022-12-19 22:22:19 +02:00
$this -> startBattle ( $zayavka [ 'id' ], $toChat . '|-|' . $toWhere );
}
}
2023-01-10 18:29:32 +02:00
/** Проверяем хаотичные и групповые бои в этом городе
2022-12-19 22:22:19 +02:00
* @return void
* @throws Exception
*/
private function testCronGroupAndChaotic ()
{
define ( 'GROUP_BATLE' , 4 );
define ( 'CHAOTIC_BATTLE' , 5 );
$zv1k = Db :: getRows (
'select * from zayvki where btl_id = 0 and cancel = 0 and start = 0 and razdel in (4, 5) order by id desc limit 1000'
);
foreach ( $zv1k as $zv ) {
$tm1 = [];
$tm2 = [];
$i = [];
$toChat = $toWhere = '' ;
$users = Db :: getRows ( 'select * from stats left join users on stats.id = users.id where zv = ?' , [ $zv [ 'id' ]]);
foreach ( $users as $user ) {
! empty ( $ { 'tm' . $user [ 'team' ]}) ? : $ { 'tm' . $user [ 'team' ]} = [];
! empty ( $i [ $user [ 'team' ]]) ? : $i [ $user [ 'team' ]] = 0 ;
$ { 'tm' . $user [ 'team' ]}[ $i [ $user [ 'team' ]]] = $user ;
$toChat .= $user [ 'login' ] . ',' ;
$toWhere .= 'OR id = ' . $user [ 'id' ] . ' ' ;
$i [ $user [ 'team' ]] ++ ;
}
if ( $zv [ 'time_start' ] > time (
) - $zv [ 'time' ] && ( $zv [ 'razdel' ] != 4 || $i [ 1 ] < $zv [ 'tm1max' ] || $i [ 2 ] < $zv [ 'tm2max' ])) {
continue ;
}
$toChat = rtrim ( $toChat , ',' );
$toWhere = ltrim ( $toWhere , 'OR ' );
trigger_error ( 'test' );
if ( $zv [ 'razdel' ] == GROUP_BATLE ) {
$this -> testGroup ( $i , $zv , $toChat , $toWhere );
} else {
$this -> testCronChaotic ( $zv , $toChat , $toWhere );
}
}
}
public function testCronZv ()
{
$this -> testCronTurnir ();
$this -> testCronGroupAndChaotic ();
if ( $this -> backTest || self :: $bcktst ) {
self :: $bcktst = false ;
$this -> testCronZv ();
}
}
public function userInfo ()
{
$r = '' ;
$dp = '' ;
$ph = $this -> u -> stats [ 'hpNow' ] / $this -> u -> stats [ 'hpAll' ] * 100 ;
if ( $this -> u -> stats [ 'mpAll' ] > 0 ) {
$pm = $this -> u -> stats [ 'mpNow' ] / $this -> u -> stats [ 'mpAll' ] * 100 ;
} else {
$dp = 'margin-top:13px;' ;
}
$r .= '<table border="0" cellspacing="0" cellpadding="0" height="20">
<tr><td valign="middle"> <font>' . $this -> u -> microLogin ( $this -> u -> info [ 'id' ], 1 ) . '</font> </td>
<td valign="middle" width="120">
2023-01-10 18:29:32 +02:00
<div style="position:relative;' . $dp . '"><div id="vhp' . ( $this -> u -> info [ 'id' ]) . '" title="Уровень жизни" align="left" class="seehp" style="position:absolute; top:-10px; width:120px; height:10px; z-index:12;"> ' . floor (
2022-12-19 22:22:19 +02:00
$this -> u -> stats [ 'hpNow' ]
) . '/' . $this -> u -> stats [ 'hpAll' ] . '</div>
2023-01-10 18:29:32 +02:00
<div title="Уровень жизни" class="hpborder" style="position:absolute; top:-10px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
2022-12-19 22:22:19 +02:00
<div class="hp_3 senohp" style="height:9px; width:' . floor (
120 / 100 * $ph
) . 'px; position:absolute; top:-10px; z-index:11;" id="lhp' . ( $this -> u -> info [ 'id' ]) . '"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
2023-01-10 18:29:32 +02:00
<div title="Уровень жизни" class="hp_none" style="position:absolute; top:-10px; width:120px; height:10px; z-index:10;"><img src="https://img.new-combats.com/1x1.gif" height="10"></div>
2022-12-19 22:22:19 +02:00
' ;
if ( $this -> u -> stats [ 'mpAll' ] > 0 ) {
2023-01-10 18:29:32 +02:00
$r .= '<div id="vmp' . ( $this -> u -> info [ 'id' ]) . '" title="Уровень маны" align="left" class="seemp" style="position:absolute; top:0px; width:120px; height:10px; z-index:12;"> ' . floor (
2022-12-19 22:22:19 +02:00
$this -> u -> stats [ 'mpNow' ]
) . '/' . $this -> u -> stats [ 'mpAll' ] . '</div>
2023-01-10 18:29:32 +02:00
<div title="Уровень маны" class="hpborder" style="position:absolute; top:0px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
2022-12-19 22:22:19 +02:00
<div class="hp_mp senohp" style="height:9px; position:absolute; top:0px; width:' . floor (
120 / 100 * $pm
) . 'px; z-index:11;" id="lmp' . ( $this -> u -> info [ 'id' ]) . '"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
2023-01-10 18:29:32 +02:00
<div title="Уровень маны" class="hp_none" style="position:absolute; top:0px; width:120px; height:10px; z-index:10;"></div>' ;
2022-12-19 22:22:19 +02:00
}
$r .= '</div></td></tr></table>' ;
unset ( $stt , $ph , $pm );
return $r ;
}
public function cancelGroup ( $zv , $uids , $debug = null )
{
if ( $zv [ 'priz' ] > 0 ) {
$sp = mysql_query ( 'SELECT `id` FROM `stats` WHERE `zv` = "' . $zv [ 'id' ] . '"' );
}
$upd = mysql_query ( 'UPDATE `stats` SET `zv` = "0" WHERE `zv` = "' . $zv [ 'id' ] . '"' );
if ( ! $upd ) {
return ;
}
$upd = mysql_query ( 'UPDATE `zayvki` SET `cancel` = "' . time () . '" WHERE `id` = "' . $zv [ 'id' ] . '"' );
if ( ! $upd || $uids == '' ) {
return ;
}
if ( $zv [ 'priz' ] > 0 ) {
while ( $pl = mysql_fetch_array ( $sp )) {
2023-01-10 18:29:32 +02:00
//Выдаем по 1 жетону
if ( $zv [ 'type' ] == 33 ) //ТУТ група не набранна удаляем персонажа и выдаем жетон
2022-12-19 22:22:19 +02:00
{
$pld = mysql_fetch_array (
mysql_query ( 'SELECT `id` FROM `users` WHERE `inUser` = "' . $pl [ 'id' ] . '"' )
);
if ( isset ( $pld [ 'id' ])) {
mysql_query ( 'UPDATE `users` SET `inUser` = "0" WHERE `id` = "' . $pld [ 'id' ] . '" LIMIT 1' );
$this -> u -> addItem ( 4754 , $pld [ 'id' ], '' );
$uids = $pld [ 'id' ];
mysql_query ( 'DELETE FROM `users` WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1' );
mysql_query ( 'DELETE FROM `stats` WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1' );
mysql_query ( 'DELETE FROM `items_users` WHERE `uid` = "' . $pl [ 'id' ] . '" LIMIT 100' );
mysql_query ( 'DELETE FROM `eff_users` WHERE `uid` = "' . $pl [ 'id' ] . '" LIMIT 100' );
}
} else {
$this -> u -> addItem ( 4754 , $pl [ 'id' ], '' );
}
}
2023-01-10 18:29:32 +02:00
$text = ' Не удалось начать поединок по причине: Группа не набрана. Вы получаете Призовой Жетон (х1)' ;
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$text = ' Не удалось начать поединок по причине: Группа не набрана!' ;
2022-12-19 22:22:19 +02:00
}
$chat = new Chat ();
$chat -> sendsys ( $text . $debug , $uids );
}
public function add ()
{
if ( ! isset ( $_GET [ 'r' ]) || $this -> u -> info [ 'inTurnirnew' ] != 0 ) {
return ;
}
$r = round ( intval ( $_GET [ 'r' ]));
if ( ! in_array ( $r , [ 1 , 4 , 5 , 8 , 10 ])) {
return ;
}
$az = 1 ;
if ( $r == 1 && $this -> u -> info [ 'level' ] > 0 ) {
$az = 0 ;
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы уже выросли из ползунков ;)' ;
2022-12-19 22:22:19 +02:00
}
if (( $r == 4 || $r == 5 ) && $this -> u -> info [ 'level' ] < 2 ) {
$az = 0 ;
2023-01-10 18:29:32 +02:00
$this -> error = 'В ' . $this -> z1n [ $r ] . ' бои только со второго уровня.' ;
2022-12-19 22:22:19 +02:00
}
if ( $this -> testTravm () == 1 && $_POST [ 'k' ] != 1 ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы травмированы. С такими увечьями доступны кулачные бои.' ;
2022-12-19 22:22:19 +02:00
$az = 0 ;
} elseif ( $this -> testTravm () == 2 ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы травмированы. С такими увечьями невозможно сражаться.' ;
2022-12-19 22:22:19 +02:00
$az = 0 ;
} elseif ( $this -> u -> info [ 'hpNow' ] < $this -> u -> stats [ 'hpAll' ] / 100 * 30 ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы еще слишком ослаблены чтобы начать новый бой' ;
2022-12-19 22:22:19 +02:00
$az = 0 ;
}
if ( $this -> u -> info [ 'zv' ] > 0 ) {
$az = 0 ;
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы уже находите в заявке.' ;
2022-12-19 22:22:19 +02:00
}
if ( $az != 1 ) {
return ;
}
$nz = [];
$nz [ 'travmaChance' ] = 0 ;
$nz [ 'time_start' ] = 0 ;
$nz [ 'min_lvl_1' ] = 0 ;
$nz [ 'min_lvl_2' ] = 0 ;
$nz [ 'max_lvl_1' ] = 21 ;
$nz [ 'max_lvl_2' ] = 21 ;
$nz [ 'tm1max' ] = 0 ;
$nz [ 'tm2max' ] = 0 ;
$nz [ 'invise' ] = 0 ;
$nz [ 'money' ] = 0 ;
$nz [ 'comment' ] = '' ;
$nz [ 'tm1' ] = 0 ;
$nz [ 'tm2' ] = 0 ;
$nz [ 'otmorozok' ] = 0 ;
$nz [ 'fastfight' ] = 0 ;
$nz [ 'noinc' ] = 0 ;
$nz [ 'city' ] = $this -> u -> info [ 'city' ];
$nz [ 'creator' ] = $this -> u -> info [ 'id' ];
$nz [ 'type' ] = 0 ;
if ( $_POST [ 'k' ] == 1 ) {
$nz [ 'type' ] = 1 ;
}
if ( $_POST [ 'k' ] == 2 ) {
$nz [ 'type' ] = 6 ;
$nz [ 'travmaChance' ] = 100 ;
}
$_POST [ 'timeout' ] = round ( intval ( mysql_real_escape_string ( $_POST [ 'timeout' ])));
if ( $_POST [ 'timeout' ] == 1 || $_POST [ 'timeout' ] == 2 || $_POST [ 'timeout' ] == 3 || $_POST [ 'timeout' ] == 4 || $_POST [ 'timeout' ] == 5 ) {
$nz [ 'timeout' ] = $_POST [ 'timeout' ] * 60 ;
} else {
$nz [ 'timeout' ] = 3 * 60 ;
}
$nz [ 'razdel' ] = $r ;
$gad = 1 ;
if ( $r == 5 && $this -> u -> info [ 'level' ] > 1 ) {
2023-01-10 18:29:32 +02:00
//хаотичный бой
2022-12-19 22:22:19 +02:00
if ( $_POST [ 'startime2' ]) {
$nz [ 'time_start' ] = ( int ) $_POST [ 'startime2' ];
$nz [ 'comment' ] = substr ( $_POST [ 'cmt' ], 0 , 40 );
$nz [ 'comment' ] = str_replace ( '"' , '"' , $nz [ 'comment' ]);
2023-01-10 19:26:14 +02:00
$nz [ 'comment' ] = htmlspecialchars ( $nz [ 'comment' ], null );
2022-12-19 22:22:19 +02:00
if ( ! in_array ( $nz [ 'time_start' ], [ 60 , 180 , 300 ])) {
$nz [ 'time_start' ] = 600 ;
}
if ( isset ( $_POST [ 'mut_hidden' ])) {
$nz [ 'invise' ] = 1 ;
}
if ( isset ( $_POST [ 'noinc' ])) {
$nz [ 'noinc' ] = 1 ;
}
if ( isset ( $_POST [ 'fastfight' ])) {
$nz [ 'fastfight' ] = 1 ;
}
if ( isset ( $_POST [ 'otmorozok' ])) {
$nz [ 'otmorozok' ] = 1 ;
}
if ( isset ( $_POST [ 'nobot' ])) {
$nz [ 'nobot' ] = 1 ;
}
if ( isset ( $_POST [ 'kingfight' ])) {
$nz [ 'kingfight' ] = 1 ;
}
if ( isset ( $_POST [ 'arand' ])) {
$nz [ 'arand' ] = 1 ;
}
if ( isset ( $_POST [ 'travma' ])) {
$nz [ 'travmaChance' ] = 100 ;
}
if ( isset ( $_POST [ 'noatack' ])) {
$nz [ 'noatack' ] = 1 ;
}
if ( isset ( $_POST [ 'noeff' ])) {
$nz [ 'noeff' ] = 1 ;
}
if ( isset ( $_POST [ 'smert' ])) {
$nz [ 'smert' ] = 1 ;
}
if ( isset ( $_POST [ 'noart' ])) {
$nz [ 'noart' ] = 1 ;
}
if ( $nz [ 'kingfight' ] == 1 && $nz [ 'fastfight' ] == 1 ) {
$nz [ 'kingfight' ] = 0 ;
}
$nz [ 'timeout' ] = ( int ) $_POST [ 'timeout' ];
if ( $nz [ 'timeout' ] != 1 && $nz [ 'timeout' ] != 2 && $nz [ 'timeout' ] != 3 && $nz [ 'timeout' ] != 4 && $nz [ 'timeout' ] != 5 ) {
$nz [ 'timeout' ] = 3 ;
}
2023-01-10 18:29:32 +02:00
//Генерируем уровни союзника
2022-12-19 22:22:19 +02:00
$lvl = ( int ) $_POST [ 'levellogin1' ];
if ( $lvl == 0 ) {
$nz [ 'min_lvl_1' ] = 2 ;
$nz [ 'max_lvl_1' ] = 21 ;
} elseif ( $lvl == 3 ) {
$nz [ 'min_lvl_1' ] = $this -> u -> info [ 'level' ];
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ];
$nz [ 'min_lvl_2' ] = $nz [ 'min_lvl_1' ];
$nz [ 'max_lvl_2' ] = $nz [ 'min_lvl_2' ];
} elseif ( $lvl == 6 ) {
$nz [ 'min_lvl_1' ] = $this -> u -> info [ 'level' ] - 1 ;
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ] + 1 ;
} else {
$nz [ 'min_lvl_1' ] = 2 ;
$nz [ 'max_lvl_1' ] = 2 ;
}
if (( int ) $_POST [ 'k' ] == 1 ) {
2023-01-10 18:29:32 +02:00
//кулачный бой
2022-12-19 22:22:19 +02:00
$nz [ 'type' ] = 1 ;
}
if (( int ) $_POST [ 'k' ] == 2 ) {
2023-01-10 18:29:32 +02:00
//кровавый бой
2022-12-19 22:22:19 +02:00
$nz [ 'type' ] = 6 ;
$nz [ 'travmaChance' ] = 1 ;
}
$nz [ 'timeout' ] = $nz [ 'timeout' ] * 60 ;
$nz [ 'tm1' ] = $this -> u -> stats [ 'reting' ];
if ( ! $this -> u -> info [ 'no_zv_key' ] && ( $_POST [ 'code21' ] == 0 || $_POST [ 'code21' ] != $_SESSION [ 'code2' ] || $_SESSION [ 'code2' ] == 0 || ! isset ( $_SESSION [ 'code2' ]))) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Неправильный код подтверждения' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
}
} else {
$gad = 0 ;
2023-01-10 18:29:32 +02:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 22:22:19 +02:00
}
} elseif ( $r == 4 && $this -> u -> info [ 'level' ] > 1 ) {
2023-01-10 18:29:32 +02:00
//групповой бой
//здесь заносим и проверяем данные на гурпповой бой
2022-12-19 22:22:19 +02:00
if ( $_POST [ 'startime' ]) {
$nz [ 'time_start' ] = ( int ) $_POST [ 'startime' ];
$nz [ 'comment' ] = substr ( $_POST [ 'cmt' ], 0 , 40 );
$nz [ 'comment' ] = str_replace ( '"' , '"' , $nz [ 'comment' ]);
if ( $nz [ 'time_start' ] != 300 && $nz [ 'time_start' ] != 600 && $nz [ 'time_start' ] != 900 && $nz [ 'time_start' ] != 1200 && $nz [ 'time_start' ] != 1800 ) {
$nz [ 'time_start' ] = 600 ;
}
$nz [ 'timeout' ] = ( int ) $_POST [ 'timeout' ];
if ( $nz [ 'timeout' ] != 1 && $nz [ 'timeout' ] != 2 && $nz [ 'timeout' ] != 3 && $nz [ 'timeout' ] != 4 && $nz [ 'timeout' ] != 5 ) {
$nz [ 'timeout' ] = 3 ;
}
$nz [ 'timeout' ] = $nz [ 'timeout' ] * 60 ;
$nz [ 'tm1max' ] = ( int ) $_POST [ 'nlogin1' ];
if ( $nz [ 'tm1max' ] < 1 || $nz [ 'tm1max' ] > 99 ) {
2023-01-10 18:29:32 +02:00
$this -> error .= 'Неверное кол-во союзников<br>' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
}
$nz [ 'tm2max' ] = ( int ) $_POST [ 'nlogin2' ];
if ( $nz [ 'tm2max' ] < 1 || $nz [ 'tm2max' ] > 99 ) {
2023-01-10 18:29:32 +02:00
$this -> error .= 'Неверное кол-во противников<br>' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
}
if ( $this -> testTravm () == 1 && $_POST [ 'k' ] != 1 ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы травмированы. С такими увечьями доступны кулачные бои.' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
} elseif ( $this -> testTravm () == 2 ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы травмированы. С такими увечьями невозможно сражаться.' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
} elseif ( $nz [ 'tm1max' ] + $nz [ 'tm2max' ] < 3 ) {
2023-01-10 18:29:32 +02:00
$this -> error .= 'Заявки 1 на 1 подаются в разделе физические или договорные бои<br>' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
}
2023-01-10 18:29:32 +02:00
//Генерируем уровни союзника
2022-12-19 22:22:19 +02:00
$lvl = ( int ) $_POST [ 'levellogin1' ];
if ( $lvl == 0 ) {
$nz [ 'min_lvl_1' ] = 2 ;
$nz [ 'max_lvl_1' ] = 21 ;
} elseif ( $lvl == 1 ) {
$nz [ 'min_lvl_1' ] = 2 ;
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ];
} elseif ( $lvl == 2 ) {
$nz [ 'min_lvl_1' ] = 2 ;
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ] - 1 ;
} elseif ( $lvl == 3 ) {
$nz [ 'min_lvl_1' ] = $this -> u -> info [ 'level' ];
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ];
} elseif ( $lvl == 4 ) {
$nz [ 'min_lvl_1' ] = $this -> u -> info [ 'level' ];
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ] + 1 ;
} elseif ( $lvl == 5 ) {
$nz [ 'min_lvl_1' ] = $this -> u -> info [ 'level' ] - 1 ;
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ];
} elseif ( $lvl == 6 ) {
$nz [ 'min_lvl_1' ] = $this -> u -> info [ 'level' ] - 1 ;
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ] + 1 ;
$nz [ 'min_lvl_1' ] = 99 ;
} else {
2023-01-10 18:29:32 +02:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
}
2023-01-10 18:29:32 +02:00
//Генерируем уровни противника
2022-12-19 22:22:19 +02:00
$lvl = ( int ) $_POST [ 'levellogin2' ];
if ( $lvl == 0 ) {
$nz [ 'min_lvl_2' ] = 2 ;
$nz [ 'max_lvl_2' ] = 21 ;
} elseif ( $lvl == 1 ) {
$nz [ 'min_lvl_2' ] = 2 ;
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ];
} elseif ( $lvl == 2 ) {
$nz [ 'min_lvl_2' ] = 2 ;
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ] - 1 ;
} elseif ( $lvl == 3 ) {
$nz [ 'min_lvl_2' ] = $this -> u -> info [ 'level' ];
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ];
} elseif ( $lvl == 4 ) {
$nz [ 'min_lvl_2' ] = $this -> u -> info [ 'level' ];
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ] + 1 ;
} elseif ( $lvl == 5 ) {
$nz [ 'min_lvl_2' ] = $this -> u -> info [ 'level' ] - 1 ;
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ];
} elseif ( $lvl == 6 ) {
$nz [ 'min_lvl_2' ] = $this -> u -> info [ 'level' ] - 1 ;
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ] + 1 ;
$nz [ 'min_lvl_2' ] = 99 ;
} else {
2023-01-10 18:29:32 +02:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 22:22:19 +02:00
$gad = 0 ;
}
if ( $nz [ 'min_lvl_1' ] < 2 ) {
$nz [ 'min_lvl_1' ] = 2 ;
}
if ( $nz [ 'max_lvl_1' ] > 21 ) {
$nz [ 'max_lvl_1' ] = 21 ;
}
if ( $nz [ 'min_lvl_2' ] < 2 ) {
$nz [ 'min_lvl_2' ] = 2 ;
}
if ( $nz [ 'max_lvl_2' ] > 21 ) {
$nz [ 'max_lvl_2' ] = 21 ;
}
if (( int ) $_POST [ 'k' ] == 1 ) {
2023-01-10 18:29:32 +02:00
//кулачный бой
2022-12-19 22:22:19 +02:00
$nz [ 'type' ] = 1 ;
}
if (( int ) $_POST [ 'k' ] == 2 ) {
2023-01-10 18:29:32 +02:00
//кровавый бой
2022-12-19 22:22:19 +02:00
$nz [ 'type' ] = 6 ;
$nz [ 'travmaChance' ] = 100 ;
}
} else {
$gad = 0 ;
2023-01-10 18:29:32 +02:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 22:22:19 +02:00
}
}
$bt2 = ( int ) $_POST [ 'bots2' ];
if ( $bt2 != 0 && $r == 4 && $this -> u -> info [ 'level' ] > 1 ) {
$bt2 = 1 ;
$nz [ 'min_lvl_2' ] = $this -> u -> info [ 'level' ];
$nz [ 'max_lvl_2' ] = $this -> u -> info [ 'level' ];
$nz [ 'min_lvl_1' ] = $this -> u -> info [ 'level' ];
$nz [ 'max_lvl_1' ] = $this -> u -> info [ 'level' ];
} else {
$bt2 = 0 ;
}
if ( $gad == 1 ) {
if ( ! isset ( $nz [ 'withUser' ])) {
$nz [ 'withUser' ] = '' ;
}
$nz [ 'time_create_zv' ] = time ();
if ( $nz [ 'razdel' ] == 4 || $nz [ 'razdel' ] == 5 ) {
2023-01-10 18:29:32 +02:00
//Округляем время для кроны
2022-12-19 22:22:19 +02:00
$nz [ 'time_create_zv' ] = strtotime (
date ( 'd.m.Y H:i' , $nz [ 'time_create_zv' ]) . ':00' , $nz [ 'time_create_zv' ]
);
} elseif ( $nz [ 'razdel' ] == 3 ) {
$nz [ 'noinc' ] = 1 ;
}
$nz [ 'teams' ] = 2 ;
$nz [ 'align1' ] = 0 ;
$nz [ 'align2' ] = 0 ;
$nz [ 'align3' ] = 0 ;
if ( isset ( $_POST [ '3align' ])) {
$nz [ 'teams' ] = 3 ;
$nz [ 'min_lvl_1' ] = 2 ;
$nz [ 'min_lvl_2' ] = 2 ;
$nz [ 'max_lvl_1' ] = 21 ;
$nz [ 'max_lvl_2' ] = 21 ;
//
if ( floor ( $this -> u -> info [ 'align' ]) == 3 ) {
$nz [ 'align1' ] = 3 ;
$nz [ 'align2' ] = 1 ;
$nz [ 'align3' ] = 7 ;
} elseif ( floor ( $this -> u -> info [ 'align' ]) == 7 ) {
$nz [ 'align1' ] = 7 ;
$nz [ 'align2' ] = 1 ;
$nz [ 'align3' ] = 3 ;
} else {
$nz [ 'align1' ] = 1 ;
$nz [ 'align2' ] = 3 ;
$nz [ 'align3' ] = 7 ;
}
//
}
//
if ( $nz [ 'razdel' ] == 2 && isset ( $_POST [ 'commentfiz' ])) {
2023-01-10 19:26:14 +02:00
$nz [ 'comment' ] = htmlspecialchars ( $_POST [ 'commentfiz' ], null );
2022-12-19 22:22:19 +02:00
}
//
if ( $nz [ 'razdel' ] == 5 ) {
$nz [ 'maxplayers' ] = [
6 => 6 ,
8 => 8 ,
10 => 10 ,
12 => 12 ,
14 => 14 ,
16 => 16 ,
18 => 18 ,
20 => 20 ,
40 => 40 ,
];
if ( isset ( $nz [ 'players' ][ $_POST [ 'players' ]])) {
$nz [ 'maxplayers' ];
} else {
$nz [ 'maxplayers' ] = $nz [ 'maxplayers' ][ $_POST [ 'players' ]];
}
}
$dbvalues = [
$nz [ 'maxplayers' ],
$nz [ 'otmorozok' ],
$nz [ 'align1' ],
$nz [ 'align2' ],
$nz [ 'align3' ],
$nz [ 'teams' ],
$nz [ 'smert' ],
$nz [ 'noart' ],
$nz [ 'noeff' ],
$nz [ 'noatack' ],
$nz [ 'arand' ],
$nz [ 'kingfight' ],
$nz [ 'nobot' ],
$nz [ 'fastfight' ],
$nz [ 'noinc' ],
$bt2 ,
$nz [ 'time_create_zv' ],
$nz [ 'city' ],
$nz [ 'creator' ],
$nz [ 'type' ],
$nz [ 'time_start' ],
$nz [ 'timeout' ],
$nz [ 'min_lvl_1' ],
$nz [ 'min_lvl_2' ],
$nz [ 'max_lvl_1' ],
$nz [ 'max_lvl_2' ],
$nz [ 'tm1max' ],
$nz [ 'tm2max' ],
$nz [ 'travmaChance' ],
$nz [ 'invise' ],
$nz [ 'razdel' ],
$nz [ 'comment' ],
$nz [ 'money' ],
$nz [ 'withUser' ],
$nz [ 'tm1' ],
$nz [ 'tm2' ],
];
$dbquery = 'insert into zayvki (`maxplayers`,`otmorozok`,`align1`,`align2`,`align3`,`teams`,`smert`,`noart`,`noeff`,`noatack`,`arand`,`kingfight`,`nobot`,`fastfight`,`noinc`,`bot2`,`time`,`city`,`creator`,`type`,`time_start`,`timeout`,`min_lvl_1`,`min_lvl_2`,`max_lvl_1`,`max_lvl_2`,`tm1max`,`tm2max`,`travmaChance`,`invise`,`razdel`,`comment`,`money`,`withUser`,`tm1`,`tm2`) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)' ;
$ins = Db :: run ( $dbquery , $dbvalues );
$zid = Db :: lastInsertId ();
if ( $ins ) {
Db :: sql ( 'update stats set zv = ?, team = 1 where id = ?' , [ $zid , $this -> u -> info [ 'id' ]]);
$this -> u -> info [ 'zv' ] = $zid ;
2023-01-10 18:29:32 +02:00
$this -> error = 'Заявка на бой подана' ;
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$this -> error = 'Ошибка: Заявка не подана!' ;
2022-12-19 22:22:19 +02:00
}
}
}
2023-01-10 18:29:32 +02:00
//тренеровочный бой
2022-12-19 22:22:19 +02:00
public function addBot ()
{
global $c ;
if (( $this -> u -> info [ 'level' ] <= $c [ 'bot_level' ] || $this -> u -> info [ 'admin' ] > 0 ) && $this -> u -> info [ 'exp' ] != 12499 ) {
$bot = $this -> u -> addNewbot ( $id [ 'id' ], null , $this -> u -> info [ 'id' ], null , true );
} else {
$bot = false ;
}
if ( ! $bot ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Бои с монстрами, нежитью, клонами и прочими вурдалаками проводятся только для персонажей младше 8 уровня...<br>Со стороны посматривает Общий Враг, ему явно что-то не понравилось...<br>' ;
2022-12-19 22:22:19 +02:00
} elseif ( $this -> u -> info [ 'hpNow' ] < $this -> u -> stats [ 'hpAll' ] / 100 * 30 && ( $r == 1 )) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы еще слишком ослаблены чтобы начать новый бой' ;
2022-12-19 22:22:19 +02:00
$az = 0 ;
} elseif ( $this -> u -> info [ 'align' ] == 2 ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Хаосники не могут сражаться здесь' ;
2022-12-19 22:22:19 +02:00
$az = 0 ;
} elseif ( ! $bot ) {
echo '<br><font color=red>Cannot start battle (no prototype "ND0Clone")</font><br>' ;
} else {
2023-01-10 18:29:32 +02:00
//создаем поединок с ботом
2022-12-19 22:22:19 +02:00
$expB = 0 ;
$btl = [ 'smert' => 0 , 'noart' => 0 , 'noeff' => 0 , 'otmorozok' => 0 , 'noatack' => 0 , 'priz' => 0 , 'arand' => 0 , 'kingfight' => 0 , 'nobot' => 0 , 'fastfight' => 0 , 'players' => '' , 'timeout' => 60 , 'type' => 0 , 'invis' => 0 , 'noinc' => 0 , 'travmChance' => 0 , 'typeBattle' => 0 , 'addExp' => $expB , 'money' => 0 , 'money3' => 0 ];
$ins = mysql_query (
'INSERT INTO `battle` (`otmorozok`,`smert`,`noart`,`noeff`,`noatack`,`arand`,`kingfight`,`nobot`,`fastfight`,`clone`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`,`priz`) VALUES (
"' . $btl [ 'otmorozok' ] . '",
"' . $btl [ 'smert' ] . '",
"' . $btl [ 'noart' ] . '",
"' . $btl [ 'noeff' ] . '",
"' . $btl [ 'noatack' ] . '",
"' . $btl [ 'arand' ] . '",
"' . $btl [ 'kingfight' ] . '",
"' . $btl [ 'nobot' ] . '",
"' . $btl [ 'fastfight' ] . '",
"1",
"' . $this -> u -> info [ 'city' ] . '",
"' . time () . '",
"' . $btl [ 'players' ] . '",
"' . $btl [ 'timeout' ] . '",
"' . $btl [ 'type' ] . '",
"' . $btl [ 'invis' ] . '",
"' . $btl [ 'noinc' ] . '",
"' . $btl [ 'travmChance' ] . '",
"' . $btl [ 'typeBattle' ] . '",
"' . $btl [ 'addExp' ] . '",
"' . $btl [ 'money' ] . '",
"' . $btl [ 'priz' ] . '")'
);
if ( $ins ) {
$btl_id = mysql_insert_id ();
2023-01-10 18:29:32 +02:00
//обновляем данные о поединке
2022-12-19 22:22:19 +02:00
$this -> u -> info [ 'enNow' ] -= $trEn ;
$upd2 = mysql_query (
'UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $this -> u -> info [ 'id' ] . '" OR `id` = "' . $bot . '" LIMIT 2'
);
mysql_query (
'UPDATE `stats` SET `team`="1",`enNow` = "' . $this -> u -> info [ 'enNow' ] . '" WHERE `id` = "' . $this -> u -> info [ 'id' ] . '" LIMIT 1'
);
mysql_query (
'UPDATE `stats` SET `hpNow` = "' . $this -> u -> stats [ 'hpAll' ] . '",`team`="2" WHERE `id` = "' . $bot . '" LIMIT 1'
);
2023-01-10 18:29:32 +02:00
//обновляем заявку, что бой начался
2022-12-19 22:22:19 +02:00
$this -> u -> info [ 'battle' ] = $btl_id ;
2023-01-10 18:29:32 +02:00
//Отправляем сообщение в чат всем бойцам
2022-12-19 22:22:19 +02:00
mysql_query (
" INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES (' " . $this -> u -> info [ 'city' ] . " ',' " . $this -> u -> info [ 'room' ] . " ',' " . $this -> u -> info [ 'login' ] . " ',' " . time (
) . " ','11','0','117') "
);
die ( '<script>location="main.php?battle_id=' . $btl_id . '";</script>' );
} else {
$this -> error = 'Cannot start battle (no prototype "ABD0Clone")' ;
}
}
}
2023-01-10 18:29:32 +02:00
//тренеровочный бой
2022-12-19 22:22:19 +02:00
public function addBotClone ( $uid )
{
if ( $this -> u -> info [ 'online' ] > 0 ) {
$bot = $this -> u -> addNewbot ( $id [ 'id' ], null , $uid , null , false );
} else {
$bot = false ;
}
if ( ! $bot ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Не получилось начать поединок' ;
2022-12-19 22:22:19 +02:00
} elseif ( $this -> u -> info [ 'hpNow' ] < $this -> u -> stats [ 'hpAll' ] / 100 * 30 && ( $r >= 1 || $r <= 3 )) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы еще слишком ослаблены чтобы начать новый бой' ;
2022-12-19 22:22:19 +02:00
$az = 0 ;
} elseif ( $this -> u -> info [ 'align' ] == 2 ) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Хаосники не могут сражаться здесь' ;
2022-12-19 22:22:19 +02:00
$az = 0 ;
} elseif ( ! $bot ) {
echo '<br><font color=red>Cannot start battle (no prototype "ND0Clone")</font><br>' ;
} else {
2023-01-10 18:29:32 +02:00
//создаем поединок с ботом
2022-12-19 22:22:19 +02:00
$expB = 0 ;
$btl = [ 'priz' => 0 , 'smert' => 0 , 'noart' => 0 , 'noeff' => 0 , 'noatack' => 0 , 'arand' => 0 , 'kingfight' => 0 , 'nobot' => 0 , 'fastfight' => 0 , 'players' => '' , 'timeout' => 60 , 'type' => 0 , 'invis' => 0 , 'noinc' => 0 , 'travmChance' => 0 , 'typeBattle' => 0 , 'addExp' => $expB , 'money' => 0 , 'money3' => 0 ];
$ins = mysql_query (
'INSERT INTO `battle` (`otmorozok`,`priz`,`smert`,`noart`,`noeff`,`noatack`,`arand`,`kingfight`,`nobot`,`fastfight`,`clone`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`) VALUES (
"' . $btl [ 'otmorozok' ] . '",
"' . $btl [ 'priz' ] . '",
"' . $btl [ 'smert' ] . '",
"' . $btl [ 'noart' ] . '",
"' . $btl [ 'noeff' ] . '",
"' . $btl [ 'noatack' ] . '",
"' . $btl [ 'arand' ] . '",
"' . $btl [ 'kingfight' ] . '",
"' . $btl [ 'nobot' ] . '",
"' . $btl [ 'fastfight' ] . '",
"1",
"' . $this -> u -> info [ 'city' ] . '",
"' . time () . '",
"' . $btl [ 'players' ] . '",
"' . $btl [ 'timeout' ] . '",
"564",
"' . $btl [ 'invis' ] . '",
"' . $btl [ 'noinc' ] . '",
"' . $btl [ 'travmChance' ] . '",
"' . $btl [ 'typeBattle' ] . '",
"' . $btl [ 'addExp' ] . '",
"' . $btl [ 'money' ] . '")'
);
if ( $ins ) {
$btl_id = mysql_insert_id ();
2023-01-10 18:29:32 +02:00
//обновляем данные о поединке
2022-12-19 22:22:19 +02:00
$this -> u -> info [ 'enNow' ] -= $trEn ;
$upd2 = mysql_query (
'UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $this -> u -> info [ 'id' ] . '" OR `id` = "' . $bot . '" LIMIT 2'
);
mysql_query (
'UPDATE `stats` SET `team`="1",`enNow` = "' . $this -> u -> info [ 'enNow' ] . '" WHERE `id` = "' . $this -> u -> info [ 'id' ] . '" LIMIT 1'
);
mysql_query ( 'UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot . '" LIMIT 1' );
2023-01-10 18:29:32 +02:00
//Если бой кулачный, то снимаем вещи
2022-12-19 22:22:19 +02:00
if ( $btl [ 'type' ] == 1 ) {
mysql_query (
'UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $this -> u -> info [ 'id' ] . '" AND `inOdet`!=0'
);
mysql_query ( 'UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $bot . '" AND `inOdet`!=0' );
}
2023-01-10 18:29:32 +02:00
//обновляем заявку, что бой начался
2022-12-19 22:22:19 +02:00
$this -> u -> info [ 'battle' ] = $btl_id ;
2023-01-10 18:29:32 +02:00
//Отправляем сообщение в чат всем бойцам
2022-12-19 22:22:19 +02:00
mysql_query (
" INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES (' " . $this -> u -> info [ 'city' ] . " ',' " . $this -> u -> info [ 'room' ] . " ',' " . $this -> u -> info [ 'login' ] . " ',' " . time (
) . " ','11','0','117') "
);
die ( '<script>location="main.php?battle_id=' . $btl_id . '";</script>' );
} else {
$this -> error = 'Cannot start battle (no prototype "ABD0Clone")' ;
}
}
}
public function startBattle ( $id , $vars = null )
{
$z = mysql_fetch_array (
mysql_query (
'SELECT * FROM `zayvki` WHERE `id`="' . $id . '" AND `start` = "0" AND `cancel` = "0" AND (`time` > "' . ( time (
) - 60 * 60 * 2 ) . '" OR `razdel` > 3) LIMIT 1'
)
);
if ( $z [ 'type' ] == 33 ) {
sleep ( 5 );
}
mysql_query ( 'START TRANSACTION' );
mysql_query (
" LOCK TABLES
`aaa_monsters` WRITE,
`actions` WRITE,
`bank` WRITE,
`battle` WRITE,
`battle_act` WRITE,
`battle_actions` WRITE,
`battle_cache` WRITE,
`battle_end` WRITE,
`battle_last` WRITE,
`battle_logs` WRITE,
`battle_logs_save` WRITE,
`battle_stat` WRITE,
`battle_users` WRITE,
`bs_actions` WRITE,
`bs_items` WRITE,
`bs_items_use` WRITE,
`bs_logs` WRITE,
`bs_map` WRITE,
`bs_statistic` WRITE,
`bs_trap` WRITE,
`bs_turnirs` WRITE,
`bs_zv` WRITE,
`clan` WRITE,
`clan_wars` WRITE,
`dungeon_actions` WRITE,
`dungeon_bots` WRITE,
`dungeon_items` WRITE,
`dungeon_map` WRITE,
`dungeon_now` WRITE,
`dungeon_zv` WRITE,
`eff_main` WRITE,
`eff_users` WRITE,
`items_img` WRITE,
`items_local` WRITE,
`items_main` WRITE,
`items_main_data` WRITE,
`items_users` WRITE,
`izlom` WRITE,
`izlom_rating` WRITE,
`laba_act` WRITE,
`laba_itm` WRITE,
`laba_map` WRITE,
`laba_now` WRITE,
`laba_obj` WRITE,
`levels` WRITE,
`levels_animal` WRITE,
`online` WRITE,
`priems` WRITE,
`quests` WRITE,
`reimage` WRITE,
`reg` WRITE,
`stats` WRITE,
`test_bot` WRITE,
`turnirs` WRITE,
`users` WRITE,
`users_animal` WRITE,
`user_ico` WRITE,
`users_twink` WRITE,
`zayvki` WRITE; "
);
$z = mysql_fetch_array (
mysql_query (
'SELECT * FROM `zayvki` WHERE `id`="' . $id . '" AND `start` = "0" AND `cancel` = "0" AND (`time` > "' . ( time (
) - 60 * 60 * 2 ) . '" OR `razdel` > 3) LIMIT 1'
)
);
if ( isset ( $z [ 'id' ])) {
$vars = explode ( '|-|' , $vars );
if ( $z [ 'razdel' ] >= 4 && $z [ 'razdel' ] <= 5 ) {
2023-01-10 18:29:32 +02:00
//начало группового или хаотичного боя
2022-12-19 22:22:19 +02:00
$btl_id = 0 ;
//$txtz = '';
if ( $z [ 'razdel' ] == 5 ) {
$sp = mysql_query (
'SELECT `s`.`id`,`s`.`team`,`s`.`upLevel`,`s`.`btl_cof`,`s`.`exp` FROM `stats` AS `s` LEFT JOIN `users` AS `u` ON `u`.`id` = `s`.`id` WHERE `s`.`zv` = "' . $z [ 'id' ] . '" ORDER BY `s`.`btl_cof` DESC LIMIT 200'
);
$tsr = rand ( 0 , 100 );
if ( $tsr >= 70 && $z [ 'type' ] != 33 ) {
$ii = - 1 ;
while ( $pl = mysql_fetch_array ( $sp )) {
$ii ++ ;
$pld [ $ii ] = $pl ;
}
$yy = $ii ;
2023-01-10 18:29:32 +02:00
$jj = $ii ; //счетчик c конца
2022-12-19 22:22:19 +02:00
$ii = 0 ;
$teamA = 0 ;
$teamAbtlconf = 0 ;
$teamB = 0 ;
$teamBbtlconf = 0 ;
while ( $yy > - 1 ) {
if ( $ii == 0 || $teamAbtlconf <= $teamBbtlconf ) {
if ( isset ( $pld [ $ii ])) {
$teamnew = 1 ;
$teamAbtlconf = $teamAbtlconf + $pld [ $ii ][ 'btl_cof' ];
$teamA ++ ;
$idi = $ii ;
mysql_query (
'UPDATE `stats` SET `team` = "' . $teamnew . '" WHERE `id` = "' . $pld [ $idi ][ 'id' ] . '" LIMIT 1'
);
}
$ii ++ ;
} elseif (( $teamB - $teamA ) <= 0 ) {
if ( isset ( $pld [ $ii ])) {
$teamnew = 2 ;
$teamBbtlconf = $teamBbtlconf + $pld [ $ii ][ 'btl_cof' ];
$teamB ++ ;
$idi = $ii ;
mysql_query (
'UPDATE `stats` SET `team` = "' . $teamnew . '" WHERE `id` = "' . $pld [ $idi ][ 'id' ] . '" LIMIT 1'
);
}
$ii ++ ;
} else {
if ( isset ( $pld [ $ii ])) {
$teamnew = 1 ;
$teamAbtlconf = $teamAbtlconf + $pld [ $jj ][ 'btl_cof' ];
$teamA ++ ;
$idi = $jj ;
mysql_query (
'UPDATE `stats` SET `team` = "' . $teamnew . '" WHERE `id` = "' . $pld [ $idi ][ 'id' ] . '" LIMIT 1'
);
}
$jj -- ;
}
$yy -- ;
}
} else {
$balansteamA = 0 ;
$balansteamB = 0 ;
while ( $pl = mysql_fetch_array ( $sp )) {
$teamnew = rand ( 1 , 2 );
if ( $balansteamA != $balansteamB ) {
if ( $balansteamA > $balansteamB ) {
$teamnew = 2 ;
} else {
$teamnew = 1 ;
}
}
mysql_query (
'UPDATE `stats` SET `team` = "' . $teamnew . '" WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1'
);
if ( $teamnew == 1 ) {
$balansteamA += 1 ;
} else {
$balansteamB += 1 ;
}
}
}
unset ( $sp , $pl );
}
$btl = [
'otmorozok' => $z [ 'otmorozok' ],
'priz' => $z [ 'priz' ], 'smert' => $z [ 'smert' ], 'noart' => $z [ 'noart' ], 'noeff' => $z [ 'noeff' ], 'noatack' => $z [ 'noatack' ], 'arand' => $z [ 'arand' ], 'kingfight' => $z [ 'kingfight' ],
'players' => '' , 'timeout' => $z [ 'timeout' ], 'type' => $z [ 'type' ], 'travmChance' => $z [ 'travmChance' ], 'invis' => $z [ 'invise' ], 'noinc' => 0 , 'typeBattle' => 0 , 'addExp' => $z [ 'exp' ], 'money' => 0 , 'money3' => 0 ];
2023-01-10 18:29:32 +02:00
//ТУТ старт боя
2022-12-19 22:22:19 +02:00
$ins = mysql_query (
'INSERT INTO `battle` (`otmorozok`,`priz`,`smert`,`noart`,`noeff`,`noatack`,`arand`,`kingfight`,`nobot`,`fastfight`,`razdel`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`) VALUES (
"' . $z [ 'otmorozok' ] . '",
"' . $z [ 'priz' ] . '",
"' . $z [ 'smert' ] . '",
"' . $z [ 'noart' ] . '",
"' . $z [ 'noeff' ] . '",
"' . $z [ 'noatack' ] . '",
"' . $z [ 'arand' ] . '",
"' . $z [ 'kingfight' ] . '",
"' . $z [ 'nobot' ] . '",
"' . $z [ 'fastfight' ] . '",
"' . $z [ 'razdel' ] . '",
"' . $z [ 'city' ] . '",
"' . time () . '",
"' . mysql_real_escape_string ( $btl [ 'players' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'timeout' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'type' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'invis' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'noinc' ]) . '",
"' . mysql_real_escape_string ( $z [ 'travmChance' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'typeBattle' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'addExp' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'money' ]) . '")'
);
$btl_id = mysql_insert_id ();
if ( $btl_id > 0 ) {
2023-01-10 18:29:32 +02:00
//Если бой кулачный, то снимаем вещи
2022-12-19 22:22:19 +02:00
if ( $z [ 'type' ] == 1 ) {
$sp = mysql_query ( 'SELECT `id` FROM `stats` WHERE `zv` = "' . $z [ 'id' ] . '"' );
while ( $pl = mysql_fetch_array ( $sp )) {
mysql_query (
'UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $pl [ 'id' ] . '" AND `inOdet`!=0'
);
}
2023-01-10 18:29:32 +02:00
} elseif ( $z [ 'type' ] == 51 ) { //Поединок без ЕКР вещей
2022-12-19 22:22:19 +02:00
$sp = mysql_query ( 'SELECT `id` FROM `stats` WHERE `zv` = "' . $z [ 'id' ] . '"' );
while ( $pl = mysql_fetch_array ( $sp )) {
mysql_query (
'UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $pl [ 'id' ] . '" AND `2price` > 0'
);
}
}
2023-01-10 18:29:32 +02:00
//обновляем данные о поединке
2022-12-19 22:22:19 +02:00
$upd1 = mysql_query ( 'UPDATE `stats` SET `zv`="0" WHERE `zv` = "' . $z [ 'id' ] . '"' );
$upd2 = mysql_query ( 'UPDATE `users` SET `battle`="' . $btl_id . '" WHERE ' . $vars [ 1 ] . '' );
2023-01-10 18:29:32 +02:00
//обновляем заявку, что бой начался
2022-12-19 22:22:19 +02:00
$upd = mysql_query (
'UPDATE `zayvki` SET `start` = "' . time (
) . '",`btl_id` = "' . $btl_id . '" WHERE `id` = "' . $z [ 'id' ] . '" LIMIT 1'
);
$this -> u -> info [ 'battle' ] = $btl_id ;
2023-01-10 18:29:32 +02:00
//Отправляем сообщение в чат всем бойцам
2022-12-19 22:22:19 +02:00
mysql_query (
" INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES (' " . $this -> u -> info [ 'city' ] . " ','-1',' " . $vars [ 0 ] . " ',' " . time (
) . " ','11','0','117') "
);
}
} elseif ( $z [ 'razdel' ] >= 1 && $z [ 'razdel' ] <= 3 ) {
2023-01-10 18:29:32 +02:00
//начало PvP
2022-12-19 22:22:19 +02:00
if ( $this -> u -> info [ 'team' ] == 1 && $this -> u -> info [ 'zv' ] == $z [ 'id' ]) {
$zu = mysql_fetch_array (
mysql_query ( 'SELECT * FROM `stats` WHERE `zv`="' . $z [ 'id' ] . '" AND `team` = "2" LIMIT 1' )
);
if ( isset ( $zu [ 'id' ])) {
$uz = mysql_fetch_array (
mysql_query ( 'SELECT `login`,`money` FROM `users` WHERE `id`="' . $zu [ 'id' ] . '" LIMIT 1' )
);
if ( $zu [ 'clone' ] > 0 ) {
2023-01-10 18:29:32 +02:00
//обновляем клона
2022-12-19 22:22:19 +02:00
$bot = $this -> u -> addNewbot ( 1 , null , $zu [ 'clone' ], null , true );
if ( $bot > 0 ) {
mysql_query ( 'DELETE FROM `users` WHERE `id` = "' . $zu [ 'id' ] . '" LIMIT 1' );
mysql_query ( 'DELETE FROM `stats` WHERE `id` = "' . $zu [ 'id' ] . '" LIMIT 1' );
mysql_query ( 'DELETE FROM `items_users` WHERE `uid` = "' . $zu [ 'id' ] . '" LIMIT 100' );
mysql_query ( 'DELETE FROM `eff_users` WHERE `uid` = "' . $zu [ 'id' ] . '" LIMIT 100' );
mysql_query (
'UPDATE `stats` SET `zv` = "' . $z [ 'id' ] . '",`team` = 2 WHERE `id` = "' . $bot . '" LIMIT 1'
);
$zu = mysql_fetch_array (
mysql_query (
'SELECT * FROM `stats` WHERE `zv`="' . $z [ 'id' ] . '" AND `team` = "2" LIMIT 1'
)
);
$uz = mysql_fetch_array (
mysql_query (
'SELECT `login`,`money` FROM `users` WHERE `id`="' . $zu [ 'id' ] . '" LIMIT 1'
)
);
}
}
2023-01-10 18:29:32 +02:00
//создаем поединок
2022-12-19 22:22:19 +02:00
$btl_id = 0 ;
if ( $uz [ 'money' ] < $z [ 'money' ] || $this -> u -> info [ 'money' ] < $z [ 'money' ]) {
$z [ 'money' ] = 0 ;
}
$btl = [ 'otmorozok' => $z [ 'otmorozok' ], 'players' => '' , 'timeout' => $z [ 'timeout' ], 'type' => $z [ 'type' ], 'travmChance' => $z [ 'travmChance' ], 'invis' => 0 , 'noinc' => 0 , 'typeBattle' => 0 , 'addExp' => 0 , 'money' => round (
$z [ 'money' ], 2
), 'money3' => 0 ];
$ins = mysql_query (
'INSERT INTO `battle` (`otmorozok`,`smert`,`noart`,`noeff`,`noatack`,`arand`,`kingfight`,`nobot`,`fastfight`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`) VALUES (
"' . mysql_real_escape_string ( $btl [ 'otmorozok' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'smert' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'noart' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'noeff' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'noatack' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'arand' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'kingfight' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'nobot' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'fastfight' ]) . '",
"' . $this -> u -> info [ 'city' ] . '",
"' . time () . '",
"' . mysql_real_escape_string ( $btl [ 'players' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'timeout' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'type' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'invis' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'noinc' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'travmChance' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'typeBattle' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'addExp' ]) . '",
"' . mysql_real_escape_string ( $btl [ 'money' ]) . '")'
);
$btl_id = mysql_insert_id ();
if ( $ins ) {
2023-01-10 18:29:32 +02:00
//обновляем данные о поединке
2022-12-19 22:22:19 +02:00
$upd1 = mysql_query ( 'UPDATE `stats` SET `zv`="0" WHERE `zv` = "' . $z [ 'id' ] . '" LIMIT 2' );
$upd2 = mysql_query (
'UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $this -> u -> info [ 'id' ] . '" OR `id` = "' . $zu [ 'id' ] . '" LIMIT 2'
);
2023-01-10 18:29:32 +02:00
//Если бой кулачный, то снимаем вещи
2022-12-19 22:22:19 +02:00
if ( $z [ 'type' ] == 1 ) {
mysql_query (
'UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $this -> u -> info [ 'id' ] . '" AND `inOdet`!=0'
);
mysql_query (
'UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $zu [ 'id' ] . '" AND `inOdet`!=0'
);
}
2023-01-10 18:29:32 +02:00
//обновляем заявку, что бой начался
2022-12-19 22:22:19 +02:00
$upd = mysql_query (
'UPDATE `zayvki` SET `start` = "' . time (
) . '",`btl_id` = "' . $btl_id . '" WHERE `id` = "' . $z [ 'id' ] . '" LIMIT 1'
);
$this -> u -> info [ 'battle' ] = $btl_id ;
2023-01-10 18:29:32 +02:00
//Отправляем сообщение в чат всем бойцам
2022-12-19 22:22:19 +02:00
mysql_query (
" INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES (' " . $this -> u -> info [ 'city' ] . " ',' " . $this -> u -> info [ 'room' ] . " ',' " . $uz [ 'login' ] . " ',' " . time (
) . " ','11','0','117') "
);
die ( '<script>location="main.php?battle_id=' . $btl_id . '";</script>' );
} else {
2023-01-10 18:29:32 +02:00
$this -> error = 'Ошибка создания битвы.' ;
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы не можете начать поединок, вашу заявку никто не принял.' ;
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы не можете начать поединок.' ;
2022-12-19 22:22:19 +02:00
}
}
}
mysql_query ( 'UNLOCK TABLES' );
mysql_query ( 'COMMIT' );
}
public function cancelzv ()
{
global $zi ;
if ( isset ( $_GET [ 'cancelzv' ], $zi [ 'id' ]) && $zi [ 'razdel' ] >= 1 && $zi [ 'razdel' ] <= 3 ) {
$enemy = mysql_fetch_array (
mysql_query (
'SELECT `u`.*,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi [ 'id' ] . '" AND `st`.`team` = "2" LIMIT 1'
)
);
if ( isset ( $enemy [ 'id' ])) {
if ( $this -> u -> info [ 'team' ] == 1 ) {
2023-01-10 18:29:32 +02:00
//выкидываем из заявки + пишем сообщение в чат
2022-12-19 22:22:19 +02:00
$upd = mysql_query (
'UPDATE `stats` SET `zv` = "0",`team`="0" WHERE `id` = "' . $enemy [ 'id' ] . '" LIMIT 1'
);
if ( $upd ) {
mysql_query ( 'UPDATE `users` SET `otk` = (`otk` + 1) WHERE `id` = "' . $zi [ 'id' ] . '" LIMIT 1' );
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы отказали ' . $enemy [ 'login' ] . ' в поединке' ;
//отправляем сообщение в чат
2022-12-19 22:22:19 +02:00
$sa = '' ;
if ( $this -> u -> info [ 'sex' ] == 2 ) {
2023-01-10 18:29:32 +02:00
$sa = 'а ' ;
2022-12-19 22:22:19 +02:00
}
2023-01-10 18:29:32 +02:00
$text = ' [login:' . $this -> u -> info [ 'login' ] . '] отказал' . $sa . ' вам в поединке.' ;
2022-12-19 22:22:19 +02:00
mysql_query (
" INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1',' " . $enemy [ 'city' ] . " ','','',' " . $enemy [ 'login' ] . " ',' " . $text . " ',' " . time (
) . " ','6','0') "
);
}
} elseif ( $this -> u -> info [ 'id' ] == $enemy [ 'id' ] && $zi [ 'start' ] == 0 ) {
2023-01-10 18:29:32 +02:00
//выкидываем из заявки + пишем сообщение в чат
2022-12-19 22:22:19 +02:00
$upd = mysql_query (
'UPDATE `stats` SET `zv` = "0",`team`="0" WHERE `id` = "' . $enemy [ 'id' ] . '" LIMIT 1'
);
if ( $upd ) {
$uz = mysql_fetch_array (
mysql_query (
'SELECT `u`.`sex`,`u`.`login`,`u`.`city`,`u`.`room`,`u`.`id`,`st`.`zv`,`st`.`team` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi [ 'id' ] . '" AND `st`.`team` = "1" LIMIT 1'
)
);
if ( isset ( $uz [ 'id' ])) {
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы отозвали свой запрос на бой.' ;
//отправляем сообщение в чат
2022-12-19 22:22:19 +02:00
$sa = '' ;
if ( $this -> u -> info [ 'sex' ] == 2 ) {
2023-01-10 18:29:32 +02:00
$sa = 'а ' ;
2022-12-19 22:22:19 +02:00
}
2023-01-10 18:29:32 +02:00
$text = ' [login:' . $this -> u -> info [ 'login' ] . '] отозвал' . $sa . ' свой запрос на бой.' ;
2022-12-19 22:22:19 +02:00
mysql_query (
" INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1',' " . $uz [ 'city' ] . " ','','',' " . $uz [ 'login' ] . " ',' " . $text . " ',' " . time (
) . " ','6','0') "
);
}
$this -> u -> info [ 'zv' ] = 0 ;
$this -> u -> info [ 'team' ] = 0 ;
}
}
if ( $enemy [ 'bot' ] == 1 ) {
2023-01-10 18:29:32 +02:00
//удаляем бота , предметы и эффекты
2022-12-19 22:22:19 +02:00
mysql_query ( 'DELETE FROM `users` WHERE `id` = "' . $enemy [ 'id' ] . '" LIMIT 1' );
mysql_query ( 'DELETE FROM `stats` WHERE `id` = "' . $enemy [ 'id' ] . '" LIMIT 1' );
mysql_query ( 'DELETE FROM `items_users` WHERE `uid` = "' . $enemy [ 'id' ] . '" LIMIT 100' );
mysql_query ( 'DELETE FROM `eff_users` WHERE `uid` = "' . $enemy [ 'id' ] . '" LIMIT 100' );
}
} else {
if ( $this -> u -> info [ 'team' ] == 1 ) {
2023-01-10 18:29:32 +02:00
//удаляем заявку на бой
2022-12-19 22:22:19 +02:00
$upd = mysql_query (
'UPDATE `zayvki` SET `cancel` = "' . time () . '" WHERE `id` = "' . $zi [ 'id' ] . '" LIMIT 1'
);
if ( $upd ) {
mysql_query (
'UPDATE `stats` SET `zv` = "0" WHERE `id` = "' . $this -> u -> info [ 'id' ] . '" LIMIT 1'
);
2023-01-10 18:29:32 +02:00
$this -> error = 'Вы отозвали свою заявку' ;
2022-12-19 22:22:19 +02:00
$zi = false ;
$this -> u -> info [ 'zv' ] = 0 ;
}
}
}
}
}
public function see ()
{
global $c , $code , $zi ;
if ( isset ( $_GET [ 'r' ]) && (( ! isset ( $_GET [ 'new_group' ]) && ! isset ( $_POST [ 'groupClick' ])) || isset ( $zi [ 'id' ]))) {
$r = round ( intval ( $_GET [ 'r' ]));
if ( in_array ( $r , [ 1 , 4 , 5 , 8 , 10 ])) {
$this -> zv_see = 1 ;
if ( $this -> u -> room [ 'FR' ] == 0 && $this -> u -> room [ 'zvsee' ] == 0 ) {
2023-01-10 18:29:32 +02:00
echo '<br><br><br><b><font color="black"><center>Подать заявку можно только в комнатах бойцовского клуба</center></font></b>' ;
2022-12-19 22:22:19 +02:00
$this -> zv_see = 0 ;
} elseif ( $r == 1 && $this -> u -> info [ 'level' ] > 0 ) {
2023-01-10 18:29:32 +02:00
echo '<br><br><br><b><font color="black"><center>Вы уже выросли из ползунков ;)</center></font></b>' ;
2022-12-19 22:22:19 +02:00
$this -> zv_see = 0 ;
} elseif ( $r > 1 && $r < 6 && $this -> u -> info [ 'level' ] < 1 ) {
2023-01-10 18:29:32 +02:00
echo '<br><br><br><b><font color="black"><center>Вы еще не выросли из ползунков ;)</center></font></b>' ;
2022-12-19 22:22:19 +02:00
$this -> zv_see = 0 ;
} elseif ( $r > 3 && $r < 6 && $this -> u -> info [ 'level' ] < 2 ) {
2023-01-10 18:29:32 +02:00
echo '<br><br><br><b><font color="black"><center>В ' . $this -> z1n [ $r ] . ' бои только со второго уровня.</center></font></b>' ;
2022-12-19 22:22:19 +02:00
$this -> zv_see = 0 ;
} elseif ( $r == 8 && $this -> u -> info [ 'level' ] < 1 ) {
2023-01-10 18:29:32 +02:00
echo '<br><br><br><b><font color="black"><center>Принимать участие в турнире только с первого уровня.</center></font></b>' ;
2022-12-19 22:22:19 +02:00
$this -> zv_see = 0 ;
} elseif ( $r == 10 ) {
2022-12-30 21:03:37 +02:00
if ( \Insallah\Tournament :: IS_ENABLED ) {
2023-01-10 18:29:32 +02:00
/** Турниры by Insallah*/
# Защита от F5
2022-12-30 21:03:37 +02:00
if ( ! isset ( $_SESSION [ 'bypass' ])) {
$_SESSION [ 'bypass' ] = mt_rand ();
2022-12-19 22:22:19 +02:00
}
2022-12-30 21:03:37 +02:00
if ( $_SERVER [ 'REQUEST_METHOD' ] === 'POST' && $_POST [ 'key' ] == $_SESSION [ 'bypass' ]) {
unset ( $_SESSION [ 'bypass' ]);
if ( array_key_exists ( 'tournament_start' , $_POST )) {
( new \Insallah\Tournament ()) -> join ( $this -> u -> info [ 'id' ]);
}
}
##
2023-01-10 18:29:32 +02:00
# Формируем список идущих турниров.
2022-12-30 21:03:37 +02:00
$tournamentsList = Db :: getRows ( 'select * from tournaments' );
$tournaments = '<ul>' ;
foreach ( $tournamentsList as $tournament ) {
2023-01-10 18:29:32 +02:00
$time = $tournament [ 'start_time' ] === - 1 ? 'Турнир уже начался!' : date (
2022-12-30 21:03:37 +02:00
'G:i' , $tournament [ 'start_time' ]
);
$tournament_members_id = \Insallah\TournamentModel :: getFreeFighters ( $tournament [ 'tid' ]);
$members = [];
foreach ( $tournament_members_id as $member ) {
$members [] = \Insallah\TournamentModel :: uidToLogin ( $member );
}
$tournaments .= sprintf (
2023-01-10 18:29:32 +02:00
" <li>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</li> " ,
2022-12-30 21:03:37 +02:00
$tournament [ 'tid' ], $time , implode ( ', ' , $members )
);
}
$tournaments .= '</ul>' ;
?>
<div>
2023-01-10 18:29:32 +02:00
<strong style="color: red;">Внимание!</strong>
2022-12-30 21:03:37 +02:00
<ul>
2023-01-10 18:29:32 +02:00
<li style="color: blue;">В случае создания либо присоединения к Турниру, покинуть его -
<u>невозможно</u>!
2022-12-30 21:03:37 +02:00
</li>
<?php if (\Insallah\TournamentModel::isEkrOverpriced($this->u->info['id'])): ?>
2023-01-10 18:29:32 +02:00
<li>Стоимость предметов, одетых на вас не должна
превышать <?= \Insallah\Tournament::ekrOverpriceFormula(
2022-12-30 21:03:37 +02:00
$this->u->info['level']
2023-01-10 18:29:32 +02:00
) ?> еврокредитов.
2022-12-30 21:03:37 +02:00
</li>
<?php endif; ?>
<?php if ($this->u->info['exp'] < \Insallah\Tournament::MIN_EXP): ?>
2023-01-10 18:29:32 +02:00
<li>У вас должно быть не менее <?= \Insallah\Tournament::MIN_EXP ?> опыта.</li>
2022-12-30 21:03:37 +02:00
<?php endif; ?>
2023-01-10 18:29:32 +02:00
<li style="color: blue;">Турнир начнётся, когда в заявке
наберётся <?= \Insallah\Tournament::START_TOURNAMENT ?> человек.
2022-12-30 21:03:37 +02:00
</li>
2023-01-10 18:29:32 +02:00
<li style="color: blue;">Игроки занявшие 1, 2 и 3 места получат 25, 15, 5 Реликвий
Ангела, а так же задержки на участие в турнире 12 часов, 6 и 3 часа соответственно!
2022-12-30 21:03:37 +02:00
</li>
</ul>
</div>
<?php if (!empty($tournamentsList)): ?>
<div>
2023-01-10 18:29:32 +02:00
<strong>Активные турниры.</strong><br>
2022-12-30 21:03:37 +02:00
<?= $tournaments ?>
</div>
<?php endif; ?>
<?php if (!\Insallah\TournamentModel::getTournamentIdByUserId(
$this->u->info['id']
) || !\Insallah\TournamentModel::isStarted($this->u->info['level'])): ?>
<form method="post">
2023-01-10 18:29:32 +02:00
<input type="submit" name="tournament_start" value="Принять участие в турнире">
2022-12-30 21:03:37 +02:00
<input type="hidden" name="key" value="<?= $_SESSION['bypass'] ?>">
</form>
<?php else: ?>
2023-01-10 18:29:32 +02:00
Вы учавствуете.
2022-12-30 21:03:37 +02:00
<?php endif; ?>
<?php
} else {
?>
<div>
2023-01-10 18:29:32 +02:00
<strong style="color: crimson;">В данный момент турниры не проводятся!</strong>
2022-12-30 21:03:37 +02:00
</div>
<?php
2022-12-19 22:22:19 +02:00
}
2023-01-10 18:29:32 +02:00
/** Конец турниров от Insallah. */
2022-12-19 22:22:19 +02:00
} elseif ($this->u->info['zv'] > 0 && $this->u->info['battle'] == 0 && $r != 8) {
if ($zi['razdel'] == 1 || $zi['razdel'] == 2 || $zi['razdel'] == 3) {
echo '
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">';
if ($this->u->info['team'] == 1) {
$uz = mysql_fetch_array(
mysql_query(
'SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi['id'] . '" AND `st`.`team`="2" LIMIT 1'
)
);
if (!isset($uz['id'])) {
2023-01-10 18:29:32 +02:00
//если никто не принял
echo '<div style="float:left;"><div style="float:left;">Вы уже подали заявку на бой <INPUT class="btn btn-danger" onClick="location=\'main.php?zayvka=1&r=' . $_GET['r'] . '&rnd=' . $code . '&cancelzv\';" TYPE=submit name=close value="Отозвать заявку"></div>';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
//если кто-то принял
2022-12-19 22:22:19 +02:00
$sa = '';
if ($uz['sex'] == 2) {
2023-01-10 18:29:32 +02:00
$sa = 'а ';
2022-12-19 22:22:19 +02:00
}
2023-01-10 18:29:32 +02:00
echo '<script> zv_Priem = ' . (0 + $uz['id']) . ';</script><font color="red"><b>Вашу заявку принял' . $sa . ' ' . $ca . '</font></b> ' . $this->u->microLogin(
2022-12-19 22:22:19 +02:00
$uz['id'], 1
2023-01-10 18:29:32 +02:00
) . '</a><font color="red"><b> Хотите подтвердить бой? </b></font><INPUT class="btn btn-success" onClick="location=\'main.php?zayvka=1&r=' . $_GET['r'] . '&rnd=' . $code . '&startBattle\';" TYPE=submit name=close value="Подтвердить"> <INPUT class="btn btn-danger" onClick="location=\'main.php?zayvka=1&r=' . $_GET['r'] . '&rnd=' . $code . '&cancelzv\';" TYPE=submit name=close value="Отказать">';
2022-12-19 22:22:19 +02:00
}
} else {
$uz = mysql_fetch_array(
mysql_query(
'SELECT `u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi['id'] . '" AND `st`.`team`="1" LIMIT 1'
)
);
if (isset($uz['id'])) {
2023-01-10 18:29:32 +02:00
echo 'Ожидаем подтверждения боя от ' . $this->u->microLogin(
2022-12-19 22:22:19 +02:00
$uz['id'], 1
2023-01-10 18:29:32 +02:00
) . ' <INPUT class="btn" onClick="location=\'main.php?zayvka=1&r=' . $_GET['r'] . '&rnd=' . $code . '&cancelzv\';" TYPE=submit name=close value="Отозвать запрос">';
2022-12-19 22:22:19 +02:00
}
}
echo '</td><td align="right" valign="top"></td></tr></table></div>';
} else {
$tm_start = floor(($zi['time'] + $zi['time_start'] - time()) / 6) / 10;
$tm_start = $this->rzv($tm_start);
2023-01-10 18:29:32 +02:00
echo '<b>Ожидаем начала ' . $this->z2n[$zi['razdel']] . ' боя</b>';
echo '<br>Ваш бой начнется через ' . $tm_start . ' мин.';
2022-12-19 22:22:19 +02:00
}
} elseif ($r == 8) {
2023-01-10 18:29:32 +02:00
//Турниры
2022-12-19 22:22:19 +02:00
$ttur = [
2023-01-10 18:29:32 +02:00
0 => 'Выжить любой ценой!',
1 => 'Каждый сам за себя!',
2 => 'Захват ключа!',
2022-12-19 22:22:19 +02:00
];
if (isset($_POST['trn1']) && $this->u->room['zvsee'] == 0) {
if ($this->u->info['inTurnirnew'] == 0) {
$totr = mysql_fetch_array(
mysql_query(
'SELECT * FROM `turnirs` WHERE `id` = "' . mysql_real_escape_string(
$_POST['trn1']
) . '" AND `status` = "0" LIMIT 1'
)
);
if (isset($totr['id'])) {
mysql_query(
'UPDATE `users` SET `inTurnirnew` = "' . $totr['id'] . '" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `turnirs` SET `users_in` = `users_in` + 1 WHERE `id` = "' . $totr['id'] . '" LIMIT 1'
);
$this->u->info['inTurnirnew'] = $totr['id'];
2023-01-10 18:29:32 +02:00
$this->error = 'Вы записались на участие в турнире.';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Заявка на турнир не найдена.';
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы уже находитесь в заявке на турнир.';
2022-12-19 22:22:19 +02:00
}
} elseif (isset($_GET['cancel13']) && $this->u->room['zvsee'] == 0) {
if ($this->u->info['inTurnirnew'] > 0) {
$totr = mysql_fetch_array(
mysql_query(
'SELECT * FROM `turnirs` WHERE `id` = "' . mysql_real_escape_string(
$this->u->info['inTurnirnew']
) . '" AND `status` = "0" LIMIT 1'
)
);
if (isset($totr['id'])) {
mysql_query(
'UPDATE `users` SET `inTurnirnew` = "0" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1'
);
mysql_query('UPDATE `turnirs` SET `users_in` = `users_in` - 1 LIMIT 1');
$this->u->info['inTurnirnew'] = 0;
2023-01-10 18:29:32 +02:00
$this->error = 'Вы отказались от заявки на турнир.';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Нельзя отказаться от заявки находясь в турнире.';
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не принимаете участия ни в одном из турниров.';
2022-12-19 22:22:19 +02:00
}
}
$dv = '';
$trse = '';
if ($this->u->info['inTurnirnew'] > 0) {
$pl = mysql_fetch_array(
mysql_query(
'SELECT * FROM `turnirs` WHERE `id` = "' . $this->u->info['inTurnirnew'] . '" LIMIT 1'
)
);
if (!isset($pl['id'])) {
mysql_query(
'UPDATE `users` SET `inTurnirnew` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
);
2023-01-10 18:29:32 +02:00
echo 'Что-то не так... Обновите страницу.';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$dv = '<b><u>Участники турнира [' . $pl['users_in'] . ']</u></b>:<br>';
2022-12-19 22:22:19 +02:00
$spu = mysql_query(
'SELECT `u`.`id`,`u`.`align`,`u`.`login`,`u`.`clan`,`u`.`level`,`u`.`city`,`u`.`online`,`u`.`sex`,`u`.`cityreg`,`u`.`palpro`,`u`.`invis` FROM `users` AS `u` WHERE `u`.`inTurnirnew` = "' . $pl['id'] . '" LIMIT ' . $pl['users_in']
);
$i = 1;
while ($plu = mysql_fetch_array($spu)) {
$dv .= '<div style="padding:3px;">' . $i . '. ' . $this->u->microLogin(
$plu, 2
) . '</div>';
$i++;
}
echo '
<script type="text/javascript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval("location=\'"+selObj.options[selObj.selectedIndex].value+"\'");
if (restore) selObj.selectedIndex=0;
}
</script>
<FORM style="margin:0px; padding:0px; border:0px;" METHOD=\'POST\' ACTION=\'main.php?zayvka=1&r=' . $r . '&rnd=' . $code . '\'>
<input type="hidden" name="add_new_zv" id="add_new_zv" value="' . floor(time() / 3) . '" />
<TABLE width=100% cellspacing=0 cellpadding=0>
<TR>
<TD valign=top>
<font color="red"><b>' . $this->error . '</b></font>
<div style="border-bottom:#b2b2b2 solid 1px;padding:5px;">
2023-01-10 18:29:32 +02:00
Начало турнира через ' . $this->u->timeOut(
2022-12-19 22:22:19 +02:00
$pl['time'] - time()
2023-01-10 18:29:32 +02:00
) . ' <INPUT class="btn" onClick="location=\'main.php?zayvka&r=8&cancel13&tlvl=' . $pl['level'] . '&rnd=' . $code . '\';" TYPE=button name=tmp value="Отказаться">
2022-12-19 22:22:19 +02:00
</div>
<div style="border-bottom:#b2b2b2 solid 1px;padding:5px;margin-bottom:5px;">
' . $dv . '
</div>
</TD>
<TD align=right valign=top> </TD>
</TR>
</TABLE>
</FORM>';
}
} else {
$tlvl = 4;
$i = 4;
2023-01-10 18:29:32 +02:00
$trnmz = [4 => 'Физический', 5 => 'Магический', 6 => 'Физ.\Маг.'];
2022-12-19 22:22:19 +02:00
while ($i <= 6) {
if ($_GET['tlvl'] == $i) {
$trse .= '<option value="https://new-combats.com/main.php?zayvka&r=8&tlvl=' . $i . '" selected="selected">' . $trnmz[$i] . '</option>';
$tlvl = $i;
} else {
$trse .= '<option value="https://new-combats.com/main.php?zayvka&r=8&tlvl=' . $i . '">' . $trnmz[$i] . '</option>';
}
$i++;
}
2023-01-10 18:29:32 +02:00
$prb = '<INPUT class="btn" TYPE="submit" name=open value="Принять участие">';
2022-12-19 22:22:19 +02:00
echo '<style>.zvnkj { padding:5px; }</style>';
$sp = mysql_query('SELECT * FROM `turnirs` WHERE `status` = "0" AND `level` = "' . $tlvl . '"');
$j = 0;
while ($pl = mysql_fetch_array($sp)) {
$j++;
2023-01-10 18:29:32 +02:00
$dinf = 'Начало через ' . $this->u->timeOut($pl['time'] - time()) . '';
2022-12-19 22:22:19 +02:00
$dv .= '<label><div class="zvnkj">';
if ($this->u->room['zvsee'] == 0) {
$dv .= '<input type="radio" name="trn1" id="trn1_' . $j . '" value="' . $pl['id'] . '">';
}
2023-01-10 18:29:32 +02:00
$dv .= ' Физический турнир. Участников турнира: ' . $pl['users_in'] . ' чел. | ' . $dinf . '</div></label>';
2022-12-19 22:22:19 +02:00
}
if ($dv == '') {
2023-01-10 18:29:32 +02:00
$dv = 'Список турниров для данного типа пуст...';
2022-12-19 22:22:19 +02:00
}
echo '
<script type="text/javascript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval("location=\'"+selObj.options[selObj.selectedIndex].value+"\'");
if (restore) selObj.selectedIndex=0;
}
</script>
<FORM style="margin:0px; padding:0px; border:0px;" METHOD=\'POST\' ACTION=\'main.php?zayvka=1&r=' . $r . '&rnd=' . $code . '\'>
<input type="hidden" name="add_new_zv" id="add_new_zv" value="' . floor(time() / 3) . '" />
<TABLE width=100% cellspacing=0 cellpadding=0>
<TR>
<TD valign=top>
<font color="red"><b>' . $this->error . '</b></font>
<div style="border-bottom:#b2b2b2 solid 1px;padding:5px;">
2023-01-10 18:29:32 +02:00
Тип турнира:
2022-12-19 22:22:19 +02:00
<SELECT NAME=turlevel onChange="MM_jumpMenu(null,this,0)">
' . $trse . '
</SELECT>
' . $prb . '
</div>
<div style="border-bottom:#b2b2b2 solid 1px;padding:5px;margin-bottom:5px;">
' . $dv . '
</div>
' . $prb . '
</TD>
<TD align=right valign=top></TD>
</TR>
</TABLE>
</FORM>';
}
} elseif ($r == 1) {
2023-01-10 18:29:32 +02:00
//новички, физические и договорные удаляются. Инс. 29.05.22
2022-12-19 22:22:19 +02:00
$zi = [
2023-01-10 18:29:32 +02:00
1 => 'Если вы не достигли первого уровня, то для вас это единственный способ для проведения битв.',
2022-12-19 22:22:19 +02:00
];
$dv = '';
if ($this->u->room['zvsee'] == 0) {
if ($this->u->info['level'] <= $c['bot_level'] || $this->u->info['admin'] > 0) {
2023-01-10 18:29:32 +02:00
$dv = '<b><font color="green">Тренировочные бои доступны до ' . ($c['bot_level'] + 1) . '-го уровня.</font></b> <INPUT class="btn btn-inverse" onClick="location=\'main.php?zayvka=1&r=' . $_GET['r'] . '&bot=' . $this->u->info['nextAct'] . '\';" TYPE=button name=clone value="Начать бой с клоном">';
2022-12-19 22:22:19 +02:00
} else {
if ($this->u->info['level'] < 9) {
2023-01-10 18:29:32 +02:00
$tstw = ' для <b>8</b> левелов недоступны';
2022-12-19 22:22:19 +02:00
} else {
$tstw = '<input type="text" value="" name="commentfiz" id="commentfiz" style="width:244px; padding:3px;">';
}
$dv .= '<br>
<div>
<div style="padding-top:5px;">
2023-01-10 18:29:32 +02:00
Комментарий к бою ' . $tstw . '
2022-12-19 22:22:19 +02:00
</div>
</div>
2023-01-10 18:29:32 +02:00
<div style="padding-top:5px;"><INPUT class="btn" TYPE=submit name=open value="Подать заявку"></div>';
2022-12-19 22:22:19 +02:00
}
if ($this->u->info['admin'] > 0) {
if (isset($_GET['adminbotatack'])) {
$bot_atack = mysql_fetch_array(
mysql_query(
'SELECT * FROM `test_bot` WHERE `id` = "' . mysql_real_escape_string(
$_GET['adminbotatack']
) . '" LIMIT 1'
)
);
if (isset($bot_atack['id'])) {
$logins_bot = [];
$k = $this->u->addNewbot($bot_atack['id'], null, null, $logins_bot);
if (isset($k['id'])) {
$expB = 0;
$btl = [
'players' => '',
'timeout' => 180,
'type' => 0,
'invis' => 0,
'noinc' => 0,
'travmChance' => 0,
'typeBattle' => 0,
'addExp' => $expB,
'money' => 0,
];
$ins = mysql_query(
'INSERT INTO `battle` (`dungeon`,`dn_id`,`x`,`y`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`) VALUES (
"0",
"0",
"0",
"0",
"' . $this->u->info['city'] . '",
"' . time() . '",
"' . $btl['players'] . '",
"' . $btl['timeout'] . '",
"' . $btl['type'] . '",
"' . $btl['invis'] . '",
"' . $btl['noinc'] . '",
"' . $btl['travmChance'] . '",
"' . $btl['typeBattle'] . '",
"' . $btl['addExp'] . '",
"' . $btl['money'] . '")'
);
$btl_id = mysql_insert_id();
mysql_query(
'UPDATE `users` SET `battle` = "' . $btl_id . '" WHERE `id` = "' . $k['id'] . '" OR `id` = "' . $this->u->info['id'] . '" LIMIT 2'
);
mysql_query(
'UPDATE `stats` SET `team` = "2" WHERE `id` = "' . $k['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `stats` SET `team` = "1" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1'
);
die('<script>top.frames[\'main\'].location = "main.php";</script>');
}
}
}
$dv .= '<script type="text/javascript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval("location=\'main.php?zayvka=1&r=2&rnd=1&adminbotatack="+selObj.options[selObj.selectedIndex].value+"\'");
if (restore) selObj.selectedIndex=0;
}
</script><form name="form55" id="form55">';
2023-01-10 18:29:32 +02:00
$dv .= '<hr>Бой с монстром: <select style="font-size:12px;" onChange="MM_jumpMenu(\'parent\',this,0)" name="botadminatack"><option value="0">------ Выберите монстра из списка ------</option>';
2022-12-19 22:22:19 +02:00
$sp_m = mysql_query('SELECT * FROM `test_bot` WHERE `pishera` != 0 ORDER BY `id` ASC');
while ($pl_m = mysql_fetch_array($sp_m)) {
$dv .= '<option value="' . $pl_m['id'] . '">' . $pl_m['id'] . ' [ ' . $pl_m['align'] . ' ] - ' . $pl_m['login'] . ' [' . $pl_m['level'] . '] ' . $pl_m['pishera'] . '</option>';
}
$dv .= '</select></form>';
}
echo '
<FORM style="margin:0px; padding:0px; border:0px;" METHOD=\'POST\' ACTION=\'main.php?zayvka=1&r=' . $r . '&rnd=' . $code . '\'>
<input type="hidden" name="add_new_zv" id="add_new_zv" value="' . floor(time() / 3) . '" />
<TABLE width=100% cellspacing=0 cellpadding=0>
<TR>
<TD valign=top><!--' . $zi[$r] . '<BR>-->
<table cellspacing=0 cellpadding=0>
<tr>
<td>
' . $dv . '
</td>
</tr>
</table></TD>
<TD align=right valign=top></TD>
</TR>
</TABLE>
</FORM>';
}
} elseif ($r == 4) {
2023-01-10 18:29:32 +02:00
if ($this->u->room['zvsee'] == 0) { //групповые ?>
2022-12-19 22:22:19 +02:00
<span id="hidezv1_btn"><INPUT class="btn" onClick="openfizrmk();" TYPE=button name=tmp
2023-01-10 18:29:32 +02:00
value="Подать заявку на групповой бой" style="margin:3px;"></span>
2022-12-19 22:22:19 +02:00
<FIELDSET id="hidezv1" style="display:none; border-color:#FFF; width:500px;">
2023-01-10 18:29:32 +02:00
<LEGEND><B style="color:#8f0000">Подать заявку на групповой бой</B></LEGEND>
2022-12-19 22:22:19 +02:00
<form method="post"
action="main.php?zayvka&r=<?= $_GET['r'] ?>&add_group&rnd=<?= $code ?>">
<table>
<tr>
<td>
2023-01-10 18:29:32 +02:00
Начало боя через
2022-12-19 22:22:19 +02:00
<select style="padding:2px;" name="startime">
2023-01-10 18:29:32 +02:00
<option value="300">5 минут</option>
<option value="600">10 минут</option>
2022-12-19 22:22:19 +02:00
</select>
2023-01-10 18:29:32 +02:00
Таймаут
2022-12-19 22:22:19 +02:00
<select style="padding:2px;" name="timeout">
2023-01-10 18:29:32 +02:00
<option value="1">1 мин.</option>
<option value="2">2 мин.</option>
<option value="3">3 мин.</option>
2022-12-19 22:22:19 +02:00
</select>
<br/>
2023-01-10 18:29:32 +02:00
Ваша команда
2022-12-19 22:22:19 +02:00
<input style="padding:2px;" type="text" name="nlogin1" size="3"
2023-01-10 18:29:32 +02:00
maxlength="2"/> игроков
2022-12-19 22:22:19 +02:00
<select style="padding:2px;" name="levellogin1">
2023-01-10 18:29:32 +02:00
<option value="0">любой</option>
<option value="1">только моего и ниже</option>
<option value="2">только ниже моего уровня</option>
<option value="3">только моего уровня</option>
<option value="4">не старше меня более чем на уровень</option>
<option value="5">не младше меня более чем на уровень</option>
<option value="6">мой уровень +/- 1</option>
<option value="99">мой клан</option>
<option value="98">моя склонность</option>
2022-12-19 22:22:19 +02:00
</select>
<br/>
2023-01-10 18:29:32 +02:00
Противники
2022-12-19 22:22:19 +02:00
<input style="padding:2px;" type="text" name="nlogin2" size="3"
maxlength="2"/>
2023-01-10 18:29:32 +02:00
игроков
2022-12-19 22:22:19 +02:00
<select style="padding:2px;" name="levellogin2">
2023-01-10 18:29:32 +02:00
<option value="0">любой</option>
<option value="1">только моего и ниже</option>
<option value="2">только ниже моего уровня</option>
<option value="3">только моего уровня</option>
<option value="4">не старше меня более чем на уровень</option>
<option value="5">не младше меня более чем на уровень</option>
<option value="6">мой уровень +/- 1</option>
<option value="99">только клан</option>
<option value="98">только склонность</option>
2022-12-19 22:22:19 +02:00
</select>
<br/>
<input type="checkbox" name="travma"/>
2023-01-10 18:29:32 +02:00
<label for="travma">Бой без правил <font class="dsc">(проигравшая сторона
получает инвалидность)</font></label><br/>
Комментарий к бою
2022-12-19 22:22:19 +02:00
<? if ($this->u->info['level'] < 9) {
2023-01-10 18:29:32 +02:00
?> для <b>8</b> левелов недоступны
2022-12-19 22:22:19 +02:00
<? } else { ?>
<input type="text" style="padding:2px;" name="cmt" maxlength="40"
size="40">
<? } ?>
</td>
</tr>
<tr>
<td align="left">
2023-01-10 18:29:32 +02:00
<input class="btn" type="submit" value="Подать заявку" name="open">
2022-12-19 22:22:19 +02:00
</td>
</tr>
</table>
</form>
</FIELDSET>
<?
}
} elseif ($r == 5) {
if ($this->u->room['zvsee'] == 0) {
2023-01-10 18:29:32 +02:00
echo '<div id="hidezv1_btn"><INPUT class="btn" onClick="openfizrmk();" TYPE=button name=tmp value="Подать заявку на хаотичный бой" style="margin:3px;"></div>
2022-12-19 22:22:19 +02:00
<form action="main.php?zayvka=1&r=' . $_GET['r'] . '&start_haot&rnd=' . $code . '" method="post" style="margin:0px; padding:0px;">
<input type="hidden" name="timeout" value="1">
<div style="display:none; width:600px;" id="hidezv1">
<br>
<FIELDSET style="border-color:#FFF;">
2023-01-10 18:29:32 +02:00
<LEGEND><strong style="color:#8f0000">Подать заявку на хаотичный бой</strong> </LEGEND>
Начало боя через
2022-12-19 22:22:19 +02:00
<SELECT name="startime2">
2023-01-10 18:29:32 +02:00
<option value="60" selected>1 минута
<OPTION value="180">3 минуты
<OPTION value="300">5 минут
2022-12-19 22:22:19 +02:00
</SELECT>
2023-01-10 18:29:32 +02:00
Игроков
2022-12-19 22:22:19 +02:00
<SELECT name="players">
<OPTION selected value="6">6</OPTION>
<OPTION value="8">8</OPTION>
<OPTION value="10">10</OPTION>
<OPTION value="12">12</OPTION>
</SELECT>
<BR>
2023-01-10 18:29:32 +02:00
Уровни бойцов
2022-12-19 22:22:19 +02:00
<SELECT name="levellogin1">
2023-01-10 18:29:32 +02:00
<OPTION value="0">любой
<OPTION selected value="3">только моего уровня
<OPTION value="6">мой уровень +/- 1</OPTION>
2022-12-19 22:22:19 +02:00
</SELECT>
<BR>
<BR>
<INPUT type="checkbox" name="travma">
2023-01-10 18:29:32 +02:00
Бой без правил <font color="#777">(проигравшая сторона получает инвалидность)</font><BR>
<INPUT type="checkbox" name="noatack"> Закрытый поединок <font color="#777">(бой будет изолирован от нападений)</font><BR>
2022-12-19 22:22:19 +02:00
<INPUT type="checkbox" name="noeff">
2023-01-10 18:29:32 +02:00
Запрет на использование свитков восстановления НР и Маны<BR>
2022-12-19 22:22:19 +02:00
';
if (!$this->u->info['no_zv_key']) {
echo '<img src="https://new-combats.com/show_reg_img/security2.php?id=' . time(
2023-01-10 18:29:32 +02:00
) . '" width="70" height="20"> Код подтверждения: <input style="width:40px;" type="text" value="" name="code21">';
2022-12-19 22:22:19 +02:00
}
2023-01-10 18:29:32 +02:00
$tstw = $this->u->info['level'] < 9 ? ' для <b>8</b> левелов недоступны' : '<INPUT maxLength="40" size="40" name="cmt">';
echo 'Комментарий к бою ' . $tstw . '
<BR><INPUT class="btn" value="Подать заявку" type="submit" name="open">
2022-12-19 22:22:19 +02:00
</FIELDSET>
</DIV>
</div></form>';
}
}
} elseif ($r == 6) {
2023-01-10 18:29:32 +02:00
//текущие
2022-12-19 22:22:19 +02:00
$x = 1;
$html = '';
$p = 0;
$_GET['from'] = round((int)$_GET['from']);
if ($_GET['from'] > 1 && $_GET['from'] < 50) {
$p = $_GET['from'] - 1;
}
$xx = mysql_num_rows(
mysql_query(
'SELECT `id` FROM `battle` WHERE `type` != 329 AND `team_win` = "-1" AND `time_over` = "0" AND `start1` > 0'
)
);
$px = $p * 15;
if ($p > ceil($xx / 15)) {
$p = ceil($xx / 15);
}
$sp = mysql_query(
'SELECT * FROM `battle` WHERE `type` != 329 AND `team_win` = "-1" AND `time_over` = "0" AND `start1` > 0 ORDER BY `time_start` DESC LIMIT ' . ((int)$px) . ',15'
);
while ($pl = mysql_fetch_array($sp)) {
$tm = '';
$tmu = [];
$tms = [];
$spi = mysql_query(
'SELECT `u`.`login`,`st`.`id`,`st`.`team`,`u`.`id` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`battle` = "' . $pl['id'] . '"'
);
while ($pli = mysql_fetch_array($spi)) {
if (!isset($tmu[$pli['team']])) {
$tms[count($tms)] = $pli['team'];
}
$tmu[$pli['team']][count($tmu[$pli['team']])] = $pli['id'];
}
$i = 0;
while ($i < count($tms)) {
$tmsu = '';
$j = 0;
while ($j < count($tmu[$tms[$j]])) {
if ($tmu[$tms[$i]][$j] > 0) {
$tmsu .= $this->u->microLogin($tmu[$tms[$i]][$j], 1) . ', ';
}
$j++;
}
$tmsu = rtrim($tmsu, ', ');
$tm .= $tmsu;
if ($i + 1 != count($tms)) {
2023-01-10 18:29:32 +02:00
$tm .= ' <SPAN style=\'color: red; font-weight: bold;\'>против</SPAN> ';
2022-12-19 22:22:19 +02:00
}
$i++;
}
if ($tm != '') {
$html .= ($p + $x) . '. <font class=date>' . date(
'd.m.y H:i', $pl['time_start']
2023-01-10 18:29:32 +02:00
) . '</font> ' . $tm . ' <IMG SRC="https://img.new-combats.com/i/fighttype' . $pl['typeBattle'] . '.gif" WIDTH=20 HEIGHT=20 ALT="Физический бой"> <A HREF="logs.php?log=' . $pl['id'] . '&rnd=' . $code . '" target=_blank>»»</A><BR>';
2022-12-19 22:22:19 +02:00
}
$x++;
}
?>
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
2023-01-10 18:29:32 +02:00
<td valign="top" align="center"><h3>Записи текущих боев на <?= date('d.m.Y'); ?>
(всего <?= $xx; ?>)</h3></td>
2022-12-19 22:22:19 +02:00
<td valign="top" align="right"></td>
</tr>
</table>
<? if ($html == '') {
2023-01-10 18:29:32 +02:00
echo '<div align="center">К сожалению сейчас боев нет...</div>';
2022-12-19 22:22:19 +02:00
} else {
echo '<div>' . $html . '</div>';
} ?>
<TABLE width=100% cellspacing=0 cellpadding=0>
<TR>
2023-01-10 18:29:32 +02:00
<TD align=left><? if ($p > 0 && $xx > 15) { ?><A HREF="?zayvka=1&r=6&from=<?= ($p - 1); ?>">««
предыдущая страница</A><? } ?>
2022-12-19 22:22:19 +02:00
</TD>
<TD align=right><? if ($p * 15 - $xx > 0) { ?><A HREF="?zayvka=1&r=6&from=<?= ($p + 1); ?>">
2023-01-10 18:29:32 +02:00
следующая страница »»</A><? } ?>
2022-12-19 22:22:19 +02:00
</TD>
</TR>
</TABLE>
<?
} elseif ($r == 7) {
2023-01-10 18:29:32 +02:00
//завершенные
2022-12-19 22:22:19 +02:00
$btl = '';
$dt = time();
if (isset($_GET['logs2'])) {
$dt = round((int)$_GET['logs2']);
}
$dt = strtotime(date('d F Y', $dt) . ' 00:00:00');
$slogin = $this->u->info['login'];
if (isset($_GET['filter'])) {
$slogin = $_GET['filter'];
}
if (isset($_POST['filter'])) {
$slogin = $_POST['filter'];
}
$slogin = str_replace('"', '', $slogin);
$slogin = str_replace("'", '', $slogin);
$slogin = str_replace('\\', '', $slogin);
$see = '<TABLE width=100% cellspacing=0 cellpadding=0><TR>
2023-01-10 18:29:32 +02:00
<TD valign=top> <A HREF="?filter=' . $slogin . '&zayvka=1&r=7&logs2=' . ($dt - 86400) . '">« Предыдущий день</A></TD>
<TD valign=top align=center><H3>Записи о завершенных боях за ' . date('d.m.Y', $dt) . '</H3></TD>
<TD valign=top align=right><A HREF="?filter=' . $slogin . '&zayvka=1&r=7&logs2=' . ($dt + 86400) . '">Следующий день »</A> </TD>
2022-12-19 22:22:19 +02:00
</TR><TR><TD colspan=3 align=center>
<form method="POST" action="main.php?zayvka=1&r=7&rnd=' . $code . '">
2023-01-10 18:29:32 +02:00
Показать только бои персонажа: <INPUT TYPE=text NAME=filter value="' . $slogin . '"> за <INPUT TYPE=text NAME=logs size=12 value="' . date(
2022-12-19 22:22:19 +02:00
'd.m.Y', $dt
2023-01-10 18:29:32 +02:00
) . '"> <INPUT class="btn" TYPE=submit value="фильтр!">
2022-12-19 22:22:19 +02:00
</form>
</TD>
</TR></TABLE>';
$usr = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login`,`level`,`city` FROM `users` WHERE `login` = "' . mysql_real_escape_string(
$slogin
) . '" LIMIT 1'
)
);
if (isset($usr['id'])) {
$tms = $dt;
$tmf = $dt + 86400;
$sp = mysql_query(
'SELECT * FROM `battle_last` WHERE `time` >= ' . $tms . ' AND `time` < ' . $tmf . ' AND `uid` = "' . $usr['id'] . '" ORDER BY `id` DESC'
);
$j = 1;
$jk = 0;
$btl_lst = [];
while ($pl = mysql_fetch_array($sp)) {
$b = mysql_fetch_array(
mysql_query(
'SELECT * FROM `battle_end` WHERE `battle_id` = "' . $pl['battle_id'] . '" LIMIT 1'
)
);
$tm = '';
if (isset($b['id'])) {
$tms = [];
$ts = [];
$spi = mysql_query(
'SELECT * FROM `battle_last` WHERE `battle_id` = "' . $pl['battle_id'] . '"'
);
while ($pli = mysql_fetch_array($spi)) {
if (!isset($tms[$pli['team']])) {
$ts[count($ts)] = $pli['team'];
}
$tms[$pli['team']][count($tms[$pli['team']])] = $pli;
}
$k = 0;
while ($k < count($ts)) {
$g = $ts[$k];
$h = 0;
$tm2 = '';
while ($h < count($tms[$g])) {
if ($tms[$g][$h]['uid'] > 0) {
if ($tms[$g][$h]['align'] > 0) {
$tm2 .= '<img src="https://img.new-combats.com/i/align/align' . $tms[$g][$h]['align'] . '.gif">';
}
$tm2 .= '<b>' . $tms[$g][$h]['login'] . '</b> [' . $tms[$g][$h]['lvl'] . ']<a href="info/' . $tms[$g][$h]['uid'] . '" target="_blank"><img src="https://img.new-combats.com/i/inf_capitalcity.gif"></a>, ';
}
$h++;
}
$tm2 = rtrim($tm2, ', ');
$btlg = mysql_fetch_array(
mysql_query(
'SELECT `id`,`team_win` FROM `battle` WHERE `id` = "' . $pl['battle_id'] . '" LIMIT 1'
)
);
if (isset($btlg['id']) && $g == $btlg['team_win']) {
2023-01-10 18:29:32 +02:00
$tm2 .= ' <img width="20" height="20" src="https://img.new-combats.com/i/flag.gif" title="Победа"> ';
2022-12-19 22:22:19 +02:00
}
$tm .= $tm2;
if ($k + 1 < count($ts) && $tm2 != '' && $ts[$k + 1] > 0) {
2023-01-10 18:29:32 +02:00
$tm .= ' <font color=red><b>против</b></font> ';
2022-12-19 22:22:19 +02:00
}
$k++;
}
}
if (!isset($btl_lst[$b['id']])) {
$btl_lst[$b['id']] = true;
if ($tm == '') {
2023-01-10 18:29:32 +02:00
$tm = 'Данные поединка потеряны';
2022-12-19 22:22:19 +02:00
}
$jk++;
$btl .= $jk . '. <font class=date>' . date(
'd.m.y H:i', $pl['time']
2023-01-10 18:29:32 +02:00
) . '</font> ' . $tm . ' <A HREF="logs.php?log=' . $pl['battle_id'] . '&rnd=' . $code . '" target=_blank>»»</A><br>';
2022-12-19 22:22:19 +02:00
}
$j++;
}
}
if ($btl == '') {
2023-01-10 18:29:32 +02:00
$see .= '<CENTER><BR><BR><B>В этот день не было боев, или же, летописец опять потерял свитки...</B><BR><BR><BR></CENTER><HR><BR>';
2022-12-19 22:22:19 +02:00
} else {
$see .= $btl;
}
echo $see;
} else {
if ((!isset($_GET['new_group']) && !isset($_POST['groupClick'])) || isset($zi['id'])) {
2023-01-10 18:29:32 +02:00
echo '<BR><BR><CENTER><B>Выберите раздел</B></CENTER>';
2022-12-19 22:22:19 +02:00
}
}
} else {
if ((!isset($_GET['new_group']) && !isset($_POST['groupClick'])) || isset($zi['id'])) {
2023-01-10 18:29:32 +02:00
echo '<BR><BR><CENTER><B>Выберите раздел</B></CENTER>';
2022-12-19 22:22:19 +02:00
}
}
}
public function rzv($v)
{
$v = explode('.', $v);
if (!isset($v[1])) {
$v = $v[0] . '.0';
} else {
$v = $v[0] . '.' . $v[1];
}
return $v;
}
public function testzvu($id, $tm, $bt = 0)
{
$query = "select id from stats where zv = $id and team = $tm";
if ($bt) {
$query .= " and bot = 2";
}
return mysql_num_rows(mysql_query($query));
}
public function seeZv()
{
2022-12-30 21:03:37 +02:00
global $code, $zi;
2022-12-19 22:22:19 +02:00
if (isset($_GET['r']) && $this->zv_see == 1) {
$r = round(intval($_GET['r']));
if ($r >= 1 && $r <= 5) {
2023-01-10 18:29:32 +02:00
//Список заявок
2022-12-19 22:22:19 +02:00
$i = 0;
$cl = mysql_query(
'SELECT * FROM `zayvki` WHERE `razdel` = "' . mysql_real_escape_string(
$r
) . '" AND `start` = "0" AND `cancel` = "0" AND `time` > "' . (time(
) - 60 * 60 * 2) . '" /*AND `city` = "' . $this->u->info['city'] . '"*/ ORDER BY `id` DESC'
);
$zvb = '';
while ($pl = mysql_fetch_array($cl)) {
if ($pl['razdel'] == 5) {
if ($pl['min_lvl_1'] < 2) {
$pl['min_lvl_1'] = 2;
}
if ($pl['max_lvl_1'] > 21) {
$pl['max_lvl_1'] = 21;
}
$tm = '';
$tmStart = floor(($pl['time'] + $pl['time_start'] - time()) / 6) / 10;
if ((($pl['time'] + $pl['time_start']) / 10) != (int)(($pl['time'] + $pl['time_start']) / 10)) {
$pl['time'] = ceil($pl['time'] / 60) * 60;
mysql_query(
'UPDATE `zayvki` SET `time` = "' . $pl['time'] . '" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
);
}
$tmStart = $this->rzv($tmStart);
$users = mysql_query(
'SELECT `u`.`id`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`u`.`admin`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON `u`.`id` = `st`.`id` WHERE `st`.`zv` = "' . $pl['id'] . '"'
);
$col_p = mysql_fetch_array(
mysql_query('SELECT COUNT(*) FROM `stats` WHERE `zv` = "' . $pl['id'] . '"')
);
$cols = $col_p[0];
while ($s = mysql_fetch_array($users)) {
$tm .= $this->u->microLogin($s['id'], 1) . ', ';
}
$rad = '';
$tm = rtrim($tm, ', ');
if (!isset($zi['id']) && $this->u->room['zvsee'] == 0 && $this->u->info['inTurnirnew'] == 0) {
$rad = '<input type="radio" name="btl_go" id="btl_go' . $pl['id'] . '" value="' . $pl['id'] . '"> ';
}
$n1tv = '';
$unvs = '';
if ($pl['invise'] == 1) {
2023-01-10 18:29:32 +02:00
//невидимый бой
$tm = '<i>невидимый</i>';
2022-12-19 22:22:19 +02:00
$unvs = 0;
$usrszv = '';
//if( $this->u->info['admin'] > 0 ) {
$spzm = mysql_query(
'SELECT `id`,`team` FROM `stats` WHERE `zv` = "' . $pl['id'] . '" AND `id` != "' . $pl['creator'] . '"'
);
while ($plzm = mysql_fetch_array($spzm)) {
if ($this->u->info['admin'] > 0 || ($this->u->info['align'] > 1 && $this->u->info['align'] < 2) || ($this->u->info['align'] > 3 && $this->u->info['align'] < 4)) {
$usrszv .= ',' . $this->u->microLogin($plzm['id'], 1) . '';
}
$unvs++;
}
//}
$tm = '<font color=grey><span style="color:maroon">' . $this->u->microLogin(
$pl['creator'], 1
) . '</span>' . $usrszv . '</font> - ' . $tm;
2023-01-10 18:29:32 +02:00
$unvs = ' Участников: ' . (1 + $unvs) . ' чел. ';
$n1tv = ' <img src="https://img.new-combats.com/i/fighttypehidden0.gif" title="Невидимый">';
2022-12-19 22:22:19 +02:00
}
if ($pl['kingfight'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/king.gif" title="Призовой поединок">';
2022-12-19 22:22:19 +02:00
}
if ($pl['travmaChance'] == 100) {
2023-01-10 18:29:32 +02:00
$n1tv .= '<img src="https://img.new-combats.com/fighttype6.gif" title="Кровавый поединок">';
2022-12-19 22:22:19 +02:00
}
if ($pl['noatack'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/i/fighttypehidden0.gif" title="Закрытый бой">';
2022-12-19 22:22:19 +02:00
}
if ($pl['nobot'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/nobot.gif" title="В бой не вступают боты">';
2022-12-19 22:22:19 +02:00
}
if ($pl['fastfight'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/fastfight.gif" title="Для начала боя необходимо минимум 2 игрока">';
2022-12-19 22:22:19 +02:00
}
if ($pl['noeff'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/svitok4.png" width="20" height="20" title="Запрет на использование свитков восстановления НР и маны">';
2022-12-19 22:22:19 +02:00
}
if ($pl['arand'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/random.png" width="20" height="20" title="Распределение бойцов случайным образом">';
2022-12-19 22:22:19 +02:00
}
if ($pl['noart'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/noart.png" width="20" height="20" title="Бой без артефактов">';
2022-12-19 22:22:19 +02:00
}
if ($pl['otmorozok'] == 1) {
2023-01-10 18:29:32 +02:00
$n1tv .= ' <img src="https://img.new-combats.com/snow.gif" width="20" height="20" title="В бой могут вмешаться Отморозки">';
2022-12-19 22:22:19 +02:00
}
if ($pl['comment'] != '') {
$dl = '';
if (($moder['boi'] == 1 || $this->u->info['admin'] > 0) && $pl['dcom'] == 0) {
2023-01-10 18:29:32 +02:00
$dl .= ' (<a href="main.php?zayvka=1&r=5&delcom=' . $pl['id'] . '&key=' . $this->u->info['nextAct'] . '&rnd=' . $code . '">удалить комментарий</a>)';
2022-12-19 22:22:19 +02:00
if (isset($_GET['delcom']) && $_GET['delcom'] == $pl['id'] && $this->u->newAct(
$_GET['key']
) == true) {
mysql_query(
'UPDATE `zayvki` SET `dcom` = "' . $this->u->info['id'] . '" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
);
$pl['dcom'] = $this->u->info['id'];
}
}
if ($pl['dcom'] > 0) {
2023-01-10 18:29:32 +02:00
$dl = '<font color="grey"><i>Комментарий удален модератором</i></font>';
2022-12-19 22:22:19 +02:00
}
if ($pl['dcom'] > 0) {
if ($moder['boi'] == 1 || $this->u->info['admin'] > 0) {
2023-01-10 18:29:32 +02:00
$pl['comment'] = '[ Текст комментария : <font color="red">' . $pl['comment'] . '</font>] ';
2022-12-19 22:22:19 +02:00
} else {
$pl['comment'] = '';
}
}
$zv_comm = ' ' . $pl['comment'] . '' . $dl . ' ';
} else {
$zv_comm = '';
}
if ($pl['priz'] == 1) {
$imn = '';
if ($pl['min_lvl_1'] == 10) {
2023-01-10 18:29:32 +02:00
$imn .= ' им. Jora Kardan';
2022-12-19 22:22:19 +02:00
}
2023-01-10 18:29:32 +02:00
$zv_comm = ' <a href="https://new-combats.com/n/567/" target="_blank"><span style="color:#e65700;" title="Участники получают жетоны, чем больше призовых хаотов за сутки, тем больше падает жетонов за победу "><b>(Героическое Сражение' . $imn . ')</b></span></a>';
2022-12-19 22:22:19 +02:00
}
if ($r == 5 && ($pl['creator'] == $this->u->info['id']) && $cols < 2 && $pl['priz'] == 0) {
2023-01-10 18:29:32 +02:00
$del_q = ' <a href="main.php?zayvka=1&r=5&del_z_time=' . $pl['id'] . '&rnd=' . $code . '"><img src="https://img.new-combats.com/i/clear.gif" title="Удалить заявку" /></a>';
2022-12-19 22:22:19 +02:00
} else {
$del_q = '';
}
$lvldt = '';
if ($pl['min_lvl_1'] != $pl['max_lvl_2']) {
2023-01-10 18:29:32 +02:00
$lvldt .= '' . $pl['min_lvl_1'] . '-' . $pl['max_lvl_2'] . ' ур. ';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$lvldt .= '' . $pl['min_lvl_1'] . ' ур. ';
2022-12-19 22:22:19 +02:00
}
$lvldt .= (0 + $cols) . '/' . $pl['maxplayers'] . '';
$zvb .= $rad . '<font class="date">' . date(
'H:i', $pl['time']
2023-01-10 18:29:32 +02:00
) . '</font> <font color="green"><b><i>(' . $lvldt . ')</i></b></font> тип боя: <IMG SRC="https://img.new-combats.com/i/fighttype' . $pl['type'] . '.gif" WIDTH="20" HEIGHT="20" title="Хаотичный бой">' . $n1tv . ' (таймаут <b>' . ($pl['timeout'] / 60) . ' мин.</b>) <b>' . $zv_comm . '</b> <font class="dsc"><i><font color="green">(' . $unvs . 'Бой начнется через <B>' . $tmStart . '</B> мин.)</font> </font></i> ' . $mon . ' <i>Участники:</i> ' . $tm . ' ' . $del_q . '<br />';
2022-12-19 22:22:19 +02:00
} elseif ($pl['razdel'] == 4) {
if ($pl['min_lvl_1'] < 2) {
$pl['min_lvl_1'] = 2;
}
if ($pl['max_lvl_1'] > 21) {
$pl['max_lvl_1'] = 21;
}
if ($pl['min_lvl_2'] < 2) {
$pl['min_lvl_2'] = 2;
}
if ($pl['max_lvl_2'] > 21) {
$pl['max_lvl_2'] = 21;
}
2023-01-10 18:29:32 +02:00
//Заявки группового боя
2022-12-19 22:22:19 +02:00
$tm1 = '';
$tm2 = '';
$tmStart = floor(($pl['time'] + $pl['time_start'] - time()) / 6) / 10;
$tmStart = $this->rzv($tmStart);
2023-01-10 18:29:32 +02:00
//Персонаж в заявке, подключаем ему противника
//Ищем апонента для групповых
2022-12-19 22:22:19 +02:00
$xx2 = $this->testzvu($pl['id'], 2, 0);
if ($pl['bot2'] > 0 && $xx2 < $pl['tm2max']) {
2023-01-10 18:29:32 +02:00
//Добавляем ботов за вторую команду
2022-12-19 22:22:19 +02:00
$spb = mysql_query(
'SELECT `u`.*,`st`.* FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON `u`.`id` = `st`.`id` WHERE `st`.`bot` = 3 AND `u`.`level` = "' . $pl['min_lvl_2'] . '" AND `u`.`battle` = 0 AND `st`.`zv` = 0 LIMIT 100'
);
$logins_bot = [];
while ($plb = mysql_fetch_array($spb)) {
if ($xx2 < $pl['tm2max'] && rand(0, 10000) < 5000 && rand(0, 10000) > 5000) {
$bt = $this->u->addNewbot(0, '', $plb['id']);
$logins_bot = $bt['logins_bot'];
if ($bt > 0) {
mysql_query(
'UPDATE `stats` SET `zv` = "' . $pl['id'] . '",`team` = "2" WHERE `id` = "' . $bt . '" LIMIT 1'
);
$xx2++;
}
}
}
unset($plb, $spb, $logins_bot, $bt);
}
unset($xx2);
2023-01-10 18:29:32 +02:00
//генерируем команды
2022-12-19 22:22:19 +02:00
$users = mysql_query(
'SELECT `u`.`id`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`u`.`admin`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON `u`.`id` = `st`.`id` WHERE `st`.`zv` = "' . $pl['id'] . '"'
);
$tmc = [];
while ($s = mysql_fetch_array($users)) {
${'tm' . $s['team']} .= $this->u->microLogin($s['id'], 1) . ', ';
$tmc[$s['team']]++;
}
if ($tm1 == '') {
2023-01-10 18:29:32 +02:00
$tm2 = '<font color="#777"><i>группа пока не набрана</i></font>';
2022-12-19 22:22:19 +02:00
} else {
$tm1 = rtrim($tm1, ', ');
}
if ($tm2 == '') {
2023-01-10 18:29:32 +02:00
$tm2 = '<font color="#777"><i>группа пока не набрана</i></font>';
2022-12-19 22:22:19 +02:00
} else {
$tm2 = rtrim($tm2, ', ');
}
//
if ($pl['teams'] == 3) {
if ($tm3 == '') {
2023-01-10 18:29:32 +02:00
$tm2 = '<font color="#777"><i>группа пока не набрана</i></font>';
2022-12-19 22:22:19 +02:00
} else {
$tm3 = rtrim($tm3, ', ');
}
$ttl1 = '';
$ttl2 = '';
$ttl3 = '';
if ($pl['align1'] == 3) {
2023-01-10 18:29:32 +02:00
$ttl1 = 'Тьма';
2022-12-19 22:22:19 +02:00
} elseif ($pl['align1'] == 7) {
2023-01-10 18:29:32 +02:00
$ttl1 = 'Нейтралы';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$ttl1 = 'Свет';
2022-12-19 22:22:19 +02:00
}
if ($pl['align2'] == 3) {
2023-01-10 18:29:32 +02:00
$ttl2 = 'Тьма';
2022-12-19 22:22:19 +02:00
} elseif ($pl['align2'] == 7) {
2023-01-10 18:29:32 +02:00
$ttl2 = 'Нейтралы';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$ttl2 = 'Свет';
2022-12-19 22:22:19 +02:00
}
if ($pl['align3'] == 3) {
2023-01-10 18:29:32 +02:00
$ttl3 = 'Тьма';
2022-12-19 22:22:19 +02:00
} elseif ($pl['align3'] == 7) {
2023-01-10 18:29:32 +02:00
$ttl3 = 'Нейтралы';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$ttl3 = 'Свет';
2022-12-19 22:22:19 +02:00
}
$tm1 = '<img src="https://img.new-combats.com/i/align/align' . $pl['align1'] . '.gif"> ' . $ttl1 . ': ' . $tm1;
$tm2 = '<img src="https://img.new-combats.com/i/align/align' . $pl['align2'] . '.gif"> ' . $ttl2 . ': ' . $tm2;
$tm3 = '<img src="https://img.new-combats.com/i/align/align' . $pl['align3'] . '.gif"> ' . $ttl3 . ': ' . $tm3;
}
//
$rad = '';
if (!isset($zi['id']) && $this->u->room['zvsee'] == 0) {
$rad = '<input type="radio" name="groupClick" id="groupClick" value="' . $pl['id'] . '"> ';
}
if ($pl['comment'] != '') {
$dl = '';
if (($moder['boi'] == 1 || $this->u->info['admin'] > 0) && $pl['dcom'] == 0) {
2023-01-10 18:29:32 +02:00
$dl .= ' (<a href="main.php?zayvka=1&r=4&delcom=' . $pl['id'] . '&key=' . $this->u->info['nextAct'] . '&rnd=' . $code . '">удалить комментарий</a>)';
2022-12-19 22:22:19 +02:00
if (isset($_GET['delcom']) && $_GET['delcom'] == $pl['id'] && $this->u->newAct(
$_GET['key']
) == true) {
mysql_query(
'UPDATE `zayvki` SET `dcom` = "' . $this->u->info['id'] . '" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
);
$pl['dcom'] = $this->u->info['id'];
}
}
if ($pl['dcom'] > 0) {
2023-01-10 18:29:32 +02:00
$dl = '<font color="grey"><i>Комментарий удален модератором</i></font>';
2022-12-19 22:22:19 +02:00
}
if ($pl['dcom'] > 0) {
if ($moder['boi'] == 1 || $this->u->info['admin'] > 0) {
2023-01-10 18:29:32 +02:00
$pl['comment'] = '[ Текст комментария : <font color="red">' . $pl['comment'] . '</font>] ';
2022-12-19 22:22:19 +02:00
} else {
$pl['comment'] = '';
}
}
$zv_comm = '' . $pl['comment'] . '' . $dl . '';
} else {
$zv_comm = '';
}
if ($pl['teams'] == 3) {
2023-01-10 18:29:32 +02:00
$zv_comm .= ' <a href="https://new-combats.com/lib/turnir-sklonnostei/" target="_blank"><span style="color:#543666;" title="В турнире участвует три склонности: Свет, Тьма, Нейтралы. Победившая склонность получает особенное благословение на протяжении дня."><b>(Турнир трех склонностей)</b></span></a>';
2022-12-19 22:22:19 +02:00
}
$zvb .= $rad . '<font class="date">' . date('H:i', $pl['time']) . '</font> ';
$zvb .= '(<font color=green>' . (0 + $tmc[1]) . '/<b>' . $pl['tm1max'] . '</b></font>)';
$zvb .= ' ' . $tm1;
$zvb .= ' <font color="green"><b><i>(';
if ($pl['min_lvl_1'] == $pl['max_lvl_1']) {
$zvb .= $pl['min_lvl_1'];
} else {
$zvb .= $pl['min_lvl_1'] . '-' . $pl['max_lvl_1'];
}
2023-01-10 18:29:32 +02:00
$zvb .= ' ур.)</i></b></font>';
$zvb .= ' <i>против</i> ';
2022-12-19 22:22:19 +02:00
$zvb .= '(<font color=green>' . (0 + $tmc[2]) . '/<b>' . $pl['tm2max'] . '</b></font>)';
$zvb .= ' ' . $tm2;
$zvb .= ' <font color="green"><b><i>(';
if ($pl['min_lvl_2'] == $pl['max_lvl_2']) {
$zvb .= $pl['min_lvl_2'];
} else {
$zvb .= $pl['min_lvl_2'] . '-' . $pl['max_lvl_2'];
}
2023-01-10 18:29:32 +02:00
$zvb .= ' ур.)</i></b></font>';
$zvb .= ' тип боя: <IMG SRC="https://img.new-combats.com/i/fighttype' . $pl['type'] . '.gif" WIDTH="20" HEIGHT="20" title="Групповой бой"> (таймаут: <b>' . ($pl['timeout'] / 60) . ' мин.</b>) ';
2022-12-19 22:22:19 +02:00
$zvb .= ' <b>' . $zv_comm . '</b> ';
2023-01-10 18:29:32 +02:00
$zvb .= ' <font color="green"><i>(Бой начнется через <b>' . $tmStart . '</b>)</i></font> ' . $mon . '<BR>';
2022-12-19 22:22:19 +02:00
} elseif ($pl['razdel'] >= 1 && $pl['razdel'] <= 3) {
$uz = mysql_fetch_array(
mysql_query(
'SELECT `u`.`banned`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $pl['id'] . '" AND `st`.`team`="1" LIMIT 1'
)
);
if (isset($uz['id'])) {
$uze = mysql_fetch_array(
mysql_query(
'SELECT `u`.*,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $pl['id'] . '" AND `st`.`team` = "2" LIMIT 1'
)
);
$d1 = '';
2022-12-30 21:03:37 +02:00
if ($uz['id'] == $this->u->info['id'] || $uze['id'] == $this->u->info['id'] || $this->u->info['level'] <= Config::get('bot_level')) {
2022-12-19 22:22:19 +02:00
$d1 = 'disabled="disabled"';
}
if (!isset($uze['id']) || $this->u->info['zv'] == $pl['id']) {
$enm = '';
if (isset($uze['id'])) {
2023-01-10 18:29:32 +02:00
$enm = ' против ' . $this->u->microLogin($uze['id'], 1) . '';
2022-12-19 22:22:19 +02:00
}
if ($uz['banned'] > 0) {
$pl['id'] = 0;
$d1 = 'disabled="disabled"';
$zvb .= '<span style="text-decoration:line-through;">';
}
$dp1 = '';
if ($pl['money'] > 0) {
2023-01-10 18:29:32 +02:00
$dp1 = ' Бой на деньги, ставка: <b>' . $this->u->round2($pl['money']) . ' кр.</b>';
2022-12-19 22:22:19 +02:00
}
if ($this->u->room['zvsee'] == 0) {
$zvb .= '<input name="btl_go" ' . $d1 . ' type="radio" value="' . $pl['id'] . '" />';
}
$mbcom = '';
if ($pl['comment'] != '') {
$mbcom = ' <b>' . $pl['comment'] . '</b>';
}
$zvb .= '<font class="date">' . date(
'H:i', $pl['time']
) . '</font> ' . $this->u->microLogin(
$uz['id'], 1
2023-01-10 18:29:32 +02:00
) . ' ' . $enm . ' тип боя: <img src="https://img.new-combats.com/i/fighttype' . ($pl['type']) . '.gif"> ( таймаут <b>' . round(
2022-12-19 22:22:19 +02:00
$pl['timeout'] / 60
2023-01-10 18:29:32 +02:00
) . ' мин.</b>' . $dp1 . ' ' . $mon . ')' . $mbcom . '<br>';
2022-12-19 22:22:19 +02:00
if ($uz['banned'] > 0) {
$zvb .= '</span>';
}
}
}
}
$i++;
}
if ($i == 0) {
2023-01-10 18:29:32 +02:00
//заявок нет
2022-12-19 22:22:19 +02:00
if ($this->u->room['zvsee'] > 0) {
2023-01-10 18:29:32 +02:00
echo '<br><br><br><div align="center"><b>В данном разделе нет ни одной заявки</b></div>';
2022-12-19 22:22:19 +02:00
}
} else {
if (!isset($zi['id']) && $this->u->room['zvsee'] == 0) {
if ($_GET['r'] == 5) {
if (!$this->u->info['no_zv_key']) {
echo '<div style="float:left;"><form method="post" style="margin:0px;padding:0px;" action="main.php?zayvka=1&r=' . $r . '&rnd=' . $code . '"><br>
2023-01-10 18:29:32 +02:00
<img src="https://new-combats.com/show_reg_img/security2.php?id=' . time() . '" width="70" height="20"> Код подтверждения: <input style="width:40px;" type="text" value="" name="code21">
<input class="btn" name="" type="submit" value="Принять участие в мясорубке" /><br>' . $zvb . ' <img src="https://new-combats.com/show_reg_img/security2.php?id=' . time(
) . '" width="70" height="20"> Код подтверждения: <input style="width:40px;" type="text" value="" name="code22">
<input class="btn" style="margin-top:1px;" type="submit" value="Принять участие в мясорубке" />
2022-12-19 22:22:19 +02:00
</form></div>';
} else {
echo '<div style="float:left;"><form method="post" style="margin:0px;padding:0px;" action="main.php?zayvka=1&r=' . $r . '&rnd=' . $code . '"><br>
2023-01-10 18:29:32 +02:00
<input class="btn" name="" type="submit" value="Принять участие в мясорубке" /><br>' . $zvb . '
<input class="btn" style="margin-top:1px;" type="submit" value="Принять участие в мясорубке" /></form></div>';
2022-12-19 22:22:19 +02:00
}
} else {
2022-12-30 21:03:37 +02:00
if ($zvb != '' && $this->u->info['level'] > Config::get('bot_level')) {
2023-01-10 18:29:32 +02:00
echo '<div style="float:left;"><form method="post" style="margin:0px;padding:0px;" action="main.php?zayvka=1&r=' . $r . '&rnd=' . $code . '"><br><input class="btn" name="" type="submit" value="Принять вызов" /><br>' . $zvb . '<input class="btn" style="margin-top:1px;" type="submit" value="Принять вызов" /></form></div>';
2022-12-19 22:22:19 +02:00
} else {
echo '<div style="float:left;">' . $zvb . '</div>';
}
}
} else {
echo $zvb;
}
}
}
}
}
public function go($id)
{
global $zi;
$filter = new Filter();
if (isset($zi['id'])) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не можете принять бой. Сначала отзовите свою заявку.';
2022-12-19 22:22:19 +02:00
} else {
if ($this->u->info['battle'] == 0 && $this->u->info['inTurnirnew'] == 0) {
$z = mysql_fetch_array(
mysql_query(
'SELECT * FROM `zayvki` WHERE `id`="' . mysql_real_escape_string(
intval($id)
) . '" /*AND `city` = "' . $this->u->info['city'] . '"*/ AND `start` = "0" AND `cancel` = "0" AND `time` > "' . (time(
) - 60 * 60 * 2) . '" LIMIT 1'
)
);
if (isset($z['id'])) {
if ($z['razdel'] >= 1 && $z['razdel'] <= 3) {
2023-01-10 18:29:32 +02:00
//новички, физы, договорные
2022-12-19 22:22:19 +02:00
$uz1 = mysql_fetch_array(
mysql_query(
'SELECT `u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $z['id'] . '" AND `st`.`team`="1" LIMIT 1'
)
);
if (isset($uz1['id'])) {
$uz2 = mysql_fetch_array(
mysql_query(
'SELECT `u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $z['id'] . '" AND `st`.`team`="2" LIMIT 1'
)
);
if ($this->testTravm() == 1 && $z['type'] != 1) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы травмированы. С такими увечьями доступны кулачные бои.';
2022-12-19 22:22:19 +02:00
$az = 0;
} elseif ($this->testTravm() == 2) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы травмированы. С такими увечьями невозможно сражаться.';
2022-12-19 22:22:19 +02:00
$az = 0;
} elseif ($this->u->info['hpNow'] < $this->u->stats['hpAll'] / 100 * 30 && ($z['razdel'] >= 1 || $z['razdel'] <= 3)) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы еще слишком ослаблены чтобы начать новый бой';
2022-12-19 22:22:19 +02:00
$az = 0;
} elseif ($uz1['clan'] == $this->u->info['clan'] && $this->u->info['clan'] != 0 && $this->u->info['admin'] == 0 && true == false) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не можете сражаться против сокланов';
2022-12-19 22:22:19 +02:00
} elseif ($z['withUser'] != '' && $filter->mystr($this->u->info['login']) != $filter->mystr(
$z['withUser']
) && $z['razdel'] == 3) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не можете принять эту заявку';
2022-12-19 22:22:19 +02:00
} elseif ($z['money'] > 0 && $z['money'] > $this->u->info['money']) {
2023-01-10 18:29:32 +02:00
$this->error = 'У Вас недостаточно денег, чтобы принять эту заявку';
2022-12-19 22:22:19 +02:00
} elseif ($this->u->stats['hpNow'] < ceil($this->u->stats['hpMax'] / 100 * 30)) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы слишком ослаблены, восстановитесь';
2022-12-19 22:22:19 +02:00
} elseif (!isset($uz2['id'])) {
$upd = mysql_query(
'UPDATE `stats` SET `zv` = "' . $z['id'] . '",`team` = "2" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1'
);
if ($upd) {
$ca = '';
if ($uz1['clan'] != 0) {
$pc = mysql_fetch_array(
mysql_query(
'SELECT * FROM `clan` WHERE `id`="' . $uz1['clan'] . '" LIMIT 1'
)
);
if (isset($pc['id'])) {
$pc['img'] = $pc['name_mini'] . '.gif';
$ca = '<img title="' . $pc['name'] . '" src="https://img.new-combats.com/i/clan/' . $pc['name_mini'] . '.gif">';
}
}
if ($uz1['align'] != 0) {
$ca = '<img src="https://img.new-combats.com/i/align/align' . $uz1['align'] . '.gif">' . $ca;
}
2023-01-10 18:29:32 +02:00
$this->error = 'Ожидаем подтверждения боя от ' . $ca . ' ' . $uz1['login'] . ' [' . $uz1['level'] . ']<a href="info/' . $uz1['id'] . '" target="_blank"><img src="https://img.new-combats.com/i/inf_capitalcity.gif"></a>';
2022-12-19 22:22:19 +02:00
$sa = '';
if ($this->u->info['sex'] == 2) {
2023-01-10 18:29:32 +02:00
$sa = 'а ';
2022-12-19 22:22:19 +02:00
}
2023-01-10 18:29:32 +02:00
$text = ' [login:' . $this->u->info['login'] . '] принял' . $sa . ' вашу заявку на бой.[reflesh_main_zv_priem:' . $this->u->info['id'] . ']';
2022-12-19 22:22:19 +02:00
mysql_query(
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $uz1['city'] . "','','','" . $uz1['login'] . "','" . $text . "','" . time(
) . "','6','0')"
);
$zi = $z;
$this->u->info['zv'] = $z['id'];
$this->u->info['team'] = 2;
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Невозможно принять заявку.';
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Заявку уже кто-то принял до вас.';
2022-12-19 22:22:19 +02:00
}
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Заявка на бой заблокирована.';
2022-12-19 22:22:19 +02:00
}
} elseif ($z['razdel'] == 4 && $this->u->info['level'] > 1) {
$tm = 0;
2023-01-10 18:29:32 +02:00
//групповые
2022-12-19 22:22:19 +02:00
if (isset($_GET['tm1'])) {
$tm = 1;
} elseif (isset($_GET['tm2'])) {
$tm = 2;
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Что-то здесь не так';
2022-12-19 22:22:19 +02:00
}
if ($tm != 0) {
$t1 = $tm;
$t2 = 1;
$tmmax = 0;
if ($tm == 1) {
$t2 = 2;
}
$cl111 = mysql_query(
'SELECT `u`.`clan`,`st`.`team`,`st`.`id`,`st`.`zv` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv` = "' . $z['id'] . '" LIMIT 200'
);
$cln = 0;
while ($pc111 = mysql_fetch_array($cl111)) {
if ($pc111['clan'] == $this->u->info['clan'] && $this->u->info['clan'] != 0 && $pc111['team'] == $t2) {
$cln++;
}
if ($pc111['team'] == $t1) {
$tmmax++;
}
}
if ($cln > 0) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не можете сражаться против сокланов';
2022-12-19 22:22:19 +02:00
} elseif ($z['bot2'] == 1 && $t1 == 2) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не можете сражаться на стороне ботов';
2022-12-19 22:22:19 +02:00
} elseif ($z['money3'] > 0 && $z['money3'] > $this->u->info['money3']) {
2023-01-10 18:29:32 +02:00
$this->error = 'У Вас недостаточно денег, чтобы принять эту заявку';
2022-12-19 22:22:19 +02:00
} elseif (($z['money'] > 0 || $z['money3'] > 0) && $this->u->info['level'] < 4) {
2023-01-10 18:29:32 +02:00
$this->error = 'Бои на деньги проводятся с 4-го уровня';
2022-12-19 22:22:19 +02:00
} elseif ($z['tm' . $t1 . 'max'] > $tmmax) {
if ($z['min_lvl_' . $t1] > $this->u->info['level'] || $z['max_lvl_' . $t1] < $this->u->info['level']) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не подходите по уровню, за эту команду могут зайти персонажи ' . $z['min_lvl_' . $t1] . ' - ' . $z['max_lvl_' . $t1] . ' уровня';
2022-12-19 22:22:19 +02:00
} elseif ($this->u->stats['hpNow'] < ceil($this->u->stats['hpMax'] / 100 * 30)) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы слишком ослаблены, восстановитесь';
2022-12-19 22:22:19 +02:00
} else {
$upd = mysql_query(
'UPDATE `stats` SET `zv` = "' . $z['id'] . '",`team` = "' . mysql_real_escape_string(
(int)$t1
) . '" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1'
);
if (!$upd) {
2023-01-10 18:29:32 +02:00
$this->error = 'Ошибка приема заявки...';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы приняли групповой бой...';
2022-12-19 22:22:19 +02:00
$zi = $z;
$this->u->info['zv'] = $z['id'];
$this->u->info['team'] = mysql_real_escape_string((int)$t1);
}
}
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Группа уже набрана (' . ($z['tm' . $t1 . 'max'] - $tmmax) . ')';
2022-12-19 22:22:19 +02:00
}
}
} elseif ($z['razdel'] == 5 && $this->u->info['level'] > 1) {
2023-01-10 18:29:32 +02:00
//хаотичные
2022-12-19 22:22:19 +02:00
$col_p = mysql_fetch_array(
mysql_query('SELECT COUNT(*) FROM `stats` WHERE `zv` = "' . $z['id'] . '"')
);
$cols = $col_p[0];
if ($cols >= $z['maxplayers']) {
2023-01-10 18:29:32 +02:00
$this->error = 'Достигнут максимальный предел участников в этой заявке!';
2022-12-19 22:22:19 +02:00
} elseif ($this->testTravm() == 1 && $z['k'] != 1) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы травмированы. С такими увечьями доступны кулачные бои.';
2022-12-19 22:22:19 +02:00
} elseif ($this->testTravm() == 2) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы травмированы. С такими увечьями невозможно сражаться.';
2022-12-19 22:22:19 +02:00
} elseif (!$this->u->info['no_zv_key'] && (!isset($_SESSION['code2']) || $_SESSION['code2'] < 1 || ($_POST['code21'] != $_SESSION['code2'] && $_POST['code22'] != $_SESSION['code2']))) {
2023-01-10 18:29:32 +02:00
$this->error = 'Неправильный код подтверждения';
2022-12-19 22:22:19 +02:00
} elseif ($z['min_lvl_1'] > $this->u->info['level'] || $z['max_lvl_1'] < $this->u->info['level']) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы не подходите по уровню, за эту команду могут зайти персонажи ' . $z['min_lvl_1'] . ' - ' . $z['max_lvl_1'] . ' уровня';
2022-12-19 22:22:19 +02:00
} elseif ($this->u->stats['hpNow'] < ceil($this->u->stats['hpMax'] / 100 * 30)) {
2023-01-10 18:29:32 +02:00
$this->error = 'Вы слишком ослаблены, восстановитесь';
2022-12-19 22:22:19 +02:00
} elseif ($z['money'] > 0 && $this->u->info['level'] < 4) {
2023-01-10 18:29:32 +02:00
$this->error = 'Бои на деньги проводятся с 4-го уровня';
2022-12-19 22:22:19 +02:00
} else {
$t1 = 0;
if ($z['type'] == 33) {
2023-01-10 18:29:32 +02:00
//============================================================================================= Призовые
2022-12-19 22:22:19 +02:00
Db::sql(
2023-01-06 16:57:25 +02:00
'insert into users (name, align, `real`, login, host_reg, pass, ip, ipreg, city, cityreg, room, timereg, mail, bithday, sex, fnq, battle, molch2, level)
values (?,?,1,?,0,?,?,?,?,?,422,unix_timestamp(),?,?,?,0,0,unix_timestamp() + 86400,8)',
2022-12-19 22:22:19 +02:00
[
$this->u->info['name'],
$this->u->info['align'],
$this->u->info['login'],
$this->u->info['pass'],
IP,
IP,
'capitalcity',
'capitalcity',
'haot@new-combats.com',
'01.01.1980',
$this->u->info['sex'],
]
);
$uidb = Db::lastInsertId();
Db::sql('update users set inUser = ? where id = ?', [$uidb, $this->u->info['id']]);
2023-01-10 18:29:32 +02:00
//тут классы
2022-12-19 22:22:19 +02:00
$sellclass = rand(1, 6);
$stmt1 = Db::prepare('update items_users set inOdet = ? where id = ?');
$stmt2 = Db::prepare(
'update items_users set `1price` = (select price_1 from items_shop where sid = 1 and items_shop.item_id = ?) where id = ?'
);
$stmt3 = Db::prepare(
'insert into stats (id, stats, ability, skills, exp, priems) values (?,?,-75,-9,100000,?)'
);
if ($sellclass == 1) {
2023-01-10 18:29:32 +02:00
//уворот класс 1
$this->add_effn($uidb, 8); // ловка
$this->add_effn($uidb, 20); // сокрушение
2022-12-19 22:22:19 +02:00
$items = [
1 => 525,
2 => 539,
3 => 523,
14 => 523,
4 => 290,
5 => 541,
7 => 633,
8 => 647,
9 => 680,
10 => 685,
11 => 685,
12 => 685,
13 => 1151,
16 => 707,
17 => 712,
];
foreach ($items as $slot => $itemId) {
$re = $this->u->addItem($itemId, $uidb);
$stmt1->execute([$slot, $re]);
$stmt2->execute([$itemId, $re]);
}
$stmt3->execute(
[
$uidb,
's1=21|s2=31|s3=16|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=10|a2=0|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0',
'193|8|217|221|6|213|14|220|141|232|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
]
);
2023-01-10 18:29:32 +02:00
//уворот класс закончен
2022-12-19 22:22:19 +02:00
} elseif ($sellclass == 2) {
2023-01-10 18:29:32 +02:00
//крит класс 2
$this->add_effn($uidb, 7); // инта
$this->add_effn($uidb, 20); // сокрушение
2022-12-19 22:22:19 +02:00
$items = [
1 => 527,
2 => 537,
3 => 567,
14 => 723,
4 => 291,
5 => 544,
7 => 626,
8 => 651,
9 => 683,
10 => 686,
11 => 686,
12 => 686,
13 => 706,
16 => 708,
17 => 717,
];
foreach ($items as $slot => $itemId) {
$re = $this->u->addItem($itemId, $uidb);
$stmt1->execute([$slot, $re]);
$stmt2->execute([$itemId, $re]);
}
$stmt3->execute(
[
$uidb,
's1=24|s2=20|s3=24|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=9|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'193|204|221|138|9|188|240|215|147|232|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
]
);
} elseif ($sellclass == 3) {
2023-01-10 18:29:32 +02:00
//танк класс 3
$this->add_effn($uidb, 1); // сила
$this->add_effn($uidb, 20); // сокрушение
2022-12-19 22:22:19 +02:00
$items = [
1 => 533,
2 => 536,
3 => 558,
14 => 722,
4 => 291,
5 => 545,
7 => 628,
8 => 654,
9 => 684,
10 => 689,
11 => 689,
12 => 689,
13 => 700,
16 => 710,
17 => 718,
];
foreach ($items as $slot => $itemId) {
$re = $this->u->addItem($itemId, $uidb);
$stmt1->execute([$slot, $re]);
$stmt2->execute([$itemId, $re]);
}
$stmt3->execute(
[
$uidb,
's1=42|s2=3|s3=3|s4=50|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=9|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'11|204|233|226|45|14|139|221|6|232|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
]
);
} elseif ($sellclass == 4) {
2023-01-10 18:29:32 +02:00
//топор класс 4
$this->add_effn($uidb, 1); // сила
$this->add_effn($uidb, 20); // сокрушение
2022-12-19 22:22:19 +02:00
$items = [
1 => 528,
2 => 538,
3 => 552,
14 => 552,
4 => 291,
5 => 543,
7 => 627,
8 => 653,
9 => 681,
10 => 687,
11 => 687,
12 => 687,
13 => 320,
16 => 709,
17 => 716,
];
foreach ($items as $slot => $itemId) {
$re = $this->u->addItem($itemId, $uidb);
$stmt1->execute([$slot, $re]);
$stmt2->execute([$itemId, $re]);
}
$stmt3->execute(
[
$uidb,
's1=43|s2=15|s3=15|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=10|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0',
'193|139|49|14|6|217|221|204|147|45|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
]
);
} elseif ($sellclass == 5) {
2023-01-10 18:29:32 +02:00
//м земля класс 5
//кастим эфекты
$this->add_effn($uidb, 9); // интелект
$this->add_effn($uidb, 32); // Холодный разум
$this->add_effn($uidb, 54); // Маг уселок земля
$this->add_effn($uidb, 439); // Маг уселок
2022-12-19 22:22:19 +02:00
$items = [
1 => 531,
2 => 534,
3 => 1026,
4 => 291,
5 => 548,
7 => 629,
8 => 657,
9 => 674,
10 => 692,
11 => 692,
12 => 692,
13 => 699,
16 => 711,
17 => 714,
];
foreach ($items as $slot => $itemId) {
$re = $this->u->addItem($itemId, $uidb);
$stmt1->execute([$slot, $re]);
$stmt2->execute([$itemId, $re]);
}
$stmt3->execute(
[
$uidb,
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=0|mg3=0|mg4=6|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'208|117|170|44|113|128|122|249|246|147|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
]
);
} elseif ($sellclass == 6) {
2023-01-10 18:29:32 +02:00
//м воздух 6
//кастим эфекты
$this->add_effn($uidb, 9); // интелект
$this->add_effn($uidb, 32); // Холодный разум
$this->add_effn($uidb, 53); // Маг уселок воздух
$this->add_effn($uidb, 439); // Маг уселок
2022-12-19 22:22:19 +02:00
$items = [
1 => 531,
2 => 534,
3 => 1026,
4 => 291,
5 => 548,
7 => 629,
8 => 658,
9 => 675,
10 => 693,
11 => 693,
12 => 693,
13 => 699,
16 => 711,
17 => 714,
];
foreach ($items as $slot => $itemId) {
$re = $this->u->addItem($itemId, $uidb);
$stmt1->execute([$slot, $re]);
$stmt2->execute([$itemId, $re]);
}
$stmt3->execute(
[
$uidb,
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=6|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'208|93|98|260|39|263|257|104|30|147|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0',
]
);
}
2023-01-10 18:29:32 +02:00
// классы кончились
//кастим эфекты
2022-12-19 22:22:19 +02:00
2023-01-10 18:29:32 +02:00
$this->add_effn($uidb, 37);//нектар
$this->add_effn($uidb, 38);//нектар отрицания
$this->add_effn($uidb, 283);//Бутерброд -Завтрак Рыцаря- толстый
$this->add_effn($uidb, 25);//Защита от оружия
$this->add_effn($uidb, 296);//Жажда Жизни +6
2022-12-19 22:22:19 +02:00
Db::sql('update users set money = -3000, money2 = 0 where id = ?', [$uidb]);
2023-01-10 18:29:32 +02:00
//Корекция хп в призовых
2022-12-19 22:22:19 +02:00
Db::sql('update stats set hpNow = hpAll, mpNow = mpAll where id = ?', [$uidb]);
$this->u->info['id'] = $uidb;
//=============================================================================================
2023-01-10 18:29:32 +02:00
$this->error = 'Вы вселены в клона 8го левела'; //ТУТ вселяем в клона призовые хаоты
2022-12-19 22:22:19 +02:00
echo '<script>location="main.php?battle_id=' . $btl_id . '";</script>';
}
$this->u->info['login2'] = '';
$blnc = $this->u->stats['reting'];
$z['tm' . $t1] += $blnc;
$upd = Db::run(
'update stats set zv = ?, team = ? where id = ?',
[$z['id'], $t1, $this->u->info['id']]
);
if ($upd) {
Db::sql(
'update users set login2 = ? where id = ?',
[$this->u->info['login2'], $this->u->info['id']]
);
Db::sql(
'update zayvki set tm1 = ?, tm2 = ? where id = ?',
[$z['tm1'], $z['tm2'], $z['id']]
);
$zi = $z;
$this->u->info['zv'] = $z['id'];
$this->u->info['team'] = $t1;
2023-01-10 18:29:32 +02:00
$this->error = 'Вы приняли хаотичный бой...';
2022-12-19 22:22:19 +02:00
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Ошибка приема заявки...';
2022-12-19 22:22:19 +02:00
}
}
}
} else {
2023-01-10 18:29:32 +02:00
$this->error = 'Заявка на бой не найдена.';
2022-12-19 22:22:19 +02:00
}
}
}
}
}