Script nur auf bestimmte Industrien anwenden

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


  • Hallo allerseits


    Ich habe den "More Industry Levels" von MrWolfZ von dessen GitHub-Seite runtergeladen, welchen er dort dankenswerter Weise zur freien Verfügung stellt. Nun möchte ich diesen Mod aber nur auf die weiterverarbeitenden Industrien anwenden, nicht aber auf die Ressourcen produzierenden Grundindustrien (Bauernhof, Bergwerke, Wald, Ölfeld, ...). Kann mir wer behilflich sein, wie ich dies erreiche?


    Ich denke, es könnte evtl. mit einer zusätzlichen, einfachen If-Abfrage zu schaffen sein. Allerdings habe ich noch keine nennenswerten Erfahrungen im Modding von Transport Fever 2, oder den Vorgängern.


    Leider kann ich MrWolfZ weder auf Steam (da ich TPF2 nicht über Steam, sondern GOG bezogen habe) noch auf GitHub (kein eigener Account) kontaktieren, und hoffe so auf eure Hilfe hier. Er erlaubt allerdings ausdrücklich, dass seine Mod weiter bearbeitet werden darf: "This mod is published under the MIT license, i.e. you can do whatever you want with it without needing to ask for permission."


    Vorab schonmal Danke für eure Hilfen

  • Wäre es nicht vielleicht einfacher, wenn Du Dir auf einen der beiden oder gar beiden Plattformen ein Account einrichtest und Du ihn dort direkt kontaktierst?


    Es ist zwar schön, wenn man andere Spieler auf Mods aufmerksam macht, doch ständig andere mit irgend etwas zu beauftragen, empfinde ich auch nicht schön.

    Das Wort Eigeninitiative gibt es wohl auch nicht mehr im allgemeinen Sprachgebrauch.

  • Ich weiß nicht, ob ich mich unklar ausgedrückt habe, oder ob du mein Anliegen missverstehst. Aber zur Klarstellung:


    Ich frage hier nicht danach, ob mir jemand diese Mod entsprechend abändert. Dann hätte ich unter "Modanfragen" gepostet, mein Beitrag steht hier allerdings unter "Modding Allgemein".


    Ich frage hier also danach, ob mir jemand sagen kann, wie ich die nicht-passenden Industrien selbst ausfiltern kann.


    TPF2 hat keine mir bekannte Auflistung/Erklärung des Modding, habe ich bei meiner Suche nach Antworten auch bereits mehrfach als Kritik der Modding-Community vernommen. Auch hier im Lexikon, als auch bei der Forensuche habe ich keine Antworten gefunden. Falls ich einfach zu Blind war, darf man mich gerne darauf verweisen und mit dem Zaunpfahl winken.


    Ansonsten aber bitteschön von solch rüden Antworten wie deiner absehen.

  • Du hast Dich sehr klar ausgedrückt. Du möchtest wissen, wie der Mod funktioniert, damit Du ihn entsprechend Deinen Wünschen abändern kannst.

    Weiterhin schreibst Du, dass der Modder für Fragen offen ist und bereit steht. Also frage ihn und erstelle Dir entsprechende Accounts auf den Plattformen, damit Du mit ihm in Kontakt treten kannst.


    Was ist da an meiner Aussage unverständlich? Abgesehen von der Tatsache, dass es nicht die Antwort ist, die Du Dir erhofft hast?

  • Der Mod definiert eine Sammlung (scripts.lua) benutzerdefinierter Funktionen. Innerhalb dieser Sammlung werden zwei lokale Funktionen definiert. Die eine liest die verschiedenen Stufen der Industrien aus, die andere multipliziert die ausgelesenen Stufen mit dem gewünschten Faktor. Dann gibt es noch eine weitere, wohl globale Funktion. In dieser wird ein Array der Industrietypen ausgelesen und die Werte dann entsprechend multipliziert.


    Die erste Funktion wird nicht separat aufgerufen, also wird sie wohl von Haus aus gestartet. Daraus schließe ich, dass TPF2 die Eigenschaften, bspw. aller Industrien, aus den Dateien in ein multidimensionales Array speichert.


    Ein grundlegendes Verständnis, wenn auch sicher lückenhaft, ist da. Ich gehe davon aus, wenn ich weiß, wie die Grundindustrien differenziert werden, kann ich das Script mittels einer relativ einfachen If-Weiche nach meinem Wunsch anpassen. Ein bisschen Try & Error brauchts dann vielleicht noch, aber damit kann ich.


    Bei meiner Frage handelt es sich um Grundlagenwissen des TPF2 Moddings, und nicht um irgendwelche Script-spezifischen Fragen. Ich frage mich allerdings, was du in diesem Forenbereich treibst, wenn du kein Interesse an Wissensvermittlung hast?

    Ich werde jedenfalls sicher nicht TPF2 um 40€ erneut bei Steam kaufen, nur damit ich dort eine spzielle Person fragen kann. Auch habe ich keine spezifische Verwendung für einen GitHub Account, während ich hier bereits einen Account habe. Wie gesagt, nach meinem Verständnis handelt es sich nicht um eine Script-spezifische Frage die an den Autor muss, sondern um nachgefragtes Grundlagenwissen des TPF2 Moddings.

  • 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
    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
    constr.updateFn = function(params)
    ...
    result.rule = {
                input = inputRule,
                output = ...,
                capacity = ...
    }
    ...


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

    Code
    local result = originalUpdateFn(params)

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

  • Hello Claude and VacuumTube


    Thank you very much for your answers and your efforts to help me.


    Looks like it's more complicated than I thought on my first sight. Started to mod TPF2 without scripting but in modifying the original files in a first step to get into it.


    Best regards

  • For further reference.


    Answer by MrWolfZ:

    Zitat

    > Hi. I did a quick check of the game's code and I'm afraid this is not possible, since at the time where I make the change to the number of levels it is not possible to find out whether an industry is a source or an intermediary.

    >

    > There are however other mods that may make this possible. For example the "Production X4" mod does not change the number of levels but just increases the production per level. That mod already checks if an industry is a source or intermediary and adjust the production for sources differently.

    https://github.com/MrWolfZ/tra…/1#issuecomment-589933712


    Would be worth to check how these mod works:

    https://steamcommunity.com/sha…iledetails/?id=1935745533

    Level for basic industries



    VacuumTube also suggested, in an another thread , to use getCargoType (id), and also that {type = "SIM_BUILDING" can hemp to filter out actual production industries.

  • Hi Claude


    Thanks you for keeping in touch. Looking through other scripts I've found another promising thing:

    Code
    if string.match(fileName, "oil_well")

    Looks like to be able to differ the industries this way.


    Maybe I'll take a deeper look into lua some day and will have more knowlegde, how to get these mods to work by scripts. It's great for flexibility and being update-proof.


    But for now I got my industry mod working by modifying the industry-files by hand and it looks like to work fine for now.


    Probably I will release it in a few days as experimental, but first I need to test and balance a little bit more. As I started to mod myself, I did more and more changes, some of them quite fundamental meanwhile.


    A script based solution may be possible and would be more comfortable for using, I guess ... but it's not my time for it yet. :-)

BlueBrixx