Русский

Создание скриптов в 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 5 на C#: интерактивное меню с помощью NativeUI: часть первая



Допишем настройки, чтобы наш класс унаследовал GTA.Script:

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



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

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



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

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



Разберем данный код:

modMenuPool = new MenuPool();

Создает экземпляр класса menuPool, чтобы добавить его в пул всех созданных меню.

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

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

Теперь добавим основные события (onkeydown, OnTick):

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



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

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



Теперь сделаем открытие и закрытие меню по нажатию клавиши. Делается это очень просто:

Создание скриптов в 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: часть первая

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



Задание

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

Cadillac Escalade 2007

9 июня 2008 GTA San Andreas
Cadillac Escalade 2007 для GTA San Andreas.Особенности:- Модель нормального качества.- Настроенная коллизия.- Своя тень.- 2 Покраски.

Патч 1.0.3.0 (EN)

21 марта 2009 GTA 4
Патч 1.0.3.0 для английской версии GTA 4 исправляет множество различных проблем, включая проблемы с графикой, мультиплеером и системой управления. Кроме того, увеличена производительность игры.Полный список изменений:GRAPHICS:Interior Lights for ATI ...

Shadow Mapper

15 апреля 2010 GTA 4
Редактор карт для GTA IV.В архиве имеются версии для x64 и x86 разрядных систем. Кроме всего, в архиве есть пакет .bat файлов.Требования- Установленная Java.- Установленный Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File...

GTA San Andreas - Camera Hack v1.2 для windows 7

13 мая 2010 GTA San Andreas
GTA San Andreas - Camera Hack v1.2 для windows 7Наверное многие столкнулись с проблемой что, очень хорошая программа GTA San Andreas - Camera Hack, не работает под windows 7.Проблема в том что из 7-ки зачем то, по удаляли необходимые библиотеки.Но эт...

Phone Service

5 октября 2010 GTA San Andreas
С этим модом ваш телефон больше не будет пылиться у вас в кармане, а станет для вас самым незаменимым предметом в игровом процессе!!! Этот мод даёт возможность использовать различные телефонные сервисы! Сам скрипт состоит из двух частей - это телефон...

San Andreas HRT Pack (v1.3 SF)

29 ноября 2010 GTA San Andreas
San Andreas HRT Pack — глобальная модификация для GTA: San Andreas, которая существенно улучшает качество графики, заменяя большую часть старых текстур высококачественными аналогами в высоком разрешении. Тысячи текстур местности были переработаны и о...

Autumn Mod 2.0 HRT

2 декабря 2010 GTA San Andreas
Autumn Mod — осенняя модификация для GTA: San Andreas, которую можно устанавливать как поверх оригинальной игры, так и поверх глобального мода HRT Pack (в таком случае будет больше нововведений). Autumn Mod меняет спрайты травы, текстуры травы на нек...

Вторжение пришельцев

5 декабря 2010 GTA San Andreas
К Сан-Андреасу движутся огромные инопланетные корабли! ФОТО.Три гигантских неопознанных летающих объекта, длина которых составляет десятки километров, движутся по направлению к штату Сан-Андреас, сообщил журналистам некто Истина (The Truth), кашляя, ...

Информация
Чтобы оставлять комментарии, необходимо зарегистрироваться на сайте.