Перейти к содержанию
Авторизация  
Hardtmuth

[SoC] Вывод другого варианта часов на HUD

Рекомендуемые сообщения

 

[SoC] Вывод другого варианта часов на HUD

Автор основного урока: steelrat.
Автор правок: LaRento.
Благодарность за урок по классу CTime: malandrinus.

Здравствуйте. Данный короткий урок посвящён выводу часов, имеющие дату и пару изменений со временем. Прошу не обвинять данный урок как плагиаторство основного урока по добавлению часов на HUD.

Понадобятся следующие файлы:

  • новый_скрипт.script
  • bind_stalker.script
  • ui_custom_msgs.xml

1. Создание функции отображения уже всем знакомых часов:

Открываем ваш новый_скрипт.script, который вы назовёте как захотите и пишем туда следующее. Функция содержит пояснения.

Спойлер

function add_clock()
local hud = get_hud() -- назначаем локальную переменную худа
local show_time = hud:GetCustomStatic("hud_show_time") -- назначаем локальную переменную для отображения времени
local show_date = hud:GetCustomStatic("hud_show_date") -- назначаем локальную переменную для отображения даты

if show_time == nil then
hud:AddCustomStatic("hud_clock_static", true) -- добавляем расположение часов на худ
hud:AddCustomStatic("hud_show_time", true) -- добавляем показ время на худ
hud:AddCustomStatic("hud_show_date", true)-- добавляем показ даты на худ
show_time = hud:GetCustomStatic("hud_show_time") -- получаем показ времени на худ
show_date = hud:GetCustomStatic("hud_show_date") -- получаем показ датына худ
end

local global_time = game.CTime.TimeToMinutes -- назначаем локальную переменную для класса CTime по добавлению времени в виде час/минута
local global_date = game.CTime.DateToDay -- назначаем локальную переменную для класса CTime по добавлению даты в виде день/месяц/год
local msg_time = game.get_game_time():timeToString(global_time)-- локальная переменная для показа времени через функцию timeToString в нашем виде
local msg_date = game.get_game_time():dateToString(global_date)-- локальная переменная для показа даты через функцию dateToString в нашем виде

if show_time ~= nil then show_time:wnd():SetText(msg_time) -- выводим время через локальную переменную msg_time
end

if show_date ~= nil then show_date:wnd():SetText(msg_date) -- выводим дату через локальную переменную msg_date
end
end

Если вы хотите, чтобы ваши часы отображали секунды, то тогда меняйте строчку:


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>

Вот собственно и всё. Можете спокойно идти и проверять smile


У вас должно получиться вот так:

Спойлер

3f41fe441c03a0b0cf079b862e74a1695893cd15

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу