Замени Client на Playerя у же уберал это $ но пишет CS0246 C# The type or namespace name 'player' could not be found (are you missing a using directive or an assembly reference?
Замени Client на Playerя у же уберал это $ но пишет CS0246 C# The type or namespace name 'player' could not be found (are you missing a using directive or an assembly reference?
Это квест.тогда пишет другие ошибке ща справишь эти и опять новые подлежат я просто уже до того как была ошибка делал за меня сам ничего не смог и решил на писать тут
GetData надо определить тип явно, как в подсказке, player.GetData<string>("CARROOMTEST") (string меняется в зависимости от типа). FreezePosition на сколько я понял больше нету в серверной части и надо делать со стороны клиентатогда пишет другие ошибке ща с из правишь эти и опять новые по лежат я просто уже до того как была ошибка делал за меня сам ничего не смог и решил на писать тут
при нажатии на кнопку машина не спавнится а в логах вот что перепроверил всё норм вроде. единственное в carrome при сборка выдавало 3 ошибки из за символа $ я его удалил и ток тогда сборка построилась и собр.
Потому что выставлено так. просто передай названия авто туда.почему когда берёшь машину на тест драйв то пишет COROMID -0
NAPI авто в который сел человек передай хеш машины! или просто удали строчку чтобы сообщения не было!Как понять передай названия туду, куда туда? Спс
Почитать выше , не?
Слуша, а какВ данном мануале мы установим систему тест-драйва для автосалона в мод 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);
Слуша, а как этот процесс отличается при сборке с нуля?В данном мануале мы установим систему тест-драйва для автосалона в мод 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);
Зависит от вашей сборки, я же не знаю как у вас там все устроено.Слуша, а как
Слуша, а как этот процесс отличается при сборке с нуля?
пока что ничего не сделаноЗависит от вашей сборки, я же не знаю как у вас там все устроено.
ну так что,как это меняют код?Ну это все меняет