-
Notifications
You must be signed in to change notification settings - Fork 0
API Rnd
Codex edited this page Sep 19, 2026
·
4 revisions
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Возвращает псевдослучайную дробь с управлением последовательностью.
Rnd() -> Decimal
Rnd(seedMode:Any) -> Decimal
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
seedMode— Необязательное число. >0 или отсутствие — следующее число; 0 — повтор последнего (при первом вызове создаёт его); <0 — заново инициализирует последовательность по этому значению и возвращает её первое число.
Decimal в полуинтервале [0,1): 0 допустим, 1 не возвращается. Это не случайное целое. Последовательность принадлежит текущему runtime и не предназначена для криптографии.
- Отрицательное значение каждый раз сбрасывает генератор. Для продолжения после Rnd(-123) вызывайте Rnd() либо Rnd(1), а не снова Rnd(-123).
- Для целых чисел в включительном диапазоне используйте Random(min,max).
# Новая случайная дробь
#
# Возвращает псевдослучайную дробь с управлением последовательностью.
#
# Decimal в полуинтервале [0,1): 0 допустим, 1 не возвращается. Это не случайное целое.
# Последовательность принадлежит текущему runtime и не предназначена для криптографии.
SUB Main()
# Аргументов нет: берётся следующий элемент последовательности.
# Результат не меньше 0 и строго меньше 1.
VAR value = Rnd()
UO.Print(CStr(value))
END SUBРазбор параметров и выполнения:
- Аргументов нет: берётся следующий элемент последовательности.
- Результат не меньше 0 и строго меньше 1.
# Повторить последний результат
#
# Возвращает псевдослучайную дробь с управлением последовательностью.
#
# Decimal в полуинтервале [0,1): 0 допустим, 1 не возвращается. Это не случайное целое.
# Последовательность принадлежит текущему runtime и не предназначена для криптографии.
SUB Main()
# seedMode=0 повторяет уже созданный результат.
# Сравнение даст 1, если между этими строками не было другого вызова Rnd в том же runtime.
VAR first = Rnd()
VAR same = Rnd(0)
UO.Print(STR(first = same))
END SUBРазбор параметров и выполнения:
- seedMode=0 повторяет уже созданный результат.
- Сравнение даст 1, если между этими строками не было другого вызова Rnd в том же runtime.
# Воспроизводимая последовательность
#
# Возвращает псевдослучайную дробь с управлением последовательностью.
#
# Decimal в полуинтервале [0,1): 0 допустим, 1 не возвращается. Это не случайное целое.
# Последовательность принадлежит текущему runtime и не предназначена для криптографии.
SUB Main()
# -123 сбрасывает последовательность; вызов без аргумента продолжает её.
# Первое и repeated совпадут. Повторный сброс не выдаёт second.
VAR first = Rnd(-123)
VAR second = Rnd()
VAR repeated = Rnd(-123)
UO.Print(STR(first = repeated))
END SUBРазбор параметров и выполнения:
- -123 сбрасывает последовательность; вызов без аргумента продолжает её.
- Первое и repeated совпадут. Повторный сброс не выдаёт second.
ClassicUO - Bad Newbie & Basic IDE Edition