Skip to content

API BasicMod

Codex edited this page Sep 19, 2026 · 5 revisions

BasicMod

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

ClassicUO • Runtime API

Вычисляет остаток целочисленного деления. В BASIC также используется оператор Mod.

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

BasicMod(numerator:Integer, denominator:Integer) -> Integer

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

Параметры

  • numerator — Знаковое целое int32 — делимое.
  • denominator — Знаковое целое int32 — делитель. Ноль вызывает ошибку BASIC Mod cannot divide by zero.

Возвращает

Integer — остаток. Знак ненулевого остатка совпадает со знаком делимого. Делитель -1 даёт 0, включая минимальный int32.

Поведение

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

Примеры

Пример 1. Остаток от деления

# Остаток от деления
#
# Вычисляет остаток целочисленного деления. В BASIC также используется оператор Mod.
#
# Integerостаток. Знак ненулевого остатка совпадает со знаком делимого. Делитель -1 даёт 0,
# включая минимальный int32.

SUB Main()
    # numerator=17, denominator=5: 17=3*5+2.
    # Ожидаемый результат: 2. value сохраняет возвращённое значение; Print только выводит его.

    VAR value = BasicMod(17, 5)
    UO.Print(STR(value))
END SUB

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

  • numerator=17, denominator=5: 17=3*5+2.
  • Ожидаемый результат: 2. value сохраняет возвращённое значение; Print только выводит его.

Пример 2. Отрицательное делимое

# Отрицательное делимое
#
# Вычисляет остаток целочисленного деления. В BASIC также используется оператор Mod.
#
# Integerостаток. Знак ненулевого остатка совпадает со знаком делимого. Делитель -1 даёт 0,
# включая минимальный int32.

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

    VAR value = BasicMod(-17, 5)
    UO.Print(STR(value))
END SUB

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

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

Пример 3. Выполнять действие раз в пять циклов

# Выполнять действие раз в пять циклов
#
# Вычисляет остаток целочисленного деления. В BASIC также используется оператор Mod.
#
# Integerостаток. Знак ненулевого остатка совпадает со знаком делимого. Делитель -1 даёт 0,
# включая минимальный int32.

SUB Main()
    # numerator=iномер итерации, denominator=5период.
    # Сообщения появляются при i=5 и i=10. Цикл конечный и ничего не перемещает в игре.

    VAR i = 0
    FOR i = 1 TO 10
        IF BasicMod(i, 5) = 0 THEN
            UO.Print('Checkpoint: ' + STR(i))
        END IF
    NEXT
END SUB

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

  • numerator=i — номер итерации, denominator=5 — период.
  • Сообщения появляются при i=5 и i=10. Цикл конечный и ничего не перемещает в игре.

Clone this wiki locally