Ресивер VR (переменные)
!!VR@:XXXX;
- менеджмент переменных. Используется для действий с переменными
(установка, сравнение, математические действия).
См. также: команды над z-переменными, соединение z-переменных, переменные в сообщениях, флаги и переменные
C$1/$2/$3/$4/$5/$6/$7/$8/$9/$10/$11/$12/$13/$14/$15/$16
Установить/проверить v-переменные
$ – значение для v-переменной @
$1 – установить/проверить v-переменную (@)
$2 – установить/проверить v-переменную (@+1)
…
…
$16 – установить/проверить v-переменную (@+15)
Команда поддерживает до 16 параметров.
Замечание: в ERA добавлена поддержка v, y, x и w-переменных.
Пример (показать)
Donald
'а:
Rx
Генерировать случайное значение от 0 до x (включительно) и ДОБАВИТЬ его к текущему значению.
Пример:
R#/$
Установить генератор случайных чисел на одно значение.
$ – номер случайного числа в генераторе для синхронизации.
# – фантомный параметр (не используется)
Если вы не уверены, что генератор случайных чисел в одинаковой
позиции на обоих компьютерах, вы можете просто перезапустить их на один ритм.
S#
Установить переменную @ на # (здесь и ниже # может означать имя другой переменной).
Пример:
T$
Генерировать случайное значение от 0 до $ и добавить его к текущему
значению переменной. Значение базируется на значении времени.
Комментарий (показать)
См. также: Логические битовые операции в WoG
AND | 0 и 0 → 0 | 0 и 1 → 0 | 1 и 0 → 0 | 1 и 1 → 1 |
«&» - битовая операция И над битами переменной, может быть использована для
проверки, был ли установлен определённый бит.
Например, проверим, есть ли в v1-переменной 4ый бит (16):
Так, эта команда может быть очень полезна, к примеру, при проверке на флаги существ.
Пример (показать)
Вы также можете удалить определённый бит без удаления остальных бит в переменной.
Для этого используйте: &-(N+1), где N - значение удаляемого бита.
Пример (показать)
OR | 0 и 0 → 0 | 0 и 1 → 1 | 1 и 0 → 1 | 1 и 1 → 1 |
«|» - битовая операция ИЛИ над битами переменных, может быть использована
для установки определённого бита без изменения других бит. Например, установим 5й бит (32) в v1:
Если v1 уже имеет этот бит, ничего не изменится. Если нет, бит будет установлен.
Это может быть полезно для добавления новых флагов монстрам, если вы не знаете,
какие флаги они уже имеют, и фактически, это единственный полностью безопасный синтаксис для этого действия.
XOR | 0 и 0 → 0 | 0 и 1 → 1 | 1 и 0 → 1 | 1 и 1 → 0 |
Выполняет битовое исключающее ИЛИ над битами переменной.
Например, X-1 инвертирует биты переменной.
Для проверки разницы между двумя переменными используйте синтаксис: !!VR@:X$,
где @ - переменная, являющаяся одной из переменных для сравнения и также получающая результат сравнения;
$ - вторая переменная для сравнения.
Пример (показать)
+# | Добавить # к переменной |
-# | Отнять # от переменной |
*# | Умножить переменную на # |
:# | Разделить переменную на # (не пытайтесь разделить на 0) |
%# | Установить переменную на значение остатка от деления на # |
!!VRz#
Есть следующие текстовые переменные:
z1…z1000. Они могут быть изменены (любая переменная) для использования.
H#
Установить, содержит ли z-переменная пустое значение или нет.
# – номер флага для сохранения
результата
= 1 – если там текст
= 0 – если переменная пуста
Все знаки вроде пробела, новых строк будут игнорированы и расценены как пустые.
Пример (показать)
M#
!!VRz#:M1/z#1/#2/#3
Получить подтекст из переменной z#1 и установить его в z#
z# – переменная, куда сохранять
результат
z#1 – переменная-исходник
#2 – позиция, откуда начинать
копирование (0 – по умолчанию) (в символах)
#3 – длина подтекста для
копирования (в символах)
Пример (показать)
!!VRz#:M2/z#1/#2
Получить слово с порядковым номером #2 из переменной z#1 и установить его в z#
z# – переменная, куда сохранится слово
z#1 – переменная-исходник
#2 – номер слова (по умолчанию – 0)
Комментарий (показать)
!!VRz#:M3/#1/#2
!!VRz#:M3/#1
Конвертирует число в текст.
z# – переменная, которая будет
содержать результат
#1 – любое число (переменная)
для конвертирования
#2 – система исчисления (по
умолчанию – 10)
Пример (показать)
!!VR#:M4/?$
Получить длину текста
# – z-переменная
$ – любая числовая переменная
(для записи длины)
В длину включаются пробелы.
!!VR#:M5/?$
Получить кол-во пробелов в начале текстовой переменной
# – z-переменная
$ – любая числовая переменная
(для записи номера позиции)
Счёт начинается с 0 (нет пробелов). Если
переменная (текстовая) пуста, позиция равна -1.
!!VR#:M6/?$
Получить номер последнего символа (не пробела)
# – z-переменная
$ – любая числовая переменная
(для записи номера позиции)
Счёт начинается с 0. Если переменная пуста, позиция равна 0.
Пример (показать)
!!VR$:Vz#
Конвертировать текст в целое значение или значение с плавающей запятой.
$ – любая переменная для
интегрирования (f…t, v#, w#, x#, y#) или с плавающей запятой (e)
z# – переменная-исходник (z)
Вы можете использовать синтаксис …е… (инженерский
стандарт чисел с плавающей запятой). Если значение не может быть конвертировано,
то устанавливается на 0. Знаки пробела игнорируются.
Пример (показать)
S^Текст^
Установить текст текстовой переменной.
S#
Копировать текст из переменной z# в текущую.
Комментарий (показать)
!!VRz#1:Uz#2
!!VRz#1:U^текст^
Подтекстный поиск в z-переменных.
Поиск слова/символа/знака из переменной z#2 или из строки ^текст^ в переменной z#1,
с последующей установой флага 1 на ИСТИНА, если найдено.
В обоих случаях z-переменная может быть любого типа (обычная, локальная, ERT).
Эта команда может быть с лёгкостью ERT'ифицирована.
Комментарий (показать)
+#
Соединить текстовую переменную z# с текущей (добавляется в конец)
+^текст^
Соединить текстовую переменную z# с определённым текстом (добавляется в конец)