Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Skripts fuer KI Spieler
Also mein Verdacht war richtig, rail_connector case 2: wird doppelt ausgeführt.

im Bild

rot ist der erste Aufruf
grün der zweite Aufruf, der den ersten Aufruf torpediert, weil dort die Station nicht mehr gebaut werden kann und den Abriss auslöst

[Bild: attachment.php?aid=17491]

Testcode mit den Ausgaben ist auf Git


Ich hab nur keinen blassen Schimmer, wo ich den Fehler eingebaut hab.


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Der Fehler liegt im tile_x-Objekt.

Das zurückgelieferte Array von expand_station hat scheinbar ungültige tile_x-Objektdaten, weshalb die Funktionen von tile_x.get_*() nicht funktionieren. Auf Grund des Scriptfehlers ruft er dann immer wieder case 2 von rail_connector auf.

Hab den Code nach check_station verschoben. Dort ist er wohl besser aufgehoben.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Neue Nuss zum knacken bei der Ermittlung paralleler Verbindungen zwischen 2 Industrien.

Die Script-KI baut 4-teilige Strecken.

Ölbohrinsel -(Schiff)- Dock -(Land)- Dock -(Schiff)- Dock -(Land)- Empfänger
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Ist das Pause-Tool von der Script-KI aus erreichbar?

Da bei Fehlern im Streckenbau sofort abgerissen wird möchte ich da eine aktive Pause setzen um die Fehler nachvollziehen zu können.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Weiss nicht, ob man das Pause-Tool ankriegt: probiere mal
Code:
local pause_tool = command_x(0x2000) // id's aus simmenu.h
try {
pause.work(our_player, coord3d(0,0,0)) // koordinate irrelevant
} catch(ev) { } // tool wirft einen Fehler, den hier auffangen und ignorieren
Zitieren
(07-09-2020, Monday-10:33:05 )Dwachs2 schrieb: ... 
Code:
local pause_tool = command_x(0x2000) // id's aus simmenu.h
...

das funktioniert schon nicht

Hat jetzt nicht die höchste Priorität.
Notfalls kommentiere ich aus oder baue eine dummy-Schleife ein.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
In r9219 ist debug.pause bzw debug.set_pause_on_error(true/false) drin.
Zitieren
danke
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
(08-09-2020, Tuesday-11:46:15 )Dwachs2 schrieb: In r9219 ist debug.pause bzw debug.set_pause_on_error(true/false) drin.

Wo und wie muss ich debug.set_pause_on_error setzen?

Bei debug.set_pause_on_error(true) bekomme ich den Fehler, das es den Index set_pause_on_error nicht gibt.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
Das Problem ist, dass es in den ganzen Klassen in der sqai auch einen debug-Parameter gibt. Da musst du statt debug.set_bla ::debug.set_bla schreiben
Zitieren


Gehe zu:


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