GRB RegionEventTriggers

Матеріал з РПГ.укр
Перейти до: навігація, пошук

GRB_RegionEventTriggersплагін для RPG Maker MV та MZ від команди Гарбата. Він дозволяє зробити події, які активуються при вході в регіон, виході з регіону та на кожному кроці в регіоні.

Завантажити плагін можна тут: GRB_RegionEventTriggers.js.

Використання[ ]

У плагіну немає параметрів.

Для його використання потрібно додати на початку команд події команду Команда плагіну. В RPG Maker MV потрібно вказати один з текстових кодів (таких ях тригер: вхід в регіон 1, див. нижче). В RPG Maker MZ — вибрати потрібний варіант зі списку та двічі натиснути по пункту Регіони(анг. Regions, ​рос. Регионы), щоб змінити список регіонів (а там двічі натиснути по рядкам, щоб вказати регіони).

Доступні такі коди (1 чи 1, 2 треба замінити на свої номери регіонів):

Значення Код Альтернативні коди
Вхід в регіон тригер: вхід в регіон 1 трыгер: уваход у рэгіён 1
trigger: region 1 entered
триггер: вход в регион 1
Вхід в групу регіонів тригер: вхід в регіони 1, 2 трыгер: уваход у рэгіёны 1, 2
trigger: regions 1, 2 entered
триггер: вход в регионы 1, 2
Вихід з регіону тригер: вихід з регіону 1 трыгер: выхад з рэгіёну 1
trigger: region 1 left
триггер: выход из региона 1
Вхід з групи регіонів тригер: вихід з регіонів 1, 2 трыгер: выхад з рэгіёнаў 1, 2
trigger: regions 1, 2 left
триггер: выход из регионов 1, 2
Крок в регіоні тригер: крок у регіоні 1 трыгер: крок у рэгіёнё 1
trigger: step in region 1
триггер: шаг в регионе 1
Крок в групі регіонів тригер: крок у регіонах 1, 2 трыгер: крок у рэгіёнах 1, 2
trigger: step in regions 1, 2
триггер: шаг в регионах 1, 2

Цей плагін заміняє стандартні тригери (умови активації) подій. Тобто якщо подія активується регіонами, вона не буде активуватися кнопкою, торканням, автоматично, паралельно і т.і.

Ліцензія[ ]

Цей плагін розповсюджується за ліцензією MIT. Його можна використовувати в будь-яких своїх проєктах, але потрібно залишити інформацію про авторство.

Якщо ви не шифруєте файли плагінів (стандартне шифрування RPG Maker MV їх не шифрує), то достатньо інформації про авторство в файлі плагіну.

Але якщо ви ховаєте код гри за допомогою програм Enigma Virtual Box (див. офіційний сайт), RPG Maker MV Cook Tool (див. RpgMakerWeb.com) чи подібних, вам потрібно буде вказати, що проєкт включає код від команди Гарбата, в документацію або титри своєї гри.

Код[ ]

