Почему не загружается ваш плагин CounterStrikeSharp
Успешная сборка доказывает лишь то, что код корректен. Загрузит ли сервер плагин, зависит от самого сервера: Metamod, версии CounterStrikeSharp, того, куда вы скопировали файлы, и того, что нужно плагину для работы. Проходите проверки ниже по порядку: первые из них встречаются чаще всего.
Убедитесь, что CounterStrikeSharp работает
Прежде чем винить плагин, проверьте, что сам фреймворк жив. Введите meta list в консоли сервера. CounterStrikeSharp должен быть в списке. Если его нет, проблема в установке Metamod или CounterStrikeSharp, а не в плагине. Эта часть разобрана в нашем руководстве по установке Metamod.
meta list
Прочитайте ошибку в консоли
Когда плагин не запускается, консоль пишет, какой именно и почему. Запись <ERROR> в списке плагинов означает, что файл найден, но загрузить его не удалось. Скопируйте сообщение целиком, а не только первую строку: настоящая причина обычно находится на несколько строк ниже.
[META] Failed to load plugin addons/counterstrikesharp/bin/linuxsteamrt64/counterstrikesharp
Listing 1 plugin:
[01] <ERROR>
Сервер обновился, и всё перестало работать
После обновления Counter-Strike 2 CounterStrikeSharp и Metamod тоже часто нужно обновлять, потому что изменились файлы игры, к которым они подключаются. Если все плагины сломались одновременно, причина именно в этом. Обновите CounterStrikeSharp и Metamod до последних версий и перезапустите сервер. Как сделать это безопасно, показывает наше руководство по обновлению CounterStrikeSharp.
Посмотрите, что сервер считает установленным
Выполните css_plugins list в консоли. Команда покажет все плагины, найденные фреймворком, и их состояние. Если вашего плагина в списке нет совсем, файлы лежат не там или имя папки не совпадает с именем DLL. Если он есть, но с ошибкой, вернитесь ко второму шагу и прочитайте сообщение.
css_plugins list
Проверьте структуру папок
Каждому плагину нужна своя папка внутри plugins, а главная DLL должна называться точно так же, как эта папка. Файлы рядом с ней, например deps.json, должны оставаться вместе с DLL.
Копируйте только папку плагина, без dependencies
Наш компилятор кладёт в zip две вещи: папку плагина и папку dependencies. На сервер копируйте только папку плагина. В dependencies лежат файлы, которые CounterStrikeSharp уже предоставляет, и их копирование может вызвать конфликты версий.
Плагины с тяжёлыми фреймворками или другой версией API
Плагин, написанный под более старый CounterStrikeSharp.API, может собраться и всё равно не заработать на более новом сервере, а бывает и наоборот. Если консоль жалуется на отсутствующий метод или тип, версии API не совпадают. Какой вариант сборки выбрать, объясняет наше руководство о несовпадении версий. Учтите также, что крупные фреймворки вроде ASP.NET внутри плагина для игрового сервера не поддерживаются.
Что приложить, когда просите помощи
Если проблему решить не удаётся, спросите автора плагина или сообщество CounterStrikeSharp и приложите: вывод meta list и css_plugins list, полный текст ошибки из консоли, версию CounterStrikeSharp и способ, которым вы собирали плагин. С такими данными большинство вопросов решается одним ответом.
Было ли это руководство полезным?
Barlap для сообщества.