2022-12-19 20:22:19 +00:00
< ? php
2022-12-30 19:03:37 +00:00
use Core\Config ;
use Core\Db ;
2022-12-19 20:22:19 +00:00
class FightRequest
{
2023-01-10 16:29:32 +00:00
private array $z1n = [ 4 => 'групповые' , 5 => 'хаотичные' ];
private array $z2n = [ 4 => 'группового' , 5 => 'хаотичного' ];
private bool $backTest = false ; // Для проверок хаотических поединков.
2022-12-30 19:03:37 +00:00
private static bool $bcktst ;
private User $u ;
private ? int $zv_see = null ;
public string $test_s = '' ;
public string $error = '' ;
2022-12-19 20:22:19 +00:00
/**
2023-01-10 16:29:32 +00:00
* Заявки на бой .
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> test (); //проверяем заявки
2022-12-19 20:22:19 +00: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 19:03:37 +00:00
Db :: sql (
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Проверяем турниры в этом городе
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Начало турнира
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Осталось 5 мин.
$chat -> sendsys ( '<b style="color: red;">Турниры:</b> До начала турнира осталось 5 минут.' );
2022-12-19 20:22:19 +00:00
$stmt -> execute ([ 1 , $pl [ 'id' ]]);
} elseif ( floor (( $pl [ 'time' ] - time ()) / 60 ) <= 10 && $pl [ 'chat' ] > 2 ) {
2023-01-10 16:29:32 +00:00
//Осталось 10 мин.
$chat -> sendsys ( '<b style="color: red;">Турниры:</b> До начала турнира осталось 10 минут.' );
2022-12-19 20:22:19 +00:00
$stmt -> execute ([ 2 , $pl [ 'id' ]]);
} elseif ( floor (( $pl [ 'time' ] - time ()) / 60 ) <= 15 && $pl [ 'chat' ] > 3 ) {
2023-01-10 16:29:32 +00:00
//Осталось 15 мин.
$chat -> sendsys ( '<b style="color: red;">Турниры:</b> До начала турнира осталось 15 минут.' );
2022-12-19 20:22:19 +00:00
$stmt -> execute ([ 3 , $pl [ 'id' ]]);
}
}
if ( $pl [ 'status' ] != 0 || $pl [ 'time' ] >= time ()) {
continue ;
}
if ( $pl [ 'users_in' ] > 1 ) {
2023-01-10 16:29:32 +00:00
//Начало турнира
2022-12-30 19:03:37 +00:00
Db :: sql ( 'update turnirs set time = unix_timestamp() + ?, status = 1 where id = ?' , [ $pl [ 'time3' ], $pl [ 'id' ]]);
2022-12-19 20:22:19 +00: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 14:57:25 +00: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 20:22:19 +00: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 16:29:32 +00:00
//Добавляем эффекты скорость регена и запрет передвижения
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
//Отмена турнира
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Проверяем хаотичные и групповые бои в этом городе
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//группы
2022-12-19 20:22:19 +00:00
$this -> testGroup ( $i , $pl , $toChat , $toWhere );
} elseif ( $pl [ 'razdel' ] == 5 ) {
2023-01-10 16:29:32 +00:00
//fixme ёбаный костыль!
2022-12-19 20:22:19 +00:00
$this -> testCronChaotic ( $pl , $toChat , $toWhere );
return ;
2023-01-10 16:29:32 +00:00
//хаоты
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//группа не набрана
$this -> cancelGroup ( $pl , $toChat , ' Беда!' );
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
//Начинаем поединок
2022-12-19 20:22:19 +00:00
$this -> startBattle ( $pl [ 'id' ], $toChat . '|-|' . $toWhere );
}
}
}
}
}
2023-01-10 16:29:32 +00:00
/** Проверяем заявки
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Проверяем турниры в этом городе
2022-12-19 20:22:19 +00:00
$sp = mysql_query ( 'SELECT * FROM `turnirs` WHERE `status` != "-1"' );
while ( $pl = mysql_fetch_array ( $sp )) {
2023-01-10 16:29:32 +00:00
//Начало турнира
2022-12-19 20:22:19 +00:00
if ( $pl [ 'status' ] != 0 || $pl [ 'time' ] >= time ()) {
continue ;
}
if ( $pl [ 'users_in' ] > 1 ) {
2023-01-10 16:29:32 +00:00
//Начало турнира
2022-12-19 20:22:19 +00: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 14:57:25 +00: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 20:22:19 +00: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 16:29:32 +00:00
//Добавляем эффекты скорость регена и запрет передвижения
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
//Отмена турнира
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//группа не набрана
2022-12-19 20:22:19 +00:00
$this -> cancelGroup ( $zayavka , $toChat );
} else {
2023-01-10 16:29:32 +00:00
//Начинаем поединок
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//группа не набрана
//Добавляем недостающих игроков
if ( ! $zayavka [ 'nobot' ]) { // Если нет запрета на ботов.
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$text = ' Н е удалось начать поединок по причине: Группа не набрана. (' . $zayavka [ 'id' ] . ': 0 ' . $levelToExp [ $zayavka [ 'min_lvl_1' ]] . '-' . $levelToExp [ $zayavka [ 'max_lvl_1' ] + 1 ] . ')' ;
2022-12-19 20:22:19 +00:00
$chat -> sendsys ( $text , 'Merlin' );
2023-01-10 16:29:32 +00:00
$this -> cancelGroup ( $zayavka , $toChat , ' Боты проспали.' );
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Начинаем поединок
2022-12-19 20:22:19 +00:00
$this -> startBattle ( $zayavka [ 'id' ], $toChat . '|-|' . $toWhere );
}
}
2023-01-10 16:29:32 +00:00
/** Проверяем хаотичные и групповые бои в этом городе
2022-12-19 20:22:19 +00: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 " > & nbsp ; < font > ' . $this->u->microLogin($this->u->info[' id '], 1) . ' </ font > & nbsp ; </ td >
< td valign = " middle " width = " 120 " >
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
$this -> u -> stats [ 'hpNow' ]
) . '/' . $this -> u -> stats [ 'hpAll' ] . ' </ div >
2023-01-10 16:29:32 +00: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 20:22:19 +00: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 / 1 x1 . gif " height= " 9 " width= " 1 " ></div>
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
' ;
if ( $this -> u -> stats [ 'mpAll' ] > 0 ) {
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
$this -> u -> stats [ 'mpNow' ]
) . '/' . $this -> u -> stats [ 'mpAll' ] . ' </ div >
2023-01-10 16:29:32 +00: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 20:22:19 +00: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 / 1 x1 . gif " height= " 9 " width= " 1 " ></div>
2023-01-10 16:29:32 +00:00
< div title = " Уровень маны " class = " hp_none " style = " position:absolute; top:0px; width:120px; height:10px; z-index:10; " ></ div > ' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Выдаем по 1 жетону
if ( $zv [ 'type' ] == 33 ) //Т У Т група не набранна удаляем персонажа и выдаем жетон
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$text = ' Н е удалось начать поединок по причине: Группа не набрана. Вы получаете Призовой Жетон (х 1)' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$text = ' Н е удалось начать поединок по причине: Группа не набрана!' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы уже выросли из ползунков ;)' ;
2022-12-19 20:22:19 +00:00
}
if (( $r == 4 || $r == 5 ) && $this -> u -> info [ 'level' ] < 2 ) {
$az = 0 ;
2023-01-10 16:29:32 +00:00
$this -> error = 'В ' . $this -> z1n [ $r ] . ' бои только с о второго уровня.' ;
2022-12-19 20:22:19 +00:00
}
if ( $this -> testTravm () == 1 && $_POST [ 'k' ] != 1 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями доступны кулачные бои.' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( $this -> testTravm () == 2 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями невозможно сражаться.' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( $this -> u -> info [ 'hpNow' ] < $this -> u -> stats [ 'hpAll' ] / 100 * 30 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы еще слишком ослаблены чтобы начать новый бой' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
}
if ( $this -> u -> info [ 'zv' ] > 0 ) {
$az = 0 ;
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы уже находите в заявке.' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//хаотичный бой
2022-12-19 20:22:19 +00: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 17:26:14 +00:00
$nz [ 'comment' ] = htmlspecialchars ( $nz [ 'comment' ], null );
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Генерируем уровни союзника
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//кулачный бой
2022-12-19 20:22:19 +00:00
$nz [ 'type' ] = 1 ;
}
if (( int ) $_POST [ 'k' ] == 2 ) {
2023-01-10 16:29:32 +00:00
//кровавый бой
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Неправильный код подтверждения' ;
2022-12-19 20:22:19 +00:00
$gad = 0 ;
}
} else {
$gad = 0 ;
2023-01-10 16:29:32 +00:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 20:22:19 +00:00
}
} elseif ( $r == 4 && $this -> u -> info [ 'level' ] > 1 ) {
2023-01-10 16:29:32 +00:00
//групповой бой
//здесь заносим и проверяем данные на гурпповой бой
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error .= 'Неверное кол-во союзников<br>' ;
2022-12-19 20:22:19 +00:00
$gad = 0 ;
}
$nz [ 'tm2max' ] = ( int ) $_POST [ 'nlogin2' ];
if ( $nz [ 'tm2max' ] < 1 || $nz [ 'tm2max' ] > 99 ) {
2023-01-10 16:29:32 +00:00
$this -> error .= 'Неверное кол-во противников<br>' ;
2022-12-19 20:22:19 +00:00
$gad = 0 ;
}
if ( $this -> testTravm () == 1 && $_POST [ 'k' ] != 1 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями доступны кулачные бои.' ;
2022-12-19 20:22:19 +00:00
$gad = 0 ;
} elseif ( $this -> testTravm () == 2 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями невозможно сражаться.' ;
2022-12-19 20:22:19 +00:00
$gad = 0 ;
} elseif ( $nz [ 'tm1max' ] + $nz [ 'tm2max' ] < 3 ) {
2023-01-10 16:29:32 +00:00
$this -> error .= 'Заявки 1 на 1 подаются в разделе физические или договорные бои<br>' ;
2022-12-19 20:22:19 +00:00
$gad = 0 ;
}
2023-01-10 16:29:32 +00:00
//Генерируем уровни союзника
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 20:22:19 +00:00
$gad = 0 ;
}
2023-01-10 16:29:32 +00:00
//Генерируем уровни противника
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//кулачный бой
2022-12-19 20:22:19 +00:00
$nz [ 'type' ] = 1 ;
}
if (( int ) $_POST [ 'k' ] == 2 ) {
2023-01-10 16:29:32 +00:00
//кровавый бой
2022-12-19 20:22:19 +00:00
$nz [ 'type' ] = 6 ;
$nz [ 'travmaChance' ] = 100 ;
}
} else {
$gad = 0 ;
2023-01-10 16:29:32 +00:00
$this -> error = 'Что-то не так...<br>' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Округляем время для кроны
2022-12-19 20:22:19 +00: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 17:26:14 +00:00
$nz [ 'comment' ] = htmlspecialchars ( $_POST [ 'commentfiz' ], null );
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Заявка на бой подана' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Ошибка: Заявка не подана!' ;
2022-12-19 20:22:19 +00:00
}
}
}
2023-01-10 16:29:32 +00:00
//тренеровочный бой
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Бои с монстрами, нежитью, клонами и прочими вурдалаками проводятся только для персонажей младше 8 уровня...<br>С о стороны посматривает Общий В р а г , ему явно что-то не понравилось...<br>' ;
2022-12-19 20:22:19 +00:00
} elseif ( $this -> u -> info [ 'hpNow' ] < $this -> u -> stats [ 'hpAll' ] / 100 * 30 && ( $r == 1 )) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы еще слишком ослаблены чтобы начать новый бой' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( $this -> u -> info [ 'align' ] == 2 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Хаосники не могут сражаться здесь' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( ! $bot ) {
echo '<br><font color=red>Cannot start battle (no prototype "ND0Clone")</font><br>' ;
} else {
2023-01-10 16:29:32 +00:00
//создаем поединок с ботом
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем данные о поединке
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем заявку, что бой начался
2022-12-19 20:22:19 +00:00
$this -> u -> info [ 'battle' ] = $btl_id ;
2023-01-10 16:29:32 +00:00
//Отправляем сообщение в чат всем бойцам
2023-01-28 02:24:37 +00:00
$this -> sendSysChatSound ();
2022-12-19 20:22:19 +00:00
die ( '<script>location="main.php?battle_id=' . $btl_id . '";</script>' );
} else {
$this -> error = 'Cannot start battle (no prototype "ABD0Clone")' ;
}
}
}
2023-01-28 02:24:37 +00:00
/**
* Звуковой пинг в чат ?
* @ todo убрать колхоз с условиями когда станет ясно как оно работает .
* @ return void
*/
private function sendSysChatSound ( string $to = '' , int $room = 0 )
{
$cmsg = new ChatMessage ();
if ( empty ( $to )) {
$cmsg -> setTo ( $this -> u -> info [ 'login' ]);
} else {
$cmsg -> setTo ( $to );
}
if ( empty ( $room )) {
$cmsg -> setRoom ( $this -> u -> info [ 'room' ]);
} else {
$cmsg -> setRoom ( $room );
}
$cmsg -> setCity ( $this -> u -> info [ 'city' ]);
$cmsg -> setType ( 11 );
$cmsg -> setSound ( 117 );
( new Chat ()) -> sendMsg ( $cmsg );
}
2023-01-10 16:29:32 +00:00
//тренеровочный бой
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Н е получилось начать поединок' ;
2022-12-19 20:22:19 +00:00
} elseif ( $this -> u -> info [ 'hpNow' ] < $this -> u -> stats [ 'hpAll' ] / 100 * 30 && ( $r >= 1 || $r <= 3 )) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы еще слишком ослаблены чтобы начать новый бой' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( $this -> u -> info [ 'align' ] == 2 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Хаосники не могут сражаться здесь' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( ! $bot ) {
echo '<br><font color=red>Cannot start battle (no prototype "ND0Clone")</font><br>' ;
} else {
2023-01-10 16:29:32 +00:00
//создаем поединок с ботом
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем данные о поединке
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем заявку, что бой начался
2022-12-19 20:22:19 +00:00
$this -> u -> info [ 'battle' ] = $btl_id ;
2023-01-10 16:29:32 +00:00
//Отправляем сообщение в чат всем бойцам
2023-01-28 02:24:37 +00:00
$this -> sendSysChatSound ();
2022-12-19 20:22:19 +00:00
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 16:29:32 +00:00
//начало группового или хаотичного боя
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$jj = $ii ; //счетчик c конца
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Т У Т старт боя
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Если бой кулачный, то снимаем вещи
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
} elseif ( $z [ 'type' ] == 51 ) { //Поединок без Е К Р вещей
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем данные о поединке
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем заявку, что бой начался
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Отправляем сообщение в чат всем бойцам
2023-01-28 02:24:37 +00:00
$this -> sendSysChatSound ( $vars [ 0 ], - 1 );
2022-12-19 20:22:19 +00:00
}
} elseif ( $z [ 'razdel' ] >= 1 && $z [ 'razdel' ] <= 3 ) {
2023-01-10 16:29:32 +00:00
//начало PvP
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем клона
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//создаем поединок
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем данные о поединке
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Если бой кулачный, то снимаем вещи
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//обновляем заявку, что бой начался
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//Отправляем сообщение в чат всем бойцам
2023-01-28 02:24:37 +00:00
$this -> sendSysChatSound ( $uz [ 'login' ]);
2022-12-19 20:22:19 +00:00
die ( '<script>location="main.php?battle_id=' . $btl_id . '";</script>' );
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Ошибка создания битвы.' ;
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы не можете начать поединок, вашу заявку никто не принял.' ;
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы не можете начать поединок.' ;
2022-12-19 20:22:19 +00: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' ])) {
2023-01-28 02:24:37 +00:00
$chat = new Chat ();
$cmsg = new ChatMessage ();
$cmsg -> setType ( 6 );
2022-12-19 20:22:19 +00:00
if ( $this -> u -> info [ 'team' ] == 1 ) {
2023-01-10 16:29:32 +00:00
//выкидываем из заявки + пишем сообщение в чат
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы отказали ' . $enemy [ 'login' ] . ' в поединке' ;
//отправляем сообщение в чат
2022-12-19 20:22:19 +00:00
$sa = '' ;
if ( $this -> u -> info [ 'sex' ] == 2 ) {
2023-01-10 16:29:32 +00:00
$sa = 'а ' ;
2022-12-19 20:22:19 +00:00
}
2023-01-28 02:24:37 +00:00
$cmsg -> setText ( ' [login:' . $this -> u -> info [ 'login' ] . '] отказал' . $sa . ' вам в поединке.' );
$cmsg -> setCity ( $enemy [ 'city' ]);
$cmsg -> setTo ( $enemy [ 'login' ]);
$chat -> sendMsg ( $cmsg );
2022-12-19 20:22:19 +00:00
}
} elseif ( $this -> u -> info [ 'id' ] == $enemy [ 'id' ] && $zi [ 'start' ] == 0 ) {
2023-01-10 16:29:32 +00:00
//выкидываем из заявки + пишем сообщение в чат
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы отозвали свой запрос на бой.' ;
//отправляем сообщение в чат
2022-12-19 20:22:19 +00:00
$sa = '' ;
if ( $this -> u -> info [ 'sex' ] == 2 ) {
2023-01-10 16:29:32 +00:00
$sa = 'а ' ;
2022-12-19 20:22:19 +00:00
}
2023-01-28 02:24:37 +00:00
$cmsg -> setText ( ' [login:' . $this -> u -> info [ 'login' ] . '] отозвал' . $sa . ' свой запрос на бой.' );
$cmsg -> setCity ( $uz [ 'city' ]);
$cmsg -> setTo ( $uz [ 'login' ]);
$chat -> sendMsg ( $cmsg );
2022-12-19 20:22:19 +00:00
}
$this -> u -> info [ 'zv' ] = 0 ;
$this -> u -> info [ 'team' ] = 0 ;
}
}
if ( $enemy [ 'bot' ] == 1 ) {
2023-01-10 16:29:32 +00:00
//удаляем бота , предметы и эффекты
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//удаляем заявку на бой
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы отозвали свою заявку' ;
2022-12-19 20:22:19 +00: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-28 02:24:37 +00:00
echo '<br><br><br><b><center>Подать заявку можно только в комнатах бойцовского клуба</center></b>' ;
2022-12-19 20:22:19 +00:00
$this -> zv_see = 0 ;
} elseif ( $r == 1 && $this -> u -> info [ 'level' ] > 0 ) {
2023-01-28 02:24:37 +00:00
echo '<br><br><br><b><center>Вы уже выросли из ползунков ;)</center></b>' ;
2022-12-19 20:22:19 +00:00
$this -> zv_see = 0 ;
} elseif ( $r > 1 && $r < 6 && $this -> u -> info [ 'level' ] < 1 ) {
2023-01-28 02:24:37 +00:00
echo '<br><br><br><b><center>Вы еще не выросли из ползунков ;)</center></b>' ;
2022-12-19 20:22:19 +00:00
$this -> zv_see = 0 ;
} elseif ( $r > 3 && $r < 6 && $this -> u -> info [ 'level' ] < 2 ) {
2023-01-28 02:24:37 +00:00
echo '<br><br><br><b><center>В ' . $this -> z1n [ $r ] . ' бои только с о второго уровня.</center></b>' ;
2022-12-19 20:22:19 +00:00
$this -> zv_see = 0 ;
} elseif ( $r == 8 && $this -> u -> info [ 'level' ] < 1 ) {
2023-01-28 02:24:37 +00:00
echo '<br><br><br><b><center>Принимать участие в турнире только с первого уровня.</center></b>' ;
2022-12-19 20:22:19 +00:00
$this -> zv_see = 0 ;
} elseif ( $r == 10 ) {
2022-12-30 19:03:37 +00:00
if ( \Insallah\Tournament :: IS_ENABLED ) {
2023-01-10 16:29:32 +00:00
/** Турниры by Insallah*/
# Защита от F5
2022-12-30 19:03:37 +00:00
if ( ! isset ( $_SESSION [ 'bypass' ])) {
$_SESSION [ 'bypass' ] = mt_rand ();
2022-12-19 20:22:19 +00:00
}
2022-12-30 19:03:37 +00: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 16:29:32 +00:00
# Формируем список идущих турниров.
2022-12-30 19:03:37 +00:00
$tournamentsList = Db :: getRows ( 'select * from tournaments' );
$tournaments = '<ul>' ;
foreach ( $tournamentsList as $tournament ) {
2023-01-10 16:29:32 +00:00
$time = $tournament [ 'start_time' ] === - 1 ? 'Турнир уже начался!' : date (
2022-12-30 19:03:37 +00: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 16:29:32 +00:00
" <li>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</li> " ,
2022-12-30 19:03:37 +00:00
$tournament [ 'tid' ], $time , implode ( ', ' , $members )
);
}
$tournaments .= '</ul>' ;
?>
< div >
2023-01-10 16:29:32 +00:00
< strong style = " color: red; " > Внимание !</ strong >
2022-12-30 19:03:37 +00:00
< ul >
2023-01-10 16:29:32 +00:00
< li style = " color: blue; " > В случае создания либо присоединения к Турниру , покинуть е г о -
< u > невозможно </ u >!
2022-12-30 19:03:37 +00:00
</ li >
< ? php if ( \Insallah\TournamentModel :: isEkrOverpriced ( $this -> u -> info [ 'id' ])) : ?>
2023-01-10 16:29:32 +00:00
< li > Стоимость предметов , одетых на вас не должна
превышать < ? = \Insallah\Tournament :: ekrOverpriceFormula (
2022-12-30 19:03:37 +00:00
$this -> u -> info [ 'level' ]
2023-01-10 16:29:32 +00:00
) ?> еврокредитов.
2022-12-30 19:03:37 +00:00
</ li >
< ? php endif ; ?>
< ? php if ( $this -> u -> info [ 'exp' ] < \Insallah\Tournament :: MIN_EXP ) : ?>
2023-01-10 16:29:32 +00:00
< li > У вас должно быть не менее < ? = \Insallah\Tournament :: MIN_EXP ?> опыта.</li>
2022-12-30 19:03:37 +00:00
< ? php endif ; ?>
2023-01-10 16:29:32 +00:00
< li style = " color: blue; " > Турнир начнётся , когда в заявке
наберётся < ? = \Insallah\Tournament :: START_TOURNAMENT ?> человек.
2022-12-30 19:03:37 +00:00
</ li >
2023-01-10 16:29:32 +00:00
< li style = " color: blue; " > Игроки занявшие 1 , 2 и 3 места получат 25 , 15 , 5 Реликвий
Ангела , а так же задержки на участие в турнире 12 часов , 6 и 3 часа соответственно !
2022-12-30 19:03:37 +00:00
</ li >
</ ul >
</ div >
< ? php if ( ! empty ( $tournamentsList )) : ?>
< div >
2023-01-10 16:29:32 +00:00
< strong > Активные турниры .</ strong >< br >
2022-12-30 19:03:37 +00: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 16:29:32 +00:00
< input type = " submit " name = " tournament_start " value = " Принять участие в турнире " >
2022-12-30 19:03:37 +00:00
< input type = " hidden " name = " key " value = " <?= $_SESSION['bypass'] ?> " >
</ form >
< ? php else : ?>
2023-01-10 16:29:32 +00:00
Вы учавствуете .
2022-12-30 19:03:37 +00:00
< ? php endif ; ?>
< ? php
} else {
?>
< div >
2023-01-10 16:29:32 +00:00
< strong style = " color: crimson; " > В данный момент турниры не проводятся !</ strong >
2022-12-30 19:03:37 +00:00
</ div >
< ? php
2022-12-19 20:22:19 +00:00
}
2023-01-10 16:29:32 +00:00
/** Конец турниров от Insallah. */
2022-12-19 20:22:19 +00: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 16:29:32 +00: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 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
//если кто-то принял
2022-12-19 20:22:19 +00:00
$sa = '' ;
if ( $uz [ 'sex' ] == 2 ) {
2023-01-10 16:29:32 +00:00
$sa = 'а ' ;
2022-12-19 20:22:19 +00:00
}
2023-01-10 16:29:32 +00:00
echo '<script> zv_Priem = ' . ( 0 + $uz [ 'id' ]) . ';</script><font color="red"><b>Вашу заявку принял' . $sa . ' ' . $ca . '</font></b> ' . $this -> u -> microLogin (
2022-12-19 20:22:19 +00:00
$uz [ 'id' ], 1
2023-01-10 16:29:32 +00: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 20:22:19 +00: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 16:29:32 +00:00
echo 'Ожидаем подтверждения боя от ' . $this -> u -> microLogin (
2022-12-19 20:22:19 +00:00
$uz [ 'id' ], 1
2023-01-10 16:29:32 +00:00
) . ' <INPUT class="btn" onClick="location=\'main.php?zayvka=1&r=' . $_GET [ 'r' ] . '&rnd=' . $code . '&cancelzv\';" TYPE=submit name=close value="Отозвать запрос">' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
echo '<b>Ожидаем начала ' . $this -> z2n [ $zi [ 'razdel' ]] . ' боя</b>' ;
echo '<br>Ваш бой начнется через ' . $tm_start . ' мин.' ;
2022-12-19 20:22:19 +00:00
}
} elseif ( $r == 8 ) {
2023-01-10 16:29:32 +00:00
//Турниры
2022-12-19 20:22:19 +00:00
$ttur = [
2023-01-10 16:29:32 +00:00
0 => 'Выжить любой ценой!' ,
1 => 'Каждый сам за себя!' ,
2 => 'Захват ключа!' ,
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы записались на участие в турнире.' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Заявка на турнир не найдена.' ;
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы уже находитесь в заявке на турнир.' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы отказались от заявки на турнир.' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Нельзя отказаться от заявки находясь в турнире.' ;
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы не принимаете участия ни в одном из турниров.' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
echo 'Что-то не так... Обновите страницу.' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$dv = '<b><u>Участники турнира [' . $pl [ 'users_in' ] . ']</u></b>:<br>' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
Начало турнира через ' . $this -> u -> timeOut (
2022-12-19 20:22:19 +00:00
$pl [ 'time' ] - time ()
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
</ div >
< div style = " border-bottom:#b2b2b2 solid 1px;padding:5px;margin-bottom:5px; " >
' . $dv . '
</ div >
</ TD >
< TD align = right valign = top >& nbsp ; </ TD >
</ TR >
</ TABLE >
</ FORM > ' ;
}
} else {
$tlvl = 4 ;
$i = 4 ;
2023-01-10 16:29:32 +00:00
$trnmz = [ 4 => 'Физический' , 5 => 'Магический' , 6 => 'Физ.\М а г .' ];
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$prb = '<INPUT class="btn" TYPE="submit" name=open value="Принять участие">' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$dinf = 'Начало через ' . $this -> u -> timeOut ( $pl [ 'time' ] - time ()) . '' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$dv .= ' Физический турнир. Участников турнира: ' . $pl [ 'users_in' ] . ' чел. | ' . $dinf . '</div></label>' ;
2022-12-19 20:22:19 +00:00
}
if ( $dv == '' ) {
2023-01-10 16:29:32 +00:00
$dv = 'Список турниров для данного типа пуст...' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
Тип турнира :
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//новички, физические и договорные удаляются. Инс. 29.05.22
2022-12-19 20:22:19 +00:00
$zi = [
2023-01-10 16:29:32 +00:00
1 => 'Если вы не достигли первого уровня, то для вас это единственный способ для проведения битв.' ,
2022-12-19 20:22:19 +00:00
];
$dv = '' ;
if ( $this -> u -> room [ 'zvsee' ] == 0 ) {
if ( $this -> u -> info [ 'level' ] <= $c [ 'bot_level' ] || $this -> u -> info [ 'admin' ] > 0 ) {
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
} else {
if ( $this -> u -> info [ 'level' ] < 9 ) {
2023-01-10 16:29:32 +00:00
$tstw = ' для <b>8</b> левелов недоступны' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
Комментарий к бою ' . $tstw . '
2022-12-19 20:22:19 +00:00
</ div >
</ div >
2023-01-10 16:29:32 +00:00
< div style = " padding-top:5px; " >< INPUT class = " btn " TYPE = submit name = open value = " Подать заявку " ></ div > ' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$dv .= '<hr>Бой с монстром: <select style="font-size:12px;" onChange="MM_jumpMenu(\'parent\',this,0)" name="botadminatack"><option value="0">------ Выберите монстра из списка ------</option>' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
if ( $this -> u -> room [ 'zvsee' ] == 0 ) { //групповые ?>
2022-12-19 20:22:19 +00:00
< span id = " hidezv1_btn " >< INPUT class = " btn " onClick = " openfizrmk(); " TYPE = button name = tmp
2023-01-10 16:29:32 +00:00
value = " Подать заявку на групповой бой " style = " margin:3px; " ></ span >
2022-12-19 20:22:19 +00:00
< FIELDSET id = " hidezv1 " style = " display:none; border-color:#FFF; width:500px; " >
2023-01-10 16:29:32 +00:00
< LEGEND >< B style = " color:#8f0000 " > Подать заявку на групповой бой </ B ></ LEGEND >
2022-12-19 20:22:19 +00:00
< form method = " post "
action = " main.php?zayvka&r=<?= $_GET['r'] ?>&add_group&rnd=<?= $code ?> " >
< table >
< tr >
< td >
2023-01-10 16:29:32 +00:00
Начало боя через
2022-12-19 20:22:19 +00:00
< select style = " padding:2px; " name = " startime " >
2023-01-10 16:29:32 +00:00
< option value = " 300 " > 5 минут </ option >
< option value = " 600 " > 10 минут </ option >
2022-12-19 20:22:19 +00:00
</ select >
2023-01-10 16:29:32 +00:00
& nbsp ; & nbsp ; & nbsp ; & nbsp ; Таймаут
2022-12-19 20:22:19 +00:00
< select style = " padding:2px; " name = " timeout " >
2023-01-10 16:29:32 +00:00
< option value = " 1 " > 1 мин .</ option >
< option value = " 2 " > 2 мин .</ option >
< option value = " 3 " > 3 мин .</ option >
2022-12-19 20:22:19 +00:00
</ select >
< br />
2023-01-10 16:29:32 +00:00
Ваша команда
2022-12-19 20:22:19 +00:00
< input style = " padding:2px; " type = " text " name = " nlogin1 " size = " 3 "
2023-01-10 16:29:32 +00:00
maxlength = " 2 " /> игроков
2022-12-19 20:22:19 +00:00
< select style = " padding:2px; " name = " levellogin1 " >
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
</ select >
< br />
2023-01-10 16:29:32 +00:00
Противники & nbsp ;
2022-12-19 20:22:19 +00:00
< input style = " padding:2px; " type = " text " name = " nlogin2 " size = " 3 "
maxlength = " 2 " />
2023-01-10 16:29:32 +00:00
игроков
2022-12-19 20:22:19 +00:00
< select style = " padding:2px; " name = " levellogin2 " >
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
</ select >
< br />
< input type = " checkbox " name = " travma " />
2023-01-10 16:29:32 +00:00
< label for = " travma " > Бой без правил < font class = " dsc " > ( проигравшая сторона
получает инвалидность ) </ font ></ label >< br />
Комментарий к бою
2023-03-31 16:54:33 +00:00
< ? php if ( $this -> u -> info [ 'level' ] < 9 ) {
2023-01-10 16:29:32 +00:00
?> для <b>8</b> левелов недоступны
2023-03-31 16:54:33 +00:00
< ? php } else { ?>
2022-12-19 20:22:19 +00:00
< input type = " text " style = " padding:2px; " name = " cmt " maxlength = " 40 "
size = " 40 " >
2023-03-31 16:54:33 +00:00
< ? php } ?>
2022-12-19 20:22:19 +00:00
</ td >
</ tr >
< tr >
< td align = " left " >
2023-01-10 16:29:32 +00:00
< input class = " btn " type = " submit " value = " Подать заявку " name = " open " >
2022-12-19 20:22:19 +00:00
</ td >
</ tr >
</ table >
</ form >
</ FIELDSET >
< ?
}
} elseif ( $r == 5 ) {
if ( $this -> u -> room [ 'zvsee' ] == 0 ) {
2023-01-10 16:29:32 +00:00
echo ' < div id = " hidezv1_btn " >< INPUT class = " btn " onClick = " openfizrmk(); " TYPE = button name = tmp value = " Подать заявку на хаотичный бой " style = " margin:3px; " ></ div >
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
< LEGEND >< strong style = " color:#8f0000 " > Подать заявку на хаотичный бой </ strong > </ LEGEND >
Начало боя через
2022-12-19 20:22:19 +00:00
< SELECT name = " startime2 " >
2023-01-10 16:29:32 +00:00
< option value = " 60 " selected > 1 минута
< OPTION value = " 180 " > 3 минуты
< OPTION value = " 300 " > 5 минут
2022-12-19 20:22:19 +00:00
</ SELECT >
2023-01-10 16:29:32 +00:00
Игроков
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
Уровни бойцов
2022-12-19 20:22:19 +00:00
< SELECT name = " levellogin1 " >
2023-01-10 16:29:32 +00:00
< OPTION value = " 0 " > любой
< OPTION selected value = " 3 " > только моего уровня
< OPTION value = " 6 " > мой уровень +/- 1 </ OPTION >
2022-12-19 20:22:19 +00:00
</ SELECT >
< BR >
< BR >
< INPUT type = " checkbox " name = " travma " >
2023-01-10 16:29:32 +00:00
Бой без правил < font color = " #777 " > ( проигравшая сторона получает инвалидность ) </ font >< BR >
< INPUT type = " checkbox " name = " noatack " > Закрытый поединок < font color = " #777 " > ( бой будет изолирован от нападений ) </ font >< BR >
2022-12-19 20:22:19 +00:00
< INPUT type = " checkbox " name = " noeff " >
2023-01-10 16:29:32 +00:00
Запрет на использование свитков восстановления Н Р и Маны < BR >
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
) . '" width="70" height="20"> Код подтверждения: <input style="width:40px;" type="text" value="" name="code21">' ;
2022-12-19 20:22:19 +00:00
}
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
</ FIELDSET >
</ DIV >
</ div ></ form > ' ;
}
}
} elseif ( $r == 6 ) {
2023-01-10 16:29:32 +00:00
//текущие
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$tm .= ' <SPAN style=\'color: red; font-weight: bold;\'>против</SPAN> ' ;
2022-12-19 20:22:19 +00:00
}
$i ++ ;
}
if ( $tm != '' ) {
$html .= ( $p + $x ) . '. <font class=date>' . date (
'd.m.y H:i' , $pl [ 'time_start' ]
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
}
$x ++ ;
}
?>
< table width = " 100% " cellspacing = " 0 " cellpadding = " 0 " >
< tr >
2023-01-10 16:29:32 +00:00
< td valign = " top " align = " center " >< h3 > Записи текущих боев на < ? = date ( 'd.m.Y' ); ?>
( всего < ? = $xx ; ?> )</h3></td>
2022-12-19 20:22:19 +00:00
< td valign = " top " align = " right " ></ td >
</ tr >
</ table >
2023-03-31 16:54:33 +00:00
< ? php if ( $html == '' ) {
2023-01-10 16:29:32 +00:00
echo '<div align="center">К сожалению сейчас боев нет...</div>' ;
2022-12-19 20:22:19 +00:00
} else {
echo '<div>' . $html . '</div>' ;
} ?>
< TABLE width = 100 % cellspacing = 0 cellpadding = 0 >
< TR >
2023-03-31 16:54:33 +00:00
< TD align = left >< ? php if ( $p > 0 && $xx > 15 ) { ?> <A HREF="?zayvka=1&r=6&from=<?= ($p - 1); ?>">««
предыдущая страница </ A >< ? php } ?>
2022-12-19 20:22:19 +00:00
</ TD >
2023-03-31 16:54:33 +00:00
< TD align = right >< ? php if ( $p * 15 - $xx > 0 ) { ?> <A HREF="?zayvka=1&r=6&from=<?= ($p + 1); ?>">
следующая страница »» </ A >< ? php } ?>
2022-12-19 20:22:19 +00:00
</ TD >
</ TR >
</ TABLE >
< ?
} elseif ( $r == 7 ) {
2023-01-10 16:29:32 +00:00
//завершенные
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
< TD valign = top >& nbsp ; < 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 >& nbsp ; </ TD >
2022-12-19 20:22:19 +00:00
</ TR >< TR >< TD colspan = 3 align = center >
< form method = " POST " action = " main.php?zayvka=1&r=7&rnd=' . $code . ' " >
2023-01-10 16:29:32 +00:00
Показать только бои персонажа : < INPUT TYPE = text NAME = filter value = " ' . $slogin . ' " > за < INPUT TYPE = text NAME = logs size = 12 value = " ' . date(
2022-12-19 20:22:19 +00:00
'd.m.Y' , $dt
2023-01-10 16:29:32 +00:00
) . ' " > <INPUT class= " btn " TYPE=submit value= " фильтр ! " >
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$tm2 .= ' <img width="20" height="20" src="https://img.new-combats.com/i/flag.gif" title="Победа"> ' ;
2022-12-19 20:22:19 +00:00
}
$tm .= $tm2 ;
if ( $k + 1 < count ( $ts ) && $tm2 != '' && $ts [ $k + 1 ] > 0 ) {
2023-01-10 16:29:32 +00:00
$tm .= ' <font color=red><b>против</b></font> ' ;
2022-12-19 20:22:19 +00:00
}
$k ++ ;
}
}
if ( ! isset ( $btl_lst [ $b [ 'id' ]])) {
$btl_lst [ $b [ 'id' ]] = true ;
if ( $tm == '' ) {
2023-01-10 16:29:32 +00:00
$tm = 'Данные поединка потеряны' ;
2022-12-19 20:22:19 +00:00
}
$jk ++ ;
$btl .= $jk . '. <font class=date>' . date (
'd.m.y H:i' , $pl [ 'time' ]
2023-01-10 16:29:32 +00:00
) . '</font> ' . $tm . ' <A HREF="logs.php?log=' . $pl [ 'battle_id' ] . '&rnd=' . $code . '" target=_blank>»»</A><br>' ;
2022-12-19 20:22:19 +00:00
}
$j ++ ;
}
}
if ( $btl == '' ) {
2023-01-10 16:29:32 +00:00
$see .= '<CENTER><BR><BR><B>В этот день не было боев, или же, летописец опять потерял свитки...</B><BR><BR><BR></CENTER><HR><BR>' ;
2022-12-19 20:22:19 +00:00
} else {
$see .= $btl ;
}
echo $see ;
} else {
if (( ! isset ( $_GET [ 'new_group' ]) && ! isset ( $_POST [ 'groupClick' ])) || isset ( $zi [ 'id' ])) {
2023-01-10 16:29:32 +00:00
echo '<BR><BR><CENTER><B>Выберите раздел</B></CENTER>' ;
2022-12-19 20:22:19 +00:00
}
}
} else {
if (( ! isset ( $_GET [ 'new_group' ]) && ! isset ( $_POST [ 'groupClick' ])) || isset ( $zi [ 'id' ])) {
2023-01-10 16:29:32 +00:00
echo '<BR><BR><CENTER><B>Выберите раздел</B></CENTER>' ;
2022-12-19 20:22:19 +00: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 19:03:37 +00:00
global $code , $zi ;
2022-12-19 20:22:19 +00:00
if ( isset ( $_GET [ 'r' ]) && $this -> zv_see == 1 ) {
$r = round ( intval ( $_GET [ 'r' ]));
if ( $r >= 1 && $r <= 5 ) {
2023-01-10 16:29:32 +00:00
//Список заявок
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//невидимый бой
$tm = '<i>невидимый</i>' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$unvs = ' Участников: ' . ( 1 + $unvs ) . ' чел. ' ;
$n1tv = ' <img src="https://img.new-combats.com/i/fighttypehidden0.gif" title="Невидимый">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'kingfight' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/king.gif" title="Призовой поединок">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'travmaChance' ] == 100 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= '<img src="https://img.new-combats.com/fighttype6.gif" title="Кровавый поединок">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'noatack' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/i/fighttypehidden0.gif" title="Закрытый бой">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'nobot' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/nobot.gif" title="В бой не вступают боты">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'fastfight' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/fastfight.gif" title="Для начала боя необходимо минимум 2 игрока">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'noeff' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/svitok4.png" width="20" height="20" title="Запрет на использование свитков восстановления Н Р и маны">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'arand' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/random.png" width="20" height="20" title="Распределение бойцов случайным образом">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'noart' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/noart.png" width="20" height="20" title="Бой без артефактов">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'otmorozok' ] == 1 ) {
2023-01-10 16:29:32 +00:00
$n1tv .= ' <img src="https://img.new-combats.com/snow.gif" width="20" height="20" title="В бой могут вмешаться Отморозки">' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'comment' ] != '' ) {
$dl = '' ;
if (( $moder [ 'boi' ] == 1 || $this -> u -> info [ 'admin' ] > 0 ) && $pl [ 'dcom' ] == 0 ) {
2023-01-10 16:29:32 +00:00
$dl .= ' (<a href="main.php?zayvka=1&r=5&delcom=' . $pl [ 'id' ] . '&key=' . $this -> u -> info [ 'nextAct' ] . '&rnd=' . $code . '">удалить комментарий</a>)' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$dl = '<font color="grey"><i>Комментарий удален модератором</i></font>' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'dcom' ] > 0 ) {
if ( $moder [ 'boi' ] == 1 || $this -> u -> info [ 'admin' ] > 0 ) {
2023-01-10 16:29:32 +00:00
$pl [ 'comment' ] = '[ Текст комментария : <font color="red">' . $pl [ 'comment' ] . '</font>] ' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$imn .= ' им. Jora Kardan' ;
2022-12-19 20:22:19 +00:00
}
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
}
if ( $r == 5 && ( $pl [ 'creator' ] == $this -> u -> info [ 'id' ]) && $cols < 2 && $pl [ 'priz' ] == 0 ) {
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
} else {
$del_q = '' ;
}
$lvldt = '' ;
if ( $pl [ 'min_lvl_1' ] != $pl [ 'max_lvl_2' ]) {
2023-01-10 16:29:32 +00:00
$lvldt .= '' . $pl [ 'min_lvl_1' ] . '-' . $pl [ 'max_lvl_2' ] . ' у р . ' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$lvldt .= '' . $pl [ 'min_lvl_1' ] . ' у р . ' ;
2022-12-19 20:22:19 +00:00
}
$lvldt .= ( 0 + $cols ) . '/' . $pl [ 'maxplayers' ] . '' ;
$zvb .= $rad . '<font class="date">' . date (
'H:i' , $pl [ 'time' ]
2023-01-10 16:29:32 +00: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 20:22:19 +00: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 16:29:32 +00:00
//Заявки группового боя
2022-12-19 20:22:19 +00:00
$tm1 = '' ;
$tm2 = '' ;
$tmStart = floor (( $pl [ 'time' ] + $pl [ 'time_start' ] - time ()) / 6 ) / 10 ;
$tmStart = $this -> rzv ( $tmStart );
2023-01-10 16:29:32 +00:00
//Персонаж в заявке, подключаем ему противника
//Ищем апонента для групповых
2022-12-19 20:22:19 +00:00
$xx2 = $this -> testzvu ( $pl [ 'id' ], 2 , 0 );
if ( $pl [ 'bot2' ] > 0 && $xx2 < $pl [ 'tm2max' ]) {
2023-01-10 16:29:32 +00:00
//Добавляем ботов за вторую команду
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//генерируем команды
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$tm2 = '<font color="#777"><i>группа пока не набрана</i></font>' ;
2022-12-19 20:22:19 +00:00
} else {
$tm1 = rtrim ( $tm1 , ', ' );
}
if ( $tm2 == '' ) {
2023-01-10 16:29:32 +00:00
$tm2 = '<font color="#777"><i>группа пока не набрана</i></font>' ;
2022-12-19 20:22:19 +00:00
} else {
$tm2 = rtrim ( $tm2 , ', ' );
}
//
if ( $pl [ 'teams' ] == 3 ) {
if ( $tm3 == '' ) {
2023-01-10 16:29:32 +00:00
$tm2 = '<font color="#777"><i>группа пока не набрана</i></font>' ;
2022-12-19 20:22:19 +00:00
} else {
$tm3 = rtrim ( $tm3 , ', ' );
}
$ttl1 = '' ;
$ttl2 = '' ;
$ttl3 = '' ;
if ( $pl [ 'align1' ] == 3 ) {
2023-01-10 16:29:32 +00:00
$ttl1 = 'Тьма' ;
2022-12-19 20:22:19 +00:00
} elseif ( $pl [ 'align1' ] == 7 ) {
2023-01-10 16:29:32 +00:00
$ttl1 = 'Нейтралы' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$ttl1 = 'Свет' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'align2' ] == 3 ) {
2023-01-10 16:29:32 +00:00
$ttl2 = 'Тьма' ;
2022-12-19 20:22:19 +00:00
} elseif ( $pl [ 'align2' ] == 7 ) {
2023-01-10 16:29:32 +00:00
$ttl2 = 'Нейтралы' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$ttl2 = 'Свет' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'align3' ] == 3 ) {
2023-01-10 16:29:32 +00:00
$ttl3 = 'Тьма' ;
2022-12-19 20:22:19 +00:00
} elseif ( $pl [ 'align3' ] == 7 ) {
2023-01-10 16:29:32 +00:00
$ttl3 = 'Нейтралы' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$ttl3 = 'Свет' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$dl .= ' (<a href="main.php?zayvka=1&r=4&delcom=' . $pl [ 'id' ] . '&key=' . $this -> u -> info [ 'nextAct' ] . '&rnd=' . $code . '">удалить комментарий</a>)' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$dl = '<font color="grey"><i>Комментарий удален модератором</i></font>' ;
2022-12-19 20:22:19 +00:00
}
if ( $pl [ 'dcom' ] > 0 ) {
if ( $moder [ 'boi' ] == 1 || $this -> u -> info [ 'admin' ] > 0 ) {
2023-01-10 16:29:32 +00:00
$pl [ 'comment' ] = '[ Текст комментария : <font color="red">' . $pl [ 'comment' ] . '</font>] ' ;
2022-12-19 20:22:19 +00:00
} else {
$pl [ 'comment' ] = '' ;
}
}
$zv_comm = '' . $pl [ 'comment' ] . '' . $dl . '' ;
} else {
$zv_comm = '' ;
}
if ( $pl [ 'teams' ] == 3 ) {
2023-01-10 16:29:32 +00: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 20:22:19 +00: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 16:29:32 +00:00
$zvb .= ' у р .)</i></b></font>' ;
$zvb .= ' <i>против</i> ' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00: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 20:22:19 +00:00
$zvb .= ' <b>' . $zv_comm . '</b> ' ;
2023-01-10 16:29:32 +00:00
$zvb .= ' <font color="green"><i>(Бой начнется через <b>' . $tmStart . '</b>)</i></font> ' . $mon . '<BR>' ;
2022-12-19 20:22:19 +00: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 19:03:37 +00: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 20:22:19 +00:00
$d1 = 'disabled="disabled"' ;
}
if ( ! isset ( $uze [ 'id' ]) || $this -> u -> info [ 'zv' ] == $pl [ 'id' ]) {
$enm = '' ;
if ( isset ( $uze [ 'id' ])) {
2023-01-10 16:29:32 +00:00
$enm = ' против ' . $this -> u -> microLogin ( $uze [ 'id' ], 1 ) . '' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$dp1 = ' Бой на деньги, ставка: <b>' . $this -> u -> round2 ( $pl [ 'money' ]) . ' кр.</b>' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
) . ' ' . $enm . ' тип боя: <img src="https://img.new-combats.com/i/fighttype' . ( $pl [ 'type' ]) . '.gif"> ( таймаут <b>' . round (
2022-12-19 20:22:19 +00:00
$pl [ 'timeout' ] / 60
2023-01-10 16:29:32 +00:00
) . ' мин.</b>' . $dp1 . ' ' . $mon . ')' . $mbcom . '<br>' ;
2022-12-19 20:22:19 +00:00
if ( $uz [ 'banned' ] > 0 ) {
$zvb .= '</span>' ;
}
}
}
}
$i ++ ;
}
if ( $i == 0 ) {
2023-01-10 16:29:32 +00:00
//заявок нет
2022-12-19 20:22:19 +00:00
if ( $this -> u -> room [ 'zvsee' ] > 0 ) {
2023-01-10 16:29:32 +00:00
echo '<br><br><br><div align="center"><b>В данном разделе нет ни одной заявки</b></div>' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00: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 : 40 px ; " type= " text " value= " " name= " code22 " >
< input class = " btn " style = " margin-top:1px; " type = " submit " value = " Принять участие в мясорубке " />
2022-12-19 20:22:19 +00: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 16:29:32 +00: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 20:22:19 +00:00
}
} else {
2022-12-30 19:03:37 +00:00
if ( $zvb != '' && $this -> u -> info [ 'level' ] > Config :: get ( 'bot_level' )) {
2023-01-10 16:29:32 +00: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 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы не можете принять бой. Сначала отзовите свою заявку.' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//новички, физы, договорные
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями доступны кулачные бои.' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( $this -> testTravm () == 2 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями невозможно сражаться.' ;
2022-12-19 20:22:19 +00:00
$az = 0 ;
} elseif ( $this -> u -> info [ 'hpNow' ] < $this -> u -> stats [ 'hpAll' ] / 100 * 30 && ( $z [ 'razdel' ] >= 1 || $z [ 'razdel' ] <= 3 )) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы еще слишком ослаблены чтобы начать новый бой' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы не можете сражаться против сокланов' ;
2022-12-19 20:22:19 +00:00
} elseif ( $z [ 'withUser' ] != '' && $filter -> mystr ( $this -> u -> info [ 'login' ]) != $filter -> mystr (
$z [ 'withUser' ]
) && $z [ 'razdel' ] == 3 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы не можете принять эту заявку' ;
2022-12-19 20:22:19 +00:00
} elseif ( $z [ 'money' ] > 0 && $z [ 'money' ] > $this -> u -> info [ 'money' ]) {
2023-01-10 16:29:32 +00:00
$this -> error = 'У В а с недостаточно денег, чтобы принять эту заявку' ;
2022-12-19 20:22:19 +00:00
} elseif ( $this -> u -> stats [ 'hpNow' ] < ceil ( $this -> u -> stats [ 'hpMax' ] / 100 * 30 )) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы слишком ослаблены, восстановитесь' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00: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 20:22:19 +00:00
$sa = '' ;
if ( $this -> u -> info [ 'sex' ] == 2 ) {
2023-01-10 16:29:32 +00:00
$sa = 'а ' ;
2022-12-19 20:22:19 +00:00
}
2023-01-28 02:24:37 +00:00
$cmsg = new ChatMessage ();
$cmsg -> setText ( ' [login:' . $this -> u -> info [ 'login' ] . '] принял' . $sa . ' вашу заявку на бой.[reflesh_main_zv_priem:' . $this -> u -> info [ 'id' ] . ']' );
$cmsg -> setCity ( $uz1 [ 'city' ]);
$cmsg -> setTo ( $uz1 [ 'login' ]);
$cmsg -> setType ( 6 );
( new Chat ()) -> sendMsg ( $cmsg );
2022-12-19 20:22:19 +00:00
$zi = $z ;
$this -> u -> info [ 'zv' ] = $z [ 'id' ];
$this -> u -> info [ 'team' ] = 2 ;
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Невозможно принять заявку.' ;
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Заявку уже кто-то принял до вас.' ;
2022-12-19 20:22:19 +00:00
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Заявка на бой заблокирована.' ;
2022-12-19 20:22:19 +00:00
}
} elseif ( $z [ 'razdel' ] == 4 && $this -> u -> info [ 'level' ] > 1 ) {
$tm = 0 ;
2023-01-10 16:29:32 +00:00
//групповые
2022-12-19 20:22:19 +00:00
if ( isset ( $_GET [ 'tm1' ])) {
$tm = 1 ;
} elseif ( isset ( $_GET [ 'tm2' ])) {
$tm = 2 ;
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Что-то здесь не так' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы не можете сражаться против сокланов' ;
2022-12-19 20:22:19 +00:00
} elseif ( $z [ 'bot2' ] == 1 && $t1 == 2 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы не можете сражаться на стороне ботов' ;
2022-12-19 20:22:19 +00:00
} elseif ( $z [ 'money3' ] > 0 && $z [ 'money3' ] > $this -> u -> info [ 'money3' ]) {
2023-01-10 16:29:32 +00:00
$this -> error = 'У В а с недостаточно денег, чтобы принять эту заявку' ;
2022-12-19 20:22:19 +00:00
} elseif (( $z [ 'money' ] > 0 || $z [ 'money3' ] > 0 ) && $this -> u -> info [ 'level' ] < 4 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Бои на деньги проводятся с 4-г о уровня' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы не подходите по уровню, за эту команду могут зайти персонажи ' . $z [ 'min_lvl_' . $t1 ] . ' - ' . $z [ 'max_lvl_' . $t1 ] . ' уровня' ;
2022-12-19 20:22:19 +00:00
} elseif ( $this -> u -> stats [ 'hpNow' ] < ceil ( $this -> u -> stats [ 'hpMax' ] / 100 * 30 )) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы слишком ослаблены, восстановитесь' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Ошибка приема заявки...' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы приняли групповой бой...' ;
2022-12-19 20:22:19 +00:00
$zi = $z ;
$this -> u -> info [ 'zv' ] = $z [ 'id' ];
$this -> u -> info [ 'team' ] = mysql_real_escape_string (( int ) $t1 );
}
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Группа уже набрана (' . ( $z [ 'tm' . $t1 . 'max' ] - $tmmax ) . ')' ;
2022-12-19 20:22:19 +00:00
}
}
} elseif ( $z [ 'razdel' ] == 5 && $this -> u -> info [ 'level' ] > 1 ) {
2023-01-10 16:29:32 +00:00
//хаотичные
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Достигнут максимальный предел участников в этой заявке!' ;
2022-12-19 20:22:19 +00:00
} elseif ( $this -> testTravm () == 1 && $z [ 'k' ] != 1 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями доступны кулачные бои.' ;
2022-12-19 20:22:19 +00:00
} elseif ( $this -> testTravm () == 2 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы травмированы. С такими увечьями невозможно сражаться.' ;
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Неправильный код подтверждения' ;
2022-12-19 20:22:19 +00:00
} elseif ( $z [ 'min_lvl_1' ] > $this -> u -> info [ 'level' ] || $z [ 'max_lvl_1' ] < $this -> u -> info [ 'level' ]) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы не подходите по уровню, за эту команду могут зайти персонажи ' . $z [ 'min_lvl_1' ] . ' - ' . $z [ 'max_lvl_1' ] . ' уровня' ;
2022-12-19 20:22:19 +00:00
} elseif ( $this -> u -> stats [ 'hpNow' ] < ceil ( $this -> u -> stats [ 'hpMax' ] / 100 * 30 )) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы слишком ослаблены, восстановитесь' ;
2022-12-19 20:22:19 +00:00
} elseif ( $z [ 'money' ] > 0 && $this -> u -> info [ 'level' ] < 4 ) {
2023-01-10 16:29:32 +00:00
$this -> error = 'Бои на деньги проводятся с 4-г о уровня' ;
2022-12-19 20:22:19 +00:00
} else {
$t1 = 0 ;
if ( $z [ 'type' ] == 33 ) {
2023-01-10 16:29:32 +00:00
//============================================================================================= Призовые
2022-12-19 20:22:19 +00:00
Db :: sql (
2023-01-06 14:57:25 +00: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 20:22:19 +00: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 16:29:32 +00:00
//тут классы
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//уворот класс 1
$this -> add_effn ( $uidb , 8 ); // ловка
$this -> add_effn ( $uidb , 20 ); // сокрушение
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//уворот класс закончен
2022-12-19 20:22:19 +00:00
} elseif ( $sellclass == 2 ) {
2023-01-10 16:29:32 +00:00
//крит класс 2
$this -> add_effn ( $uidb , 7 ); // инта
$this -> add_effn ( $uidb , 20 ); // сокрушение
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//танк класс 3
$this -> add_effn ( $uidb , 1 ); // сила
$this -> add_effn ( $uidb , 20 ); // сокрушение
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
//топор класс 4
$this -> add_effn ( $uidb , 1 ); // сила
$this -> add_effn ( $uidb , 20 ); // сокрушение
2022-12-19 20:22:19 +00: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 16:29:32 +00: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 20:22:19 +00: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 16:29:32 +00: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 20:22:19 +00: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 16:29:32 +00:00
// классы кончились
//кастим эфекты
2022-12-19 20:22:19 +00:00
2023-01-10 16:29:32 +00: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 20:22:19 +00:00
Db :: sql ( 'update users set money = -3000, money2 = 0 where id = ?' , [ $uidb ]);
2023-01-10 16:29:32 +00:00
//Корекция хп в призовых
2022-12-19 20:22:19 +00:00
Db :: sql ( 'update stats set hpNow = hpAll, mpNow = mpAll where id = ?' , [ $uidb ]);
$this -> u -> info [ 'id' ] = $uidb ;
//=============================================================================================
2023-01-10 16:29:32 +00:00
$this -> error = 'Вы вселены в клона 8г о левела' ; //Т У Т вселяем в клона призовые хаоты
2022-12-19 20:22:19 +00: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 16:29:32 +00:00
$this -> error = 'Вы приняли хаотичный бой...' ;
2022-12-19 20:22:19 +00:00
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Ошибка приема заявки...' ;
2022-12-19 20:22:19 +00:00
}
}
}
} else {
2023-01-10 16:29:32 +00:00
$this -> error = 'Заявка на бой не найдена.' ;
2022-12-19 20:22:19 +00:00
}
}
}
}
}