Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script-Tool Support
#1
(26-02-2022, Saturday-16:11:14 )Dwachs2 schrieb: Tools koennen auch in der menuconf.tab eingebaut werden: scripts(bla) baut alle Skripte ein, die in ihrer tab Datei ``menu=bla'' stehen haben.

Was ich gepostet habe ist die Theorie Smile Wenn etwas nicht funktioniert, dann ists ein Bug.
...

Müsste ich erst wieder testen. Finde meine menuconf.tab von damals mit Buttons nicht mehr.


Zitat:...
Das Problem mit globalen Tools sind die Cursor/Icon Grafiken. Die muessten dann zu allen paksets passen.

Stellt sich die Frage, wer für jedes pakset einen eigenen Button/Cursor für sein Script-Tool erstellt. Und dann gibt es Chaos, weil die ja alle gleich heisen müssen oder eben für jedes Pakset eine eigene description.tab erstellt werden muss.

Ausserdem stellt sich diese Frage nur beim Button. Beim Cursor ist es relativ egal wie der aussieht. Da ist dann eher die Grafikgröße das Problem.


Was ich der Zeit als Bugs auffasse:

- Cursor-Grafik wird nicht mit der Karte gezoomt -> falsche Definition bei der Vorlagendatei von THLeaderH
- das Script-Tool Fenster wird nach Auswahl eines Tools geschlossen
- im Script-Tool Fenster oben das Feld Dateiname ist überflüssig, weil was soll man da eintragen
- fehlende Übersetzung der Beschreibung und des Tooltips - Patch

Was ich mir der Zeit wünschen würde:

- Script-Tool Fenster bleibt offen und ausgewähltes Tool ist durch gedrückten Button erkennbar
- globales laden von Script-Tools (beim Script-Tool Fenster stellt sich die Frage der Buttons nicht)
- anklickbare Koordinaten in der Meldungsausgabe

dürfte aber aktuell nicht lebensnotwendig sein
- ggf. Definition für die verschiedenen Grafikgrößen bei Cursor und Marker
-> alternativ: Cursor- und Markergrafik scalieren, sofern die Größe feststellbar ist
Script-KI für Simutrans r10401+ / Simutrans Nightly Builds
Zitieren
#2
Alle Bilder mit => skalieren nicht, alle anderen sollten automatisch Skalieren, wenn nicht explizit anders aufgerufen. Der Cursor sollte skalieren.
Zitieren
#3
(26-02-2022, Saturday-17:44:12 )prissi schrieb: Alle Bilder mit => skalieren nicht, alle anderen sollten automatisch Skalieren, wenn nicht explizit anders aufgerufen. Der Cursor sollte skalieren.

THLeaderH hat das Cursor-Bild in seiner dat mit => angegeben, was ich halt blind übernommen hab.

https://forum.simutrans.com/index.php/to...#msg186698

Eine vollständige Doku gibt es ja nicht.


Bin gerade über was weiteres gestolpert, was ich bisher nicht wusste.
https://forum.simutrans.com/index.php/to...#msg193232
Hab allerdings im Moment keinen Schimmer vom Zusammenhang.

Ätzend, wenn sich Informationen in den Untiefen von Forums-Threads befinden.
Script-KI für Simutrans r10401+ / Simutrans Nightly Builds
Zitieren
#4
(26-02-2022, Saturday-17:22:10 )Andarix schrieb:
(26-02-2022, Saturday-16:11:14 )Dwachs2 schrieb: Tools koennen auch in der menuconf.tab eingebaut werden: scripts(bla) baut alle Skripte ein, die in ihrer tab Datei ``menu=bla'' stehen haben.

Was ich gepostet habe ist die Theorie Smile Wenn etwas nicht funktioniert, dann ists ein Bug.
...

Müsste ich erst wieder testen. Finde meine menuconf.tab von damals mit Buttons nicht mehr.
...

funktioniert

Das hatte ich damals falsch verstanden.

Schwierig ist nur die Beschriftung. Zum einen muss das Tool selber beschrieben werden und dann noch die Aktionen des Spielers. Das alles im Tooltip unterbringen macht den sehr lang.

Weis nicht ob beim Button titel + tooltip angezeigt werden kann als Tooltip.
Script-KI für Simutrans r10401+ / Simutrans Nightly Builds
Zitieren
#5
was meinst du mit
Zitat:- anklickbare Koordinaten in der Meldungsausgabe
Zitieren
#6
So was wie bei den Scenarios.

Code:
c.href(st_halt.get_name()+" ("+c.tostring()+")")


Bei den Script Tools ist das Problem, das es nur eine Ausgabe gibt, nämlich die die mit return zurückgegeben wird.

Wäre es nur eine Station, könnte ich die Koordinate wie gehabt hinten dran hängen und in der Meldung wäre vorne der anklickbare Pfeil.

