В этом руководстве рассматриваются разработка ресурсов, настройка базы данных, инструменты администратора, управление игроками, управление транспортом и оружием, а также устранение неполадок вашего сервера alt:V на Legion Hosting. Для первоначальной настройки сервера, конфигурации server.toml и инструкций по подключению см. Руководство по настройке сервера alt:V.
Настройка администратора
alt:V не имеет встроенной системы администрирования. Функциональность администратора реализуется через ресурсы (скрипты), которые вы создаёте или устанавливаете. Большинство игровых режимов реализуют собственную систему администрирования с уровнями прав, ролями и командами администратора.
Распространённые подходы к администрированию
- Роли на основе базы данных: Большинство ролевых и игровых фреймворков хранят роли администраторов в базе данных. Администраторам назначаются роли (например, модератор, администратор, суперадминистратор), которые дают разные уровни прав.
- Администраторы на основе конфигурации: Более простые настройки могут использовать файл конфигурации со списком Steam ID или alt:V ID администраторов и их уровнями прав.
- Консольные команды: Серверная консоль GPanel всегда имеет полный доступ. Вы можете писать серверные скрипты, принимающие ввод из консоли для операций администратора.
Настройка ресурса администратора
- Выберите или разработайте ресурс администратора, подходящий для вашего игрового режима.
- Загрузите ресурс в каталог
resources/через вкладку Files или SFTP. - Добавьте имя ресурса в массив
resourcesвserver.toml. - Настройте ресурс администратора (задайте Steam/alt:V ID администраторов, уровни прав и т. д.).
- Перезапустите сервер.
Система ресурсов
Ресурсы — это основные строительные блоки серверов alt:V. Каждый ресурс представляет собой самодостаточный модуль, который может содержать серверный код, клиентский код или и то и другое. Ресурсы пишутся на JavaScript, TypeScript или C#.
Структура ресурса
resources/
my-resource/
resource.toml <-- Resource configuration (required)
server/
index.js <-- Server-side entry point
utils.js <-- Additional server-side files
client/
index.js <-- Client-side entry point (runs in player's GTA V)
shared/
config.js <-- Shared code accessible by both server and client
Конфигурация resource.toml
type = "js"
main = "server/index.js"
client-main = "client/index.js"
client-files = ["client/*"]
deps = ["chat"]
Поля: type (js или csharp), main (серверная точка входа), client-main (клиентская точка входа, выполняется в GTA V игрока), client-files (файлы для отправки клиенту, поддерживает glob-шаблоны), deps (другие ресурсы, загружаемые первыми).
Установка ресурсов
Чтобы установить готовый ресурс на ваш сервер:
- Скачайте файлы ресурса (обычно папка, содержащая
resource.tomlи файлы скриптов). - Остановите ваш сервер в GPanel.
- Загрузите папку ресурса в
resources/через вкладку Files или SFTP. - Добавьте имя папки ресурса в массив
resourcesвserver.toml:
resources = ["existing-resource", "new-resource"]
- Если у ресурса есть зависимости, убедитесь, что они также установлены и перечислены.
- Настройте ресурс в соответствии с его документацией (файлы конфигурации, настройка базы данных и т. д.).
- Запустите сервер. Проверьте консоль на наличие сообщений о загрузке ресурса и любых ошибок.
Удаление ресурса
- Остановите ваш сервер.
- Удалите имя ресурса из массива
resourcesвserver.toml. - При желании удалите папку ресурса из
resources/. - Запустите сервер.
deps в других ресурсах перед удалением.
Настройка базы данных
Большинство игровых режимов alt:V требуют базы данных для хранения данных игроков, транспорта, инвентарей и другой постоянной информации. Две наиболее распространённые системы баз данных для alt:V — это MongoDB и MySQL/MariaDB.
MongoDB
MongoDB — это документоориентированная NoSQL-база данных, обычно используемая с ресурсами на JavaScript/TypeScript. Используйте управляемый сервис, такой как MongoDB Atlas (доступен бесплатный тариф), или собственный экземпляр. Получите строку подключения (например, mongodb+srv://user:[email protected]/mydb) и настройте её в файле конфигурации вашего ресурса. Ресурсы Node.js используют npm-пакет mongodb.
MySQL / MariaDB
MySQL обычно используется с ресурсами на C# и некоторыми фреймворками JavaScript. Получите базу данных от управляемого сервиса или собственного экземпляра, настройте ваши ресурсы с данными подключения (хост, порт, имя пользователя, пароль, имя базы данных) и запустите любые необходимые SQL-скрипты миграции.
Управление игроками
Управление игроками в alt:V осуществляется через ваши ресурсы. Распространённые операции включают:
Идентификация игроков
alt:V предоставляет несколько идентификаторов для каждого подключённого игрока:
| Идентификатор | Описание |
|---|---|
player.id |
Временный числовой ID, назначаемый для текущей сессии. Меняется при переподключении. |
player.socialID |
ID игрока в Rockstar Social Club. Сохраняется между сессиями. |
player.hwidHash |
Хеш аппаратного идентификатора. Полезен для применения банов. |
player.ip |
IP-адрес игрока. |
Кик и бан
Реализуйте функциональность кика и бана в ваших ресурсах:
import alt from "alt-server";
// Kick a player
player.kick("Reason for kick");
// Ban check on connect (store bans in database)
alt.on("playerConnect", (player) => {
if (isPlayerBanned(player.socialID)) {
player.kick("You are banned from this server.");
}
});
socialID и hwidHash для надёжного применения.
Управление транспортом и оружием
Транспорт и оружие управляются через серверные скрипты. alt:V даёт вам полный контроль над спавном, изменением и удалением транспорта и оружия.
Спавн транспорта
import alt from "alt-server";
// Spawn a vehicle at a position
const vehicle = new alt.Vehicle(
"sultan", // Vehicle model name
0, 0, 72, // Position (x, y, z)
0, 0, 0 // Rotation (rx, ry, rz)
);
vehicle.numberPlateText = "LEGION";
Выдача оружия
// Give a weapon to a player
player.giveWeapon(alt.hash("weapon_pistol"), 100, true);
// Remove all weapons
player.removeAllWeapons();
Сохранение транспорта
По умолчанию транспорт существует только в памяти сервера и теряется при перезапуске. Чтобы сохранять транспорт между перезапусками, храните его данные (модель, позицию, модификации, владельца) в базе данных и воссоздавайте их при запуске сервера.
Устранение неполадок
Ресурсы не загружаются
- Проверьте, что имя ресурса в
server.tomlточно совпадает с именем папки вresources/. - Убедитесь, что ресурс имеет действительный файл
resource.tomlс правильными полямиtypeиmain. - Проверьте консоль на наличие сообщений об ошибках во время загрузки ресурса. Синтаксические ошибки в скриптах помешают запуску ресурса.
- Убедитесь, что все зависимости, перечисленные в
deps, установлены и загружены. - Проверьте, что в
server.tomlзагружен правильный модуль (js-moduleдля JavaScript,csharp-moduleдля C#).
Игроки не могут подключиться
- Убедитесь, что сервер работает и отображается как онлайн в GPanel.
- Проверьте, что игроки используют лаунчер alt:V, а не обычный лаунчер GTA V.
- Убедитесь, что ветка сервера alt:V совпадает с той, что у игроков (release, rc или dev). Несовпадающие ветки препятствуют подключению.
- Если сервер защищён паролем, убедитесь, что игроки вводят правильный пароль.
- Попросите игроков попробовать прямое подключение с IP и портом. См. Как найти IP и порт вашего сервера.
Сбои сервера
- Проверьте консоль на наличие сообщений об ошибках перед сбоем.
- Неисправные ресурсы — наиболее распространённая причина сбоев. Отключайте недавно добавленные ресурсы, чтобы изолировать проблему.
- Убедитесь, что файлы вашего сервера актуальны. При необходимости запустите переустановку на вкладке Startup.
- Утечки памяти в ресурсах могут со временем привести к исчерпанию оперативной памяти сервера. Следите за графиками ресурсов в GPanel на предмет постоянно растущего использования памяти.
Проблемы с базой данных и голосовой связью
- Проверьте учётные данные базы данных и строки подключения. Для MongoDB Atlas добавьте IP вашего сервера в белый список в настройках сетевого доступа.
- Проверьте консоль на наличие сообщений об ошибках подключения к базе данных.
- Голосовой чат требует раздела
[voice]вserver.toml, а также ресурсов, реализующих логику голосовых каналов. Одна лишь конфигурация только настраивает инфраструктуру.
Проблемы с производительностью
- Профилируйте ваши ресурсы на предмет ресурсоёмких операций (тяжёлые циклы, синхронные вызовы базы данных, чрезмерное создание сущностей).
- Используйте
alt.setIntervalиalt.setTimeoutэкономно. Тяжёлые операции на каждом тике — наиболее распространённый убийца производительности. - Следите за графиками ресурсов в GPanel для использования CPU и RAM.
- Рассмотрите возможность повышения тарифа вашего сервера для большого количества игроков. Откройте тикет в поддержку, чтобы обсудить варианты.
Связанные статьи
- Руководство по настройке сервера alt:V — Первоначальная настройка, конфигурация server.toml, голосовой чат и инструкции по подключению
- Как найти IP и порт вашего сервера
- Как загружать файлы через SFTP
- Руководство по запуску сервера — Общее руководство по запуску любого игрового сервера на Legion Hosting
Нужна дополнительная помощь?
Если у вас возникают проблемы, не охваченные в этом руководстве, наша команда поддержки готова помочь. Откройте тикет на legionhosting.net/submitticket.php с данными вашего сервера, описанием проблемы и любыми соответствующими сообщениями об ошибках из консоли GPanel.