Forum Miłośników Symulatorów Lotniczych
Hangar => Digital Combat Simulator World (DCS World) => A-10C Warthog => Wątek zaczęty przez: lukasz7 w Października 29, 2014, 15:05:51
-
Witam, chcę sobie wyświetlić CDU na drugim monitorze. Opieram się na tych dwóch tematach: 1 (http://forums.eagle.ru/showthread.php?t=60815) i 2 (http://forums.eagle.ru/showthread.php?t=70716). Lecz nie chce mi się pokazać CDU. Wklejam poniższy kod do CDU_init.lua, dodaję skrypt w MonitorSetup i nic nie wyświetla. Dodam że MFCD działają. Trzeba coś w tym kodzie jeszcze zmienić?
Z góry dziękuję i pozdrawiam.
-- Code below is used for the rendering when no viewport has been created
purposes = {render_purpose.GENERAL, -- Rendering in 3D View
render_purpose.HUD_ONLY_VIEW, -- Rendering In HUD only View
render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, -- Rendering in External View
render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- Rendering in In cockpit view but NOT in 3D cockpit
-- End of rendering configuration
screenspace_scale_initial = 3;
screenspace_diplacement = {0,0}
local x_size = 1
local y_size = 1
function update_screenspace_diplacement(zoom_value)
screenspace_scale = screenspace_scale_initial + zoom_value;
if screenspace_scale < 1 then
screenspace_scale = 1
end
local screen_height = 2.0;
local screen_width = screen_height * LockOn_Options.screen.aspect;
local scaled_width = SelfWidth * screenspace_scale
local scaled_height = y_size * scaled_width -- for indicator all sizes is function of width
scaled_width = x_size * scaled_width
screenspace_diplacement = { 0.5 * screen_width - 0.5 * scaled_width,
-0.5 * screen_height + 0.5 * scaled_height}
screenspace_diplacement_arcade = {screenspace_diplacement[1],
0.5 * screen_height - 0.5 * scaled_height}
end
update_screenspace_diplacement(0)
function set_full_viewport_coverage(viewport)
local w = LockOn_Options.screen.width
local h = LockOn_Options.screen.height
local a = LockOn_Options.screen.aspect
local x = (-1.0 + 2.0 * (viewport.x / w)) * a
local y = 1.0 - 2.0 * (viewport.y / h)
local width = (viewport.width / w) * a
local height = viewport.height / h
local scl_hgt_K = y_size * SelfWidth -- size always function of SelfWidth
local scl_wdt_K = x_size * SelfWidth -- size always function of SelfWidth
screenspace_scale_x = 2.0 * width / scl_wdt_K
screenspace_scale_y = 2.0 * height / scl_hgt_K
screenspace_diplacement = {x + width,
y - height}
screenspace_diplacement_arcade = screenspace_diplacement
-- The code below is used for rendering When you use viewports comments are same as above for rendering
purposes = {render_purpose.HUD_ONLY_VIEW,
--render_purpose.GENERAL, --Uncoment this line by removing the "--" to render in 3D cockpit.
render_purpose.SCREENSPACE_OUTSIDE_COCKPIT,
render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always
-- End of rendering configuration
render_target_always = true
end
-- try to find assigned viewport
local multimonitor_setup_name = "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua"
local env = {}
env.screen = LockOn_Options.screen
local f = loadfile(multimonitor_setup_name)
if f then
setfenv(f,env)
pcall(f)
local vp = nil
vp = env.RWR_SCREEN
if vp ~= nil then
dbg_print("ok we have directly assigned viewport to CDU\n")
set_full_viewport_coverage(vp)
end
end
-
Musisz ustawiśc sobie rozdzielczość która będzie obejmować obydwa monitory.
Nie wiem czy to zrobiłeś ale CDU MFD itp mogą być eksportowane jedynie w obrębie czegoś co chyba nazywa się rendering area.
-
No tak, mam nowy profil w folderze MonitorSetup w którym ustawiam w jakim miejscu ma się wyświetlać CDU. A rozdzielczość też ustawiam taką jaką mam po podłączeniu dwóch monitorów (u mnie tablet z rozdzielczością 1280x800, a główny monitor ma 1920x1080) tj. 3200x1080.
Pozdrawiam
-
Już sobie poradziłem. Pomógł mi ten (http://forums.eagle.ru/showpost.php?p=1541311&postcount=68) post.
Pozdrawiam
-
Jakbyś mógł napisz w skrócie jak sobie poradziłeś. Linki lubią padać, a słowo pisane pozostaje ;).
-
No to wygląda to tak.
W pliku CDU_init.lua pod linijką:
indicator_type = indicator_types.COMMON
wkleiłem poniższy kod. Następnie ten (https://dl.dropboxusercontent.com/u/41815970/ViewportHandling.lua) plik wrzuciłem do DCS World\Scripts\Aircrafts\_Common\Cockpit i podmieniłem. Po tym zabiegu wszystko zaczęło śmigać w 100%. I póki wszystko działa to nic z tym nie robię :D Nie sprawdzałem jeszcze czy w innych modułach wszystko działa ale najważniejsze, że w A-10 jest ok.
Pozdrawiam
purposes = {render_purpose.GENERAL}
local x_size = 1
local y_size = 1
function update_screenspace_diplacement(zoom_value)
local default_width = 0.5 * LockOn_Options.screen.height + (64 * zoom_value)
if default_width > LockOn_Options.screen.height then
default_width = LockOn_Options.screen.height
end
if default_width > 0.5 * LockOn_Options.screen.width then
default_width = 0.5 * LockOn_Options.screen.width
end
local default_height = (y_size/x_size) * default_width
local default_y = LockOn_Options.screen.height - default_height
local default_x = LockOn_Options.screen.width - default_width
dedicated_viewport = {default_x,default_y,default_width,default_height}
dedicated_viewport_arcade = {default_x, 0 ,default_width,default_height}
end
update_screenspace_diplacement(0)
function set_full_viewport_coverage(viewport)
dedicated_viewport = {viewport.x,
viewport.y,
viewport.width,
viewport.height}
dedicated_viewport_arcade = dedicated_viewport
purposes = {render_purpose.GENERAL,
render_purpose.HUD_ONLY_VIEW,
render_purpose.SCREENSPACE_OUTSIDE_COCKPIT,
render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always
render_target_always = true
end
-- try to find assigned viewport
local multimonitor_setup_name = "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua"
local env = {}
env.screen = LockOn_Options.screen
local f = loadfile(multimonitor_setup_name)
if f then
setfenv(f,env)
pcall(f)
local vp = nil
vp = env.ED_A10C_CDU
if vp ~= nil then
dbg_print("ok we have directly assigned viewport to MFCD\n")
set_full_viewport_coverage(vp)
end
end
-
Panowie, czy inne zegary też się da przenieść na 2-gi monitor, sztuczny horyzont, radar czy altimetr ? W nowym DCS 1.5.2 sa jakieś opcje z dwoma monitorami, tyle że manual jeszcze nie jest aktualny...
-
Proponuje zainteresować się systemem helios.Jest darmowy, chociaż, za ciężką robotę z profilami, wypada przelać trochę dolców .
http://www.gadrocsworkshop.com/helios
http://www.captzeen.com/helios/index.asp
Sam używam z nakładką dotykową ir 26".
Pozdrawiam.