Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая

13 ноября 2018
Пейдж



В прошлой части урока мы добавили в меню возможность сброса уровня розыска и получения любого оружия. Также мы выяснили, каким образом создаются подменю. Давай немного реорганизуем наш код, создав подменю игрока и подменю оружия, поместив соответствующие пункты в эти подменю:

Теперь немного отредактируем функцию Setup:

Чтобы сделать код более читабельным, я сделаю несколько функций для каждого типа: игрок и оружие.

Давай очистим некоторый код с выдачей звезд розыска, как мы сделали с селектором оружия, и поместим всё в одну функцию:

Я удалила другой код из onMainMenuItemSelect, так как теперь он бесполезен. Нам также нужно изменить одну строку кода в нашем селекторе оружия:

Также мы должны удалить вызов WeaponselectorMenu() в конструкторе и вместо этого поместить SetupPlayerWeapons в Setup:

Отлично! Теперь давай сделаем подменю транспорта и добавим селектор автомобилей (как мы сделали с селектором оружия), а также способ спавна авто по его имени. Начнем с меню:

И отредактируем нашу Setup функцию:

Теперь создадим метод SetupVehicleFunction:

Замечательно! Теперь здесь мы поместим все наши функции автомобиля. Начнем с селектора авто:

Реализация похожа на селектор оружия, поэтому я не буду комментировать этот код повторно. Создадим выбранный автомобиль и поместим в него игрока:

Давай поместим эту функцию в SetupVehicleFunctions и проверим работоспособность в игре:


Отлично! Всё работает. Теперь дадим игроку возможность создать автомобиль по его названию модели. Это довольно просто. Начнем с создания новой функции и элемента меню:

Используем функцию Game.GetUserInput, которая создает поле ввода и возвращает введенную строку:

Теперь необходимо проверить, есть ли такая модель в игре. Игрок может ввести любой набор случайных символов, который может привести к крашу игры. Поэтому не забудь добавить проверку на валидность модели:

Создаем автомобиль и сажаем в него игрока:

Пропишем нашу функцию в SetupVehicleFunctions и проверим код в игре:


Всё работает. Добавим последнюю функцию в меню оружия - получить всё существующее оружие в игре. Создадим новую функцию:

И добавим функционал, который практически ничем не отличается от того, который мы использовали раннее:

Пропишем нашу функцию в SetupWeaponFunctions и проверим это в игре:




Всё работает! О других возможностях в создании меню мы поговорим в третей части нашего урока.
Рейтинг: 5 (1 голосов)
(признано в России экстремистской организацией)