Всем привет, возможно подобные статьи уже где-то мелькали здесь.
Сегодня я постараюсь вам показать как создать свой первый ресурс для сервера RAGEMP на языке C#
Сегодня мы создадим и настроим свой сервер и первый ресурс, также создадим команду(veh -> vehicle) для создания транспорта
Что вам понадобиться, для того чтобы понять этот урок
1- Мозг
2- Прямые руки (но это не обязательно)
3- Знания языка программирования C#
4- Ну и желательно не быть Питонистмом
Настройка и создания сервера
1 - Для начала вам нужно перейти в папку где у вас установлен RAGEMP, найти там папку server-files
2 - Скопировать все её содержимое в любое удобное для вам место на вашем ПК
3 - И запустить файл ragemp-server.exe, после этого у вас в папке сервера появиться куча других файлов и папок
4 - Теперь откройте файл conf.json, и в значении ключа "csharp" вместо "disabled" напишите "enabled"
Создание ресурса
1 - В папке dotnet создайте папку resources
2 - Дальше в папке resources создайте папку с названием вашего ресурса -> например: "Server"
3 - Перейдите в папку которую вы создали ранее и создайте там файл "meta.xml"
4 - Дальше откройте терминал и перейдите в директорию где у вас лежит meta.xml, и напишете команду "dotnet new classlib"
5 - После этого у вас сгенерируется шаблон проекта который представляет "библиотеку классов dotnet"
6 - Потом откройте файл *.csproj, и вставьте туда этот текст
7 - Дальше вам нужно собрать проект командой "dotnet build --configuration Release"
8 - Потом в файл meta.xml вставьте данный текст
8.1 - В файл settings.xml нужно вставить данную строку, где в src должно быть указанно имя вашего ресурса, после чего файл settings.xml должен выглядеть примерно так
9 - Сохраните все файлы и повторите 7 пункт, и запустите сервер, после чего у вас должен быть примерно такой вывод
10 - Если у вас работает, значит пора приступить к написаю первого вашего скрипта
11 - Вставьте этот код ваш главный .cs файл -> описание того что там происходит, написано в комментариях
12 - В итоге у вас при ведении в чат подобного текста "/veh radi 1 2" должна создаться машина
Буду надеяться что я вам как-то помог, также желаю вам удачи в жизни и в разработке
Если есть какие-то пожелание, рекомендации, или замечания, то пишите их ниже в ответах к данному посту
Также вы можете писать свои отзывы в комментариях под этим уроком
Сегодня я постараюсь вам показать как создать свой первый ресурс для сервера RAGEMP на языке C#
Сегодня мы создадим и настроим свой сервер и первый ресурс, также создадим команду(veh -> vehicle) для создания транспорта
Что вам понадобиться, для того чтобы понять этот урок
1- Мозг
2- Прямые руки (но это не обязательно)
3- Знания языка программирования C#
4- Ну и желательно не быть Питонистмом
Настройка и создания сервера
1 - Для начала вам нужно перейти в папку где у вас установлен RAGEMP, найти там папку server-files
2 - Скопировать все её содержимое в любое удобное для вам место на вашем ПК
3 - И запустить файл ragemp-server.exe, после этого у вас в папке сервера появиться куча других файлов и папок
4 - Теперь откройте файл conf.json, и в значении ключа "csharp" вместо "disabled" напишите "enabled"
JSON:
{
"maxplayers" : 100,
"name" : "RAGE:MP Unofficial server",
"gamemode" : "freeroam",
"stream-distance" : 500.0,
"announce" : false,
"csharp" : "enabled",
"port": 22005
}
Создание ресурса
1 - В папке dotnet создайте папку resources
2 - Дальше в папке resources создайте папку с названием вашего ресурса -> например: "Server"
3 - Перейдите в папку которую вы создали ранее и создайте там файл "meta.xml"
4 - Дальше откройте терминал и перейдите в директорию где у вас лежит meta.xml, и напишете команду "dotnet new classlib"
5 - После этого у вас сгенерируется шаблон проекта который представляет "библиотеку классов dotnet"
6 - Потом откройте файл *.csproj, и вставьте туда этот текст
XML:
<ItemGroup>
<Reference Include="Bootstrapper">
<!-- путь к файлу Bootstrapper.dll который находить по пути ./dotnet/runtime/ -->
<HintPath>.\.\runtime\Bootstrapper.dll</HintPath>
</Reference>
</ItemGroup>
7 - Дальше вам нужно собрать проект командой "dotnet build --configuration Release"
8 - Потом в файл meta.xml вставьте данный текст
XML:
<meta>
<!--Информация про ресурс-->
<info name="Server" description="Server description" />
<!--Путь к .dll файлу, который называется так же как и ваша папка-->
<script src="./bin/Release/netcoreapp3.1/Server.dll" />
</meta>
XML:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--src - имя вашего ресурса -->
<resource src="Server" />
<acl_enabled>true</acl_enabled>
<log_console>true</log_console>
<log_chat>true</log_chat>
</config>
9 - Сохраните все файлы и повторите 7 пункт, и запустите сервер, после чего у вас должен быть примерно такой вывод
10 - Если у вас работает, значит пора приступить к написаю первого вашего скрипта
11 - Вставьте этот код ваш главный .cs файл -> описание того что там происходит, написано в комментариях
C#:
using System.Reflection;
using GTANetworkAPI;
namespace Server
{
public class Server : Script // Наследуется от класса Script , для того чтобы RAGE MP мог распознать наш класс как сприпт
{
[ServerEvent(Event.ResourceStart)]//Атрибут, указывающий на то, что метод, который будет находиться ниже, будет играть роль обработчика для события ResourceStart
public void ResourceStarEventHandler()
{
NAPI.Util.ConsoleOutput($"Starting SERVER Resource");//ConsoleOutput - Вставляет любой текст в консоль сервера, эквивалентен методу WriteLine
}
[Command("veh")]// Атрибут, указывающий на то, что метод, который будет находиться ниже, будет играть роль обработчика для команды veh
public void CreateVehicleCommand(Player player , VehicleHash vehicleHash , int color1 , int color2) // Любой обработчик команды на вход автоматически получает игрока, который ввёл эту команду
// Все что идёт после Player player, это уже параметры которые может ввести игрок , их может быть неограниченное количество
// /veh radi 2 1
{
NAPI.Vehicle.CreateVehicle(vehicleHash, player.Position , player.Rotation , color1 , color2); // Этот метод создаёт какой-либо транспорт на сервер , на место координат мы передаём позицию игрока
// На место ротации передаём ротацию игрока
// хеш транспортного средства у нас берется из аргументов
// цвет транспортного средства берется из аргументов
}
}
}
12 - В итоге у вас при ведении в чат подобного текста "/veh radi 1 2" должна создаться машина
Буду надеяться что я вам как-то помог, также желаю вам удачи в жизни и в разработке
Если есть какие-то пожелание, рекомендации, или замечания, то пишите их ниже в ответах к данному посту
Также вы можете писать свои отзывы в комментариях под этим уроком
Последнее редактирование: