gleistracker Geschrieben Mittwoch um 21:44 Uhr Geschrieben Mittwoch um 21:44 Uhr Hallo, ich bin erst seit kurzem hier. Einen schönen Gruß an alle Eisenbahnenthusiasten! Zu meinem Problem: Ich habe 6 Züge auf meiner Hauptstrecke, die alle darauf überprüft werden müssen, ob ihre Cockpit-Ansicht aktiviert ist. Sollte das der Fall sein, so soll auf eine andere Kamera umgeschaltet werden. Der nachstehende Code funktioniert, aber leider bei jedem Fahrzeug auf der Anlage, das die Cockpit-Ansicht aktiviert hat. Das Umschalten der Kameras soll aber nur für Züge mit dem Schlagwort "Zug Hauptstrecke" erfolgen. Fahrzeuge_Hauptstrecke = layout:getEntitiesByKeyword("Zug Hauptstrecke") for idx, zug in ipairs(Fahrzeuge_Hauptstrecke) do -- $("Textfeld für Debugging").text = zug if not (zug.name.activeCameras == layout.activeCameras[0]) then layout.activeCameras[0] = $("Kamera Panorama") end end
Goetz Geschrieben Donnerstag um 08:27 Uhr Geschrieben Donnerstag um 08:27 Uhr vor 10 Stunden schrieb w.rost1: zug.name.activeCameras Hallo @w.rost1, die Ursache steckt eventuell in der Eigenschaft name. In der Variablen zug, die in ipairs() erzeugt, steckt ja schon der Zug. Seinen Namen benötigst du nicht. Da es die Eigenschaft zug.name.activeCameras nicht gibt, ist der Vergleich nie wahr. Und mit der Negierung am Anfang ist die Bedingung somit immer wahr. Also "funktioniert" dein Code, weil immer umgeschaltet wird. Der Vergleich muss auch etwas anders lauten, denn wenn eine Cockpitkamera aktiv ist, dann ist der Zug die Kamera. Dieser Code funktioniert so, wie du es dir vorstellst: local Fahrzeuge_Hauptstrecke = layout:getEntitiesByKeyword("Zug Hauptstrecke") for idx, zug in ipairs(Fahrzeuge_Hauptstrecke) do if layout.activeCameras[0] == zug then layout.activeCameras[0] = $("Kamera Panorama") end end Viele Grüße Götz
gleistracker Geschrieben Donnerstag um 11:39 Uhr Autor Geschrieben Donnerstag um 11:39 Uhr Hallo Goetz, ein großes Danke an Dich! Funktioniert einwandfrei! Zum Hintergrund: Ich habe auf meiner Anlage einen "Gebirgsteil" mit 4 Tunneln, von denen 2 durchaus in der Cockpit-Ansicht befahren werden können/sollen. Zwei aber nicht, diese dienen nur dem Kaschieren des plötzlichen Verschwindens der Züge, kurz bevor sie im Depot landen. Ein Befahren der Tunnel wäre also nicht wirklich sehenswert. Deswegen wird in diesen Tunneln das Befahren in der Cockpit-Ansicht durch ein Umschalten auf eine andere Kamera verhindert. Ich habe mal "auf die Schnelle" ein "Rundflug-Video" erstellt. Die Tunnel links und rechts auf dem Gebirgsteil der Anlage, enden blind, mit jeweils einem Depot am Ende. Hier der Link: https://www.worotec.de/3d_modellbahn_studio/Anlage.mp4 Gruß vom gleistracker ;-)
Goetz Geschrieben Donnerstag um 11:50 Uhr Geschrieben Donnerstag um 11:50 Uhr (bearbeitet) Hallo @gleistracker, es freut mich, dass ich dir helfen konnte. vor 20 Minuten schrieb gleistracker: Ein Befahren der Tunnel wäre also nicht wirklich sehenswert. Deswegen wird in diesen Tunneln das Befahren in der Cockpit-Ansicht durch ein Umschalten auf eine andere Kamera verhindert. Dann gäbe es noch eine bessere Alternative. Statt in einer Schleife alle Loks abzufragen würde es genügen, diejenige Lok zu untersuchen, welche den Tunnel (bzw. vermutlich einen Kontakt am Tunneleingang) betritt. if vehicle.variables["Zug Hauptstrecke"] == keyword and layout.activeCameras[0] == vehicle then layout.activeCameras[0] = $("Kamera Panorama") end Viele Grüße Götz Bearbeitet Donnerstag um 11:59 Uhr von Goetz Ergänzungen
gleistracker Geschrieben Donnerstag um 17:52 Uhr Autor Geschrieben Donnerstag um 17:52 Uhr Hallo Goetz, danke für die effiziente Lösung! Der PC ist ja "auch nur ein Mensch" und freut sich über weniger Arbeit ;-) Ganz davon abgesehen, daß - je mehr "Getummel" auf der Anlage ist - Effizienz immer wichtiger wird! Gruß vom gleistracker
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden