Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script-KI - get_halt(our_player).get_tile_list()
#11
Das mache ich ja. Nur dabei wird das Halt-Feld zurückgegeben. Bei Halten auf dem Wasser eben die leere Wasserkachel.
Und da laufen alle Haltabfragen ins leere, weil es kein Building-Objekt darauf gibt.

Oder ich mache was falsch.

Code:
...
    local start_l = null
    local end_l = null
    {
        local entries = line_obj.get_schedule().entries
        local entries_count = entries.len()
        if ( entries.len() >= 2 ) {
            start_l = tile_x(entries[0].x, entries[0].y, entries[0].z)
            end_l = tile_x(entries[entries.len()-1].x, entries[entries.len()-1].y, entries[entries.len()-1].z)
        }
    }

    // destroy line
    line_obj.destroy(our_player)

    //local wt = start_l.find_object(mo_building)//.get_waytype()

    local start_h = start_l.get_halt()
    local end_h = end_l.get_halt()

    local start_f = null
    local end_f = null
    if ( wt != wt_water ) {
        start_f = start_h.get_factory_list()
        end_f = end_h.get_factory_list()
    }
...
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#12
Ich weiss nicht, ob ich dich richtig verstehe: Willst du wissen, was das halt_x Objekt ist zu den Feldern auf denen die Schiffe halten? Dann gibts zwei Moeglichkeiten:
Code:
entries[0].get_halt(our_player) // direkt auf den entries aufrufen (nicht tile_x.get_halt() )
oder
Code:
::halt_x.get_halt(coordinaten, ourplayer) // wirklich mit dem Doppelpunkt
Zitieren
#13
Ich hab den Halt vom Schiff aus dem Fahrplan.

Ich benötige mindestens ein Feld vom Hafen/Dock/ggf. Industrie. Also ein bebautes Feld um dann Fabrikverbindungen/Stationsfelderliste abfragen zu können.

Mein Problem ist, das kachel.get_halt() null liefert, wenn es sich um einen Schiffshalt auf dem Wasser handelt.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#14
Deshalb eine der beiden anderen get_halt Funktionen aufrufen, dann hat man eine halt_x Instanz, mit der kann dann weitergearbeitet werden.
Zitieren
#15
(13-09-2020, Sunday-11:32:53 )Dwachs2 schrieb: Deshalb eine der beiden anderen get_halt Funktionen aufrufen, dann hat man eine halt_x Instanz, mit der kann dann weitergearbeitet werden.

Ich denke da hab ich dann ein anderes Problem.

Wenn ich start_h = entries[0].get_halt() setze und dann die Linie lösche, dann verliert auch start_h den Wert und ist null.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#16
(13-09-2020, Sunday-13:13:03 )Andarix schrieb: Wenn ich start_h = entries[0].get_halt() setze und dann die Linie lösche, dann verliert auch start_h den Wert und ist null.
Das konnte ich nicht reproduzieren. Habe start_h.get_name vor und nach dem Loeschen ausgeben lassen, ging.
Zitieren


Gehe zu:


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