Beiträge von OpenSource

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


    Ah, jez weiß ich wieder was der Bug war... kommt gleich wieder Motivation auf *pff*


    Da kam von der Api manchmal wirklich Müll. Manchmal kam da tatsächlich ein Array das aber fälschlicherweise leer war. Manchmal kam da ein Array das auch Sinn machte welches aber paar Zeilen Code weiter wieder leer war. Und ich weiß nicht mehr was noch alles, ganz schlimm jedenfalls.
    Die "Info" hatte ich aber schon damals gelesen, und auch ausprobiert. Ergebnis war das gleiche, somit flog das wieder raus.

    Der "Workaround" mit dem pcall und erst nach ein paar Versuchen aufgeben war vielversprechend, allerdings nur solange noch nicht viel auf der Karte gebaut war. Somit flog das auch wieder raus, außerdem löst das das eigentliche Problem nicht.


    Doku..., UG macht das hald nicht gerne. Und ich glaube auch nicht, dass die das jemals gscheit machen wollen/werden. Da wundert mich nichts mehr.




    Witzigerweise kommt in dem Faden ein wenig Leben auf, jezt wo das Ding schon länger tot ist^^
    Ich würde diese Modifikation aber nicht mehr testen, bringt nicht mehr wirklich was und ich bin mir auch nicht sicher ob das noch so halbwegs funktionieren kann mit der aktuellen Version von Transport Fever 2. Spontan fällt mir da nur die Möglichkeit der "Ausweichterminals" ein. Keine Ahnung wie die Modifikation auf diese reagiert und was sich sonst noch alles an dem Game geändert hat. Mit den "Ausweichterminals" könnte man jezt aber halbwegs vernünftig Abstellgleise basteln wie es eigentlich statt den Depots geplant war.



    Zum Thema was diese Modifikation macht ("Fügt dem Spiel Fahrpläne für Fahrzeuge hinzu."--> Vanhinten Timetables Testing), also wenn ich beschreiben muss was Fahrpläne sind und wofür sie gut sein sollen dann puh, falsche Modifikation nt ;D

    Na ned so ganz. Streng genommen wissen wir nicht ob es etwas zum steuern der Signale gibt. Was wir wissen ist nur das, was die öffentliche API ("Bausteine") hergibt. Und davon eigentlich auch nur den Teil, welcher dokumentiert ist.


    Man kann natürlich auch Reverse Engineering betreiben, je nach Aufwand weiß man dann alles, zumindest bis zum nächsten Update von UG ;D .

    Capraio,


    das Problem ist, dass Urban Games die Spielregeln macht.

    Selbst der beste Programmierer könnte auf vorgesehenem Wege viele Dinge nicht umsetzen, weil UG die passenden "Bausteine" einfach nicht zur Verfügung stellt.


    Daher müsstest du eher beten, dass UG viel mehr Arbeit in den Bereich steckt. Ich glaube jedoch der Zug ist nun endgültig abgefahren nachdem die ein Stück vom Consolenmarkt wollen.

    Zur Info:


    Urban Games entwickelt in eine Richtung die mich nicht anspricht. Die Grafik ist ja relativ hübsch, der Rest ist einfach zu "simpel" zusammen mit seltsamen Designentscheidungen. Und das wird wohl auch so bleiben oder noch schlimmer werden, nachdem das ja irgendwann auf Consolen mit Controller spielbar sein soll...


    Von daher werde ich an diese Modifikation nicht mehr weiterbasteln.

    Sorry für die verspätete Antwort, irgendwie hat das mit der E-Mail Benachrichtigung nicht funktioniert.


    Ich habe mittlerweile schon monatelang kein TPF mehr gespielt, warte auf das angekündigte Update.

    Je nachdem wie das Update wird bekomme ich vieleicht wieder Lust auf TPF und dann ist es sehr wahrscheinlich, dass ich an den Fahrplänen weiterarbeite.


    Zu dem "kack Bug", da weiß ich gerade nicht was du meinst. Bei mir hat alles soweit funktioniert bevor ich aufgehört habe. Allerdings habe ich damals noch ein wenig daran weitergebastelt, könnte also sein, dass ich da den "kack Bug" beseitigt habe? Ich weiß es nicht mehr.


    Wenn du magst kannst du den "kack Bug" aber näher beschreiben, sodass ich auch weiß was du meinst. Wenn es nichts großes ist würde ich da mal drüberschauen.

    Also eine Ausweichstelle kann ich auf keinen Fall ausser Acht lassen, sowas brauchts in jedem Fall.


    Man kann sich das "manuelle" zum ersten Startbahnhof fahren lassen sparen.

    Wenn noch keine Fahrzeiten bekannt sind (das ist eigentlich nur beim erstern Fahrzeug der Fall), gibt es die Möglichkeit, dass man das Fahrzeug in den Fahrplan aufnimmt und die ganzen Fahrzeiten mal auf 0 lässt und die Maximale Verspätung nicht aktiviert und das Fahrzeug eine Runde fahren lässt.

    Die Zeit vom Depot bis zum ersten Stop muss man noch manuell stoppen, die Fahrzeiten zwischen den Stops werden automatisch in den Fahrplaneinstellungen als "Tatsächliche Fahrzeiten" ergänzt.

    Nach einer Runde sind dann alle Daten da um sinnvolle Fahrplaneinstellungen zu treffen.

    Jop, dafür gibt es die Einstellung "Zeit vom Depot", wenn die richtig ist kommt das Fahrzeug rechtzeitig an.


    Jedoch muss so gebaut werden, dass die Fahrzeuge vom ersten Stop der Linie immer in das selbe Depot fahren. Falls es da mehrere Depots gibt wo die Fahrzeiten dann unterschiedlich sind kann es zu Problemen kommen. In welches Depot ein Fahrzeug fährt kann ich leider nicht bestimmen. Es ist auch wichtig, dass es nachm Depot eine Ausweichstell wie in dem savegame gibt, ohne die kommts schon mal zu nem deadlock wenn ein Fahrzeug grad rauswill und ein anderes grad rein X/


    Mit "Abstellgleisen" habe ich zudem auch schon geliebäugelt. Auch schon bissl rumprobiert, Ist nur beschissen zum umsetzen weil eine Linie immer zwei Stops haben muss, sonst kommt die Fehlermeldung, dass was mit der LInie nicht stimmt was recht störend ist.

    Müsste man dann zwei Bahnhöfe hintereinander bauen... Vieleicht setz ich das später mal um, die Depots als Warteort find ich eh nicht so sexy. Ausserdem könnte ich dann bestimmen wo gewartet wird.

    Ich glaube, du beschreibst das schon fast so wie ich das vorgesehen habe, nur die Linie tut man nicht mit den vanilla Bordmitteln zuweisen.


    Der angedachte Ablauf ist:

    Man kauft ein Fahrzeug mittels den vanilla Bordmittlen.

    Und dann gehts schon in den Fahrplanmanager (UI von der Modifikation). Dort weist man dem Fahrzeug einen Fahrplan zu, indem man von der gewüschten Linie in den Einstellungen das Fahrzeug hinzufügt und die neuen Einstellungen speichert.

    Danach fährt das Fahreug dann aus dem Depot auf die Linie (wann es rausfährt hängt von den Einstellungen ab)


    Im vanilla Fahrzeugmanager erscheint das Fahrzeug dann auch. Allerdings ist dort nicht ersichtlich ob das Fahrzeug einen Fahrplan hat, kann man whr auch nicht wirklich vernünftig umsetzen.

    Wo man sehen kann welche Fahrzeuge einen Fahrplan haben ist im Fahrplanmanager, in der Filtersektion unter "Fahrzeuge".

    Kommt darauf an was du unter Linie ohne Fahrzeuge verstehst.

    In den Fahrplan können nur Fahrzeuge aufgenommen werden die in einem Depot sind.

    Es können aber auf der gleichen Linie auch Fahrzeuge ohne Fahrplan gemeinsam mit denen mit Fahrplan fahren, auch wenn das für mich wenig Sinn machen würde.


    Dass ich keine Fahrzeuge, die schon auf der Linie sind aufnehme liegt daran, dass ich nach absuluten Zeiten fahren will.

    Da macht sich dann z.B. ein Fahrzeug welches gerade am Ende der Linie ist eher schlecht, das würde vermutlich mit 0 Wartezeit bis zum ersten Stop fahren und dann gleich ins Depot (vorausgesetzt man hat die maximale Verspätung aktiviert, was aber durchaus zu empfehlen ist. Ansonsten zwicks bei komplexeren Strecken garantiert irgendwo)


    Prinzipiell könnte ich das natürlich schon machen, behalte ich mal im Hinterkopf da ich gerade eh vieles umbau.

    Ah ok, also unter "Fahrzeug" werden alle verfügbare Fahrzeuge angezeigt, das sind Fahrzeuge die in einem Depot sind und noch keinen Fahrplan haben.

    Da sollten, wenn was im Depot ist was auch einen Motor hat, diejenigen Fahrzeuge erscheinen.

    Wenn du dann ein Fahrzeug auswählst und die Linie mindestens einen Stop hat wird der "Hinzufügen" Button aktiviert.


    Die anderen Dropdows sind dann nur interessant wenn schon mindestens ein Fahrzeug hinzugefügt wurde.

    In den Dropdowns werden dann die hinzugefügten Fahrzeuge aufgelistet.


    Hoffe so ergibt das jetz einen Sinn, aber Änderungsvorschläge höre ich immer gerne!

    Mhh, da fehlt jedenfalls mal ein "s" beim state.timetables


    So sollte es passen

    Code: scripts/vanhinten/timetable/engine.lua
    local function is_timetable_vehicle(state, key, entity)
        local res
        if type(state.timetables[key]) == "table" then
            for i, vehicle in ipairs(state.timetables[key]) do
                if vehicle.id == entity then res = vehicle break end
            end
        end
        return res
    end


    Der anderen Fehler vor den timetables is aber auch bled, falls der den engine thread abschmieren lässt ists vorbei mit timetables ^^


    Wo stehst du denn auf der Leitung?

    Da gibt ma wieder die UG Api irgendwas zurück, dieses Verhalten ist mit deinem Fund jezt schon die dritte Baustelle die ich nicht beseitigen kann.


    In deinem Fall gibt da entweder

    Code
    api.engine.getComponent(id, api.type.ComponentType.TRANSPORT_VEHICLE)

    irgend an Bledsinn zurück oder im "__missoinCallback__" kommt da scho a invalid entity mit...


    Glaub ned, dass sich da irgendwas dagegen machen lässt.

    Wenn ich mitm umbauen fertig bin gugg ich mal ob ich die ganzen Api Bugs irgendwie sinnvoll abfangen kann.


    Ah vergessen zu fragen, kommt der Bug bei deiner Maschine jedesma?


    UUUH.. Ich nehme alles zurück in deinem Fall, das ist ein Case den ich nicht beachtet habe. Dein Zug war einer der keinen Fahrplan hatte nt?

    Daran hab ich nicht gedacht, dass man Fahrzeuge auch ohne Fahrplan fahren lässt *lol*

    Arg, des is jez oarsch...


    Ich bring da jezt keinen Hotfix weil die Version is eh bald Geschichte.

    Als Abhilfe kann inzwischen aber in der engine.lua Zeile 67

    Code: scripts/vanhinten/timetable/engine.lua
    local function is_timetable_vehicle(state, key, entity)
        local res
        for i, vehicle in ipairs(state.timetables[key]) do
            if vehicle.id == entity then res = vehicle break end
        end
        return res
    end

    auf siehe Post #13 geändert werden.


    Und falls das doch ein Fahrzeug mit Fahrplan war dann gilt das durchgestrichene :)

    VacuumTube

    Wenn ich mehr Zeit habe überarbeite ich die Beschreibung, ist aber eine Testversion, da liegt die Priorität wo anders.

    Da ich die andere Modifikation nicht richtig gut kenne kann ich erstens dazu nicht wirklich etwas sagen, und zweitens würde ich auch nicht hergehen und sagen, der kann dieses nicht oder ich mache das besser etc.. das darf jeder für sich entscheiden.


    Atomic Dad

    Das mit der Verspätung hast du vollkommen richtig erkannt.

    Die Fahrzeuge checken nur im ersten Stopp der Linie ob sie rechtzeitig wider loskommen, wenn nicht gehts ab ins Depot und sie warten auf den nächsten Loop.

    Wenn mitten auf der Linie eine Verspätung auftritt reduzuieren sich die Wartezeiten, im Extremfall bis auf 0.


    Was wäre in so einem Fall denn dein Wunschverhalten der Fahrzeuge?


    Zum Einstellvorgang kurz:

    -- Linie auswählen

    -- Fahrzeuge auswählen

    -- Fahrzeug mit Position etc. hinzufügen

    -- Zeit vom Depot einstellen, muss man gut schätzen, besser mehr als weniger

    -- Startzeit einstellen falls noch nicht die richtige

    -- Wartezeiten mal grob einstellen

    -- und dann wirds blöd falls noch keine Fahrzeitdaten da sind, entweder saugut schätzen oder das Fahrzeug einmal den Loop fahren lassen (so mache ich das), die tatsächlichen Fahrzeiten tragen sich automatisch ein und sind immer die letzten gefahrene Zeiten, sprich die können sich im Laufe auch einmal ändern falls das Fahrzeug mal wo stecken bleibt

    -- Fahrzeiten einstellen

    -- Wartezeiten so einstellen, dass das Fahrzeug das gewünschte Verhalten an den Tag legt


    Alpenexpress

    Ja, das Fenster wird Ingame angezeigt.

    Du kannst auch damit planen wann ein Zug fahren darf, jedoch nur Ingame.


    So ein Szenario wo ein Zug vorbei soll funktioniert (brauche ich ständig :)), die Modifikation bietet ansich die Einstellmöglichkeit, die Herausforderung dabei ist aber die richtigen Einstellungen zu wählen, das kann schon mal recht kompliziert werden :)

    Automatisch geht da noch nix.

    Paar Helferchen dafür hab ich zwar auch schon im Kopf, aba naja, das ist ein anderes Thema :)


    Aufwand ja, würde sich aber in Grenzen halten wenns ne Doku geben würde... ne echte... *grrr*


    Und immer daran denken, das ist eine Testversion ;)

    Für das savegame ists mehr oder weniger wichtig, sind die Werte anders ändern sich die Fahrzeiten und die Fahrpläne sind aber für diese Zeiten eingestellt. Wieviel das ausmachen würde in dem Fall k.A..


    Ansonsten ists wurscht, ist wie oben beschrieben höchstens fürs savegame von Bedeutung.

    Link zum Download und savegame: Vanhinten Timetables Testing


    Aktuelle Version = 0.4


    Fahrplanmanager UI Übersicht:


    UI Begriffsdefinitionen:
    Siehe dazu auch Bild "Fahrplanmanager UI Übersicht"
    Fahrplanmanager: das Haupt Fenster der Modifikation
    Filtersektion: der rote Teil des Fahrplanmanagers
    Einstellungssektion: der grüne Teil des Fahrplanmanagers
    Fahrplansektion: der blaue Teil des Fahrplanmanagers
    Fahrzeugfilter: der gelbe Teil der Filtersektion
    Hautpfilter: der türkise Teil der Filtersektion
    Filtercontent: der violette Teil der Filtersektion
    Fahrzeugeinstellungen: der gelbe Teil der Einstellungssektion
    Linieneinstellungen: der violette Teil der Einstellungssektion
    Auswahlbereich: der türkise Teil der Einstellungssektion
    Timeline: der türkise Teil der Fahrplansektion
    Fahrplancontent: der gelbe Teil der Fahrplansektion
    Loop Time: Die errechnete Zeit anhand der Linieneinstellungen, die ein Fahrzeug vom ersten Linien-Stopp(Ankunft) bis zum ersten Linien-Stop(Ankunft) benötigt
    Tatsächliche Fahrzeit: die Fahrzeit die ein Fahrzeug zwischen zwei Stops gebraucht hat
    vanilla UI: das User Interface des Spiels, wie es vom Spieleentwickler vorgesehen ist


    Fahrplanmanager Modifikation Features:
    fügt eine Zeitanzeige für die Fahrpläne der vanilla UI hinzu
    fügt einen Fahrplanmanager Button der vanilla UI hinzu
    fügt ein Fahrplanmanager UI hinzu
    kann Fahrzeuge nach einem Fahrplan steuern


    Fahrplanmanager reagiert auf:
    neu Linie erstellen
    Linie entfernen
    neuen Linien Stop hinzufügen
    Linien Stop entfernen
    Terminal ändern
    neues Fahrzeug kaufen
    Fahrzeug verkaufen wenn das Fahrzeug im Depot ist
    Änderung der tatsächlichen Fahrzeit


    Folgendes kann zu unerwarteten Ereignissen führen:
    Fahrplanmanager regiert nicht auf:
    Linienfarbe ändern
    Fahrzeug einer Linie zuweisen wenn das Farhzeug schon einen Farhplan hat
    Fahrzeug ins Depot schicken wenn das Farhzeug schon einen Farhplan hat
    Fahrzeug anhalten wenn das Farhzeug schon einen Farhplan hat
    Fahrzeug verkaufen wenn das Fahrzeug nicht im Depot ist


    Fahrplanmanager reagiert unbekannt auf:
    minimale Wartezeit
    maximale Wartezeit
    vollladen
    und was es da noch alles vanilla gibt

    Jo kenn ich, ist genau so unbefriedigend.

    Ist auch nicht wirklich aktuell und so stehen da viele falsche Sachen drin. Ist für ne Beta akzeptabel.


    Aber die Frage ist nicht wo man Fitzelchen an Doku findet sondern ob sich in dem Bereich nach dem Update grundlegend was ändern wird.

    Es macht einfach keinen Spass für Transportfever etwas zu schreiben wenn der Hauptteil der Zeit damit aufgeht, dass man versucht nachzuvollziehen, wie die Api benutzt werden will... Oder einfach nur abschätzen will ob eine Idee überhaupt umsetzbar ist.

    Ca. eine Woche noch bis zum Sommerupdate...


    Wie schaut es dann mit der API Dokumentation aus? Gibt es Hinweise darauf, dass UG diese dann endlich einmal ernsthaft angehen will?

    So wie es ausschaut hat sich in den letzten 1,5 Jahren da nicht wirklich etwas getan...


    Hat einer von euch mehr Infos zu dem Thema?

    @andy2612
    tut mir leid, aber was ist daran so schwer zu verstehen? Wenn ich zum Beispiel einem Transportmitel "sage", er soll malimal 3 Minuten warten, und er steht immer noch nach hausnummer 60 Minuten dort, dann ist das eine, aus meiner Sicht (und auch aus gaaaaaaanz vieler anderer) eine falsche Implementierung!
    Das was du beschreibst wäre einfach "Warten bis vollgeladen"... da brauchts keine "Maximale Wartezeit"...