Kruzya
Участник
- Сообщения
- 12,970
- Реакции
- 10,914
- Команда форума
- #1
Сначала разберёмся с тем, что и где SourceMod держит.
Попробуем его почистить и посмотреть, сколько места нам удастся сэкономить.
Обратите внимание, что чистка рассматривается для "только что установленного" SourceMod. Для случаев, где уже имеются какие-то плагины, понадобится "корректировка".
bin
Основная папка. Здесь лежит:- Загрузчик Сурсмода (
sourcemod_mm
).
Входная точка, с которой MMS начинает загрузку. - Общая логика между всеми играми (
sourcemod.logic
).
К примеру, загрузка плагинов SM, расширений, API (датапаки, админки, работа с переводами...) и прочее. - Виртуальная машина SourcePawn (
sourcepawn.jit.x86
; если запускается 64-битный SourceMod, тоsourcepawn.vm
).
Центр скриптового языка. Предоставляет возможность запускать SMX-файлы, изолируя их от системы. - Game-Specific бинарники (
sourcemod.2.tf2
,sourcemod.2.css
и так далее).
От игры к игре, у движка отличается SDK. Иногда это буквально смещение функции в таблице на два элемента из-за других, специфичных для ревизии движка изменений, иногда ещё чего. Из-за этого для каждой игры приходится содержать свой бинарь с "мостом" к движку.
- Загрузчик Сурсмода (
configs
Конфигурационные файлы SourceMod и плагинов.data
Сами разработчики никак не классифицируют назначение этой папки, но используют её для хранения тех же локальных баз SQLite. Так что это скорее некое хранилище для данных плагинов, к которым нужен постоянный доступ, и которые пользователи вручную изменять не должны.extensions
Расширения для SourceMod. Они могут как изменять какое-то поведение игры/движка, так и расширять API плагинов. А могут и то, и другое.
По-умолчанию, здесь уже лежат следующие расширения:- BinTools (
bintools.ext
).
Вспомогательный функционал для вызовов функций движка. - Client Preferences (
clientprefs.ext
).
Расширение, реализующее "куки" для плагинов, которые хранятся на сервере. Хороший способ сохранять какие-то настройки пользователя. - CS Tools (
game.cstrike.ext.2.*
).
Специфичное расширение для CS:S и CS:GO, реализовывает некоторый дополнительный функционал для плагинов (форварды покупки оружия, например). - Webternet (
webternet.ext
).
Расширение, предоставляющее HTTP-клиент (cURL) для расширений. Для плагинов, данный функционал недоступен (но его пытались очень давно "пробросить"). - GeoIP (
geoip.ext
).
Расширение для работы с GeoIP базой от MaxMind (старого образца). - MySQL-DBI (
dbi.mysql.ext
).
Драйвер для "единого интерфейса БД" для работы с MySQL. Реализует основной функционал общения с базой. - Regex (
regex.ext
).
Предоставляет для плагинов API для работы с регулярными выражениями. - SDK Hooks (
sdkhooks.ext.*
).
Разнообразные хуки для плагинов, по типу "при прикосновении" (одна энтитя - с другой), PostThink, смена оружия и прочее. - SDK Tools (
sdktools.ext.*
).
Разнообразные вспомогательные функции для плагинов, по типу воспроизведения звука, работы с таблицами строк (stringtable
) и многое другое. - SQLite (
dbi.sqlite.ext
).
Драйвер для "единого интерфейса БД" для работы с SQLite. Реализует основной функционал общения с базой. - TF2 Tools (
game.tf2.ext.2.tf2
).
Вспомогательное расширение для работы со специфичными для Team Fortress 2 вещами ("конды", смена PowerPlay состояния игрока, проверка на нахождение игрока в "дуэли", получение активного класса и т.д.). - Top Menus (
topmenus.ext
).
Создание "сортируемых" вложенных меню. На основе этого расширения работает стандартное админ-меню, и проблему с "кнопкой", когда открывается совсем другое подменю - именно его вина. - Automatic Updater (
updater.ext
).
Автоматический "обновлятор" геймдаты SourceMod.
- BinTools (
gamedata
Вспомогательные метаданные, которые могут зависеть от игры и от ОС, где запускается сервер (адреса функций в памяти, "смещения" и прочее).logs
Папка для логов, которые создаются в процессе работы плагинов, расширений и самого SM.plugins
Плагины, которые запускаются виртуальной машиной SourcePawn.
Поддерживается вложенная (древовидная) структура. Вы можете создавать папки внутри этой папки.
Если папка называетсяoptional
илиdisabled
, её содержимое не загружается автоматически.scripting
Папка для хранения исходного кода плагинов, вспомогательных (include) файлов. Так же здесь располагается компилятор для той ОС, для которой скачан SourceMod, но Вам никто не мешает компилировать плагины на совсем другой ОС (см. подробнее в теме про компиляцию плагинов).translations
Переводы плагинов. Здесь хранятся "фразы", которые используются плагинами и выводятся конечному игроку/администратору.GPLv2.txt
/GPLv3.txt
/LICENSE.txt
Лицензии, с которыми Вы должны ознакомиться и принять, если используете SourceMod или производите написание плагинов для него. Но в России (и в СНГ в целом) это не работает.
Попробуем его почистить и посмотреть, сколько места нам удастся сэкономить.
Обратите внимание, что чистка рассматривается для "только что установленного" SourceMod. Для случаев, где уже имеются какие-то плагины, понадобится "корректировка".
- Начнём с самого простого. Лицензии. Их Вы можете безболезненно удалить. На работу самого SourceMod это не повлияет никак.
- В папке bin можно абсолютно безболезненно удалять dll, которые не относятся к Вашей игре. Например, для CS:S я удаляю всё, кроме
sourcemod.2.css
,sourcemod.logic
,sourcemod_mm
иsourcepawn.jit.x86
. Аналогичную чистку можно произвести в директории MetaMod: Source. - В конфигах (configs) можно удалить
sql-init-scripts
(если Вы не используете стандартную админку SM, основывающуюся на хранении админов в СУБД; он по-умолчанию отключен и находится вdisabled
).
Если не используется стандартный файловый загрузчик админок (admin-flatfile
), можно так же удалитьadmins.cfg
,admins_simple.ini
,admin_groups.cfg
,admin_overrides.cfg
).
Если не используется стандартный плагин банов, можно удалитьbanreasons.txt
.
Так же, для экономии пространства (незначительно поможет), можно:- Очистить
languages.cfg
от неиспользуемых языков, оставив только английский и русский. - Если нет необходимости использовать разные списки карт в разных местах (админка, nominate, votemap), можно удалить неиспользуемые секции. Если в конечном итоге
adminmenu_maplist.ini
фигурировать в файле не будет, можно так же удалить его.
- Очистить
- Обратите внимание, что папку gamedata трогать смысла ноль. Updater всё равно всё перекачает (если включен) и вернёт на место. И его лучше не выключать, если у Вас часто обновляемая (или ломаемая) игра, по типу CS:GO.
- В папке
plugins
можно полностью удалить неиспользуемые плагины, и папкуdisabled
. - Откажитесь от хранения исходного кода плагинов (и инклудов). Это добавит Вам места, но одновременно повысит риск, если Вам резко понадобится что-то поправить в плагинах, а исходный код потерян/не представляется возможным найти.
- Если Вы ранее чистили
languages.cfg
, то можете удалить неиспользуемые языки из папкиtranslations
, а так же - файлы переводов от удалённых плагинов.
Последнее редактирование: