я вылаживал на RFDB (MamoN), тут немного ещё изменил
сразу предупреждаю что чаров не банит а сразу удаляет из базы без возможности восстановления, кому нужно можно подправить чтоб банило а не удаляло
foreach($s as $n){
if( strstr($n,'SystemError')){ //Ищем в папке с логами файл с именем SystemError
$f=file($path.$n);
foreach($f as $ln){ //Ищем в файле лога строки содержащие:
if(strstr($ln,'Emb_AddStorage') //Emb_AddStorage,
or strstr($ln,'Emb_DelStorage') //Emb_DelStorage,
or strstr($ln,'Update_ItemAdd')){ //Update_ItemAdd.
$val=explode(':',$ln);
$bad=$val***91;3***93;;
$bad=trim($bad);
$val3=explode(' ',$ln);
if(!in_array($bad,$sarr)){
$sarr***91;$i***93;=$bad;
$i++;
$res = mssql_query("select accountserial from ***91;rf_world_novus***93;.***91;dbo***93;.***91;tbl_base***93; where Name='$bad'",$c);
$res2 = mssql_query("select serial from ***91;rf_world_novus***93;.***91;dbo***93;.***91;tbl_base***93; where Name='$bad'",$c);
$aser = mssql_fetch_row($res);
$ser = mssql_fetch_row($res2);
//Полное удаление чара из базы
mssql_query("delete from rf_world_novus.dbo.tbl_NpcData where serial = '$ser***91;0***93;'",$c); //Кикаем из игры (вылетит максимум через минуту
mssql_query("exec rf_world_novus.dbo.pDelete_AvatorData @serial = '$ser***91;0***93;'",$c); //удаляем чара из базы, кому нужно сделайте запрос на бан а не на удаление
echo '<p><center>Дата '.$val3***91;1***93;.' Время '.$val3***91;2***93;.' : Персонаж - '.$bad.' - удалён</center></p>';
//Поиск тех с кем был обмен после дюпа (можно тоже прикрутить бан)
foreach($s2 as $n2){
if( strstr($n2,'DTrade')){
$f2=file($path2.$n2);
foreach($f2 as $ln2){
if(strstr($ln2,$bad)){
$val2=explode(' ',$ln2);
echo '<center>Торговал с '.$val2***91;4***93;.' '.$val2***91;8***93;.'</center></div>';
}
}
}
}
echo "<center>----------------------------------------------------------</center>";
}
}
}
}
}
//Поиск координатного дюпа если зону не фиксили
//foreach($s3 as $n3){
// if( strstr($n3,'DBError')){
// $f3=file($path3.$n3);
// foreach($f3 as $ln3){
// if(strstr($ln3,'.#QNAN0')){
// $val4=explode(' ',$ln3);
// $bad3=$val4***91;13***93;;
// $bad3=trim($bad3);
// $serial=(int)$bad3;
// if(!in_array($bad3,$sarr2)){
// $sarr2***91;$i***93;=$bad3;
// $i++;
// mssql_query("exec rf_world_novus.dbo.pDelete_AvatorData @serial = '$serial'",$c);
// mssql_query("delete from rf_world_novus.dbo.tbl_NpcData where serial = '$serial'",$c);
// echo '<p><center>Серийник <b>'.$serial.'</b> - удалён</p>';
// }
// }
// }
// }
//}
//В самом низу автообновление страницы (стоит 1 секунда) если будете запускать через браузер а не через крон (если через крон то удалите строку)
?> <meta http-equiv="refresh" content="1">