API Hex - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Hex

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

ClassicUO • Runtime API

Форматирует целое в шестнадцатеричный текст.

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

Hex(value:Integer) -> String

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

Параметры

  • value — Знаковое целое Int32. Отрицательные значения представляются своими 32 битами в дополнительном коде.

Возвращает

String — цифры 0..9/A..F без префикса 0x и без фиксированной минимальной ширины. Hex(0) даёт "0", Hex(-1) — "FFFFFFFF". Это текст, не graphic и не serial сам по себе.

Поведение

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

Примеры

Пример 1. Графический type как hex

# Графический type как hex
#
# Форматирует целое в шестнадцатеричный текст.
#
# String — цифры 0..9/A..F без префикса 0x и без фиксированной минимальной ширины. Hex(0) даёт
# "0", Hex(-1) — "FFFFFFFF". Это текст, не graphic и не serial сам по себе.

SUB Main()
    # 3821 — десятичное значение 0x0EED.
    # Ожидаемый результат: строка EED. В result сохраняется результат выражения; Print только
    # показывает его.

    VAR result = Hex(3821)
    UO.Print(CStr(result))
END SUB

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

  • 3821 — десятичное значение 0x0EED.
  • Ожидаемый результат: строка EED. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Добавить префикс для вывода serial

# Добавить префикс для вывода serial
#
# Форматирует целое в шестнадцатеричный текст.
#
# String — цифры 0..9/A..F без префикса 0x и без фиксированной минимальной ширины. Hex(0) даёт
# "0", Hex(-1) — "FFFFFFFF". Это текст, не graphic и не serial сам по себе.

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

    VAR result = '0x' + Hex(0x40001234)
    UO.Print(CStr(result))
END SUB

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

  • Префикс добавляется явно; число сохраняет все 32 бита.
  • Ожидаемый результат: строка 0x40001234. В result сохраняется результат выражения; Print только показывает его.

Пример 3. Знаковое отрицательное значение

# Знаковое отрицательное значение
#
# Форматирует целое в шестнадцатеричный текст.
#
# String — цифры 0..9/A..F без префикса 0x и без фиксированной минимальной ширины. Hex(0) даёт
# "0", Hex(-1) — "FFFFFFFF". Это текст, не graphic и не serial сам по себе.

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

    VAR result = Hex(-1)
    UO.Print(CStr(result))
END SUB

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

  • -1 представляется как восемь hex-цифр двухкомплементарного Int32.
  • Ожидаемый результат: строка FFFFFFFF. В result сохраняется результат выражения; Print только показывает его.