エンカウント

2004年12月6日 ゲーム
エンカウントシステム(仮)。定期的に並列処理させる。
◆変数の操作:[0001:前XY]代入,主人公のX座標
◆変数の操作:[0001:前XY]乗算,1000
◆変数の操作:[0001:前XY]加算,主人公のY座標
◆変数の操作:[0002:前ID]代入,主人公のマップID
◆ウェイト:0.1秒
◆変数の操作:[0003:後XY]代入,主人公のX座標
◆変数の操作:[0003:後XY]乗算,1000
◆変数の操作:[0003:後XY]加算,主人公のY座標
◆変数の操作:[0004:後ID]代入,主人公のマップID
◆条件分岐:変数[0002:前ID]がV[0004]以外
 ◆変数の操作:[0003:後XY]代入,V[0001]の値
 ◆変数の操作:[0004:後ID]代入,V[0002]の値
 ◆変数の操作:[0005:歩数]代入,0
 ◆
:それ以外の場合
 ◆条件分岐:変数[0003:後XY]がV[0001]以外
  ◆変数の操作:[0005:歩数]加算,1
  ◆
 :分岐終了
 ◆条件分岐:変数[0005:歩数]が10以上
  ◆条件分岐:変数[0003:後XY]がV[0001]以外
   ◆変数の操作:[0006:エンカウント]代入,乱数[1〜10]
   ◆条件分岐:[0006:エンカウント]が10
    ◆イベントの呼び出し:戦闘
    ◆
   :分岐終了
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:分岐終了


イベント(戦闘)。これは呼び出されたときのみ。
◆条件分岐:変数[0007:現在地]が1
 ◆変数の操作:[0008:適当]代入,乱数[1〜7]
 ◆戦闘の処理:V[0008]
 :勝った場合
  ◆
 :逃げた場合
  ◆
 :分岐終了
 ◆変数の操作:[0005:歩数]代入,0
 ◆
:分岐終了


見る人が見れば分かるけど、分からない人にとってはさっぱりな文字の羅列(笑
0.1秒ごとに今居る座標を割り出して、もし座標が変わっていたら1歩歩いたとみなす。ちなみにマップの番号が変わっていたら歩いたとはみなさない。で、(多分)10歩(くらい)は敵が出なくて、それ以上は1歩歩くたびに1/10の確率でエンカウント。
1/10は低すぎるように見えて、計算していくとそれなりの確率になる。まぁ結果は割愛。
で、戦闘は今居る場所によって変える適当な変数を代入して、そのグループ番号の敵グループと戦闘になる仕様。こっちは基本だと思う。
応用すれば極端に出現率の低い敵とかも作れる訳。

コレ使うとエンカウント無効魔法とかできたりなかなか便利なんだけど、戦闘終了後たまにキャラクターが動いてしまうのがちょっと…(汗

コメント