じ☆ve冰风 发表于 2026-3-29 18:34:05

一点小功能:依据状态的强制行动

该插件最初是我为了解决使用Yep的Atb系统时使用无法行动类效果时出现的问题而想出的解决方法——我将行动强制变为空技能不就好了吗?
如你所见,会在行动时将拥有指定状态的对象最终输出技能强制修改为指定技能
假设有一技能92
我给某状态附加上
那么它就会将最后的行动输出结果强制变为92号技能

代码很简单,就是一个简单的检测+修改:
JAVASCRIPT 代码
/*:
* @plugindesc 基于状态的强制行动
* @author X_R
* @help 对状态使用(X为技能ID)使其在拥有状态时只能使用固定技能
* /

(function() {

function getForcedSkill(battler) {
    var states = battler.states();
    for (var i = 0; i < states.length; i++) {
      var state = states;
      if (state.meta["Force Skill"]) {
            return Number(state.meta["Force Skill"]);
      }
    }
    return null;
}

var _startAction = BattleManager.startAction;
BattleManager.startAction = function() {

    var subject = this._subject;

    if (subject) {

      var skillId = getForcedSkill(subject);

      if (skillId && !subject._forceLock) {

            subject._forceLock = true;

            var action = new Game_Action(subject);
            action.setSkill(skillId);

            // 目标(自己)
            action.setTarget(subject.index());

            subject._actions = action;

            subject._forceLock = false;
      }
    }

    _startAction.call(this);
};


})();



            本帖来自P1论坛作者X_R,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=498771若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 一点小功能:依据状态的强制行动