CV.Calculate - J3 nach Einbau einer Innenanzeige

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!
  • Moin,

    ich hab mir die Innenanzeige aus dem Modpack für den BRT C2 von BerlinBusGroup in nen Bus eingebaut und hab jetzt Bereichsprüfungsfehler in meiner Logfile.


    Code
    5241 18:42:24 -  -   Error:           Fehler bei Bereichsprüfung: CV.Calculate - J3 (vehicles\Solaris Electric\Urbino 12_ElectricBVG.bus)

    Die kommen erst auf, sobald ich die Elektrik gestartet habe. Das blöde ist nur, dass wirklich nichts von Omsi dabeisteht, z. B. eine ungültige Variable oder so. Nur der Fehler.

    Und die Innenanzeige funktioniert zum größten Teil. Die Bootsequenz wird durchgeführt und er zeigt auch Haltestellen an und schaltet weiter. Nur die Umsteigemöglichkeiten werden irgendwie auch nicht angezeigt, aber das ist erstmal zweitrangig.



    Also ist das doofe: Die Anzeige funktioniert, aber meine Logfile ist voller Fehler.

    Eine erweiterte Log hat mir nur zusätzlich diesen Fehler ausgespuckt:


    Code
    53946 [0x3D28] 17:56:19 -  -   Error:           Fehler bei Bereichsprüfung: CMVC.RefrActDrv

    Ich hoffe, jemand hat einen brillianten Einfall. Ich hab die Skripttexturen richtig übernommen, ich habe die Variablen korrekt abgeändert (der C2 hat ja immer seine eigenen) und die Skripts richtig eingepflegt.


    Viele Grüße

    Dateien

    • logfile.txt

      (92,38 kB, 27 Mal heruntergeladen, zuletzt: )
  • Mir würden jetzt spontan 2 Dinge einfallen:


    1. Wenn du die Innenanzeige mit Blender verschoben hast, guck mal ob die Texturen alle richtig exportiert wurden. Die logfile sagt ja unter anderem "Innenraum_schwarz.bmp". Ich hab die Innenanzeige jetzt nicht zur Hand aber je nachdem ob das ein Platzhalter ist oder nicht könnte da ein Fehler.


    2. Andererseits deutet CV.Calculate - J3 oftmals auf Scriptfehler hin. Daher die Frage was du da gemacht hast, bzw. ob die Anzeige ein Script überhaupt hat

  • Moin,

    also neu exportiert hab ich sie noch gar nicht. Die innenraum_schwarz.bmp ist auch vorhanden.


    Im Script standen ja vorher die C2 eigenen Variablen, also C2_Elektronik und die ganzen Haltewünsche.


    Ich hab C2_Elektronik jeweils durch elec_busbar_main ersetzt und bei den Haltewünschen stand vorher das:

    Und weil mein Bus hier nur haltewunsch und door_kinderwagenwunsch hat, hab ich das dementsprechend runtergekürzt:


    Code
     {if}
      "TFT_Monitor\" (L.L.TFT_Ordner) $IntToStr $+ "\" $+
      (L.L.TFT_Monitor_count) $IntToStr $+ 
      (L.L.haltewunsch)
      (L.L.door_kinderwagenwunsch) ||
      {if}
        "_a_s.tga"
      {else}
        "_a.tga"
      {endif}

    Also nur noch die beiden Haltewunscharten, was aus meiner Sicht ja völlig in Ordnung ist, weil es da ja heißt Haltewunsch ODER Kinderwagenwunsch.


    Eine Sache habe ich aber noch geändert. Man kann ingame die Innenanzeige anklicken und dann wechselt die die Version. Ich hab in der model.cfg das Mouseevent auskommentiert. Der entsprechende Trigger steht im Skript aber noch drin. Ist das ein Problem?

  • Moin, also der Haltewunsch funktioniert. Die Textur ändert sich und wenn ich die Türen öffne, geht der auch wieder raus.


    Die Variablen die du genannt hast werden hier beschrieben:


    Code
    {macro:TFT_Monitor_frame}
    (L.L.Innenanzeige_Version) 1 + (S.L.TFT_Ordner)

    Ich nutze die Version 5 (ich setze die in der main.osc im Init-Bereich auf 5) und dann +1, weil die Unterordner im TFT_Monitor Ordner glaub ich nullbasiert nummeriert sind. Also zieht er sich die Texturen aus Ordner 6. Aber wenn diese Variable nicht beschrieben wäre, würde die Anzeige ja gar nicht erst funktionieren.


    Die andere Variable erschließt sich mir nicht ganz. Im Init-Bereich des Skripts wird die auf 1 gesetzt:


    Code
    {macro:TFT_Monitor_init}
     1 (S.L.TFT_Monitor_count)
     1 (S.L.TFT_Monitor_count_1)
    {end}

    Nach den Kommentaren im Skript wird die andere Variable wohl zum rendern der Skripttextur benutzt:

    Warum da ausgerechnet 4 bzw. 5 ist, weiß ich halt nicht...


    Ich hätte da noch eine andere Stelle im Skript im Kopf:


    So sieht sie im Original aus:

    Code
    {else}
        (L.L.C2_Elektronik_aus)
        {if}
            (M.L.TFT_Monitor_clear)
            0 (S.L.C2_Elektronik_aus)
        {endif}
    {endif}


    Und ich hab mir im Zuge des Rausschmisses der C2 Variablen die Stelle so angepasst:

    Code
    {else}
        (L.L.elec_busbar_main) 0 =
        {if}
          (M.L.TFT_Monitor_clear)
          1 (S.L.elec_busbar_main)
        {endif}
      {endif}

    Ich hab das einfach umgekehrt, weil ich davon ausgehe, dass C2_Elektronik_aus 1 = dasselbe ist wie elec_busbar_main 0 = ist. Und im Original wird nach Aufruf des Makros die Variable auf 0 gesetzt. Der Logik nach wird also die Elektronik auf 1 gesetzt, also eingeschaltet. Das hab ich bei mir auch so dargestellt. Allerdings erscheint mir die Stelle relativ unlogisch... Ich bin halt nicht sicher, ob 0 (S.L.C2_Elektronik_aus) äquivalent zu 1 (S.L.elec_busbar_main) ist.

    Einmal editiert, zuletzt von Lenn () aus folgendem Grund: Ein Beitrag von Lenn mit diesem Beitrag zusammengefügt.