Meine Skriptprojekte

  • Hallo zusammen,


    ich habe komischerweise ein Interesse daran, mich drei Monate an eine Textdatei zu setzen und da einen LUA-Code reinzuzimmern. ^^
    Ich möchte in diesem Thread gerne meine Skriptprojekte sammeln und somit euch zur Verfügung stellen. Das soll all denen zugute kommen, die sich selbst mal mit LUA beschäftigen wollen oder gar selbst ein Fahrzeug modifizieren möchten. Erst einmal sei gesagt, dass es echt viel Arbeit ist so ein Skript auf die Beine zu stellen. Grundsätzliche Funktionen lassen sich schnell tippen, aber sobald man mit den Eigenheiten des TS' konfrontiert wird, wird es manchmal schwierig. Außerhalb des TS' gesehen ist natürlich auch das Programmieren einer LZB eine Herkulesaufgabe. Die PZB wiederum ist nur reine Tipparbeit.


    1. Projekt: Baureihe 425


    Über eine Sache müsste ich noch ein Wort verlieren: Es handelt sich hier ja um eine Modifikation. Allerdings gebe ich hier nicht die direkte Aufforderung mit, irgendwas im Railworks-Ordner zu modifizieren. Ich gebe euch lediglich eine "Textdatei", die einen Code beinhaltet und eine PDF, die beschreibt, wie man diese Textdateien "produktiv" einsetzen könnte. Alternativ könnte man natürlich auch einfach die drei Dateien nehmen und sich nur den LUA-Code anschauen oder gewisse Codeabschnitte einfach für andere Dinge verwenden. Es steht hier zwar TSG BR425 dran, ja. Damit zeige ich aber nur, worauf die Dateien zugeschnitten sind.


    Ich freue mich auf eure Rückmeldungen!

    5 Mal editiert, zuletzt von questo () aus folgendem Grund: Version V1.4 hinzugefügt

  • Ich werde einigen Code mal in einer meiner Maschinen testen und entsprechend Rückmeldung geben.


    Wärst du auch bereit falls ich auf Schwierigkeiten stoße mir etwas Unterstützung zu geben?


    Es handelt sich aktuell um 2 Maschinen der DR Zeit.


    Gruß Oli


    PS: Respekt an die Leistung die du hier erbracht hast!

  • Hallo,


    koennte man auf diese Weise ein Skript zum manuellen Tuerschliessen programmieren? Das "Problem ist bei vielen Fahrzeugen, dass man nach Tueroeffnung mit Taste T mindestens 35 sek warten muss, bis der TS die Tueren schliesst, bzw. zum Schliessen freigibt (zB X-Wagen). Bei S-Bahnstrecken ist es zZ fast unmoeglich, mit der BR420 oder den X-Wagen die Fahrplanzeiten einzuhalten, da jeder Bahnhofsaufenthalt mindestens 50-60 sek anstatt 20-30 sek. in Anspruch nimmt.

  • Ich werde einigen Code mal in einer meiner Maschinen testen und entsprechend Rückmeldung geben.

    Klar, kein Problem, dafür habe ich das Skript geschrieben. Unterstützen kann ich gerne. ;) Allerdings bitte ich um Berücksichtigung des sonstigen Lebens außerhalb des PCs. Aktuell habe ich privat einige Schwierigkeiten, um die ich mich zuerst kümmern sollte. :/

    PS: Respekt an die Leistung die du hier erbracht hast!

    Dankesehr ^^

    koennte man auf diese Weise ein Skript zum manuellen Tuerschliessen programmieren?

    Zb bei dem ChrisTrains VT650 würde ich mir des wünschen, die Türen manuell schließen zu können.

    Ich gehe mal auf beide Antworten gleichzeitig ein. Also es ist natürlich möglich, für ein bereits vorhandenes Fahrzeug ein neues Skript zu schreiben und den gewünschten Türschließvorgang dort zu berücksichtigen (kompliziert ist das nicht mal, siehe mein Skript). Allerdings muss man dann natürlich auch den ganzen Rest neu schreiben. Gerade wenn es sich auch noch um ein Dieselfahrzeug handelt. So lange man sich nicht vornimmt, an die vR218 ran zu gehen, ist das Niveau wohl eher einfacher (ohne Gewähr).



    Was ich gestern auch herausgefunden habe ist, dass man auch ein bereits vorhandenes, verschlüsseltes Skript manipulieren kann. Das muss nicht mal zwingend illegal sein :D Man erstellt sich selbst einfach eine neue OUT-Datei und schreibt da dann das rein:


    C
    require "Assets/TSG/BR425/Scripts425/luac.out" --Also Verweis zur verschlossenen LUA-Datei

    Nun benennt man die selbst erstellte OUT-Datei (auf Endung achten) so um, dass sie den Namen der verschlüsselten OUT-Datei hat (also einfach den Namen des Hauptskripts geben). Das Hauptskript solltet ihr irgendwie anders benennen und dann eben in der require-Zeile darauf verweisen. Wenn ihr jetzt den TS startet, wird das Fahrzeug genau so geladen wie wenn man ganz normal das Hauptskript laden würde.
    Allerdings weiß ich nicht, inwieweit das bei vR Fahrzeugen funktionieren wird, denn ich glaube, dass Maik Goltz da einen Schutz reingebaut hat. Vielleicht reicht es auch nur aus, dass er das Skript irgendwie mit "Privat" deklariert hat und schon kann man da von extern gar nicht mehr drauf zugreifen. Auf der anderen Seite würde ich mich dann aber auch fragen, wie es dann der Simulator schaffen soll, auf das Skript zuzugreifen ^^

  • Danke dir für deine Erklärung ;) . Leider kenne ich mich mit Scripten zu wenig aus um da etwas neu zu schreiben. Ich bin da eher der Streckenbauer :D


    Wer weiß, vielleicht tut sich das wer irgendwann vielleicht mal an, den 650iger mit manueller Türsteuerung auszustatten. Würde ihm sogar mit eine Entschädigung entgegen kommen, für den Aufwand :whistling:

  • Klar, kein Problem, dafür habe ich das Skript geschrieben. Unterstützen kann ich gerne. ;) Allerdings bitte ich um Berücksichtigung des sonstigen Lebens außerhalb des PCs. Aktuell habe ich privat einige Schwierigkeiten, um die ich mich zuerst kümmern sollte. :/

    Dankesehr ^^

    Das geht immer vor, daher ziehen sich auch meine Projekte aktuell sehr in die Länge.


    Ich versuche es auch erst einmal komplett alleine, denn nur so lerne ich weiter dazu.


    Die Daumen drücke ich dir auf jeden Fall damit deine Schwierigkeiten schnell gelöst werden können.


    Gruß Oli

  • Was ich gestern auch herausgefunden habe ist, dass man auch ein bereits vorhandenes, verschlüsseltes Skript manipulieren kann. Das muss nicht mal zwingend illegal sein Man erstellt sich selbst einfach eine neue OUT-Datei und schreibt da dann das rein:



    require "Assets/TSG/BR425/Scripts425/luac.out" --Also Verweis zur verschlossenen LUA-Datei Nun benennt man die selbst erstellte OUT-Datei (auf Endung achten) so um, dass sie den Namen der verschlüsselten OUT-Datei hat (also einfach den Namen des Hauptskripts geben). Das Hauptskript solltet ihr irgendwie anders benennen und dann eben in der require-Zeile darauf verweisen. Wenn ihr jetzt den TS startet, wird das Fahrzeug genau so geladen wie wenn man ganz normal das Hauptskript laden würde.

    Das wurde auch beim 187er Skriptupdate vom RWA Forum gemacht.
    Ist aber etwas fiddelig, so zu arbeiten.

  • Was ich gestern auch herausgefunden habe ist, dass man auch ein bereits vorhandenes, verschlüsseltes Skript manipulieren kann. Das muss nicht mal zwingend illegal sein Man erstellt sich selbst einfach eine neue OUT-Datei und schreibt da dann das rein:



    require "Assets/TSG/BR425/Scripts425/luac.out" --Also Verweis zur verschlossenen LUA-Datei Nun benennt man die selbst erstellte OUT-Datei (auf Endung achten) so um, dass sie den Namen der verschlüsselten OUT-Datei hat (also einfach den Namen des Hauptskripts geben). Das Hauptskript solltet ihr irgendwie anders benennen und dann eben in der require-Zeile darauf verweisen. Wenn ihr jetzt den TS startet, wird das Fahrzeug genau so geladen wie wenn man ganz normal das Hauptskript laden würde.

    Dazu ein Nachtrag. Nach langem experimentieren, bin ich endlich darauf gekommen wie man das nutzen kann.
    Es ist nämlich so, der TS kann nur eine Update Funktion handeln, deshalb stellt man fest, wenn man das oben genannte in eine Datei schreibt, und darunter mit den Funktionen Initialise und Update beginnt, dann wird man merken, dass das was man dort reingeschrieben hat, ausgeführt wird, aber das Original Skript nicht mehr. Nach langem Experimentieren bin ich auf folgendes gekommen:


    Ich hoffe manche können was damit anfangen.



    Gruß :)

  • Letztlich simple OOP Mechanik, die LUA zwar grundsätzlich nicht kann, die man aber mit dieser Methodik auch zum funktionieren bringen kann. Hier ist halt die originale Datei die Parent-Class und man leitet davon ab (hier mit requre, was sehr unsauber ist) und überschreibt die Funktionen inkl. der Ausführung der Funktion in der abgeleiteten Klassen (sonst würde der originale Code nicht ausgeführt werden) (old_func = func; func = () .. call old_func; do whatever additionally). So kann man sich ein System aus Klassen und deren Eigenschaften und Methoden aufbauen und damit wiederum eine Art Modularität erzeugen. Braucht man im TS aber so nicht wirklich, da es von den meisten Dinge immer nur ein Singleton gibt.