Skip to content

API ASC de

Codex edited this page Oct 3, 2026 · 1 revision

ASC

API · BASIC

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

ASC · Chr · len · StrComp

ClassicUO • Runtime API

Liest einen Zeichencode oder eine ganzzahlige Einstellung. Die Argumentanzahl bestimmt die Operation.

Genaue Syntax

ASC(text:String, defaultValue:Integer) -> Integer
ASC(value:String) -> Integer

Parameter

  • value / text — String: ein Argument liest die erste UTF-16-Einheit; zwei lesen den gesamten Dezimal- oder 0x-Hextext mit äußerem Vorzeichen und Leerraum.
  • defaultValue — Integer-Ersatzwert bei ungültiger Zahl, nur bei zwei Argumenten erforderlich.

Rückgabewert

Integer: Zeichencode 0..65535, bei leerem Text 0; mit zwei Argumenten Int32 oder Ersatzwert. Dezimaler Überlauf wird abgelehnt. Hex bis 0xFFFFFFFF gilt als vorzeichenbehaftetes 32-Bit-Muster: 0xFFFFFFFF ergibt -1. Brüche und Anhänge sind ungültig.

Verhalten

  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.
  • Kein Erfolgsflag. Unicode statt sprachabhängigem ANSI; ein Emoji liefert das erste Surrogat. Ein Ersatzwert kann einer gültigen Zahl entsprechen: außerhalb des erlaubten Einstellungsbereichs wählen.

Interne Funktionen: vom Aufruf zum Ergebnis

Ein Argument liest text[0] oder null. Zwei verwenden TryStr2Int und liefern Zahl oder Ersatzwert.

1. BasicAsc / Asc / NumberConversions.TryStr2Int

Ein Argument liest text[0] oder null. Zwei verwenden TryStr2Int und liefern Zahl oder Ersatzwert.

Integer: Zeichencode 0..65535, bei leerem Text 0; mit zwei Argumenten Int32 oder Ersatzwert. Dezimaler Überlauf wird abgelehnt. Hex bis 0xFFFFFFFF gilt als vorzeichenbehaftetes 32-Bit-Muster: 0xFFFFFFFF ergibt -1. Brüche und Anhänge sind ungültig.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; Funktion BasicAsc / Asc / NumberConversions.TryStr2Int.

Kein Erfolgsflag. Unicode statt sprachabhängigem ANSI; ein Emoji liefert das erste Surrogat. Ein Ersatzwert kann einer gültigen Zahl entsprechen: außerhalb des erlaubten Einstellungsbereichs wählen.

Beispiele

Eine Ziffer lesen

# Eine Ziffer lesen
#
# Liest einen Zeichencode oder eine ganzzahlige Einstellung. Die Argumentanzahl bestimmt die
# Operation.
#
# Integer: Zeichencode 0..65535, bei leerem Text 0; mit zwei Argumenten Int32 oder Ersatzwert.
# Dezimaler Überlauf wird abgelehnt. Hex bis 0xFFFFFFFF gilt als vorzeichenbehaftetes
# 32-Bit-Muster: 0xFFFFFFFF ergibt -1. Brüche und Anhänge sind ungültig.

SUB Main()
    # ASC("7") = 55. Nach der Prüfung auf 48..57 ergibt das Abziehen von 48 den Wert 7.
    # Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten
    # gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

    Dim code = ASC("7")
    If code >= 48 AndAlso code <= 57 Then
        Return code - 48
    End If
    Return -1
END SUB

Erläuterung der Parameter und Ausführung:

  • ASC("7") = 55. Nach der Prüfung auf 48..57 ergibt das Abziehen von 48 den Wert 7.
  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

Grafik aus Einstellung lesen

# Grafik aus Einstellung lesen
#
# Liest einen Zeichencode oder eine ganzzahlige Einstellung. Die Argumentanzahl bestimmt die
# Operation.
#
# Integer: Zeichencode 0..65535, bei leerem Text 0; mit zwei Argumenten Int32 oder Ersatzwert.
# Dezimaler Überlauf wird abgelehnt. Hex bis 0xFFFFFFFF gilt als vorzeichenbehaftetes
# 32-Bit-Muster: 0xFFFFFFFF ergibt -1. Brüche und Anhänge sind ungültig.

SUB Main()
    # "0x0EED" ergibt 3821; -1 kennzeichnet hier ungültige Eingabe. Kein Gegenstand wird bewegt.
    # Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten
    # gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

    Dim graphicText = "0x0EED"
    Dim graphic = ASC(graphicText, -1)
    If graphic = -1 Then
        Return "invalid graphic"
    End If
    Return graphic
END SUB

Erläuterung der Parameter und Ausführung:

  • "0x0EED" ergibt 3821; -1 kennzeichnet hier ungültige Eingabe. Kein Gegenstand wird bewegt.
  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

Menge prüfen

# Menge prüfen
#
# Liest einen Zeichencode oder eine ganzzahlige Einstellung. Die Argumentanzahl bestimmt die
# Operation.
#
# Integer: Zeichencode 0..65535, bei leerem Text 0; mit zwei Argumenten Int32 oder Ersatzwert.
# Dezimaler Überlauf wird abgelehnt. Hex bis 0xFFFFFFFF gilt als vorzeichenbehaftetes
# 32-Bit-Muster: 0xFFFFFFFF ergibt -1. Brüche und Anhänge sind ungültig.

SUB Main()
    # ReadQuantity fordert 1..100: "invalid" ergibt -1, "50" ergäbe 50. Kein Stapel wird verändert.
    # Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten
    # gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

    Return ReadQuantity("invalid", 1, 100)
END SUB

Function ReadQuantity(text, minimum, maximum)
    Dim quantity = ASC(text, -1)
    If quantity < minimum OrElse quantity > maximum Then
        Return -1
    End If
    Return quantity
End Function

Erläuterung der Parameter und Ausführung:

  • ReadQuantity fordert 1..100: "invalid" ergibt -1, "50" ergäbe 50. Kein Stapel wird verändert.
  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

Clone this wiki locally