Guest Diegtiariow Posted June 10, 2023 Report Share Posted June 10, 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/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.