Diegtiariow Opublikowano 7 Października 2023 Zgłoś Udostępnij Opublikowano 7 Października 2023 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/ 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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.