Gość Diegtiariow Opublikowano 10 Czerwca 2023 Zgłoś Udostępnij Opublikowano 10 Czerwca 2023 NAZWA: Wyświetlenie współrzędnych GG [SoC] AUTOR: marlock08 (ARTYKUŁ), Alex Kireev NIEZBĘDNE PLIKI: Spoiler scripts/bind_stalker.script config/ui/ui_custom_msgs.xml OPERACJE NA PLIKACH: Spoiler 1. Otwieramy plik bind_stalker.script, szukamy linijki object_binder.update(self, delta) i dopisujemy: function actor_binder:update(delta) object_binder.update(self, delta) posihion.posihion_mod() Linię posihion.posihion_mod() można napisać na końcu tej funkcji, po self.bCheckStart = false end, pomiędzy dwoma end Jak to wygląda: Spoiler level_tasks.add_lchanger_location() self.bCheckStart = false end posihion.posihion_mod() end 2. Otwieramy plik ui_custom_msgs.xml i na początku po <header> dodajemy: <header> <cs_debug x="450" y="80" width="600" height="100" complex_mode="1"> <text font="graffiti22" r="240" g="217" b="182" a="255" align="l"/> </cs_debug> Tutaj możesz zmienić pozycję wyświetlanego tekstu. Początkowo tekst jest wyświetlany na środku ekranu, ale aby zmienić miejsce tekstu, wystarczy zmienić wartości x i y. Początek znajduje się w lewym górnym rogu ekranu. Oś "X" jest pozioma i skierowana od lewej do prawej. Oś "Y" jest pionowa i skierowana z góry na dół. 3. Pozostało napisać sam skrypt W folderze gamedata/scripts utwórz plik posihion.script i dodaj do niego następujące linie: Spoiler ------------------------------------- Wyświetlenie informacji level_vertex_id, game_vertex_id, pos function posihion_mod() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end local lvid, gvid = db.actor:level_vertex_id(), db.actor:game_vertex_id() -- Przypisujemy wartość level i game vertex local pos, dir = db.actor: position(), db.actor:direction() -- Przypisujemy pozycję gracza i kierunek patrzenia local pos2 = level.vertex_position(lvid) local valid = pos2:distance_to(pos) <= 0.7 local msg = string.format("lvid: %d\\n", lvid) .. -- Level vertex string.format("gvid: %d\\n", gvid) .. -- Game vertex string.format("pos: %.2f,%.2f,%.2f\\n", pos.x, pos.y, pos.z) .. -- Współrzędne GG, zaokrąglone do 2 miejsc po przecinku -- string.format("dir: %f,%f,%f\\n", dir.x, dir.y, dir.z) .. -- Kierunek patrzenia, ZAKOMENTOWANE string.format("valid: %s", tostring(valid)) -- Pozycja GG, na ziemi, w powietrzu lub na obiekcie if cs ~= nil then cs:wnd():SetText(msg) -- Wyświetlenie end end PRZYCISK DLA WYGODY: Spoiler function on_key_press(dik) if (dik == DIK_keys.DIK_RCONTROL) then posihion_mod() end end function on_game_start() RegisterScriptCallback("on_key_press",on_key_press) end INNE WAŻNE INFORMACJE: Spoiler Ważne, po przekazaniu argumentów do stringa, jeśli nie jest to ostatnia linia, należy postawić dwie kropki: string.format("dir: %f,%f,%f\\n", dir.x, dir.y, dir.z) .. -- To nie jest ostatnia linijka, KROPKI TRZEBA DODAĆ string.format("valid: %s", tostring(valid)) -- To jest ostatnia linijka, KROPEK NIE TRZEBA DODAWAĆ if cs ~= nil then Lista dodatkowych opcji, które można wyświetlić: string.format("bleeding: %f\\n",db.actor.bleeding).. -- Utrata krwi string.format("satiety: %f\\n",db.actor.satiety).. -- Sytość string.format("section: %s\\n",db.actor:section()).. -- Sekcja, dział??? string.format("name: %s\\n",db.actor:name()).. -- Nazwa??? string.format("health: %.2f\\n", db.actor.health).. -- Zdrowie string.format("morale: %.2f\\n", db.actor.morale).. -- Morale, reputacja??? string.format("power: %.2f\\n", db.actor.power).. -- Wytrzymałość string.format("psy_health: %.2f\\n", db.actor.psy_health).. -- Psi-oddziaływanie??? string.format("radiation: %.2f\\n", db.actor.radiation).. -- Radiacja Nie wszystko może działać. SKRYPT WYŚWIETLANIA NA EKRANIE WSPÓŁRZĘDNYCH GG, PASKA ZDROWIA I PANCERZA: Spoiler Skrypt wyświetlania na ekranie współrzędnych GG, paska zdrowia i pancerza: function posihion_mod() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end local outfit = db.actor:get_current_outfit() -- Funkcja otrzymania pancerza local armor = 0 if outfit then -- Jeśli pancerz jest armor = outfit:condition() -- To otrzymujemy jej stan else armor = 0 -- W przeciwnym wypadku pancerza nie ma end local pos = db.actor:position() -- Pozycja aktora local msg = string.format("Pos: %.2f,%.2f,%.2f\\n", pos.x, pos.y, pos.z) .. -- Współrzędne GG string.format("Health: %.2f\\n", db.actor.health).. -- Życie string.format("Armor %.2f\\n", armor) -- Pancerz if cs ~= nil then cs:wnd():SetText(msg) end end ŹRÓDŁO: https://ap-pro.ru/forums/topic/2589-socotobrazhenie-koordinat-gg/ 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.