Всем привет выкладываю вам инфу как без nCron запустить авто выполнение скрипта на бан или удаление персонажа
Что нам понадобится?
1.Windows 2003 Server R2 Enterprise или Любая другая главное что нужно стандартное приложение Windows (Job)
2.Apache (PHP.exe)
Начнем ,заходим в Панель управления -> Назначенные задания -> Добавить задание
назначаем задание
Выбираем программу которая будет выполнять скрипт в нашем случае это PHP.exe
Далее ставим ,что бы скрипт выполнялся ежедневно
Далее ставил что бы скрипт выполнялся ежедневно
После вводим логин и пароль от Учетной записи Windows
Далее ставим галочку чтобы нам вывелись доп настройки задания который мы создали
И вот тут пишем задание того PHP скрипта который должна выполнить программа PHP.exe
у нас получается
к примеру у вас стоит апач c:/appserv/php/php.exe После этого пишем -f и далее путь до файла который должен исполнятся
в моем случае это с:/appserv/php/php.exe -f g:/......./......./...../trude.php Ключ -f Означает выполнение вписанного после него файла
Далее задаем чтобы наш скрипт выполнялся по времени 24 часа в сутки с промежутком в 1 минуту
этого в принципе достаточно для того чтоб забанить недобросовестного игрока поскольку скрип написанный MamoN, ищет ошибки по логам сервера !
Цитата:
<?php
$c=mssql_connect('IP_БАЗЫ,ПОРТ_БАЗЫ','ЛОГИН_К_БАЗЕ ','ПАРОЛЬ_К_БАЗЕ');
$path="С:/SERVER/ZoneServer/ZoneServerLog/Systemlog/"; //ваш путь к папке с логами
$s=scandir($path);
$i=0;
//error_reporting(0);
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[3]; //В четвёртом (счёт идёт с нуля) куске содержится ник персонажа
$bad=trim($bad); //Убираем пробелы в начале и конце ника
if(!in_array($bad,$sarr)) { //Баним неверных
$sarr[$i]=$bad;
$i++;
$res = mssql_query("select accountserial from [rf_world_novus].[dbo].[tbl_base] where Name='$bad'",$c);
$res2 = mssql_query("select serial from [rf_world_novus].[dbo].[tbl_base] where Name='$bad'",$c);
$aser = mssql_fetch_row($res);
$ser = mssql_fetch_row($res2);
//echo "<div><center>Ник персонажа - <b>$bad</b></center></div>";
//mssql_query("exec rf_user.dbo.pInsert_UserBan @nSerial = '$aser',
// @nPeriod = 999,
// @nKind = 0,
// @szReason = 'DUPE AutoBan',
// @szWriter = ' ',
// @reasontype = 0
// ");
mssql_query("DELETE from rf_world_novus.dbo.tbl_NpcData where serial = '".$ser[0]."'",$c);
mssql_query("UPDATE rf_world_novus.dbo.tbl_base
SET Name = (CONVERT(binary, '*".$Bad."')),
DeleteName='".trim($Bad)."' ,
DCK=1 WHERE Serial = '".$ser[0]."'",$c);
mssql_query("UPDATE rf_world_novus.dbo.tbl_general
SET DCK=1 WHERE Serial = '".$ser[0]."'",$c);
} //if
}//if
}//foreach
}//if
}//foreach
?>