2022-06-06 21:30:34 +00:00
< ? php
2022-12-19 18:26:14 +00:00
2023-01-12 00:58:26 +00:00
if ( ! defined ( 'GAME_VERSION' )) {
require_once '_incl_data/autoload.php' ;
}
use Core\Config ;
use Core\Database ;
2022-12-30 19:03:37 +00:00
use Core\Db ;
2023-01-18 11:51:06 +00:00
use DarksLight2\Training\TrainingManager ;
2022-12-19 18:26:14 +00:00
2023-01-12 00:58:26 +00:00
Config :: init ();
Database :: init ();
2022-12-19 18:26:14 +00:00
$u = User :: start ();
$filter = new Filter ();
$chat = new Chat ();
2022-07-01 12:45:43 +00:00
2023-02-13 17:24:48 +00:00
$code = PassGen :: intCode ();
2022-07-01 12:45:43 +00:00
if (
! isset ( $u -> info [ 'id' ]) ||
$u -> info [ 'banned' ] > 0 ||
! isset ( $_COOKIE [ 'login' ]) ||
$u -> info [ 'repass' ] > 0
) {
exit ( json_encode ([ 'js' => 'top.location="bk?exit=' . $code . '";' ]));
}
if ( $u -> info [ 'bithday' ] == '01.01.1800' ) {
unset ( $_GET [ 'msg' ], $_POST [ 'msg' ], $_POST [ 'warnMsg' ]);
$_GET [ 'r3' ] = 1 ;
}
if ( $u -> info [ 'online' ] < time () - 60 ) {
2023-01-12 00:58:26 +00:00
Db :: sql ( 'update users set online = unix_timestamp() where id = ?' , [ $u -> info [ 'id' ]]);
2022-12-19 18:26:14 +00:00
$filter -> setOnline ( $u -> info [ 'online' ], $u -> info [ 'id' ]);
2022-07-01 12:45:43 +00:00
}
2023-01-12 00:58:26 +00:00
function isModerOrAdmin ( $uinfo ) : bool
2022-12-19 18:26:14 +00:00
{
return $uinfo [ 'admin' ] > 0 ||
2022-07-01 12:45:43 +00:00
(
2022-12-19 18:26:14 +00:00
$uinfo [ 'align' ] > 1 &&
$uinfo [ 'align' ] < 2 ) ||
2022-07-01 12:45:43 +00:00
(
2022-12-19 18:26:14 +00:00
$uinfo [ 'align' ] > 3 &&
$uinfo [ 'align' ] < 4
);
}
if ( isset ( $_POST [ 'delMsg' ]) && isModerOrAdmin ( $u -> info )) {
2023-01-12 00:58:26 +00:00
$delmsgid = ( int ) $_POST [ 'delMsg' ];
if ( $delmsgid > 0 ) {
Db :: sql ( 'update chat set `delete` = ? where id = ?' , [ $u -> info [ 'id' ], $delmsgid ]);
2022-07-01 12:45:43 +00:00
} else {
2023-01-12 00:58:26 +00:00
Db :: sql ( 'update users set molch3 = unix_timestamp() + 3600 * 3 where id = ?' , [ - $delmsgid ]);
2022-07-01 12:45:43 +00:00
}
2023-01-12 00:58:26 +00:00
unset ( $delmsgid );
2022-07-01 12:45:43 +00:00
}
$r = [
'rnd' => $code ,
'rn' => null ,
'list' => null ,
'msg' => null ,
'js' => null ,
2022-12-19 18:26:14 +00:00
'xu' => 0 ,
2022-07-01 12:45:43 +00:00
];
2023-01-10 16:29:32 +00:00
2022-07-01 12:45:43 +00:00
if ( $u -> info [ 'battle' ] > 0 ) {
2023-02-13 17:24:48 +00:00
$btl = Db :: getValue ( 'select count(*) from battle where id = ? and time_over = 0' , [ $u -> info [ 'battle' ]]);
if ( empty ( $btl )) {
2022-07-01 12:45:43 +00:00
$r [ 'js' ] .= 'top.frames["main"].location="main.php";' ;
}
}
if ( isset ( $_POST [ 'msg' ]) && str_replace ( ' ' , '' , $_POST [ 'msg' ]) != '' ) {
$msg = [];
$_POST [ 'msg' ] = str_replace ( '\x3C' , '<' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '\x3' , '>' , $_POST [ 'msg' ]);
2023-01-12 00:58:26 +00:00
function tolink ( $buf ) : string
2022-07-01 12:45:43 +00:00
{
$x = explode ( " " , $buf );
$newbuf = '' ;
for ( $j = 0 ; $j < count ( $x ); $j ++ ) {
2023-01-10 16:29:32 +00:00
$uname = '<Внутренняя ссылка>' ;
2022-07-01 12:45:43 +00:00
//
if ( strripos ( $x [ $j ], 'new-combats.com/info/' )) {
$ulogin = explode ( '/info/' , $x [ $j ]);
$ulogin = $ulogin [ 1 ];
2023-02-13 17:24:48 +00:00
$ulogin = Db :: getValue ( 'select login from users where id = ? or login = ?' , [ $ulogin , $ulogin ]);
if ( ! empty ( $ulogin )) {
$uname = '<span style="color: #831db7; "><Информация о "' . $ulogin . '"></span>' ;
2022-07-01 12:45:43 +00:00
}
2023-01-10 16:29:32 +00:00
} elseif ( strripos ( $x [ $j ], 'audio_1610649509.mp3' )) { //Т У Т аудио
2023-02-13 17:24:48 +00:00
$uname = '<span style="color: #FF851B; "><Голосовое сообщение></span>' ;
2022-07-01 12:45:43 +00:00
} elseif ( strripos ( $x [ $j ], 'new-combats.com/item/' )) {
$ulogin = explode ( '/item/' , $x [ $j ]);
$ulogin = $ulogin [ 1 ];
2023-02-13 17:24:48 +00:00
$ulogin = Db :: getValue ( 'select name from items_main where id = ?' , [ $ulogin ]);
if ( isset ( $ulogin )) {
$uname = '<span style="color: #5f9b00; "><Предмет "' . $ulogin . '"></span>' ;
2022-07-01 12:45:43 +00:00
} else {
2023-02-13 17:24:48 +00:00
$uname = '<span style="color: #5f9b00; "><Библиотека предметов></span>' ;
2022-07-01 12:45:43 +00:00
}
} elseif ( strripos ( $x [ $j ], 'new-combats.com/news' )) {
$ulogin = explode ( '/news' , $x [ $j ]);
$ulogin = $ulogin [ 1 ];
$ulogin = ltrim ( $ulogin , '/' );
2023-02-13 17:24:48 +00:00
$ulogin = Db :: getValue ( 'select title from events_news where id = ?' , [ $ulogin ]);
if ( isset ( $ulogin )) {
$uname = '<span style="color: #b57300; "><Новость "' . $ulogin . '"></span>' ;
2022-07-01 12:45:43 +00:00
} else {
2023-02-13 17:24:48 +00:00
$uname = '<span style="color: #b57300; "><Новостная лента></span>' ;
2022-07-01 12:45:43 +00:00
}
} elseif ( strripos ( $x [ $j ], 'new-combats.com/lib' )) {
$ulogin = explode ( '/lib' , $x [ $j ]);
$ulogin = $ulogin [ 1 ];
$ulogin = ltrim ( $ulogin , '/' );
$ulogin = rtrim ( $ulogin , '/' );
2023-02-13 17:24:48 +00:00
$ulogin = Db :: getValue ( 'select title from library_content where url_name = ? and moder > 0' , [ $ulogin ]);
if ( isset ( $ulogin )) {
$uname = '<span style="color: #4c6e00; "><Библиотека "' . $ulogin . '"></span>' ;
2022-07-01 12:45:43 +00:00
} else {
2023-02-13 17:24:48 +00:00
$uname = '<span style="color: #4c6e00; "><Библиотека></span>' ;
2022-07-01 12:45:43 +00:00
}
} elseif ( strripos ( $x [ $j ], 'new-combats.com/forum' )) {
$ulogin = explode ( '/forum?read=' , $x [ $j ]);
$ulogin = $ulogin [ 1 ];
$ulogin = explode ( '&' , $ulogin );
$ulogin = $ulogin [ 0 ];
2023-02-13 17:24:48 +00:00
$ulogin = Db :: getValue ( 'select title from forum_msg where id = ? and `delete` = 0' , [ $ulogin ]);
if ( isset ( $ulogin )) {
$uname = '<span style="color: #0055b5; "><Форум "' . $ulogin . '"></span>' ;
2022-07-01 12:45:43 +00:00
} else {
$ulogin = explode ( '/forum?r=' , $x [ $j ]);
$ulogin = $ulogin [ 1 ];
$ulogin = explode ( '&' , $ulogin );
$ulogin = $ulogin [ 0 ];
2023-02-13 17:24:48 +00:00
$ulogin = Db :: getValue ( 'select name from forum_menu where id = ?' , [ $ulogin ]);
if ( isset ( $ulogin )) {
$uname = '<span style="color: #0055b5; "><Конференция форума "' . $ulogin . '"></span>' ;
2022-07-01 12:45:43 +00:00
} else {
2023-02-13 17:24:48 +00:00
$uname = '<span style="color: #0055b5; "><Форум проекта></span>' ;
2022-07-01 12:45:43 +00:00
}
}
}
//
2023-01-12 00:58:26 +00:00
$newbuf .= preg_match (
2022-12-19 18:26:14 +00:00
" /(https: \\ / \\ /)?(new-combats+ \\ .com(([ \" '> \r \n \t ])|( \\ /([^ \" '> \r \n \t ]*)?)))/ " ,
2023-01-12 00:58:26 +00:00
$x [ $j ],
$ok
2023-02-13 17:24:48 +00:00
) ? str_replace ( $ok [ 2 ], " <small><a href=https:// $ok[2] target=_blank ><i> " . $uname . " </i></a></small> " , str_replace ( " https:// " , " " , $x [ $j ])) . " " : $x [ $j ] . " " ;
2022-07-01 12:45:43 +00:00
}
return $newbuf ;
}
$_POST [ 'msg' ] = $chat -> expworld ( $_POST [ 'msg' ], 120 );
$_POST [ 'msg' ] = str_replace ( '\\' , '\\\\' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '"' , '[s1;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( " ' " , '[s2;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '<' , '[s3;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '>' , '[s4;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( ' ' , ' ' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '>' , '[s4;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '<' , '[s3;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( " \r " , '[s3;]br[s4;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( " \ b " , '[s3;]br[s4;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( " " , '[s3;]TAB[s4;]' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( " " , '[s3;]TAB[s4;]' , $_POST [ 'msg' ]);
2023-01-10 17:26:14 +00:00
$_POST [ 'msg' ] = htmlspecialchars ( $_POST [ 'msg' ], null );
2022-07-01 12:45:43 +00:00
$_POST [ 'msg' ] = str_replace ( '%usersmile%' , '' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = tolink ( $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '::' , '' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '[s1;]' , '"' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( " [s2;] " , '"' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '[s3;]' , '<' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( '[s4;]' , '>' , $_POST [ 'msg' ]);
$_POST [ 'msg' ] = str_replace ( ' ' , ' ' , $_POST [ 'msg' ]);
2023-02-13 17:24:48 +00:00
$smg = Db :: getRow ( 'select * from chat where login = ? and time > unix_timestamp() - 20 order by time desc limit 1' , [ $u -> info [ 'login' ]]);
2022-07-01 12:45:43 +00:00
if ( $u -> info [ 'exp' ] < 499999999 ) {
2023-02-13 17:24:48 +00:00
$lmg = Db :: getValue ( 'select count(id) from chat where login = ? and time = unix_timestamp() - 5 limit 2' , [ $u -> info [ 'login' ]]);
2022-07-01 12:45:43 +00:00
} else {
2023-02-13 17:24:48 +00:00
$lmg = 0 ;
2022-07-01 12:45:43 +00:00
}
$testsmg = ' ' . $_POST [ 'msg' ] . ' ' ;
if ( $testsmg == $smg [ 'text' ] && $u -> info [ 'exp' ] > 100000 ) {
if ( $u -> info [ 'molch1' ] < time ()) {
2023-01-10 16:29:32 +00:00
//Молчанка за флуд на 5 минут
2022-07-01 12:45:43 +00:00
$u -> info [ 'molch1' ] = time () + 1200 ;
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>Вы наказаны за спам на 20 минут </small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
2023-02-13 17:24:48 +00:00
Db :: sql ( 'update users set molch1 = ? where id = ?' , [ $u -> info [ 'molch1' ], $u -> info [ 'id' ]]);
Db :: sql ( 'update chat set `delete` = 1 where login = ?' , [ $u -> info [ 'login' ]]);
2022-07-01 12:45:43 +00:00
2023-03-31 18:30:14 +00:00
$_POST [ 'msg' ] = 'Я спамер ' . $u -> info [ 'login' ] . ' и меня нужно заблокировать!' ;
2023-01-18 11:51:06 +00:00
2023-02-13 19:13:01 +00:00
$training_manager = TrainingManager :: getInstance ();
2023-01-18 11:51:06 +00:00
$training_manager -> addPoint ( 'chat_first_quest' );
if ( preg_match ( " /to \ [(.*?) \ ]/ " , $_POST [ 'msg' ])) {
$training_manager -> addPoint ( 'chat_second_quest' );
}
if ( preg_match ( " /private \ [(.*?) \ ]/ " , $_POST [ 'msg' ])) {
$training_manager -> addPoint ( 'chat_third_quest' );
}
2023-01-28 02:24:37 +00:00
$cmsg = new ChatMessage ();
$cmsg -> setInvis ( $u -> info [ 'invis' ]);
$cmsg -> setDa ( 1 );
$cmsg -> setCity ( $u -> info [ 'city' ]);
$cmsg -> setType ( 6 );
$cmsg -> setColor ( '#f00' );
$cmsg -> setText ( " Я спамер { $u -> info [ 'login' ] } и меня нужно заблокировать " . Config :: get ( 'https' ) . '/info/' . $u -> info [ 'id' ]);
$chat -> sendMsg ( $cmsg );
$cmsg -> setLogin ( $u -> info [ 'login' ]);
$cmsg -> setType ( 6 );
$cmsg -> setText ( 'Это супер проект! Всем успехов!' );
$cmsg -> setColor ( '#000' );
$chat -> sendMsg ( $cmsg );
2022-07-01 12:45:43 +00:00
}
2023-02-13 17:24:48 +00:00
} elseif ( $lmg > 0 ) {
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>Вы не можете отправлять так часто сообщения... </small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
if ( $u -> info [ 'molch1' ] < time ()) {
if ( $u -> info [ 'molch1' ] < - 5 ) {
$u -> info [ 'molch1' ] = time () + 300 ;
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>Вы наказаны за флуд на 5 минут </small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
} elseif ( $u -> info [ 'molch1' ] < 0 ) {
$u -> info [ 'molch1' ] -- ;
} else {
$u -> info [ 'molch1' ] = - 1 ;
}
2022-12-19 18:26:14 +00:00
mysql_query (
'UPDATE `users` SET `molch1` = "' . $u -> info [ 'molch1' ] . '" WHERE `id` = "' . $u -> info [ 'id' ] . '" LIMIT 1'
);
2022-07-01 12:45:43 +00:00
}
2022-12-19 18:26:14 +00:00
} elseif (( preg_match ( " /private \ [(.*?) \ ]/ " , $_POST [ 'msg' ], $msg [ 'to' ]) || preg_match (
" /private \ [(.*?) \ ]/ " , $_POST [ 'msg' ], $msg [ 'to' ]
)) && $u -> info [ 'exp' ] < 150000 ) {
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>Вы не можете отправлять приват до достижения 150000 опыта.</small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
} else {
2023-01-10 16:29:32 +00:00
//Записываем данные
2022-07-01 12:45:43 +00:00
$msg [ 'spam' ] = 0 ;
$msg [ 'type' ] = 1 ;
$msg [ 'molch' ] = 0 ;
2023-02-02 15:39:42 +00:00
2022-07-01 12:45:43 +00:00
$msg [ 'cancel' ] = 0 ;
$msg [ 'delete' ] = 0 ;
$msg [ 'to' ] = '' ;
$msg [ 'da' ] = 0 ;
2023-01-10 16:29:32 +00:00
//Нормируем типы сообщений
2022-07-01 12:45:43 +00:00
if ( preg_match ( " /private \ [(.*?) \ ]/ " , $_POST [ 'msg' ], $msg [ 'to' ])) {
$msg [ 'to' ] = $msg [ 'to' ][ 1 ];
$_POST [ 'msg' ] = str_replace ( 'private[' . $msg [ 'to' ] . ']' , 'private [' . $msg [ 'to' ] . ']' , $_POST [ 'msg' ]);
$msg [ 'to' ] = '' ;
} elseif ( preg_match ( " /to \ [(.*?) \ ]/ " , $_POST [ 'msg' ], $msg [ 'to' ])) {
$msg [ 'to' ] = $msg [ 'to' ][ 1 ];
$_POST [ 'msg' ] = str_replace ( 'to[' . $msg [ 'to' ] . ']' , 'to [' . $msg [ 'to' ] . ']' , $_POST [ 'msg' ]);
$msg [ 'to' ] = '' ;
}
if ( preg_match ( " /private \ [(.*?) \ ]/ " , $_POST [ 'msg' ], $msg [ 'to' ])) {
$msg [ 'to' ] = trim ( $msg [ 'to' ][ '1' ], ' ' );
$msg [ 'type' ] = 3 ;
$_POST [ 'msg' ] = str_replace ( 'private [' . $msg [ 'to' ] . ']' , ' ' , $_POST [ 'msg' ]);
} elseif ( preg_match ( " /to \ [(.*?) \ ]/ " , $_POST [ 'msg' ], $msg [ 'to' ])) {
$msg [ 'to' ] = trim ( $msg [ 'to' ][ '1' ], ' ' );
$msg [ 'type' ] = 2 ;
$_POST [ 'msg' ] = str_replace ( 'to [' . $msg [ 'to' ] . ']' , ' ' , $_POST [ 'msg' ]);
}
2023-01-10 16:29:32 +00:00
if ( $u -> info [ 'admin' ] == 0 ) { //Т У Т SPAM
2023-02-02 15:39:42 +00:00
if ( $msg [ 'to' ] != '' && ! isset ( $admq [ 'id' ]) && $msg [ 'type' ] == 3 ) {
2022-12-19 18:26:14 +00:00
$admq = Db :: getRow ( 'select id, admin from users where login = ? and admin > 0' , [ $msg [ 'to' ]]);
2022-07-01 12:45:43 +00:00
}
if ( ! isset ( $admq [ 'id' ])) {
2023-01-10 16:29:32 +00:00
$msg [ 'fspam' ] = $filter -> spamFiltr ( str_replace ( 'точка' , '.' , str_replace ( 'р у ' , 'ru' , $_POST [ 'msg' ])));
2022-07-01 12:45:43 +00:00
if ( $msg [ 'fspam' ] != '0' ) {
$msg [ 'spam' ] = 1 ;
$msg [ 'delete' ] = 1 ;
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>В нашем чате запрещается сообщать ссылки на атльтернативные проекты. Повторные попытки могут привести к блокировке персонажа.</small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
}
if ( $msg [ 'spam' ] == 1 && $u -> info [ 'molch1' ] < time () && $u -> info [ 'admin' ] == 0 ) {
2022-12-19 18:26:14 +00:00
$mban = $u -> testAction (
'`uid` = "' . $u -> info [ 'id' ] . '" AND `time` >= ' . strtotime (
'now 00:00:00'
) . ' AND `vars` = "msg_bans" LIMIT 1' , 1
);
2022-07-01 12:45:43 +00:00
if ( ! isset ( $mban [ 'id' ])) {
$u -> addAction ( time (), 'msg_bans' , '1' );
$mban [ 'vals' ] = 0 ;
} else {
2022-12-19 18:26:14 +00:00
mysql_query (
'UPDATE `actions` SET `vals` = `vals` + 1 WHERE `id` = "' . $mban [ 'id' ] . '" LIMIT 1'
);
2022-07-01 12:45:43 +00:00
$msg [ 'delete' ] = time ();
}
if ( $mban [ 'vals' ] + 1 < 2 ) {
$msg [ 'fspam' ] = str_replace ( '%' , '</b>,<b>' , $msg [ 'fspam' ]);
$msg [ 'fspam' ] = '<b>' . ltrim ( $msg [ 'fspam' ], '0</b>,<b>' ) . '</b>' ;
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>В нашем чате запрещается сообщать ссылки на атльтернативные проекты. Запрещенные слова: ' . $msg [ 'fspam' ] . '. Предупреждения [' . ( $mban [ 'vals' ] + 1 ) . '/1]</small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
} else {
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>В нашем чате запрещается сообщать ссылки на атльтернативные проекты. Вы наказаны за нарушение правил общения.</small>","Black","1","1","0"]);' ;
2023-01-28 02:24:37 +00:00
$cmsg = new ChatMessage ();
$cmsg -> setCity ( $u -> info [ 'city' ]);
$cmsg -> setLogin ( 'Комментатор' );
$cmsg -> setText ( " Персонаж { $u -> info [ 'login' ] } [ { $u -> info [ 'level' ] } ] был наказан за нарушение правил общения. " );
$cmsg -> setType ( 6 );
$chat -> sendMsg ( $cmsg );
$molchTime = time () + 60 * 60 ;
2022-12-19 18:26:14 +00:00
mysql_query (
2023-01-28 02:24:37 +00:00
' UPDATE `users` SET
`molch1` = ' . $molchTime . ' ,
`molch2` = ' . $molchTime . ' ,
`info_delete` = ' . $molchTime . '
WHERE `id` = ' . $u->info[' id ' ]);
2023-01-10 16:29:32 +00:00
$rtxt = $rang . ' "' . $u -> info [ 'login' ] . '" <small><font color=red>Автоинформатор</font></small>: ' . $msg [ 'text' ] . ' [' . $msg [ 'fspam' ] . '].' ;
2022-12-19 18:26:14 +00:00
mysql_query (
" INSERT INTO `users_delo` (`uid`,`ip`,`city`,`time`,`text`,`login`,`type`) VALUES (' " . $u -> info [ 'id' ] . " ',' " . $_SERVER [ 'REMOTE_ADDR' ] . " ',' " . $u -> info [ 'city' ] . " ',' " . time (
) . " ',' " . $rtxt . " ',' " . $u -> info [ 'login' ] . " ',0) "
);
2022-07-01 12:45:43 +00:00
}
}
}
2023-02-01 10:21:36 +00:00
unset ( $admq );
2022-07-01 12:45:43 +00:00
}
2022-12-19 18:26:14 +00:00
$qix = mysql_fetch_array (
mysql_query (
'SELECT `id` FROM `friends` WHERE `ignor` > 0 AND `login_ignor` = "' . mysql_real_escape_string (
$pl [ 'login' ]
) . '" AND (`user_ignor` = "' . $u -> info [ 'login' ] . '" OR `user` = "' . $u -> info [ 'id' ] . '") LIMIT 1'
)
);
2022-07-01 12:45:43 +00:00
if ( isset ( $qix [ 'id' ])) {
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<b>В а с добавили в игнор</b>: Вы не можете отправлять сообщения персонажу "' . htmlspecialchars (
2022-12-19 18:26:14 +00:00
$msg [ 'to' ]
) . '".","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
$msg [ 'cancel' ] ++ ;
}
if ( $msg [ 'type' ] == 3 && $msg [ 'to' ] == 'klan' ) {
if ( $u -> info [ 'clan' ] == 0 ) {
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>Вы не являетесь частью одного из <b>Кланов</b> и не можете общаться по этому каналу.</small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
$msg [ 'cancel' ] ++ ;
} else {
$msg [ 'to' ] = 'k' . $u -> info [ 'clan' ];
$msg [ 'da' ] = 1 ;
}
}
if ( $u -> info [ 'molch1' ] > time ()) {
if ( $msg [ 'to' ] != '' && ! isset ( $admq [ 'id' ])) {
2022-12-19 18:26:14 +00:00
$admq = mysql_fetch_array (
mysql_query (
'SELECT `id`,`admin` FROM `users` WHERE `login` = "' . mysql_real_escape_string (
$msg [ 'to' ]
) . '" AND `admin` > 0 LIMIT 1'
)
);
2022-07-01 12:45:43 +00:00
if ( $msg [ 'type' ] != 3 ) {
unset ( $admq );
}
}
if ( ! isset ( $admq [ 'id' ])) {
$msg [ 'molch' ] = 1 ;
}
}
if ( $msg [ 'cancel' ] == 0 ) {
if ( is_array ( $msg [ 'to' ])) {
$msg [ 'to' ] = '' ;
}
if ( $msg [ 'type' ] == 3 && $msg [ 'da' ] > 0 ) {
$msg [ 'type' ] = - 3 ;
}
$msw = $chat -> smileText ( $_POST [ 'msg' ], $msg [ 'to' ], $u -> info [ 'room' ], $u -> info [ 'city' ]);
$nosend = 0 ;
if ( $msw ) {
$_POST [ 'msg' ] = $msw ;
$msg [ 'to' ] = '' ;
$msg [ 'type' ] = 21 ;
if ( $msw == 'USER IS FALSE' ) {
2022-12-19 18:26:14 +00:00
$r [ 'js' ] .= 'chat.sendMsg(["new","' . time (
2023-01-10 16:29:32 +00:00
) . '","6","","' . $u -> info [ 'login' ] . '","<small>Персонажа нет в данной комнате.</small>","Black","1","1","0"]);' ;
2022-07-01 12:45:43 +00:00
$nosend = 1 ;
}
} elseif ( $chat -> str_count ( $_POST [ 'msg' ], 3 ) == '/e ' ) {
$msg [ 'type' ] = 21 ;
$_POST [ 'msg' ] = ltrim ( $_POST [ 'msg' ], '/e ' );
2023-01-10 16:29:32 +00:00
} elseif ( $chat -> str_count ( $_POST [ 'msg' ], 3 ) == '/е ' ) {
2022-07-01 12:45:43 +00:00
$msg [ 'type' ] = 21 ;
2023-01-10 16:29:32 +00:00
$_POST [ 'msg' ] = ltrim ( $_POST [ 'msg' ], '/е ' );
2022-07-01 12:45:43 +00:00
} elseif ( $chat -> str_count ( $_POST [ 'msg' ], 4 ) == ' /e ' ) {
$msg [ 'type' ] = 21 ;
$_POST [ 'msg' ] = ltrim ( $_POST [ 'msg' ], ' /e ' );
2023-01-10 16:29:32 +00:00
} elseif ( $chat -> str_count ( $_POST [ 'msg' ], 4 ) == ' /е ' ) {
2022-07-01 12:45:43 +00:00
$msg [ 'type' ] = 21 ;
2023-01-10 16:29:32 +00:00
$_POST [ 'msg' ] = ltrim ( $_POST [ 'msg' ], ' /е ' );
2022-07-01 12:45:43 +00:00
}
if ( $nosend == 0 ) {
2023-01-10 18:14:47 +00:00
//Именные смайлики
2023-01-10 16:29:32 +00:00
$_POST [ 'msg' ] = str_replace ( '%usersmile%-' , '%usе rsmilе %-' , $_POST [ 'msg' ]);
2022-07-01 12:45:43 +00:00
$usml = explode ( ',' , $u -> info [ 'add_smiles' ]);
$i = 0 ;
while ( $i < count ( $usml )) {
2022-12-19 18:26:14 +00:00
$_POST [ 'msg' ] = str_replace (
':' . $usml [ $i ] . ':' , ':%usersmile%-' . $usml [ $i ] . ':' , $_POST [ 'msg' ]
);
2022-07-01 12:45:43 +00:00
$i ++ ;
}
2023-01-28 02:24:37 +00:00
$cmsg = new ChatMessage ();
$cmsg -> setInvis ( $u -> info [ 'invis' ]);
$cmsg -> setDa ( $msg [ 'da' ]);
$cmsg -> setDelete ( $msg [ 'delete' ]);
$cmsg -> setMolch ( $msg [ 'molch' ]);
2023-02-02 15:39:42 +00:00
$cmsg -> setLogin ( $u -> info [ 'login' ]);
2023-01-28 02:24:37 +00:00
$cmsg -> setTo ( $msg [ 'to' ]);
$cmsg -> setCity ( $u -> info [ 'city' ]);
$cmsg -> setRoom ( $u -> info [ 'room' ]);
$cmsg -> setType ( $msg [ 'type' ]);
$cmsg -> setSpam ( $msg [ 'spam' ]);
$cmsg -> setText ( $_POST [ 'msg' ]);
2023-02-02 15:39:42 +00:00
$cmsg -> setColor ( $u -> info [ 'chatColor' ]);
2023-01-28 02:24:37 +00:00
$chat -> sendMsg ( $cmsg );
2022-07-01 12:45:43 +00:00
}
}
2023-01-10 16:29:32 +00:00
if ( $msg [ 'type' ] == 2 && mb_convert_case ( $msg [ 'to' ], MB_CASE_LOWER ) == 'комментатор' ) {
2023-01-28 02:24:37 +00:00
$cmsg = new ChatMessage ();
2023-01-10 16:29:32 +00:00
if ( preg_match ( " /анекдот/i " , mb_convert_case ( $_POST [ 'msg' ], MB_CASE_LOWER ))) {
2022-07-01 12:45:43 +00:00
$text_com = '' ;
2022-12-19 18:26:14 +00:00
$sp_all = mysql_fetch_array (
mysql_query (
'SELECT COUNT(`id`) FROM `a_com_act` WHERE `act` = "' . $com_act . '" AND `time` > "' . time (
) . '" LIMIT 5'
)
);
2022-07-01 12:45:43 +00:00
if ( $sp_all [ 0 ] > 0 ) {
if ( rand ( 0 , 100 ) < 75 ) {
$text_com = [
2023-01-10 18:14:47 +00:00
'Отстань попрошайка! ... Ищу анекдоты, интернет не маленький!' ,
2023-01-10 16:29:32 +00:00
'Подожди... Сейчас что-нибудь найду' ,
'Почти нашел...' ,
'Вот один есть, но он не интересный...' ,
'А свет на центральной площади тьму "пинает"... Эх...' ,
2022-07-01 12:45:43 +00:00
];
$text_com = $text_com [ rand ( 0 , ( count ( $text_com ) - 1 ))];
}
} else {
$sp_all = mysql_fetch_array ( mysql_query ( 'SELECT COUNT(`id`) FROM `a_com_anekdot`' ));
$sp_all = rand ( 1 , $sp_all [ 0 ]);
2022-12-19 18:26:14 +00:00
$sp_all = mysql_fetch_array (
mysql_query ( 'SELECT * FROM `a_com_anekdot` WHERE `id` = "' . $sp_all . '" LIMIT 1' )
);
2022-07-01 12:45:43 +00:00
if ( isset ( $sp_all [ 'id' ])) {
$text_com = $sp_all [ 'text' ];
$text_com = str_replace ( " <br> " , " <br> " , $text_com );
$text_com = str_replace ( " <br /> " , " <br /> " , $text_com );
$text_com = str_ireplace ( " \r \n " , " " , $text_com );
$text_com = str_replace ( " " , " " , $text_com );
2023-01-10 16:29:32 +00:00
$text_com = '<font color=red><b>Анекдот</b></font>:<br> ' . $text_com . '<br>' ;
2022-07-01 12:45:43 +00:00
} else {
2023-01-10 16:29:32 +00:00
$text_com = 'Анекдот из головы вылетел...' ;
2022-07-01 12:45:43 +00:00
}
2022-12-19 18:26:14 +00:00
mysql_query (
'INSERT INTO `a_com_act` (`act`,`time`,`uid`) VALUES ("0","' . ( time (
) + 60 ) . '","' . $u -> info [ 'id' ] . '")'
);
2022-07-01 12:45:43 +00:00
}
if ( $text_com != '' ) {
2023-01-28 02:24:37 +00:00
$cmsg -> setText ( $text_com );
2022-07-01 12:45:43 +00:00
}
} else {
include ( 'commentator.php' );
if ( $comment != '' ) {
2023-01-28 02:24:37 +00:00
$cmsg -> setText ( $comment );
2022-07-01 12:45:43 +00:00
}
}
2023-01-28 02:24:37 +00:00
if ( $cmsg -> getText ()) {
$cmsg -> setLogin ( 'Комментатор' );
$cmsg -> setTo ( $u -> info [ 'login' ]);
$cmsg -> setCity ( $u -> info [ 'city' ]);
$cmsg -> setRoom ( $u -> info [ 'room' ]);
$cmsg -> setType ( 2 );
$chat -> sendMsg ( $cmsg );
}
2022-07-01 12:45:43 +00:00
}
2022-12-19 18:26:14 +00:00
mysql_query (
'UPDATE `users` SET `afk` = "",`dnd` = "",`timeMain` = "' . time (
) . '" WHERE `id` = "' . $u -> info [ 'id' ] . '" LIMIT 1'
);
2022-07-01 12:45:43 +00:00
}
}
2023-01-10 16:29:32 +00:00
//Получаем список онлайн
2022-07-01 12:45:43 +00:00
if ( $_GET [ 'r1' ] != 0 ) {
2023-02-13 17:24:48 +00:00
// $_GET['r3'] передаётся из onlineList.js как переключатель "все пользователи\пользователи в комнате".
define ( 'BOT_ROOM' , 303 );
2022-07-01 12:45:43 +00:00
$ar_id = 0 ;
$ar_lvl = 0 ;
2022-12-19 18:26:14 +00:00
$ar_all = '0' ;
2022-07-01 12:45:43 +00:00
$usl = [];
$cw = [];
$usid = [];
2023-02-13 17:24:48 +00:00
$onlineListQuery = ' select
users . id , pass , sex , dnow , timeMain , bot , atack , afk , dnd , banned , molch1 ,
room , city , cityreg , online , align , clan , login , level , inTurnir , battle , invis , inUser , x , y
from users left join stats on users . id = stats . id
where
(
( room = ? and ' . (int)$_GET[' r3 '] . ' != 1 ) or
( ' . (int)$_GET[' r3 '] . ' = 1 and pass not like ? )
) and
mail != ? and
room != ?
order by inUser desc , online desc , login desc ' ;
$sp = Db :: getRows ( $onlineListQuery , [ $u -> info [ 'room' ], '%saint%' , '' , BOT_ROOM ]);
foreach ( $sp as $pl ) {
// }
//
// $sp = mysql_query(
// 'SELECT
// `u`.`pass`,
// `u`.`sex`,
// `s`.`dnow`,
// `u`.`timeMain`,
// `s`.`bot`,`s`.`atack`,`u`.`afk`,`u`.`dnd`,`u`.`banned`,`u`.`molch1`,`u`.`room`,`u`.`id`,`u`.`city`,`u`.`cityreg`,`u`.`online`,`u`.`align`,
// `u`.`clan`,`u`.`login`,`u`.`level`,`u`.`inTurnir`,`u`.`battle`,`u`.`invis`,`u`.`inUser`,`s`.`x`,`s`.`y`
//FROM
//`users` AS `u`
// LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id`
//WHERE (
// (`u`.`room` = "' . $u->info['room'] . '" AND "' . mysql_real_escape_string((int)$_GET['r3']) . '" != "1") OR
// ("' . mysql_real_escape_string((int)$_GET['r3']) . '" = "1" AND `pass` NOT LIKE "%saint%")) AND
// `mail`!="No E-mail" AND
// `room` != "303"
// ORDER BY `u`.`inUser` DESC,`u`.`online` DESC,`u`.`login` DESC LIMIT 1000'
// );
// $ar_id = 0;
// $ar_lvl = 0;
// $ar_all = '0';
// $usl = [];
// $cw = [];
// $usid = [];
// while ($pl = mysql_fetch_array($sp)) {
2022-07-01 12:45:43 +00:00
$ysee = 1 ;
if ( $pl [ 'inUser' ] > 0 ) {
if ( $pl [ 'inTurnir' ] == 0 ) {
$ysee = 0 ;
} else {
if ( $pl [ 'online' ] < time () - 120 ) {
2022-12-30 19:03:37 +00:00
User :: setOnline ( $pl [ 'id' ]);
2022-07-01 12:45:43 +00:00
}
}
} else {
if ( $pl [ 'inTurnir' ] > 0 ) {
$ysee = 0 ;
}
}
if ( ! isset ( $usl [ $pl [ 'login' ]])) {
$ysee = 1 ;
}
if (
(
( int ) $_GET [ 'r3' ] != 1 &&
$u -> info [ 'dnow' ] != $pl [ 'dnow' ]
) ||
(
$pl [ 'room' ] >= 362 &&
$pl [ 'room' ] <= 366 &&
( int ) $_GET [ 'r3' ] != 1 &&
(
$pl [ 'x' ] != $u -> info [ 'x' ] ||
$pl [ 'y' ] != $u -> info [ 'y' ] ||
$pl [ 'room' ] != $u -> info [ 'room' ]
)
) ||
$usid [ $pl [ 'login' ]]
) {
$ysee = 0 ;
}
$usl [ $pl [ 'login' ]] = $pl [ 'id' ];
if (
(
$pl [ 'online' ] > time () - 520 ||
$pl [ 'inUser' ] > 0
) &&
(
$pl [ 'bot' ] != 1 ||
$pl [ 'pass' ] == '212121q'
) &&
$pl [ 'banned' ] == 0 &&
$ysee == 1
) {
$usid [ $pl [ 'login' ]] = true ;
if ( $pl [ 'invis' ] != 1 && $pl [ 'invis' ] < time ()) {
if ( $pl [ 'clan' ] > 0 ) {
if ( $u -> info [ 'clan' ] > 0 && $pl [ 'clan' ] != $u -> info [ 'clan' ]) {
if ( ! isset ( $cw [ 'war' ][ $pl [ 'clan' ]][ $u -> info [ 'clan' ]])) {
2022-12-19 18:26:14 +00:00
$pl [ 'cwar' ] = mysql_fetch_array (
mysql_query (
' SELECT `id` , `type` FROM `clan_wars` WHERE
2022-07-01 12:45:43 +00:00
(( `clan1` = " ' . $pl['clan'] . ' " AND `clan2` = " ' . $u->info ['clan'] . ' " ) OR ( `clan2` = " ' . $pl['clan'] . ' " AND `clan1` = " ' . $u->info ['clan'] . ' " )) AND
2022-12-19 18:26:14 +00:00
`time_finish` > ' . time() . ' LIMIT 1 '
)
);
2022-07-01 12:45:43 +00:00
if ( isset ( $pl [ 'cwar' ][ 'id' ])) {
$cw [ 'war' ][ $pl [ 'clan' ]][ $u -> info [ 'clan' ]] = $pl [ 'cwar' ][ 'type' ];
} else {
$cw [ 'war' ][ $pl [ 'clan' ]][ $u -> info [ 'clan' ]] = 0 ;
}
}
if ( $cw [ 'war' ][ $pl [ 'clan' ]][ $u -> info [ 'clan' ]] > 0 ) {
$pl [ 'atack' ] = $cw [ 'war' ][ $pl [ 'clan' ]][ $u -> info [ 'clan' ]];
}
}
if ( ! isset ( $cw [ $pl [ 'clan' ]])) {
2022-12-19 18:26:14 +00:00
$pl [ 'clan' ] = mysql_fetch_array (
mysql_query ( 'SELECT `name_mini` FROM `clan` WHERE `id` = "' . $pl [ 'clan' ] . '" LIMIT 1' )
);
2022-07-01 12:45:43 +00:00
} else {
$pl [ 'clan' ] = $cw [ $pl [ 'clan' ]];
}
$pl [ 'clan' ] = $pl [ 'clan' ][ 'name_mini' ];
}
if ( $pl [ 'atack' ] > time () || $pl [ 'atack' ] == 1 || $pl [ 'atack' ] == 2 ) {
if ( $pl [ 'atack' ] != 2 ) {
$pl [ 'atack' ] = 1 ;
}
} else {
$pl [ 'atack' ] = 0 ;
}
2022-12-19 18:26:14 +00:00
$trvm = mysql_fetch_array (
mysql_query (
'SELECT `id`,`name` FROM `eff_users` WHERE `uid` = "' . $pl [ 'id' ] . '" AND (`id_eff` = "4" OR `id_eff` = "6") AND `delete` = "0" ORDER BY `id_eff` ASC LIMIT 6'
)
);
2022-07-01 12:45:43 +00:00
$trvm = $trvm [ 'name' ];
$r [ 'list' ] .= '"' . $r [ 'xu' ] . '":["' . $pl [ 'id' ] . '","' . $pl [ 'login' ] . '","' . $pl [ 'level' ] . '","' . $pl [ 'align' ] . '","' . $pl [ 'clan' ] . '","' . $pl [ 'cityreg' ] . '","' . $pl [ 'city' ] . '","' . $pl [ 'room' ] . '","' . $pl [ 'afk' ] . '","' . $pl [ 'dnd' ] . '","' . $pl [ 'banned' ] . '","' . $pl [ 'molch1' ] . '","' . $pl [ 'battle' ] . '","' . $pl [ 'atack' ] . '","' . $trvm . '","' . ( $pl [ 'sex' ] * 0 ) . '","' . $pl [ 'align2' ] . '"],' ;
$ar_id += $pl [ 'id' ];
$ar_lvl += $pl [ 'level' ];
2022-12-19 18:26:14 +00:00
$ar_all .= $pl [ 'align' ] . $pl [ 'clan' ] . $pl [ 'molch1' ] . $pl [ 'banned' ] . $pl [ 'battle' ] . 1 ;
2022-07-01 12:45:43 +00:00
}
$r [ 'xu' ] ++ ;
}
}
unset ( $pl , $sp );
$r [ 'list' ] = rtrim ( $r [ 'list' ], ',' );
$r [ 'list' ] = '{' . $r [ 'list' ] . '}' ;
}
function json_fix_cyr ( $json_str )
{
return $json_str ;
}
2023-01-10 16:29:32 +00:00
//Получаем сообщения
2022-07-01 12:45:43 +00:00
if ( isset ( $_GET [ 'mid' ]) && ! isset ( $_POST [ 'mid' ])) {
$_POST [ 'mid' ] = $_GET [ 'mid' ];
}
$i = 0 ;
$l = 0 ;
2022-12-19 18:26:14 +00:00
$sp = mysql_query (
' SELECT `nosee` , `frv` , `id` , `dn` , `active` , `invis` , `login` , `to` , `city` , `room` , `time` , `type` , `spam` , `text` , `toChat` , `color` , `typeTime` , `sound` , `global` , `delete` , `molch` , `da` FROM `chat` WHERE
2022-06-06 21:30:34 +00:00
(
(
`delete` > 0
AND
2022-07-01 12:45:43 +00:00
`time` > ' . (time() - 360) . '
2022-06-06 21:30:34 +00:00
)
OR
(
2022-07-01 12:45:43 +00:00
`time` > ' . (time() - 120) . '
2022-06-06 21:30:34 +00:00
OR
(
`time` = - 1
AND
(
2022-07-01 12:45:43 +00:00
`to` = " ' . $u->info ['login'] . ' "
2022-06-06 21:30:34 +00:00
OR
`type` = 8
)
)
OR
(
`time` < - 1
AND
2022-07-01 12:45:43 +00:00
`time` > - ' . time() . '
2022-06-06 21:30:34 +00:00
AND
(
2022-07-01 12:45:43 +00:00
`to` = " ' . $u->info ['login'] . ' "
2022-06-06 21:30:34 +00:00
OR
`type` = 8
OR
`to` = " "
)
)
)
)
AND
`new` = " 1 "
AND
(
2022-07-01 12:45:43 +00:00
`id` > ' . ((int)$_POST[' mid ']) . '
2022-06-06 21:30:34 +00:00
OR
`delete` > 0
OR
`spam` > 0
OR
(
`time` < 0
AND
2022-07-01 12:45:43 +00:00
`time` > - ' . time() . '
2022-06-06 21:30:34 +00:00
AND
(
2022-07-01 12:45:43 +00:00
`to` = " ' . $u->info ['login'] . ' "
2022-06-06 21:30:34 +00:00
OR
`to` = " "
)
)
)
2022-12-19 18:26:14 +00:00
ORDER BY `id` ASC '
);
2022-07-01 12:45:43 +00:00
while ( $pl = mysql_fetch_array ( $sp )) {
if ( $pl [ 'delete' ] > 0 ) {
$r [ 'msg' ] .= ',"m' . $i . '":["' . $pl [ 'id' ] . '","","delete","","","","","","","0","0","0","1","",""]' ;
}
if ( $pl [ 'type' ] == 6 || $pl [ 'type' ] == 8 ) {
$pl [ 'city' ] = $u -> info [ 'city' ];
}
$see = 1 ;
2022-12-19 18:26:14 +00:00
if ( $pl [ 'type' ] == 8 && isModerOrAdmin ( $u -> info )) {
2022-07-01 12:45:43 +00:00
$see = 0 ;
}
if (( $pl [ 'type' ] > 0 && $pl [ 'type' ] < 4 ) || $pl [ 'type' ] == - 3 ) {
$pl [ 'room' ] = $u -> info [ 'room' ];
$pl [ 'city' ] = $u -> info [ 'city' ];
}
2023-01-10 16:29:32 +00:00
//Проверки на доступ к просмотру
2022-07-01 12:45:43 +00:00
if (
((
(
$pl [ 'type' ] == 3 ||
$pl [ 'type' ] == 4
) &&
(
$pl [ 'city' ] == $u -> info [ 'city' ] ||
$pl [ 'global' ] == 1
)
) ||
(
(
$pl [ 'type' ] == 5 ||
$pl [ 'type' ] == 6 ||
(
2022-12-19 18:26:14 +00:00
$pl [ 'type' ] == 8 && isModerOrAdmin ( $u -> info )
2022-07-01 12:45:43 +00:00
)
) &&
(
$pl [ 'city' ] == $u -> info [ 'city' ] ||
$pl [ 'global' ] == 1
)
) ||
(
$pl [ 'type' ] == 7 &&
$pl [ 'city' ] == $u -> info [ 'city' ] &&
$pl [ 'room' ] == $u -> info [ 'room' ]
) ||
(
$pl [ 'type' ] == 6 &&
(
$pl [ 'city' ] == $u -> info [ 'city' ] ||
$pl [ 'global' ] == 1
)
) ||
$pl [ 'type' ] == 9 ||
$pl [ 'type' ] == 10
) &&
$pl [ 'to' ] != '' &&
$pl [ 'login' ] != $u -> info [ 'login' ] &&
$pl [ 'to' ] != $u -> info [ 'login' ]
) {
$n = 0 ;
$ex = explode ( ',' , $pl [ 'to' ]);
$j = 0 ;
while ( $j < count ( $ex )) {
if ( trim ( $ex [ $j ], ' ' ) == $u -> info [ 'login' ]) {
$n ++ ;
}
$j ++ ;
}
if ( $n == 0 ) {
$see = 0 ;
}
unset ( $n , $j , $ex );
}
2023-01-10 16:29:32 +00:00
//Клановое сообщение (по всем городам)
2022-07-01 12:45:43 +00:00
if ( $pl [ 'type' ] == - 3 && ( $pl [ 'to' ] == 'k' . $u -> info [ 'clan' ] || $u -> info [ 'admin' ] > 0 )) {
$pl [ 'type' ] = 3 ;
if ( $pl [ 'to' ] == 'k' . $u -> info [ 'clan' ]) {
$pl [ 'to' ] = 'klan' ;
}
$see = 1 ;
} elseif ( $pl [ 'type' ] == - 3 ) {
$see = 0 ;
}
2023-01-10 16:29:32 +00:00
//Системное сообщение только в этой комнате
2022-07-01 12:45:43 +00:00
if (
$pl [ 'type' ] == 6 &&
$pl [ 'room' ] > 0 &&
$pl [ 'room' ] != $u -> info [ 'room' ] &&
$pl [ 'to' ] == ''
) {
$see = 0 ;
}
2023-01-10 16:29:32 +00:00
//Системное сообщение по всему городу
2022-07-01 12:45:43 +00:00
if ( $pl [ 'type' ] == 8 && $pl [ 'city' ] != $u -> info [ 'city' ] && $pl [ 'global' ] == 0 ) {
$see = 0 ;
}
2023-01-10 16:29:32 +00:00
//Сообщение с молчанкой
2022-07-01 12:45:43 +00:00
if ( $pl [ 'molch' ] > 0 ) {
$see = 0 ;
}
2023-01-10 16:29:32 +00:00
//Сообщение отправлено в другой комнате
2022-07-01 12:45:43 +00:00
if (
(
$pl [ 'type' ] == 1 ||
$pl [ 'type' ] == 2
) &&
(
$pl [ 'room' ] != $u -> info [ 'room' ] ||
$pl [ 'city' ] != $u -> info [ 'city' ]
) &&
(
$pl [ 'global' ] == 0 ||
$_COOKIE [ 'chatCfg11' ] == 0
)
) {
$see = 0 ;
}
2023-01-10 16:29:32 +00:00
//Сообщение прочее, в другом городе
2022-07-01 12:45:43 +00:00
if ( $pl [ 'city' ] != $u -> info [ 'city' ] && $pl [ 'global' ] == 0 ) {
$see = 0 ;
}
2023-01-10 16:29:32 +00:00
//Глобал
2022-07-01 12:45:43 +00:00
if ( $pl [ 'global' ] == 1 && $pl [ 'city' ] == $u -> info [ 'city' ] && $pl [ 'type' ] != - 3 ) {
$see = 1 ;
}
2023-01-10 16:29:32 +00:00
//Пещерное сообщение
2022-07-01 12:45:43 +00:00
if ( $pl [ 'dn' ] > 0 && $u -> info [ 'dnow' ] != $pl [ 'dn' ]) {
$see = 0 ;
}
$modr = 0 ;
2022-12-19 18:26:14 +00:00
if ( isModerOrAdmin ( $u -> info )) {
2022-07-01 12:45:43 +00:00
$modr = 1 ;
}
if ( $pl [ 'login' ] != $u -> info [ 'login' ] && $pl [ 'nosee' ] != 0 && $u -> info [ 'id' ] != $pl [ 'nosee' ] && $u -> info [ 'admin' ] == 0 && $modr == 0 ) {
$see = 0 ;
} else {
if ( $pl [ 'nosee' ] != 0 && $pl [ 'login' ] != $u -> info [ 'login' ]) {
2023-01-10 16:29:32 +00:00
$noseein = 'скрыто' ;
2022-07-01 12:45:43 +00:00
if ( $u -> info [ 'id' ] == $pl [ 'nosee' ]) {
2023-01-10 16:29:32 +00:00
$noseein = 'ваш реферал' ;
2022-07-01 12:45:43 +00:00
}
$pl [ 'text' ] = '<span style=\"padding:0 5px 0 5px;background-color:#FFC;\"><font color=red><small>[' . $noseein . ']</small></font> ' . $pl [ 'text' ] . '</span>' ;
if ( $u -> info [ 'admin' ] > 0 || $modr == 1 ) {
$see = 1 ;
}
}
}
if ( $see == 1 && $pl [ 'delete' ] == 0 && $pl [ 'login' ] != '' ) {
2022-12-19 18:26:14 +00:00
$qix = mysql_fetch_array (
mysql_query (
'SELECT `id` FROM `friends` WHERE `ignor` > 0 AND `login_ignor` = "' . mysql_real_escape_string (
$pl [ 'login' ]
) . '" AND (`user_ignor` = "' . $u -> info [ 'login' ] . '" OR `user` = "' . $u -> info [ 'id' ] . '") LIMIT 1'
)
);
2022-07-01 12:45:43 +00:00
if ( isset ( $qix [ 'id' ])) {
$see = 0 ;
}
unset ( $qix );
}
if ( $see == 1 && $pl [ 'delete' ] == 0 ) {
if ( $pl [ 'time' ] < 0 ) {
if ( $pl [ 'to' ] == '' ) {
$lmsch = mysql_fetch_array ( mysql_query ( 'SELECT `id` FROM `chat` ORDER BY `id` DESC LIMIT 1' ));
if ( isset ( $lmsch [ 'id' ])) {
$lmsch [ 'id' ] ++ ;
2022-12-19 18:26:14 +00:00
mysql_query (
'UPDATE `chat` SET `id` = "' . $lmsch [ 'id' ] . '",`time` = "' . time (
) . '" WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1'
);
2022-07-01 12:45:43 +00:00
$pl [ 'id' ] = $lmsch [ 'id' ];
} else {
mysql_query ( 'UPDATE `chat` SET `time` = "' . time () . '" WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1' );
}
} else {
mysql_query ( 'UPDATE `chat` SET `time` = "' . time () . '" WHERE `id` = "' . $pl [ 'id' ] . '" LIMIT 1' );
}
$pl [ 'time' ] = time ();
}
if ( $pl [ 'spam' ] > 0 ) {
$r [ 'msg' ] .= ',"' . $i . '":{"s":"' . $pl [ 'id' ] . '"}' ;
} else {
$reimg = [];
2022-12-19 18:26:14 +00:00
if ( preg_match_all (
" / \ [img \ [(.*?) \ ] \ ] \ [1 \ ]/ " , $pl [ 'text' ], $reimg
) && ( $u -> info [ 'admin' ] > 0 || $pl [ 'type' ] == 5 || $pl [ 'type' ] == 6 || $pl [ 'type' ] == 10 || $pl [ 'type' ] == 11 )) {
2022-07-01 12:45:43 +00:00
$k = 0 ;
while ( $k <= count ( $reimg [ 1 ])) {
2022-12-19 18:26:14 +00:00
$pl [ 'text' ] = str_replace (
'[img[' . $reimg [ 1 ][ $k ] . ']][1]' ,
2023-03-31 18:30:14 +00:00
'<img src=//img.new-combats.tech/i/' . $reimg [ 1 ][ $k ] . ' height=19>' , $pl [ 'text' ]
2022-12-19 18:26:14 +00:00
);
2022-07-01 12:45:43 +00:00
$k ++ ;
}
}
2022-12-19 18:26:14 +00:00
if ( preg_match_all (
" / \ [img \ [(.*?) \ ] \ ]/ " , $pl [ 'text' ], $reimg
) && ( $u -> info [ 'admin' ] > 0 || $pl [ 'type' ] == 5 || $pl [ 'type' ] == 6 || $pl [ 'type' ] == 10 || $pl [ 'type' ] == 11 )) {
2022-07-01 12:45:43 +00:00
$k = 0 ;
while ( $k <= count ( $reimg [ 1 ])) {
2022-12-19 18:26:14 +00:00
$pl [ 'text' ] = str_replace (
2023-03-31 18:30:14 +00:00
'[img[' . $reimg [ 1 ][ $k ] . ']]' , '<img src=//img.new-combats.tech/i/' . $reimg [ 1 ][ $k ] . '>' ,
2022-12-19 18:26:14 +00:00
$pl [ 'text' ]
);
2022-07-01 12:45:43 +00:00
$k ++ ;
}
}
if ( preg_match_all ( " /item \ [(.*?) \ ]/ " , $pl [ 'text' ], $reimg )) {
$k = 0 ;
while ( $k <= count ( $reimg [ 1 ])) {
2022-12-19 18:26:14 +00:00
$pl [ 'text' ] = str_replace (
'item[' . $reimg [ 1 ][ $k ] . ']' ,
2023-01-10 16:29:32 +00:00
'<b oncontextmenu=\"return false;\" onClick=\"alert(\'Функция временно недоступна!\');\" style=\"cursor:pointer;\" class=\"itemsInfo\">Предмет</b>' ,
2022-12-19 18:26:14 +00:00
$pl [ 'text' ]
);
2022-07-01 12:45:43 +00:00
$k ++ ;
}
}
2023-01-10 16:29:32 +00:00
if ( preg_match_all ( " / \ .(?:mp3) $ /i " , $pl [ 'text' ], $reimg )) //Т У Т аудио audio
2022-07-01 12:45:43 +00:00
{
$k = 0 ;
while ( $k <= count ( $reimg [ 1 ])) {
2022-12-19 18:26:14 +00:00
$pl [ 'text' ] = str_replace (
'item[' . $reimg [ 1 ][ $k ] . ']' ,
2023-01-10 16:29:32 +00:00
'<b oncontextmenu=\"return false;\" onClick=\"alert(\'Функция временно недоступна!\');\" style=\"cursor:pointer;\" class=\"itemsInfo\">Аудио запись</b>' ,
2022-12-19 18:26:14 +00:00
$pl [ 'text' ]
);
2022-07-01 12:45:43 +00:00
$k ++ ;
}
}
if ( preg_match_all ( " /item \ [(.*?) \ ]/ " , $pl [ 'text' ], $reimg )) {
$k = 0 ;
while ( $k <= count ( $reimg [ 1 ])) {
2022-12-19 18:26:14 +00:00
$pl [ 'text' ] = str_replace (
'item [' . $reimg [ 1 ][ $k ] . ']' ,
2023-01-10 16:29:32 +00:00
'<b oncontextmenu=\"return false;\" onClick=\"alert(\'Функция временно недоступна!\');\" style=\"cursor:pointer;\" class=\"itemsInfo\">Предмет</b>' ,
2022-12-19 18:26:14 +00:00
$pl [ 'text' ]
);
2022-07-01 12:45:43 +00:00
$k ++ ;
}
}
if ( $pl [ 'type' ] != 3 && ( $pl [ 'invis' ] == 1 || $pl [ 'invis' ] > time ())) {
if ( $u -> info [ 'admin' ] == 0 ) {
2023-01-10 16:29:32 +00:00
$pl [ 'login' ] = '<b><i>Невидимка</i></b>' ;
2022-07-01 12:45:43 +00:00
} else {
2023-01-10 16:29:32 +00:00
$pl [ 'login' ] = '<b><i>Невидимка</i></b></a> <small>(' . $pl [ 'login' ] . ')</small>' ;
2022-07-01 12:45:43 +00:00
}
}
if ( $pl [ 'invis' ] > 0 && ( $pl [ 'type' ] == 1 || $pl [ 'type' ] == 2 )) {
$pl [ 'color' ] = 'Black' ;
}
2022-12-19 18:26:14 +00:00
$r [ 'msg' ] .= ',"m' . $i . '":["' . $pl [ 'id' ] . '","' . $pl [ 'time' ] . '","' . $pl [ 'type' ] . '","' . $pl [ 'login' ] . '","' . $pl [ 'to' ] . '","' . $pl [ 'text' ] . '","' . $pl [ 'color' ] . '","' . $pl [ 'toChat' ] . '","' . $pl [ 'typeTime' ] . '","' . $pl [ 'sound' ] . '","' . $pl [ 'global' ] . '","' . $pl [ 'molch' ] . '","' . $pl [ 'active' ] . '","' . date (
'H:i' , $pl [ 'time' ]
) . '","' . date ( 'd.m.Y H:i' , $pl [ 'time' ]) . '","' . $pl [ 'frv' ] . '","' . $pl [ 'invis' ] . '"]' ;
2022-07-01 12:45:43 +00:00
}
}
if ( $l < $pl [ 'id' ]) {
$l = $pl [ 'id' ];
}
$i ++ ;
}
$r [ 'msg' ] = '{"ld":"' . ( 0 + $l ) . '","id":"' . $i . '"' . $r [ 'msg' ] . '}' ;
2022-12-19 18:26:14 +00:00
2023-01-10 16:29:32 +00:00
//Генерируем ключ
2022-07-01 12:45:43 +00:00
$r [ 'key' ] = md5 ( $u -> room [ 'name' ] . '+' . $ar_id . '+' . $ar_lvl . '+' . $ar_all );
unset ( $ar_id , $ar_lvl );
if ( $_COOKIE [ 'chatCfg12' ] == 0 ) {
$_GET [ 'key' ] = time ();
}
if ( $r [ 'key' ] == $_GET [ 'key' ]) {
2023-01-10 16:29:32 +00:00
//Список онлайн остается неизменным
2022-07-01 12:45:43 +00:00
unset ( $r [ 'rn' ], $r [ 'list' ], $r [ 'key' ], $r [ 'xu' ]);
} elseif ( $_GET [ 'r1' ] != 0 ) {
2023-01-10 17:26:14 +00:00
$r [ 'rn' ] = $u -> room [ 'name' ];
2022-07-01 12:45:43 +00:00
}
2022-12-19 18:26:14 +00:00
$posts = mysql_fetch_array (
mysql_query (
'SELECT COUNT(`id`) FROM `items_users` AS `iu` WHERE `iu`.`uid` = "-51' . $u -> info [ 'id' ] . '" AND `iu`.`delete` = 0 AND `iu`.`inOdet` = 0 AND `iu`.`inShop` = 0 AND `iu`.`lastUPD` < ' . time (
) . ' LIMIT 1'
)
);
2022-07-01 12:45:43 +00:00
$posts = $posts [ 0 ];
if ( $posts > 0 ) {
$r [ 'js' ] .= ' $("#postdiv").show();' ;
} else {
$r [ 'js' ] .= ' $("#postdiv").hide();' ;
}
2023-01-10 16:29:32 +00:00
//Предложения вступить в клан
2022-07-01 12:45:43 +00:00
$sp = mysql_query ( 'SELECT * FROM `clan_add` WHERE `uid` = "' . $u -> info [ 'id' ] . '" AND `yes` = 0 AND `no` = 0' );
while ( $pl = mysql_fetch_array ( $sp )) {
2022-12-19 18:26:14 +00:00
$clns = mysql_fetch_array (
mysql_query ( 'SELECT `id`,`name`,`align` FROM `clan` WHERE `id` = "' . $pl [ 'clan' ] . '" LIMIT 1' )
);
$usr = mysql_fetch_array (
mysql_query ( 'SELECT `id`,`login`,`level` FROM `users` WHERE `id` = "' . $pl [ 'uid_clan' ] . '" LIMIT 1' )
);
2022-07-01 12:45:43 +00:00
$r [ 'js' ] .= 'top.inclanNew(' . $pl [ 'id' ] . ',"' . $clns [ 'align' ] . '","' . $clns [ 'id' ] . '","' . $clns [ 'name' ] . '","' . $usr [ 'login' ] . '</b>[' . $usr [ 'level' ] . ']<b>");' ;
}
unset ( $clns );
2023-01-10 16:29:32 +00:00
//Предложение на обмен
2022-12-19 18:26:14 +00:00
$trf = mysql_fetch_array (
mysql_query (
'SELECT * FROM `transfers` WHERE `uid2` = "' . $u -> info [ 'id' ] . '" AND `start2` = 0 AND `cancel1` = 0 AND `cancel2` = 0 LIMIT 1'
)
);
2022-07-01 12:45:43 +00:00
if ( isset ( $trf [ 'id' ])) {
$utf = mysql_fetch_array ( mysql_query ( 'SELECT `login` FROM `users` WHERE `id` = "' . $trf [ 'uid1' ] . '" LIMIT 1' ));
if ( isset ( $utf [ 'login' ]) && $u -> info [ 'battle' ] == 0 ) {
$r [ 'js' ] .= 'top.intransferNew(' . $trf [ 'id' ] . ',"' . $utf [ 'login' ] . '");' ;
} else {
mysql_query ( 'UPDATE `transfers` SET `cancel2` = "' . time () . '" WHERE `id` = "' . $trf [ 'id' ] . '" LIMIT 1' );
}
}
2023-01-10 18:14:47 +00:00
unset ( $c , $u , $db );
echo json_encode ( $r );