Skip to content

API UO GetQuestArrow de

Codex edited this page Oct 3, 2026 · 3 revisions

UO.GetQuestArrow

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

ClassicUO • Runtime API

Liest die Zielkoordinaten des Server-Auftragspfeils, nicht des lokalen Track-Pfeils.

Genaue Syntax

UO.GetQuestArrow() -> Array
UO.GetQuestArrow(point:Any) -> Array

Parameter

  • point — Optionaler alter Platzhalter: UO.GetQuestArrow(point) liest/verändert point nicht. UO.GetQuestArrow() und das Ergebnisarray verwenden.

Rückgabewert

Array [exists,x,y], drei Integer. [0] ist 1/true für vorhandenen Pfeil, sonst 0/false; [1] X, [2] Y. Ohne Pfeil [0,0,0]. Nur [0] ist logisch, nicht das Array. Bei mehreren Pfeilen gilt der erste gespeicherte; keine ID-Auswahl.

Verhalten

  • Track(0) entfernt keinen Serverpfeil. Marker bleiben ohne Grafik erhalten und erscheinen beim Öffnen. Grafikschließen erhält sie, Trennung löscht sie. Der Server kann seinen Pfeil versetzen/entfernen. Koordinaten beweisen keine Erreichbarkeit.
  • Zellenkoordinaten der aktuellen Karte, keine Pixel. Kein Z/Kartenargument. Gültige Stelle wählen; keine Prüfung der Begehbarkeit, Route oder bewegten Ziele.
  • Optionaler alter Platzhalter: UO.GetQuestArrow(point) liest/verändert point nicht. UO.GetQuestArrow() und das Ergebnisarray verwenden.

Interne Funktionen: vom Aufruf zum Ergebnis

SessionCharacterPanels prüft vollständige Pakete und speichert Datensätze im Sitzungsthread. Die Bridge liest ohne Grafik. GetProfile sendet 0xB8 und wartet bis 3 Sekunden in 25-ms-Schritten. Track ändert einen separaten Marker. ProfileGump/QuestArrowGump zeigen diese Daten. Pfeile zählen nicht zu GetGumpsCount.

1. GetQuestArrow

Liest die Zielkoordinaten des Server-Auftragspfeils, nicht des lokalen Track-Pfeils.

Array [exists,x,y], drei Integer. [0] ist 1/true für vorhandenen Pfeil, sonst 0/false; [1] X, [2] Y. Ohne Pfeil [0,0,0]. Nur [0] ist logisch, nicht das Array. Bei mehreren Pfeilen gilt der erste gespeicherte; keine ID-Auswahl.

Projektquelle: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; Funktion GetQuestArrow.

2. SessionCharacterPanels

Track(0) entfernt keinen Serverpfeil. Marker bleiben ohne Grafik erhalten und erscheinen beim Öffnen. Grafikschließen erhält sie, Trennung löscht sie. Der Server kann seinen Pfeil versetzen/entfernen. Koordinaten beweisen keine Erreichbarkeit.

SessionCharacterPanels prüft vollständige Pakete und speichert Datensätze im Sitzungsthread. Die Bridge liest ohne Grafik. GetProfile sendet 0xB8 und wartet bis 3 Sekunden in 25-ms-Schritten. Track ändert einen separaten Marker. ProfileGump/QuestArrowGump zeigen diese Daten. Pfeile zählen nicht zu GetGumpsCount.

Projektquelle: src/ClassicUO.Client/Game/Managers/SessionCharacterPanels.cs; Funktion SessionCharacterPanels.

Array [exists,x,y], drei Integer. [0] ist 1/true für vorhandenen Pfeil, sonst 0/false; [1] X, [2] Y. Ohne Pfeil [0,0,0]. Nur [0] ist logisch, nicht das Array. Bei mehreren Pfeilen gilt der erste gespeicherte; keine ID-Auswahl.

Beispiele

Direkte Anwendung

# Direkte Anwendung
#
# Liest die Zielkoordinaten des Server-Auftragspfeils, nicht des lokalen Track-Pfeils.
#
# Array [exists,x,y], drei Integer. [0] ist 1/true für vorhandenen Pfeil, sonst 0/false; [1] X,
# [2] Y. Ohne Pfeil [0,0,0]. Nur [0] ist logisch, nicht das Array. Bei mehreren Pfeilen gilt der
# erste gespeicherte; keine ID-Auswahl.

SUB Main()
    # Erst [0] prüfen, dann X/Y aus [1]/[2]. Das Array ist weder Serial noch Boolean.

    VAR arrow = UO.GetQuestArrow()
    IF arrow[0] = TRUE THEN
        UO.Print(CStr(arrow[1]) + ", " + CStr(arrow[2]))
    END IF
END SUB

Erläuterung der Parameter und Ausführung:

  • Erst [0] prüfen, dann X/Y aus [1]/[2]. Das Array ist weder Serial noch Boolean.

Bedingung im Spiel

# Bedingung im Spiel
#
# Liest die Zielkoordinaten des Server-Auftragspfeils, nicht des lokalen Track-Pfeils.
#
# Array [exists,x,y], drei Integer. [0] ist 1/true für vorhandenen Pfeil, sonst 0/false; [1] X,
# [2] Y. Ohne Pfeil [0,0,0]. Nur [0] ist logisch, nicht das Array. Bei mehreren Pfeilen gilt der
# erste gespeicherte; keine ID-Auswahl.

SUB Main()
    # Kopiert den Serverpunkt in Track, ohne Bewegung oder automatische Aktualisierung der Kopie.

    VAR arrow = UO.GetQuestArrow()
    IF arrow[0] = 1 THEN
        UO.Track(1, arrow[1], arrow[2])
    END IF
END SUB

Erläuterung der Parameter und Ausführung:

  • Kopiert den Serverpunkt in Track, ohne Bewegung oder automatische Aktualisierung der Kopie.

Vollständige Hilfsfunktion

# Vollständige Hilfsfunktion
#
# Liest die Zielkoordinaten des Server-Auftragspfeils, nicht des lokalen Track-Pfeils.
#
# Array [exists,x,y], drei Integer. [0] ist 1/true für vorhandenen Pfeil, sonst 0/false; [1] X,
# [2] Y. Ohne Pfeil [0,0,0]. Nur [0] ist logisch, nicht das Array. Bei mehreren Pfeilen gilt der
# erste gespeicherte; keine ID-Auswahl.

SUB Main()
    # ArrowDistance liefert GetDistance(x,y) oder −1 ohne Pfeil. Innerhalb zweier Zellen wird nur
    # Track entfernt.

    VAR distance = ArrowDistance()
    IF distance >= 0 AND distance <= 2 THEN
        UO.Track(0)
    END IF
END SUB

FUNCTION ArrowDistance()
    VAR arrow = UO.GetQuestArrow()
    IF arrow[0] = 0 THEN
        RETURN -1
    END IF
    RETURN UO.GetDistance(arrow[1], arrow[2])
END FUNCTION

Erläuterung der Parameter und Ausführung:

  • ArrowDistance liefert GetDistance(x,y) oder −1 ohne Pfeil. Innerhalb zweier Zellen wird nur Track entfernt.

Clone this wiki locally