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

CBool

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

ClassicUO • Runtime API

Преобразует число в числовой признак истинности.

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

CBool(value:Any) -> Integer

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

Параметры

  • value — Число Integer/Decimal или числовая строка с точкой и необязательной экспонентой, например "-1.25e2". Преобразование не зависит от языка интерфейса. Нераспознанная строка, Unit, Array и Object преобразуются в 0. Для пользовательского ввода сначала проверяйте IsNumeric.

Возвращает

Integer 1, если преобразованное число не равно 0; иначе Integer 0. Отрицательные числа также дают 1. Это не отдельный Boolean и не BASIC -1 для true. Текст "true" не распознаётся как число и даёт 0.

Поведение

  • Вычисляется локально, без ожидания ответа сервера.
  • Decimal в этом языке хранится как double: возможна погрешность двоичной арифметики. Это не десятичный финансовый тип .NET decimal.

Примеры

Пример 1. Ненулевое число

# Ненулевое число
#
# Преобразует число в числовой признак истинности.
#
# Integer 1, если преобразованное число не равно 0; иначе Integer 0. Отрицательные числа также
# дают 1. Это не отдельный Boolean и не BASIC -1 для true. Текст "true" не распознаётся как
# число и даёт 0.

SUB Main()
    # value=-5, отрицательный знак не делает число ложным.
    # Ожидаемый результат: 1. value сохраняет возвращённое значение; Print только выводит его.

    VAR value = CBool(-5)
    UO.Print(STR(value))
END SUB

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

  • value=-5, отрицательный знак не делает число ложным.
  • Ожидаемый результат: 1. value сохраняет возвращённое значение; Print только выводит его.

Пример 2. Ноль в строке

# Ноль в строке
#
# Преобразует число в числовой признак истинности.
#
# Integer 1, если преобразованное число не равно 0; иначе Integer 0. Отрицательные числа также
# дают 1. Это не отдельный Boolean и не BASIC -1 для true. Текст "true" не распознаётся как
# число и даёт 0.

SUB Main()
    # value — числовой текст, преобразуемый в ноль.
    # Ожидаемый результат: 0. value сохраняет возвращённое значение; Print только выводит его.

    VAR value = CBool('0')
    UO.Print(STR(value))
END SUB

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

  • value — числовой текст, преобразуемый в ноль.
  • Ожидаемый результат: 0. value сохраняет возвращённое значение; Print только выводит его.

Пример 3. Проверить наличие найденных предметов

# Проверить наличие найденных предметов
#
# Преобразует число в числовой признак истинности.
#
# Integer 1, если преобразованное число не равно 0; иначе Integer 0. Отрицательные числа также
# дают 1. Это не отдельный Boolean и не BASIC -1 для true. Текст "true" не распознаётся как
# число и даёт 0.

SUB Main()
    # FindType ищет золото любого цвета в рюкзаке, FindCount возвращает число найденных items.
    # CBool сводит 0 к false, положительное количество к 1. Сам serial found не нужно
    # преобразовывать этой командой.

    VAR found = UO.FindType(0x0EED, -1, 'backpack')
    VAR anyItems = CBool(UO.FindCount())
    IF anyItems THEN
        UO.Print('At least one matching item')
    END IF
END SUB

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

  • FindType ищет золото любого цвета в рюкзаке, FindCount возвращает число найденных items.
  • CBool сводит 0 к false, положительное количество к 1. Сам serial found не нужно преобразовывать этой командой.