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

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

NativeUI - багатофункціональний плагін, що дозволяє працювати з графічним інтерфейсом GTA 5: створювати меню, тексти, виводити на екран текстури та багато іншого. Мене звуть Пейдж, і сьогодні ми створимо з тобою повноцінне робоче меню. Урок розділений на дві частини, рекомендую читати їх по порядку.

Для роботи знадобиться:

* ScriptHookVDotNet

* NativeUI

* Базові знання мови C# та роботи в Visual Studio.

Початок роботи

Відкрий Visual Studio та створи новий проект.

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

Додай у проект ScriptHookVDotNet.dll та NativeUI.dll

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

Також підключи до проекту стандартні бібліотеки System. Windows. Forms та System. Drawing:

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

Після цього додай простір імен у початок проекту:

Допишемо налаштування, щоб наш клас успадкував GTA.Script:

Тепер кілька слів про NativeUI. Всі створені меню містяться в MenuPool. Нам потрібно створити головне меню, в яке потім можна помістити всі інші підменю. Давай зробимо це!

Додамо конструктор, який буде запускати створені нами класи:

Розберемо цей код:

modMenuPool = new MenuPool();

Створює екземпляр класу menuPool, щоб додати його в пул всіх створених меню.

mainMenu = new UIMenu("Mod Menu", "ВИБЕРІТЬ ОПЦІЮ");

Створює основу меню з заголовком "Mod Menu" та підзаголовком "Виберіть опцію". Ти можеш вписати сюди що завгодно, в тому числі й українською мовою. Останній рядок коду додає наше створене меню (mainMenu) в modMenuPool.

Тепер додамо основні події (onkeydown, OnTick):

Також необхідно дописати функцію menuPool.ProcessMenus, інакше наше меню не буде відображатися на екрані:

Тепер зробимо відкриття та закриття меню по натисканню клавіші. Робиться це дуже просто:

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

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

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

Як бачиш, наше меню поки що порожнє, але воно працює! Давай додамо пункт у меню, який буде знімати розшук з гравця. Зробимо це за допомогою приватної функції:

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

Спочатку оголосимо глобальну змінну resetWantedLevel типу UIMenuItem, значення якої встановлюється в функції Setup. Це додасть у меню пункт, але при його виборі нічого не відбудеться. Для його активації нам потрібно використовувати подію, яка є вбудованим класом NativeUI:

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

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

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

Протестуємо скрипт в грі!

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

Якщо ти зробив усе правильно, скрипт має працювати. Якщо щось пішло не так, пиши в коментарях і я постараюся тобі допомогти!

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

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

Це створює підменю всередині нашого mainMenu з заголовком "Вибір зброї". Ми скористаємося функцією UIMenuListItem, за допомогою якої створимо динамічний список, перебравши в циклі всю існуючу в грі зброю.

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

Тут починається найскладніша частина. Нам потрібно отримати всі значення з масиву WeaponHash і викинути їх в WeaponHash:

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

Тепер у нас є всі хеші зброї. Давай налаштуємо нашу другу половину меню:

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

Щоб не створювати ще одну подію, можна помістити весь код в одну функцію, і робиться це наступним чином:

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

Тепер додамо в наше меню кнопку вибору зброї:

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

Тепер нам необхідно отримати хеш обраної зброї з раніше створеного списку. Для цього додамо наступний код:

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

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

Усе готово, вирушаємо в гру!

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

Завдання

Прочитай другу частину цього уроку. Там ти знайдеш завдання, за яке зможеш отримати невелику винагороду на сайті. Бажаю удачі!

Рекомендуемые файлы