Hab ich mehrere Stationen, baue ich die Meldung mit Zeilenumbrüchen zusammen, kann aber am Ende nur eine Koordinate der Meldung mitgeben.

Um das umständliche suchen nach der Station zu umgehen wäre es halt schöner, jeder Station eine Sprungmarke mitzugeben um direkt hinspringen zu können.

[Bild: attachment.php?aid=17781]

Code:
...
local passenger_waiting = 0

    foreach(station in halt_list_x()) {
        local count_waiting = station.get_waiting()

        if ( station.get_connections(good_desc_x("Passagiere")).len() > 0 ) {

            if ( count_waiting[4] < count_waiting[3] && count_waiting[3] < count_waiting[2] && count_waiting[2] < count_waiting[1] ) {
               count++
               local tile_list = station.get_tile_list()
               output_message += "\n(" + station.get_name() + " " + coord_to_string(square_x(tile_list[0].x, tile_list[0].y)) + ")"

            }
         }
    }

  output_message = format(translate("Stations where the number of waiting %s has been increasing for 4 months:"), translate("Passagiere")) + " (" + count + ")" + output_message

return gui.add_message_at(pl, output_message, world.get_time())
...


Angehängte Dateien
.jpg   Zwischenablage02.jpg (Größe: 45,04 KB / Downloads: 150)
Script-KI für Simutrans r10401+ / Simutrans Nightly Builds
Zitieren
#7
Du kannst in scripttool_check_waiting_pass gui_message_at(bla) mehr als einmal aufrufen (also fuer jede fragliche Station einzeln).

Die Rueckgabe bei work ist fuer reine Fehlermeldungen (Strings) gedacht, also return "Die Bruecke ist nicht frei" oder so.
Zitieren
#8
(27-02-2022, Sunday-19:00:56 )Dwachs2 schrieb: Du kannst in scripttool_check_waiting_pass gui_message_at(bla) mehr als einmal aufrufen (also fuer jede fragliche Station einzeln).
...

Hatte das am Anfang glaube auch mal versucht. Hatte damit aber glaube Probleme. Bzw. ging es darum die zusammen zu fassen zu einer Meldung.

Der Hacken dabei ist aber, das die Meldungen dann einzelne Zeilen sind, die durch andere Ausgaben zerpflückt werden können.

Und jeder Station eine eigene komplette Meldung geben, weis nicht ob das so gut ist. Wenn das sehr viele sind, dann weis man gar nicht wo man anfangen soll.
Wie übersichtlich das dann noch ist weis ich auch nicht.

Nachteil ist auch, das die Meldungen im Meldungs-Fenster weiter scrollen bei neuen Meldungen. Die jetzige Ausgabe kann man anklicken und hat ein eigenes Fenster mit der Stationsliste, die man der Reihe nach abarbeiten kann.

Und die zweite Toolfunktion ist ja, verbundene Stationen zu der angeklickten zu finden. Da dürften Einzelmeldungen auch nicht so hilfreich sein. Bzw. wird es dann sehr unübersichtlich, wenn mehrere nahezu gleich lautende Meldungen nacheinander stehen. Vor allem dann, wenn die Zeilen nicht vollständig im Bild sind und alle quasi gleich aussehen, weil der gleiche Textteil angezeigt wird.


Das interessante bei den Script Tools ist das statistische Abfragen von Daten. Nur muss man die dann auch irgendwie informativ ausgeben können. Deshalb halte ich als für sinnvoller für die Ausgabe ein eigenes Ausgabe-Fenster zu haben, wo auch die html-Formatierung genutzt werden kann (wie beim Scenario-Fenster). Mit der bisherigen Formatierung kann man schon einiges machen. Eine tabellarische Ausgabe wäre bei einigen Sachen zwar besser, aber dürfte mehr Aufwand bedeuten.

Ein Beispiel wäre das Auflisten der Stationen einer Linie mit den wartenden Passagieren der letzten 4 Monate.
Dazu braucht man aber eine 5-spaltige Tabelle für eine übersichtliche Darstellung.
Script-KI für Simutrans r10401+ / Simutrans Nightly Builds
Zitieren
#9
Wenn man eines der Listenfenster per Script Tool füttern könnte.

Bei den Listenfenstern gibt es ja oben die Beschriftung und unten die Liste.
Das der Stadtliste wäre ganz gut geeignet. Nur ohne Statistik.

Da wäre schon viel erreicht, weil keine Längenbeschränkung und jeder Listeneintrag hätte seinen Sprungpfeil vor der Zeile.

Und durch die Filteroptionen wäre gleich ein ordentlicher Mehrwert gegeben.
Script-KI für Simutrans r10401+ / Simutrans Nightly Builds
Zitieren


Gehe zu:


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