さて、バトル編ラスト、勝敗イベント&レベルアップです。
レベルアップイベントはここでは勝敗イベントの一部に入っています。
まず勝敗イベントを呼び出すために、
ターン制の場合、
バトルメインのアクションプロセスの最後に、
・今戦闘不能でない味方・敵の数のどちらかが0でないかどうかの判定をし、
・勝負がついていた場合、この後のアクションプロセスをとばす
(具体的には、この後全員の行動を【待機】などにする)処理 をつけます。
あとは、両バトル制共通で、「バトル全体の流れ」で言ったとおり、
4、条件分岐「戦闘が終わった?」
YES!→5、「勝敗イベント」を呼び出す(それでこの後には何も入れない)
NO!→4、「クリンナッププロセス」を呼び出す
→・ラベル【2、コマンドプロセス】(または、【ウェイトターンプロセス】)へ飛ぶ
分岐終了 です。
この、どちらかが0かどうかを確かめるには、積で判定すると楽ですね。
また、前回言っていた戦闘終了フラグは、
変数操作で(判定変数)=(敵の戦闘不能でない数)×(味方の戦闘不能でない数)と入れるところを、=0とするということで処理をします。
そして次に、勝敗イベントそのものの解説に行きましょう。
勝敗イベントとは、
・勝った場合に行われる、経験値取得、アイテム取得の処理、経験値取得の処理
・負けた場合に行われるゲームオーバーイベント の2つですね。
勝敗イベントは、
この講座では、勝ったか負けたかで場合分けして、勝敗にあわせたコモンイベントを呼び出す形で処理しますね。
まず、負けた場合に行われるゲームオーバーイベントについて解説しましょう。
ゲームオーバーイベントには、いくつかパターンがありますね。この講座では次の2つについて解説します。
・ゲームオーバー画面が出て、タイトルへ戻るパターン
・その直前のセーブポイントまで戻るパターン
1つめのパターンは、ピクチャ表示で「GAME OVER」画面を呼び出し、次にタイトル画面へ戻ればよいですね。
2つめは、
・その直前のセーブポイントでセーブしていることが前提 であるゲームなら、
「ロードしますか?」と聞いてロードするかタイトルへ戻るか選んでもらうのが一番楽な処理です。
それを前提としていない場合は、
・味方のHPを1または、味方を全快状態にして、セーブポイントまで場所移動、
でいいと思います。
このセーブポイント、というのは、相談コマンドに使う進行変数で制御してもいいし、「シルフェイド幻想譚」的に、プレイヤーさんに選んでもらうのもありだと思います。
また、このセーブポイントの場合分けの処理は、条件分岐でもいいですし、セーブポイントのID、座標をしまう関数を作っておくのもありだと思います。
ということで、次は勝った場合の解説に行きますね。
勝った場合に起こるのは、
・勝ったよと言うメッセージ表示
・倒した敵に応じて、お金、アイテム、経験値取得
・取得した後の経験値に合計値によってはレベルアップ というところですね。
この講座ではこの3つを解説します。
ボス戦の後は、だいたいの場合、ボス戦自体をマップイベントでバトルイベントを呼び出すと思うので、その後に続きを書いてください。
・勝ったよというメッセージ表示 は、
ファンファーレやメッセージ表示で行えばOKですね。
・倒した敵に応じて、お金、アイテム、経験値取得 は、
・敵の持っている経験値やお金やアイテムをDBから読み取って、
・それを「アイテム庫」「お財布的変数」に書き込めば いいでしょう。
このとき、何%の確率で……と言うことを考えていたら、その確率も敵のデータに入れておいて、乱数による判定をすると言う方法があります。
最後のレベルアップは、
・味方のそれぞれの人のレベルと 経験値と 次のレベルに達するのに必要な経験値の値を取得して、
・今持っている経験値が次のレベルに達するのに必要な経験値であった場合、
・レベルを1増やし、「1レベルごとに上がる各能力値の値」を読み取っては、今の基本パラメータに足し、
・それを計算済みパラメータに反映する(「装備補正」)
と言う過程をこなせばOKです。
次の経験値まで方式で行っている方は、経験値取得が引き算になって、0以下になったらレベルアップ、ついでに余った分も、次のレベルまでの経験値から引いておく、と言う形式で行ってください。
以上、戦闘が終わった後のイベントでした。次は講座本体最終回、「セーブとロードとタイトル画面」です。
おまけ
自動初期化におけるレベルアップについて。仲間が中盤で加わるとき、レベルが低かったら困りますよね。ということで、可変DBでレベルだけ変えた場合に、パラメータをそれ相応にする処理を考えました。
この場合、
・可変DBで2以上になっている場合の仲間がいた場合、その仲間の
・(設定したレベル)−1のレベルの回数だけ、
・「1レベルごとに上がる各能力値の値」だけ各基本パラメータを上げて、
・そのレベルに達成するのに必要な経験値を足してやる 処理になると思います。
これは上で行ったレベルアップとは分離して考えた方がわかりやすいかと思って、おまけにしました。
前の項目へ 講座トップへ 次の項目へ