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 не нужно преобразовывать этой командой.