FAQ Как перевести сборку сервера RAGE:MP с версии 0.3.7 на 1.1

Harland David Sanders

Куратор портала
Автор темы
Команда форума
Куратор портала
high coder
media
10 Сен 2020
1,287
861
170
Всем привет, сабж думаю понятен. Встречаю очень много подобных вопросов на форуме и в дискорде.

Ну чтож начнем, команда RAGE:MP при публикации prerelease версии опубликовала список изменений:

В этом списке изменений есть специальный раздел - 0.3.7 compatibility guide (0.3.7 руководство по совместимости)
В этом списке как раз написаны почти все необходимые действия для перевода мода на 1.1.
Казалось бы, на этом можно закончить гайд и закрыть тему, но я разжую вам еще подробнее (чтобы каждый Рахим понял):

  1. Make sure your server-side resources use correct seat IDs (it starts from 0, not -1 anymore)
    Убедитесь, что ваши серверные ресурсы используют правильные идентификаторы рабочих мест (они начинаются с 0, а не с -1).
    Это значит что вы должны ТОЛЬКО В СЕРВЕРНОЙ ЧАСТИ изменить все места в коде где используется seat свойства игрока и машин изменить с -1 на 0.


  2. C# only: Make sure to update GetData syntax (in most of cases you can just autoreplace "GetData(" with "GetData<object>(" for exact 0.3.7 behavior).
    Только для C#: обязательно обновите синтаксис GetData (в большинстве случаев вы можете просто автоматически заменить GetData (»на« GetData <object> (»для точного поведения 0.3.7).
    Это значит что вы должны изменить способ использования GetData и ей подобных переменных под новый вид (с явным указанием типа данных). ТОЛЬКО ЕСЛИ У ВАС СЕРВЕР НА C#


  3. C# only: "Client" got renamed with "Player".
    Только C#: «Client» переименован в «Player».
    Это значит что вы должны изменить в вашем моде все типы переменных Client на Player. ТОЛЬКО ЕСЛИ У ВАС СЕРВЕР НА C#


  4. C# only: Vehicle occupants API now returns Entity instead of Player - that's because 1.1 synchronized peds could be vehicle occupants too
    Только C#: API для пассажиров транспортных средств теперь возвращает Entity вместо Player - это потому, что синхронизированные пешеходы 1.1 также могут быть пассажирами транспортных средств.

  5. C# only: EntityCreated/Destroyed events now pass Entity argument instead of NetHandle
    Только C#: события EntityCreated / Destroyed теперь передают аргумент Entity вместо NetHandle.


  6. Optional: Make sure to use RGSC IDs instead of RGSC Nicknames
    Необязательно: убедитесь, что вы используете идентификаторы RGSC вместо псевдонимов RGSC.

  7. Make sure to implement new chat API initerface. 0.3.7-.1.1 compatibility wrapper (CEF code):
    Обязательно внедрите новый интерфейс API чата. Обертка совместимости 0.3.7 - 1.1 (код CEF):

    JavaScript:
    let api = {"chat:push": chatAPI.push, "chat:clear": chatAPI.clear, "chat:activate": chatAPI.activate, "chat:show": chatAPI.show};
    for(let fn in api)
    {
        mp.events.add(fn, api[fn]);
    }

И последние 5 пунктов рассказывают о том как именно изменить бинарники самого сервера и что произошло с плагинами и в целом c# составляющей сервера:
  1. 0.3.7 plugins should be removed from /plugins/, it's not compatible. Moreover, both "bridge.dll" and "rpfencrypt.dll" are redutant: C# API doesn't require a plugin to work.
    Плагины 0.3.7 следует удалить из /plugins/, это несовместимо. Более того, и "bridge.dll", и "rpfencrypt.dll" являются избыточными: для работы C # API не требуется плагин.
    Это значит что вы должны удалить все плагины из папки plugins (они больше не используются). Вся серверная часть на c# переехала в папку dotnet и сам файл bridge.dll больше не нужон.


  2. DLCPack files should be moved from /client_packages/dlcpacks to /client_packages/game_resources/dlcpacks. If required, custom server-sided gameconfig.xml (/client_packages/game_resources/common/data/gameconfig.xml) could be used.
    Файлы DLCPack следует переместить из /client_packages/dlcpacks в /client_packages /game_resources/dlcpacks. При необходимости можно использовать настраиваемый серверный файл gameconfig.xml (/client_packages/game_resources/common/data/gameconfig.xml).
    Это значит что все dlcpacks переехали в новую папку (client_packages /game_resources/dlcpacks). А также появился новый способ настраивать конфиг игры (ограничения, лимиты) в файле client_packages/game_resources/common/data/gameconfig.xml


  3. Don't confuse "/server-files/ragemp-server.exe" (1.1) with "/server-files/server.exe" or "/server-files/dotnet/" with "/server-files/bridge/"
    Не путайте "/server-files/ragemp-server.exe" (1.1) с "/server-files/server.exe" или "/server-files /dotnet/" с "/server-files /bridge/"
    Это значит что вам надо заменить старый файл server.exe на новый ragemp-server.exe, а также еще раз говорится о изменениях в серверной части (см. пункт 1).


  4. Review all your custom synchronization code, some parts might be redutant with 1.1
    Просмотрите весь свой собственный код синхронизации, некоторые части могут быть изменены с 1.1.

  5. More may follow, be sure to check this again if you find incompatibility issues.
    Возможно, последуют другие, обязательно проверьте это еще раз, если вы обнаружите проблемы несовместимости.

На этом все, если есть какие то дополнительные вопросы или у вас возникли проблемы, пишите в эту тему, постараюсь помочь.
Данная статья сделана при поддержке - @FireFeed ака Владик, спасибо ему.
 
Последнее редактирование:

Belzer

Активный участник
9 Фев 2021
23
9
28
Благодарю Вас за такую полезную статью!