Створення скриптів в GTA 5 на C#: інтерактивне меню за допомогою NativeUI: частина перша
NativeUI - багатофункціональний плагін, що дозволяє працювати з графічним інтерфейсом GTA 5: створювати меню, тексти, виводити на екран текстури та багато іншого. Мене звуть Пейдж, і сьогодні ми створимо з тобою повноцінне робоче меню. Урок розділений на дві частини, рекомендую читати їх по порядку.
Для роботи знадобиться:
* ScriptHookVDotNet
* NativeUI
* Базові знання мови C# та роботи в Visual Studio.
Початок роботи
Відкрий Visual Studio та створи новий проект.
Додай у проект ScriptHookVDotNet.dll та NativeUI.dll
Також підключи до проекту стандартні бібліотеки System. Windows. Forms та System. Drawing:
Після цього додай простір імен у початок проекту:
Допишемо налаштування, щоб наш клас успадкував GTA.Script:
Тепер кілька слів про NativeUI. Всі створені меню містяться в MenuPool. Нам потрібно створити головне меню, в яке потім можна помістити всі інші підменю. Давай зробимо це!
Додамо конструктор, який буде запускати створені нами класи:
Розберемо цей код:
modMenuPool = new MenuPool();
Створює екземпляр класу menuPool, щоб додати його в пул всіх створених меню.
mainMenu = new UIMenu("Mod Menu", "ВИБЕРІТЬ ОПЦІЮ");
Створює основу меню з заголовком "Mod Menu" та підзаголовком "Виберіть опцію". Ти можеш вписати сюди що завгодно, в тому числі й українською мовою. Останній рядок коду додає наше створене меню (mainMenu) в modMenuPool.
Тепер додамо основні події (onkeydown, OnTick):
Також необхідно дописати функцію menuPool.ProcessMenus, інакше наше меню не буде відображатися на екрані:
Тепер зробимо відкриття та закриття меню по натисканню клавіші. Робиться це дуже просто:
Давай перевіримо працездатність нашого коду в грі:
Як бачиш, наше меню поки що порожнє, але воно працює! Давай додамо пункт у меню, який буде знімати розшук з гравця. Зробимо це за допомогою приватної функції:
Спочатку оголосимо глобальну змінну resetWantedLevel типу UIMenuItem, значення якої встановлюється в функції Setup. Це додасть у меню пункт, але при його виборі нічого не відбудеться. Для його активації нам потрібно використовувати подію, яка є вбудованим класом NativeUI:
Ця подія викликається щоразу, коли ми вибираємо пункт меню, і повертає ID цього пункту. Таким чином, ми можемо легко розширити наше меню, додавши більше різних пунктів, і легко відстежуючи, який був обраний. Однак давай реалізуємо наш базовий функціонал скидання рівня:
Протестуємо скрипт в грі!
Якщо ти зробив усе правильно, скрипт має працювати. Якщо щось пішло не так, пиши в коментарях і я постараюся тобі допомогти!
Тепер трохи ускладнимо наше меню і додамо можливість вибрати будь-яку зброю, яка є в грі. Для цього створимо підменю.
Це створює підменю всередині нашого mainMenu з заголовком "Вибір зброї". Ми скористаємося функцією UIMenuListItem, за допомогою якої створимо динамічний список, перебравши в циклі всю існуючу в грі зброю.
Тут починається найскладніша частина. Нам потрібно отримати всі значення з масиву WeaponHash і викинути їх в WeaponHash:
Тепер у нас є всі хеші зброї. Давай налаштуємо нашу другу половину меню:
Щоб не створювати ще одну подію, можна помістити весь код в одну функцію, і робиться це наступним чином:
Тепер додамо в наше меню кнопку вибору зброї:
Тепер нам необхідно отримати хеш обраної зброї з раніше створеного списку. Для цього додамо наступний код:
Повернемося на початок коду і пропишемо в паблік наші створені функції:
Усе готово, вирушаємо в гру!
Завдання
Прочитай другу частину цього уроку. Там ти знайдеш завдання, за яке зможеш отримати невелику винагороду на сайті. Бажаю удачі!
Рекомендуемые файлы
Створювач і розробник - Evgenii Sokolov
При використанні матеріалів посилання на LibertyCity.Ru обов'язкове.