• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Мануал Система тест-драйва авто в автосалоне для мода RedAge RolePlay (NeptuneEvo) | GTA 5 RP

Harland David Sanders

Куратор портала
Автор темы
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,058
2,443
219
В данном мануале мы установим систему тест-драйва для автосалона в мод RedAge RolePlay (NeptuneEvo).
Если у Вас возникли проблемы с этой системой или просто что-то не получается - пишите в эту тему, постараюсь помочь.

Тест-драйв проходит в другом измерении (dimension), прерывается при выходе из машины.

В файле NeptuneEvo/Core/Carroom.cs добавляем два новых серверных эвента (в пустое место, можете добавить рядом с другими похожими строчками):
Внимание! Один эвент enterCarroom уже есть в RedAge RP, вам необходимо его заменить на новый, старый удалить.

C#:
[ServerEvent(Event.PlayerExitVehicle)] public void Event_OnPlayerExitVehicle(Client player, Vehicle vehicle) {
  try {
    if (!player.HasData("CARROOMTEST")) return;
    enterCarroom(player, "CARROOMTEST");
    var veh = player.GetData("CARROOMTEST");
    veh.Delete();
    player.ResetData("CARROOMTEST");
  } catch(Exception e) {
    Log.Write("PlayerExitVehicle: " + e.Message, nLog.Type.Error);
  }
}
public static void enterCarroom(Client player, string name) {
  if (NAPI.Player.IsPlayerInAnyVehicle(player) && player.HasData("CARROOMTEST") == false) return;
  Main.Players[player].ExteriorPos = player.Position;
  NAPI.Entity.SetEntityPosition(player, new Vector3(CamPosition.X, CamPosition.Y - 2, CamPosition.Z));
  NAPI.Entity.SetEntityDimension(player, 1);
  player.FreezePosition = true;
  player.SetData("INTERACTIONCHECK", 0);
  Trigger.ClientEvent(player, "carRoom");
  OpenCarromMenu(player, BusinessManager.BizList[player.GetData("CARROOMID")].Type);
} [RemoteEvent("carroomTestDrive")] public static void RemoteEvent_carroomTestDrive(Client player, string vName, string color) {
  try {
    if (!player.HasData("CARROOMID")) return;
    player.FreezePosition = false;
    Trigger.ClientEvent(player, "destroyCamera");
    uint mydim = (uint)(player.Value + 400);
    NAPI.Entity.SetEntityDimension(player, mydim);
    VehicleHash vh = (VehicleHash) NAPI.Util.GetHashKey(vName);
    var veh = NAPI.Vehicle.CreateVehicle(vh, player.Position, player.Rotation.Z, 0, 0);
    veh.Dimension = mydim;
    veh.NumberPlate = "TESTDRIVE";
    veh.PrimaryColor = 131;
    veh.SecondaryColor = 131;
    veh.SetData("BY", player.Name);
    VehicleStreaming.SetEngineState(veh, true);
    NAPI.Player.SetPlayerIntoVehicle(player, veh, -1);
    player.SetData("CARROOMTEST", veh);
    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $ "CARROOMID - " + player.GetData("CARROOMID"), 3000);
  } catch(Exception e) {
    Log.Write("TestDrive: " + e.Message, nLog.Type.Error);
  }
}

Переходим к клиенту. В файле client_packages/cef/js/auto.js находим строчку buy: function() и ниже ее добавляем новое событие тестдрайва:

JavaScript:
testdrive: function() {
    console.log('testdriveAuto');
    mp.trigger('testdriveAuto');
},

В файле client_packages/menus.js добавляем новый клиентский эвент:

JavaScript:
mp.events.add('testdriveAuto', () => {
    if (new Date().getTime() - global.lastCheck < 50) return;
    global.lastCheck = new Date().getTime();
    global.menuClose();
    global.menu.execute('auto.active=0');
    mp.events.callRemote('carroomTestDrive', auto.model, auto.color);
    if (auto.entity == null) return;
    auto.entity.destroy();
    auto.entity = null;
})

Переходим к визуальной части. Внимание! Если у вас кастомный интерфейс то делайте кнопки и стили под себя, ниже предоставлен код под стандартный RedAge RP.

В файле client_packages/cef/menu.html находим строчку @click="buy" (это кнопка покупки авто) ниже ее добавляем кнопку тестдрайва:

