BauerHeini
Mitglieder
-
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von BauerHeini
-
LUA Verzögerung
Es geht fast. Der Timer heißt "Flamme": $("Feuer"):invoke($("Ereignisse").variables["z"]) $("Ereignisse").variables["z"] = $("Ereignisse").variables["z"] - 0.1 if $("Ereignisse").variables["z"] <= 0 then $("Feuer").timers["Flamme"]:stop() end Nur das Beenden hat noch einen Fehler: [16:40:37] Skriptfehler (4): Unknown method or property name timers
-
LUA Verzögerung
Danke Goetz, das werde ich einmal ausprobieren.
-
LUA Verzögerung
Wie würde man denn dann eine Flamme kontinuierlich kleiner bzw größer werden lassen?
-
LUA Verzögerung
Hallo Goetz, es ist ja nur eine Aktion, die mit ab- oder zunehmender Variablen ausgeführt wird. Ich möchte doch nur die Flamme kontinuierlich kleiner werden lassen. Das muss doch in einer Schleife gehen, oder?
-
LUA Verzögerung
Hallo Programmierer, kann mir jemand helfen? Ich möchte bei folgendem Script in die Schleife eine Verzögerung einbauen: while $("Flamme").variables["Scale"] >= 0 do $("Feuer"):invoke($("Flamme").variables["Scale"]) $("Flamme").variables["Scale"] = $("Flamme").variables["Scale"] - 0.1 end "Feuer" ist eine benutzerdefiniertes Funktion: $("Flamme").transformation.scaling = scale "Flamme" ist das von NEO erstellte "Feuer" zu dem ich eine Variable "Scale" hinzugefügt habe. Ich komme mit dem" deferredcall" nicht klar. Mit Timer hat es auch nicht geklappt.
-
Eigenschaften per Funktion auslesen/verändern
Ich muss es noch mal wiederholen. Es kann doch nicht so schwer sein, Daten für die Programmierung zur Verfügung zu stellen, die jeder mit seinen Augen sehen kann, wie im 3D-Modelleditor und dort auch verändern kann. Was hast Du eigentlich dagegen, Timba? Bist Du an der Arbeit beteiligt?
-
Eigenschaften per Funktion auslesen/verändern
Entschuldige Neo, dass ich erst jetzt antworte. Ich hatte diese Feature-Wunsch hier eingestellt mit der Hoffnung, dass er eventuell angenommen wird und deshalb nicht auf eine Antwort gewartet. Aber jetzt zu der Frage, wofür die Informationen benötigt werden. 1. Ich habe bei Gleisen und auf Straßen eine Bremsspur eingerichtet, bei denen per Funktion, bei Betreten, die Verzögerung bis zum Ende der Spur auf ein bestimmtes Tempo berechnet wird. Hierzu benötige ich u.A. die Länge der Spur. Diese kann ich aus den Angaben "Lg/Rad", "Winkel" und "Maßstab" errechnen. Momentan muss ich diese Informationen als Variable bzw. Konstante zu jedem Objekt hinzufügen. Nachteil: großer Aufwand und bei Änderungen dieser Werte wird häufig vergessen, die Variablen mit zu ändern. 2. Bei einem Hausbrand habe ich die Flamme beim Löschen so animiert, dass ich mehrere abklingende Flammengrößen handisch erstellt habe, die dann mit zeitlicher Verzögerung ein- bzw. ausgeblendet werden. Dies liesse sich elegant lösen, wenn man entsprechende Werte auslesen und ändern könnte (wie man es ja auch händisch im 3D-Modelleditor machen kann). Viele Grüße BauerHeini
-
Eigenschaften per Funktion auslesen/verändern
Ich wünsche mir, das man Eigenschaften (Lg/Rad, Winkel usw.) nicht nur mit dem 3D-Modelleditor auslesen und verändern kann, sonder auch per Aktion oder auch LUA-Funktion.
-
LUA Funktionen und Objektdaten
Hallo Timba, ich kann sie berechnen aus "Lg/Rad" und "Winkel". Dafür habe ich ja die Funktion "Laenge" erstellt. Nur hierzu müßte ich eben die Konstanten aus dem Modelleditor auslesen können. Das wäre jetzt mal eine Frage an den "Erbauer" des Programms Stefan Werner. Denn wenn die Daten im Modelleditor zu finden sind, dürfte es ja nicht allzu schwer sein sie auch per Funktion auszulesen.
-
LUA Funktionen und Objektdaten
Dankeschön. Das mit der Funktion funktioniert Jetzt fehlt nur noch die Lösung auf die Frage mit den Objektvariablen. Obwohl es ja keine Variablen sind, sondern konstante Werte, wie "Lg/Rad" oder "Winkel". Interessant für mich wäre auch "Maßstab" aus dem Modelleditor
-
LUA Funktionen und Objektdaten
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.
-
LUA Funktionen und Objektdaten
Es geht darum, ein Fahrzeug an einem bestimmten Punkt zum Stehen zu bringen.
-
LUA Funktionen und Objektdaten
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
-
Abmessungen von Objekten
Viele Dank für Deine Hilfe, Goetz. Man lernt immer (auch im hohe Alter) dazu.
-
Abmessungen von Objekten
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
-
Abmessungen von Objekten
Vielen Dank Goetz. Hat funktioniert
-
Abmessungen von Objekten
Weiß jemand, wie man die Abmessungen eines Objektes in die Programmierung integrieren kann? local l = $("Gleis01").size[X] funktioniert nicht.
-
LUA Tabelle Remove
Danke, Goetz
-
LUA Tabelle Remove
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
-
LUA Tabelle Remove
Habe ich gemacht. Dann ist die ganze Tabelle gelöscht. Außerdem sind der Inhalt der Tabelle Objekte.
-
LUA Tabelle Remove
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.
-
LUA Tabelle Remove
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
-
Parameter ändern
Schade, dass keiner Bescheid weiß
-
Parameter ändern
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.
-
Parameter ändern
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?