- Сообщений: 1142
- Спасибо получено: 2483
[MV, MZ] GRB_Non Battler Actors (убр.героя из боя)
7 года 7 мес. назад - 5 года 1 мес. назад #105851
от Dmy
Dmy создал тему: [MV, MZ] GRB_Non Battler Actors (убр.героя из боя)
Плагин GRB_NonBattlerActors для RPG Maker MV и MZ позволяет исключить некоторых персонажей из битвы.
Плагин можно скачать здесь: GRB_NonBattlerActors.js
Внимание! Если вы копируете плагин отсюда, убедитесь, что в текстовом редакторе выбрана кодировка «UTF-8 без BOM». (Блокнот стал её поддерживать только с обновления Windows 10 Build 1903 (19H1). UTF-8 из большинства версий Блокнота не будет работать, т.к. она с BOM!)
Если вы скопируете в других кодировках, возможны проблемы с кириллицей (если в ANSI-кодировке), а то и вообще плагин не запустится (если в кодировках UTF-8 с BOM, UTF-16/двухбайтовый Юникод и т.д.).
Рекомендуемый способ скачивания плагина: щёлкните по ссылке GRB_NonBattlerActors.js правой кнопкой мыши и выберите «Сохранить по ссылке как...» (или похожий вариант, зависит от перевода браузера). Код ниже — для быстрого ознакомления и на случай, если ссылки перестанут работать.
Герои будут ходить с партией по карте, но в битве участвовать не будут.
Чтобы отметить героя или героиню как недоступного в битве, добавьте в его заметки один из таких кодов:
<не в битве>
Доступны также коды на других языках: <non-battler>, <не ў бітве>, <не в битві>
Например, если сделать так, то Гарольд будет ходить по карте, но не будет участвовать в битве:
Кроме того, плагин позволяет включать/выключать персонажей из битвы переключателем. Если переключатель включён — персонаж будет доступен в битве, если выключен — недоступен:
<боевой переключатель: 1>
Или на других языках: <battler switch: 1>, <баявы пераключальнік: 1>, <бойовий перемикач: 1>
Вместо 1 укажите номер переключателя. Когда этот переключатель включён, герой будет появляться в битве. Когда выключен — не будет.
Идею плагина я взял из поста какого-то Сергея ВКонтакте — спасибо ему!
Плагин можно скачать здесь: GRB_NonBattlerActors.js
Полный код плагина
Внимание! Если вы копируете плагин отсюда, убедитесь, что в текстовом редакторе выбрана кодировка «UTF-8 без BOM». (Блокнот стал её поддерживать только с обновления Windows 10 Build 1903 (19H1). UTF-8 из большинства версий Блокнота не будет работать, т.к. она с BOM!)
Если вы скопируете в других кодировках, возможны проблемы с кириллицей (если в ANSI-кодировке), а то и вообще плагин не запустится (если в кодировках UTF-8 с BOM, UTF-16/двухбайтовый Юникод и т.д.).
Рекомендуемый способ скачивания плагина: щёлкните по ссылке GRB_NonBattlerActors.js правой кнопкой мыши и выберите «Сохранить по ссылке как...» (или похожий вариант, зависит от перевода браузера). Код ниже — для быстрого ознакомления и на случай, если ссылки перестанут работать.
Code:
//=========================
// GRB_NonBattlerActors.js
//=========================
/*:
* @target MV MZ
* @plugindesc Allows to mark some actors as non-battlers
* @author Garbata Team
* @url https://рпг.укр/DMY_SkipVideo
*
* @help To mark some actor as unavailable in battle, add
* <non-battler>
* to their notes field.
*
* To use switch for determining actor availability in battle, add
* <battler switch: 1>
* to the actor’s notes field (replacing 1 with the switch number). The actor
* will appear in battle only if the switch is ON.
*
* 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 Команда Гарбата
* @url https://рпг.укр/DMY_SkipVideo
*
* @help Чтобы указать, что герой или героиня не должны участвовать в битве,
* добавьте в поле «Заметки» такой текст:
* <не в битве>
*
* Чтобы доступность героини или героя в битве определялась переключателем,
* добавьте
* <боевой переключатель: 1>
* в поле «Заметки» персонажа (замените 1 на номер переключателя). Персонаж
* будет доступен в битве лишь когда этот переключатель будет ВКЛючён.
*
* Этот плагин передан в общественное достояние согласно CC0. Подробнее см. на
* странице https://creativecommons.org/publicdomain/zero/1.0/deed.ru
*/
/*:uk
* @target MV MZ
* @plugindesc Дозволяє виключити деяких героїв чи героїнь з бою.
* @author Команда Гарбата
* @url https://рпг.укр/DMY_SkipVideo
*
* @help Щоб вказати, що герой чи героїня не мають брати участь в битві, треба
* вказати в полі «Нотатки» такий текст:
* <не в битві>
*
* Щоб доступність героїні чи героя в битві визначалася перемикачем, додайте
* <бойовий перемикач: 1>
* в поле «Нотатки» персонажа (замініть 1 на номер перемикача). Персонаж буде
* доступний в битві тільки тоді, коли цей перемикач буде УВІМКнено.
*
* Цей плагін передано до суспільного надбання згідно з CC0. Детальніше див.
* на сторінці https://creativecommons.org/publicdomain/zero/1.0/deed.uk
*/
/*:be
* @target MV MZ
* @plugindesc Дазваляе выключыць некаторых герояў ці гераінь з бою.
* @author Каманда Гарбата
* @url https://рпг.укр/DMY_SkipVideo
*
* @help Каб паказаць, што герой ці гераіня не мусяць удзельнічаць у бітве,
* дадайце ў поле «Нататкі» персанажа такі тэкст:
* <не ў бітве>
*
* Каб даступнасць героя ці гераіні ў бітве вызначалася пераключальнікам,
* дадайце
* <баявы пераключальнік: 1>
* у поле «Нататкі» персанажа (замяніце 1 на нумар пераключальніка). Персанаж
* будзе даступны ў бітве толькі тады, калі гэты пераключальнік будзе
* УКЛЮЧаны.
*
* Гэты плагін пярэданы ў грамадскі набытак згодна з CC0. Падрабязней гл. на
* старонцы https://creativecommons.org/publicdomain/zero/1.0/deed.be
*/
(function () {
var DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
function processActorNotetags() {
var unconditionalRe = /<\s*(?:non-battler|не в битве|не ў бітве|не в битві)\s*>/i;
var switchRe = /<\s*(?:battler switch|боевой переключатель|баявы пераключальнік|бойовий перемикач):\s*([0-9]+)\s*>/i;
for (var i = 1; i < $dataActors.length; i++) {
var actor = $dataActors[i];
if (actor.note) {
unconditionalMatch = actor.note.match(unconditionalRe);
switchMatch = actor.note.match(switchRe);
if (switchMatch) {
actor.garbataBattlerSwitch = parseInt(switchMatch[1]);
}
else if (unconditionalMatch) {
actor.garbataNonBattler = true;
}
}
}
}
var notetagsProcessed = false;
DataManager.isDatabaseLoaded = function() {
if (!DataManager_isDatabaseLoaded.call(this)) {
return false;
}
if (!notetagsProcessed) {
processActorNotetags();
notetagsProcessed = true;
}
return true;
};
Game_Party.prototype.originalBattleMembers = Game_Party.prototype.battleMembers;
Game_Party.prototype.battleMembers = function() {
return this.allMembers().filter(function (actor) {
var actorData = actor.actor();
if (actorData.garbataNonBattler) {
return false;
}
if (actorData.garbataBattlerSwitch) {
return $gameSwitches.value(actorData.garbataBattlerSwitch);
}
return true;
}).slice(0, this.maxBattleMembers()).filter(function(actor) {
return actor.isAppeared();
});
};
Game_Party.prototype.leader = function() {
return this.originalBattleMembers()[0];
};
Game_Follower.prototype.actor = function() {
return $gameParty.originalBattleMembers()[this._memberIndex];
};
Game_Actor.prototype.isBattleMember = function() {
return $gameParty.originalBattleMembers().contains(this);
};
})();
Герои будут ходить с партией по карте, но в битве участвовать не будут.
Чтобы отметить героя или героиню как недоступного в битве, добавьте в его заметки один из таких кодов:
<не в битве>
Доступны также коды на других языках: <non-battler>, <не ў бітве>, <не в битві>
Например, если сделать так, то Гарольд будет ходить по карте, но не будет участвовать в битве:
Кроме того, плагин позволяет включать/выключать персонажей из битвы переключателем. Если переключатель включён — персонаж будет доступен в битве, если выключен — недоступен:
<боевой переключатель: 1>
Или на других языках: <battler switch: 1>, <баявы пераключальнік: 1>, <бойовий перемикач: 1>
Вместо 1 укажите номер переключателя. Когда этот переключатель включён, герой будет появляться в битве. Когда выключен — не будет.
Идею плагина я взял из поста какого-то Сергея ВКонтакте — спасибо ему!
Последнее редактирование: 5 года 1 мес. назад пользователем Dmy. Причина: поменял предупреждение про Блокнот, т.к. новые версии Блокнота поддерживают UTF-8 без BOM
Спасибо сказали: Leprikon01, DK, Cabbit, VarVarKa, Kirillkrm, Aiaz Marx, NeKotZima, SeaWolf, Maximka68, Alx_Yago
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Doctor_Bug
-
- Не в сети
- Завсегдатай
-
- Из горизонта события! ▪_■
Скрыть
Больше
- Сообщений: 574
- Спасибо получено: 897
7 года 7 мес. назад #105862
от Doctor_Bug
Doctor_Bug ответил в теме [MV] GRB_Non Battler Actors (убрать героев из боя)
Интересный плагин. А что будет если в пати все будут выключены? Выдаст ошибку?
Баг изучает Godot Engine. А слушает эту музыку ~~>
Мое сердце
Спасибо сказали: Dmy
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 7 мес. назад #105865
от Dmy
Dmy ответил в теме [MV] GRB_Non Battler Actors (убрать героев из боя)
Битва начнётся и сразу же закончится. Это стандартное поведение MV, я это не менял.Doctor_Bug пишет: А что будет если в пати все будут выключены? Выдаст ошибку?
Спасибо сказали: Doctor_Bug
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 7 мес. назад #105866
от Фред Канниг
За чатом не слежу, пишите в личку!
Назад в девяностые
Похождения сыщика Мисталеро (коллективный фан-фикшен)
Фред Канниг ответил в теме [MV] GRB_Non Battler Actors (убрать героев из боя)
В чью пользу?Dmy пишет: Битва начнётся и сразу же закончится.
За чатом не слежу, пишите в личку!
Назад в девяностые
Похождения сыщика Мисталеро (коллективный фан-фикшен)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 7 мес. назад - 7 года 7 мес. назад #105867
от Dmy
Если надо, можно это поменять на проигрыш, это можно сделать вот таким скриптом:
[Как и сам плагин, этот код передан в общественное достояние согласно CC0.]
Dmy ответил в теме [MV] GRB_Non Battler Actors (убрать героев из боя)
Ни в чью. Это будет считаться побегом (по крайней мере если в переменную записывать «Счёт побегов», то он после такой битвы увеличится на 1), но текста о побеге не будет, просто битва закончится.Фред Канниг пишет: В чью пользу?
Если надо, можно это поменять на проигрыш, это можно сделать вот таким скриптом:
Code:
(function () {
var BattleManager_checkBattleEnd = BattleManager.checkBattleEnd;
BattleManager.checkBattleEnd = function() {
if (this._phase && $gameParty.isEmpty()) {
this.processDefeat();
return true;
}
return BattleManager_checkBattleEnd.call(this);
}
var Game_Party_name = Game_Party.prototype.name;
Game_Party.prototype.name = function () {
var numBattleMembers = this.allMembers().length;
if (numBattleMembers === 0) {
return '';
} else if (numBattleMembers === 1) {
return this.leader().name();
} else {
return TextManager.partyName.format(this.leader().name());
}
};
})();
[Как и сам плагин, этот код передан в общественное достояние согласно CC0.]
Последнее редактирование: 7 года 7 мес. назад пользователем Dmy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
5 года 8 мес. назад #118994
от Dmy
Dmy ответил в теме [MV] GRB_Non Battler Actors (убрать героев из боя)
Проверил плагин в MZ, всё работает. Менять код плагина не пришлось.
(Я таки сделал два изменения: добавил строку @target, чтобы MZ не выдавал предупреждений о возможной несовместимости, и @url.)
(Я таки сделал два изменения: добавил строку @target, чтобы MZ не выдавал предупреждений о возможной несовместимости, и @url.)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.107 секунд