//===========================
// GRB_RegionEventTriggers.js
//===========================
/*:
 * @target MV MZ
 * @plugindesc Allows to make events triggered by entering/leaving regions
 * @author Garbata team https://garbata.net/
 * @url https://rpgukr.one/GRB_RegionEventTriggers
 *
 * @help To make an event that is triggered when the player enters regions, add
 * a plugin command
 * trigger: region 1 entered
 * trigger: regions 1, 2 entered
 * in the beginning of the event page contents.
 * (Replace 1 or 1, 2 with region(s) you need. You can use as much regions as
 * you need. The event will be triggered when entering ANY of them. It won’t be
 * triggered when moving from one of the comma-separated region to another)
 *
 * To make an event that is triggered when player leaves the region, use the
 * following plugin command:
 * trigger: region 1 left
 * trigger: regions 1, 2 left
 *
 * To make an event that is triggered when player takes a step on a region, use
 * the following plugin command:
 * trigger: step in region 1
 * trigger: step in regions 1, 2
 *
 * The region triggers REPLACE the normal triggers (so events won’t be triggered
 * by, e.g., pressing a key on them).
 *
 * This plugin is distributed according to the terms of the MIT license.
 * Basically, it means that you can freely use this plugin it in both commercial
 * and non-commercial projects, as long as you keep the license notice in the
 * source code and don’t sue us for this plugin not working.
 *
 * If the code of your project can be opened by end users, then crediting
 * Garbata team is appreciated but not required: we’re credited in the code so
 * this is enough. But if you use some obfuscation technique that makes the code
 * unreadable, you must credit us somewhere where people can actually read the
 * attribution.
 *
 * @command regionEntered
 * @text Trigger: Region(s) entered
 * @desc Makes the event (on map) activate when the player enters any
 * of the regions. The standard trigger is ignored.
 *
 * @arg regions
 * @text Regions
 * @type number[]
 * @min 1
 * @max 255
 * @desc IDs of the regions. When the player enters any of
 * the regions, the event will be triggered.
 *
 * @command regionLeft
 * @text Trigger: Region(s) left
 * @desc Makes the event (on map) activate when the leaves enters any
 * of the regions. The standard trigger is ignored.
 *
 * @arg regions
 * @text Regions
 * @type number[]
 * @min 1
 * @max 255
 * @desc IDs of the regions. When the player leaves all of
 * the regions, the event will be triggered.
 *
 * @command regionStep
 * @text Trigger: Step in region(s)
 * @desc Makes the event (on map) activate when the player takes
 * a step in any of the regions. The standard trigger is ignored.
 *
 * @arg regions
 * @text Regions
 * @type number[]
 * @min 1
 * @max 255
 * @desc IDs of the regions. When the player takes a step in
 * any of the regions, the event will be triggered.
 */
/*:ru
 * @target MV MZ
 * @plugindesc Позволяет создать событие, активирующееся по шагам в регионе
 * @author Команда Гарбата http://garbata.net/
 * @url https://rpgukr.one/GRB_RegionEventTriggers
 *
 * @help Чтобы создать событие, которое активируется при входе в регион,
 * добавьте такую команду плагина:
 * триггер: вход в регион 1
 * триггер: вход в регионы 1, 2
 * в начале содержимого страницы события.
 * (Замените 1 или 1, 2 на регион(ы), которые вам нужны. Можно перечислить
 * сколько угодно регионов через запятую. Событие будет вызываться при входе в
 * ЛЮБОЙ из них. Событие не будет вызываться при переходе из одного в другой,
 * если оба перечислены через запятую.)
 *
 * Чтобы создать событие, которое активируется, когда игрок уходит из региона,
 * используйте такую команду события:
 * триггер: выход из региона 1
 * триггер: выход из регионов 1, 2
 *
 * Чтобы создать событие, которое активируется, когда игрок делает один шаг
 * внутри региона, используйте такую команду плагина:
 * триггер: шаг в регионе 1
 * триггер: шаг в регионах 1, 2
 *
 * Региональные триггеры ЗАМЕНЯЮТ обычные триггеры (поэтому события нельзя будет
 * активировать, например, нажав клавишу).
 *
 * Этот плагин распространяется по лицензии MIT. Вкратце, это значит, что плагин
 * можно свободно использовать и в коммерческих и некоммерческих проектах, если
 * вы сохраняете информациию о лицензии в коде и не будете подавать на нас
 * в суд, если плагин не будет работать.
 *
 * Если код вашего проекта можно прочитать, то указывать нас в титрах
 * не обязательно, достаточно того, что мы упомянуты в коде плагина (хотя мы
 * будем рады, если упомянёте нас где-то ещё). Но если вы используете какой-то
 * механизм обфускации, из-за которого код нельзя прочитать, то информацию
 * об авторстве плагина нужно указать где-то, где её можно будет прочитать.
 *
 * @command regionEntered
 * @text Триггер: Вход в регион(ы)
 * @desc Делает, чтобы событие (на карте) активировалось, когда игрок
 * входит заданные регионы. Отменяет стандартный триггер.
  *
 * @arg regions
 * @text Регионы
 * @type number[]
 * @min 1
 * @max 255
 * @desc Номера регионов. Когда игрок войдёт в любой из них,
 * событие активируется.
 *
 * @command regionLeft
 * @text Триггер: Выход из регионов
 * @desc Делает, чтобы событие (на карте) активировалось, когда игрок
 * выходит из заданных регионов. Отменяет стандартный триггер.
 *
 * @arg regions
 * @text Регионы
 * @type number[]
 * @min 1
 * @max 255
 * @desc Номера регионов. Когда игрок выйдет из их всех,
 * событие активируется.
 *
 * @command regionStep
 * @text Триггер: Шаг в регионе/-ах
 * @desc Делает, чтобы событие (на карте) активировалось, когда игрок
 * шагает в заданных регионах. Отменяет стандартный триггер.
 *
 * @arg regions
 * @text Регионы
 * @type number[]
 * @min 1
 * @max 255
 * @desc Номера регионов. Когда игрок сделает шаг в любом из них,
 * событие активируется.
 */
