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

Проблема Помогите убрать ошибку

All Games TV

Новый участник
19 Июл 2022
11
0
21
Я сделал код для команды /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();
            };
        }
    }
}