Jump to content

BauerHeini

Mitglieder
  • Gesamte Inhalte

    135
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von BauerHeini

  1. Ok, was ich meine ist: 1. Meine Funktion habe ich als benutzerdefiniertes Ereignis mit Namen "Kreisbogen" angelegt: function Laenge(Alpha, Radius) local l = Alpha / 360 * 2 * math.pi * Radius return l end Die Testabfrage per Taster lautet: $("Beschriftung").text = Laenge(90, 10) Die Fehlermeldung lautet: [11:05:14] Ereignis-Protokollierung gestartet [11:05:18] Schalter wird betätigt -> Taster, 0 [11:05:18] Schalter wird betätigt [11:05:18] Skriptfehler (9): attempt to call a nil value (global 'Laenge') 2. Um die Länge eines Objekt auszulesen geht... $("Beschriftung").text = $("G01").variables["Lg/Rad"] auch nicht. "G01" ist ein Gleis.
  2. Es geht darum, ein Fahrzeug an einem bestimmten Punkt zum Stehen zu bringen.
  3. Liebe Programmierer und MBS-Freunde, ich habe mir ein/e Gleis/Spur gebastelt, die mir mit einem Skript ein Fahrzeug auf eine bestimmte Geschwindigkeit bringen soll: Fahrzeug betritt ein Gleis/Straße mit Schlagwort "Signalgleis" local l --LgRad local sp = 0 --Speed if track.variables["Signal"].state == 2 then sp = track.variables["Signal"].variables["Tempo"] end if track.variables["Alpha"] ~= 0 then --[[Kurve--]] l = math.pi / 180 * track.variables["LgRad"] * track.variables["Alpha"] * $("Ereignisse").variables["Massstab"] else l = track.variables["LgRad"] * $("Ereignisse").variables["Massstab"] -- l = track.size.y end $("Bremsen"):invoke(0, vehicle, l, sp) ----------------------------------- benutzerdefiniertes Ereignis --[[Parameter: Delta = ev. Bremswegverlängerung Fahrzeug = auslösendes Fahrzeug Laenge = auslösende Spurlänge Zieltempo --]] local v = Fahrzeug.currentSpeed / 3600 * 1000 --Umrechnung in m/s local s = Laenge - Delta local a = (v ^ 2) / (2 * s) Fahrzeug.deceleration = a Fahrzeug.targetSpeed = Zieltempo Nun habe ich zwei Fragen. 1. Kann man die Variablen, die ich in den Gleisen/Strassen eingebunden habe, wie LgRad oder Alpha (Geometrie: Lg/Rad bzw Winkel) oder den Maßstab, per Programm auslesen? 2. Wie kann man eine LUA-Funktion erstellen und benutzen? Ich habe das LUA-Tutorial von Goetz gelesen und mir eine Funktion in einem benutzerdefiniertem Ereignis erstellt. Aber wie könnte ich eine Variable bestücken mit dem Wert aus der Funktion? Ich habe ja nur den Namen des benutzerdefinierten Ereignisses und nicht der Funktion. In freudiger Erwartung auf Antworten BauerHeinz
  4. Viele Dank für Deine Hilfe, Goetz. Man lernt immer (auch im hohe Alter) dazu.
  5. Ehrlich gesagt habe ich es nur hingenommen. In den LUA-Anleitungen steht, dass ein Tabellenfeld eckigen Klammer angesprochen wird: example_table[2] = "Constipation" print(example_table[2]) --> Constipation
  6. Vielen Dank Goetz. Hat funktioniert
  7. Weiß jemand, wie man die Abmessungen eines Objektes in die Programmierung integrieren kann? local l = $("Gleis01").size[X] funktioniert nicht.
  8. Vielen Dank alle zusammen. Der Tip mit der Liste war erfolgreich. Jetzt läuft alles super Jetzt möchte ich nur noch herauskriegen, was der Unterschied zwischen Tabelle und Liste ist. Viele Grüße BauerHeini
  9. Habe ich gemacht. Dann ist die ganze Tabelle gelöscht. Außerdem sind der Inhalt der Tabelle Objekte.
  10. Ich habe eine Testprozedur angewendet per Tastendruck... table.remove ($("Abzweigung").variables["Wartender_Obj"]) oder auch table.remove ($("Abzweigung").variables["Wartender_Obj"], 1) ...aber das Element in der Tabelle wird nicht gelöscht, nur das Objekt.
  11. Eine Frage an die Programmierer. Ich möchte in einer Tabelle, die als Variable an ein Objekt (in diesem Fall Abzweigung) gebunden ist, einen Eintrag hinzufügen und auch wieder löschen. Das Eintragen klappt, das Löschen bei nicht bei Objekten. Hier das konkrete Beispiel: ich möchte ein Fahrzeug stoppen, wenn eine Weiche/Abzweigung besetzt ist, und nach Freiwerden der Weiche/Abzweigung wieder beschleunigen. Hier die Prozedur: local Obj = track.variables["Wartender_Obj"][1] local Richtung = track.variables["Wartender_Nr"][1] table.remove (track.variables["Wartender_Obj"], 1) table.remove (track.variables["Wartender_Nr"], 1) track.variables["besetzt"] = false if Obj ~= $("") then $("starten"):invoke(Obj, Richtung, track) end Der Eintrag "Wartender_Nr" ist eine Zahl in der Tabelle, der Eintrag "Wartender_Obj" ist ein Fahrzeug in der Tabelle. Und zwar habe ich eine Tabelle angelegt, weil ja mehrere Fahrzeuge kommen könnten. Der Eintrag "Wartender_Nr" wird auch gelöscht. Die Länge der Tabelle beträgt nach Löschen 0 (ist also leer). Bei dem Eintrag "Wartender_Obj" wird nur das Objekt gelöscht. Die Länge der Tabelle beträgt nach Löschen 1 und wird immer länger (je mehr Fahzeuge die Abzweigung passieren). Wer weiß die Lösung? Grüße BauerHeini
  12. Schade, dass keiner Bescheid weiß
  13. Vielen Dank für die Hinweise. Ich hatte aber eher an etwas anderes gedacht. Bei den Textfeld wollte ich je nach Situation (Aktion oder Skript) die Schriftfarbe oder den Hintergrund ändern. Aber viel wichtiger sind Änderungen bei 3D-Objekten. Beispielsweise möchte ich das "Feuer" (von Neo) beim Löschen mit der Feuerwehr langsam reduzieren, also die Größe, Partikelanzahl usw. per Programm ändern. Momentan blende ich es einfach aus. Viel besser anzusehen wäre doch, es langsam zu reduzieren. Oder den Wasserstrahl, wobei ich das Brunnenwasser (von Roter Brummer) mißbrauche, langsam einzuschalten, also die Eigenschaften im 3D-Modelleditor per Skript zu ändern.
  14. Hallo MB-Freunde, Kann man Parameter von Objekten im 3D-Modelleditor oder auch Eigenschaften (z.B. von Beschriftung, per Aktion (ggf. mit LUA), ändern? Wenn ja, wie?
  15. Hallo, kann mir jemand einen Tipp geben, wie ich mit "pairs" alle Objekte mit einem bestimmten Schlagwort ansprechen kann (wenn ja, natürlich wie) Gruss BauerHeini
  16. Lieber Goetz, das war die Antwort, auf die ich gewartet habe. Das eröffnet mir ja ganz neue Perspektiven. Super
  17. Lieber Goetz, Du schreibst in Deinem vorletztem Beitrag: Die Aktion heißt... usw. Genau dass ist ja die Frage in meinem Thema. Wo bekomme ich es (das benutzerdefinierte Ereignis) her? Ich habe diverse erstellt, wie im Eingang zu sehen, es wird mir aber keines angeboten.
  18. Hallo liebe Modellbahnfreunde, was ist ein "benutzerdefiniertes Ereignis"?. Ich bin davon ausgegangen, dass wenn ich ein neues Ereignis erstelle, dieses "benutzerdefiniert" ist. Wenn ich aber eins aufrufen will, ist keins da.. Viele Grüße BauerHeini
  19. Danke. Ich hatte dummerweise 'Anlage' als Anhang interpretiert
  20. Hallo Frank, wie ist das gemeint mit 'Anlage'? Gruß BauerHeini
  21. Aber auch zum Objekt gehörende Skripts können nicht ähnlich gesichert werden.
  22. Hast Recht Andy. Funktioniert nur mit Gruppen.
×
×
  • Neu erstellen...