Deutsches Simutransforum
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


RE: Script-KI - get_halt(our_player).get_tile_list() - Andarix - 12-09-2020

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()
    }
...



RE: Script-KI - get_halt(our_player).get_tile_list() - Dwachs2 - 12-09-2020

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



RE: Script-KI - get_halt(our_player).get_tile_list() - Andarix - 12-09-2020

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.


RE: Script-KI - get_halt(our_player).get_tile_list() - Dwachs2 - 13-09-2020

Deshalb eine der beiden anderen get_halt Funktionen aufrufen, dann hat man eine halt_x Instanz, mit der kann dann weitergearbeitet werden.


RE: Script-KI - get_halt(our_player).get_tile_list() - Andarix - 13-09-2020

(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.


RE: Script-KI - get_halt(our_player).get_tile_list() - Dwachs2 - 13-09-2020

(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.