見出し画像

ツクールMVでマダンテを実装する

ツクールMVでマダンテを実装してみます。今回はスキル項目の計算式をいじって実装してみます。

※万が一のためデータのバックアップを作ってください。

■(2020年5月17日更新)スキルの欠陥について

今回お話するスキルを「自動戦闘を持つアクターが使うダメージ計算以外の処理が2重に行われます

■応用編:攻撃時に攻撃力増加のバフ付与を自動戦闘で使用すると2重にバフが付与されます

以下の記事で修正用のプラグイン導入について書きました。


■(2020年5月10日)修正内容について

記載している内容にミスがありました。通常攻撃のダメージ量がデフォルト値とは異なる計算式でした。ご迷惑をおかけし大変申し訳ございません。

[誤] a.atk * 2 - b.def 

[正] a.atk * 4 - b.def * 2

■そもそもマダンテって何?

ドラゴンクエストシリーズで登場するMPを全消費して発動する魔法です。消費したMPに応じてダメージが増えます。

■手順

画像1

スキル項目の計算式をいじります。

以下のコマンドをコピー&ペーストします。

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」で設定できます。

ほかのパラメータを参照したい場合は以下の表を参考にしてください。

画像2

②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;

ダメージ量です。基本攻撃と同じダメージ量になっています。

■おわりに

これはあくまで一つの方法になります。自分なりに面白い計算式を立ててみてください。

この記事が気に入ったらサポートをしてみませんか?