Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Skripts fuer KI Spieler
Statt r.retire_obj.year <= world.get_time().year plus dem Vergleich der Monate sollte
Code:
if (r.retire_obj.raw <= world.get_time().raw) {
  // irgendwas ist jetzt retired
}
reichen (.raw ist Jahreszahl + 12*Monat) mit Monat zwischen 0 (Januar) und 11(Dezember). Von diesen raw Werten kannst du dann das Minimum bilden von allen retire-Daten der beteilgten Objekte. Damit kannst du diesen langen Block im industry-connection-planner vereinfachen.
Zitieren
Das Grundproblem liegt früher.

Schon bei der Reporterstellung wird die veraltete Schiene gewählt.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
(19-01-2021, Tuesday-12:26:08 )Dwachs2 schrieb: Da ist der planned_way nicht mehr verfuegbar, also schon retired. Da koennte ich eine bessere Fehlermeldung einbauen...

Glaube nicht das der Toolfehler von der Verfügbarkeit kommt.

autosave11-test.sve ~ 1,7 MByte (bis 24. Mar 2021)
Simutrans r9575
pak64.german 0.122.0.0.2
Script KI 0.5.8

Save laden und warten

EDIT

Es ist doch die Verfügbarkeit. Aber nicht weil der Weg nicht mehr verfügbar ist sondern noch gar nicht eingeführt ist.

Die Stadtstraße verwendet einen Weg der für den Spieler noch nicht verfügbar ist.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
@Dwachs

Kann es sein, das die Änderungen bei den Kreuzungen Auswirkungen auf die Routensuche ( astar_route_finder(wt) ) bei der Script-KI hat?

Vor dem Entfernen von Linien wird die Routensuche ausgeführt. Die liefert kein Ergebnis, wenn Bahnübergänge vorhanden sind. Bei Straße wie bei Eisenbahn.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Kann ich mir nicht vorstellen. Die Routensuche hangelt sich an den ribis lang. Kann hoechstens sein, dass irgendwie die ribis auf dem Bahnuebergang nicht passen.

Kreuzungen werden nur im astar_builder abgefragt, in builder.is_allowed_step.
Zitieren
Lassen sich die Eigenschaften von Kreuzungen abfragen?

Also Verkehrswege und Geschwindigkeiten.



Für Fahrzeuge gibt es ja ein Baudatum und somit ein Alter.

Gibt es so was auch für Wege und Stationen?
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Die Eigenschaften der Kreuzung lassen sich (noch) nicht abfragen. Hier muss noch eine Funktion hin, die die Max-Geschwindigkeit des Weges abfragt, dort ist die Kreuzung schon mit drin.

Strassen haben kein Alter, Gebaeude schon. Kann man aber (noch) nicht abfragen.
Zitieren
Danke für die Info

Es geht darum, Aktionen in Abhängigkeit des Alters vorzunehmen.

Ggf liese sich das auch in check_link_line(link, line) speichern beim ersten Aufruf. Wäre wohl die einfachste Möglichkeit.

Code:
if ( link.build_line == 0 ) {
  link.build_line = world.get_time()
}
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
(19-01-2021, Tuesday-12:50:56 )Dwachs2 schrieb: Statt r.retire_obj.year <= world.get_time().year plus dem Vergleich der Monate sollte
Code:
if (r.retire_obj.raw <= world.get_time().raw) {
  // irgendwas ist jetzt retired
}
reichen (.raw ist Jahreszahl + 12*Monat) mit Monat zwischen 0 (Januar) und 11(Dezember). Von diesen raw Werten kannst du dann das Minimum bilden von allen retire-Daten der beteilgten Objekte. Damit kannst du diesen langen Block im industry-connection-planner vereinfachen.

Ich brauche ja die Ausführungsdaten der einzelnen Objekte. Wie frag ich denn bei denen .raw ab?
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Das sollte mit desc.get_retire_date().raw gehen. Und convoi_x.get_vehicles() gibt eine Liste der vehicle_desc_x's vom convoi. (Nicht getestet. bitte melden falls es nicht geht)
Zitieren


Gehe zu:


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