ツクールMVでマダンテを実装する
ツクールMVでマダンテを実装してみます。今回はスキル項目の計算式をいじって実装してみます。
※万が一のためデータのバックアップを作ってください。
■(2020年5月17日更新)スキルの欠陥について
今回お話するスキルを「自動戦闘」を持つアクターが使うとダメージ計算以外の処理が2重に行われます。
■応用編:攻撃時に攻撃力増加のバフ付与を自動戦闘で使用すると2重にバフが付与されます。
以下の記事で修正用のプラグイン導入について書きました。
■(2020年5月10日)修正内容について
記載している内容にミスがありました。通常攻撃のダメージ量がデフォルト値とは異なる計算式でした。ご迷惑をおかけし大変申し訳ございません。
[誤] a.atk * 2 - b.def
[正] a.atk * 4 - b.def * 2
■そもそもマダンテって何?
ドラゴンクエストシリーズで登場するMPを全消費して発動する魔法です。消費したMPに応じてダメージが増えます。
■手順
スキル項目の計算式をいじります。
以下のコマンドをコピー&ペーストします。
var mp = a.mp;a.gainMp(-1*mp);mp * 2;
これだけで実装終了です。
■コマンド解説
ここからはコマンドについての説明です。コマンドは3つの文でなりたっています。
①var mp = a.mp; ②a.gainMp(-1*mp); ③mp * 2;
①var mp = a.mp;
変数mpに使用者の現在MPを代入しています。使用者を「a」、現在のMPを「mp」で設定できます。
ほかのパラメータを参照したい場合は以下の表を参考にしてください。
②a.gainMp(-1*mp);
gainMpでMPを増減を設定できます。今回はmpを減らしたいので-1を掛け合わせています。
③mp * 2;
最後のコマンドでダメージ量が決定します。今回は残りmpの2倍で計算しています。ダメージ量を変更したい場合はここを編集してください。
■応用編
ほかのスキルも実装できます。2つのスキルを紹介します。
・敵が毒状態の場合にダメージ2倍
・攻撃時に攻撃力増加のバフ付与
・敵が毒状態の場合にダメージ2倍
b.isStateAffected(4) ? (a.atk * 4 - b.def * 2) * 2 : (a.atk * 4 - b.def * 2);
敵がステートID4(デフォルトだと「毒」)の場合2倍になります。
今回も3つのコマンドに分かれます。
①b.isStateAffected(4) ? ②(a.atk * 4 - b.def * 2) * 2 : ③(a.atk * 4 - b.def * 2);
①b.isStateAffected(4) ?
敵がステートID4(デフォルトだと「毒」)の状態かを判断しています。「(4)」の数値を変更することで任意のステートを指定できます。
②(a.atk * 4 - b.def * 2) * 2 :
①で設定したステートだった場合のダメージ量です。「*2」の数値をいじることで任意の倍数でダメージ処理されます。
③(a.atk * 4 - b.def * 2);
①で設定したステートではなかった場合のダメージ量です。基本攻撃とダメージと同じにしています。
・攻撃時に攻撃力増加のバフ付与
a.addBuff(2,5);a.atk * 4 - b.def * 2;
①a.addBuff(2,5);②a.atk * 4 - b.def * 2;
①a.addBuff(2,5);
どのバフを何ターンかけるかを設定しています。今回は攻撃力を5ターンかけるよう設定しています。
攻撃力以外も設定できます。以下の番号でパラメータ指定できます。
0:最大HP
1:最大MP
2:攻撃力
3:防御力
4:魔法力
5:魔法防御力
6:俊敏性
7:運
②a.atk * 4 - b.def * 2;
ダメージ量です。基本攻撃と同じダメージ量になっています。
■おわりに
これはあくまで一つの方法になります。自分なりに面白い計算式を立ててみてください。
この記事が気に入ったらサポートをしてみませんか?