037◇ランダムエンカウント処理

Last-modified: 2019-03-24 (日) 12:43:18

入力内容の設定

番号00010203
変数名出現歩数敵グループ 1敵グループ 2敵グループ 3
初期値100
特殊指定なしユーザDB13敵グループ参照
項目-1<なし>
-2<なし>
-3<なし>
ユーザDB13敵グループ参照
項目-1<なし>
-2<なし>
-3<なし>
ユーザDB13敵グループ参照
項目-1<なし>
-2<なし>
-3<なし>

コモンセルフ使用状況

番号変数名
00出現歩数01敵グループ 102敵グループ 203敵グループ 310一時変数A
11一時変数B12一時変数C20現在座標X21現在座標Y23一時エンカウント値
50旧座標X51旧座標Y90敵出現した?

メモ

1回呼ぶごとにカウンタを加算し、一定値以上になると3種の敵グループのうちどれかをランダムで出現させます。

挿入イベント

188X◆戦闘処理?
コモン

▼ 入力0:エンカウント歩数 入力1~3:出現エネミーグループ(1ならナシ)
▼ Ver2.24 敵出現フラグを初期化していなかったバグを修正
■変数操作: CSelf90[敵出現した?] = 0 + 0
▼ 直前の主人公座標と異なる場合だけエンカウント値を加算 座標が同じなら即終了
■変数操作+: CSelf20[現在座標X] = 主人公 の X座標(精密)
■変数操作+: CSelf21[現在座標Y] = 主人公 の Y座標(精密)

■条件分岐(変数): 【1】 CSelf20[現在座標X] が CSelf50[旧座標X] と同じ

◇分岐: 【1】 [ CSelf20[現在座標X] が CSelf50[旧座標X] と同じ ]の場合↓

■条件分岐(変数): 【1】 CSelf21[現在座標Y] が CSelf51[旧座標Y] と同じ

◇分岐: 【1】 [ CSelf21[現在座標Y] が CSelf51[旧座標Y] と同じ ]の場合↓
■イベント処理中断

◇分岐終了◇


◇分岐終了◇

▼ セルフ50、51に直前の座標を格納しておく
■変数操作: CSelf50[旧座標X] = CSelf20[現在座標X] + 0
■変数操作: CSelf51[旧座標Y] = CSelf21[現在座標Y] + 0
▼ ここからエンカウント計算
▼ 内部的には「エンカウント値」が10万を超えると出現。少しだけランダム要素有り
■変数操作: CSelf10[一時変数A] = 100000 / CSelf0[出現歩数]
■変数操作: CSelf10[一時変数A] 下限= 1 + 0
■可変DB書込:DB[ 基本システム用変数 : 65 : 0 ] (18 : [エンカウント]エンカウント値 : 数値) += CSelf10[一時変数A]
■DB読込(可変): CSelf23[一時エンカウント値] = 可変DB[ 基本システム用変数 : 65 : 0 ] (18 : [エンカウント]エンカウント値 : 数値)

■条件分岐(変数): 【1】 CSelf23[一時エンカウント値] が 100000 以上

◇分岐: 【1】 [ CSelf23[一時エンカウント値] が 100000 以上 ]の場合↓
▼ エンカウントすると、次の初期値を±2万の範囲で格納する
■変数操作: CSelf23[一時エンカウント値] = 20000 ~ 20000
■可変DB書込:DB[ 基本システム用変数 : 65 : 0 ] (18 : [エンカウント]エンカウント値 : 数値) = CSelf23[一時エンカウント値]

■条件分岐(変数): 【1】 CSelf1[敵グループ 1] が 1 以下

◇分岐: 【1】 [ CSelf1[敵グループ 1] が 1 以下 ]の場合↓

■条件分岐(変数): 【1】 CSelf2[敵グループ 2] が 1 以下

◇分岐: 【1】 [ CSelf2[敵グループ 2] が 1 以下 ]の場合↓

&color(#28283c){■条件分岐(変数): 【1】 CSelf3[敵グループ 3] が 1 以下

◇分岐: 【1】 [ CSelf3[敵グループ 3] が 1 以下 ]の場合↓
▼ 敵グループが設定されていなければ終了する
■イベント処理中断

◇分岐終了◇


◇分岐終了◇


◇分岐終了◇

▼ ランダムで敵グループ選択
■ループ開始
■変数操作: CSelf11[一時変数B] = 1 ~ 3
■変数操作: CSelf11[一時変数B] += 1600000 + 0
■変数操作: CSelf12[一時変数C] = V[CSelf11[一時変数B]] + 0

&color(#28283c){■条件分岐(変数

◇分岐: 【1】 [ CSelf12[一時変数C] が 0 以上 ]の場合↓
■ループ中断

◇分岐終了◇


◇ループここまで◇◇
■イベントの挿入[名]: ["X◆戦闘処理"] <コモンEv 188> / CSelf12[一時変数C] / 0:逃走可能 / 0:ゲームオーバー / 2:<デフォルトBGM>
▼ Ver2.22 出現時に返り値を返していなかったバグを修正
■変数操作: CSelf90[敵出現した?] = 1 + 0

◇分岐終了◇