Внимание! Если вы копируете плагин отсюда, убедитесь, что в текстовом редакторе выбрана кодировка «UTF-8 без BOM». (Блокнот стал её поддерживать только с обновления Windows 10 Build 1903 (19H1). UTF-8 из большинства версий Блокнота не будет работать, т.к. она с BOM!)
Если вы скопируете в других кодировках, возможны проблемы с кириллицей (если в ANSI-кодировке), а то и вообще плагин не запустится (если в кодировках UTF-8 с BOM, UTF-16/двухбайтовый Юникод и т.д.).
Рекомендуемый способ скачивания плагина: щёлкните по ссылке
DMY_UsableWeaponsAndArmors.js правой кнопкой мыши и выберите «Сохранить по ссылке как...» (или похожий вариант, зависит от перевода браузера). Код ниже — для быстрого ознакомления и на случай, если ссылки перестанут работать.
//=====================================
//DMY_UsableWeaponsAndArmors.js
//=====================================
/*:
* @target MV MZ
* @plugindesc Allows calling common events when a weapon or armour is used.
* @author Dmytryk (Dmy, Demetrius) from Garbata Team
*
* @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
* @target MV MZ
* @plugindesc Позволяет вызывать общее событие при использовании оружия или
* брони.
* @author Dmytryk (Dmy, Demetrius) из команды Гарбата
*
* @help Чтобы использовать этот плагин, добавьте тег <номер общего события: 1>
* в заметки к оружию или броне, и замените 1 на номер общего события, которое
* вы хотите вызывать при использовании оружия/брони.
*
* Использовать оружие/броню таким образом можно только на карте, не в бою.
*
* Этот плагин передан в общественное достояние согласно CC0. Подробнее см. на
* странице https://creativecommons.org/publicdomain/zero/1.0/deed.ru
*/
/*:be
* @target MV MZ
* @plugindesc Дазваляе выклікаць агульную падзею падчас выкарыстання зброі або
* брані.
* @author Dmytryk (Dmy, Demetrius) з каманды Гарбата
*
* @help Каб карыстацца гэтым плагінам, дадайце цэтлік
* <нумар агульнай падзеі: 1> у нататкі да зброі ці брані, і замяніце 1 на нумар
* агульнай падзеі, якую вы хочаце выклікаць падчас выкарыстання зброі ці брані.
*
* Выкарыстоўваць зброю/браню такім чынам можна толькі на карце, не ў бітве.
*
* Гэты плагін пярэданы ў грамадскі набытак згодна з CC0. Падрабязней гл. на
* старонцы https://creativecommons.org/publicdomain/zero/1.0/deed.be
*/
/*:uk
* @target MV MZ
* @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);
}
}
})();