-
Gesamte Inhalte
5510 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Andy
-
The old _Trigger1 and _Trigger2 are automatically translated into the corresponding thing causing the event. So your command automatically should come in as something like that: Trains/Vehicle enters track/street any track Action: set variable Name [track]...switch1 ..status... = Value [track]...switch1...Reserve.. So your old Trigger2 are now [track], In my sample it's a switch causing the event, so in Trigger, you have to select switch - then indirections. notice the number and sequence of 'wheels' for the level of indirections. (the scroll bar shows, it goes deeper)
-
@Neo, kannst mal 'ne Flasche Sekt aufmachen. Die 'Mobile' läuft nun auf V5. Das heißt, Du hast da schon einiges richtig gemacht! Zum studieren hochgeladen. Ein paar Lua-Dinge sind drin, ist aber alles noch nicht großartig optimiert. Hauptsache, sie läuft. Es gibt auch noch keinen Kontaktpunkt! Entwurf: 0BC7A61B-E89E-421F-AE6A-F896AF8D04C3 Gruß Andy p.s.: ein Hinweis noch, wenn man das generelle Verhalten mal 'erahnen' will: Direkt nach dem Laden das Ereignisprotokoll öffnen, nicht starten, nur (bei offenem Protokoll) den Automatik-Button drücken. Jetzt 'fährt er hoch'. Er initialisiert die Fahrpläne für alle Loks. Bei Fahrplan05 trifft er auf die Startzeit 3:00 und behandelt deshalb sofort den Auftrag (da die Uhrzeit mit 3:00 beginnt). Ein weiterer Auftrag will eigentlich auch um 3:00 rein - geht aber nicht, da für den ersten noch etwas zu tun ist. Er geht auf 'delayed' und wird es wieder versuchen, wie er es auch bei einem geblockten Fahrweg tun würde. Damit hat man eigentlich das wichtigste Prinzip schon gesehen.
-
und bei mir ist er aus einem Ereignis ausgestiegen, in dessen Bedingung ein Vergleich mit einer bereits gelöschten globalen Variablen stand, wobei er da kein 'attempt ... nil' geworfen hat! Wenn eine Variable gelöscht wird, sollte er erst einmal prüfen, ob die irgendwo noch verwendet wird, falls ja - nicht löschen, soll in Suche nach den Stellen suchen, wo sie auftaucht und anpassen (praktisch die Error-Stufe). Ist sie nicht mehr vorhanden, aber irgendwo (nicht als Teilstring sondern als kompletter String) noch verwendet, dann warnen! Dann könnte sie ja indirekt verwendet werden. Mit Löschoption. Beim Umbenennen wird die Errorstufe nicht gebraucht, die Warnstufe hingegen wäre sinnvoll. Gruß Andy
-
Jaaaaaaaaa jetzt ist der Set komplett! Danke Danke Andy
-
okay, die habe ich nicht im Programm, weil die bei jedem Rechner irgendwo anders liegen.
-
...aber nicht, wenn Du vorne stehst und mit gedrückter Shifttaste Cursor runter drückst. Das macht er dann nämlich nicht. Für V6 könntest Du mal über die Möglichkeit nachdenken, den Scintilla einbinden, dafür ist es jetzt wohl zu spät. So einfach einzubinden, wie das angepriesen wird, ist es bestimmt auch nicht.
-
Irgendwo hat man da als Vieltipper so eine Automatik drin, und wehe, die läuft nicht wie gewohnt! Derzeit kopiere ich mir den Inhalt direkt nach Notepad++ und zurück. Hat bei mir auch was mit den Augen zu tun. Es hat doch etwas größere Buchstaben und ich habe ein Layout mit schwarzem Hintergrund. Weißer belastet mich. Kann Neo nix für.
-
Habe noch einen Wunsch, der mir fürchterlich in den Fingern juckt: Beim Lua-Editor komme ich gerade noch damit klar, dass der Cursor nach dem letzten Buchstaben in einer Zeile nicht in die nächste geht (das ist schon ungewohnt schlimm), aber er sollte beim Abwärtslaufen wenigstens unter die letzte Zeile gehen. Wenn man da mal schnell was markiert, nimmt er die letzte Zeile nie mit. Schau bitte, bitte mal, ob da was möglich ist - wenn die anderen das auch so möchten. Gruß Andy
-
Wenn man die EV aufklappt, beginnt sie oben mit Timer, Variablen, Skript. Geht man dort in die Variablenliste und ändert einen Namen, wirkt sich das nicht auf den Programmcode aus. Sehr fatal! Außerdem wäre es sehr schön, wenn man hier einen Timer oder eine Variable in ein Modul rüberziehen könnte. Von V4 kommend landet alles auf oberstem Level. Später möchte man es schon ordnen. Gruß Andy
-
Ja, die müssen sein! Ich wundere mich, warum Brummi nach der Framerate fragt, denn im Feuerwehr-Video sieht man, dass da noch nicht mal ansatzweise was am Ruckeln ist, auch wenn er um die Kurve fährt und viele neue Texturen in den Cache kriegt. Respekt! Muß mal sehen, wie mein Rechner da im Vergleich abschneidet. Meine Anlage auf dem Rechner meines Bruders mit dem Riesenmonitor, da sieht man Dinge, die sieht man sonst nicht (eben auch kleine Fehler!). Gruß Andy
-
Mahlzeit, ich bin noch ein wenig übernächtig, weil ich heute bis morgens um halb 10 eine Version flicken mußte. Meine Anlage bedarf einer Grundstellung und ich bin dann mitten im Ablauf am werkeln und drücke gewohnheitsmäßig auf Speichern. Patsch! Das war's. Die Vorgängerversion zwar nur einen Tag alt, aber schon hoffnungslos veraltet. Mein Vorschlag zum Seelenheil: da man das Speichern gewohnheitsmäßig viel zu schnell 'abklatscht', würde ich bitten, dass von der derzeitigen Anlage ein .bak erstellt wird. Ein altes .bak weglöschen, die zu überschreibende in .bak nennen und dann neu speichern. Also nur ein .bak im Katalog. Das hätte mir heute nacht einige Haare gerettet. Gruß Andy
-
ich habe auch noch was gefunden. Nach dem Ändern der Bezeichnung einer Objektvariablen hat er überall erstmal nur den alten Namen drin, mit dem er auch arbeitet (hier 'Auftrag' des Objekts 'Auftragshandler'. Der neue Name ist 'Auftraggeber'.) Ist das erste eine Zuweisung, legt er den natürlich neu an und keiner merkt den Fehler. Liest er zuerst, sind wir wohl wieder am Nil. Im Bild habe ich die ersten beiden Zugriffe korrigiert, dann haben wir die, wie's unkorrigiert ist. Schaut man sich solch eine Zuweisung mal an, hat er dort den neuen Namen in der Auswahlliste (!), den alten nicht mehr. Jetzt muß man irgendwie Glück haben, an die richtige Stelle zu klicken. Dann übernimmt er es auch. Ansonsten bleibt er da recht hartnäckig. Schaltet man auf Lua, sieht man, dass er wirklich den alten Namen verwendet. Noch ein Wunsch: Wie bereits erwähnt, arbeite ich öfters mit einer Objektvariable Status, die dann einen Texteintrag bekommt. Es wäre schön, wenn wir im Suchfenster auch eine Klasse 'Strings' hätten und nach derlei Texten suchen können. Texte im Code lassen sich derzeit nicht finden. Gruß Andy p.s.: die sichere Klicksequenz um den Namen doch anzupassen: erst einen anderen Namen auswählen, abklatschen, und dann nachkorrigieren.
-
das einzige Risiko dabei ist, wenn Du V4 noch nicht lange nutzt, dass es Dir insgesamt dann doch nicht so viel Spaß gemacht hätte. Aber Du hast da schon einen Gegenwert!
-
@EASY, kopiert aus der Lua 5.3. docu 8.2 – Changes in the Libraries The bit32 library has been deprecated. It is easy to require a compatible external library or, better yet, to replace its functions with appropriate bitwise operations. (Keep in mind that bit32 operates on 32-bit integers, while the bitwise operators in Lua 5.3 operate on Lua integers, which by default have 64 bits.) The Table library now respects metamethods for setting and getting elements. The ipairs iterator now respects metamethods and its __ipairs metamethod has been deprecated. Option names in io.read do not have a starting '*' anymore. For compatibility, Lua will continue to accept (and ignore) this character. The following functions were deprecated in the mathematical library: atan2, cosh, sinh, tanh, pow, frexp, and ldexp. You can replace math.pow(x,y) with x^y; you can replace math.atan2 with math.atan, which now accepts one or two arguments; you can replace math.ldexp(x,exp) with x * 2.0^exp. For the other operations, you can either use an external library or implement them in Lua. The searcher for C loaders used by require changed the way it handles versioned names. Now, the version should come after the module name (as is usual in most other tools). For compatibility, that searcher still tries the old format if it cannot find an open function according to the new style. (Lua 5.2 already worked that way, but it did not document the change.) The call collectgarbage("count") now returns only one result. (You can compute that second result from the fractional part of the first result.)
-
Mal sehen, ob einigen unsichtbaren Gleisen demnächst das Stündlein schlagen wird, wenn man den 'fahrenden' Objekten direkt in die Koordinaten reinrechnet. Da dürfte für die Surfer sogar ein Salto drin sein. Man könnte sogar mit dem Flexmobil wild in der Landschaft rumfahren, mit der Lenkung fest im Bild, denn Zugriff auf die Positionen der aktiven Kamera gibt's auch, wie ich gesehen habe. Jetzt bräuchte man nur noch die Höhenangabe, wo man sich befindet. Ich werde da mal weiter an Neo arbeiten Gruß Andy
-
In der Tat habe ich es so gelöst. Meine Fahrpläne können einiges, brauchen dafür aber einen Status, der in einer OV hinterlegt ist. Diese können sowohl von außen, als auch intern geändert werden und der Fahrplan muß darauf reagieren. Da ist eine Zugankunft, ein Auftrag der noch nicht abgewickelt werden kann etc. Nach einer Statusänderung muß ich jetzt aber jedesmal den als Schalter ausgelegten Fahrplan noch einmal 'Umschalten' um überhaupt ein Ereignis auszulösen. Damit geht das schon. 'Sauberer' wäre es, wenn man auf ein Ereignis Variable FAHRPLAN.Status gesetzt reagieren könnte. Da spart man das Schalten und könnte auch eine Beschriftung oder so als Basisobjekt nehmen. Also, da läge der Vorteil. Aber es müssen dann ja leider zwei Inputs beim Setzen des Ereignisses geschehen. Ein wenig Aufwand wäre das wohl schon. Und Danke für den anderen Tipp. @EASY Sehr sehr schön! Ich hoffe, mit den neuen Möglichkeiten hast Du wieder richtig Lust, Dich auszutoben. Da ist nicht nur Euler angesagt, sondern eine ganze MBS-Physics-Engine. Mein Lua-Feedback bislang: null problemo. Gruß Andy
-
zum Dritten noch ein Feature-Wunsch: Ich habe eine Klasse von Objekten, denen ich ein Schlagwort zugeordnet habe. Das Ansprechen einer spezifischen Objektvariablen eines bestimmten Objektes hatten wir z.B. gerade im Post vorher. Was ich mir nun aber noch wünschen würde, wäre eine Verallgemeinerung des Objektes über Schlagwort. Das komplette Ereignis würde also lauten: Objektvariable xxx mit Schlagwort yyy wird gesetzt. Ja, das wären letztlich zwei Auslöser, was die Sache bestimmt nicht einfach macht. Oder fällt genau das dann unter die benutzerdefinierten Ereignisse? Dann wäre ich auf einem anderen Weg genau da angekommen, wo fzonk bereits ist - was mich beruhigen würde. Gruß Andy
-
Im manuellen Modus läuft mein Pfadsucher schon wieder wunderbar und richtig schnell! Überhaupt kein Vergleich zu V4. Habe ihn allerdings direkt auf Lua umgesetzt. Trotzdem werde ich das Kapitel mit den benutzerdefinierten Aktionen noch nachlernen. Die interessieren mich schon. Und wie! Man kann da auch noch mit einem Texteditor nachoptimieren: layout:getEntityByName("Mein Objekt") kann immer zu $("Mein Objekt") optimiert werden. Geht aber wirklich nur, wenn da nicht mehr als der Objektname drinsteht. Allerdings gibt's kein Zurück mehr. Einmal Lua, immer Lua. Alles andere wäre auch zuviel verlangt. Gruß Andy
-
Dann noch ein merkwürdiges Problem: Ich habe ein Objekt "BÜ B" (Bahnübergang). Das hat die Objektvariable "cnt". Jetzt habe ich ein Ereignis 'beliebige Objektvariable' wird gesetzt. Das möchte ich auf die Variable spezifizieren und gehe in der Auswahlliste in die Suche, gebe bei Namen schon mal BÜ ein (er zeigt in der Auswahl die E 10 "Bügelfalte" an), aber nicht einen meiner BÜ, wovon es mehrere gibt! Scrolle ich hingegen durch die Liste, sind sie da. Gruß Andy p.s. offensichtlich findet er nur Einträge mit einem kleinen ü, aber keinen mit einem großen.
-
@Neo Ja, das ist okay so. Ich habe noch eine Frage zum Wegputzen alter von V4 kommender nicht mehr benötigter Dinge: Ich habe da einen ganzen Set von Schaltern, die eine OV 'Typ' besitzen, die nicht mehr gebraucht wird, da ich die auf Schlagwort umgestellt habe. Gibt es dafür einen Lua-Löschbefehl, den ich in einem einmalig zu durchlaufenden Extraskript anwenden kann (wie bei der Schlagwort-Zuweisung, das klappte prima)? Wohlgemerkt: Ich möchte diese OV nicht auf "" setzen, was ich hinkriegen würde, sondern ganz löschen. Manuell wäre mir das zuviel, das sind so 137 Stück. Meine vorhandene Objektliste wäre mit dem entsprechenden Kommando ruckzuck angepaßt. Dann wäre das ein Klacks. Gruß Andy
-
Vidioaufnahme mit V5 funktioniert nicht, Rechner hängt sich auf.
Andy antwortete auf Hermanns Thema in Technischer Support
wenn, dann eher alle Ebenen. Es dürfte dem Rechner egal sein, ob's kleine oder große Objekte sind. Das könnte man mal testen. Obwohl ich's vom Bauchgefühl her nicht glaube, dass es hilft. Es dürfte die Art der Initialisierung der Hardware bereits beim Programmstart sein. Und ich weiß, dass es noch mindestens ein MBS-Mitglied gibt, dass MBS im Garten betreibt. Ausbaufähig. -
Vidioaufnahme mit V5 funktioniert nicht, Rechner hängt sich auf.
Andy antwortete auf Hermanns Thema in Technischer Support
wieviel ist das in Hamsterrädern? -
Ich weiß doch selbst nicht, wie ich zu dem Ausdruck gekommen bin. Als Deine Rückfrage kam, mußte ich selbst erst einmal nachdenken, wie ich es beschreiben soll. 'Ähem' wäre dem am Nächsten gekommen, *räusper* vielleicht auch noch durchgegangen. Dann habe ich es in die Suchmaschine eingegeben und dann hättest Du mal meinen Blick sehen sollen. Dass es englisch ist, damit habe ich nicht gerechnet! Muß ich mir anfangs des Jahrtausends eingefangen haben, als ich noch auf englisch gechattet habe. Zumindest war ich mir aus o.g. Gründen sicher, dass Dir der Link reicht. Mit den schlechten Erfahrungen hast Du recht. D.h. besser so posten: - Präzise, aber ohne Fachbegriffe, ohne Wortspielereien und Hintersinn. - Total Thread-bezogen und sicherlich nicht in den Threads einzelner Modellbauer. - erlaubt sind alle Farben, Schriftgrößen und viele . - Apostrophe, Minuszeichen und Klammern vermeiden. Wenn es geht auch Anglizism oder Kunstworte wie 'gegoogelt'. Gut - dann macht's mir aber keinen Spaß mehr. Und deswegen bin ich eigentlich hier. Dann wird's Zeit umzuziehen.
-
Ganz schön schweres Geschoss. Schon interessant, wie einen andere sehen. Einen Konter erspare ich mir da, sonst wird's hier grausam. Nein, ich erwarte vom Leser, dass er die Augen aufmacht. Das hat auch was mit 'inter legere' zu tun. Das wiederum ist Latein und bedeutet so viel, wie 'zwischen den Zeilen lesen'. Worauf der Ausdruck 'Intelligenz' basiert. Ich unterstelle meinem Leser also eine gewisse Intelligenz. Wenn die nicht da ist, geht's natürlich schief. Aber da Du gerade da bist. Zum Thema Breakpoint. Da Lua eine Skriptsprache ist, könnte ich mir vorstellen, dass es da sogar eine Anweisung gibt, mit der man die Programmausführung unterbrechen, und vielleicht sogar in einen Konsolemodus schalten kann, über den man sogar den Zustand von Variablen einsehen kann. Gibt es? Gruß Andy
-
https://en.wiktionary.org/wiki/erm Ja, das war dann eine Erkenntnis - und eine Information für andere, wie dann diese Meldung zu interpretieren ist. Es war keine Frage mehr. Neueste Erkenntnisse: Ich wollte mir ein 'Breakpoint'-Skript schreiben. Ein Knöpfchen, das bei Betätigung ein Skript ausführt, das einen direkten Stop der Ereignisprotokollierung auslöst, um festzustellen, ob man nun an der Stelle im Programm vorbeikommt, oder nicht. x = 0 / 0 y = 3 / 0 print(x, y) z = "x" + 1 Also, die Null-Divisionen sind für Lua kein Grund für eine Fehlermeldung! Der Fehler bei z dann schon. Interessant, dass x und y unterschiedliche Ergebnisse liefern. Meines Wissens nach ist x eigentlich 1. Aber das schafft noch keine Programmiersprache, die ich kenne. Wie man außerdem sieht, geht der print-Befehl in die Ereignisprotokollierung mit ein und ist daher sehr nützlich.