Deutsches Simutransforum

Normale Version: Passagiererzeugung an Denkmälern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Simutrans-Version: 88.03 und älter

PAK-Set (+zusätzliche PAK-Dateien): 64-Basis

Betriebssystem: XP


Fehler (möglichst genaue Beschreibung): Denkmäler erzeugen keine Passagiere und Post

Verhalten (Absturz, Einfrieren, ...): nichts

Früher erzeugten Denkmäler Passagiere und Post entsprechend der Vorgabe in der DAT-Datei.
Siehe:
Obj=building
Name=DenkHajo
Type=mon
Passengers=60
Seit geraumer Zeit ist diese Funktion nicht mehr da. ;( Ich wußte nie, ob und wie ich es hier aufzeigen kann, aber nun hab ich mal ein Bild dazu.
Obj=building
Name=DenkHajo
Type=mon
level=60 statt Passengers=60?
Nein, der Typ Level wird bei RES, COM und IND eingesetzt.
Monumente (mon) mit Passagierfaktoren, genau wie Touristenziele und Sehenswürdigkeiten (cur)
siehe:
Obj=building
Name=CityChurch1
Type=cur
Passengers=10
Build_Time=250
Zitat:Original von MHz
Nein, der Typ Level wird bei RES, COM und IND eingesetzt.
Monumente (mon) mit Passagierfaktoren, genau wie Touristenziele und Sehenswürdigkeiten (cur)
siehe:
Obj=building
Name=CityChurch1
Type=cur
Passengers=10
Build_Time=250
Aber hoffentlich nicht mehr lange, sonst bricht meine Wildwuchs-Allergie wieder aus...
In dem neusten makeobj nummer 29 kann man immer level benutzen. Passengers=0 ist level=1. Level ist def "offizielle" Parameter.

Das mit den Denkmälern liegt daran, dass sie zwar keine Touristenattractionen aber auch keine Gebäude sind => Sind keine Passagierziele in dieser Version. Ist leicht korrigierbar.
Bei den Industrien heisst dasselbe pax_level=
Wie heissen eigentlich die Kapazitätslevels bei den Haltestellen? level= ist so ziemlich uneindeutig, ich wäre dafür, Passagierraten generell paxlevel zu taufen.
Oder wieder als Extremvorschlag: Statt
obj=factory
neu
obj=building
type=fak
in der Hoffnung, so auch das Problem mit chance= grad mitlösen zu können.
Das geht nicht. (Hatten wir das nicht schon mal?)

Eine Fabrik ist KEIN gebäude, es sieht nur so aus und besteht intern aus aus Gebäuden mit Level null. Bei Fabriken kann deshalb level nicht verwendet werden, da der building_reader_t nicht weiss, das dieses Gebäude ein Teil einer Fabrik ist, da der factory_reader_t erst danach aufgerufen wird.

obj=building erezugt intern ein Gebäude (haus_besch_t), obj=factory eine Fabrik (fabrik_besch_t das als Unterstruktur ein haus_tile_besch_t enthält). Diese Objekte sind mitnichten identisch, was ja schon an der Passagiererzeugung sieht. Schließlich reicht es ja, eine Kachel einer Fabrik zu erschließen.
Ja, hatten wir schon mal (wegen chance=); damals war lediglich die Frage, ob man die Variable ändern soll, weil es zwei verschiedene Variablen gibt, die von aussen betrachtet dasselbe bewirken.
Wenn von mir solche Extremvorschläge kommen, dann sind das meist Gedanken für die "grüne Wiese", Optimalvorstellungen, die auf bestehende Strukturen wenig bis gar keine Rücksicht nehmen. Philosophieren wir einfach mal, wie so ein Simutrans aussehen würde, über die Umbaukosten und Machbarkeit können wir immer noch streiten.
Zitat:Eine Fabrik ist KEIN Gebäude, es sieht nur so aus und besteht intern aus aus Gebäuden mit Level null. Bei Fabriken kann deshalb level nicht verwendet werden, da der building_reader_t nicht weiss, das dieses Gebäude ein Teil einer Fabrik ist, da der factory_reader_t erst danach aufgerufen wird.
Philosophie Schritt 1:
Eine Fabrik IST ein Gebäude vom Typ fak, und dieser Typ hat neben dem Passagier- und Postumschlag (paxlevel=) weitere spezielle Eigenschaften (nimmt Güter an, hat eine Produktionsfunktion usw.). Mit der Variable dims= (default dims=1,1, zwingend dims=1,1 für com, ind, res) kann jedem Gebäude (auch vom Typ cur) eine Fläche zugeteilt werden, und da der building_reader diese Variable kennt, oder besser gesagt, kennen muss, weiss er auch, dass da ein Gebäude steht. Kollisionsgefahr mit einem factory_reader besteht keine mehr, ganz einfach, weil es letzteren gar nicht mehr benötigt, jedenfalls nicht für die Bebauung.
Philosophie Schritt 2:
Gebäude mit grösserer Fläche (dims= >1, >1) werden immer voll erschlossen, wenn ein Feld erschlossen ist (der Passagier muss ja eigentlich nur den Eingang erreichen, wie er sich innerhalb einer Burg o.ä. bewegt, ist irrelevant).
Auch Stadtgebäude vom Typ ind oder com können "Fabriken" (Stadtgeschäfte) werden - das wäre dann die totale Dynamik, wenn die Lieferketten jedesmal ändern, wenn an so einem Ort ein Gebäude auf den nächsten paxlevel renoviert wird...jedenfalls wären wachsende Industrien so kaum noch ein Problem, abgesehen von der Programmierung dynamischer Ketten und der speicherzugriffsfehlerfreien Löschung von Gütern ohne Abnehmer:
obj=building
type=com
name=COM_00_02
paxlevel=2
chance=56
productivity=3
inputgood[0]=Gemuese
inputcapacity[0]=5
inputfactor[0]=100
dims=1,1
backimage[][][][][]=...

obj=building
type=com
name=COM_00_05
paxlevel=5
chance=43
productivity=5
inputgood[0]=Gemuese
inputcapacity[0]=6
inputfactor[0]=100
dims=1,1
backimage[][][][][]=...

Bitte diese Zeilen nicht als .dat-Vorlage nutzen!
Ist ja schön so zu philosophieren, nur dann ist das Spiel nicht das jetzige Simutrans. Ohne jetzt beleidgend zu klingen. Dein Vorschlag mag logisch klingen für einen Nichtprogrammierer. Aber wenn du dir den Programmcode ansiehst, dann wird schnell klar, dass Fabriken und Gebäude außer den Anzeigeroutinen praktisch nichts gemeinsam haben; Fabriken sind ca. 2000 Zeilen mehr Programmcode und werden auch ganz anders verwaltet. U.a. enthält das auch die Logik, eine Fabrik durch ein Fald voll zu erschließen.

Was das Ersetzen von Stadtgebäuden durch Fabriken angeht, so ist das etwas ganz anderes. Das scheitert eher daran, dass die Bauroutinen nicht mit Flächen anders als 1x1 umgehen können. 1x1 Fabriken könnten durchaus dynamisch entstehen. Nur das wäre eben nicht Simutrans sondern TransportTycoon; dort nehmen Städte bestimmte Güter (Waren, und in neuen Versionen auch andere wie Bier, ... ) an, so wie Simutrans Post behandelt.

Simutrans hat mehr oder minder statische Fabriken, so dass man sich nach Einrichten einer Linie erst einmal nicht mehr um diese kümmern muss. Das finde ich sehr sympathisch und ist Teil der Philosophie.

Das schließt dynamische Fabriken ja nicht gänzlich aus. Es könnte/sollte sicher z.B. erschöpfende Ölquellen und Bergwerke und Einführungs-/Veraltungsdaten für Industrien geben. Aber das geht jetzt doch etwas über den Denkmalfehler hinaus.