Beiträge von BR146

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


    Lieber EAT1963, dass erkläre ich dir gerne:


    package.path ist eine von der LUA-Umgebung vordefinierte Variable. Sie beinhaltet die Suchparameter für Scripte. Durch das anfügen von '?.lang sucht jetzt LUA auch nach *.lang-Dateien.

    Zum Dateien finden:

    Code
    local ok, translation = pcall(require, langFileName():gsub("/", "."))

    Hier "öffne" ich die Datei. Um genau zu sein binde ich sie per Require-Befehl ein. Das pcall() unterdrückt Fehlermeldungen falls keine Datei existiert. Der Befehl require gibt mir als Rückgabewerte einmal einen Statuscode und einmal (hier in translation abgespeichert) den Wert, der per return aus der zu "öffnenden" Datei kommt. Das sollte auch der Aufbau der Lang-Dateien erklären .

    Zur Pfadermittlung:

    langFileName() macht das "Wunder". Es gibt mir den Pfad folgendermaßen aus: res/models/model/railroad/BR146/TEST/test

    local str = debug.getinfo(3, "S").source:sub(2) ermittelt mir dabei den relativen Pfad vom "res"-Verzeichnis aus zur aufrufenden *.mdl-Datei. Hier etwas zum lesen zu den Parametern: http://www.gammon.com.au/scripts/doc.php?lua=debug.getinfo
    Danach entferne ich nur noch die Dateiendung.


    gsub("/", ".") ersetzt mir alle "/" durch ".", denn so muss ich das an require übergeben (http://www.lua.org/manual/5.2/manual.html#pdf-require).


    Was passiert an einem Beispiel:
    debug.getinfo(3, "S").source -> @res/models/model/railroad/BR146/TEST/Crocodile_test.mdl
    :sub(2) -> res/models/model/railroad/BR146/TEST/Crocodile_test.mdl
    Rest -> res/models/model/railroad/BR146/TEST/Crocodile_test
    gsub() -> res.models.model.railroad.BR146.TEST.Crocodile_test


    [Anm.: langFilePath beruht auf der selben Methode, es wird nur noch hinten mehr weggeschnitten]

    Spezielle Zeichen:

    Naja, ich habe alles mögliche versucht um Ä,Ö,Ü usw. ins Spiel zu bekommen. LUA scheint alle eingelesenen Daten in einen 8-bit-Datenstream zu verwandeln. In UTF-8 bestehen Umlaute aus zwei 8-bit Zeichen. Im Spiel selber werden diese dann aber falsch interpretiert, wodurch komische Zeichen angezeigt werden. Wandle ich sie um, funktioniert es plötzlich. Es ist mehr oder weniger ein "Work-Around"....


    Wenn noch fragen sind, immer gerne stellen :D .

    [Blockierte Grafik: http://ftp.train-fever.net/flaggen/de.png] Es wird ab V2.0 auch nach einer Sprachdatei namens "_TRANSLATION.lang" im Ordner der *.mdl-Datei gesucht und dann ggf. daraus die Übersetzung entnommen. Es kann nur eine solche Datei pro Ordner geben! Daher vorsicht bei gemeinsam genutzten Ordnern!


    Es wird empfohlen, für jede einzelne *.mdl-Datei eine eigene Sprachdatei zu verwenden. Der Aufwand ist praktisch gleich und verhindert Überschreibung durch andere Mod-Übersetzungen (falls mehrere Mods im gleichen Ordner sind)! Daher werde ich dieses Feature nicht mit in die Anleitung mit auf nehmen.
    [line][/line][Blockierte Grafik: http://ftp.train-fever.net/flaggen/gb.png] Since V2.0, TanslatorScript searchs a file named "_TRANSLATION.lang" in the folder the *.mdl is located and uses the translation defined there. It can only exist one such file! Beware in shared folders!

    It is recommended to use a single language file for each *.mdl-file!
    The effort is practically the same and prevents overwriting by other mod translations (if several mods are in the same folder)! Therefore, I will not include this feature into the manual.

    Das ganze macht auch irgendwie Sinn. Der "Zufallsgenerator" ist ja keiner. Sonst könnte man bei gleichem Seed auch nicht die gleiche Karte erstellen (was ja der Sinn vom Seed ist)...


    Es wird aus dem Seed durch entsprechende Algorithmen eine Zahl (Index) für den Stadtnamen ermittelt und dann in der Liste geschaut, welcher das ist. Die Liste ist auch nur ein großes Array. Und wenn man da zwei Einträge vertauscht, dann wird es auch verdreht rausgespuckt...


    Daraus lässt sich schlussfolgern, dass sich TrainFever -analog zu den Brücken- nur die Position in der Liste und nicht den dort gespeicherten Wert verwendet.

    Wo liest du denn das raus?

    Jede einzelne Datei braucht (bis jetzt) eine Sprachdatei. Ich kann aber den Script so umschreiben, dass wenn die passende Datei nicht gefunden wird, eine "Standard"-Sprachdatei im Ordner durchsucht wird...

    Soweit ich weiß ist das Format der .mo-Dateien, die die Strings enthalten, noch nicht vollständig bekannt,


    Ähm, ich habe es geschafft, eine eigene .mo-Datei ins Spiel zu bringen....
    Habe versucht für einen Mod eine extra Übersetzungsdatei anzulegen - geht nicht. Aber wenn man damit eine vorhandene Datei (z.B. "TrainFever.mo") ersetzt, funktionierts - nur das Spiel ist dann auf Englisch, bis auf den Mod :D


    Die erste Antwort hier hat mir dabei geholfen: https://bbpress.org/forums/top…o-add-and-modify-mo-file/

    Man könnte das ganze per dimensionslosen Größen verwursteln (die Rechnung oben mit dimensionslosen Größen). Ich würde mal folgende Formel ins Spiel bringen wollen:


    a = Kapazität / Kapazität_max
    b = Geschwindigkeit / v_max
    c = Zugkraft / Zugkraft_max
    d = Leistung / Leistung_max
    e = Gewicht_min / Gewicht
    f = Betriebskosten_min / Betriebskosten


    Vergleichszahl η = a^p1 * b^p2 * c^p3 * d^p4 * e^p5 * f^p6


    ...wobei p1 bis p6 zu bestimmen wären. Für das "ideale" Fahrzeug (Kapazität_max, v_max, Zugkraft_max, Leistung_max, Gewicht_min, Betriebskosten_min) kommt so η = 1 raus. Für das schlechteste denkbare Fahrzeug (Kapazität = 0, v = 0, Zugkraft = 0, Leistung = 0, Gewicht → ∞, Betriebskosten → ∞) ist η = 0.


    Demnach: 0 ≤ η ≤ 1
    Dabei gilt für p1 bis p6: Je größer p1, umso stärker wird dieser Faktor gewichtet.

    [Blockierte Grafik: http://ftp.train-fever.net/flaggen/de.png] (translation below)
    Hallo alle zusammen!


    Als mich @Rjoande darauf ansprach, dass er meine Signalmods ins Italienische übersetzen will, ist mir folgendes aufgefallen:
    Um einen Mod zu übersetzen, müssen alle Texte in den Modeldateien geändert werden. Also muss man auch für jede Sprache das Model extra bereitstellen.


    Ich bin kein Fan von redundanten Daten, daher habe ich mir einen Skript geschrieben, der das ganze einfacher macht. Nur noch eine Sprachdatei muss die jeweiligen Sprachen bereit gestellt werden - und eine einzige "Grunddatei" mit dem Model. Die komplette Anleitung findet ihr dann auf der Downloadseite des Skriptes.


    Wie findet ihr die Umsetzung? Habt ihr Fragen dazu? Immer her damit. Da es um Übersetzungen geht, bitte auf Englisch wenn möglich!


    Entwicklung wurde eingestellt!
    Durch die neuen Möglichkeiten des neuen Modding-Systems (strings.lua) wurde TranslatorScript überflüssig. Ich werde in den kommenden Tagen ein Tutorial für das neue System schreiben.


    Download ->
    Anleitung für Modder ->

    [line][/line][Blockierte Grafik: http://ftp.train-fever.net/flaggen/gb.png]
    Hello everyone!


    When @Rjoande ask me for permission to translate my mods, I recognized one thing:
    To translate a mod, all texts in the model files must be changed. Because of that, a complete model file must be uploaded for each language.


    I hate redundant data, so I wrote a script to make it simpler. Only one language file (with only the translation) has to be uploaded per language. And only one single model file as base. The complete manual is written down on the download page of the script.


    How do you like it? Any questions? Please answer in english (if possible), because here everything is about translation.


    Development aborted!
    With the possibilities of the new modding system (strings.lua) TranslatorScript is unnecessary. I will write a tutorial for the new system in the coming days.


    download ->
    manual for modders ->

    So ich bin auch dabei :D . Nach langem hin und her planen komme ich jetzt auch, aber erst Samstags. Ich habe leider noch ne Prüfung am Freitag, daher schaffe ich das nicht. Ich kommen um 7:55 Uhr am Flughafen Hamburg (HAM) an. Ich denke das sollte reichen ;) - ich werde hoffentlich keine 2h brauchen bis ins Hotel...

    Klingt nach einem interessanten Betätigungsfeld. Ich bin mehr der Typ Richtung Flugmechanik/Regelungstechnik/Systemtechnik. Mal sehen was ich im Fachpraktikum (3 Monate) am Ende vom Jahr tun werde. Aber erstmal Bewerbungen schreiben...

    Ich bin Schweizer, habe aber 21 von 30 richtig (70 %). Vielleicht habe ich Schwäbische Vorfahren

    Werden wir ja dann beim Usertreffen raus finden ;) .


    Ich glaube, dass das schwäbische für uns Schweizer einfacher zu verstehen ist als für Deutsche anderer Herkunft.

    Ihr seid ja auch näher an uns dran als Berliner und co.


    Beschäftigt sich da etwa jemand mit numerischer Strömungsmechanik?

    Naja, eher mit Numerik und mit Strömungslehre ;) . Studiere Luft- und Raumfahrttechnik B.Sc. in Stuttgart. Haben heute in der Uni mit Finite-Elemente-Verfahren (Galerkin) für partielle Differentialgleichungen in 2D und 3D begonnen. Gestern haben wir die Dichte von Verkehr numerisch berechnet (Stauwelle = Verdichtungsstoß aus Strömung, von daher hast du im Prinzip recht). Was machst du denn, dass dir das auffällt?

    SORRY an alle Ruhrpott'ler! :D


    Hatte gestern allgemein Probleme mit dem Wort "roh":

    • "Roh" statt "Ruhr" (hier passiert)
    • "roh" statt "rho" (Formelzeichen für Dichte - ausgeschrieben gestern beim Programmieren benötigt)
    • "Roh" statt "Rohr" (in Strömungslehre gestern so geschrieben)

    I <3 roh - mein Motto gestern ;) .


    @MrBean712: Och, wir mögen dich auch so... (und übrigens: in deinem Beitrag drüber ist was in einem Satz doppelt...)

    Train Fever can not find the images. The images must be named as the corresponding model file. I don't know if your model files were renamed at translation. Maybe someone else can help solving it further.

    Erweckt mein Avatar den Eindruck? ^^
    Ich interessiere mich privat für Raumfahrttechnik, wobei diese Leidenschaft inzwischen von Eisenbahn überholt wurde. Hab mir nur nie die Mühe gemacht, meinen Avatar zu aktualisieren.

    Irgendwie scho - ich studier Luft und Raumfahrt ;) da assoziiert man das gleich aus sowas.


    Und ja Wikipedia kann auch trügen! Aber vieles wusste ich so schon und ich versuche immer die Quellen drunter noch zu lesen. Quasi als "Gedankenstütze": z.B. kommt Kepler wirklich aus Weil der Stadt? Und dann ja doch damals nicht verhört in der Raumfahrtvorlesung. ;)
    Trust me, I'm an engineer! :D