%消費MP取得



コンセプト 何%を消費する特技のMPを変数に取得したい。
完成すると 「%」で消費するMPを算出。




------------------------------------------------------------
使い方

バトルイベント。もしくはバトルイベント中からのコモンイベント呼び出し

準備

バトルイベントにて「ターン0」のページで
主人公のMPを「現在・過去」変数に代入しておくこと。
「戦闘開始」とかスイッチ作ってONにする。
紹介するテクのバトルイベント開始条件
「スイッチ「戦闘開始」がONの時」のページを作る
------------------------------------------------------------
使用変数
[0425:戦闘時比率計算:x]
[0426:戦闘時比率計算:y]
[0427:戦闘時比率計算:a]
[0428:戦闘時比率計算:b]
[0149:主人公3:現在BP]
[0150:主人公3:過去BP]
[0431:主人公3:消費BP]
------------------------------------------------------------
イベント内容
◆変数の操作:[0149:主人公3:現在BP]代入, 主人公[0003:アリス]のMP
◆変数の操作:[0431:主人公3:消費BP]代入, 変数[0150:主人公3:過去BP]の値
◆変数の操作:[0431:主人公3:消費BP]減算, 変数[0149:主人公3:現在BP]の値


◆変数の操作:[0425:戦闘時比率計算:x]代入, 5
◆変数の操作:[0426:戦闘時比率計算:y]代入, 100
◆変数の操作:[0428:戦闘時比率計算:b]代入, 主人公[0003:アリス]の最大MP
◆変数の操作:[0425:戦闘時比率計算:x]乗算, 変数[0428:戦闘時比率計算:b]の値
◆変数の操作:[0425:戦闘時比率計算:x]除算, 変数[0426:戦闘時比率計算:y]の値
◆注釈:答えをaに代入
◆変数の操作:[0427:戦闘時比率計算:a]代入, 変数[0425:戦闘時比率計算:x]の値



◇条件分岐:変数[0150:主人公3:過去BP]がV[0428:戦闘時比率計算:b]と同値 [条件に当てはまらない場合の処理内容も設定する:○]

:それ以外の場合


◇条件分岐:主人公[0003:アリス]が状態[0037:気力充実]になっている [条件に当てはまらない場合の処理内容も設定する:×]
◆変数の操作:[0425:戦闘時比率計算:x]代入, 2
◆変数の操作:[0426:戦闘時比率計算:y]代入, 100
◆変数の操作:[0428:戦闘時比率計算:b]代入, 主人公[0003:アリス]の最大MP
◆変数の操作:[0425:戦闘時比率計算:x]乗算, 変数[0428:戦闘時比率計算:b]の値
◆変数の操作:[0425:戦闘時比率計算:x]除算, 変数[0426:戦闘時比率計算:y]の値
◆注釈:BP増加分を引く
◆変数の操作:[0427:戦闘時比率計算:a]減算, 変数[0425:戦闘時比率計算:x]の値

:分岐終了

:分岐終了

△条件分岐:変数[0431:主人公3:消費BP]がV[0427:戦闘時比率計算:a]と同値 [条件に当てはまらない場合の処理内容も設定する:×]
入れたいイベントを組む
◆イベント処理の中断

:分岐終了


◆変数の操作:[0149:主人公3:現在BP〜0150:主人公3:過去BP]代入, 主人公[0003:アリス]のMP

説明。
最初の3行の変数計算。
これは使用前のMPから使用後のMPを引いて消費MP変数に代入してるだけです。

次からが本番。
数学の「比率の公式」を使っています。
「x : y = a : b」
「x b  = y a 」

紹介のテクの値の場合は

「消費%MP : 100 = 求める消費MP : 最大MP」

という式になります。
数字を当てはめていくと・・・・・・
「5 : 100 = a : 主人公最大MP」
となります。
「5」取得したい特技の消費MP(%指定)
100は比率「100%」の100なので固定です。
最大MPは変数にコマンドであるので主人公の最大MPを入れてください。
「x b  = y a 」
つまり・・・
「100a = 5 x 最大MP」
計算結果が「a = ???」
で出ます。
数学の授業っぽいけど中学の数学レベルなので頑張ってください。



◇の条件分岐は「状態変化」によって「MP回復」が起こっている時の処理です。
「過去BP」というのは特技使用前のMP
「戦闘時比率計算:b」は主人公の最大MPです。
2003バトルイベントにおいて「MPが満タン」だとMP回復は起こらない。
よって「消費MP」は変わらない。
逆にMP回復状態だと

「消費MP - MP回復分 = 本当の消費MP」

ということになってしまうので◇の条件分岐でしっかりと処理をします。

といっても「MP回復状態の状態変化になっているか」の分岐の後に先ほどの比率の公式の計算コマンドをコピーしただけです。
この例の場合は「戦闘時比率計算:x」が「2」になっています。
これは状態変化で毎ターン「2%ずつ回復」という設定になっているからです。
そして「戦闘時比率計算:x」に計算結果を入れたままにします。
先ほどは「戦闘時比率計算:a」に「消費%MP」の計算結果が入っています。
最後に「a から x を減算」して消費%MPから回復%分を引いた本当の消費MPを出します。



△の条件分岐が「消費MP」と「戦闘時比率計算:a」が同値である時の分岐です。
ここに入れたいイベントを入れてください。
状態変化を起こさせる。
その後顔グラ変更とかBGM変更とか。
能力アップとか文章表示とか。


全てのイベントが終わったら「現在BPと過去BP」の変数主人公のMPを代入するのを忘れず行って終わりです。
実際の動作は・・・・・・

キャラが特技を使う→イベントにそって計算→特技の消費%MPと最大MPから取得した%MPの値が同じならイベント処理へ。

となるので、特技使用後の動作になります。
今のところ、特技使用前に使用する特技を特定するテクが発見できないので。







テンプレートのpondt