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

13 листопада 2018
Пейдж






У минулій частині уроку ми додали в меню можливість скидання рівня розшуку та отримання будь-якої зброї. Також ми з'ясували, яким чином створюються підменю. Давай трохи реорганізуємо наш код, створивши підменю гравця та підменю зброї, помістивши відповідні пункти в ці підменю:



Тепер трохи відредагуємо функцію Setup:



Щоб зробити код більш читабельним, я зроблю кілька функцій для кожного типу: гравець і зброя.



Давай очистимо деякий код з видачею зірок розшуку, як ми зробили з селектором зброї, і помістимо все в одну функцію:



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



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



Чудово! Тепер давай зробимо підменю транспорту та додамо селектор автомобілів (як ми зробили з селектором зброї), а також спосіб спавну авто за його назвою. Почнемо з меню:



І відредагуємо нашу функцію Setup:



Тепер створимо метод SetupVehicleFunction:



Чудово! Тепер тут ми помістимо всі наші функції автомобіля. Почнемо з селектора авто:



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



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





Чудово! Все працює. Тепер дамо гравцеві можливість створити автомобіль за його назвою моделі. Це досить просто. Почнемо зі створення нової функції та елемента меню:



Використаємо функцію Game.GetUserInput, яка створює поле введення і повертає введену строку:



Тепер необхідно перевірити, чи є така модель у грі. Гравець може ввести будь-який набір випадкових символів, що може призвести до краху гри. Тому не забудь додати перевірку на валідність моделі:



Створюємо автомобіль і садимо в нього гравця:



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





Все працює. Додамо останню функцію в меню зброї - отримати все існуюче зброю в грі. Створимо нову функцію:



І додамо функціонал, який практично нічим не відрізняється від того, який ми використовували раніше:



Запишемо нашу функцію в SetupWeaponFunctions і перевіримо це в грі:






Все працює! Про інші можливості в створенні меню ми поговоримо в третій частині нашого уроку.