Jump to content
Zum Start hinzufügen

Weitere Informationen

3D-Modellbahn Studio

Eine Vollbild-App auf Ihrem Startbildschirm mit Push-Benachrichtigungen und mehr.

So installieren Sie diese App auf iOS und iPadOS
  1. Tippen Sie auf das Teilen-Symbol in Safari
  2. Scrollen Sie durch das Menü und tippen Sie auf Zum Startbildschirm hinzufügen.
  3. Tippen Sie oben rechts auf Hinzufügen.
So installieren Sie diese App auf Android
  1. Tippen Sie auf das 3-Punkte-Menü (⋮) in der oberen rechten Ecke des Browsers.
  2. Tippen Sie auf Zum Startbildschirm hinzufügen oder App installieren.
  3. Bestätigen Sie durch Tippen auf Installieren.

Empfohlene Beiträge

Geschrieben

Hallo @Goetz ,

ich möchte mir ein Bahnübergangsmodul für V5 erstellen, aber ich finde den Fehler im Script leider nicht

ich habe das Modul mal als Entwurf hochgeladen

E99300F6-D9CE-48B8-88FF-808BA5DDE67C

vielleicht kannst Du mal draufsehen ?

Gruß Hermann

Geschrieben

Hermann,

hatte mal einen blick auf deine anlage geworfen und ganz ehrlich, weiss gar nicht so recht womit ich anfangen soll.
Ist a bit of a mess ..
Also was ich vorschlagen wuerde, um allen beteiligten etwas zeit zu sparen, warum schreibts du nicht mal kurz in pseudocode was du wirklich tun willst.

A) nenne relevante punkte - kontakte
B) definiere was an jedem punkt passieren soll, nicht wirklich wie es passieren soll, also nicht schlagwort oder was auch immer

Ganz grob die bedingungen und reaktionen .. dann kann man deinen code viel besser zuordnen und erklaeren warum das so nicht geht.
Gruss
gmd

Bearbeitet von gmd

Geschrieben
vor 7 Stunden schrieb HWB Berlin:

ich finde den Fehler im Script leider nicht

Hallo HWB Berlin,
du speicherst und änderst den Zähler immer in dem Kontakt, der gerade überfahren wurde. Das sind auf deiner Anlage vier verschiedene Kontakte. Zwei zum Schließen und zwei zum Öffnen.

Wenn du im ersten Schließkontakt den Zähler auf 1 setzt, dann findet die EV im Kontakt zum Öffnen keinen Zähler, der runtergezählt werden könnte.

Du musst für den Zähler eine Variable an einer zentralen Stelle anlegen.

Alles andere ist ordentlich und verständlich.

Viele Grüße
Götz

Geschrieben
  • Autor

Hallo @Goetz ,

danke das Du dir das angesehen hast, ich dachte der Zähler wäre in dem mittleren Straßenstück hinterlegt, dort wird er doch hochgezählt,

ich werde weiterversuchen mit Lua zu arbeiten.

Einen guten Rutsch und Gesundheit wünsche ich Dir

Gruß Hermann

Geschrieben
vor 1 Minute schrieb HWB Berlin:

ich dachte der Zähler wäre in dem mittleren Straßenstück hinterlegt

Moment!
Ich glaube, ich habe da etwas übersehen ...

Bearbeitet von Goetz

Geschrieben

Sorry @HWB Berlin,
ich hatte mich durch die Fehlermeldung irritieren lassen.

Sie lautet: Attempt to index a nil value (field '#TCBo CrossRail') (Zeile 10)

Und dann habe ich dein Skript zu flüchtig angeschaut und nur am Beginn der Zeile contact gesehen.
Daraus hatte ich die falschen Schlüsse gezogen, weil ich überlesen habe, dass im Auslöser Kontakt bei dir das Straßenstück gespeichert ist.

Der wahre Fehler ist, dass diese Variable beim Kontakt zum Öffnen den falschen Namen hat.
Da heißt sie #TCBc CrossRail. Dein Skript sucht aber nach #TCBo CrossRail.

Viele Grüße
Götz

Bearbeitet von Goetz
Schreibfehler korrigiert

Geschrieben
  • Autor

Hallo @Goetz ,

das c steht für close, und das o für open

Gruß Hermann

Geschrieben
vor 1 Minute schrieb HWB Berlin:

das c steht für close, und das o für open

Das weiß ich.

Aber in deinem Kontakt zum Öffnen steht eine Variable mit c und nicht die Variable mit o, die dein Skript sucht.
Es ist auch nicht sinnvoll, hier zwei verschiedene Variablenamen zu nehmen. Es handelt sich doch immer um dasselbe Objekt, nämlich das Straßenstück. Ob du öffnen oder schließen willst, ist doch in diesem Zusammenhang ganz egal!

Geschrieben

Hallo @HWB Berlin,
mit diesen zwei Änderungen kannst du dir das Leben leichter machen:

Lass bei den vier Variablen für das Straßenstück das c bzw. o weg.
Dann speichere zu Beginn im Skript das Straßenstück in einer lokalen Variablen, damit du nicht an jeder Stelle diese ellenlangen Adressen schreiben musst:

-- For all items in the list set the automatic deceleration on, so the cars will stop
local CrossRail = contact.variables["#TCB CrossRail"]

CrossRail.variables["#CRR Count"] = CrossRail.variables["#CRR Count"] + 1

if CrossRail.variables["#CRR Count"] == 1 then
  -- Stop the cars only for the first train coming, ( they will not start automaticly again)

  local t = CrossRail.variables["#CRR RoadContacts"]
  for i, Iter in ipairs(t) do
    Iter.trackContact.autoDeceleration = true
  end

  -- Close the barriers in the lsit only for each first train coming

  local t = CrossRail.variables["#CRR Barriers"]
  for i, Iter in ipairs(t) do
    Iter.animations["01 Schließen"]:play(-1, 1)
  end
else
  -- Do nothing ,another train is coming, bariiers are already closed
end

So kann Gmd das Skript auch lesen und verstehen. ;)

Viele Grüße
Götz

Bearbeitet von Goetz
Änderung rückgängig gemacht

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Push-Benachrichtigungen konfigurieren

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.