Skocz do zawartości

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


Gość Diegtiariow

Rekomendowane odpowiedzi

Gość 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/

Odnośnik do komentarza
Udostępnij na innych stronach

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.