API UO Ground de - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.Ground

ClassicUO • Runtime API

Liefert den besonderen Boden-Selektor für den Suchbehälter oder das Transferziel.

Genaue Syntax

UO.Ground() -> Integer

Parameter

Keine Parameter.

Rückgabewert

Integer, immer 0. Diese Null bezeichnet gültig den Boden, nicht FALSE, einen Suchfehler, eine Objekt-ID, Grafik, Kartennummer oder Koordinate. Prüfen Sie das Ergebnis der Suche bzw. des Transfers, nicht Ground() als Erfolgswert.

Verhalten

  • Keine Parameter. Ground() allein sucht und bewegt nichts, öffnet kein Target, sendet keine Pakete und ändert keine Suchergebnisse. Auch vor der Anmeldung ist das Ergebnis 0.
  • Als container/destination in FindType, FindList, Count, FindTypeEx, FindTypesArrayEx, CountEx oder MoveItem verwenden. Die Suche sieht geladene Weltobjekte, lädt aber keine entfernten Felder. Boden-X/Y/Z sind Weltkoordinaten, keine Behälterfenster-Pixel.
  • FindType(type, color) durchsucht weiterhin das Inventar: Argument zwei ist die Farbe. Boden: FindType(type, color, UO.Ground()). Kompakte FindType/MoveItem verwenden -1 fürs Inventar; kompatible FindTypeEx/FindTypesArrayEx/CountEx akzeptieren -1 auch als Boden. UO.Ground() oder den Namen ground bevorzugen; Zahlenkonventionen unterscheiden sich.
  • Primärquelle: Stealth Ground. Die beschriebenen Konventionen und Beispiele gelten für diesen Client.

Interne Funktionen: vom Aufruf zum Ergebnis

Tatsächliche interne Schritte. FindGroundTypes ist eine vollständige Benutzerfunktion, kein zusätzlicher eingebauter Befehl.

1. ExecuteStealthCompatibility

Die Runtime gibt ohne Argumente Integer 0 zurück, ohne die Spiel-Bridge aufzurufen.

Integer, immer 0. Diese Null bezeichnet gültig den Boden, nicht FALSE, einen Suchfehler, eine Objekt-ID, Grafik, Kartennummer oder Koordinate. Prüfen Sie das Ergebnis der Suche bzw. des Transfers, nicht Ground() als Erfolgswert.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; Funktion ExecuteStealthCompatibility.

2. ConvertContainer

Der kompakte Suchadapter übersetzt explizit 0 in den internen Bodenbereich und behält -1 als Inventarstandard. Der kompatible Adapter akzeptiert 0 und historisch -1 als Boden; benannte Behälter werden separat aufgelöst.

FindType(type, color) durchsucht weiterhin das Inventar: Argument zwei ist die Farbe. Boden: FindType(type, color, UO.Ground()). Kompakte FindType/MoveItem verwenden -1 fürs Inventar; kompatible FindTypeEx/FindTypesArrayEx/CountEx akzeptieren -1 auch als Boden. UO.Ground() oder den Namen ground bevorzugen; Zahlenkonventionen unterscheiden sich.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; Funktion ConvertContainer.

3. ConvertStealthSearchContainer

Der kompakte Suchadapter übersetzt explizit 0 in den internen Bodenbereich und behält -1 als Inventarstandard. Der kompatible Adapter akzeptiert 0 und historisch -1 als Boden; benannte Behälter werden separat aufgelöst.

FindType(type, color) durchsucht weiterhin das Inventar: Argument zwei ist die Farbe. Boden: FindType(type, color, UO.Ground()). Kompakte FindType/MoveItem verwenden -1 fürs Inventar; kompatible FindTypeEx/FindTypesArrayEx/CountEx akzeptieren -1 auch als Boden. UO.Ground() oder den Namen ground bevorzugen; Zahlenkonventionen unterscheiden sich.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; Funktion ConvertStealthSearchContainer.

4. ResolveTransferDestination

Die Zielauflösung erhält Boden als 0. Die Client-Bridge verwendet Weltkoordinaten; das Containerfeld im Drop-Paket ist 0xFFFFFFFF. API-Selektor und Paketfeld sind unterschiedliche Darstellungen.

0x40001001 durch eine erreichbare Objekt-Serial ersetzen. IsObjectExists prüft das geladene Objekt. MoveItem(item, amount, destination, X, Y, Z): amount=0 bedeutet ganzer Stapel; Ground() wählt Boden; GetX/GetY/GetZ liefern das Spielerfeld. result=1 bedeutet, dass der Client die Anfrage annimmt, sonst 0. Das ist weder Ground()s Ergebnis noch eine Serverbestätigung.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; Funktion ResolveTransferDestination.

5. MoveItem

Die Zielauflösung erhält Boden als 0. Die Client-Bridge verwendet Weltkoordinaten; das Containerfeld im Drop-Paket ist 0xFFFFFFFF. API-Selektor und Paketfeld sind unterschiedliche Darstellungen.

0x40001001 durch eine erreichbare Objekt-Serial ersetzen. IsObjectExists prüft das geladene Objekt. MoveItem(item, amount, destination, X, Y, Z): amount=0 bedeutet ganzer Stapel; Ground() wählt Boden; GetX/GetY/GetZ liefern das Spielerfeld. result=1 bedeutet, dass der Client die Anfrage annimmt, sonst 0. Das ist weder Ground()s Ergebnis noch eine Serverbestätigung.

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

Keine Parameter. Ground() allein sucht und bewegt nichts, öffnet kein Target, sendet keine Pakete und ändert keine Suchergebnisse. Auch vor der Anmeldung ist das Ergebnis 0.

Beispiele

Selektor lesen

# Selektor lesen
#
# Liefert den besonderen Boden-Selektor für den Suchbehälter oder das Transferziel.
#
# Integer, immer 0. Diese Null bezeichnet gültig den Boden, nicht FALSE, einen Suchfehler, eine
# Objekt-ID, Grafik, Kartennummer oder Koordinate. Prüfen Sie das Ergebnis der Suche bzw. des
# Transfers, nicht Ground() als Erfolgswert.

SUB Main()
    # destination erhält Integer 0, Print zeigt ihn an. Es wird nichts abgelegt.

    VAR destination = UO.Ground()
    UO.Print(CStr(destination))
END SUB

Erläuterung der Parameter und Ausführung:

  • destination erhält Integer 0, Print zeigt ihn an. Es wird nichts abgelegt.

Goldstapel am Boden finden

# Goldstapel am Boden finden
#
# Liefert den besonderen Boden-Selektor für den Suchbehälter oder das Transferziel.
#
# Integer, immer 0. Diese Null bezeichnet gültig den Boden, nicht FALSE, einen Suchfehler, eine
# Objekt-ID, Grafik, Kartennummer oder Koordinate. Prüfen Sie das Ergebnis der Suche bzw. des
# Transfers, nicht Ground() als Erfolgswert.

SUB Main()
    # 0x0EED: Goldgrafik; zweites -1: beliebige Farbe. Ground() wählt die Welt; FALSE deaktiviert
    # Behälterrekursion. FindTypeEx liefert eine Serial oder 0; <> 0 prüft diese Serial.
    # FindDistance/FindVertical und Ignore gelten.

    VAR id = UO.FindTypeEx(0x0EED, -1, UO.Ground(), FALSE)
    IF id <> 0 THEN
        UO.Print(HEX(id))
    ELSE
        UO.Print('0')
    END IF
END SUB

Erläuterung der Parameter und Ausführung:

  • 0x0EED: Goldgrafik; zweites -1: beliebige Farbe. Ground() wählt die Welt; FALSE deaktiviert Behälterrekursion. FindTypeEx liefert eine Serial oder 0; <> 0 prüft diese Serial. FindDistance/FindVertical und Ignore gelten.

Vollständige Suche nach zwei Grafiken

# Vollständige Suche nach zwei Grafiken
#
# Liefert den besonderen Boden-Selektor für den Suchbehälter oder das Transferziel.
#
# Integer, immer 0. Diese Null bezeichnet gültig den Boden, nicht FALSE, einen Suchfehler, eine
# Objekt-ID, Grafik, Kartennummer oder Koordinate. Prüfen Sie das Ergebnis der Suche bzw. des
# Transfers, nicht Ground() als Erfolgswert.