HTML:
<div @click="testdrive" class="btn testdrive">Тест-драйв</div>

В файле client_packages/cef/css/auto.css в самый конец добавляем стили для нашей кнопки желтого цвета:

CSS:
.auto .testdrive { border-color: #ffdb00; margin-bottom: 10px; } .auto .testdrive:hover { background-color: #ffce00; }

Готово. Чтобы изменить координаты появления машины на тестдрайве редактируйте RemoteEvent - carroomTestDrive в файле NeptuneEvo/Core/Carroom.cs

находим строку:
C#:
 var veh = NAPI.Vehicle.CreateVehicle(vh, player.Position, player.Rotation.Z, 0, 0);

меняем на:
C#:
var veh = NAPI.Vehicle.CreateVehicle(vh, new Vector3(-18.867155, -1109.2737, 26.70288), player.Rotation.Z, 0, 0);
 
Последнее редактирование:
  • Like
Реакции: yathework, GoodLuck и GLHF

Daston

Гуру
16 Сен 2020
170
82
103
Чтобы изменить место спавна автомобиля заходим в Carroom.cs
Находим строчку
C#:
var veh = NAPI.Vehicle.CreateVehicle(vh, player.Position, player.Rotation.Z, 0, 0);
Заменяем player.Position на new Vector3(0, 0, 0), где нули - ваши координаты
 
  • OK
Реакции: Harland David Sanders

RoliMoli

Участник портала
15 Сен 2020
34
1
18
при нажатии на кнопку машина не спавнится а в логах вот что перепроверил всё норм вроде. единственное в carrome при сборка выдавало 3 ошибки из за символа $ я его удалил и ток тогда сборка построилась и собр.
 

Вложения

  • ntcn.PNG
    ntcn.PNG
    9 KB · Просмотры: 440

Crazy_Man

Участник портала
16 Сен 2020
24
3
22
как сделать что бы и ротацию спавна авто сделать? так как авто на тесте появляется по разному
 

Bro

Начинающий специалист
14 Сен 2020
14
5
47
у меня работает исправно!)
 

Harland David Sanders

Куратор портала
Автор темы
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,058
2,443
219
Решение проблемы с крашем сервера из-за быстрого выхода из машины:

Ищем данные строки:
C#:
[ServerEvent(Event.PlayerExitVehicle)] public void Event_OnPlayerExitVehicle(Client player, Vehicle vehicle)

и заменяем их на:
C#:
[ServerEvent(Event.PlayerExitVehicleAttempt)] public void Event_OnPlayerExitVehicleAttempt(Client player, Vehicle vehicle)
 

Alex

Начинающий специалист
15 Сен 2020
5
1
47
не магу понять как это из справить
1601872159783.png
 
  • Like
Реакции: stage

Alex

Начинающий специалист
15 Сен 2020
5
1
47
а тепери пишет как и первый Рас не понятно почму так то
1601874670413.png
 

Alex

Начинающий специалист
15 Сен 2020
5
1
47
Я ПРОСТО НЕ ЗАНИМАЮСЬ ПРОГРАММИРОВАНИЕ И НЕ МОГУ УБРАТЬ ИЁ
 

GoodLuck

Активный участник
26 Сен 2020
61
17
27
В данном мануале мы установим систему тест-драйва для автосалона в мод RedAge RolePlay (NeptuneEvo).
Если у Вас возникли проблемы с этой системой или просто что-то не получается - пишите в эту тему, постараюсь помочь.

Тест-драйв проходит в другом измерении (dimension), прерывается при выходе из машины.

В файле NeptuneEvo/Core/Carroom.cs добавляем два новых серверных эвента (в пустое место, можете добавить рядом с другими похожими строчками):
Внимание! Один эвент enterCarroom уже есть в RedAge RP, вам необходимо его заменить на новый, старый удалить.

