改造自体は簡単ですけど着脱自由で競合対策も考えるとなると、自分は独自特徴化が無難な手法だと思います。
①以下のコードをコピって適当なファイルに保存してプラグインに追加してください
ライセンスは適当に作ったものなのでcc0。如何なる権利も放棄します。一段落ついたら保守もしません
コード: 全て選択
(() => {
'use strict'
const _DataManager_extractMetadata = DataManager.extractMetadata;
DataManager.extractMetadata = function(data) {
_DataManager_extractMetadata.apply(this, arguments);
if (data.meta['属性MP消費率']) {
const result = data.meta['属性MP消費率'].match(/(\d+)\,\s*(\d+)\%/);
if (result) {
const code = 101;
const dataId = Number(result[1]);
const value = Number(result[2]) * 0.01;
const trait = {"code" :code, "dataId" :dataId, "value" :value};
data.traits.push(trait);
}
}
};
Game_BattlerBase.prototype.elementMpCostPer = function(elementId) {
return this.traitsPi(101, elementId);
}
const _Game_BattlerBase_skillMpCost = Game_BattlerBase.prototype.skillMpCost;
Game_BattlerBase.prototype.skillMpCost = function(skill) {
return Math.floor(_Game_BattlerBase_skillMpCost.apply(this, arguments)
* this.elementMpCostPer(skill.damage.elementId));
};
})();
②消費率を変更したいアクター、またはそのアクターに影響を与える
オブジェクト(職業、武器、防具、ステート、パッシブスキル等)のメモ欄に以下のタグ付けを行う
内部的に特徴に変換しているので既存の特徴と同じように運用してください。
小数点の端数は切り捨て。
複数のオブジェクトで変更が加えられた場合は全て乗算した数値で計算されます。
<属性MP消費率:属性ID, 消費率(%)>
例:<属性MP消費率:2, 200%> // 炎属性スキルのMP消費率を200%にする
例:<属性MP消費率:3, 50%> // 氷属性スキルのMP消費率を50%にする
例:<属性MP消費率:4, 0%> // 雷属性スキルのMP消費率を0%にする