Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script-KI - Linienmanagement
#41
Jetzt ist mir klar warum die KI damals so irre Distanzen gebaut hat.
https://www.simutrans-forum.de/mybb/show...#pid117247
z.B. Eine Kutsche für Mandeln für eine Marzipan Fabrik durch ganz Deutschland.
Hat die gesamte Strecke gepflastert.

Rechnet die KI die Unterhaltskosten für die Strecke gegen den zu erwartenden Gewinn?
Lange Strecken rechnen sich erst ab einer gewissen Verkehrsdichte, also wenn genug Fahrzeuge die Strecke benutzen, oder man nutzt öffentliche Straßen.
Zitieren
#42
Die Frage ist was für eine KI das damals war. Die alte C-KI oder die Script-KI von Dwachs. Die Script_KI von Dwachs (sqai) baut nur Wasser und Straße. Und die hat von meinen Änderungen nichts übernommen.

Die Script-KI von mir (sqai_rail) verwendet zusätzlich zu Wasser und Straße auch Eisenbahn.

Was die inzwischen kann steht hier.

Die hat noch diverse Probleme. Vor allem beim Bau von Häfen/Docks im Zusammenhang mit kombinierten Strecken. Auch die Fahrzeugwahl ist noch nicht so ganz ausgereift. Besonders bei Zügen ab dem 2. auf einer Strecke. Und eben die Industriewahl und Vervollständigung der Industrieketten.

Auch wenn die Entfernungen zu groß werden, wird praktisch nahezu immer Straße gebaut. Gerade am Anfang des 20. Jh wo die Kapazitäten niedrig und Gewinne gering sind weil langsame Fahrzeuge funktioniert es nicht richtig. Das liegt aber weniger am System selber, sondern am zu geringen Startkapital für die Kartengröße.

Aktuell hab ich ein Langzeitspiel laufen um diverse Sachen zu testen.

Auffällig ist noch, das einmal verbundene Industrien nicht noch einmal verbunden werden von den aktiven KIs. Also wenn eine Verbindung entfernt wurde wegen Pleite oder sonstigem. Auch Entfernte Brücken und damit unterbrochene Strecken werden nicht abgefangen. Das passiert bei Pleite. Die Straßen werden öffentlich aber die Brücken werden entfernt.

Dann gibt es bei Straßen noch ein Problem. Die können nur vom Eigentümer ausgebaut werden. Also wenn Straßen fremder Spieler mitbenutzt werden können die eine ganze Weile die Geschwindigkeit drücken. Fährt der Eigentümer da nicht mehr lang, werden die nie ausgebaut. Weis jetzt nicht ob ich dafür schon was eingebaut hatte oder nicht.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#43
512x448 Karte 1918 gestartet, aktuell 1933 - pak64.german

[Bild: attachment.php?aid=17653]


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#44
mmh, hab wahrscheinlich einen Bug drin

Seit Monaten wird bei 2 KI-Spielern der Link/Line-Check nicht aufgerufen. Und das betrifft alle Linien der beiden Spieler.

Bei 2 weiteren hat es auch länger gedauert. Da hatte ich die hälfte der KI-Spieler schon auf passiv geschalten.

Auffällig ist, das es sich um die ungeraden Spieler ( gelb, grün, lila und pink) handelt. Gelb und grün gehen gar nicht mehr.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#45
Beim Liniencheck ist auf jeden Fall der Wurm drin.

Da werden Linien wiederholt aufgerufen und andere gar nicht.

Ich hab 8 Script-KI aktiv. Beim Liniencheck werden aber nur 4 bis 5 erfasst. Erst wenn ich die deaktiviere kommen die restlichen zum Zuge.

[Bild: attachment.php?aid=17697]


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#46
Auch komisch, obwohl nur der eine Spieler aktiv ist wird nur eine Linie von 12 geprüft. 3x im selben Monat.

[Bild: attachment.php?aid=17698]


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#47
Scheinbar hab ich die Lastgrenze für meinen Rechner erreicht.

Alle paar Sekunden hab ich jetzt kurze Bildsteher. Möglich das die Meldungsausgabe dafür verantwortlich ist.

Oder der Liniencheck hängt in einer Dauerschleife fest.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#48
Das Linien löschen funktioniert irgendwie nicht. Entweder mache ich was grundlegend falsch oder da stecken Fehler drin.

Der Aufruf von

Code:
local halt_lines = halt.get_line_list()
halt_lines[0].destroy(our_player)

sollte die Linie löschen. Zumindest interpretiere ich das so laut Doku.

halt_lines[0] beinhaltet die Instanz line_x der Linie.

Die Linie ist anschließend beim Halt gelöscht aber existiert noch in der Linienverwaltung. Und in der Linienverwaltung ist auch noch der Halt eingetragen.

[Bild: attachment.php?aid=17709]

Ich glaube der Fehler liegt darin, das beim löschen des Konvoys die Linie vom Halt gelöscht wird.
Der Script-Fehler kommt nämlich bevor halt_lines[0].destroy(our_player) aufgerufen wird.

ab Zeile 3660
Code:
gui.add_message_at(our_player, "####### remove line " + halt_lines[0].get_name(), world.get_time())
local err = null
err = halt_lines[0].destroy(our_player)
if ( err != null ) {
gui.add_message_at(our_player, "####### err: " + err, world.get_time())
}

[Bild: attachment.php?aid=17710]


Angehängte Dateien Thumbnail(s)
       
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#49
Die Halteliste sollte eigentlich nicht direkt bearbeotet werden. Bei Loeschen einer Linie oder aendern des Fahrplanes sollte das automatisch gehen.
Zitieren
#50
(10-07-2021, Saturday-16:49:38 )prissi schrieb: Die Halteliste sollte eigentlich nicht direkt bearbeotet werden. Bei Loeschen einer Linie oder aendern des Fahrplanes sollte das automatisch gehen.

Ich bearbeite ja auch nicht die Halteliste. Ich hole mir vom Halt die Linienliste, dann lösche ich die Fahrzeuge der Linie. Und dann soll die Linie gelöscht werden.

Das Problem ist aber, das nach dem löschen der Fahrzeuge die Linie ungültig ist, warum auch immer.

Liegt wahrscheinlich daran das line_list_x und line_x irgendwie nicht richtig behandelt werden.

Kann auch damit zu tun haben, das es sich um ein Dock handelt. Dort liegt der Fahrplanhalt ja nicht auf dem Feld vom Haltgebäude. Was mich halt wundert ist, das die Linie nicht mehr beim Halt drin steht, aber der Halt bei der Linie. Und das sollte ja eigentlich überhaupt nicht sein.


Kann natürlich auch sein, das bei Halten Linien ohne Fahrzeuge nicht mehr gelistet werden. Was aber fragwürdig ist, weil man so über den Halt nicht erfährt, das er in einer Linie drin ist. Was dann dazu führt, das beim löschen des Haltes ein Wegpunkt in der Linie zurück bleibt.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren


Gehe zu:


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