![]() |
Script-KI - Werte Speichern - 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 - Werte Speichern (/showthread.php?tid=9317) |
RE: Script-KI - Werte Speichern - Dwachs2 - 19-09-2020 start_l, end_l: sollten nicht auf null gesetzt werden. Routensuche: Aufruf vermutlich falsch, start & end muessen Arrays sein. Wenn start/end nur ein Feld sind, dann in eckige Klammern packen: bla.search_route( [start], [end]) Linienstatistik: Gibt schon was: z.b. line.get_profit() siehe http://dwachs.github.io/simutrans-sqapi-doc/classline__x.html RE: Script-KI - Werte Speichern - Andarix - 19-09-2020 (19-09-2020, Saturday-16:19:08 )Dwachs2 schrieb: .... Das ist die Monatsstatistik. Also selber zusammen rechnen. RE: Script-KI - Werte Speichern - Dwachs2 - 19-09-2020 Eine andere Statistik gibts nicht. Was haettest du denn gerne? RE: Script-KI - Werte Speichern - Andarix - 19-09-2020 Ich hab im Moment das Problem, neue Linien nicht gleich wieder zu entfernen. Hab da noch nicht den richtigen Ansatz gefunden. RE: Script-KI - Werte Speichern - Andarix - 20-06-2021 (30-08-2020, Sunday-12:44:07 )Dwachs2 schrieb: Zuerst in der Klassendefinition von industry_link_t eine weitere Variable einfuehren, z.b. dingsbums = 0. Problem bei der Geschichte, ein Link kann mehrere Lines haben. Darunter durchaus auch mehrere Eisenbahnen. Das heist, die Speicherung müsste geschachtelt werden mit Linienname und Wert. Ich bin mir auch nicht sicher, ob die Linien dann nicht unterschiedlichen Spielern gehören. RE: Script-KI - Werte Speichern - prissi - 21-06-2021 Ohne jetzt genau den Code zu kennen: Kann man das nicht mit einem zweiten Zaehler auch bein Linien machen? Wenn dann der x. Monatesreste fuer diesen Link ist, dann wird der Zaehler bei allen Linien um eins reduziert. Nur Linien mit Zaehler Null wuerden dann updateberechtigt sein. RE: Script-KI - Werte Speichern - Andarix - 21-06-2021 (21-06-2021, Monday-02:54:27 )prissi schrieb: Ohne jetzt genau den Code zu kennen: Kann man das nicht mit einem zweiten Zaehler auch bein Linien machen? Wenn dann der x. Monatesreste fuer diesen Link ist, dann wird der Zaehler bei allen Linien um eins reduziert. Nur Linien mit Zaehler Null wuerden dann updateberechtigt sein. Die Linien sind die Linienobjekte von Simutrans selber. Da kann ich schwerlich das Objekt einfach so erweitern. Der Script-Code stammt von Dwachs. So richtig hab ich den auch noch nicht verstanden. Es scheint aber so zu sein, das es ein Link-Objekt im Script gibt, das als Schlüssel die beiden Industrien beinhaltet die verbunden werden. Und in diesem Link-Objekt gibt es einen Eintrag Lines, der wiederum alle Linien als Array beinhaltet, die irgendwie diese beiden Industrien verbinden. Das können Direktverbindungen sein aber auch kombinierte Strecken. Auf jeden Fall sind die Linien die Linen-Objekte von Simutrans selber. In wie weit man da was für die Script-KI ändern kann/will liegt nicht bei mir. Das Management wäre jedenfalls etwas leichter, wenn die Anzahl der Ausweichstellen und ein Zeitstempel direkt bei den Linien abgespeichert werden könnten. Aktuell sieht die Klassendefinition für link bei mir so aus. Code: /** Im Prinzip muss ich parallel zu lines[] ein Array speichern mit meinen eigenen Werten als Objekt für die Linie. Dadurch bin ich unabhängig vom Programmcode selber. line_x Was auf jeden Fall helfen würde wäre, wenn man beim Spieler-Objekt einen Eintrag abfragen kann der den Spielertyp (Mensch, C-KI, Script-KI) zurückgibt. Das würde es erleichtern Strecken umzubauen. Für den Streckenumbau/-abriss wäre es auch nützlich die Fahrzeugzahl abzufragen, die ein Streckenstück benutzt haben. Dafür sind aber Code-Änderungen an Simutrans selber nötig. RE: Script-KI - Werte Speichern - prissi - 22-06-2021 Zitat:Was auf jeden Fall helfen würde wäre, wenn man beim Spieler-Objekt einen Eintrag abfragen kann der den Spielertyp (Mensch, C-KI, Script-KI) zurückgibt.Die Sciprt-KI weiss doch, dass sie ein Script ist, und kann daher kein Mensch sein. Was die anderen Spieler angeht, wozu soll denn das gut sein? RE: Script-KI - Werte Speichern - Dwachs2 - 22-06-2021 Die 'Fahrzeuganzahl pro Weg' abzufragen sollte schnell eingebaut sein. Die remove_line-Methode sieht aus, als wuerde sie nicht das tun, was man denkt. Ich werde mal versuchen, deine industry_link_t Klasse so zu aendern, dass du dann neue Daten pro Linie dazubauen kannst. RE: Script-KI - Werte Speichern - Andarix - 22-06-2021 (22-06-2021, Tuesday-06:37:41 )prissi schrieb:Zitat:Was auf jeden Fall helfen würde wäre, wenn man beim Spieler-Objekt einen Eintrag abfragen kann der den Spielertyp (Mensch, C-KI, Script-KI) zurückgibt.Die Sciprt-KI weiss doch, dass sie ein Script ist, und kann daher kein Mensch sein. Was die anderen Spieler angeht, wozu soll denn das gut sein? Das Problem was es zu lösen gilt ist der Straßenausbau, wenn schnellere Fahrzeuge verfügbar sind. Straßen können bekanntlich auch von anderen Spielern genutzt werden. Wurde ein Stück Straße gebaut und die Verbindung eingestellt, die dieses Stück benutzte, dann wird dieses Stück von dem betreffenden Spieler nie ausgebaut auf eine höhere Geschwindigkeit. Benutzt ein anderer Spieler dieses Stück Straße mit, dann kann er es nie ausbauen. Es gibt nun zwei Möglichkeiten, a) im Namen des Besitzers die Straße ausbauen (was vermutlich nicht gehen wird, keine Ahnung ob Spielerwechsel innerhalb der Script-KI möglich ist oder Tools mit Spieler-ID aufgerufen werden können) b) eine Umgehung bauen, wenn es eine KI ist. Und für Fall a) ist es besser zu wissen, das es sich um eine Script-KI handelt. Auch beim Erschließen von Industrien ist es Hilfreich zu ermitteln, welche Spieler dort schon Stationen haben. (22-06-2021, Tuesday-13:08:30 )Dwachs2 schrieb: ... Deswegen gibt es vermutlich die ungültigen Linien, die ich in check_link(link) dann extra testen muss. Zeile 185 ff Code: // iterate through all lines Die remove_line-Methode dürfte aber so von Dir stammen. |