DMY UsableWeaponsAndArmors

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

DMY_UsableWeaponsAndArmorsплагін для RPG Maker MV від команди Гарбата. Дозволяє використовувати деякі види зброї та броні з меню. Для них доступна тільки одна дія: виклик спільної події.

Завантажити плагін для MV можна тут: DMY_UsableWeaponsAndArmors.js.

Також існує версія для VX Ace, GRB_UsableWeaponsAndArmors.

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

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

Щоб дозволити використання зброї або броні з меню, додайте в її нотатку код <номер спільної події: 1> (1 треба замінити на номер спільної події).

Також можна використовувати коди іншими мовами: <common event id: 1>, <нумар агульнай падзеі: 1>, <номер общего события: 1>

Ось приклад налаштування зброї:

Приклад налаштування зброї для плагіну DMY UsableWeaponsAndArmors.png

Ось як буде виглядати результат в грі:

Приклад використання плагіну DMY UsableWeaponsAndArmors.png

Код[ ]

//=====================================
//DMY_UsableWeaponsAndArmors.js
//=====================================

/*:
 * @plugindesc Allows calling common events when a weapon or armour is used.
 * @author Dmytryk (Dmy, Demetrius)
 *
 * @help To use this plugin, add  <common event id: 1> to the note field of the
 * weapon or armor, and replace 1 with the common event ID you want to call when
 * the weapon/armour is used.
 *
 * This way of using weapons/armours is only available on the map, not in the
 * battle.
 *
 * This plugin is placed into public domain according to the CC0 public domain
 * dedication. See https://creativecommons.org/publicdomain/zero/1.0/ for more
 * information.
 *
 */
/*:ru
 * @plugindesc Позволяет вызывать общее событие при использовании оружия или
 * брони.
 * @author Dmytryk (Dmy, Demetrius)
 *
 * @help Чтобы использовать этот плагин, добавьте тег <номер общего события: 1>
 * в заметки к оружию или броне, и замените 1 на номер общего события, которое
 * вы хотите вызывать при использовании оружия/брони.
 *
 * Использовать оружие/броню таким образом можно только на карте, не в бою.
 *
 * Этот плагин передан в общественное достояние согласно CC0. Подробнее см. на
 * странице https://creativecommons.org/publicdomain/zero/1.0/deed.ru
 */
/*:be
 * @plugindesc Дазваляе выклікаць агульную падзею падчас выкарыстання зброі або
 * брані.
 * @author Dmytryk (Dmy, Demetrius)
 *
 * @help Каб карыстацца гэтым плагінам, дадайце цэтлік
 * <нумар агульнай падзеі: 1> у нататкі да зброі ці брані, і замяніце 1 на нумар
 * агульнай падзеі, якую вы хочаце выклікаць падчас выкарыстання зброі ці брані.
 *
 * Выкарыстоўваць зброю/браню такім чынам можна толькі на карце, не ў бітве.
 *
 * Гэты плагін пярэданы ў грамадскі набытак згодна з CC0. Падрабязней гл. на
 * старонцы https://creativecommons.org/publicdomain/zero/1.0/deed.be
 */
/*:uk
 * @plugindesc Дозволяє викликати спільную подію під час використання зброї
 * або броні
 * @author Дмитрик (Dmytryk, Dmy, Demetrius)
 *
 * @help Щоб користатися цим плагіном, додайте тег <номер спільної події: 1> до
 * зброї чи броні, і замініть 1 на номер спільної події, яку ви хочете викликати
 * під час використання зброї/броні.
 *
 * Використовувати зброю/броню таким чином можна тільки на карті, не в битві.
 *
 * Цей плагін передано до суспільного надбання згідно з CC0. Детальніше див.
 * на сторінці https://creativecommons.org/publicdomain/zero/1.0/deed.uk
 */

var Imported = Imported || {};
Imported.Deme_UsableWeapons;

var Demetrius = Demetrius || {};
Demetrius.UsableWeapons = Demetrius.UsableWeapons || {};
Demetrius.UsableWeapons.version = 1;

(function () {
  DataManager.Deme_UsableWeapons_processNotetags = function (weapons) {
    var re = /<\s*(?:COMMON\s*EVENT\s*ID|(?:НОМЕР|ID)\s*ОБЩЕГО\s*СОБЫТИЯ|(?:НУМАР|ID)\s*(?:АГУЛЬНАЙ|СУПОЛЬНАЙ)\s*ПАДЗЕІ|(?:НОМЕР|ID)\s*(?:СПІЛЬНОЇ|ЗАГАЛЬНОЇ)\s*ПОДІЇ):\s*(\d+)\s*>/i;
    for (var i = 1; i < weapons.length; i++) {
      var weapon = weapons[i];
      var matched = false;
      if (weapon.note) {
        var matched = weapon.note.match(re);
      }
      if (matched) {
        weapon.Deme_UsableWeapons_commonEventId = matched[1];
      }
    }
  }

  Demetrius.UsableWeapons.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
  DataManager.isDatabaseLoaded = function() {
    if (!Demetrius.UsableWeapons.DataManager_isDatabaseLoaded.call(this)) {
      return false;
    }
    if (!Demetrius.UsableWeapons.notetagsWereProcessed) {
      this.Deme_UsableWeapons_processNotetags($dataWeapons);
      this.Deme_UsableWeapons_processNotetags($dataArmors);
      Demetrius.UsableWeapons.notetagsWereProcessed = true;
    }

    return true;
  };

  Demetrius.UsableWeapons.Window_ItemList_isEnabled = Window_ItemList.prototype.isEnabled;
  Window_ItemList.prototype.isEnabled = function(item) {
    if (item.Deme_UsableWeapons_commonEventId) {
      return true;
    }
    return Demetrius.UsableWeapons.Window_ItemList_isEnabled.call(this, item);
  };

  Demetrius.UsableWeapons.Scene_ItemBase_useItem = Scene_ItemBase.prototype.useItem;
  Scene_ItemBase.prototype.useItem = function() {
    var item = this.item();
    if (item.Deme_UsableWeapons_commonEventId) {
      this.playSeForItem();
      $gameTemp.reserveCommonEvent(item.Deme_UsableWeapons_commonEventId)
      this.checkCommonEvent();
    }
    else {
      return Demetrius.UsableWeapons.Scene_ItemBase_useItem.call(this);
    }
  }

})();

Посилання[ ]