Перейти к содержанию

  • записи
    3
  • комментария
    2
  • просмотра
    8 582

Записи в этом блоге

 

Шаг 3: настройка в плагине

Вот мы и подошли к финалу - настройка худа в плагине! Сразу оговорюсь, что данная статья рассчитана на тех, кто немного понимает в скриптинге. Для начала настроим видимость. Для этого сделаем наш худ изначально выключенным. <visible> &false; </visible> Теперь включим его в нужном в плагине. Например, хочу, чтобы худ работал в режиме игры, и отключался в любом меню (инвентарь, торговля и т.д.). Для этого воспользуемся командой SetUIFloat (требует NVSE) Begin GameMode if bVisible Let bVisible := 0 SetUIFloat "HUDMainMenu/CGyourPoints/visible" 1 ; включаем endif...Begin MenuMode if bVisible == 0 Let bVisible := 1 SetUIFloat "HUDMainMenu/CGyourPoints/visible" 0 ; отключаем endif... В данном примере включается и отключается худ целиком, но можно управлять отдельными частями, например: SetUIFloat "HUDMainMenu/CGyourPoints/CGTestLabel/visible" 1 ; включаем только блок CGTestLabel Ну что ж, с видимостью разобрались. Как же нам настраивать значения/текст? Здесь к команде SetUIFloat присоединяется команда SetUIString. Первая позволяет выставлять числа, вторая строку в целом. Например, у нас уже есть текст "Ваши очки:", и мы хотим правее выставить число: SetUIFloat "HUDMainMenu/_CGYourPoints" 6 ; на экране появится "6"SetUIFloat "HUDMainMenu/_CGYourPoints" Ypoints ; на экране появится значение переменной YPoints При этом в xml файле у нас должна быть строка <string><copy src="io()" trait="_CGYourPoints"/></string> Со строкой всё тоже самое: SetUIString "HUDMainMenu/_CGCurStValue" "Come Out Roll"; Come Out Roll - наша строка, в моём случае этап игры При помощи этих команд и команды IsKeyPressed также можно настроить позицию худа, но мне это не нужно.   Итак, подведём итоги. Чего мы не научились: Двигать наш худ (хотя все данные по этому поводу я дал)
Добавлять картинки (всё тоже самое, что и с текстом! Картинки должны быть в формате .dds)
Возможно ещё что-то, я уже не помню
Также хочу оставить вам мой худ и полезные ссылки: Pip-Pong - худ файл читается очень легко, можно почерпнуть информацию про картинки. FPS Counter - очень простой мод. Код легко читается, можно почерпнуть информацию о движении худа. Fallout2AM - человек, который мне очень помог. Можно задать вопрос, только не говорите, что пришли от меня, я итак уже отнял кучу времени у человека Мой худ:     [sharedmedia=videos:videos:90]   Всем удачи! Если будут вопросы/проблемы - задавайте, с радостью помогу.

Вис691

Вис691

 

Шаг 2: расположение

Всем привет! В прошлой части мы добавили надпись на наш экран. Всё бы хорошо, но мы использовали абсолютные значения для координат, а это не очень хорошо. Почему? да потому что каждый играет со своим разрешением. Что же делать? Покопавшись в оригинальных файлах, я нашёл решение. Меня вполне устраивает X координата, как абсолютное значение. Поэтому изменению подверглась только Y координата: <y> <copy src="screen()" trait="height"/> ; тут мы копируем высоту окна игры <sub src="me()" trait="height"/> ; здесь мы, как я понял, учитываем высоту нашего текста <div>2</div> ; делим всё на 2, смещая текст в центр (по Y)</y> Хотелось бы подробнее остановиться на блоке <div>. Div от слова division - деление. Т.е. делим какую-либо переменную на какое-либо число. Аналогично можно умножать, вычитать и прибавлять. <mul> от multiply - умножить <sub> от subtraction - вычесть <add> от addition - сложение Также полезно уметь копировать какие-либо параметры (в том числе и координаты) из предыдущих блоков. Для чего? Например, мне нужен текст "Ваши очки: " и через пробел значение какой-либо переменной мода, в нашем примере очки.     Итак: <x> <copy src="sibling(CGTestLabel)" trait="x"/> ; CGTestLabel - название блока, из которого копируем, x - название параметра <add>150</add> ; А что мы делаем тут? </x> Ну и напоследок. Если вы хотите, чтобы ваш худ можно было перемещать по экрану, то вам придётся копировать координаты из вашего плагина. Что для этого надо? А вот что: <copy src="io()" trait="Xcord"/> ; xcord - любое удобное вам название, которое будем менять в плагине Работать с плагином мы будем в следующем уроке (если это можно так назвать).   А напоследок хочу оставить мой xml: <_CasinoGames_Version>1.0</_CasinoGames_Version><rect name="CGyourPoints"> <id> &noglow_branch; </id> <systemcolor>&hudmain;</systemcolor> <visible> &true; </visible> <locus>&true;</locus> <text name="CGTestLabel"> <font> 7 </font> <x> 10</x> <y> <copy src="screen()" trait="height"/> <sub src="me()" trait="height"/> <div>2</div> </y> <string>Ваши очки: </string> </text> <text name="CGTestValue"> <font> 7 </font> <x> <copy src="sibling(CGTestLabel)" trait="x"/> <add>150</add> </x> <y> <copy src="screen()" trait="height"/> <sub src="me()" trait="height"/> <div>2</div> </y> <string> <copy src="io()" trait="_CGYourPoints"/> </string> </text></rect>

