Jump to content

Wyświetlenie współrzędnych GG [SoC]


Guest Diegtiariow

Recommended Posts

Guest Diegtiariow

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/

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.