SourceMod Ввод в файловую структуру (и информация о том, что можно удалить)

Kruzya

Здравствуй, юность в сапогах
Меценат
Сообщения
10,713
Реакции
8,862
Сначала разберёмся с тем, что и где 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.
  • gamedata
    Вспомогательные метаданные, которые могут зависеть от игры и от ОС, где запускается сервер (адреса функций в памяти, "смещения" и прочее).
  • logs
    Папка для логов, которые создаются в процессе работы плагинов, расширений и самого SM.
  • plugins
    Плагины, которые запускаются виртуальной машиной SourcePawn.
    Поддерживается вложенная (древовидная) структура. Вы можете создавать папки внутри этой папки.
    Если папка называется optional или disabled, её содержимое не загружается автоматически.
  • scripting
    Папка для хранения исходного кода плагинов, вспомогательных (include) файлов. Так же здесь располагается компилятор для той ОС, для которой скачан SourceMod, но Вам никто не мешает компилировать плагины на совсем другой ОС (см. подробнее в теме про компиляцию плагинов).
  • translations
    Переводы плагинов. Здесь хранятся "фразы", которые используются плагинами и выводятся конечному игроку/администратору.
  • GPLv2.txt / GPLv3.txt / LICENSE.txt
    Лицензии, с которыми Вы должны ознакомиться и принять, если используете SourceMod или производите написание плагинов для него. Но в России (и в СНГ в целом) это не работает.
После распаковки, SourceMod занимает на диске 65,5 МБайт пространства (Windows-версия, билд 1.10.0.6488).
1601808415307.png
Попробуем его почистить и посмотреть, сколько места нам удастся сэкономить.
Скрытое содержимое доступно для зарегистрированных пользователей!

После проведения всей чистки "ядра SM", можно получить экономию места в 3 раза:
1601809405381.png
 

Grey83

Ленивая и невнимательная жопа
Сообщения
4,906
Реакции
2,884
итого мы сэкономили АЖ 42МБ
как раз как занимает один-два скина
 

ShyperOne

Заблокирован
Сообщения
32
Реакции
3
Игра CSS. Можете посмотреть? Ничего лишнего не удалил?
Что может означать эта ошибка? Файл core.phrases.txt я вообще не трогал...
C-подобный:
L 11/26/2020 - 14:27:28: [SM] Could not find core phrase: Back
L 11/26/2020 - 14:27:28: [SM] Could not find core phrase: Exit
 

Вложения

  • metamod.PNG
    metamod.PNG
    5.5 КБ · Просмотры: 22
  • sourcemod.PNG
    sourcemod.PNG
    5.8 КБ · Просмотры: 23
Последнее редактирование:

Young <

Пользователь
Команда форума
Меценат
Сообщения
979
Реакции
360
@ShyperOne, файл переводов не трогал?
 

ShyperOne

Заблокирован
Сообщения
32
Реакции
3
@Young <, я уже понял, что в основных переводах нет перевода ru, а только en...
 

Young <

Пользователь
Команда форума
Меценат
Сообщения
979
Реакции
360
@ShyperOne, так если он её вообще не находит, значит не только ru
 

ShyperOne

Заблокирован
Сообщения
32
Реакции
3
@Young <, вернул в файл language и папку translations прошлые переводы и всё стало хорошо :D
 
Сверху