Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая
![](/uploads/posts/2018-11/1637945198_3721_bp.jpg)
В прошлой части урока мы добавили в меню возможность сброса уровня розыска и получения любого оружия. Также мы выяснили, каким образом создаются подменю. Давай немного реорганизуем наш код, создав подменю игрока и подменю оружия, поместив соответствующие пункты в эти подменю:
![Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая](https://libertycity.ru/uploads/posts/2018-11/1542137890_1.png)
Теперь немного отредактируем функцию Setup:
Чтобы сделать код более читабельным, я сделаю несколько функций для каждого типа: игрок и оружие.
Давай очистим некоторый код с выдачей звезд розыска, как мы сделали с селектором оружия, и поместим всё в одну функцию:
Я удалила другой код из onMainMenuItemSelect, так как теперь он бесполезен. Нам также нужно изменить одну строку кода в нашем селекторе оружия:
Также мы должны удалить вызов WeaponselectorMenu() в конструкторе и вместо этого поместить SetupPlayerWeapons в Setup:
Отлично! Теперь давай сделаем подменю транспорта и добавим селектор автомобилей (как мы сделали с селектором оружия), а также способ спавна авто по его имени. Начнем с меню:
![Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая](https://libertycity.ru/uploads/posts/2018-11/1542137910_7.png)
И отредактируем нашу Setup функцию:
Теперь создадим метод SetupVehicleFunction:
Замечательно! Теперь здесь мы поместим все наши функции автомобиля. Начнем с селектора авто:
Реализация похожа на селектор оружия, поэтому я не буду комментировать этот код повторно. Создадим выбранный автомобиль и поместим в него игрока:
Давай поместим эту функцию в SetupVehicleFunctions и проверим работоспособность в игре:
Отлично! Всё работает. Теперь дадим игроку возможность создать автомобиль по его названию модели. Это довольно просто. Начнем с создания новой функции и элемента меню:
Используем функцию Game.GetUserInput, которая создает поле ввода и возвращает введенную строку:
Теперь необходимо проверить, есть ли такая модель в игре. Игрок может ввести любой набор случайных символов, который может привести к крашу игры. Поэтому не забудь добавить проверку на валидность модели:
![Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая](https://libertycity.ru/uploads/posts/2018-11/1542138163_15.png)
Создаем автомобиль и сажаем в него игрока:
Пропишем нашу функцию в SetupVehicleFunctions и проверим код в игре:
Всё работает. Добавим последнюю функцию в меню оружия - получить всё существующее оружие в игре. Создадим новую функцию:
![Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая](https://libertycity.ru/uploads/posts/2018-11/1542138249_17.png)
И добавим функционал, который практически ничем не отличается от того, который мы использовали раннее:
Пропишем нашу функцию в SetupWeaponFunctions и проверим это в игре:
![Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая](https://libertycity.ru/uploads/posts/2018-11/1542138388_19.png)
Всё работает! О других возможностях в создании меню мы поговорим в третей части нашего урока.
Рекомендуемые файлы
![](https://files.libertycity.ru/download/gtasaios_globalmods/thumbs/2022-01/hot-coffee-mobile-improved-mobile-main_1715015725_683558.jpg)
Hot Coffee Mobile (Improved Mobile main.scm)
![](https://files.libertycity.ru/download/gtavc_othermods/thumbs/2021-12/vice-extended-3-0_1718205972_19064.jpg)
Vice Extended 3.0
![](https://files.libertycity.ru/download/gta3_othermods/thumbs/2021-05/gta-3-titles-upscaled_1686007296_841984.jpg)
GTA 3 titles upscaled
![](https://files.libertycity.ru/download/gtasa_creation/thumbs/2019-03/dyom-v1-5_1667588670_202852.jpg)
DYOM# v1.7
![](https://files.libertycity.ru/download/gtasaios_globalmods/thumbs/2022-05/ps2-to-mobile-fixes_1652176756_168419.jpg)
PS2 to Mobile + Fixes
![](https://files.libertycity.ru/download/gtasa_scripts/thumbs/2023-11/weapon-details_1701020722_871498.jpg)
Weapon Details v2.1
![](https://files.libertycity.ru/download/gtasa_scripts/thumbs/2023-11/busy-pedestrians_1699815295_237643.jpg)
Busy Pedestrians v2.1
![](https://files.libertycity.ru/download/gtasa_scripts/thumbs/2023-10/rear-lights-mod_1698251117_334870.jpg)