Skip to content

API ASC uk

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

Читає код символу або ціле число з налаштування; кількість аргументів визначає операцію.

Точний синтаксис

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

Параметри

  • value / text — String: один аргумент читає першу одиницю UTF-16; два розбирають увесь десятковий або 0xHEX текст із зовнішнім знаком і пробілами.
  • defaultValue — Integer — резервний результат невдалого розбору, обов’язковий лише у формі з двома аргументами.

Повертає

Integer: код 0..65535 або 0 для порожнього тексту; у другій формі — Int32 або резервне значення. Десяткове переповнення відхиляється; hex до 0xFFFFFFFF читається як знакові 32 біти, тому 0xFFFFFFFF дає -1. Дроби й суфікси відхиляються.

Поведінка

  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.
  • Це не ознака успіху. Код Unicode не залежить від ANSI; emoji дає перший сурогат. Резервне значення може збігтися з правильним числом — обирайте його поза дозволеним діапазоном.

Внутрішні функції: від виклику до результату

Один аргумент читає text[0] або нуль. Два викликають TryStr2Int і повертають число або резервне значення.

1. BasicAsc / Asc / NumberConversions.TryStr2Int

Один аргумент читає text[0] або нуль. Два викликають TryStr2Int і повертають число або резервне значення.

Integer: код 0..65535 або 0 для порожнього тексту; у другій формі — Int32 або резервне значення. Десяткове переповнення відхиляється; hex до 0xFFFFFFFF читається як знакові 32 біти, тому 0xFFFFFFFF дає -1. Дроби й суфікси відхиляються.

Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; функція BasicAsc / Asc / NumberConversions.TryStr2Int.

Це не ознака успіху. Код Unicode не залежить від ANSI; emoji дає перший сурогат. Резервне значення може збігтися з правильним числом — обирайте його поза дозволеним діапазоном.

Приклади

Прочитати цифру

# Прочитати цифру
#
# Читає код символу або ціле число з налаштування; кількість аргументів визначає операцію.
#
# Integer: код 0..65535 або 0 для порожнього тексту; у другій формі — Int32 або резервне
# значення. Десяткове переповнення відхиляється; hex до 0xFFFFFFFF читається як знакові 32 біти,
# тому 0xFFFFFFFF дає -1. Дроби й суфікси відхиляються.

SUB Main()
    # ASC("7") = 55. Після перевірки 48..57 віднімання 48 дає 7.
    # Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат,
    # не зупиняють скрипти та не звертаються до сервера.

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

Пояснення параметрів і виконання:

  • ASC("7") = 55. Після перевірки 48..57 віднімання 48 дає 7.
  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.

Прочитати графіку

# Прочитати графіку
#
# Читає код символу або ціле число з налаштування; кількість аргументів визначає операцію.
#
# Integer: код 0..65535 або 0 для порожнього тексту; у другій формі — Int32 або резервне
# значення. Десяткове переповнення відхиляється; hex до 0xFFFFFFFF читається як знакові 32 біти,
# тому 0xFFFFFFFF дає -1. Дроби й суфікси відхиляються.

SUB Main()
    # "0x0EED" дає 3821; -1 тут позначає неправильне налаштування. Предмет не переміщується.
    # Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат,
    # не зупиняють скрипти та не звертаються до сервера.

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

Пояснення параметрів і виконання:

  • "0x0EED" дає 3821; -1 тут позначає неправильне налаштування. Предмет не переміщується.
  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.

Перевірити кількість

# Перевірити кількість
#
# Читає код символу або ціле число з налаштування; кількість аргументів визначає операцію.
#
# Integer: код 0..65535 або 0 для порожнього тексту; у другій формі — Int32 або резервне
# значення. Десяткове переповнення відхиляється; hex до 0xFFFFFFFF читається як знакові 32 біти,
# тому 0xFFFFFFFF дає -1. Дроби й суфікси відхиляються.

SUB Main()
    # ReadQuantity вимагає ціле в 1..100: "invalid" дає -1, "50" дало б 50. Стопка не змінюється.
    # Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат,
    # не зупиняють скрипти та не звертаються до сервера.

    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

Пояснення параметрів і виконання:

  • ReadQuantity вимагає ціле в 1..100: "invalid" дає -1, "50" дало б 50. Стопка не змінюється.
  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.

Clone this wiki locally