-
Notifications
You must be signed in to change notification settings - Fork 0
API Chr
Codex edited this page Sep 19, 2026
·
4 revisions
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Создаёт строку по Unicode-коду.
Chr(value:Integer) -> String
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
value— Код Unicode как Integer. Значения ниже 0 ограничиваются до 0, выше 0x10FFFF — до 0x10FFFF. Диапазон суррогатов 0xD800..0xDFFF не является допустимым кодом символа и вызывает ошибку.
String — один Unicode-символ: одна или две единицы UTF-16. Chr(0) содержит NUL, а не пустую строку. Для символов вне BMP ASC(Chr(value)) возвращает первый суррогат, не исходный полный код.
- Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
- Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.
# Латинская буква
#
# Создаёт строку по Unicode-коду.
#
# String — один Unicode-символ: одна или две единицы UTF-16. Chr(0) содержит NUL, а не пустую
# строку. Для символов вне BMP ASC(Chr(value)) возвращает первый суррогат, не исходный полный
# код.
SUB Main()
# value=65 — код A.
# Ожидаемый результат: строка A. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = Chr(65)
UO.Print(CStr(result))
END SUBРазбор параметров и выполнения:
- value=65 — код A.
- Ожидаемый результат: строка A. В result сохраняется результат выражения; Print только показывает его.
# Кириллица
#
# Создаёт строку по Unicode-коду.
#
# String — один Unicode-символ: одна или две единицы UTF-16. Chr(0) содержит NUL, а не пустую
# строку. Для символов вне BMP ASC(Chr(value)) возвращает первый суррогат, не исходный полный
# код.
SUB Main()
# value=0x0410 — кириллическая А, отличная от латинской A.
# Ожидаемый результат: строка А. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = Chr(0x0410)
UO.Print(CStr(result))
END SUBРазбор параметров и выполнения:
- value=0x0410 — кириллическая А, отличная от латинской A.
- Ожидаемый результат: строка А. В result сохраняется результат выражения; Print только показывает его.
# Длина символа вне BMP
#
# Создаёт строку по Unicode-коду.
#
# String — один Unicode-символ: одна или две единицы UTF-16. Chr(0) содержит NUL, а не пустую
# строку. Для символов вне BMP ASC(Chr(value)) возвращает первый суррогат, не исходный полный
# код.
SUB Main()
# Chr создаёт emoji из двух единиц UTF-16; Len считает эти единицы.
# Ожидаемый результат: 2. В result сохраняется результат выражения; Print только показывает его.
VAR result = Len(Chr(0x1F600))
UO.Print(CStr(result))
END SUBРазбор параметров и выполнения:
- Chr создаёт emoji из двух единиц UTF-16; Len считает эти единицы.
- Ожидаемый результат: 2. В result сохраняется результат выражения; Print только показывает его.
ClassicUO - Bad Newbie & Basic IDE Edition