/*:uk
 * @target MV MZ
 * @plugindesc Дозволяє створити подію, яка активується від кроків в регіоні
 * @author Команда Гарбата http://garbata.net/
 * @url https://рпг.укр/GRB_RegionEventTriggers
 *
 * @help Щоб створити подію, яка активується, коли гравець заходить в регіон,
 * додайте таку команду плагіна:
 * тригер: вхід в регіон 1
 * тригер: вхід в регіони 1, 2
 * у початок змісту події.
 * (Замініть 1 чи 1, 2 на регіон(и), які вам потрібні. Можна перелічити скільки
 * завгодно регіонів через кому. Подія викликатиметься, колі гравець заходить
 * на БУДЬ-ЯКИЙ з них. Подія не викликатиметься, коли перелічено декільки
 * регіонів і гравець переходить з одного на інший з них.)
 *
 * Щоб створити подію, яка активується, коли гравець виходить з регіону,
 * використовуйте таку команду плагіна:
 * тригер: вихід з регіону 1
 * тригер: вихід з регіонів 1, 2
 *
 * Щоб створити подію, яка активується, коли гравець робить один крок регіоном,
 * використовуйте таку команду плагіна:
 * тригер: крок у регіоні 1
 * тригер: крок у регіонах 1, 2
 *
 * Регіональні тригери ЗАМІНЯЮТЬ звичайні тригери (тому події не можна буде
 * активувати, наприклад, натиснувши клавішу).
 *
 * Цей плагін вільно розповсюджується за ліцензією MIT. Коротко кажучи, це
 * значить, що плагін можна вільно використовувати в комерційних та
 * некомерційних проектах, якщо ви залишите інформацію про ліцензію в коді
 * та не будете подавати на нас в суд, якщо плагін не працюватиме.
 *
 * Якщо код вашого проекта можна прочитати, то вказувати нас в титрах
 * не обовʼязково, достатньо того, що нас згадано в коді плагіна (але ми будемо
 * раді, якщо ви згадаєте нас десь ще). Але якщо ви використовуєте якийсь
 * механізм обфускації, через який код неможливо прочитати, то інформацію
 * про авторство використаного плагіна треба вказати десь, де її можна буде
 * прочитати.
 *
 * @command regionEntered
 * @text Тригер: Вхід в регіон(и)
 * @desc Робить, щоб подія (на карті) активувалася, коли гравець
 * заходить у вказані регіони. Скасовує стандартний тригер.
  *
 * @arg regions
 * @text Регіони
 * @type number[]
 * @min 1
 * @max 255
 * @desc Номери регіонів. Коли гравець зайде в будь-який з них,
 * подія активується.
 *
 * @command regionLeft
 * @text Тригер: Вихід з регіонів
 * @desc Робить, щоб подія (на карті) активувалася, коли гравець
 * виходить із указаних регіонів. Скасовує стандартний тригер.
 *
 * @arg regions
 * @text Регіони
 * @type number[]
 * @min 1
 * @max 255
 * @desc Номери регіонів. Коли гравець вийде на регіон
 * не зі списку, подія активується.
 *
 * @command regionStep
 * @text Тригер: Крок у регіоні/-ах
 * @desc Робить, щоб подія (на карті) активувалася, коли гравець
 * крочить у вказаних регіонах. Скасовує стандартний тригер.
 *
 * @arg regions
 * @text Регіони
 * @type number[]
 * @min 1
 * @max 255
 * @desc Номери регіонів. Коли гравець зробить крок у будь-якому
 * з них, подія активується.
 */
