SDiag - автоматическая диагностика частых проблем при запуске сервера

Nexius_Tailer

• Профик •
Регистрация
19 Май 2013
Сообщения
1,579
Реакции
744
SDiag

Этот инклуд предназначен для диагностики часто возникающих проблем, многие из которых нередко появляются по невнимательности. Скрипт проверяет некоторые условия, после чего выводит соответствующие предупреждения в консоль и лог сервера.

Важное примечание: этот скрипт лишь обнаруживает проблемы, но не исправляет их самостоятельно!

В данный момент он умеет обнаруживать следующие проблемы:
  • Отсутствующий define FILTERSCRIPT в фильтрскриптах (он нужен для корректной работы многих инклудов)
  • Несоответствие макроса MAX_PLAYERS и реально установленных слотов на сервере
  • Переполнение GetTickCount в результате продолжительной работы физического сервера
  • Устаревшая версия стандартных SA-MP инклудов по отношению к версии исполняемого файла сервера (проверки для 0.3.7, 0.3.7-R2, 0.3.7-R3 и 0.3.DL)
  • Отсутствие папки scriptfiles или отсутствие прав доступа к ней (она нужна для корректной работы некоторых скриптов)
  • Неверное значение maxnpc в server.cfg, когда оно превышает максимальное количество слотов на сервере
  • Низкие значения sleep в server.cfg, что может сильно влиять на точность таймеров
  • Отключение query в server.cfg, что делает сервер невидимым для SA-MP лаунчера

Установка
Ничего сложного. Просто скачайте скрипт по одной из ссылок ниже, переместите его в pawno/include и добавьте во все фильтрскрипты и мод следующим образом:
PHP:
#include <sdiag>
после чего скомпилируйте их заново.


Использование
При включении сервера, если обнаруживаются какие-либо проблемы, то в консоли появляются предупреждения. Предупреждения в моде помечаются как "[SDiag: GM]", а в фильтрскриптах - "[SDiag: FS]". Инклуд не располагает информацией о названии фильтрскрипта, в котором он обнаруживает проблему, однако понять, в каком именно фильтрскрипте она произошла не составит никакого труда, потому как следом за предупреждением выводится сообщение об успешной загрузке того фильтрскрипта (перед которым появилась эта проблема).


Скачать
v1.1:


Описание предупреждений
Ниже приведено пояснение и описание всех предупреждений, которые выводит этот скрипт:

HTML:
One of your filterscripts doesn't have FILTERSCRIPT define
Это предупреждение возникает, когда один из ваших фильтрскриптов не имеет код "#define FILTERSCRIPT" в самом его начале. Просто добавьте его и не пренебрегайте этим впредь, потому что многие инклуды меняют своё поведение в зависимости от того, подключены ли они к фильтрскрипту или к моду.

HTML:
Your MAX_PLAYERS define isn't equal to the real number of player slots
Это означает, что значение макроса MAX_PLAYERS в одном из ваших скриптов не совпадает со значением реальных слотов на сервере, устанавливаемых в server.cfg. Несоответствие этих значений может привести к крашам из-за выходов за пределы массивов, которые используют MAX_PLAYERS в качестве одной из своих мер.

HTML:
GetTickCount is less than 0. Please restart your computer
Возникает, когда ваш физический сервер (компьютер) работает беспрерывно несколько недель, в результате чего переполняется GetTickCount (принимает минусовые значения). В этом случае нужно просто перезагрузить компьютер (если не помогает включение и выключение, то нужно именно перезагрузить).

HTML:
The SA-MP includes version doesn't match with the server version. Please update them
Означает, что стандартные инклуды сампа устарели по отношению к версии сервера, которая сейчас запущена. Просто обновите их, скачав с официального сайта чистый архив с сервером и инклудами нужной версии.

HTML:
Your scriptfiles folder isn't created or you don't have access to it (some scripts may not work correctly)
Это возникает, когда у вас отсутствует папка "scriptfiles", которая должна находиться в папке с сервером. Также может возникнуть, если вы не имеете прав доступа к ней. В таком случае (при её отсутствии) создайте её или (если она уже создана) обратитесь к техподдержке хостинга/настройте права доступа к ней самостоятельно. Некоторые скрипты сохраняют в ней свои данные и создать самостоятельно они её не могут.

HTML:
The variable 'maxnpc' exceeds the maximum number of player slots
Это означает, что значение переменной 'maxnpc' (максимальное количество NPC-ботов, которые могут зайти на сервер) в server.cfg превышает значение реальных слотов на сервере, также устанавливаемых в server.cfg.

HTML:
The variable 'sleep' is less than the default value. Your timers may work less accurately
Возникает, когда значения переменной 'sleep' в server.cfg меньше, чем стандартное значение (5 по умолчанию). При более низких значениях этой переменной таймеры, создаваемые через SetTimer/SetTimerEx становятся менее точными, вызываясь с более продолжительными задержками.

HTML:
Query is disabled. Your server will not be visible in masterlist
Означает, что переменная query в server.cfg отключена. Query-запросы отвечают за отправку названия сервера, количества игроков на нём и прочие данные, которые клиент видит в списке у каждого сервера перед входом в игру.


Вы также можете предложить свои идеи для добавления в этот скрипт. Возможно, есть ещё какие-то частые проблемы, с которыми вам уже надоело сталкиваться, каждый раз находя их вручную? Поделитесь ими.
 
Последнее редактирование:

Pa[DoN]oK

Мастер
Пользователь
Регистрация
29 Май 2012
Сообщения
2,502
Реакции
280
Nexius_Tailer написал(а):
Важное примечание: этот скрипт лишь обнаруживает проблемы, но не исправляет их самостоятельно!
Было бы странно увидеть авто-исправление кода :bm::bm::ag:
 

kondrik228

Заблокирован
Регистрация
6 Авг 2017
Сообщения
1,099
Реакции
97
Хорошо сделал) :di:
 

Nexius_Tailer

• Профик •
Регистрация
19 Май 2013
Сообщения
1,579
Реакции
744
Обновлено до v1.1:
* Добавлена проверка на неверное значение maxnpc в server.cfg, когда оно превышает максимальное количество слотов
* Добавлена проверка на низкие значения sleep в server.cfg, что может сильно влиять на точность таймеров
* Добавлена проверка на отключение query в server.cfg, что делает сервер невидимым для SA-MP лаунчера
 

l4rryz0r

• Зарегистрированный •
Регистрация
8 Май 2020
Сообщения
6
Реакции
0
Установил себе, неплохая вещь (y)
 

Пользователи онлайн

Реклама

Сверху