Я сделал код для команды /vehspawner решил добавить ещё класс автомобиля чтобы было легче, и сталкнулся с такой ошибкой что оргументы которые мне дала нейронка не действительные, кто может подсказать и исправить чтобы все работало, буду благодарен:
Вот сам код:
Вот мой изначальный код:
Вот сам код:
C#:
using System;
using System.Collections.Generic;
using RAGE;
using RAGE.NUI;
namespace VehicleSpawner
{
public class VehicleSpawner : Events.Script
{
private bool sitIn = false;
public VehicleSpawner()
{
Events.Add("vSpawner", vSpawner);
}
public void vSpawner(object[] args)
{
bool vehicleSelected = false;
RAGE.Ui.Cursor.Visible = true;
Chat.Show(false);
UIMenu vMenu = new UIMenu("Спавнер машин", "Создай свой собственный автомобиль!");
MenuPool menuPool = new MenuPool();
menuPool.Add(vMenu);
UIMenuCheckboxItem setInCar = new UIMenuCheckboxItem("Посадить игрока в машину?", sitIn);
vMenu.AddItem(setInCar);
var vehicleClasses = new List<dynamic>
{
"Спортивные",
"Внедорожники",
"Седаны"
};
var vehicleClassSelected = vehicleClasses[0];
UIMenuListItem selectedVehicleClass = new UIMenuListItem("Класс машин", vehicleClasses, 0);
vMenu.AddItem(selectedVehicleClass);
Dictionary<string, List<string>> vehiclesByClass = new Dictionary<string, List<string>>()
{
{ "Спортивные", new List<string> { "Sultan", "Elegy", "Comet" } },
{ "Внедорожники", new List<string> { "Dubsta", "Baller", "Huntley" } },
{ "Седаны", new List<string> { "Ingot", "Asterope", "Stanier" } }
};
List<string> vehiclesForSelectedClass = vehiclesByClass[vehicleClassSelected];
selectedVehicleClass.OnListChange += (menu, item, index) =>
{
vehicleClassSelected = selectedVehicleClass.IndexToItem(index).ToString();
vehiclesForSelectedClass = vehiclesByClass[vehicleClassSelected];
selectedVehicleNames.Items = new List<dynamic>(vehiclesForSelectedClass);
selectedVehicleNames.Index = 0; // Reset the selected vehicle for the new class
};
UIMenuListItem selectedVehicleNames = new UIMenuListItem("Транспортное средство", new List<dynamic>(vehiclesForSelectedClass), 0);
vMenu.AddItem(selectedVehicleNames);
UIMenuItem spawnButton = new UIMenuItem("Spawn");
vMenu.AddItem(spawnButton);
vMenu.OnMenuClose += (menu) =>
{
RAGE.Ui.Cursor.Visible = false;
Chat.Show(true);
vMenu.Visible = false;
vMenu.FreezeAllInput = false;
};
spawnButton.Activated += (menu, item) =>
{
RAGE.Ui.Cursor.Visible = false;
Chat.Show(true);
vMenu.Visible = false;
vMenu.FreezeAllInput = false;
Events.CallRemote("SpawnVehicleServer", selectedVehicleNames.SelectedItem.ToString(), sitIn);
};
vMenu.Visible = true;
vMenu.FreezeAllInput = true;
vMenu.RefreshIndex();
Events.Tick += (name) =>
{
menuPool.ProcessMenus();
};
}
}
}
Вот мой изначальный код:
C#:
using System;
using System.Collections.Generic;
using RAGE;
using RAGE.NUI;
namespace VehicleSpawner
{
public class VehicleSpawner : Events.Script
{
public VehicleSpawner()
{
Events.Add("vSpawner", vSpawner);
}
public void vSpawner(object[] args)
{
string vehicleSelected = null;
bool sitIn = false;
RAGE.Ui.Cursor.Visible = true;
Chat.Show(false);
UIMenu vMenu = new UIMenu("Спавнер машин", "Создай свой собственный автомобиль!");
MenuPool menuPool = new MenuPool();
menuPool.Add(vMenu);
UIMenuCheckboxItem SetInCar = new UIMenuCheckboxItem("Посадить игрока в машину?", sitIn);
vMenu.AddItem(SetInCar);
var vehicleNames = new List<dynamic>
{
"Sultan",
"18rs7"
};
vehicleSelected = vehicleNames[0];
UIMenuListItem selectedVehicleNames = new UIMenuListItem("Транспортное средство", vehicleNames, 0);
vMenu.AddItem(selectedVehicleNames);
UIMenuItem spawnButton = new UIMenuItem("Spawn");
vMenu.AddItem(spawnButton);
vMenu.OnMenuClose += (menu) =>
{
if(menu == vMenu)
{
RAGE.Ui.Cursor.Visible = false;
Chat.Show(true);
vMenu.Visible = false;
vMenu.FreezeAllInput = false;
}
};
vMenu.OnCheckboxChange += (menu, item, flag) =>
{
if(menu == vMenu && item == SetInCar)
{
sitIn = flag;
}
};
vMenu.OnListChange += (menu, item, index) =>
{
if(menu == vMenu && item == selectedVehicleNames)
{
vehicleSelected = item.IndexToItem(index).ToString();
}
};
spawnButton.Activated += (menu, item) =>
{
if(menu == vMenu && item == spawnButton)
{
RAGE.Ui.Cursor.Visible = false;
Chat.Show(true);
vMenu.Visible = false;
vMenu.FreezeAllInput = false;
Events.CallRemote("SpawnVehicleServer", vehicleSelected, sitIn);
}
};
vMenu.Visible = true;
vMenu.FreezeAllInput = true;
vMenu.RefreshIndex();
Events.Tick += (name) =>
{
menuPool.ProcessMenus();
};
}
}
}