查看: 555|回复: 0

[原创插件] 【MZ微型插件】指定编号的角色不参与战斗

[复制链接]

21

主题

12

金币

2946

贝壳

旅行者

Rank: 1

积分
398

明灯云会员

发表于 2024-4-13 20:31:03 | 显示全部楼层 |阅读模式
本帖最后由 康娜酱 于 2024-9-17 23:37 编辑

复制贴上保存成js文件,命名随意
插件如有错误,可回复本文反映或至QQ632269521查询



NpcActor.js
//=============================================================================
// RPG Maker MZ - NPC Actor
//=============================================================================

var Imported = Imported || {};
Imported.KN_NpcActor = true;

var Kanna = Kanna || {};
Kanna.NpcActor = Kanna.NpcActor || {};
Kanna.NpcActor.version = 1.11;

//=============================================================================
/*:
* @target MZ
* @plugindesc 指定角色不参与战斗。
* @author 康娜酱
*
* @help
* ============================================================================
* Introduction
* ============================================================================
*
* 指定角色不参与战斗。
*
* ============================================================================
* Changelog
* ============================================================================
*
* Version 1.00:
* - Finished Plugin!
*
* Version 1.10:
* - 被指定的角色不跟随队伍 => 被指定的角色会跟随队伍

* Version 1.11:
* - 变更插件参数的设置方式
*
* ============================================================================
* End of Helpfile
* ============================================================================
*
* @param actorId
* @text 角色编号
* @desc 指定编号的角色不参与战斗。
* @default ["2", "3", "5", "8"]
* @type actor[]
*/
//=============================================================================

(() => {
    'use strict';

    const pluginName = document.currentScript.src.split("/").pop().replace(/\.js$/, "");
    const parameters = PluginManager.parameters(pluginName);
    const npcActor = parameters.actorId.match(/\d+/g).map(Number);

    //=============================================================================
    // Game_Party
    //=============================================================================
    Kanna.NpcActor.Game_Party_allBattleMembers = Game_Party.prototype.allBattleMembers;
    Game_Party.prototype.allBattleMembers = function () {
        const allBattleMembers = Kanna.NpcActor.Game_Party_allBattleMembers.apply(this, arguments);
        if ($gameParty.inBattle()) {
            const allBattleMembersExceptNPC = allBattleMembers.filter(function (actor) {
                return !npcActor.includes(actor.actorId());
            });
            return allBattleMembersExceptNPC;
        } else {
            return allBattleMembers;
        }
    };
})();

//=============================================================================
// End of File
//=============================================================================
收起

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表