Deutsches Simutransforum

Normale Version: Skripts fuer KI Spieler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Du hast doch in der Zeile darüber in deinem Fragment getestet, ob da ein Weg.
if ( test_way != null ) {
if ( test_way.get_player() != our_player ) {
tile_remove = 0
}
}
Genau das ist es ja.

Er dürfte gar nicht bis get_player kommen. Tut er aber. Und das steht auch weiter oben im Post.

Und hier kommt das Autopause bei Scriptfehlern ins Spiel. Denn bei 2 Auslösungen hatte ich unterschiedliche Felder bis ich Pause gedrückt hatte.

Der Scriptfehler tritt auf aber das Spiel und Script laufen weiter. Und dadurch verändern sich die Werte in der Fehlermeldung. Und/oder auch das was auf der Karte passiert verändert sich.

Die Script-KI läuft mit vollem Speed. Also extrem schnell für menschliche Reaktion.
Bin ein bisschen spaet dran mit Antworten:

1) Fehler beim Laden: Hier muesste ich die Ausgabe sehen, was bei '-debug 2 -log' so rausgehauen wird. Ich vermute, dass da fuer Feldnamen Zeichen verwendet wurden, die Squirrel nicht zulaesst (Umlaute). Siehe industry_manager_t::key, die Funktion toalnum am Ende macht die Umlaute raus.

2) get_player() - Die Methode heisst get_owner statt get_player (ich musste auch erst mal nachgucken...).  Beim Vergleich aber get_ower().nr gegen our_player_nr testen. get_owner() != our_player ist immer wahr (ist eine Eigenart von Squirrel)

3) Auto-pause. Ja, sowas muesste mal implementiert werden.
(29-08-2020, Saturday-16:34:17 )Dwachs2 schrieb: [ -> ]...
1) Fehler beim Laden: Hier muesste ich die Ausgabe sehen, was bei '-debug 2 -log' so rausgehauen wird. Ich vermute, dass da fuer Feldnamen Zeichen verwendet wurden, die Squirrel nicht zulaesst (Umlaute). Siehe industry_manager_t::key, die Funktion toalnum am Ende macht die Umlaute raus.
...

Der Ladefehler ist nicht wieder aufgetreten bisher. Möglich das sich da was verknotet hatte beim testen. Nach Neustart von Simutrans jedenfalls keine Probleme bisher.

Zitat:...
2) get_player() - Die Methode heisst get_owner statt get_player (ich musste auch erst mal nachgucken...).  Beim Vergleich aber get_ower().nr gegen our_player_nr testen. get_owner() != our_player ist immer wahr (ist eine Eigenart von Squirrel)
...

danke
Ist es möglich gezielt das Gleis eines Bahnüberganges abzureißen?

Weil, wenn Fahrzeuge darauf sind schlägt der Abriss fehl und der Bahnübergang bleibt bestehen.

Sonst muss ich dafür eine Schleife bauen.
Geht sowas:
Code:
local tool = command_x(tool_remove_way)
tool.work(our_player, pos, pos, "" + wt_rail)

?

Das sollte einen Doppelklick mit dem Schienen-Entferner auf den Bahnuebergang simulieren.
(30-08-2020, Sunday-12:41:23 )Dwachs2 schrieb: [ -> ]Geht sowas:
Code:
local tool = command_x(tool_remove_way)
tool.work(our_player, pos, pos, "" + wt_rail)

?

Das sollte einen Doppelklick mit dem Schienen-Entferner auf den Bahnuebergang simulieren.

zumindest produziert es keinen Fehler

danke
Damit kann man auch ganze Strecken abreissen, wenn die Signale es zulassen ... War das nicht mal gesucht?
(30-08-2020, Sunday-15:07:29 )prissi schrieb: [ -> ]Damit kann man auch ganze Strecken abreissen, wenn die Signale es zulassen ... War das nicht mal gesucht?

Ja, hatte ich auch als solches gefunden gehabt. Nur den genauen Aufruf eben nicht, also mit den zu übergebenden Parametern.

Das Abreißen von ganzen Strecken hat aber Grundlegende Nachteile. Denn dadurch kann es passieren das bestehende Strecken, die gekreuzt/mit benutzt wurden, unterbrochen werden.
Ich bin gerade wieder einmal etwas ratlos.

Verwendet wurde r9204 und r9205 mit pak64 mit Addons von SF. Und eine neu erstellte Karte mit den neuen Klimaeinstellungen.

Die Eisenbahnstrecke wurde gebaut und auch die Stationen ohne Fehler. Dann wurde die Strecke plötzlich wieder abgerissen.

Und jetzt bekomme ich folgenden Fehler

[Bild: attachment.php?aid=17489]

Die entsprechenden Code-Bereiche hab ich nicht angefasst.

Ich wollte c_start und c_end nach dem Bau der Stationen ans Ende der Bahnsteige verlegen. Dabei kam dann immer die Fehlermeldung das get_way_dirs nicht existiert. Bis dann obige Meldung kam.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38