Tag / Nacht Modus

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


  • Einen schönen Abend zusammen


    Ich arbeite momentan an einem Tag/Nacht Modus. Jedoch muss man immer die .lua datai öffnen um Tag/Nacht zu ändern. Ich bin nicht wirklich der lua Profi und deshalb möchte ich mich kurz an euch wenden. Und zwar ist die Frage ob man irgendwie sowas wie eine clock einbauen kann welche die Werte in der .lua datai in einem Loop ändert.
    Also dass der wert der für refBrightness jede minute um +1 verändert wird, und sobald es 16.0 erreich wieder jede minute -1 verändert bis es wieder bei 1.0 ist.
    Vll könnte man ja auch irgendwie sowas machen. jedoch wie schon gesagt, ich kenne mich kaum mit .lua aus.
    if month = november set refBrightness = 16.0


    Anbei hab ich noch ein paar Screenshots wo ich mit der refBrightness herumexperimentiert hab:

    Eisenbahnfan und Fotograf.

  • Tach MeckiBoy, habe auch schon etwas länger ein Auge auf einen Nachtmodus. Habe denke ich eine Idee wie man das ganze umsetzen kann. Werde mich nach dem ausschlafen mal ran machen und dann berichten.

  • Hab mich mit dem ganzen grad einige Stunden auseinander gesetzt. Das Problem ist aktuell:


    - Zeit in sekunden kann man aus os.clock() * 1000 beziehen. Dies entspricht dann einem Unix Timestamp.


    - Um nun regelmäßig z.B. jede Sekunde eine funktion auszuführen benötgt man eine Art Schleife. Nutzt man aber while, repeat oder for werden durch diese schleife alle anderen Lua Codes ausgesetzt, diese warten dann darauf das die schleife beendet, was sie aber nie machen wird da sie ja endlos die Zeit erfassen soll.


    - ich habe außerdem versucht das ganze über lua Coroutines hin zu bekommen, aber auch hier war keine Lösung machbar.


    - es gibt keine findbare Timeout funktion, die es ermöglichen würde eine funktion alle x sekunden auszuführen.


    Mir bleibt so Trotz des Urlaubs von Urban Games keine andere Wahl als die Spielhersteller nach einer Lösung zu fragen oder darum zu bitten eine funktion wie z.B. setTimeOut(function_die_aufgerufen_wird, 1000) 1000= 1 sekunden einzubauen. Wobei meiner Meinung nach eine SetTimeOut funktion vollkommen ausreichen würde um den Tag nacht Wechsel zu ermöglichen.



    Edit: Email an Urban Games ist raus, melde mich bei neuen Erkenntnissen!

    Einmal editiert, zuletzt von homieforever ()

  • Beleuchtung der Straßen und Häuser etc

    Da darf sich gerne jemand anders mit befassen :D:P


    @homiefoever Wenn uns Urbangames irgendwie zugriff auf das Datum zulässt könnte man ein If machen und das ganze abhängig von einem Jahr machen, somit würde die Tageszeit auch nicht weiterlaufen wenn man auf Pausenmodus ist. Also dann sowas, wenn das mit lua funktioniert

    if month = november set refBrightness = 16.0

    Eisenbahnfan und Fotograf.

  • das würde effektiv nichts bringen da das if month == november set usw. müsste dann auch in einer schleife stehen die dann regelmäßig den monat abfragen müsste. Selber effekt, alles andere nach dieser Schleife würde nicht aufgerufen werden da die schleife kein ende hat und ewig läuft.


    Wir brauchen wenn denn wie vorgeschlagen eine setTimeout funktion oder setInterval oder alternativ dazu ein event was man abhören kann z.B. game.onChange(time, function() code tag nacht wechsel end)

  • Da darf sich gerne jemand anders mit befassen

    Ich glaube das ist auch das Problem wieso es das Ganze nicht schon für Train Fever gab, denn dort konnte man auch schon den Stand der Sonne usw. verstellen aber es hat dann gar nichts mehr geleuchtet da die Textur die leuchten soll einfach das einfallende Licht zurückspiegelt...
    Zumindest habe ich dass einmal so verstanden, war irgendwo im Forum...
    Ich lasse mich aber gerne eines besseren Belehrens.


    Valentin

  • Ich würde sobald der nacht wechsel überhaupt möglich mich damit befassen an den modellen bzgl. Licht rum zu probieren. Als erstes würde ich aber global allen Objekten im spiel eine Variable verpassen namens light. Wenn light dann true soll licht an sein und wenn light false soll licht aus sein. Das Einfügen von licht müsste man dann im bereich der Lods mit einarbeiten dafür dann einige Modelle verändern. Z.b. so das die Lods in mit und ohne geteilt sind. Ein gebäude hätte dadurch dann statt 3 Qualitätslevel 6. 3 mit licht und 3 ohne. Nr. 1 beste quali nr. 3 schlechteste.


    So wäre es rein teoretisch über das Loadlevel element möglich bei Tag kein licht einzuschalten und bei nacht schon

  • Vabe: den Theard kenn ich schon aber danke. Der Lösungsweg ist ähnlich dennoch ist auch über diese variablen das Problem vorhanden das die schleife zum abfragen der Zeit das ganze spiel außer gefecht setzt. Abgesehen davon hat man im mod keinen zugriff auf game.interface.time darauf kann man nur in einer Mission zugreifen. Und der Tag nacht Modus als Mission? Ne das muss nun wirklich nicht sein

  • Bei TF hatte ich mal angefangen die Texturen anzupassen. Also abdunkeln und Lichter einfügen usw. Das ist aber ne ewige Fummelarbeit und das allein für Vanilla. Jeder Modder hätte ne benötigte Nachtversion erstellen müssen und es wäre halt statt immer Tag immer Nacht gewesen.


    Ich keine Zeit, Vanilla only was eh kaum einer zoggt und unflexibel bzw nicht dynamisch - hab nicht weiter gemacht ^^

  • Ja DarkMo das hinzufügen dieser Texturen bzw. umarbeiten wäre ziemlicher kleinkram. Allerdings würde ich in dem fall dann auch versuchen Objekten ne Variable zu geben z.B. unter metadata.have_lights. Wenn metadata.have_lights existiert und true ist hat das Objekt auch Lods für die Nacht. Andernfalls nicht und es werden nur die normalen Lods dargestellt. Durch einen reinen Script mod wäre das auf jeden fall schon mal machbar bringt natürlich solange erstmal nichts wie der wechsel von Tag zu nacht nicht funktioniert.

  • Ich Frag mal in die Runde: besteht diesbezüglich auch interesse Jahreszeiten eventuell mit einzuarbeiten? Urban Games hat geantwortet und mir erstmal einen hinweis auf einige funktionen gegeben und dessen Umfang. Anhand dessen werd ich mir demnächst noch einmal näher damit befassen, sobald die Arbeit nicht mehr ruft :) Wenn das ganze so nutzbar ist wie ich es mir grad vorstelle ( muss mir das noch ansehen) wäre ein Tag / Nacht wechsel vermutlich dynamisch möglich.

  • Bedingt Gebäude haben kein Licht halt nur die kleinen dinger vorne an den Zügen sind vorhanden. Natürlich bringt es so in dem Stand noch nichts da alles andere nicht beleuchtet. Der fakt ist aber: hat ein gebäude Licht kann dies dann auch genutzt werden.


    Nicht zu vergessen ist das alle Gebäude Modbar sind also auch Stadgebäude. So könnte statt z.B. vanilla umzuschreiben mit der Zeit ein eigenes Paket an Gebäuden entstehen die dann mit der Zeit alles andere ablöst.


    Natürlich alles Zukunftsmusik, erstmal müsste der Wechsel dann laufen und dazu halt noch das script welches die lods für nacht einfügt wenn vorhanden.

  • Texturen der Umgebung auszutauschen bringt nix und ist auch überflüssig.
    Die Texturen reagieren durch PBR sowieso schon auf das Licht.


    Das eigentliche Problem, weswegen es im Moment keinen Sinn macht ist, die "Lichtquellen" wie zb. Scheinwerfer sind eben keine Lichter.
    Diese Texturen wirken als wenn sie Leuchten, auch im Dunkeln, sie können aber nichts beleuchten. Weil sie werfen kein Licht.
    In TpF gibt es nur eine "echte" Lichtquelle und zwar die sonne.
    Um die nächtliche Belichtung zu erreichen müsste man die Skybox austauschen. Nur die Belichtung runter drehen bringt nix.

BlueBrixx