-
Notifications
You must be signed in to change notification settings - Fork 0
API BasicXor
Codex edited this page Sep 19, 2026
·
5 revisions
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Логическое исключающее ИЛИ двух числовых условий. Это не побитовый XOR масок.
BasicXor(left:Any, right:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
left— Число Integer/Decimal или числовая строка с точкой и необязательной экспонентой, например "-1.25e2". Преобразование не зависит от языка интерфейса. Нераспознанная строка, Unit, Array и Object преобразуются в 0. Для пользовательского ввода сначала проверяйте IsNumeric. -
right— Число Integer/Decimal или числовая строка с точкой и необязательной экспонентой, например "-1.25e2". Преобразование не зависит от языка интерфейса. Нераспознанная строка, Unit, Array и Object преобразуются в 0. Для пользовательского ввода сначала проверяйте IsNumeric.
Integer 1, когда ровно один из двух преобразованных аргументов ненулевой. В остальных случаях 0. BasicXor(2,4)=0: оба аргумента истинны, побитового результата 6 здесь нет.
- Вычисляется локально, без ожидания ответа сервера.
- Decimal в этом языке хранится как double: возможна погрешность двоичной арифметики. Это не десятичный финансовый тип .NET decimal.
# Одно истинное условие
#
# Логическое исключающее ИЛИ двух числовых условий. Это не побитовый XOR масок.
#
# Integer 1, когда ровно один из двух преобразованных аргументов ненулевой. В остальных случаях
# 0. BasicXor(2,4)=0: оба аргумента истинны, побитового результата 6 здесь нет.
SUB Main()
# left=1 истинно, right=0 ложно.
# Ожидаемый результат: 1. value сохраняет возвращённое значение; Print только выводит его.
VAR value = BasicXor(1, 0)
UO.Print(STR(value))
END SUBРазбор параметров и выполнения:
- left=1 истинно, right=0 ложно.
- Ожидаемый результат: 1. value сохраняет возвращённое значение; Print только выводит его.
# Два ненулевых числа
#
# Логическое исключающее ИЛИ двух числовых условий. Это не побитовый XOR масок.
#
# Integer 1, когда ровно один из двух преобразованных аргументов ненулевой. В остальных случаях
# 0. BasicXor(2,4)=0: оба аргумента истинны, побитового результата 6 здесь нет.
SUB Main()
# Оба значения считаются истинными.
# Ожидаемый результат: 0. value сохраняет возвращённое значение; Print только выводит его.
VAR value = BasicXor(2, 4)
UO.Print(STR(value))
END SUBРазбор параметров и выполнения:
- Оба значения считаются истинными.
- Ожидаемый результат: 0. value сохраняет возвращённое значение; Print только выводит его.
# Разрешить ровно один режим
#
# Логическое исключающее ИЛИ двух числовых условий. Это не побитовый XOR масок.
#
# Integer 1, когда ровно один из двух преобразованных аргументов ненулевой. В остальных случаях
# 0. BasicXor(2,4)=0: оба аргумента истинны, побитового результата 6 здесь нет.
SUB Main()
# left=buyMode и right=sellMode — флаги скрипта.
# Оба 0 или оба ненулевые попадают в ELSE; функция не запускает покупку или продажу.
VAR buyMode = 1
VAR sellMode = 0
IF BasicXor(buyMode, sellMode) THEN
UO.Print('Exactly one mode enabled')
ELSE
UO.Print('Choose one mode')
END IF
END SUBРазбор параметров и выполнения:
- left=buyMode и right=sellMode — флаги скрипта.
- Оба 0 или оба ненулевые попадают в ELSE; функция не запускает покупку или продажу.
ClassicUO - Bad Newbie & Basic IDE Edition