Purzel Posted September 4, 2023 Posted September 4, 2023 (edited) Hi, ich habe für mein F/A-18C Cockpit drei Monitore zusätzlich zum Hauptbildschirm: Auflösung (v.l.n.r.): 1920x1080, 768x1024, 768x1024 und 600x800 Auf Monitor 4 soll das Kneeboard angezeigt werden. Es wird aber in Monitor 3 verschoben: Was muss ich in der MonitorSetup.lua eintragen, damit das Kneeboard entweder auf dem Bildschirm 1 oder auf Bildschirm 4 angezeigt wird? Gibt es dafür einen Eintrag in der MonitorSetup.lua? Aktuell schaut diese so aus: Spoiler _ = function(p) return p; end; name = _('F/A-18C 4056x1080'); Description = 'Mainscreen +2 MFCDs + Kneeboard =4056x1080' Viewports = { Center = { x = 0; y = 0; width = 1920; height = 1080; viewDx = 0; viewDy = 0; aspect = 1920/1080; } } Gui = { x = 0; y = 0; width = 1920; height = 1080; } LEFT_MFCD = { x = 1935; y =250; width = 700; height = 700; } RIGHT_MFCD = { x = 2725; y = 250; width = 700; height = 700; } UIMainView = Gui UIMainView = Viewports.Center GU_MAIN_VIEWPORT = Viewports.Center Die 700x700 Größenangaben der LEFT_ und RIGHT_MFCD Einträge sind der Tatsache geschuldet, dass ich die Displays hinter TM Cougar-Rahmen verbaut habe und die DDI's sonst abgeschnitten dargestellt würden. Ich meine, mal irgendwas zu einem Kneeboard-Eintrag gehört zu haben, diesen Eintrag suche ich... Danke Gruss Purzel Edited September 4, 2023 by Purzel
caponi Posted September 5, 2023 Posted September 5, 2023 (edited) Da ich deine Grafikoptionen hier nicht sehen kann ... ich vermute, dass deine Auflösung in DCS nicht richtig eingestellt ist. Du musst in den DCS Optionen 1920+768+768+600 - also 4056 x 1080 bei der Auflösung eintragen ... wobei ich gerade sehe, dass du das zumindest in der Monitor.lua schon richtig gerechnet hast ... Edited September 5, 2023 by caponi too much ...
xfirf Posted September 5, 2023 Posted September 5, 2023 Ich hab das selbe Problem. Man kann die Koordinaten des Kneeboards ändern. Zu Hause kann ich dir die entsprechende Datei später raussuchen. Bis dahin kannst du es ja von Hand mit der Maus immer rüberziehen.
Purzel Posted September 5, 2023 Author Posted September 5, 2023 @caponi, ich bin heute abend eh im FL-DC. Die Auflösung in DCS stimmt schon. @xfirf Das Problem ist, dass ich die Kante zum Ziehen nicht erwische, weil die DDI-Displays zu klein sind. Habe jetzt aber mal ein wenig Threads durchsucht und rumprobiert und dem Problem glaube ich auf der Spur.
Mapi Posted September 5, 2023 Posted September 5, 2023 Wie groß ist denn der 4. Moni? Denke, das K wird rechts unten in der Ecke von der Gesamt Auflösung dargestellt, warum auch immer einer so ein (sry) Blödsin programiert/gescriptet hat. Wie haben 2023. (old LockOn Code?) Ich habe jetzt meinen 2. auch rechts, jetzt sehe ich die LSO Displays wieder .... Must du den 4. weiter nach unten setzen, ev mitte, ev kanst du dann es verschieben, jedes mal ;-/ "Geoge" geht oder ?
Purzel Posted September 5, 2023 Author Posted September 5, 2023 So, aktuell schaut's so aus: _ = function(p) return p; end; name = _('F/A-18C 4056x1080'); Description = 'Mainscreen +2 MFCDs + Kneeboard =4056x1080' Viewports = { Center = { x = 0; y = 0; width = 1920; height = 1080; viewDx = 0; viewDy = 0; aspect = 1920/1080; } } Gui = { x = 0; y = 0; width = 1920; height = 1080; } LEFT_MFCD = { x = 1935; y = 250; width = 700; height = 700; } RIGHT_MFCD = { x = 2725; y = 250; width = 700; height = 700; } KNEEBOARD = { x = 3360; y = 0; width = 630; height = 760; } UIMainView = Gui UIMainView = Viewports.Center GU_MAIN_VIEWPORT = Viewports.Center Obwohl ich die Startpunkte des 4. Monitors und die Knieboardmaße mit 600x800 zunächst eingetragen hatte, wird das Kneeboard nicht bildschirmfüllend im ganz rechten Monitor (600x800) dargestellt, sondern auch da verschoben, so dass ich es jedesmal erst verschieben und einrichten muss. Ich hatte in obigem Code zuerst die Startpunkte & Maße vom 4. Monitor eingegeben, aber irgendwie füllt mir das Kneeboard den 4. Monitor nicht aus.
caponi Posted September 5, 2023 Posted September 5, 2023 (edited) Das kneeboard wird bei maximum y unten rechts angedockt … dein maximum ist 1080 richte mal deinen 4. monitor an der unteren kante im windows aus … bzw. richte es im windows so aus, dass du das kneeboard mit der maus fassen kannst ist die variable kneeboard in der monitor.lua offiziell? kann mich daran gar nicht erinnern Edited September 5, 2023 by caponi too much ...
maikchaos Posted September 6, 2023 Posted September 6, 2023 (edited) Ich hab bei mir einen Hauptmonitor mit (2560x1440) oben und darunter nebeneinander die 3 Winwing USB Monitore angeordnet, hatte also das gleiche Problem, das Kneeboard war immer unten rechts auf dem rechten DDI. Monitor 1 ist nicht mit im DCS Setup Hab es dann damit versucht funktioniert bei mir einwandfrei: local kneeY = 800 -- Höhe des Kneeboards local kneeX = 600 -- Breite des Kneeboards local kneePosY = 630 -- Position in Y (scheint die linke obere Ecke des KB zu sein) local kneePosX = 1945 -- -- Position in X Hab das so positioniert das es nicht ganz rechts unten in der Ecke anstößt, das man es noch anfassen kann. Edited September 6, 2023 by maikchaos
Purzel Posted September 7, 2023 Author Posted September 7, 2023 @maikchaos Wo füge ich denn diese local kneeY (etc.) Zeilen in der ViewportHandling.lua ein? Hier ist meine ViewportHandling.lua: -- positioning on screen in HUD Only view function update_screenspace_diplacement(aspect,is_left,zoom_value) local w = LockOn_Options.screen.width; local h = LockOn_Options.screen.height; if LockOn_Options.screen.oculus_rift then local ui_x,ui_y,ui_w,ui_h = get_UIMainView() w = ui_w; h = ui_h; end local x0 = 0 local w0 = 0.5 * h local aspect = aspect or 1 local zoom_value = zoom_value or 0 local default_width = w0 + (64 * zoom_value) if default_width > h then default_width = h end if default_width > 0.5 * w then default_width = 0.5 * w end local default_height = default_width / aspect local default_y = h - default_height local default_x = w - default_width - x0 if is_left then default_x = x0 end dedicated_viewport = {default_x,default_y,default_width,default_height} dedicated_viewport_arcade = {default_x, 0 ,default_width,default_height} end function make_viewport(aspect,is_left,is_top,default_width,zoom_value) local w = LockOn_Options.screen.width; local h = LockOn_Options.screen.height; if LockOn_Options.screen.oculus_rift then local ui_x,ui_y,ui_w,ui_h = get_UIMainView() w = ui_w; h = ui_h; end local x0 = 0 local w0 = 0.5 * h local aspect = aspect or 1 local zoom_value = zoom_value or 0 local default_width = default_width or w0 default_width = default_width + (64 * zoom_value) if default_width > h then default_width = h end if default_width > 0.5 * w then default_width = 0.5 * w end local default_height = default_width / aspect local default_y = h - default_height local default_x = w - default_width - x0 if is_left then default_x = x0 end if is_top then default_y = 0 end return {default_x,default_y,default_width,default_height} end 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 function try_find_assigned_viewport(exactly_name,abstract_name) local viewport = find_viewport(exactly_name) or find_viewport(abstract_name) if viewport then set_full_viewport_coverage(viewport) end return viewport end
maikchaos Posted September 14, 2023 Posted September 14, 2023 (edited) Sorry habe paar Tage nicht reingeschaut. Keine Ahnung ob es mehrere davon gibt, aber ich habe die Datei genommen die hier liegt: E:\DCS World OpenBeta\Scripts\Aircrafts\_Common\Cockpit Mit Notepad++ sieht man die Zeilennummern. Die rot umrandeten Zeilen (1-4 und 39) habe ich eingefügt, das Purple in Zeile 38 mit "--" auskommentiert Edited September 14, 2023 by maikchaos
Quasi Posted January 6, 2024 Posted January 6, 2024 Hallo zusammen, @maikchaos: Ich hab dein Skript umgesetzt und es Funktioniert. Leider besteht mein DCS dann den IC- Check auf MP Servern nicht mehr. Sobald ich in eins meiner Module steige flieg ich vom Server mit der dementsprechenden Meldung dazu! Habt Ihr das selbe Problem oder gibt es hierfür eine andere Lösung? Ich hab auch schon versucht in der Init.lua im Verzeichniss "E:\Eagle Dynamics\DCS World OpenBeta\Scripts\Aircrafts\_Common\Cockpit\KNEEBOARD\indicator" einen neuen Viewport anzulegen und diesen dann zu Verwenden. Funktioniert in SP, aber NICHT im MP! Vieleicht liest ja ein ED´ler mit und kann dazu was sagen!? Das dauernde verschieben und die größenanpassung des Kneeboards nerft auf Dauer ungemein... Vielen Dank. Grüße Quasi/Joker BS: Windows 11 Pro 23H2; CPU: Intel(R) Core(TM) i9-14900KS, 3.20 GHz; MB: ASUSTek, ROG STRIX B760-ASUSTek; RAM: Kingstone DDR5 6000MHz; GPU: AORUS GeForce RTX™ 4080 16GB XTREME WATERFORCE. Thrustmaster HOTAS WARTHOG, Thrustmaster MFD Cougar, MFG Crosswind rudder pedals, TrackIR 5
Recommended Posts