O305G Thermometer einbauen funktioniert nicht

Willkommen in der OMSI-WebDisk!
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet: = Englisch [EN], = Deutsch [DE], = Französisch [FR]. Wenn du die angegebene Sprache nicht beherrschst, schreibe auf Englisch!
  • Hallo Leute,


    da ich nicht ständig mit dem roten Text fahren will (außer Fahrscheinverkauf) und eigentlich ohne viel externe Hilfestellung klarkommen will, außer was das Fahrzeug bietet, habe ich im O305 und O307 ein Thermometer eingebaut ( Tatra hat da mal einen Mod zur Verfügung gestellt), funktioniert dort soweit.


    Selbiges wollte ich beim O305G einbauen, hier tritt jedoch folgendes Problem auf:

    -nach dem Platzieren vom Bus ist das Thermometer leer

    -die Temperatur aktualisiert sich ausschließlich bei einem Spielneustart, während des laufenden Spiels ist sie immer statisch auf der Temperatur, die beim Spielstart im Innenraum geherrscht hat.

    -soweit, wie ich lesen kann, stimmen die Scripte mit dem O305 Solo überein und passen

    -noch schräger: den O305G Bahnbus von e2h1986 habe ich mir angeschaut, der 87er mit Matrix und neuem Cockpit funktioniert, da schon ein Thermometer vorhanden ist, ein Selbsteinbau im 82er Rollband führt zu selbigem Effekt, wie beim O305 G Stadtbus. Alle O305G Bahnbusse greifen aber auf das selbe cockpit_DB-Script zu. Auch die Variable cockpit_temperatur ist überall gleich


    Im Anhang findet ihr die logfiles, erfreut euch an einer an sich leeren logfile, bis auf die typischen "Texture not found in Mesh" steht nix drin.


    Ich hoffe, jemand kann helfen.

  • -die Temperatur aktualisiert sich ausschließlich bei einem Spielneustart, während des laufenden Spiels ist sie immer statisch auf der Temperatur, die beim Spielstart im Innenraum geherrscht hat.

    ... das legt die Vermutung nah, das du die EInbau-Anleitung nicht ganz befolgt hast, oder befolgen konntest.

    Beim Bus mit einer Matrix, sollte es immer aktuallisiert werden, da der Befehl dort eingetragen worden ist, sonst aktuallisiert sich die Matrix oder Innenanzeige (falls vorhanden) nicht. Bei Rollbandbusse, wird der Befehl nicht benötigt. Weiß gerade nicht genau wie der hieß .... irgendetwas mit Refresh ... oder weiß der Kuckuck.


    -nach dem Platzieren vom Bus ist das Thermometer leer

    Ich habe das Thermometer leider nicht mehr bei mir drin, da ich das analoge Thermometer besser finde. Hier könnte es sein, das die Position nicht passt. Wenn das Thermometer im Bus an der richtigen Position ist, dann die Position des TextTexture-Mesh in der model.cfg prüfen. Sollte diese nicht da sein, fehlt diese in der model.cfg oder die Schriftzuweisung ist fehlerhaft. Hier hilft es, die Temperaturabfrage in der lost.....Datei anzusehen. Hier erkennt man, ob der Fehler im Script liegt (fehlerhafte oder keine Berechnung) oder ob es ein Fehler der Anzeige ansich ist.

    Leider kann ich dir heute da auch nicht mehr helfen, weil ich nie eine X-Datei erstellt hatte, weil ich sowas nie brauchte. Ich kann direkt in o3d-Datei speichern.


    soweit, wie ich lesen kann, stimmen die Scripte mit dem O305 Solo überein und passen

    Nein, die stimmen nicht überein. Ich habe diverse Scriptabfragen aus dem O305 genutzt und nicht nochmal kopiert. Die liegen in vielen Scriptdateien drin. Bei O305 gibt es aber zwei Busse - einmal mit Matrix und mit Rollband. Man könnte natürlich alles in wenigen Scripten eintragen, aber mit mehreren Scripten, steigert es die Übersicht.

    Aber grundlegend gilt :

    • Ein Macro muß in einem vorhandenen Script eingetragen werden. Verwendete Scripte stehen in der Busdatei
    • Jedes Macro muß auch verifiziert werden. (steht also in einer Macroliste)
    • Die Macroliste muß auch in der Liste der verwendeten Scripte vorhanden sein.

    zudem gelten auch alle weiteren Grundlagen, die du zu kennen scheinst .... Befehle verifizieren ...

    Man kann also ganze Scripte eintragen, aber dennoch nur einige wenige Macros daraus verwenden. Macros die im Script stehen, aber nicht in der Macroliste, werden einfach nicht ausgelesen - ist also kein Fehler für Omsi. Somit steht die Temperaturabfrage im Script drin (für die Busse mit Thermometer), aber die Busse ohne Thermometer, sehen das Macro für die Temperatur nicht, wenn das Macro {M.V.Macroname} nicht eingetragen wurde. Beim O305 Stadtbus war das Macro eingetragen (aus dem MAN SD Bus), und wurde auch abgefragt. Es gab nur kein Thermometer im Bus.

    Beim Gelenkbus hat Rolf oder e2h1986 , die Macroabfrage wahrscheinlich rausgelassen. Wozu ein Macro ständig berechnen lassen, wenn es nicht gebraucht wird?


    Meine Dateien sind aber auch nur eine einfache Einbauanleitung für den jeweils bestimmten Bus. Eine Umsetzung auf andere Busse erfordert ein Umdenken und eine Prüfung der Scripte, was genutzt wird und was nicht. Daher nochmal zur Übersich:

    {Macro:Macroname} muß im Script_X stehen,

    (M.V.Macroname) muß in der Macroliste stehen, in einem Script Y das ausgelesen wird,

    Script/Script X

    &

    Script/ScriptY müssen in der Busdatei stehen (Zuordnungszahl anpassen).

    Ob die Temperatur ausgelesen wird, steht dann in der Laststn.osc im Map-Ordner. Fehlt dort der berechnete Wert aus dem Stack, liegt ein Problem im Script vor. Steht dort ein Wert, ist der Fehler in der fehlerhaften Anzeige im Bus (Objektfehler [Position] oder in der Abfrage der Anzeige [useTextTexture]).

  • irgendetwas mit Refresh

    das ist schonmal ein guter Ansatz, da kann ich nochmal in den Scripts suchen. Wenn du da noch was genaueres hättest, wäre ich echt dankbar. :thumbup:


    EInbau-Anleitung nicht ganz befolgt hast, oder befolgen konntest.

    für den Schlenki hast du ja selber nie etwas zur Verfügung gestellt, konnte mich da nur am Solo orientieren. :/ So Kleinkrusch ist für mich eigentlich kein Problem, so ein kleines Digitalthermometer ist schnell erstellt und habe ich schon öfter gemacht. Beim MAN A20 hat es jüngst funktioniert, beim Neoplan Centroliner Euro 3 auch, dass es hier nicht ging, war echt überraschend, jetzt aber nachvollziehbar.


    fehlt diese in der model.cfg oder die Schriftzuweisung ist fehlerhaft.

    Das Modell und die Text Textur passt. Dass es am Anfang leer ist und sich nur beim Neustart aktualisiert wird wohl mit dem Refresh... Dingsda zusammenhängen.

  • Wenn du da noch was genaueres hättest,

    Nim dir irgendein Matrixscript aus den Standard-Bussen von M+R Software. in jedem Matrix-Script steht ein einsammer kleiner Befehl, der irgendetwas mit Refresh drin hat. Er ist innerhalb eines Macros im Matrix-Script. setze diesen Befehl einfach in das Macro des Thermometers oder sonstwo hin. also irgendwo in eine leere Zeile zwischen

    [Macro:Macroname] und dem folgenden [end].



    ... dass es hier nicht ging, war echt überraschend, ...

    Alles was du im Script machst, kannst du in der Laststn.osc im Map-Ordner nachlesen. Da steht ein Wert unter der jeweils gespeicherten Variable. So lassen sich schreibfehler im Script aufdecken. Ist kein Wert da, ist was falsch. Der Objekteinbau kommt erst später. Das heißt, man kann es zuerst machen oder auch später. Bei einem Einbau von neuem Content, gibt es zahlreiche Fehlerquellen. Die Logfile zeigt aber nicht alles an oder ist zu ungenau. Die Laststn.osc ist eine Prüfung, was Omsi errechnet ha oder ausgelesen hat.

    Du findest also dort, was Omsi für eine Temperatur ermittelt hat und was Omsi in einem Schreibfeld darstellen würde. Wenn dort sinnvolle Werte stehen, kommt die Sichtbarmachung im Bus.


    Dass es am Anfang leer ist und sich nur beim Neustart aktualisiert wird wohl mit dem Refresh... Dingsda zusammenhängen.

    Je nachdem, wie das Script erstellt wurde. Bei O305 habe ich nichts geändert. Bei O407, MAN ÜL und O407 habe ich das Script ein wenig umgestellt, damit es nur mit der Fahrzeugelektrik aktuallisiert /aktiviert wird.

  • möglich fOcUs04 schaue ich mir morgen an.


    mit dem Refresh wird mir einiges klarer, es wird wohl z. B. im Annax Script drinstehen, also kann der 87er Bahnbus das, weil er mit einer Matrix gesegnet ist, während die älteren Rollband-Kollegen es nicht können. Und das bei gleichem Cockpit-Script, weiter habe ich nicht geschaut gehabt.


    Code: OMSI2/Vehicles/MAN_SD200/Script/Matrix.osc
    'Omsi sagen, dass die Strings-Ausgaben aktualisiert werden sollen:
            1 (S.L.Refresh_Strings)

    klingt schlüssig, vielen, vielen Dank

    • Hilfreichster Beitrag

    Ist es das, was ihr sucht? :/


    1 (S.L.Refresh_Strings)

    genau, das ist der gesuchte Befehl.

    Diesen kann man in irgendeinem anderen Macro unten eintragen, dann haben es auch Rollband-Busse. Ursprünglich war dieser Befehl nur für die Matrix und Innenanzeige gedacht.Bei den SD 200 mit Rollband steht das auch in irgendeinem Macro drin. Daher haben diese Busse auch funktionsfähige Thermometer.


    Die Rollband-Busse des MB O305G lesen das Macro für die Matrix nicht aus. Daher ist es egal, was dort steht, Omsi ignoriert es komplett.

    Schau einfach in die Scriptdatei mit dem Präfix _main. Dort sind die Macros für die Matrix / Innenanzeige nicht eingetragen.

  • ihr seits meine Helden und versüßt nochmal richtig den letzten Urlaubstag, Tatra  fOcUs04 vielen, vielen Dank nochmal


    vorher

    Code: O305G/cockpit.osc
    {macro:Thermometer_frame}
    
        (L.L.Cabinair_Temp) s0 trunc " 3" $IntToStrEnh "." $+ 
        l0 abs l0 abs trunc - 10 * trunc " 1" $IntToStrEnh $+ "C" $+
        (S.$.cockpit_temperatur)
          
    {end}


    nachher


    Code: O305G/cockpit.osc
    {macro:Thermometer_frame}
    
        (L.L.Cabinair_Temp) s0 trunc " 3" $IntToStrEnh "." $+ 
        l0 abs l0 abs trunc - 10 * trunc " 1" $IntToStrEnh $+ "C" $+
        (S.$.cockpit_temperatur)
        
    'Omsi sagen, dass die Strings-Ausgaben aktualisiert werden sollen:
        1 (S.L.Refresh_Strings)    
        
    {end}

    und wörkt. Die SD haben es z. B. im IBIS-Script verankert, im {macro:IBIS_Frame}


    Edit: Ich habe mich ja auch gewundert, warum es beim O305 Solo hinhaut, obwohl der auch nur ein manuelles Rollband und so hat, der hat in der .bus-Datei das IBIS.osc mit entsprechendem refresh_strings eingetragen, wohl ein Überbleibsel vom BVG-O305, was beim O305G nicht der Fall ist.