Posts by VacuumTube

Willkommen in der Transport Fever Community

Welcome to the fan community of Transport Fever and Train Fever, the economic simulators of Urban Games. The community is free for you to share and inform yourself about the game. We cultivate a friendly and objective interaction with each other and our team will be happy to answer any questions you may have.

 

Registration and use is of course free for you.

 

We wish you a lot of fun and hope for active participation.

The Team of the Transport-Fever Community

    Also der Youtuber hat auf jeden Fall Schwachsinn gelabert.


    Wie in der Realität sind manche Stationen, die mehr Gebäude umfassen, stärker besucht. Oft macht dann eben eine kleine Linie (zB zwischen Zentrum und Bahnhof) Sinn oder mehrere Linien, die sich die Hauptstrecke teilen.


    8 Linien pro Stadt ist auf jeden Fall zu viel. Ich würde Kreislinien eher selten einsetzen, sondern lange Durchgangslinien (oder Hundeknochenlinien).


    Was meinst du mit "nur eine Richtung augelastet"? Angenommen, die Linie führt zum Bahnhof wo die meisten hinwollen oder herkommen: Ist ja klar, dass sie in der einer Richtung warten. Auf der anderen Seite steigen sie ja dann aus. Wenn mans genauer sehen will, kann auf die Station und Diagramme gehen.

    Ich setze auch ungern Personenlinien mit nur 2 Stops ein, einfach weil es unschön ist. Kreisverkehr passt finde ich aber eher zu Bus/Tramlinien. In der Regel würde ich daher auf die "klassische Linie" setzen, also einfach hin und zurück mit vielen Zwischenhalten. Hat bei mir immer zu guten Ergebnissen geführt, möglich jedoch, dass der Pendelverkehr profitabler wäre.


    Zum Personenmodell und Profit wären folgende Fragen interessant:

    • Ist der Umsatz von der Fahrtdauer abhängig? Oder nur von der Personeneigenschaft schnell/billig? (Bei Güterverkehr definitiv nicht, was auch sinn macht)
    • Der Umsatz hängt wahrscheinlich proportional von der Luftliniendistanz ab. Wie ist das jedoch bei Umstiegen? Bezahlen die Passagiere für jeden Zwischenhalt entsprechend der Teildistanz? Das wäre dann je nach Lage der Stationen deutlich mehr und würde das Verhalten erklären.
    • Daraus ergibt sich dass man bei Linien möglichst darauf achten sollte, dass die Längen nah bei der Luftdistanz liegen (möglichst gerade verlaufen). So wird man gut bezahlt. Das ist denk ich das Problem beim Kreisverkehr. Passagiere sind länger unterwegs (nicht gerader Gesamtstrecke), klauen anderen die Plätze und man wird weniger gut bezahlt.
    • Man sollte bedenken, dass man Passagiere ohne große Konsequenzen lange warten lassen kann (keine Entschädigungszahlungen bei Verspätung oder Ausfällen). Scheinbar wird das bei ihrer Präferenz nicht berücksichtigt. Etwas unrealistisch, aber somit zieht man halt Passagieren, die oft Umsteigen viel Geld aus der Tasche obwohl sie eine lange Fahrtdauer haben.

    Thats in average 1,74 persons/building. Are you using any mods? Or are the buildings in average smaller than in TPF1? I remember many skyscrapers in most cities with capacites up to 500 per building on my TPF1 map.

    I would like to reiterate that you found how to get only the production facilities to be listed, by using type = "SIM_BUILDING" instead of the broader type = "CONSTRUCTION"

    Why don't you just take the code you posted earlier and replace CONSTRUCTION by SIM_BUILDING?

    Code
    1. local CId = (game.interface.getEntities({ radius = 1e100 }, { type = "SIM_BUILDING" }))
    2. for j = 1, #CId do
    3. local id = CId[j]
    4. print(commonapi.dmp (game.interface.getEntity (id)))
    5. end


    I just simplified that code a bit. Doesn't it work? I think it should but didn't test it. Is there an error message?

    Code
    1. local IDs = game.interface.getEntities({ radius = 1e100 }, { type = "SIM_BUILDING" })
    2. for _,id in pairs(IDs) do
    3.     commonapi.dmp (game.interface.getEntity(id))
    4. end

    You are seperating commands with ,

    commonapi.dmp(), commonapi.dmp(), ...

    this doesnt work


    the following should work:

    Code
    1. for j = 1, #TownsId do
    2.     local id = TownsId[j]
    3.     commonapi.dmp(game.interface.getEntity(id))
    4.     commonapi.dmp(game.interface.getTownCapacities(id))
    5.     commonapi.dmp(game.interface.getTownCargoSupplyAndLimit(id))
    6. end


    did you try out getCargoType (id) yet?

    Do you know what "includeData=true" does exactly?

    It just includes the entity data (you get with getEntity) rather than returning only ids.


    If you use a for each loop, you don't need a counter variable j and it's the same like:

    Code
    1. local IDs = game.interface.getEntities({ radius = 1e100 }, { type = "CONSTRUCTION" })
    2. for _,id in pairs(IDs) do -- _ for unneeded variable
    3. commonapi.dmp (game.interface.getEntity (id))
    4. end

    for i,j in pairs(table) iterates over a table with i as index (1,2,3...) and j=table[i]


    Another advice: if you print commonapi.dmp () is always nil. dmp prints automatically to console.


    What industries on your test map "didn't produce anything and didn't have any entries of Cargotype in their simbuilding table."?
    Would you have an stdout or even a savegame?

    I tested on a very small map with 3 industries only. That industry was a building materials factory and hasn't been deliverd, so it didn't produce. There are no entries in the list, so it's not possible to determine input/output cargo type.


    Hallo liebe Community,


    ich suche zum einen Beta-Tester für meine Mod, zum anderen habe ich mir gedacht, es wäre spannend eine Art Wettbewerb zur Auswahl der Screenshots zu haben, die auf dem Titelbild der Mod veröffentlicht werden.


    Es geht um eine Mod, die allen Fahrzeugen angepasste Kamerapositionen hinzufügt. Die Advanced Camera Views gab es schon für TPF1: Advanced Camera Views


    Man kann sich nun fragen, warum brauchen wir das für TPF2, wenn es doch jetzt die freie First-Person-Kamera gibt?

    Naja, die ist in der Bewegung noch etwas eingeschränkt, das Umschauen geht zwar schnell, aber die translatorische Bewegung ist sehr langsam. Außerdem wäre es praktisch, durch einfaches Umschalten direkt zu einer passenden Ansicht zu gelangen. Die Mod wurde daher entsprechend angepasst und erweitert:

    • Ansichten jeweils optimiert für Züge, Straßenbahnen, Busse, Lastwagen, Autos, Schiffe, Flugzeuge, Personen und Tiere
    • Die Ansichten sind jetzt model-abhängig (passen sich der Größe des Fahrzeugs an)
    • Enthält Ansichten von Passagieren und Fahrzeugpersonal


    Ich habe bereits ausführlich getestet, bin aber natürlich dankbar für Feedback/Vorschläge. Vor allem geht es mir aber um die Screenshots. Da ich selber noch nicht viel zum Spielen kam, dachte ich mir wäre es einfacher, die Bilder anderen zu überlassen. Das Titelbild soll wieder aus 4 aussagekräftigen Einzelbildern bestehen, weitere Screenshots werde ich eventuell in der Mod als Bilder anhängen. Bei den Screenshots solltet ihr auf Folgendes achten:

    • möglichst gut ausgefülltes Bild
    • Positionen, in denen der Sinn der Mod deutlich wird
    • Auflösung mindestens 1920x1080
    • möglichst hohe Grafikeinstellungen zum Zeitpunkt des Screenshot verwenden
    • möglichst in den Positionen bleiben, leichtes "Nachjustieren" ist erlaubt
    • Bilder hier reinposten oder mir als Nachricht schicken

    Die Beta Version ist hier hochgeladen: Advanced Camera Views

    Allerdings noch geheim, muss euch einzeln hinzufügen. Passwort ist ACV.

    Der Einfachheit halber auch nochmal als Dateianhang.


    Viel Spaß und ich freu mich auf schöne Bilder:)

    Hi Claude, I am currently figuring out how the entity system is working. I also replied to the other post about getting information about input/output of industries. However, it's different because that was about editing the construction via loadConstruction where you have information about the construction file. The entities work different and have other variables.


    So, I get all entities of a specific type with

    Code
    1.  local constructions = game.interface.getEntities( {radius = 999999}, {type = "CONSTRUCTION", includeData=true} )

    It includes many entries, all constructions of the current game: town buildings, industries, assets.


    Example:

    Now what you could do, is filtering the entities via

    Code
    1. entity.fileName == "industry/*"

    But that entry does not contain information about the industry itself, I think it contents just information about the model. So I became aware of simBuildings = { 16513 }:

    This might be more interesting for you because it contains information about the production. type = "SIM_BUILDING" seems to be the industries, although I wouldn't have guessed that by the name.

    There is still an issue, I had industries on my test map that didn't produce anything and didn't have any entries of Cargotype in their simbuilding table.


    I don't know a better solution yet. Maybe there are possibilities with game.interface.getIndustryProduction but my tries with that resulted in a crash.

    The problem is, that the production rule is not included in the construction itself, only in the updateFn.


    For example the Quarry (construction file in industry/quarry.con) sets

    Code
    1. rule = { input = { { } }, output = { STONE = 1 }, capacity = 400 }

    and passes this to industryutil.addIndustryData, which adds a generic updateFn that writes these params to the result:

    Code
    1. constr.updateFn = function(params)
    2. ...
    3. result.rule = {
    4. input = inputRule,
    5. output = ...,
    6. capacity = ...
    7. }
    8. ...


    In WolfZ script he replaces updateFn with another function and in line 54 he calls the original:

    Code
    1. local result = originalUpdateFn(params)

    You could now investigate that result.rule and check for input and outputs, to determine the type of industry.

    Also die eigentliche Frage ist ja, warum die Städte nicht wachsen, obwohl sie wollen. Denn es sind ja alle Bedingungen erfüllt und unten steht ja, um wie viel die Städte wachsen wollen.


    Daher denke ich, dass das Problem eher beim Bauen der KI liegt. Sind in dem Spiel Mods aktiviert? Irgendwelche, die was an den Straßen oder so ändern? Ansonsten einfach mal die Städte mit Straßen erweitern und schauen ob da gebaut wird.

    Bei mir wollten die 200 Arbeiter auch nicht auftauchen. Lag vor allem an dem chaotischen Verkehr und meine Busse standen im Stau. Hat dann einfach etwas länger gedauert.


    Dummerweise war ich danach im Minus, weil keiner meine Züge benutzen wollte. Den Company Score hab ich dann trotzdem erreicht, indem ich alles was ich hatte verkauft habe und dann Flughäfen/Flugzeuge und Schiffe gekauft habe. Die Punkte sind zwischendrin nicht nachvollziehbar hin- und hergesprungen, aber am Ende hats geklappt. Gibt auch eine Liste im Lexikon, wie die Punkte berechnet werden.

    Ok, nice to know.


    However, the problem with my mod is, that I'm calling that function in addModifier in runFn and in this mod thread game==false, so game.interface is not available.

    Maybe I need to combine that with the new GameScript, but dont know how yet.

    this worked in TPF1.

    I dont know how to get it working in TPF2.


    Die Werte der Fahrzeuge sind gar nicht mal so unrealistisch. Das Problem ist einfach, dass man viel größere Karten bräuchte, um ein realistisches Szenario aufzubauen, wo Schnellzüge und Flugzeuge wirklich Sinn machen würden (was sind 27 km für ein Flugzeug?). Aber das macht die Performance bisher nicht mit.


    Die Zugkraft ist eher unwichtig, die spielt nur beim Anfahren eine Rolle. Tatsächlich sind manche Fahrzeuge beim Anfahren unrealistisch schnell, da die Beschleunigung bisher nicht begrenzt wird.


    Eine Mod sollte also am besten das Gewicht verkleinern (bei Loks und Wagen) oder die Leistung erhöhen und den Preis wegen der automatischen Preisberechnung anpassen.

    I don't think it's possible what you are trying to achieve.


    The parameter settings in runFn seems to contain only the map generation options in custom. They are also printed in the stdout:


    config dict:
    climate: temperate
    vehicles: europe
    nameList: europe
    environment: temperate


    I think it's meant for mods to react only in a specific configuration (i.e. only be active for american vehicles) and the parameters are read-only.


    Would be nice, to access more of the user settings with that. How doug mentioned, many configuration settings can be accessed and modified with game.config. ...


    However, some mods add a settings.lua file to handle settings for configuring the mod itself. (https://www.transportfever.net…ry/217-Settings-for-Mods/)
    Sadly, there is no parameter window in the game mod list yet.