Кое-кто подал мне идею сделать триал систему. Ну я и сделал.
Принцип работы:
Сервер на котором запущен скрипт индифицируется по IP+Port. Каждые N секунд на http сервер отправляется информация о том сколько проработал скрипт. Если он проработал больше допустимого времени сервер отключается.
Все просто. Вот инклуд:
Вот скрипт-пример использования:
Теперь о том как добавить эту систему себе в скрипт:
Заходим на
ymon.ispvds.com/trial
Вводим триал время (скока будет работать ваш скрипт) в миллисекундах.
Если кто не знает, узнаем время в мс по такой формуле:
ms = D * 86400000
Где D кол-во дней, а ms время в мс.
Вводим капчу, жмем Получить TrialCheck_Key.
Добавляем в вашем скрипте строки:
PHP код:
#define TRIAL_CHECK_KEY "Ваш TrialCheck_Key"
#include <trial>
Заместо слов Ваш TrialCheck_Key вводите TrialCheck_Key который получили на
ymon.ispvds.com/trial
Добавляете
PHP код:
TrialCheck_InIt();
в конец колбека OnFilterScriptInit() или OnGameModeInit().
Все!
Так же вы можете использовать колбек OnTrialCheckFail(), он вызывается за 3 секунды до выключения сервера при провале проверки триала.
Добавил аргумент TrialCheck_Code для колбека OnTrialCheckFail():
PHP код:
public OnTrialCheckFail(TrialCheck_Code)
{
switch(TrialCheck_Code)
{
case 20:SendClientMessageToAll(COLOR_MAIN, "Несуществующий триал ключ. Выключение сервера через 3 секунды");
case 21:SendClientMessageToAll(COLOR_MAIN, "Триал скрипта анимационого дебага кончился. Выключение сервера через 3 секунды");
case 30:SendClientMessageToAll(COLOR_MAIN, "Неполадки с главным сервером. Выключение сервера через 3 секунды");
case 40 .. 41:SendClientMessageToAll(COLOR_MAIN, "Не могу подключиться к главному серверу. Выключение сервера через 3 секунды");
case 50:SendClientMessageToAll(COLOR_MAIN, "Не могу подключиться к главному серверу, неизвестная ошибка. Выключение сервера через 3 секунды");
}
return 1;
}