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

Проблема не работает серверная часть кода (C#)

Bats772

Новый участник
15 Дек 2024
9
0
3
не работает серверная часть RAGE C#
Все пути верные, сервер пишет успешный запуск ресурса, выходные данные в правильной папке, в meta.xml всё, везде отмечено, библиотека классов, исполняемое приложение ragemp-server.exe
При этом клиент находится в том же решении и всё работает.

В коде ничего сложного, обычный вывод в консоль, но я пребывал и создание команд, ничего не работает, в консоль ничего не выводится


using GTANetworkAPI;
using System;


public class Events : Script
{
[ServerEvent(Event.ResourceStart)]
private void OnResourceStart()
{
NAPI.Util.ConsoleOutput("Hello Server!");
}
}
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,757
1,300
5
Проверьте правильность указания пространства имён и класса в файле meta.xml и в коде C#. Убедитесь, что указанное вами пространство имён совпадает с пространством имён вашего класса. Также убедитесь, что ваш класс наследуется от Script из пространства имён GTANetworkAPI.
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
Допускаю самое очевидное - ты не сделал сборку сервера или даже сделав, не переместил скомпилированный .dll файл в папку, откуда сервер (ragemp-srv.exe) берёт билд сборки.
В общем - покажи консоль, покажи папку вывода, папку сервера, в которой лежит скомпилированный мод.
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
Так же ещё одна из самых распространённых проблем при попытке запустить сборку на C# - забывают подключить подгрузку C# в конфиге сервера.
В conf.json, который находится рядом с ragemp-server.exe нужно добавить следующее:
Код:
"csharp" : "enabled",
Без этого в конфиге сервер даже не пытается добраться до твоего билда.
 

Bats772

Новый участник
15 Дек 2024
9
0
3
Код:
[INFO] Loading NodeJS packages...
[INFO] Starting packages...
[DONE] Server packages have been started.
Initializing Bootstrapper.dll (1.1.0.0)..
-> SERVER STARTED AT 15.12.2024 1:26:08
Unable to load acl.xml
ACLEnabled: False
Loaded 667 entries from vehicleData.json
Loading resources..
-> Starting Server resource..
Server: loading scripts.. found 1 script(s)
-> Resource Server started!
Started! Waiting for connections..
[DONE] Started resource transfer server at 22006 port.
[DONE] Client-side packages weight: 0.004120 MB (uncompressed: 0.009260 MB).
[INFO] Initializing networking...
[DONE] Networking has been started: (IPv4-only) at 127.0.0.1:22005
[DONE] The server is ready to accept connections.

папка вывода по пути:
RAGEMP\server-files\dotnet\resources\Server

мод лежит в RAGEMP\server-files\сore (если речь идёт о решении)


Сама папка сервера выглядит так:
 

Bats772

Новый участник
15 Дек 2024
9
0
3
нет, я исправил в конфиге на enabled
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
Тогда покажи больше информации:
1. server-files/dotnet/settings.xml
2. server-files/dotnet/resources/твояпапкак/meta.xml
3. server-files/conf.json

Вообще зарабатывай привычку сразу же выкладывать всё, что может хоть как-то относиться к твоей проблеме (как ты сам думаешь), потому что иначе мы тратим время на такие вот вопросы.
 
Реакции: Bats772

Bats772

Новый участник
15 Дек 2024
9
0
3
Вам тоже огромное спасибо за помощь!
 

LavrovS

Новый участник
15 Дек 2024
14
4
3
ACL.xml найди его, я просто не у компа, там в коде включи его, если там не будет этого, то в той папке что он лежит будет js код там будет указан ACL.xml
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
метод приватный, сделай публичным
Не влияет. Просто популярная мысль, которая ничем не подкреплена.
Рейдж аттрибуты распознают приватные методы и нестатичные тоже.


Сам так давно делаю.
 

DaVilka

Гуру
16 Сен 2020
709
259
128


я в исходник не смотрел, но я проверил перед тем как написать про приватный метод, у меня не работает приватный
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
Хм, окей, странно.
В таком случае могу только порекомендовать обновить длл'ку моста в решении (проекте) и в папке дотнета сервера, потому что там вполне могут быть критические исправления, которые могут влиять на работу всего проекта (в том числе и производительность), но в деталях я не рассматривал.
В самой последней версии это доступно.
 

DaVilka

Гуру
16 Сен 2020
709
259
128
хз, поставил последнюю, у меня реально стояла сарая, все так же, но и чел выше сказал что у него заработало с публичным
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
Я специально удалил папку server-files и перекачал серверный билд с конфигом prerelease_server, в том Bootstrapper.dll, что лежит в dotnet/runtimes в последнем серверном билде, есть поддержка приватных методов. Если вдруг у вас даже с ним не регистрируются методы - не знаю, просто я так делаю последние года 2-3 так точно. Буду знать, что это не просто так советуют, окей. Спасибо тоже за информацию.
 
Реакции: DaVilka

DaVilka

Гуру
16 Сен 2020
709
259
128
Кароче я выяснил, касательно ResourceStart private не работает, потому что он вызывается по другому, через получение MethodInfo , а GetMethod возвращает по дефолту только публичные методы. Другие методы если private работают

 
Реакции: Inoi