Script-KI - get_halt(our_player).get_tile_list() - Druckversion +- Deutsches Simutransforum (https://simutrans-forum.de/mybb) +-- Forum: Simutrans (https://simutrans-forum.de/mybb/forumdisplay.php?fid=3) +--- Forum: Programmierung und Patches (https://simutrans-forum.de/mybb/forumdisplay.php?fid=38) +--- Thema: Script-KI - get_halt(our_player).get_tile_list() (/showthread.php?tid=9293) Seiten:
1
2
|
Script-KI - get_halt(our_player).get_tile_list() - Andarix - 22-06-2020 Code: local entries = cnv.get_schedule().entries Ich frage die Stationsfelder des im Fahrplan stehenden Haltes ab. start_l[0] liefert bei einzelnen Bahnsteigen das Fahrplanfeld. Nun hab ich das Problem, das bei einer kombinierten Station das Dock-Feld zurückgegeben wird für einen Zug statt dem Fahrplanfeld des Zuges. Frage ich nur get_halt(our_player) ab, dann habe ich keine Koordinaten ( start_l.x usw. ). RE: Script-KI - get_halt(our_player).get_tile_list() - prissi - 22-06-2020 Das tile(0) ist das Tile, dass am mittigtsten liegt. Das kann alles sein, auch ein Stationsgebaeude. Ausserdem wird obiger Code mit Wegpunkten wohl absemmeln. Meinem Gefuehl nach sollte sowas wie "entries[0].get_tile()" die bessere Wahl sein, um den Bahnsteig herauszufinden. (Leider kann per Choosesignal immer noch ein anderer werden.) Was willst du denn genau erreichen? RE: Script-KI - get_halt(our_player).get_tile_list() - Andarix - 22-06-2020 (22-06-2020, Monday-04:08:27 )prissi schrieb: Das tile(0) ist das Tile, dass am mittigtsten liegt. Das kann alles sein, auch ein Stationsgebaeude. Ausserdem wird obiger Code mit Wegpunkten wohl absemmeln. Nein, Tile[0] ist das Tile was als erstes gebaut wurde von der Station. Zumindest nach dem Bau solange die Karte nicht neu geladen wird. Wie es nach dem Laden aus sieht hab ich noch nicht ermittelt. EDIT Selbst wenn es ein mittiges Teil sein soll, dann stimmt das nicht für obige Station. Da ist es das obere Eckfeld. Bei den Bahnsteigen ist es das was als c_start und c_end als erstes bebaut wird. Bei der kombinierten Station wurde zuerst das Dock gebaut und dann der Bahnsteig dazu. Deshalb liefert es eben das Dock und nicht den Bahnsteig. Wegpunkte sind vorläufig kein Problem, weil es sich um die Script-KI handelt, die keine Wegpunkte bisher beherrscht. (22-06-2020, Monday-04:08:27 )prissi schrieb: .... Zur Ermittlung des Streckenverlaufes brauche ich den Start- und Endpunkt der Linie. astar.nut ganz unten Code: /* RE: Script-KI - get_halt(our_player).get_tile_list() - prissi - 22-06-2020 Für Ausweichen usw. reicht aber ein beliebes Bahnsteigstück. Ansosnten muss man einen Convoi loschicken und sich dessen Route ansehen. RE: Script-KI - get_halt(our_player).get_tile_list() - Andarix - 22-06-2020 (22-06-2020, Monday-17:24:48 )prissi schrieb: Für Ausweichen usw. reicht aber ein beliebes Bahnsteigstück. Ansosnten muss man einen Convoi loschicken und sich dessen Route ansehen. Ja schon, und genau das wird ja gemacht aber eben ohne dem Zug Feld für Feld zu folgen. Bis eben auf diese eine Station funktioniert die aktuelle Umsetzung ganz gut. Auch wenn noch viel Luft für Optimierungen ist. Nur bevor optimiert werden kann müssen alle Varianten sicher funktionieren. Aktuell werden nämlich nur auf geraden Streckenabschnitten Ausweichstellen gebaut. Was aber bei einer Mindestlänge von 8 Feldern zu zu wenigen Bauplätzen führen kann. Nämlich dann, wenn kurvenreich oder viel diagonaler Streckenanteil vorhanden ist. Auch die Positionsbestimmung ist noch Verbesserungswürdig. Ich muss also nur das Feld vom Fahrplanhalt direkt ermitteln ohne die Teileliste des Halt-Objektes. Ich weis halt nur nicht, wie das beim Fahrplanfenster gemacht wird. Auf jeden Fall scheint es keinen Zugriff darauf bisher von der Script-KI aus zu geben. Und bevor ich stundenlang suche warte ich halt auf Dwachs und teste lieber in der Zwischenzeit. RE: Script-KI - get_halt(our_player).get_tile_list() - prissi - 23-06-2020 Ein Bahnhof kann nur zwei Enden haben, da Boegen nicht erlaubt. Der Routensucher sucht erst bis zur Fahrplankoordinate und dann weiter bis zum Bahnsteigende in die Richtung, in die nicht gefahren wurde. Ein Funktion, ein Bahnsteigende unabhaengig von einer Routensuche zu ermittlen, gibt es in Simutrans bisher nicht. Fuer Ausweichstellen braucht es das aber auch nicht, ist do wurst wo im Bahnhof der Zug endet. Ich fuerchte, wir reden gerade aneinander vorbei. RE: Script-KI - get_halt(our_player).get_tile_list() - Dwachs2 - 23-06-2020 Ich verstehe das Problem auch nicht. Die Koordinaten von Start/Ende kannst du direkt aus dem Fahrplan auslesen: Code: local entries = cnv.get_schedule().entries RE: Script-KI - get_halt(our_player).get_tile_list() - Andarix - 23-06-2020 (23-06-2020, Tuesday-08:31:00 )Dwachs2 schrieb: ... Die Koordinaten von Start/Ende kannst du direkt aus dem Fahrplan auslesen: Das ist das was ich suchte. Ich habe da immer noch Verständnisprobleme was die Doku angeht. RE: Script-KI - get_halt(our_player).get_tile_list() - Andarix - 12-09-2020 Fahrplanhalte von Schiffen liegen für gewöhnlich im Wasser. Wie ermittele ich die zugehörigen Stationsfelder ( meist Dock )? RE: Script-KI - get_halt(our_player).get_tile_list() - Dwachs2 - 12-09-2020 Kann mit halt_x::get_halt(pos, player) abgefragt werden. Alternativ ueber den Fahrplan: schedule[i].get_halt(player) |