SUB Main()
    # FindGroundTypes(firstType, secondType, radius, height) sucht Gold 0x0EED und schwarze Perlen
    # 0x0F7A mit radius=5, height=10. DIM types[1] erzeugt zwei Plätze, colors[0] und containers[0]
    # je einen. Ein Stapel zählt als ein Objekt. Typen/Farben sind Alternativen; überlappende
    # Behälter erzeugen keine doppelten IDs. Rückgabe: gespeichertes Serial-Array. Finally stellt
    # beide Grenzen wieder her, Main zeigt jede ID. Die Funktion ist vollständig angegeben.

    VAR ids = FindGroundTypes(0x0EED, 0x0F7A, 5, 10)
    FOR EACH id IN ids
        UO.Print(HEX(id))
    NEXT
END SUB

FUNCTION FindGroundTypes(firstType, secondType, radius, height)
    VAR oldDistance = UO.FindDistance()
    VAR oldVertical = UO.FindVertical()
    DIM types[1]
    types[0] = firstType
    types[1] = secondType
    DIM colors[0]
    colors[0] = -1
    DIM containers[0]
    containers[0] = UO.Ground()
    TRY
        UO.FindDistance(radius)
        UO.FindVertical(height)
        UO.FindTypesArrayEx(types, colors, containers, FALSE)
        RETURN UO.GetFoundItems()
    FINALLY
        UO.FindDistance(oldDistance)
        UO.FindVertical(oldVertical)
    END TRY
END FUNCTION

Erläuterung der Parameter und Ausführung:

  • FindGroundTypes(firstType, secondType, radius, height) sucht Gold 0x0EED und schwarze Perlen 0x0F7A mit radius=5, height=10. DIM types[1] erzeugt zwei Plätze, colors[0] und containers[0] je einen. Ein Stapel zählt als ein Objekt. Typen/Farben sind Alternativen; überlappende Behälter erzeugen keine doppelten IDs. Rückgabe: gespeichertes Serial-Array. Finally stellt beide Grenzen wieder her, Main zeigt jede ID. Die Funktion ist vollständig angegeben.

Bekanntes Objekt auf das Spielerfeld legen

# Bekanntes Objekt auf das Spielerfeld legen
#
# Liefert den besonderen Boden-Selektor für den Suchbehälter oder das Transferziel.
#
# Integer, immer 0. Diese Null bezeichnet gültig den Boden, nicht FALSE, einen Suchfehler, eine
# Objekt-ID, Grafik, Kartennummer oder Koordinate. Prüfen Sie das Ergebnis der Suche bzw. des
# Transfers, nicht Ground() als Erfolgswert.

SUB Main()
    # 0x40001001 durch eine erreichbare Objekt-Serial ersetzen. IsObjectExists prüft das geladene
    # Objekt. MoveItem(item, amount, destination, X, Y, Z): amount=0 bedeutet ganzer Stapel;
    # Ground() wählt Boden; GetX/GetY/GetZ liefern das Spielerfeld. result=1 bedeutet, dass der
    # Client die Anfrage annimmt, sonst 0. Das ist weder Ground()s Ergebnis noch eine
    # Serverbestätigung.

    VAR item = 0x40001001
    IF UO.IsObjectExists(item) THEN
        VAR result = UO.MoveItem(item, 0, UO.Ground(), UO.GetX('self'), UO.GetY('self'), UO.GetZ('self'))
    END IF
END SUB

Erläuterung der Parameter und Ausführung:

  • 0x40001001 durch eine erreichbare Objekt-Serial ersetzen. IsObjectExists prüft das geladene Objekt. MoveItem(item, amount, destination, X, Y, Z): amount=0 bedeutet ganzer Stapel; Ground() wählt Boden; GetX/GetY/GetZ liefern das Spielerfeld. result=1 bedeutet, dass der Client die Anfrage annimmt, sonst 0. Das ist weder Ground()s Ergebnis noch eine Serverbestätigung.

en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic