Команды RPG Maker MV/Переменная

Материал из Русская версия РПГ.укр
Окно настройки команды «Переменная».

Переменная — команда RPG Maker MV, позволяющая изменить значение переменной или диапазона переменных.

Переменная — невидимый игроку объект, который хранит какое-то число. У переменных есть номера и названия.

Команда переменная берёт старое значение одной переменной или каждой переменной в диапазоне, новое значение, применяет определённую операцию к ним и записывает в операцию. Доступны такие операции:

  • = (присвоение) — новое значение замещает старое, старое отбрасывается,
  • + (сумма) – новое значение складывается со старым,
  • - (разность) — новое значение отнимается от старого,
  • * (произведение) — новое значение умножается на старое,
  • / (частное) — старое значение делится на новое, берётся частное;
  • остаток — берётся остаток от деления старого значения на новое.
Окно выбора данных игры.

Новое значение может быть таким:

  • задаваться в настройках команды как постоянная величина,
  • браться из другой переменной,
  • выбираться случайно из диапазона значений,
  • браться из системных данных,
  • вычисляться кодом на языке JavaScript.


Технические подробности[править]

Внутренний формат[править]

Код команды — 122.

У этой команды бывает разное число аргументов. Некоторые типы аргументов используют только один аргумент:

{
  "code": 122,
  "indent": степень_вложенности,
  "parameters": [
    номер_первой_переменной,
    номер_последней_переменной,
    действие,
    тип_аргумента,
    аргумент1, аргумент2, аргумент3...
  ]
}

аргумент2 и аргумент3 можут отсуствовать.

  • вместо степень_вложенности используется количество команд, в которые вложена данная команда (если команда не вложена в другие команды, indent равен 0),
  • вместо номер_первой_переменной указывается номер первой переменной в диапазоне (если нужно поменять значение только одной переменной, то первая и последняя переменная совпадают),
  • вместо номер_последней_переменной указывается номер последней переменной в диапазоне (если нужно поменять значение только одной переменной, то первая и последняя переменная совпадают),
  • вместо действие используется число, определяющее, как значение взаимодействует с числом, которое было записано в переменную раньше:
    • 0 (=) — в переменную записывается новое значение, старое отбрасывается;
    • 1 (+) — в переменную записывается сумма старого и нового значений,
    • 2 (-) — в переменную записывается разность старого и нового значений,
    • 3 (*) — в переменную записывается произведение старого и нового значений,
    • 4 (/) — в переменную записывается частное от деления старого значения на новое,
    • 5 (остаток) — в переменную записывается остаток от деления старого значения на новое;
  • вместо тип_аргумента записывается число, которое определяет, откуда берётся значение переменной:
    • если тип_аргумента = 0 (постоянное значение), то аргумент1 хранит новое значение,
    • если тип_аргумента = 1 (переменная), то аргумент1 — номер переменной, из которой берётся новое значение,
    • если тип_аргумента = 2 (случайно), то новое значение устанавливается случайно, и аргумент1 — минимальное значение, а аргумент2 — максимальное,
    • если тип_аргумента = 3 (данные игры), то аргумент1 задаёт тип игровых данных, а аргумент2 и аргумент3 зависят от него (см. ниже),
    • если тип_аргумента = 4 (скрипт), то аргумент1 выполняется как код на JavaScript функцией eval, и результат его выполнения считается новым значением.

Формат данных игры[править]

Если тип_аргумента равен 3, новое значение берётся из различных игровых данных. аргумент1 задаёт тип игровых данных, и от него зависит, какой смысл вкладывается в другие аргументы:

  • Если аргумент1 равен 0, новым значением будет количество вещей определённого типа в инвентаре партии, а аргумент2 указывает номер вещи.
  • Если аргумент1 равен 1 — количество оружия, а аргумент2 указывает номер оружия.
  • Если аргумент1 равен 2 — количество брони, а аргумент2 указывает номер брони.
  • Если аргумент1 равен 3, новым значением будет информация о герое или героине. аргумент2 задаёт номер героя или героини, а аргумент3 — тип информации. аргумент3 может принимать такие значения: 0 (уровень), 1 (опыт), 2 (HP), 3 (MP), 4 (макс. HP), 5 (макс. MP), 6 (атака), 7 (защита), 8 (магическа атака), 9 (магическая защита), 10 (ловкость), 11 (удача).
  • Если аргумент1 равен 4, новым значением будет информация о противнице или противнике в бою. аргумент2 задаёт номер противника, а аргумент3 — тип информации. аргумент3 может принимать такие значения: 0 (HP), 1 (MP), 2 (макс. HP), 3 (макс. MP), 4 (атака), 5 (защита), 6 (магическа атака), 7 (магическая защита), 8 (ловкость), 9 (удача).
  • Если аргумент1 равен 5, то новым значением будет информация о персонаже на карте (о игровом персонаже или о событии). аргумент2 задаёт номер персонажа (где любое отрицательное значение — игрок, 0 — текущее событие, 1 до выше — номер события на карте). аргумент3 задаёт тип информации, доступные значения: 0 (координата X на карте в тайлах), 1 (координата Y на карте в тайлах), 2 (направление), 3 (координата X на экране в пикселах), 4 (координата Y на экране в пикселах).
  • Если аргумент1 равен 6, то новым значением будет ID персонажа в команде. аргумент2 задаёт номер персонажа (0 — первый персонаж, и т.п.).
  • Если аргумент1 равен 7, то новым значением будут дополнительные игровые данные. аргумент2 определяет их тип: 0 — ID карты, 1 — размер партии играющих, 2 — количество валюты (золота), 3 — количество сделанных шагов, 4 — время игры в секундах, 5 — количество секунд на таймере, 6 — количество сохранений, 7 — количество битв, 8 — количество побед в битвах, 9 — количество сбеганий из битвы (включает окончания битвы командой Отменить битву).