Введение в разработку для RageMP

Lev Angel

Developer
Команда форума
Скриптер
Введение
Мы покажем вам, как начать разработку собственного сервера с помощью простого руководства. Мы покажем вам, как вы можете создать свой собственный ресурс и запустить его на своем сервере. Здесь мы собираемся использовать NodeJS.

GTAV.PS4.HD_SCREENCAPS.PROLOGUE.1.jpg

Требования
Установленные файлы сервера (Rage MP updater)
Базовые знания программирования на JavaScript / NodeJS
Среда разработки или текстовый редактор на ваш выбор (например, Visual Studio Code или Notepad ++).

Запуск сервера
При загрузке Rage MP updater и его запуске вы получите файлы сервера. Имя папки будет называться server-files. Откройте папку, и вы найдете это:
1591022895596.png
client_packages: папка, в которой клиентские сценарии находятся и загружаются клиентом. (Клиентская часть позволяет вам рисовать GUI или выполнять CEF)
packages: папка, в которой серверные сценарии находятся и загружаются сервером. (Серверная часть позволяет вам управлять игроком и создавать свой собственный мир)
maps: папка, в которой файлы карт (в формате JSON) загружаются в игровой мир.
plugins: позволяет загружать пользовательские плагины .dll в сервер.
conf.json: содержит конфигурацию сервера в формате JSON. Подробнее о настройках сервера читайте здесь.
server.exe: исполняемый файл сервера, который при запуске запускает игровой сервер.

В настоящее время вы обнаружите, что ваши папки пусты, поэтому, если вы хотите загрузить игровой режим, на вашем сервере есть образец игрового режима freeroam, доступный для изучения / использования.

Создание вашего первого ресурса
Rage Multiplayer содержит скрипты двух типов:
Клиентские скрипты позволяют создавать и разрабатывать пользовательский интерфейс, манипулировать функциями игрового клиента и демонстрировать людям свое творчество.
Серверный скрипты. На стороне сервера вы можете манипулировать самим сервером, например, управлять всеми игроками, транспортными средствами, маркерами и т. д.
Мы создадим наш первый серверный ресурс и посмотрим, как он работает в игре.

Прежде всего, зайдите в пакеты и создайте папку (название игрового режима, что угодно).

Добавляем серверные команды
В папке с режимом игры создайте файл index.js. После этого откройте файл и напишите следующее:
JavaScript:
//init Commands file
require('./commands.js')

Теперь сохраните и закройте файл, затем создайте другой файл с именем commands.js и откройте его.

Добавьте эти простые команды в ваш файл:
JavaScript:
mp.events.addCommand('hp', (player) => {
    player.health = 100;
});

mp.events.addCommand('armor', (player) => {
    player.armour = 100;
});

mp.events.addCommand('kill', (player) => {
    player.health = 0;
});

Другие примеры команд можно посмотреть в этом уроке.
Теперь мы создали простой исходник с 3 основными командами. Тот, который дает здоровье, тот, который дает броню, и тот, который убивает вас.

Теперь сохраните файл и закройте его.

Серверные события
Вы заметили что-то не так с кодом, который мы только что написали? Если нет, позвольте мне дать вам подсказку. Если вы активируете команду kill, это означает, что она убьет игрока, но вернёт ли вас обратно? У меня есть решение для вас!

Создайте файл JSON и назовите его spawn_points.json, а затем добавьте следующий код:
JSON:
{
    "SpawnPoints": [
        { "x": -425.517, "y": 1123.620, "z": 325.8544 },
        { "x": -415.777, "y": 1168.791, "z": 325.854 },
        { "x": -432.534, "y": 1157.461, "z": 325.854 },
        { "x": -401.850, "y": 1149.482, "z": 325.854 }
    ]
}

Готово? Теперь сохраните его и закройте.

Создайте новый файл с именем events.js и добавьте следующий код:
JavaScript:
let spawnPoints = require('./spawn_points.json').SpawnPoints;

mp.events.add('playerDeath', (player) => {
    player.spawn(spawnPoints[Math.floor(Math.random() * spawnPoints.length)]);
    player.health = 100;
});

Мы определили наши точки спавна, в которых мы хотим, чтобы игрок появился, и затем мы добавили событие, которое сработает когда игрок умирает. Когда это событие вызывается, игрок заспавнится в одной из указанных точек. Также не забудьте восстановить здоровье игрока снова до 100, иначе он может телепортироваться, будучи мертвым, к точке возрождения.

ВАЖНО: не забудьте подключить events.js в index.js.

Собираем все вместе
В итоге ваш файл index.js должен выглядеть так:
JavaScript:
//init Commands file
require('./commands.js')

//init Events file
require('./events.js')

Теперь сохраните все, затем запустите свой сервер и протестируйте то, что вы только что написали!

Надеюсь, вам понравился ваш первый скрипт в RAGE: MP. Мы обязательно создадим для вас дополнительные туториалы, чтобы вы могли узнать больше. Удачной игры!

Другие уроки которые могут Вас заинтересовать


 
Последнее редактирование:

Lev Angel

Developer
Команда форума
Скриптер
@Jane в папке сервера есть папка packages. В ней создай новую папку (например, test). Внутри папки test и нужно создать файл index.js.
 
  • Like
Реакции: Jane

shturman

New member
Интересно) продолжай! побольше бы коментариев к строкам чтобы видеть где что за что отвечает. тут то более менее понятно а вот дальше что будет...
з.ы. всё получилось, переписывал сам без копировать вставить)
 

Lev Angel

Developer
Команда форума
Скриптер
@shturman супер! Когда сам пишешь код, то лучше запоминается.
Про комментарии учту ;)
 

hellcat

New member
Сервер запускается но клиент вылетает сразу же при загрузке. Этот туториал подходит под rage mp 1.1?
 

Lev Angel

Developer
Команда форума
Скриптер
@hellcat да, должно все работать.
Если у тебя стим версия гта, то убедись что перед запуском клиента у тебя уже запущен стим.
 

YoungCoder

Junior Developer
будеть видео про меню входа и авторизации для нового сервера
 

Lev Angel

Developer
Команда форума
Скриптер
Будет, но пока еще не знаю когда.
 
  • Like
Реакции: test

Lev Angel

Developer
Команда форума
Скриптер
В будущем интересно будет еще как при регистрации аккаунта игроку создать своего персонажа) Это так идея просто для уроков
У меня еще есть идея сделать серию роликов по написанию базового РП мода с нуля. Но это получится только в формате длинных видео роликов, вряд ли кто-то это осилит пересмотреть :LOL: Возможно просто буду пилить мод и выкладывать на форум.
 

test

Junior Developer
У меня еще есть идея сделать серию роликов по написанию базового РП мода с нуля. Но это получится только в формате длинных видео роликов, вряд ли кто-то это осилит пересмотреть :LOL: Возможно просто буду пилить мод и выкладывать на форум.
это очень интересно полностью с нуля писать я бы посмотрел такие видео!) Это полезно очень
 

Lev Angel

Developer
Команда форума
Скриптер
Там всего пару строк элементарнейшего кода, там просто нечему ломаться :)
 

whay

New member
такая ошибка, что делать? команды не работают
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    13 КБ · Просмотры: 15
Яндекс.Метрика
Верх