у тебя сборка какая то? или ты с нуля пишешь?Всем привет, прошу помощи по настройке сервера, а именно клиентской стороны. Почему-то сервер не видит скриптов не на js не на с#. На серверной стороне все скрипты работают на с#. Возможно есть актуальные гайды или подскажите что проверить нужно.
скинь какие файлы у тебя директории client_packeges и содержимое index.jsС нуля
по с# путь правильный, файл cs не компилировал, унаследование тоже прописывалДавай разберёмся по этапно.
JS скрипты:
Подключение файлов происходит с помощью прописывания каждого отдельного скрипта внутри первого файла index.js (или внутри тех, которые так же подключены изначально в index.js) с помощью "require('./file.js');"
- Они могут находиться где угодно внутри папки "server_files/client_packages/".
- Первый и единственный файл, который подгружает сам RAGEMP называется "index.js", а значит у тебя как минимум должен быть такой файл.
C# скрипты:
Подключение файлов происходит через наследования класса "Script" из файла rage-sharpN.dll, который тебе нужен для разработки клиентской стороны на C#.
- Они могут находиться где угодно внутри папки "server_files/client_packages/cs_packages/"
- Все файлы с расширением ".cs" автоматически подгружаются оттуда и компилируется в момент подключения игрока к серверу (это значит, что тебе не обязательно собирать проект клиентской стороны в .dll файл).
Ну тогда без бОльшей информации помочь тебе чем-то не получится.по с# путь правильный, файл cs не компилировал, унаследование тоже прописывал
скинь скрины с папки клиентских пакетов + код index.jsпо с# путь правильный, файл cs не компилировал, унаследование тоже прописывал
Если у него C# скрипты, то index.js иметь не обязательно.скинь скрины с папки клиентских пакетов + код index.js
как я понял у него на js клиентка, ну а так даЕсли у него C# скрипты, то index.js иметь не обязательно.
Можно, если у него так же есть скрипты на JS стороне, но не обязательно.
Как ты это понял, если он буквально пишет следующее:как я понял у него на js клиентка, ну а так да
по с# путь правильный, файл cs не компилировал, унаследование тоже прописывал
а понял, тут я не до конца вник. Ни разу не видел клиентки на c# просто, не привычноКак ты это понял, если он буквально пишет следующее:
попробуй вместо Player target передавать айди например и в команде его же писать, ибо player'a ты вроде никак не передашь через командуПосмотреть вложение 18168
Посмотреть вложение 18169
Посмотреть вложение 18170
Меня интересует больше пока что работа на с#, сильно не пинайте за ошибки, скажите что не так. 10 поставил чисто проверить работу скрипта.
После команды ник игрока пишетсяпопробуй вместо Player target передавать айди например и в команде его же писать, ибо player'a ты вроде никак не передашь через команду
Не уверен на 100%, но если я не ошибаюсь, то команда может принимать объект (то есть Player) только первым аргументом для игрока, который вводит команду.Посмотреть вложение 18168
Посмотреть вложение 18169
Посмотреть вложение 18170
Меня интересует больше пока что работа на с#, сильно не пинайте за ошибки, скажите что не так. 10 поставил чисто проверить работу скрипта.
[Command("heal")]
public void SetHealth(Player player, int heal)
{
player.TriggerEvent("PlayerHealth", heal);
player.SendChatMessage($"Вы пытаетесь изменить своё здоровье на {heal}");
}
public void PlayerHealth(object[] args)
{
if (args == null || args.Length == 0) return;
int health = Convert.ToInt32(args[0]);
if (health < 0) return;
RAGE.Elements.Player.LocalPlayer.SetHealth(health);
}
[Command("heal")]
public void SetHealth(Player player, int targetId, int heal)
{
Player target = NAPI.Pools.GetAllPlayers().FirstOrDefault(x => x.Value == targetId);
if (target == null)
{
player.SendChatMessage($"Игрока с Id {targetId} не существует в данный момент.");
return;
}
target.TriggerEvent("PlayerHealth", heal);
player.SendChatMessage($"Вы пытаетесь изменить здоровье {target.Name} ({target.Value}) на {heal}");
}
[Command("heal", GreedyArg = true)]
public void SetHealth(Player player, int heal, string targetName)
{
Player target = NAPI.Pools.GetAllPlayers().FirstOrDefault(x => x.Name == targetName);
if (target == null)
{
player.SendChatMessage($"Игрока с именем {targetName} не существует в данный момент.");
return;
}
target.TriggerEvent("PlayerHealth", heal);
player.SendChatMessage($"Вы пытаетесь изменить здоровье {target.Name} ({target.Value}) на {heal}");
}
тогда передавай в команду строку и по нику получай игрока, которому хп менять надоПосле команды ник игрока пишется