Вис691

Вис691

 

Шаг 1: начало.

Всем привет! Не знаю почему, но пришла мне идея разобраться с интерфейсными модами на различные HUD'ы, чтобы создать что-то своё. Начал гуглить туториалы, и осознал, что их просто нет... Ну что ж, подумал я, придётся разбираться самому, как когда-то в скриптинге. Правда в скриптинге всегда были люди, готовые помочь, тут я остался один. Поэтому я создаю данный блог, чтобы каждый смог разобраться в этом деле и создать какой-нибудь годный мод Итак, с чего же я начал? Вначале нужно скачать UIO, это нам позволит добавить свой худ на экран. Но ведь у нас пока ничего нет, что же делать? Я начал копаться в различных худовских модах. Для начала идём в корневую папку игры. Далее \Data\menus\prefabs (если нет таких папок, то создайте). Тут тоже желательно создать свою папку, у меня будет CasinoGames (не знаю пока, успею ли я доделать этот мод, поэтому и говорить про него не буду). Теперь в нашей папке создаём текстовый документ, это и будет наш главный файл. Не забудьте изменить его расширение на .xml Пора бы начать! Копаясь в разных модах, я смог понять, как добавить банальную надпись на экран. Скажете, ну и что? А для меня это первый шаг. Итак, что я написал в мой файл, а точнее скопировал, поэтому могут быть лишние строки <_CasinoGames_Version>1.0</_CasinoGames_Version> ; не знаю зачем, но во многих модах есть строка с версией.<_CGYourPoints> 0 </_CGYourPoints> ; пока не обращаем внимание<rect name="CGyourPoints"> ; не знаю почему этот блок называется rect, но он есть во всех модах. Как я понял базовый блок, хотя кто ж его знает. Имя в кавычках задаёте сами <id> &noglow_branch; </id> ; встречается не везде, судя по всему связано с свечением, точнее его отсутствием <systemcolor>&hudmain;</systemcolor> ; тоже далеко не везде есть. Думаю отвечает за цвет <visible> &true; </visible> ; с этим блоком уже успел поиграть, отвечает за видимость. True - видимый, False - невидимый <text name="CGTest"> ; блок с текстом <font> 2 </font> ; размер шрифта <x> 50 </x> ; координата от левого края <y> 500 </y> ; координата от верхнего края <string> TESTEST </string> ; собственно, наш текст <depth> 7 </depth> ; не знаю что это за глубина </text> ; закрываем блок</rect>; закрываем блок Теперь, чтобы наш худ подцепился игрой идём по этому пути \Data\uio\public Создаём текстовый файл (название должно совпадать с названием .esp файла, который мы создадим позже). Внутри прописываем CasinoGames\CasinoGames_hud.xml::HUDMainMenu ; название_вашей_папки\название_вашего_xml_файлаtrue Сохраняем. Всё, идём в игру и тестируем   Пока что смотрится не очень, но ведь это только начало!

Вис691

Вис691


×
×
  • Создать...