【ウディタ講座】SRPGをつくろう! 「寝返り・説得」の処理(所属軍の変更)

主人公やヒロインで、敵のクールな美形剣士に接近すると「話す」というコマンドが出て、やってみると仲間になってくれる……FEの定番、「説得」です。

難しそうですが、ここまで作ってきたらやることはシンプル。

  1. 敵軍のCDBから自軍のCDBへそっくりデータをコピー
  2. もとの敵軍のCDBのデータは消去(ユニットのロスト)
  3. ユニット画像の再表示をかける

これだけです。

MEMO

コマンドに「話す」が出現して会話イベントが起こる……というような仕組みは、他の「敵拠点の制圧」や「村の訪問」などにも絡むことですので、ここではまだ扱いません。

ユニットデータCDB間のコピー

自軍、敵軍、友軍のユニットデータのCDBがすべて同じ構成ならば、コピー元のデータをコピー先のおなじ位置に上書きするだけでコトが済みます。

入力値の設定は後で出てくるソースの画像を参考に。

注意が必要なのは「文字列変数」の項目ですね。文字列変数は文字列変数に、ふつうの変数はふつうの変数に代入しないと緑帯に叱られます。

ユニットのロスト

コピーしただけでは、「コピー元」のデータがCDBに残ったままです。消しておかないとおなじキャラが2人いることになってしまいますね。

HPが0になったユニットのロストでも使えるような書き方をしておきましょう。おおまかな動きは上のコモンと同じです。

■DB読込(可変): CSelf10[処理回数] = 可変DB[タイプCSelf0[コピー元](-)の内容数] ■変数操作: CSelf11[コピー位置] = -1 + 0

■回数付きループ [ CSelf10[処理回数] ]回
|■変数操作: CSelf11[コピー位置] += 1 + 0
|■条件分岐(変数): 【1】 CSelf11[コピー位置] が 0 と同じ
|-◇分岐: 【1】 [ CSelf11[コピー位置] が 0 と同じ ]の場合↓
| |■可変DB書込:DB[ CSelf0[コピー元] : CSelf2[対象ID] : CSelf11[コピー位置] ] (- : – : -) =
| |■
|-◇上記以外
| |■可変DB書込:DB[ CSelf0[コピー元] : CSelf2[対象ID] : CSelf11[コピー位置] ] (- : – : -) = 0
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇

MEMO

HP0のユニットも復活手段があるとか、その戦闘から退場するだけで消えるわけではないケースでは、CDBのデータは残したままピクチャ類と出撃フラグを消すだけに留めます。

上記を組み合わせて「説得」処理にする

こんな感じ。

 

せっかくなので、右クリックのメニューに「制作中コモンのテスト」な選択肢も足してしまいましょう。

今回はここから説得(寝返り)処理を起動してみます。

できましたね。

移動や攻撃のコマンドがユニットの下になってしまっていますね。

これはユニット操作のピクチャ番号が、ユニットをマップイベントで表示していた時の番号のままなためです。使うピクチャを4000以上にすればOK。

 

【ウディタ講座】SRPGをつくろう! まとめ