Команды RPG Maker MV/Изменить HP, MP, TP противника

Материал из Русская версия РПГ.укр
Окно настройки команды «Изменить HP противника». (У команд изменения MP и TP вид такой же, но без галочки «Разрешить нокаут».)

Изменить HP, MP и TP противника — три команды событий в RPG Maker MV, которые позволяют изменить очки здоровья (HP), очки магии/умений (MP) и очки техники (TP) у какого-то из противниц или противников или у всего отряда в бою.

Это аналоги команд Изменить HP, MP, TP, но для противников. Они действиют только в битве.

При использовании этих команд в битве не выводится никакой информации о том, что HP изменилось — её нужно вывести самостоятельно. Например, командой Показать сообщение.

Доступные параметры[править]

Для каждой из трёх команд доступны такие настройки:

  • Чьи очки меняются: всего отряда или конкретной противницы или противника.
  • Что делается с очками: они увеличиваются или уменьшаются.
  • На какое число увеличиваются или уменьшаются очки. Число может быть задано явно или браться из переменной.

Для команды Изменить HP противника также есть галочка «Разрешить нокаут», доступная при уменьшении очков здоровья. Если она включена, уменьшение очков может снизить HP до нуля и вывести противника или противницу из боя. Если выключена, команда всегда оставит хотя бы одно 1 HP.

Значение HP, MP, TP[править]

Очки HP, MP и TP — это временные единицы, которые могут расходоваться в битве на умения:

  • HP (очки здоровья) отражает здоровье противниц и противников. Они обычно уменьшаются при атаке героинь и героев. Если они снижаются до нуля, противник или противница выбывает из боя. (У команды «Изменить HP противника» есть галочка «Разрешить нокаут». Если галочка выключена, а команда должна отнять больше очков HP, чем есть у противницы или противника, то команда всегда оставит 1 очко здоровья, чтобы избежать выбывания из боя.)
  • MP (очки магии/умений) отражают энергию противника или противницы, расходуемую на умения.
  • TP (очки техники) отражают ярость или степень подготовки к сложным приёмам. Они увеличиваются во время боя, если противнику или противнице наносят урон.

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

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

Коды команд такие: изменить HP противника — 331, изменить MP противника — 332, изменить TP противника — 333.

Они кодируются таким образом:

{
  "code": код_команды,
  "indent": 0,
  "parameters": [
    номер_противника,
    действие,
    способ_задания_количества,
    количество_или_переменная,
    разрешён_ли_нокаут
  ]
}

Где:

  • вместо код_команды следует поставить код 331, 332 или 333,
  • вместо номер_противника следует поставить либо -1 (если очки должны меняться у всего отряда), либо номер противника начиная с нуля (то есть первый противник — 0, второй — 1; т.е. внутренний формат отличается от нумерации в редакторе);
  • вместо действие нужно поставить либо 0 (если очки прибавляются), либо 1 (если очки отнимаются),
  • вместо способ_задания_количества нужно поставить либо 0 (если количество задано непосредственно в команде), либо 1 (если количество берётся из переменной),
  • вместо количество_или_переменная нужно поставить либо число отнимаемых или прибавляемых очков (если способ_задания_количества равен 0), либо номер переменной (если способ_задания_количества равен 1),
  • в команде 331 (Изменить HP противника) вместо разрешён_ли_нокаут следует поставить либо true (если изменение HP может привести к выбыванию из боя), либо false (если команда должна сохранить хотя бы 1 HP),
  • в командах 332 и 333 (Изменить MP и TP противника) строки разрешён_ли_нокаут быть не должно, а в предыдущей строке не нужна запятая в конце.

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

Чтобы изменить очки здоровья персонажа так, как это делает команда «Изменить HP противника» со включённой галочкой «Разрешить нокаут», можно использовать такой код:

    var target = $gameTroop.members()[0];
      //замените 0 на номер персонажа (начиная с нуля)
    var value = 100;
      //замените 100 на количество HP, можно отрицательное
    if (target.isAlive()) {
        target.gainHp(value);
        if (target.isDead()) {
            target.performCollapse();
        }
    }

А вот так можно повторить действие команды «Изменить HP противника» с выключенной галочкой «Разрешить нокаут»:

    var target = $gameTroop.members()[0];
      //замените 0 на номер персонажа (начиная с нуля)
    var value = 100;
      //замените 100 на количество HP, можно отрицательное
    if (target.isAlive()) {
        if (target.hp <= -value) {
            value = 1 - target.hp;
        }
        target.gainHp(value);
    }

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

$gameTroop.members()[0].gainMp(100)
  //замените 0 на номер противника (начиная с 0),
  //а 100 — на количество добавляемых очков MP
  // (можно отрицательное)

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

$gameTroop.members()[0].gainMp(50)
  //замените 0 на номер противника (начиная с 0),
  //а 50 — на количество добавляемых очков TP
  // (можно отрицательное)

См. также[править]