Skip to content

API ASC

Codex edited this page Sep 19, 2026 · 4 revisions

ASC

Оглавление · Алфавитный указатель · BASIC built-ins

ClassicUO • Runtime API

Читает код первого символа либо разбирает целое число; смысл зависит от количества аргументов.

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

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

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • value / text — Исходная строка. В ASC(value) читается первая единица UTF-16; в ASC(text,defaultValue) вся строка разбирается как знаковое целое decimal или 0xHEX.
  • defaultValue — Обязателен только у формы из двух аргументов. Целое, возвращаемое, если текст не удалось разобрать; не код символа по умолчанию.

Возвращает

Integer: ASC(text) возвращает код 0..65535 первого символа либо 0 для пустой строки. ASC(text,defaultValue) возвращает разобранное Int32 либо defaultValue при неверном тексте/переполнении. Это две разные операции.

Поведение

  • Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
  • Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.

Примеры

Пример 1. Код латинской буквы

# Код латинской буквы
#
# Читает код первого символа либо разбирает целое число; смысл зависит от количества аргументов.
#
# Integer: ASC(text) возвращает код 0..65535 первого символа либо 0 для пустой строки.
# ASC(text,defaultValue) возвращает разобранное Int32 либо defaultValue при неверном
# тексте/переполнении. Это две разные операции.

SUB Main()
    # Один аргумент: берётся код первого символа A.
    # Ожидаемый результат: 65. В result сохраняется результат выражения; Print только показывает
    # его.

    VAR result = ASC('A')
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Один аргумент: берётся код первого символа A.
  • Ожидаемый результат: 65. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Число из hex-текста

# Число из hex-текста
#
# Читает код первого символа либо разбирает целое число; смысл зависит от количества аргументов.
#
# Integer: ASC(text) возвращает код 0..65535 первого символа либо 0 для пустой строки.
# ASC(text,defaultValue) возвращает разобранное Int32 либо defaultValue при неверном
# тексте/переполнении. Это две разные операции.

SUB Main()
    # Два аргумента: строка 0XFF разбирается как число, -1резервное значение.
    # Ожидаемый результат: 255. В result сохраняется результат выражения; Print только показывает
    # его.

    VAR result = ASC('0XFF', -1)
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Два аргумента: строка 0XFF разбирается как число, -1 — резервное значение.
  • Ожидаемый результат: 255. В result сохраняется результат выражения; Print только показывает его.

Пример 3. Проверить ошибочный ввод

# Проверить ошибочный ввод
#
# Читает код первого символа либо разбирает целое число; смысл зависит от количества аргументов.
#
# Integer: ASC(text) возвращает код 0..65535 первого символа либо 0 для пустой строки.
# ASC(text,defaultValue) возвращает разобранное Int32 либо defaultValue при неверном
# тексте/переполнении. Это две разные операции.

SUB Main()
    # Разбор целого не удался, поэтому возвращается второй аргумент.
    # Ожидаемый результат: -1. В result сохраняется результат выражения; Print только показывает
    # его.

    VAR result = ASC('not a number', -1)
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Разбор целого не удался, поэтому возвращается второй аргумент.
  • Ожидаемый результат: -1. В result сохраняется результат выражения; Print только показывает его.

Clone this wiki locally