C#:
[ServerEvent(Event.PlayerExitVehicle)] public void Event_OnPlayerExitVehicle(Client player, Vehicle vehicle) {
  try {
    if (!player.HasData("CARROOMTEST")) return;
    enterCarroom(player, "CARROOMTEST");
    var veh = player.GetData("CARROOMTEST");
    veh.Delete();
    player.ResetData("CARROOMTEST");
  } catch(Exception e) {
    Log.Write("PlayerExitVehicle: " + e.Message, nLog.Type.Error);
  }
}
public static void enterCarroom(Client player, string name) {
  if (NAPI.Player.IsPlayerInAnyVehicle(player) && player.HasData("CARROOMTEST") == false) return;
  Main.Players[player].ExteriorPos = player.Position;
  NAPI.Entity.SetEntityPosition(player, new Vector3(CamPosition.X, CamPosition.Y - 2, CamPosition.Z));
  NAPI.Entity.SetEntityDimension(player, 1);
  player.FreezePosition = true;
  player.SetData("INTERACTIONCHECK", 0);
  Trigger.ClientEvent(player, "carRoom");
  OpenCarromMenu(player, BusinessManager.BizList[player.GetData("CARROOMID")].Type);
} [RemoteEvent("carroomTestDrive")] public static void RemoteEvent_carroomTestDrive(Client player, string vName, string color) {
  try {
    if (!player.HasData("CARROOMID")) return;
    player.FreezePosition = false;
    Trigger.ClientEvent(player, "destroyCamera");
    uint mydim = (uint)(player.Value + 400);
    NAPI.Entity.SetEntityDimension(player, mydim);
    VehicleHash vh = (VehicleHash) NAPI.Util.GetHashKey(vName);
    var veh = NAPI.Vehicle.CreateVehicle(vh, player.Position, player.Rotation.Z, 0, 0);
    veh.Dimension = mydim;
    veh.NumberPlate = "TESTDRIVE";
    veh.PrimaryColor = 131;
    veh.SecondaryColor = 131;
    veh.SetData("BY", player.Name);
    VehicleStreaming.SetEngineState(veh, true);
    NAPI.Player.SetPlayerIntoVehicle(player, veh, -1);
    player.SetData("CARROOMTEST", veh);
    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $ "CARROOMID - " + player.GetData("CARROOMID"), 3000);
  } catch(Exception e) {
    Log.Write("TestDrive: " + e.Message, nLog.Type.Error);
  }
}

Переходим к клиенту. В файле client_packages/cef/js/auto.js находим строчку buy: function() и ниже ее добавляем новое событие тестдрайва:

JavaScript:
testdrive: function() {
    console.log('testdriveAuto');
    mp.trigger('testdriveAuto');
},

В файле client_packages/menus.js добавляем новый клиентский эвент:

JavaScript:
mp.events.add('testdriveAuto', () => {
    if (new Date().getTime() - global.lastCheck < 50) return;
    global.lastCheck = new Date().getTime();
    global.menuClose();
    global.menu.execute('auto.active=0');
    mp.events.callRemote('carroomTestDrive', auto.model, auto.color);
    if (auto.entity == null) return;
    auto.entity.destroy();
    auto.entity = null;
})

Переходим к визуальной части. Внимание! Если у вас кастомный интерфейс то делайте кнопки и стили под себя, ниже предоставлен код под стандартный RedAge RP.

В файле client_packages/cef/menu.html находим строчку @click="buy" (это кнопка покупки авто) ниже ее добавляем кнопку тестдрайва:

HTML:
<div @click="testdrive" class="btn testdrive">Тест-драйв</div>

В файле client_packages/cef/css/auto.css в самый конец добавляем стили для нашей кнопки желтого цвета:

CSS:
.auto .testdrive { border-color: #ffdb00; margin-bottom: 10px; } .auto .testdrive:hover { background-color: #ffce00; }

Готово. Чтобы изменить координаты появления машины на тестдрайве редактируйте RemoteEvent - carroomTestDrive в файле NeptuneEvo/Core/Carroom.cs

находим строку:
C#:
 var veh = NAPI.Vehicle.CreateVehicle(vh, player.Position, player.Rotation.Z, 0, 0);

меняем на:
C#:
var veh = NAPI.Vehicle.CreateVehicle(vh, new Vector3(-18.867155, -1109.2737, 26.70288), player.Rotation.Z, 0, 0);
Исправь, в ивенте не нужен $
 
  • Dislike
Реакции: PERS

Alex

Начинающий специалист
15 Сен 2020
5
1
47
я у же уберал это $ но пишет CS0246 C# The type or namespace name 'player' could not be found (are you missing a using directive or an assembly reference?
 

Вложения

  • Безымянный.png
    Безымянный.png
    4.3 KB · Просмотры: 343