Skocz do zawartości

Wyświetlenie zegara na HUD-ie za pomocą innej opcji [SoC]


Gość Diegtiariow

Rekomendowane odpowiedzi

NAZWA: Wyświetlenie zegara na HUD-ie za pomocą innej opcji [SoC]
AUTOR GŁÓWNEJ LEKCJI: steelrat
AUTOR POPRAWEK: LaRento
PODZIĘKOWANIE ZA LEKCJĘ O KLASIE CTIME: malandrius

 

POTRZEBNE PLIKI:

Spoiler
  • nowy_skrypt.script
  • bind_stalker.script
  • ui_custom_msgs.xml

 

OPIS DZIAŁAŃ:

Spoiler

1. Stworzenie funkcji wyświetlania znanego już zegara:

Otwieramy nowy_skrypt.script, który nazwiecie jak zechcecie i piszemy tutaj następujący kod. Funkcja zawiera objaśnienia.

function add_clock()
local hud = get_hud() -- ustawiamy lokalną zmienną HUD'a
local show_time = hud:GetCustomStatic("hud_show_time") -- ustawiamy lokalną zmienną dla wyświetlenia czasu
local show_date = hud:GetCustomStatic("hud_show_date") -- ustawiamy lokalną zmienną dla wyświetlenia daty

if show_time == nil then
hud:AddCustomStatic("hud_clock_static", true) -- dodajemy pozycję zegara na HUD'zie
hud:AddCustomStatic("hud_show_time", true) -- dodajemy wyświetlanie czasu na HUD'zie
hud:AddCustomStatic("hud_show_date", true) -- dodajemy wyświetlanie daty na HUD'zie
show_time = hud:GetCustomStatic("hud_show_time") -- otrzymujemy wyświetlenie czasu na HUD'zie
show_date = hud:GetCustomStatic("hud_show_date") -- otrzymujemy wyświetlenie daty na HUD'zie
end

local global_time = game.CTime.TimeToMinutes -- ustawiamy lokalną zmienną do klasy CTime, aby dodać czas w postaci godzina/minuta
local global_date = game.CTime.DateToDay -- przypisujemy lokalną zmienną do klasy CTime, aby dodać datę w postaci dzień/miesiąc/rok
local msg_time = game.get_game_time():timeToString(global_time) -- lokalna zmienna dla wyświetlenia czasu przez funkcję timeToString w naszej formie
local msg_date = game.get_game_time():dateToString(global_date) -- lokalna zmienna dla wyświetlenia daty przez funkcję dateToString w naszej formie

if show_time ~= nil then show_time:wnd():SetText(msg_time) -- wyświetlamy czas poprzez lokalną zmienną msg_time
end

if show_date ~= nil then show_date:wnd():SetText(msg_date) -- wyświetlamy czas poprzez lokalną zmienną msg_date
end
end

Jeśli chcesz, aby twój zegar wyświetlał sekundy, zmień linię:

local global_time = game.CTime.TimeToMinutes

na

local global_time = game.CTime.TimeToSeconds

Zakończyliśmy pracę ze skryptem.

 

2. Rejestracja lub stałe wywołanie funkcji:

Otwieramy bind_stalker.script i przechodzimy do funkcji actor_binder:update(delta), i powiedzmy po linii:

game_stats.update (delta, self.object)

piszemy:

nowy_skrypt.add_clock()

 

3. Dodanie samego zegarka do HUD'a:

Otwieramy plik ui_custom_msgs.xml i piszemy następujący kod na końcu pomiędzy tagami <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>

Możesz też umieścić standardową czcionkę czasu, na przykład jak w timerze.

Aby to zrobić, użyj tego z zamianą:

<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>

I to wszystko.

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/1194-soc-vyvod-drugogo-varianta-chasov-na-hud/

Odnośnik do komentarza
Udostępnij na innych stronach

  • 11 miesięcy temu...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.