Wartehauswerbung Zufallsscript mit Weiche

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 zig Werbungen für das gute alte Spandauer Wartehaus gemacht. Einige davon sind aber lokaler Natur, daher würde ich gerne im Script eine Weiche bauen. Das ursprüngliche Script ist einfach eine Zufallsauswahl:


    Hier ist bisher nur die Anzahl der Werbungen erhöht. Erstmal könnte ich ja gewisse lokale Werbungen hinten dran setzen und dann L.$.Yard abfragen und wenn es wahr ist aus 38 wählen und wenn es falsch ist eaus 24. Erstes Problem: Meine Yard-Abfrage führte gleich mal zu "unbekannter Variable" in der Log und das Verweigern von Laden der Szenerie. Yard ist doch global?


    Zweitens hätte ich gerne das flexibler:


    Wenn Karte X, dann Verzeichnis werbungen_X nutzen,

    Wenn Karte Y, dann Verzeichnis werbungen_Y nutzen,

    else

    Verzeichnis Verzeichnis werbungen nutzen


    Das deshalb weil das Wartehaus auf zig Karten verbaut ist und ich das lieber scriptmässig lösen würde als mit Objektkopien und Tausch der Objekte. Wie wäre da der Code? Mit L.$.Yard hatte ich Probleme.


    Wenn das dann erstmal so läuft würde ich noch nach Jahren sortieren wollen, da einige Werbungen "auslaufen".

  • Wie soll das auch funktionieren mit yard, ich glaube kaum, dass du beim Laden des Wartehäuschens eine Hofdatei auswähnen kannst :"D


    Einzige Möglichkeit: Wenn du im Script eines Objekts Eine Stringvariable anlegst und mit dieser arbeitest, dann kannst du diese im Editor wie ein Haltestellenschild frei beschriften (zumindest bin ich der Meinung, dass dafür nichts weiter nötig ist, korrigiert mich gerne).

    Und das "wenn-dann" nennt man in der Scriptsprache "if/else/endif", im Zweifel einfach mal im Wikiartikel zum Scriptsystem (gibts im originalen Omsi-Wiki) danach ausschau halten.


    Die genaue Ausgestaltung bleibt dann dir üverlassen, ob du einen Kartennamen anlegst und danach die Texturen lädst oder ob du einfach in vielen Stringvariablen viele Texturpfade angibst.

  • Wie soll das auch funktionieren mit yard, ich glaube kaum, dass du beim Laden des Wartehäuschens eine Hofdatei auswähnen kannst :"D

    Da hab ich garnicht dran gedacht dass es diese erstmal nicht gibtXD Ja, dann müsste vielleicht erstmal ein Objekt eine Variable liefern die es nur in der Karte gibt, zum Beispiel ein spezifisches Haltestellenschild. Problem wäre dann aber in den Karten die dann unter dem else-Teil wären, also alle anderen: die haben ja sowas nicht. Hmmm, dann wirds schwierig. Den Kartennamen aus der global.cfg irgendwie abgreifen geht nicht?

  • Ja, dann müsste vielleicht erstmal ein Objekt eine Variable liefern die es nur in der Karte gibt, zum Beispiel ein spezifisches Haltestellenschild.

    Objekte können untereinander jedoch nicht kommunizieren. Die einzige und einfachste Möglichkeit ist es, die Werbungen über das Beschriftungsfeld zu definieren. Hat zwar zur Folge, dass du sämtliche Wartehäuser durchklicken musst, aber anders geht es leider nicht.

  • Es könnte beinahe einfacher sein, für jede Karte eine eigene Kopie der Haltestellen mit den passenden Werbungen anzulegen und dann die Objekte in der jeweiligen Karte zu ersetzen.

    RTFM

    Einmal editiert, zuletzt von Sven2540 ()

  • Vielleicht blöde Idee - Achtung, ich bin Laie bezüglich Scripts:

    Kann man das nicht so regeln, dass das Script des Objekts nicht im Objekt-Ordner, sondern im Map-Ordner liegt? Dann müsste man halt zu jeder Map das passende Script mitliefern. Birgt natürlich andererseits wieder ein zusätzliches Fehlerpotenzial.

    Mitglied im Team von Steinkirchen V2.

    Gemeinsam mit Schleswig-Holstein mit der Fahrplanerstellung für Lemmental-Neuenbreid beschäftigt.

  • Warum mehrere Ordner? Lediglich die sco-Datei und die Scriptdatei müsste dupliziert werden. Das Austauschen kann dann mithilfe von diesem Tool erfolgen: OMSI Objekt Ersetzer - OMSI WebDisk & Community (omsi-webdisk.de)