Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script_KI - Fahrzeuge
#21
Es gibt depot_x.get_convoy_list.

Kaufdatum laesst sich nicht abfragen. Waere auch nicht so schnell zu schaffen...

Schiffdepot: ich schau mal
Zitieren
#22
(21-09-2020, Monday-08:49:43 )Dwachs2 schrieb: Es gibt depot_x.get_convoy_list.
...

Laut Doku sind das Konvoys die sich im Depot befinden.

Es geht aber darum bei den Fahrzeugen draußen zu ermitteln ob welche das Depot als Home-Depot haben.

Muss ich schauen wie ich es über die Linien hin bekomme.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#23
Dann musst du durch alle Convoys durchiterieren, convoy_x.get_home_depot() aufrufen. Und dann mit try catch rausfinden. ob es noch existiert:
Code:
local depot = cnv.get_home_depot()
try {
  depot.get_convoy_list()
// wenn kein Fehler kommt, gehts hier weiter
depot ist tatsaechlich noch da
}
catch(ev) {
// depot ist weg

}
Zitieren
#24
So in der Art war es auch gedacht. Nur eben vor dem Abriss.

Nur wie bekomme ich die Fahrzeugliste?

Und da ich weis was für ein Depot abgerissen werden soll, brauche ich nur die Fahrzeuge prüfen, die dem Spieler gehören und den passenden Waytype haben.

Der Umweg über die Linien erscheint gar nicht so schlecht.

Tendenziell besteht das Problem bei Schiffdepots. Bei Schiene/Straße könnte ich auch über die Stationssuche gehen. Heist, wenn im bekannten Bereich keine passenden Stationen liegen, dann kann auch kein Fahrzeug das Depot benutzen. Depots für Straße/Schiene werden in einer bestimmten Entfernung zur Station gebaut. Und Stationen suchen beim Bau in einem bekannten Bereich nach vorhandenen Depots. Daher bedienen Depots Linien von Stationen in der Suchreichweite ( die dann global definiert werden müsste, um Zugriff zu haben ).

Bei Schiffsdepots hab ich aber der Zeit keine Mindestentfernung zur Station ( weshalb das Erkennen neuer Linien über die Fahrstrecke nicht richtig hin haut ). Suche nach vorhandenen Depots ist aber glaube drin. Schiffe haben aber noch diverse andere Probleme. Hab mich aber damit noch nicht weiter befasst. Wichtigstes Problem ist da den Bauplatz neu zu suchen, wenn das vorgesehene Feld vom Bahnsteig bereits belegt ist. Und beim pak64 die Stationsauswahl. Bei kleinen Wasserflächen ist ein 1x4 Hafen sehr ungünstig.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#25
world.get_convoy_list() ist die Liste aller Convoys aller Spieler.
Zitieren
#26
Ich glaube ich habe einen Systemfehler gefunden.

[Bild: attachment.php?aid=17584]

Ursache dürfte sein, das die bei der Planung gewählten Fahrzeuge nicht mehr verfügbar (veraltet) sind.

Da sich bei anderen Fahrzeugen die Planung verändert, müsste eine Prüfung vor dem Baubeginn der Planung erfolgen. Also sind die geplanten Fahrzeuge noch verfügbar, wenn nicht Planung verwerfen und nicht umsetzen.


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#27
Ja, da hast du recht. Dummerweise gibt die interne Funktion keine Fehlermeldung zurueck. Es gibt auch keine Rueckgabe, welche Id der neue Convoy bekommen hat.
Zitieren
#28
Die Ausführung sollte aber trotzdem abfragbar sein. Alternativ müsste die Ausführung (reicht die früheste aller verwendeten Objekte) mit im Report vermerkt werden, was einen Abgleich einfacher machen würde.

Ich hab aktuell keinen Plan, wie ich den Report löschen kann.

Und auch nicht den optimalen Ansatzpunkt für eine Prüfung. Prinzipiell vor der ersten Baumaßname. Ich weis aktuell nicht wo der Baustart überhaupt steht.

Das umfasst dann aber auch Strecken und Stationen bei der Prüfung. Würde also auf eine eigene Funktion hinaus laufen um mehrfachen Code zu vermeiden.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#29
Wo trat denn der Fehler auf? Bei einer langen kombinierten Land-Wasser Verbindung?

In ai.nut/step werden die Reports abgefragt und die geplante Aktion ausgefuehrt. Dort koennte man abfragen, ob der Report noch aktuell ist etc
Zitieren
#30
Scheinbar kann man die Ausführung von Objekten aktuell nicht abfragen per Script.

Oder ich finde es mal wieder nicht.

Gebraucht würden folgende
  • way
  • bridge
  • tunnel (wenn mal implementiert)
  • vehicles
  • depot
  • stations

EDIT
Nicht mehr nötig, hab mir eine andere Lösung überlegt.


(16-01-2021, Saturday-15:34:46 )Dwachs2 schrieb: Wo trat denn der Fehler auf? Bei einer langen kombinierten Land-Wasser Verbindung?

In ai.nut/step werden die Reports abgefragt und die geplante Aktion ausgefuehrt. Dort koennte man abfragen, ob der Report noch aktuell ist etc

Das gibt die Meldung nicht her. Selbst welcher Spieler das ist wird nicht ausgegeben. Müsste das erst genauer ermitteln.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren


Gehe zu:


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