Команды RPG Maker MV/Изменить состояние

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

Изменить состояние — команда RPG Maker MV, позволяющая добавить или удалить определённое состояние героине или герою.

Доступны такие настройки:

  • У кого добавлять или убирать состояние: у заданного персонажа или у всей партии; или у персонажа с номером из переменной.
  • Что делать с состоянием: добавлять или убирать.
  • Какое состояние добавляется или убирается.

Команда работает только с героями и героинями. Чтобы добавить состояние противнице или противнику во время боя, следует использовать команду Изменить состояние противника.

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

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

Код команды — 313. Она хранится так:

{
  "code": 313,
  "indent": степень_вложенности,
  "parameters": [
    способ_задания_персонажа,
    номер_персонажа_или_переменной,
    операция,
    номер_состояния
  ]
}

Где:

  • вместо степень_вложенности используется количество команд, в которые вложена данная команда (если команда не вложена в другие команды, indent равен 0),
  • вместо способ_задания_персонажа нужно поставить 0 (если персонаж добавляется) или 1 (если персонаж удаляется),
  • вместо номер_персонажа_или_переменной нужно поставить либо номер персонажа из базы данных (если способ_задания_персонажа равно 0), либо 0 (если способ_задания_персонажа равно 0 и нужно добавить или удалить состояние для всей партии), либо номер переменной (если способ_задания_персонажа равно 1),
  • вместо операция нужно поставить 0 (если состояние добавляется) или 1 (если состояние удаляется),
  • вместо номер_состояния надо поставить номер состояния в базе данных.

Использование в JavaScript[править]

Информация о состояних персонажа хранится в объекте Game_Actor (код). Получить объект Game_Actor для конкретного персонажа можно с помощью по коду в базе данных можно с помощью $gameActors.actor(id) ($gameActors — объект класса Game_Actors (код), создаваемый в методе createGameObjects класса DataManager (код)).

Чтобы добавить любое состояние состояние, можно использовать такой код:

var actor = $gameActors.actor(3);
  // замените 3 на номер героя
var wasKnockedOut = actor.isDead();
actor.addState(1);
  // замените 1 на номер состояния
if (actor.isDead() && !wasKnockedOut) {
  actor.performCollapse();
}
actor.clearResult();


Если известно, что добавляемое состояние — не первое (не «Нокаут»), код можно упростить:

var actor = $gameActors.actor(3);
  // замените 3 на номер героя
actor.addState(2);
  // замените 2 на номер состояния
actor.clearResult();


Чтобы убрать состояние, можно использовать такой код:

var actor = $gameActors.actor(3);
  // замените 3 на номер героя
actor.removeState(2);
  // замените 2 на номер состояния
actor.clearResult();