Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    4922
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Goetz

  1. Goetz

    Multiplayer?

    Hallo HWB, magst du mir einen Zeitpunkt nennen, wo ich im Video ... ... live sehen kann? Oder hast du einen anderen Hinweis, worauf im Speziellen ich an welcher Stelle achten sollte?
  2. Das geht mit dem Studio leider nicht, Norbert. (Und es würde auch mit Lua nicht gehen.)
  3. Wenn du hingegen die Bodenplatte in der Ebenen-Ansicht transparent geschaltet hast, musst du das auch dort wieder zurück schalten: Viele Grüße Götz
  4. Wenn du die Bodenplatte unsichtbar gemacht hast, dann kannst du sie in der Strukturansicht finden und wieder sichtbar machen # Die Strukturansicht findest du mit dem Lupensymbol unten in der Menüleiste. Und in der Strukturansicht kannst du über das Lupensymbol in der Kopfzeile die Liste auf alles unsichtbare reduzieren.
  5. Hallo @winpet, hier ist der versprochene Umbau der EV: Kreuzung mit benutzerdefinierten Ereignissen.mbp
  6. Das werde ich machen, Winpet. Dauert aber ein bisschen. Vorweg will ich gerne folgendes erklären: Das benutzerdefinierte Ereignis kam mir als Lösungsvorschlag in den Sinn, weil die Aktionskette für einen kompletten Durchlauf aller Phasen an deiner Kreuzung sehr lang würde. Mit einem benutzerdefinierten Ereignis kann man solche Aktionslisten in Happen unterteilen. Damit würde die äußere Schleife aus meiner Beispielanlage ganz entfallen.
  7. dass in einem benutzerdefinierten Ereignis genau dieselben Dinge passieren, wie in allen anderen Ereignissen auch. benutzerdefiniert ist dabei nur das Ereignis, was die Aktionskette auslöst.
  8. Da liegst du tatsächlich völlig falsch, Streitross. Ein Ereignis hat in aller Regel einen Auslöser. Zug betritt Gleis, Signal schaltet, Zeit ist abgelaufen, um nur ein paar typische zu nennen. Das benutzerdefinierte Ereignis hat keinen solchen Auslöser. Stattdessen wird es innerhalb eines anderen Ereignisses als Aktion gestartet. Das kann man gut benutzen, um lange Aktionsketten in kleinere Happen zu unterteilen.
  9. Ich versuche es. Eventuell habe ich dich mit den "benutzerdefinierten Ereignissen" auch auf die falsche Fährte gelockt. Das habe ich nicht in böser Absicht getan. Aber bevor du dich mit dem benutzerdefinierten Ereignis befasst, musst du zuerst einmal verstehen, welchen Zweck die Liste "Ampeln" in meinem Beispiel erfüllt und welche Rolle die Variable "Listenplatz" dabei spielt. Mir wird aufgrund deiner Fragen deutlich, dass du das Prinzip noch nicht durchschaust. Die drei Ampeln in der Liste repräsentieren die drei Wege, die reihum Grün bekommen: von oben und unten -> geradeaus und rechts von oben und unten -> Linksabbieger von beiden Seiten -> geradeaus und rechts Mit dem Listenplatz gebe ich an, welcher der drei Wege Grün bekommen soll. Und wenn diese Richtung alle Phasen (Rot, Rot-Gelb, Grün, Gelb, Rot) durchlaufen hat, dann zähle ich den Listenplatz um 1 rauf, damit der Zirkus für die nächste Fahrtrichtung von vorne beginnt. So, wie du die Liste benutzt, kann es also nicht funktionieren. Weder in der Wiederholung, noch außerhalb. Du musst dir pro Durchgang genau ein Element aus der Liste greifen. Nicht alle auf einmal. Viele Grüße Götz
  10. Das mache ich gerne, Winpet. Und so konnte ich auch schnell die Ursache finden, warum bei dir alle Ampeln gleichzeitig schalten: Weil du für alle Ampeln aus der Liste gleichzeitig das benutzerdefinierte Ereignis startest. In der Wiederholung ist der Aufruf falsch platziert. Eine Wiederholung wartet nicht, bis alles darin erledigt ist. Diese Wiederholung an der Stelle dient in meiner Vorlage nur dazu, zu Beginn einmal alle Ampeln auf Rot zu schalten. Danach lege ich fest, mit welcher Nummer aus der Liste die Sequenz beginnen soll. Und dann wird die Sequenz nur für diese eine Ampel gestartet, die in der Liste an der Stelle "Listenplatz" steht. Diese eine Ampel ist direkt mit allen weiteren verknüpft, die identisch schalten sollen. Deshalb genügt es, wenn ich eine Ampel anspreche Nachdem die Sequenz für diese Ampel komplett durchlaufen wurde, schaltet die Sequenz als letzten Akt die Platznummer eins rauf. Das Ändern der Platznummer bewirkt, dass die Sequenz erneut durchlaufen wird. Und weil die Platznummer eine andere ist, ist jetzt auch eine andere Ampel dran. Schau mal bitte, ob du mit diesen Erklärungen weiterkommst. Viele Grüße Götz
  11. Die Bilder sind winzig klein und kaum zu lesen, Winpet. Kannst du nicht bitte stattdessen einfach die kleine Versuchsanlage anhängen? Dann kann ich nachschauen, was los ist.
  12. Ich erkenne leider nicht, was da bei dir schief läuft, @Phrontistes aber hier geht das einwandfrei: Und wenn ich es in Lua konvertiere contact.variables["TextBox"].text = vehicle.name und dann an deine Schreibweise anpasse $("Textfeld").text = string.format("Text: %s", vehicle.name) funktioniert auch das so, wie es soll: Viele Grüße Götz
  13. You don't. Instead, you just go to the online catalogue and open the layouts. Use the name or the layout ID to find them. Or search all layouts from the creator Koriander
  14. Mit der grafischen EV gäbe es diesen Umweg: Und wenn du das obige Beispiel in Lua konvertierst und das Ergebnis mit dem vergleichst, was du tatsächlich benötigst, nämlich ... local t = layout:getVehicleGroup(vehicle) local Anzahl = #t ... dann entscheidest du dich hoffentlich doch für die Skriptvariante. Viele Grüße Götz
  15. Der Gleiskontakt hat keine Kupplung, Koriander. Du willst das Fahrzeug ansprechen, welches auf dem Kontakt steht. Für Gleise und Kontakte gibt es im Studio eine gemeinsame Routine. Und weil auf einem Gleis mehrere Fahrzeuge (= Waggons) stehen können, liefert diese Routine eine Liste. Wiederholungen dienen dazu, alle Elemente einer Liste nacheinander anzusprechen. In deinem Fall wird die Liste nur einen einzelnen Eintrag enthalten: den Waggon auf deinem Kontakt. Aber die Wiederholung ist (ohne Lua) der einzige Weg, an den Waggon in der Liste dranzukommen. In der Wiederholung bekommt ein Element eine neue Bezeichnung. Das ist automatisch Wdh und das @ davor soll dir zeigen: Unter diesem Namen kannst du es innerhalb der Wiederholung ansprechen. Das machst du, indem du für das Objekt per Zahnrad die Wiederholung angibst. Viele Grüße Götz
  16. Danke für die ID @Herman, aber das ist eine andere Anlage. HoWes ID sollte eigentlich zu einer viel schlichteren Anlage (mit nur einem Oval) führen, die er dann stattdessen als mbp Datei an sein letztes Posting angehängt hatte. Seine "und das sollte mal daraus werden" Anlage, deren ID du gerade gepostet hast, ist natürlich die eigentlich sehenswerte.
  17. Unter dieser ID finde ich (wie Spurwechsel auch) leider keine Anlage im Katalog. Eventuell hast du sie nicht veröffentlicht?
  18. Nur ein Beispiel von vielen. Aber ein Klassiker: Weil zwei Personenwagen je zur Hälfte eine erste Klasse haben (Typenbezeichnung AB) und beide so gekoppelt werden, dass sie eine durchgängige erste Klasse bilden. Die Waggons drehen sich nicht unwillkürlich. Aber Züge werden so zusammengestellt: Beide Bilder habe ich auf der Anlage "Primex 1988" von @Roter Brummer aufgenommen.
  19. und wenn du die Flächen 5mm auseinander ziehst? Blech hat ja eine Dicke. Den fehlenden Rand bemerkt man jetzt nicht. Also ändert sich das auch nicht, wenn von zwei Flächen nahe beieinander (jeweils nur einseitig sichtbar) mal die eine, mal die andere zu sehen ist. Ich bin Laie und versuche nur, es logisch anzugehen. Wenn ich damit falsch liege, bitte nicht böse sein.
  20. Noch eine Idee: Nimm anstatt der Modulvariablen eine Objektvariable. Speichere das Gleis in einer Variablen im Taster! Wenn du jetzt beide als Gruppe zusammenfasst und diese Gruppe unter "meine Modelle" speicherst, dann behalten sie im gespeicherten Block ihren Bezug. Du kannst das Pärchen überall in deinen Anlagen einsetzen und immer kennt die Objektvariable im Taster das zugehörige Gleisstück.
  21. gern geschehen. Beachte bitte, dass ich im vorherigen Beitrag noch Korrekturen vornehmen musste! Jetzt enthält er funktionierende Skript Teile
  22. Sagen wir mal so: Ich habe dich richtig verstanden. Und dir die Lösung für deinen Wunsch genannt, samt Erklärung, warum die so aussehen muss. Du kannst dazu ein Skript anlegen, das bei Anlagenstart selbständig nach dem Objekt mit deinem Wunschnamen sucht und dieses Objekt in der Variablen hinterlegt. Warum dieser Umweg? Weil das Studio dafür die Namen aller Objekte der Anlage mit deinem Wunschnamen vergleichen muss. Das macht man nach Möglichkeit nur einmal und nicht bei jedem Tastendruck. $("Ereignisse").variables["Entkuppler 001"] = layout:getEntityByName("rotes Gleis 24172") Aber ehrlich? Das kannst du auch beim Anlagenbau händisch eintragen. Oder? Mit dieser Modulvariablen sieht dein Skript für den Taster dann so aus: local entkuppler = $("Ereignisse").variables["Entkuppler 001"] local t = layout:getVehiclesOn(entkuppler) for i, v in ipairs(t) do if v:hasEngine() and v.engine.active then v.couplers[1].enabled = state break end end
  23. Goetz

    MBS 8.5

    Das Plugin für die Verbindung findest du oben rechts in der Menüleiste: Ich weiß aber nicht, ob deine Frage darauf abzielte? Vielleicht war sie anders gemeint und es ging um konkrete Einstellungen im Plugin?
  24. Tja, was da wie ein Name aussieht, ist leider keiner. Mit dem vorangestellten $ Zeichen ist das im Studio eine Objektadresse, Nur im Editor wird dir das Objekt namentlich genannt (damit du erkennen kannst, um welches Objekt es sich handelt). Das musst du dann bitte anders angehen: Lege eine Modulvariable "Entkuppelgleis" an. Diese referenzierst du in jedem deiner Skripte Und in jeder Anlage hinterlegst du in dieser Variablen das tatsächliche Objekt. Namen sind zur Identifizierung von Objekten ungeeignet, weil viele Objekte identische Namen haben dürfen. Aber Objektadressen sind immer eindeutig.
  25. Das findest du in der Liste von Wiederholungen. Da gibt es einmal für alle Fahrzeuge auf einem Gleis und zum zweiten für alle Fahrzeuge in einem Verbund Wenn du mit der Schleife alle Fahrzeuge in einem Zugverband durchläufst, dann kannst du diese Liste auf die motorisierten Fahrzeuge beschränken. Das ist ein umständlicher Weg um sicherzustellen, dass ich nicht auch die Waggonkupplungen im Zug anspreche. Diese Dinge sind mit Lua wirklich viel einfacher zu stemmen. Unter den Tutorials habe ich dieselbe Anlage mit einem bisschen Lua drin veröffentlicht: AB4CC825-FF3A-45D7-B64C-D71F1CA65792 Du musst bitte verstehen, dass das MBS dir nicht die Lok nennen kann, die auf dem roten Gleis steht. Weil es mehr als ein Fahrzeug sein könnte, liefert das MBS dir immer eine Fahrzeugliste. Die enthält dann wahrscheinlich nur ein Fahrzeug. Wenn ich also schon ein Fahrzeug aus der Liste wählen muss, dann doch am besten das mit eingeschaltetem Motor. Das wird die Lok sein und kein Waggon. local t = layout:getVehiclesOn($("rotes Gleis 24172")) for i, v in ipairs(t) do if v:hasEngine() and v.engine.active then v.couplers[1].enabled = state break end end Außerdem muss ich den Knopf "primen", wenn eine Lok aufs Gleis fährt. Ich möchte ja gerne an und aus optisch unterscheiden können. Ich prüfe deshalb bei Betreten des Gleises, ob die hintere Kupplung des Auslösers aktiv ist oder nicht. Für diese Prüfung benutze ich eine Skript-Bedingung: return vehicle.couplers[1].enabled Die gibt einfach den Zustand der Kupplung 1 (= hintere) als wahr (= aktiv) oder falsch zurück.
×
×
  • Neu erstellen...