This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Вопрос по Client-side

Slash

Участник портала
BackEnd developer
10 Янв 2023
130
15
53
Чтобы консоль не закрывалась открывай ragemp-server.exe через cmd. Просто открой её в папке где у тебя экзешник сервера и введи название exe'шника
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
Я ведь тебе буквально дал готовый код, который ты можешь использовать, чтобы проверить.

Клиент должен наследовать RAGE.Events.Script, всё верно.
Файл .cs должен лежать в "server-files/client_packages/cs_packages/".
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
Еще в консоли такое вылазит после команды.

Посмотреть вложение 18173
Тут ошибка от того, что RAGEMP не может форматировать введённые тобой данные в команду, которая принимает эти самые данные.
Поставь ты уже мой код, который я тебе предоставил. И пропиши команду /heal 50
 

fiend

Новый участник
17 Ноя 2023
19
0
21


 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
У тебя по стандарту стоит более высокая версия C#, которая хочет выделять потенциально null переменные, в таком случае просто сделай "Player? target" - это исправит предупреждение.

Что на счёт проблемы снизу - у тебя, видимо, куда-то пропал loader.mjs от RAGEMP, перекачай серверную сборку и достань файлы из папки /bin/ себе.
 

fiend

Новый участник
17 Ноя 2023
19
0
21
Исправил все, вставил твой код.





 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
Для этого выбранного варианта тебе нужно ввести /heal 50 НикПоРейджу
Например, если у тебя стоит стандартный ник в рейдже "WeirdNewbie", то ты пишешь команду /heal 50 WeirdNewbie
Твой ник по RAGEMP можно посмотреть в лаунчере.
 

fiend

Новый участник
17 Ноя 2023
19
0
21
у меня ник другой но все равно, ошибки в консоле даже если я его пишу
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
У тебя сейчас что-то не так с зависимостями, к которым обращается RAGEMP - либо сам Bootstrapper, либо его зависимости.

Установи конфиг (config.xml) на "prerelease_server", затем запусти лаунчер, чтобы он скачал server-files папку заново, после чего верни конфиг на "prerelease".
Возьми созданную server-files папку за основную - из неё достань bootstrapper.dll, который находится в server-files/dotnet/runtimes/ и подключи его к своему решению проекта серверной стороны, далее пересобери свою dll сервера и подключи к новой папке.
 
Последнее редактирование:

fiend

Новый участник
17 Ноя 2023
19
0
21
Обновил, не помогло)
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
Обновил, не помогло)
Странно.
Ну в самой ошибке видно, что проблема с зависимостью System.Runtime, то есть это не проблема в коде, а в одной из библиотек зависимостей.
 

fiend

Новый участник
17 Ноя 2023
19
0
21
ну хорошо, а как можно написать player.TriggerEvent что бы просто проверить работает ли клинский скрипт который просто выведет в игровой чат что ивент сработал?
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
Вопрос ещё такой, а какую версию .NET ты используешь?
Просто официально RAGEMP работает на .NET Core 3.1, всё что выше - может работать и вроде как даже без особых проблем, но там уже можно ожидать каких-то странностей.

У тебя ошибка с зависимостью вызывается даже в варианте с командой, где только 1 аргумент, потому что bootstrapper внутри себя преобразует твою строку (команду с аргументами) в данные, которые ты ожидаешь в реализации метода.
Поэтому ну разве что для проверки можешь вот так попробовать:
C#:
[Command("heal")]
public void SetHealth(Player player)
{
    int health = new Random().Next(1, 101);
    player.TriggerEvent("PlayerHealth", health);
    player.SendChatMessage($"Вы пытаетесь изменить своё здоровье на {health}");
}
В таком случае просто вводишь команду /heal и всё, без аргументов.
 

fiend

Новый участник
17 Ноя 2023
19
0
21
8.0, думаешь откатится стоит?
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
8.0, думаешь откатится стоит?
Если ты используешь 8.0, то ты должен заменить все зависимости RAGEMP на те же библиотеки от 8.0 версии.
И по идее как должно завестись, но не факт, потому что, повторюсь, офиц.поддержка заканчивается на .NET Core 3.1.

Важное уточнение:
Апгрейднуть таким образом можно ТОЛЬКО серверную сборку.
Клиент обязан придерживаться .NET Core 3.1
 

fiend

Новый участник
17 Ноя 2023
19
0
21
Я что-то типа того же написал. Все равно такое ощущение что просто не читает файл cs, в cs_packages. Хотя в консоли видно что передаются файлы.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,768
1,581
211
28
А клиент у тебя на .NET Core 3.1?
Клиент нельзя аплевелить.
 

fiend

Новый участник
17 Ноя 2023
19
0
21

А клиент у тебя на .NET Core 3.1?
Клиент нельзя аплевелить.
Только что скачал 3.1, сделал клиентский файл уже на этой версии. Но снова в консоль ошибки. Завтра буду дальше ковырять, спасибо за помощь.