/*:be
 * @target MV MZ
 * @plugindesc Дазваляе стварыць падзею, якая актывуецца ад крокаў у рэгіёне
 * @author Каманда Гарбата http://garbata.net/
 * @url https://рпг.укр/GRB_RegionEventTriggers
 *
 * @help Щоб створити подію, яка активується, коли гравець заходить в регіон,
 * додайте таку команду плагіна:
 * трыгер: уваход у рэгіён 1
 * трыгер: уваход у рэгіёны 1, 2
 * у пачатак зместу падзеі.
 * (Замяніце 1 ці 1, 2 на рэгіён(ы), якія вас патрэбныя. Можна пералічыць колькі
 * хочаце рэгіёнаў праз коску. Падзея будзе выклікацца, калі гулец заходзіць на
 * ЛЮБЫ з іх. Падзея не будзе выклікацца, калі гулец пераходзіць з аднаго
 * з пералічаных рэгіёнаў на іншы з іх.)
 *
 * Каб стварыць падзею, якая актывуецца, калі гулец выходзіць з рэгіёна,
 * выкарыстоўвайце такую каманду плагіна:
 * трыгер: выхад з рэгіёну 1
 * трыгер: выхад з рэгіёнаў 1, 2
 *
 * Каб стварыць падзею, якая актывуецца, калі гулец робіць адзін крок
 * па рэгіёне, выкарыстоўвайце такую каманду плагіна:
 * трыгер: крок у рэгіёнё 1
 * трыгер: крок у рэгіёнах 1, 2
 *
 * Рэгіянальныя трыгеры ЗАМЯНЯЮЦЬ звычайныя трыгеры (таму падзеі нельга будзе
 * актываваць, напрыклад, нацснуўшы клавішу).
 *
 * Гэты плагін вольна распаўсюджваецца па ліцэнзіі MIT. Карацей кажучы, гэта
 * значыць, што плагін можна свабодна выкарыстоўваць у камерцыйных і
 * некамерцыйных праектах, калі вы пакінеце інфармацыю пра ліцэнзію ў кодзе
 * і не будзеце падаваць на нас у суд, калі плагін не будзе працаваць.
 *
 * Калі код вашага праекта можна прачытаць, то называць нас у тытрах
 * не абавязкова; дастаткова таго, што мы згаданыя ў кодзе плагіна (але мы
 * будзем радыя, калі вы згадаеце нас недзе яшчэ). Але калі вы выкарыстоўваеце
 * нейкі механізм абфускацыі, праз які код немагчыма прачытаць, то інфармацыю
 * пра аўтарства выкарыстанага плагіна трэба напісаць недзе, дзе яе можна будзе
 * прачытаць.
 *
 * @command regionEntered
 * @text Трыгер: Уваход у рэгіён(ы)
 * @desc Робіць, каб падзея (на карце) актывавалася, калі гулец
 * заходзіць ва ўказаныя рэгіёны. Адмяняе стандартны трыгер.
 *
 * @arg regions
 * @text Рэгіёны
 * @type number[]
 * @min 1
 * @max 255
 * @desc Нумары рэгіёнаў. Калі гулец зойдзе у любы з іх, падзея
 * актывуецца.
 *
 * @command regionLeft
 * @text Трыгер: Выхад з рэгіёнаў
 * @desc Робіць, каб падзея (на карце) актывавалася, калі гулец
 * выходзіць з указаных рэгіёнаў. Адмяняе стандартны трыгер.
 *
 * @arg regions
 * @text Рэгіёны
 * @type number[]
 * @min 1
 * @max 255
 * @desc Нумары рэгіёнаў. Калі гулец выйдзе з іх на рэгіён
 * не са спісу, падзея актывуецца.
 *
 * @command regionStep
 * @text Трыгер: Крок у рэгіёнах
 * @desc Робіць, каб падзея (на карце) актывавалася, калі гулец
 * робіць крок ва ўказаных рэгіёнах. Адмяняе стандартны трыгер.
 *
 * @arg regions
 * @text Рэгіёны
 * @type number[]
 * @min 1
 * @max 255
 * @desc Нумары рэгіёнаў. Калі гулец зробіць крок у любым з іх,
 * падзея актывуецца.
 */

