Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script-KI - Industrieplanung
#31
ja, count_missing_factories ist rekursiv. Damit man durch den Baum von verbundenen Fabriken kommt.

Deinen letzten Post verstehe ich nicht:
Zitat:Obwohl die Autokette unvollständig ist, wird sie bei der Verbindungsuche nicht mehr berücksichtigt.
Wenn die Kette unvollstaendig ist, dann sollte sich auch nicht beruecksichtigt werden (?)
Zitieren
#32
Ich hab in factorysearcher.nut eine Ausgabe eingebaut.

Da werden dann die Industrieverbindungen ausgegeben.

Die Autofabrik war dabei. und dann wurde sie nicht mehr gelistet. Obwohl nur zu den beiden Stahlwerken verbunden wurde.

Allerdings habe ich die Vermutung, das bei einem RT_TOTAL_FAIL als Rückgabe (wenn 2 Links vorhanden sind) die gesamte Kette dann verworfen wird.

Muss das aber erst noch weiter sondieren.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#33
Ich glaube ich muss da doch größere Umbauten machen.

Auf Grund der Entfernungen und damit verbundenen Baukosten ist das erschließen ganzer Ketten mit den jetzigen beiden Systemen nicht möglich.

Hinzu kommt, das durch weite Strecken sehr zeitverzögert Gewinne anfallen.

Hauptproblem ist im Moment, das statt die Ketten zu vervollständigen parallele Verbindungen am Kettenanfang gebaut werden.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#34
Hab jetzt eine Prüffunktion drin, die auf vorhandene Verbindungen prüft.

Allerdings wird nach wie vor versucht immer nur den ersten Teil einer Kette zu verbinden.

Die Autofabrik hat 2 Stahlwerke als Lieferanten. Ein Stahlwerk wird bereits mit Kohle und Erz versorgt.
Statt nun Stahlwerk und Autofabrik zu verbinden, wird ständig versucht das 2. Stahlwerk mit Kohle und Erz zu beliefern.

Jetzt ist die Frage, wie man die fehlende Verbindung vorgibt.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#35
Da das Problem mehr die KI betrifft schreib ich es hier rein.

Für die KI wäre es einfacher, wenn Industrien nicht direkt am Kartenrand gebaut werden würden. Eine Reihe Abstand würde vermutlich schon reichen.

Das hängt mit dem Gelände zusammen. Hangfelder werden von der KI (bisher) nicht als Haltfeld genutzt.

Bei Industrien direkt am Kartenrand fehlen 12 mögliche Felder bei Einzugsgebiet 2.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#36
Passt zwar nicht ganz zum Thema, dreht sich aber um Industrien.

Es handelt sich um die Abfrage von max_storage.

Code:
    local f_dest    = end_l.get_halt().get_factory_list()
    if ( f_dest.len() == 1 ) {
        foreach(good, islot in f_dest[0].input) {
            local st = islot.get_storage()
            local it = islot.get_in_transit()
            local max_storage = islot.max_storage
            if (st[0] + it[0] > max_storage) {
                gui.add_message_at(our_player, "*** good quantity [" + (st[0] + it[0]) + "] > factory " + f_dest[0].get_name() + " input storage [" + max_storage + "] " + line.get_name(), world.get_time())
                return false

            }

        }

    }

islot.max_storage sollte eigentlich die Größe des Eingangslagers zurück geben, so wie ich das verstehe. Nur passen die Ausgabewerte nicht zu den Werten in den Fabrikfenstern.

[Bild: attachment.php?aid=17655]


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#37
Die Warenmenge für In-Transit lässt sich wohl nicht getrennt für Straße und Schiene ermitteln?


max_storage passt in r9759
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#38
Nein, da wird nur die Gesamtmenge gespeichert.
Zitieren
#39
Mal schauen ob ich da dann was selber basteln muss.

Die jetzige Änderung lässt sich in meinen Bestandspiel eher schlecht beurteilen. Musste da bei einer kurzen Straßen-Strecke aktiv eingreifen und Fahrzeuge reduzieren. Da sieht es aber schon recht gut aus.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste