加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
该插件最初是我为了解决使用Yep的Atb系统时使用无法行动类效果时出现的问题而想出的解决方法——我将行动强制变为空技能不就好了吗?
如你所见,会在行动时将拥有指定状态的对象最终输出技能强制修改为指定技能
假设有一技能92
我给某状态附加上<Force Skill: 92>
那么它就会将最后的行动输出结果强制变为92号技能
代码很简单,就是一个简单的检测+修改:
/*: * @plugindesc 基于状态的强制行动 * @author X_R * @help 对状态使用<Force Skill: X>(X为技能ID)使其在拥有状态时只能使用固定技能 * / (function() { function getForcedSkill(battler) { var states = battler.states(); for (var i = 0; i < states.length; i++) { var state = states[i]; 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[0] = action; subject._forceLock = false; } } _startAction.call(this); }; })();
/*:
* @plugindesc 基于状态的强制行动
* @author X_R
* @help 对状态使用<Force Skill: X>(X为技能ID)使其在拥有状态时只能使用固定技能
* /
(function() {
function getForcedSkill(battler) {
var states = battler.states();
for (var i = 0; i < states.length; i++) {
var state = states[i];
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[0] = action;
subject._forceLock = false;
}
}
_startAction.call(this);
};
})();
|