/*
 * Copyright (c) 2018-2020 Garbata team http://garbata.net/
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

(function () {

  /**
   * Receives a command like ‘trigger: regions 1, 2 left’
   *
   * Returns plugin command string. Returns a trigger subtype ('regionEntered',
   * 'regionLeft', 'regionStep') or null, if this is not a valid string.
   *
   * @param {String} s Plugin command string
   * @return {String|null} Either one of the predefined type strings
   * ('regionEntered', 'regionLeft', 'regionStep') or null
   */
  function getTriggerSubtypeMv(s) {
    var triggerCommandRe = /^\s*(?:trigger|триггер|трыгер|тригер|активатор|актыватар|активатор)\s*:\s*(.*?)\s*$/i;
    var triggerCommandMatch = s.match(triggerCommandRe);

    if (!triggerCommandMatch) {
      return null;
    }
    var command = triggerCommandMatch[1].trim();

    if (command.match(/regions? .* entered|вход в регион(ы)? .*|уваход у рэгіён(ы)? .*|вхід в регіон(и)?/i)) {
      return 'regionEntered';
    }
    else if (command.match(/regions? .* left|выход из регион(а|ов) .*|выхад з рэгіён(а|у|аў) .*|вихід з регіон(а|у|ів)/i)) {
      return 'regionLeft';
    }
    else if (command.match(/step in regions? .*|шаг в регион(е|ах) .*|крок у рэгіён(е|ах) .*|крок (у|в) регіон(і|ах)/i)) {
      return 'regionStep';
    }

    return null;
  }

  /**
   * Receives a command like ‘trigger: regions 1, 2 left’, and returns the
   * array of region IDs (like [1, 2]) as numbers
   *
   * @param {String} s Plugin command string
   * @return {Array|null} Array of region IDs, or null if there are no region
   * IDs
   */
  function getTriggerRegionIdsMv(s) {
    var numbersRe = /([0-9][0-9 ,]*)/;
    var numbersMatches = s.match(numbersRe);

    if (!numbersMatches) {
      return null;
    }

    var numbers = numbersMatches[1].split(',').map(function (x) {
      return parseInt(x.trim());
    }).filter(function (x) {
      return !isNaN(x)
    });

    if (numbers.length > 0) {
      return numbers;
    }
    else {
      return null;
    }
  }

  /**
   * Postprocesses the map, changing triggers for the event pages if they have
   * the ‘Plugin Commands’ event command with the relevant code.
   */
  function postprocessEventTriggers() {
    var hasRegionStepEvents = false;

    if ($dataMap.events && $dataMap.events.length) {
      for (var evIndex = 1; evIndex < $dataMap.events.length; evIndex++) {
        var event = $dataMap.events[evIndex];
        var isRegionTriggerable = false;

        event.pages.forEach(function (page) {
          page.list.forEach(function (cmd) {
            var triggerSubtype, regionIds;

            if (cmd.code === 356 && cmd.parameters.length >= 1) { //MV
              triggerSubtype = getTriggerSubtypeMv(cmd.parameters[0]);
              if (triggerSubtype !== null) {
                regionIds = getTriggerRegionIdsMv(cmd.parameters[0]);
              }
            } else if (cmd.code === 357 && cmd.parameters.length >= 3
                       && cmd.parameters[0] == 'GRB_RegionEventTriggers') { //MZ
              triggerSubtype = cmd.parameters[1];
              regionIds = JSON.parse(cmd.parameters[3].regions)
                            .map((x) => parseInt(x))
                            .filter((x) => !isNaN(x));
              if (!regionIds.length) {
                regionIds = null;
              }
             }

            if (triggerSubtype && regionIds) {
              page.trigger = triggerSubtype;
              page.triggerRegionIds = regionIds;
              if (triggerSubtype === 'regionStep') {
                hasRegionStepEvents = true;
              }
            }
          });
        });
      }
    }

    $dataMap.hasRegionStepEvents = hasRegionStepEvents;
  }

  /**
   * Triggers region events on the current map.
   *
   * @param {Number} newRegion The region ID of the tile the character enters.
   * @param {Number} oldRegion The region ID of the tile the character leaves.
   */
  function triggerRegionEvents(newRegion, oldRegion) {
    if (oldRegion == newRegion && !$dataMap.hasRegionStepEvents) {
      return;
    }

    var regionEvents = $gameMap.events().filter(function(event) {
        return event && event.page().triggerRegionIds;
    });

    if (newRegion != oldRegion) {
      startRegionLeftEvents(regionEvents, newRegion, oldRegion);
      startRegionEnteredEvents(regionEvents, newRegion, oldRegion);
    }

    if ($dataMap.hasRegionStepEvents) {
      startRegionStepEvents(regionEvents, newRegion);
    }
  }

  /**
   * Start events that are triggered when a region is leaved.
   *
   * @param {Array} Array of events (preferable filtered to be region events)
   * @param {Number} newRegion The region ID of the tile the character enters.
   * @param {Number} oldRegion The region ID of the tile the character leaves.
   */
  function startRegionLeftEvents(events, newRegion, oldRegion) {
    events.filter(function (event) {
      var page = event.page();
      return page.trigger === 'regionLeft'
                    && page.triggerRegionIds.indexOf(newRegion) === -1
                    && page.triggerRegionIds.indexOf(oldRegion) >= 0;
      return isLeaving;
    }).forEach(function (event) {
      event.start();
    });
  }

  /**
   * Start events that are triggered when a region is entered.
   *
   * @param {Array} Array of events (preferable filtered to be region events)
   * @param {Number} newRegion The region ID of the tile the character enters.
   * @param {Number} oldRegion The region ID of the tile the character leaves.
   */
  function startRegionEnteredEvents(events, newRegion, oldRegion) {
    events.filter(function (event) {
      var page = event.page();

      return page.trigger === 'regionEntered'
                    && page.triggerRegionIds.indexOf(newRegion) >= 0
                    && page.triggerRegionIds.indexOf(oldRegion) === -1;
    }).forEach(function (event) {
      event.start();
    });
  }

  /**
   * Start events that are triggered when a player makes a step on the region.
   *
   * @param {Array} Array of events (preferable filtered to be region events)
   * @param {Number} region The region ID of the tile the character takes a step
   */
  function startRegionStepEvents(events, region) {
    events.filter(function (event) {
      var page = event.page();

      return page.trigger === 'regionStep'
        && page.triggerRegionIds.indexOf(region) != -1;
    }).forEach(function (event) {
      event.start();
    });
  }

  var Scene_Map_onMapLoaded = Scene_Map.prototype.onMapLoaded;
  Scene_Map.prototype.onMapLoaded = function () {
    postprocessEventTriggers();
    Scene_Map_onMapLoaded.call(this);
  };

  var Scene_Map_start = Scene_Map.prototype.start;
  Scene_Map.prototype.start = function () {
    Scene_Map_start.call(this);
  };

  var Game_Map_initialize = Game_Map.prototype.initialize;
  Game_Map.prototype.initialize = function () {
    Game_Map_initialize.call(this);
    this._garbataSavedRegionId = 0;
  }

  var Game_Player_startMapEvent = Game_Player.prototype.startMapEvent;
  Game_Player.prototype.startMapEvent = function(x, y, triggers, normal) {
    if (!normal) {
      var newRegionId = $gameMap.regionId(x, y);
      triggerRegionEvents(newRegionId, $gameMap._garbataSavedRegionId);
      $gameMap._garbataSavedRegionId = newRegionId;
    }

    Game_Player_startMapEvent.call(this, x, y, triggers, normal);
  };

})();

Подібні плагіни та скрипти[ ]

В RPG Maker VX Ace скрипт Custom Event Triggers (див. HimeWorks) від HimeWorks дозволяє виконати подію при заході в регіон та виході з нього.

Якщо потрібно виконувати спільну подію на кожному кроці в регіоні, можна використати:

Посилання[ ]