Здравствуйте. Данный короткий урок посвящён выводу часов, имеющие дату и пару изменений со временем. Прошу не обвинять данный урок как плагиаторство основного урока по добавлению часов на HUD.
Автор основного урока: steelrat.
Автор правок: LaRento.
Благодарность за урок по классу CTime: malandrinus.
Понадобятся следующие файлы:
- новый_скрипт.script
- bind_stalker.script
- ui_custom_msgs.xml
Ну что ж, начнём.
1. Создание функции отображения уже всем знакомых часов.
Открываем ваш новый_скрипт.script, который вы назовёте как захотите и пишем туда следующее. Функция содержит пояснения.
Если вы хотите, чтобы ваши часы отображали секунды, то тогда меняйте строчку:
Код
local global_time = game.CTime.TimeToMinutes
на
Код
local global_time = game.CTime.TimeToSeconds
Всё, со скриптом мы закончили.
2. Регистрация или постоянный вызов функции.
Открываем bind_stalker.script и в функцию actor_binder:update(delta), допустим после строки
Код
game_stats.update (delta, self.object)
пишем Код
новый_скрипт.add_clock()
Тем самым функция будет постоянно находится в обновлении, и наши часики будут вечно показывать нам время.
3. Добавление самих часиков на худ.
Открываем файл ui_custom_msgs.xml и пишем следующее в конце внутри тегов <header>:
Код
<hud_clock_static x="852" y="17" width="156" height="52">
<text complex_mode="0" x="65" y="0" font="letterica16" r="255" g="255" b="255" a="130" align="c"/>
<texture>ui_hud_frame_clock</texture>
</hud_clock_static>
<hud_show_time x="870" y="45" width="156" height="52">
<text x="0" y="0" font="graffiti19" r="255" g="255" b="255" a="140" align="c"/>
</hud_show_time>
<hud_show_date x="875" y="17" width="156" height="52">
<text x="0" y="0" font="letterica16" r="255" g="255" b="255" a="130" align="c"/>
</hud_show_date>
Либо можете поставить стандартный шрифт времени, как на таймере. Для этого используете это с заменой:
Код
<hud_show_time x="875" y="40" width="156" height="52">
<text x="0" y="0" font="graffiti32" r="238" g="155" b="23" align="c"/>
</hud_show_time>
Вот собственно и всё. Можете спокойно идти и проверять
У вас должно получиться вот так: