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

brauche mal deine Hilfe zum Verständnis von einer Lua-Anweisung. Folgende Anweisung läuft völlig unproblematisch: 

Screenshot2023-07-07095512.jpg.75c8ec42b7e32f8c2d43a2c376ed3bdb.jpg

Aber von meinem Verständnis her ist eine "Verneinung" nicht notwendig, daher wollte ich die Anweisung ändern auf: 

Screenshot2023-07-07095925.thumb.jpg.63d806ea11657e665427448f9484b989.jpg  

Diese Änderung erzeugt aber in weiteren Verlauf an der Stelle 15 einen Fehler. Dieser Fehler wird in der "Verneinungsanweisung" (siehe oben) nicht erzeugt. Warum? 

Wo ist der Unterschied zwischen eine Variable ist "nicht wahr" und eine Variable ist "falsch".     

Das ist mir schon an mehreren Stellen aufgefallen, habe es aber bisher immer ignoriert, weil die Verneinung ja funktioniert. 

Gibt es dafür eine sinnvolle Erklärung? 

VG,

Hawkeye

Geschrieben

Hallo Hawkeye,

bin zwar nicht Götz, aber ich kann genau so schlau tun :)

if not vehicle.variables["Wartezeit"] == true then

ist nicht das gleiche wie

if vehicle.variables["Wartezeit"] == false then

denn wenn eine Variable nicht existiert, ist sie nil, und nicht false. Du kannst mit false nicht auf die Existenz einer Variable prüfen.

Der erste Ausdruck funktioniert, weil:

  • Eine nicht existierende Variable ist nil
  • not nil wird zu true
  • true == true

Um deine Variable zu initialisieren, falls sie noch nicht existiert, solltest du folgende Zeile nutzen:

if vehicle.variables["Wartezeit"] == nil then

Viele Grüße,

Neo

Geschrieben
  • Autor

Hallo Neo, 

vor 2 Stunden schrieb Neo:

Der erste Ausdruck funktioniert, weil:

 danke für die schnelle Antwort, das habe ich jetzt verstanden.

Wenn der Bremskontakt betreten wird, wird die Variable "Wartezeit" an dieser Stelle in der EV temporär erst neu gesetzt. Muss das Fahrzeug halten, fängt die Zeit an zu zählen. 

Screenshot2023-07-07121141.thumb.jpg.e92b4268ce6e1633ae59b9d778ecf1c4.jpg

Verlässt das Fahrzeug den "Bremskontakt", weil die Strecke frei ist, wird diese Variable auch wieder komplett gelöscht.  

Screenshot2023-07-07121243.thumb.jpg.cd5f786d437164651a494a1bf4d84652.jpg

Sie existiert also beim "Betreten" des Bremskontaktes nicht. 

vor 2 Stunden schrieb Neo:

Um deine Variable zu initialisieren, falls sie noch nicht existiert, solltest du folgende Zeile nutzen:

if vehicle.variables["Wartezeit"] == nil then

Soll das so aussehen ? 

Screenshot2023-07-07122416.thumb.jpg.47a9f65b43855c3310433a89682953ae.jpg

Welchen Unterschied macht das jetzt? Es funktioniert auch ohne.  

VG, 

Hawkeye

Bearbeitet von Hawkeye

Geschrieben

nein, nicht so, sondern nur die innere Abfrage.
Das if not == true außen rum kannst du dir sparen.
Neos Vorschlag ist der Ersatz dafür und keine Ergänzung.

 

--[[---------------------------------------------
Prüfung ...
------------------------------------------------]]

if vehicle.variables["Wartezeit"] == nil then
  vehicle.variables["Wartezeit"] = 0
end

if contact.variables[Fahrweg ist frei] == true then
  ...

 

 

Bearbeitet von Goetz

Geschrieben
  • Autor
vor 9 Minuten schrieb Goetz:

nein, nicht so, sondern nur die innere Abfrage.
Das if not == true außen rum kannst du dir sparen.
Neos Vorschlag ist der Ersatz dafür und keine Ergänzung.

Danke Götz, 

vor 2 Stunden schrieb Neo:

solltest du folgende Zeile nutzen:

Das „stattdessen“ habe ich überlesen 🙄, kann man aber auch rauslesen. 😂

VG, Hawkeye

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.