Jump to content

Kneeboard ist verrutscht/verschoben dargestellt.


Recommended Posts

Posted (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

4Monitore.jpg

Auf Monitor 4 soll das Kneeboard angezeigt werden. Es wird aber in Monitor 3 verschoben:
4MonitoreKneeboard.jpg
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 by Purzel
Posted (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 by caponi

too much ...

 

 

Posted

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.

Posted


@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.

 

Posted

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 ?

Posted

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.
 

Posted (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 by caponi

too much ...

 

 

Posted (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.

image.pngMonitor 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 by maikchaos
Posted

@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



 

Posted (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 

image.png

Edited by maikchaos
  • 3 months later...
Posted

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

 

 

 

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...