こんにちは、今日はRPGツクールMVのイベントコマンド”能力値の増減”で変動している分の値の取得と、その値のリセット方法についてまとめていきます。
イベントコマンドの”能力値の増減”で指定アクターの各種パラメータの増減が行えますが、現在の増減値の取得やリセットは行えません。
これらを行うためにはイベントコマンドの”スクリプト”でJavaScriptコードを記述します。
Table of Contents
確認環境
RPGツクールMV Version 1.6.2
増減値の取得方法
現在の増減値の取得は以下のコードで行えます。
var actorId = 1;
var paramId = 2;
var variableId = 3;
var currentParamPlus = $gameActors.actor(actorId).paramPlus(paramId);
var equips = $gameActors.actor(actorId).equips();
for (var i = 0; i < equips.length; i++) {
var item = equips[i];
if (item) {
currentParamPlus -= item.params[paramId];
}
}
$gameVariables.setValue(variableId, currentParamPlus);
actorIdにアクターのIDを、
paramIdにパラメータのIDを、
variableIdに取得した値を格納する変数のIDをそれぞれ代入します。
この例ではアクターID1の攻撃力の増減値を取得し、変数ID3に格納しています。
コード解説
$gameActors.actor(actorId)
で指定IDのアクター情報を取得
paramPlus(paramId)
でそのアクターの指定パラメータ増減値を取得し変数currentParamPlusに値を格納
ここまでで取得した値にはイベントコマンドで増減した値のほか、装備で増減している分も含まれているため、以下のコードではその分をマイナスしています。
for (var i = 0; i < equips.length; i++) {
var item = equips[i];
if (item) {
currentParamPlus -= item.params[paramId];
}
}
パラメータID
paramPlus()の引数に渡す値と取得できるパラメータの対応は以下の通りです。
数値 | パラメータ名 |
0 | 最大HP |
1 | 最大MP |
2 | 攻撃力 |
3 | 防御力 |
4 | 魔法力 |
5 | 魔法防御 |
6 | 敏捷性 |
7 | 運 |
増減値のリセット方法
全てのパラメータのリセット
全ての増減値をリセットしたい場合は以下のコード1行で完了します。
こちらの例ではアクターID1の増減値を全てリセットします。
$gameActors.actor(1).clearParamPlus();
個別のパラメータのリセット
特定のパラメータの増減値のみリセットしたい場合は、リセットの関数が用意されていないため現在の増減値を取得し、その値分減算することでリセットします。
以下のようなコードになります。
var actorId = 1;
var paramId = 2;
var currentParamPlus = $gameActors.actor(actorId).paramPlus(paramId);
var equips = $gameActors.actor(actorId).equips();
for (var i = 0; i < equips.length; i++) {
var item = equips[i];
if (item) {
currentParamPlus -= item.params[paramId];
}
}
$gameActors.actor(actorId).addParam(paramId, -currentParamPlus);