最終更新:ID:sam0yFBKlg 2022年09月01日(木) 16:05:44履歴
サガフロ2の乱数は、戦闘中とそれ以外とでは乱数のSeed値の性質が異なる。
マップ画面·メニュー画面·シナリオ選択画面等
Seedは常にプレイ時間と同期する。
フレーム単位の数値なので、1/60秒ごとに+1。
プレイ時間はカンストした場合、99時間59分59秒になった瞬間99時間59分58秒に戻り、
フレーム単位で21599880から21599940までの61フレーム間をループする。
戦闘時
以下の計算式によって次のSeedが生成されるが、
その初期Seedは戦闘に入る直前のプレイ時間になる。
そのため、プレイ時間がカンストすれば初期Seedが61通りに絞られ、
戦闘中のボタン入力とタイミングが全く同じなら61通りの結果しかなくなる。
戦闘中はポーズをかけても常に乱数は進み続ける。
SeedXの計算式
X[n]=1103515245*X[n−1]+12345 (mod 4294967296)
このSeedを元に乱数が得られる。
乱数Yの計算式
Y[n]=X[n]/65536 (mod 32768)
この乱数がダメージ·状態異常·成長·エンカウント等、サガフロ2のランダム要素が絡む全てのプログラムに使用されている。
このような仕様となっており、プレイ時間カンスト後なら1/61でなら状況再現可能と言えるものの、
戦闘中の乱数を把握して希望通りの結果を出すようなことはほぼ不可能と思われる。
マップ画面·メニュー画面·シナリオ選択画面等
Seedは常にプレイ時間と同期する。
フレーム単位の数値なので、1/60秒ごとに+1。
プレイ時間はカンストした場合、99時間59分59秒になった瞬間99時間59分58秒に戻り、
フレーム単位で21599880から21599940までの61フレーム間をループする。
戦闘時
以下の計算式によって次のSeedが生成されるが、
その初期Seedは戦闘に入る直前のプレイ時間になる。
そのため、プレイ時間がカンストすれば初期Seedが61通りに絞られ、
戦闘中のボタン入力とタイミングが全く同じなら61通りの結果しかなくなる。
戦闘中はポーズをかけても常に乱数は進み続ける。
SeedXの計算式
X[n]=1103515245*X[n−1]+12345 (mod 4294967296)
このSeedを元に乱数が得られる。
乱数Yの計算式
Y[n]=X[n]/65536 (mod 32768)
この乱数がダメージ·状態異常·成長·エンカウント等、サガフロ2のランダム要素が絡む全てのプログラムに使用されている。
このような仕様となっており、プレイ時間カンスト後なら1/61でなら状況再現可能と言えるものの、
戦闘中の乱数を把握して希望通りの結果を出すようなことはほぼ不可能と思われる。
戦闘画面に切り替わった直後の1つ目の乱数は、
パーティ戦でエンカウントするモンスターの種類の決定に使われる。
出現パターンは16あり、「乱数を16で割った余り」によって出現するモンスターが決まる。
例:古戦場の獣系シンボル
モンスター別にまとめると以下の通り。
おおよその確率はこれで正しいが、この確率はプレイ時間がカンストした場合、
乱数が61通りしかないことによって、偏りが生まれ、結果が微妙に異なる。
上記の例の場合、クインペッグとの遭遇率は本来の1/16(6.25%)よりも更に低い。
虫のメガリスのスライム➆や最後のメガリスのメガリスドラゴンも同じ位置にあるので、
これらのモンスターに遭いたい場合、プレイ時間カンスト後は僅かに不利。
パーティ戦でエンカウントするモンスターの種類の決定に使われる。
出現パターンは16あり、「乱数を16で割った余り」によって出現するモンスターが決まる。
例:古戦場の獣系シンボル
乱数 | メイン | お供1 | お供2 | お供3 |
---|---|---|---|---|
0 | ホーンバファロー | ペッグ | ||
1 | ホーンバファロー | ペッグ | ||
2 | ホーンバファロー | ペッグ | ||
3 | ホーンバファロー | ペッグ | グール➀ | |
4 | ホーンバファロー | ワニゲーター | ワニゲーター | |
5 | ホーンバファロー | ホーンバファロー | グール➀ | |
6 | ホーンバファロー | グール➀ | グール➀ | |
7 | ホーンバファロー | グール➀ | グール➀ | |
8 | ホーンバファロー | ペッグ | ペッグ | |
9 | ホーンバファロー | ペッグ | ワニゲーター | |
10 | ホーンバファロー | グール➀ | ペッグ | |
11 | ホーンバファロー | グール➀ | ペッグ | |
12 | ホーンバファロー | ホーンバファロー | ||
13 | ホーンバファロー | ホーンバファロー | ||
14 | ホーンバファロー | ホーンバファロー | ||
15 | クインペッグ | ナイトペッグ | ナイトペッグ | ナイトペッグ |
モンスター別にまとめると以下の通り。
確率 | メイン | お供1 | お供2 | お供3 |
---|---|---|---|---|
3/16 | ホーンバファロー | ペッグ | ||
3/16 | ホーンバファロー | ホーンバファロー | ||
2/16 | ホーンバファロー | グール➀ | グール➀ | |
2/16 | ホーンバファロー | グール➀ | ペッグ | |
1/16 | ホーンバファロー | ペッグ | グール➀ | |
1/16 | ホーンバファロー | ワニゲーター | ワニゲーター | |
1/16 | ホーンバファロー | ホーンバファロー | グール➀ | |
1/16 | ホーンバファロー | ペッグ | ペッグ | |
1/16 | ホーンバファロー | ペッグ | ワニゲーター | |
1/16 | クインペッグ | ナイトペッグ | ナイトペッグ | ナイトペッグ |
乱数が61通りしかないことによって、偏りが生まれ、結果が微妙に異なる。
上記の例の場合、クインペッグとの遭遇率は本来の1/16(6.25%)よりも更に低い。
虫のメガリスのスライム➆や最後のメガリスのメガリスドラゴンも同じ位置にあるので、
これらのモンスターに遭いたい場合、プレイ時間カンスト後は僅かに不利。
乱数 | 確率 | |
---|---|---|
0 | 4/61 | 6.55% |
1 | 4/61 | 6.55% |
2 | 4/61 | 6.55% |
3 | 3/61 | 4.91% |
4 | 4/61 | 6.55% |
5 | 4/61 | 6.55% |
6 | 3/61 | 4.91% |
7 | 4/61 | 6.55% |
8 | 4/61 | 6.55% |
9 | 3/61 | 4.91% |
10 | 4/61 | 6.55% |
11 | 5/61 | 8.19% |
12 | 3/61 | 4.91% |
13 | 4/61 | 6.55% |
14 | 5/61 | 8.19% |
15 | 3/61 | 4.91% |
閃きのプログラムの処理をフローチャート式に説明。
閃きの判定は最終コマンド入力時に決定され、以降は技使用者が戦闘不能になったり対象が立ち消えたしりても再判定は行われない。
全ての処理や分岐を詳細に記述すると膨大すぎてとても書ききれないので、変更内容や乱数消費の大まかな流れのみを書き出し。
閃きの判定は最終コマンド入力時に決定され、以降は技使用者が戦闘不能になったり対象が立ち消えたしりても再判定は行われない。
全ての処理や分岐を詳細に記述すると膨大すぎてとても書ききれないので、変更内容や乱数消費の大まかな流れのみを書き出し。
処理内容 | 参照されるアドレス | |
この閃きの判定処理は行動順決定の後に行われる | FNC_001c8bc8:行動順決定処理 | |
START | 閃きのサブルーチンへ分岐 | FNC_001d4d9c:閃きの処理 |
↓ | ||
check 1 | 戦闘中のフラグデータを読み込み、閃き不可フラグがある場合処理を終了する | 001F1770 0x00008000:閃き不可フラグ |
↓ | ||
check 2 | このターンの敵味方全員含めた総行動数を読み込み、0の場合処理を終了する | 001F6494 このターンに処理される行動数 |
↓ | ||
roop 1 | 以降先に行動する者から順に行動回数分の閃き判定を行う 基本的に行動に関わるパラメータは 0x001F649C+0x388n (nは行動順)から参照される | |
check 3 | 行動するキャラの隊列のコードを読み込み、敵の場合以降の処理をスキップし次の行動順へ | 001F64A0 0x0000〜0x0003:味方 0x0004〜0x0007:敵 |
↓ | ||
branch A1 | 混乱や魅了時の対象変更の処理へ分岐 このサブルーチンでは状態異常に掛かっているかを調べて、それによって対象が変更される場合の処理を行う この処理はコマンド入力後でだけでなく、技・術のダメージや特殊効果の計算前や誰かが行動する度に行われる そのため混乱状態では閃き判定までは敵を対象にして閃きLvも参照し技を閃いても味方を攻撃する可能性があり 強制対象変更はターン終了時に解除されるので閃き判定の時点では干渉されないが、 既に判定で閃くことが決定して行動前にサイケデリックウィスパーによって味方を攻撃してしまうことはありえる | FNC_001c80b4:状態異常による対象の変更の処理 |
check A1 | 技・術の対象フラグを読み込み、対象を取らない技・術の場合以降の状態以上による判定を全てスキップする 対象を取らない技・術とは敵のためるやメディテーション、ターン最後のアローレインや溶岩の雨などのことを指す | FNC_001a1c80:技・術のデータアドレス読み込み 0x00028820+0x0018n:攻撃範囲と対象(nは技・術のコード) 0x1000:対象を取らない |
↓ | ||
check B1 | 自分以外に強制対象変更の状態異常の者がいるか調べ、いない場合この処理はスキップする | FNC_001c8564:強制対象変更のフラグチェック |
↓ | →条件を満たさない場合check C1へ | |
check B2 | 乱数を1消費して 乱数 mod 100<100 つまり100%の確率で強制対象変更のキャラに対象を変更する | FNC_001c85ec:強制対象変更の対象変更処理 FNC_000753e0:乱数の生成 |
↓ | ||
check C1 | 自分が混乱状態かチェックし、そうでない場合この処理はスキップする 強制対象変更で対象が変更された場合でもこの判定は行う 後の方の処理に書き換えられることになるので優先度は強制対象変更<混乱 | FNC_001a1ba4:指定されたキャラの状態異常読み込み 001F4D50+0x1F0n 0x00020000:混乱フラグ |
↓ | →条件を満たさない場合check D1へ | |
check C2 | 乱数を1消費して 乱数 mod 100<100 これも100%の確率で混乱時のランダムな対象決定へ分岐する | FNC_001c87cc:混乱状態での対象決定 |
↓ | ||
check C3 | 使用技・術が敵味方全体に効果が及ぶものの場合以降の乱数による判定をスキップ グラスダンサーのミスティックダンス、ラズベリーダンスのみが該当 | 001F64B0+0x388n 0x0030:敵味方全体 |
↓ | ||
check C4 | 使用技・術が敵か味方のどちらか全体が対象の場合、乱数を1消費して 乱数 mod 2 = 0:敵全体 1:味方全体 に対象を決定する つまり乱数が偶数で敵全体、奇数で味方全体が対象になる | 001F64B0+0x388n 0x0010:味方全体 0x0020:敵全体 |
↓ | ||
check C5 | 使用技・術が単体の対象をとる場合、乱数を1消費して 乱数 mod 適正な対象(敵味方全員を含む) を取得し、 隊列が前の方から小さい番号が割り振られ対象が決定する 範囲攻撃の場合そのメインターゲットが決定する | 001F64B0+0x388n 0x0040:範囲攻撃 |
↓ | ||
check D1 | 自分が魅了状態かチェックし、そうでない場合この処理はスキップする 優先度は強制対象変更<混乱<魅了ということになるが混乱と魅了は重複しない | FNC_001a1ba4:指定されたキャラの状態異常読み込み 001F4D50+0x1F0n 0x00040000:魅了フラグ |
↓ | ||
check D2 | 使用技・術が敵味方全体に効果が及ぶものの場合以降の判定をスキップ | 001F64B0+0x388n 0x0030:敵味方全体 |
↓ | ||
check D3 | 使用技・術が敵か味方のどちらか全体が対象の場合、敵全体の場合味方全体へ、味方全体の場合敵全体へ対象を反転させる | 001F64B0+0x388n 0x0010:味方全体 0x0020:敵全体 |
↓ | ||
check D4 | 使用技・術が単体の対象をとる場合、乱数を1消費して 乱数 mod 適正な対象(敵と味方を反転) を取得し、 隊列が前の方から小さい番号が割り振られ対象が決定する 範囲攻撃の場合そのメインターゲットが決定する | 001F64B0+0x388n 0x0040:範囲攻撃 |
↓ | ||
branch 1 return | 対象の数を取得して分岐前に戻る | |
check 4 | 対象となるキャラの隊列のコードを読み込み、味方が含まれる場合以降の処理をスキップし次の行動順へ | 0x0000〜0x0003:味方 0x0004〜0x0007:敵 |
↓ | →条件を満たさない場合roop 1へ | |
check 5 | 使用技と派生元の技を読み込み、一致した場合次の判定へ、不一致なら次のデータを読み込む 全派生データ数である128回繰り返しても一致しない場合乱数補正値を+1して次の行動順へ | 0001eb188〜 技の派生データ |
↓ | →条件を満たさない場合roop 1へ | |
check 6 | 派生先の技の数が0の場合、乱数補正値を+1して次の行動順へ | |
↓ | →条件を満たさない場合roop 1へ | |
roop 2 | 技を閃くか派生先の数だけ以降の処理を繰り返す 技を閃かず全ての派生先の閃き判定が終わったら乱数補正値を1加算して次の行動順へ | |
check 7 | 技の修得済みフラグを読み込み、派生先の技が未修得の場合次の判定へ、修得済みの場合次の派生先読み込み | FNC_001a2140:技の修得フラグ照合 |
↓ | ||
branch A2 | 混乱や魅了時の対象変更の処理へ分岐 敵味方判定後だけでなく修得フラグ判定後にもA1〜D4までの処理を行う 内容は前述と同様なので省略する | FNC_001c80b4:状態異常による対象の変更の処理 |
branch A2 return | 対象の数を取得して分岐前に戻る | |
↓ | ||
check 8 | モンスターの閃きLvと派生先の技の閃き難度を読み込んで、閃きLv−閃き難度を求める 計算結果は−11以下は−10に、11以上は10に修正される 直前の対象変更の処理で対象が味方になった場合、閃きLvは0になる | |
↓ | ||
check 8 | 閃きLv−閃き難度と資質の有無から境界値を計算し、乱数を1消費して int(乱数/16) mod 256 を取り出す int(乱数/16) mod 256 −int(乱数補正値/4)<境界値の場合技を閃いて乱数補正値を0にして次の行動順へ そうでないなら次の派生先を読み込む | FNC_001a2180:パーティのロールフラグチェック バグで自由行動のビットフラグしか返さない FNC_001cb5c8:乱数と乱数補正値の計算 |
↓ | →閃かず次の派生先がある場合roop 2へ | |
roop 2 END | 技を閃かず全ての派生先の判定が終わったら次の行動順へ | |
↓ | →まだ未判定の行動がある場合roop 1へ | |
roop 1 END | 全ての行動の閃き判定を行ったら閃きの処理を終わる | |
↓ | ||
END | 閃きの処理から分岐前に戻る |
- 修得済の場合判定はスキップされ乱数は消費されない。
- 全ての派生先の技の閃き判定がスキップor失敗になった場合に乱数補正値を1増やす処理を行い次に行動する者の閃き判定へ移る。
- 全128項ある派生元の技の照合で全て不一致だった場合、派生元の技としてデータは存在するが、派生先の技の数が0の場合も、
同様に乱数補正値を1増やす処理を行い次に行動する者の閃き判定へ移る。 - デュエルの合成のように判定に失敗した分だけ乱数補正値が加算ということは無い。閃かなかったら+1、閃いたら0になる。
使用技がリストにある派生元の技と一致した場合、左のものから順に閃き判定を行う。
青…派生先0で無くても結果が変わらない派生元
赤…前に同じ技があり照合されることが無い派生元
グレー…最大の敵の閃きLvによる上限を超えて閃けない技
青…派生先0で無くても結果が変わらない派生元
赤…前に同じ技があり照合されることが無い派生元
グレー…最大の敵の閃きLvによる上限を超えて閃けない技
- 追突剣の派生先に高速ナブラというデータが1つあるが照合されることは無い。
- 派生元の技の右の数字は派生先と同じく閃き難度なのだろうが、参照される箇所は見当たらない。
№ | 派生元の技 | 派生先の技 | ||||||||||||||||||||
1 | パンチ | 0 | 正拳 | 7 | 裏拳 | 16 | 胴抜き | 9 | 熊掌打 | 12 | ボコボコ | 20 | 鬼走り | 34 | 爆砕鉄拳 | 23 | ハートブレイク | 34 | ||||
アームハンマー | 25 | キックラッシュ | 27 | コークスクリュー | 30 | 蹴上がり | 36 | 三角蹴り | 47 | あびせ倒し | 41 | ローリングサンダー | 44 | |||||||||
2 | 正拳 | 0 | 裏拳 | 10 | 熊掌打 | 11 | ボコボコ | 19 | 爆砕鉄拳 | 20 | ハートブレイク | 26 | アームハンマー | 23 | コークスクリュー | 31 | ||||||
3 | 裏拳 | 0 | 正拳 | 15 | ボコボコ | 16 | 爆砕鉄拳 | 21 | アームハンマー | 22 | あびせ倒し | 34 | ||||||||||
4 | 胴抜き | 0 | ボコボコ | 17 | 鬼走り | 22 | キックラッシュ | 23 | 蹴上がり | 28 | 三角蹴り | 35 | あびせ倒し | 32 | キッチンシング | 40 | ||||||
5 | 熊掌打 | 0 | ボコボコ | 15 | 鬼走り | 21 | 爆砕鉄拳 | 19 | ハートブレイク | 24 | アームハンマー | 22 | ||||||||||
6 | ボコボコ | 0 | 爆砕鉄拳 | 22 | キックラッシュ | 29 | ローリングサンダー | 38 | 三龍旋 | 50 | ||||||||||||
7 | 鬼走り | 0 | アームハンマー | 24 | 三角蹴り | 33 | 三龍旋 | 47 | カムイ | 45 | ||||||||||||
8 | 爆砕鉄拳 | 0 | アームハンマー | 20 | キックラッシュ | 26 | あびせ倒し | 34 | ローリングサンダー | 39 | カムイ | 49 | 断滅 | 51 | ||||||||
9 | ハートブレイク | 0 | アームハンマー | 24 | コークスクリュー | 28 | ローリングサンダー | 37 | 断滅 | 49 | ||||||||||||
10 | アームハンマー | 0 | 鬼走り | 20 | コークスクリュー | 30 | あびせ倒し | 33 | 呼び戻し | 41 | 三龍旋 | 46 | ||||||||||
11 | キックラッシュ | 0 | ローリングサンダー | 50 | ||||||||||||||||||
12 | コークスクリュー | 0 | ローリングサンダー | 36 | 断滅 | 50 | ||||||||||||||||
13 | 蹴上がり | 0 | キックラッシュ | 24 | 三角蹴り | 35 | 滝登り | 41 | ||||||||||||||
14 | 三角蹴り | 0 | 三龍旋 | 45 | カムイ | 50 | ||||||||||||||||
15 | あびせ倒し | 0 | 呼び戻し | 39 | 断滅 | 53 | ||||||||||||||||
16 | キッチンシング | 0 | 三龍旋 | 45 | ||||||||||||||||||
17 | ローリングサンダー | 0 | ||||||||||||||||||||
18 | ローリングサンダー | 0 | ||||||||||||||||||||
19 | ローリングサンダー | 0 | ||||||||||||||||||||
20 | ローリングサンダー | 0 | ||||||||||||||||||||
21 | 斬る | 0 | 切り返し | 4 | 十字斬り | 14 | 追突剣 | 70 | 払い抜け | 17 | スマッシュ | 9 | かすみ二段 | 21 | ファイナルレター | 70 | デッドエンド | 70 | ||||
なで斬り | 23 | クロスブレイク | 26 | みじん斬り | 31 | 龍尾返し | 33 | かぶと割り | 37 | 天地二段 | 39 | 逆風の太刀 | 46 | ブルクラッシュ | 42 | |||||||
残像剣 | 70 | ベアクラッシュ | 50 | |||||||||||||||||||
22 | 切り返し | 0 | 十字斬り | 11 | かすみ二段 | 18 | ファイナルレター | 33 | クロスブレイク | 23 | みじん斬り | 25 | 龍尾返し | 29 | 天地二段 | 34 | 逆風の太刀 | 36 | ||||
23 | 十字斬り | 10 | かすみ二段 | 20 | クロスブレイク | 22 | みじん斬り | 27 | 龍尾返し | 30 | 天地二段 | 33 | マルチウェイ | 47 | ||||||||
24 | 追突剣 | 0 | 払い抜け | 13 | かすみ二段 | 20 | デッドエンド | 25 | 龍尾返し | 30 | 残像剣 | 34 | 無拍子 | 38 | ||||||||
25 | 払い抜け | 0 | 追突剣 | 24 | かすみ二段 | 20 | なで斬り | 23 | 逆風の太刀 | 33 | 無拍子 | 60 | 剣風閃 | 48 | ||||||||
26 | スマッシュ | 0 | デッドエンド | 30 | みじん斬り | 27 | かぶと割り | 32 | ブルクラッシュ | 34 | ベアクラッシュ | 43 | ||||||||||
27 | かすみ二段 | 0 | ファイナルレター | 32 | クロスブレイク | 24 | みじん斬り | 27 | 龍尾返し | 28 | 天地二段 | 33 | 逆風の太刀 | 36 | 残像剣 | 34 | 剣風閃 | 60 | ||||
28 | なで斬り | 0 | 龍尾返し | 29 | 逆風の太刀 | 37 | ||||||||||||||||
29 | クロスブレイク | 0 | みじん斬り | 26 | 逆風の太刀 | 39 | マルチウェイ | 50 | ||||||||||||||
30 | みじん斬り | 0 | マルチウェイ | 70 | ||||||||||||||||||
31 | 龍尾返し | 0 | 天地二段 | 33 | 逆風の太刀 | 36 | 無拍子 | 50 | 剣風閃 | 60 | ||||||||||||
32 | かぶと割り | 0 | 天地二段 | 31 | ブルクラッシュ | 34 | ベアクラッシュ | 45 | ||||||||||||||
33 | 逆風の太刀 | 0 | 無拍子 | 49 | マルチウェイ | 55 | ||||||||||||||||
34 | ブルクラッシュ | 0 | ベアクラッシュ | 44 | ||||||||||||||||||
35 | 追突剣 | 10 | ||||||||||||||||||||
36 | 追突剣 | 10 | ||||||||||||||||||||
37 | 追突剣 | 10 | ||||||||||||||||||||
38 | 追突剣 | 10 | ||||||||||||||||||||
39 | 追突剣 | 10 | ||||||||||||||||||||
40 | 追突剣 | 10 | ||||||||||||||||||||
41 | 斬る | 0 | トマホーク | 10 | かかと切り | 12 | ハイパーハンマー | 14 | 大木断 | 19 | 一人時間差 | 23 | スカルクラッシュ | 26 | アクセルターン | 29 | 夜叉講断 | 32 | ||||
大強撃 | 35 | 車輪撃 | 40 | 高速ナブラ | 45 | |||||||||||||||||
42 | トマホーク | 0 | スカイドライヴ | 34 | ヨーヨー | 44 | スカイランデヴー | 70 | ||||||||||||||
43 | かかと切り | 0 | ハイパーハンマー | 13 | 大木断 | 18 | 一人時間差 | 25 | アクセルターン | 28 | 夜叉横断 | 33 | ||||||||||
44 | ハイパーハンマー | 0 | 大木断 | 18 | 一人時間差 | 24 | スカルクラッシュ | 27 | アクセルターン | 28 | 夜叉横断 | 33 | 大強撃 | 34 | 車輪撃 | 39 | ||||||
45 | 大木断 | 0 | 一人時間差 | 25 | スカルクラッシュ | 28 | アクセルターン | 26 | 夜叉横断 | 33 | 車輪撃 | 38 | マキ割りトルネード | 50 | ||||||||
46 | 一人時間差 | 0 | アクセルターン | 30 | 夜叉横断 | 31 | ヨーヨー | 38 | 高速ナブラ | 43 | ||||||||||||
47 | スカルクラッシュ | 0 | 大強撃 | 32 | 車輪撃 | 39 | マキ割りトルネード | 54 | ||||||||||||||
48 | アクセルターン | 0 | 夜叉横断 | 30 | 車輪撃 | 37 | 高速ナブラ | 43 | ||||||||||||||
49 | 夜叉横断 | 0 | 車輪撃 | 39 | 高速ナブラ | 44 | ||||||||||||||||
50 | スカイドライヴ | 0 | スカイランデヴー | 40 | マキ割りトルネード | 60 | ||||||||||||||||
51 | 大強撃 | 0 | マキ割りトルネード | 50 | ||||||||||||||||||
52 | 追突剣 | 10 | 高速ナブラ | 41 | ||||||||||||||||||
53 | 追突剣 | 10 | ||||||||||||||||||||
54 | 追突剣 | 10 | ||||||||||||||||||||
55 | 叩く | 0 | 回し打ち | 5 | ハートビート | 11 | 海老殺し | 18 | 骨砕き | 21 | 脳天直撃 | 24 | どら鳴らし | 29 | 痛打 | 34 | 削岩撃 | 38 | ||||
56 | 回し打ち | 0 | ハートビート | 9 | 海老殺し | 16 | 骨砕き | 20 | どら鳴らし | 28 | 痛打 | 33 | 削岩撃 | 35 | からすとうさぎ | 55 | ||||||
57 | ハートビート | 0 | 海老殺し | 18 | 骨砕き | 19 | 脳天直撃 | 22 | どら鳴らし | 26 | 痛打 | 32 | 削岩撃 | 37 | からすとうさぎ | 60 | ||||||
58 | 海老殺し | 0 | 骨砕き | 20 | 削岩撃 | 38 | かめごうら割り | 50 | ||||||||||||||
59 | 骨砕き | 0 | 脳天直撃 | 24 | どら鳴らし | 29 | 痛打 | 34 | 削岩撃 | 38 | かめごうら割り | 50 | ||||||||||
60 | 脳天直撃 | 0 | 痛打 | 33 | 削岩撃 | 37 | グランドスラム | 48 | ||||||||||||||
61 | どら鳴らし | 0 | 痛打 | 32 | 削岩撃 | 36 | ||||||||||||||||
62 | 痛打 | 0 | かめごうら割り | 45 | からすとうさぎ | 53 | ||||||||||||||||
63 | 削岩撃 | 10 | グランドスラム | 47 | ||||||||||||||||||
64 | 追突剣 | 10 | ||||||||||||||||||||
65 | 追突剣 | 10 | ||||||||||||||||||||
66 | 追突剣 | 10 | ||||||||||||||||||||
67 | 追突剣 | 10 | ||||||||||||||||||||
68 | 追突剣 | 10 | ||||||||||||||||||||
69 | 追突剣 | 10 | ||||||||||||||||||||
70 | 追突剣 | 10 | ||||||||||||||||||||
71 | 突く | 0 | 払い突き | 6 | 二段突き | 8 | 草伏せ | 11 | チャージ | 14 | くし刺し | 19 | 高波返し | 22 | スウィング | 25 | 脳削り | 30 | ||||
エイミング | 29 | スカッシュ | 33 | 極楽連衝 | 46 | |||||||||||||||||
72 | 払い突き | 0 | 二段突き | 9 | 草伏せ | 10 | 高波返し | 19 | スウィング | 23 | 脳削り | 29 | スカッシュ | 32 | 光の腕 | 44 | ||||||
73 | 二段突き | 0 | チャージ | 13 | くし刺し | 18 | 高波返し | 21 | エイミング | 28 | スカッシュ | 31 | 極楽連衝 | 35 | 無双三段 | 54 | ||||||
74 | 草伏せ | 0 | 高波返し | 22 | スウィング | 25 | スカッシュ | 30 | 極楽連衝 | 34 | ||||||||||||
75 | チャージ | 0 | くし刺し | 18 | 脳削り | 29 | エイミング | 27 | 活殺獣閃衝 | 44 | ||||||||||||
76 | くし刺し | 0 | 脳削り | 29 | エイミング | 27 | 光の腕 | 42 | ||||||||||||||
77 | 高波返し | 0 | スウィング | 24 | エイミング | 28 | スカッシュ | 29 | 極楽連衝 | 40 | 無双三段 | 50 | ||||||||||
78 | スウィング | 0 | 高波返し | 18 | スカッシュ | 31 | 極楽連衝 | 38 | ||||||||||||||
79 | 脳削り | 0 | エイミング | 26 | スカッシュ | 32 | 活殺獣閃衝 | 44 | ||||||||||||||
80 | エイミング | 0 | 光の腕 | 40 | 活殺獣閃衝 | 42 | 蓮華衝 | 50 | ||||||||||||||
81 | スカッシュ | 0 | 極楽連衝 | 37 | 無双三段 | 50 | ||||||||||||||||
82 | 光の腕 | 0 | 活殺獣閃衝 | 40 | 蓮華衝 | 50 | ||||||||||||||||
83 | 極楽連衝 | 0 | 無双三段 | 55 | ||||||||||||||||||
84 | 活殺獣閃衝 | 0 | ||||||||||||||||||||
85 | 蓮華衝 | 0 | ||||||||||||||||||||
86 | 無双三段 | 0 | ||||||||||||||||||||
87 | 追突剣 | 0 | ||||||||||||||||||||
88 | 追突剣 | 0 | ||||||||||||||||||||
89 | 追突剣 | 0 | ||||||||||||||||||||
90 | 追突剣 | 0 | ||||||||||||||||||||
91 | 射つ | 0 | 狙い射ち | 3 | でたらめ矢 | 7 | 影ぬい | 16 | アローレイン | 21 | イド・ブレイク | 24 | サイドワインダー | 28 | 影矢 | 31 | 針千本 | 35 | ||||
92 | 狙い射ち | 0 | 影ぬい | 14 | イド・ブレイク | 23 | サイドワインダー | 25 | 影矢 | 30 | 針千本 | 33 | 瞬速の矢 | 44 | ||||||||
93 | でたらめ矢 | 0 | アローレイン | 17 | ||||||||||||||||||
94 | 影ぬい | 0 | 影矢 | 27 | 瞬速の矢 | 50 | ||||||||||||||||
95 | アローレイン | 0 | ||||||||||||||||||||
96 | イド・ブレイク | 0 | サイドワインダー | 26 | 針千本 | 37 | ||||||||||||||||
97 | サイドワインダー | 0 | 瞬速の矢 | 50 | 水晶のピラミッド | 45 | ||||||||||||||||
98 | 影矢 | 0 | 瞬速の矢 | 50 | 水晶のピラミッド | 45 | ||||||||||||||||
99 | 針千本 | 0 | 連射 | 40 | ||||||||||||||||||
100 | 連射 | 0 | ||||||||||||||||||||
101 | 瞬速の矢 | 0 | ||||||||||||||||||||
102 | 水晶のピラミッド | 0 | ||||||||||||||||||||
103 | 追突剣 | 10 | ||||||||||||||||||||
104 | 追突剣 | 10 | ||||||||||||||||||||
105 | 追突剣 | 10 | ||||||||||||||||||||
106 | 追突剣 | 10 | ||||||||||||||||||||
107 | 追突剣 | 10 | ||||||||||||||||||||
108 | 追突剣 | 10 | ||||||||||||||||||||
109 | 追突剣 | 10 | ||||||||||||||||||||
110 | 追突剣 | 10 | ||||||||||||||||||||
111 | 追突剣 | 10 | ||||||||||||||||||||
112 | 追突剣 | 10 | ||||||||||||||||||||
113 | 追突剣 | 10 | ||||||||||||||||||||
114 | 追突剣 | 10 | ||||||||||||||||||||
115 | 追突剣 | 10 | ||||||||||||||||||||
116 | 追突剣 | 10 | ||||||||||||||||||||
117 | 追突剣 | 10 | ||||||||||||||||||||
118 | 追突剣 | 10 | ||||||||||||||||||||
119 | 追突剣 | 10 | ||||||||||||||||||||
120 | 追突剣 | 10 | ||||||||||||||||||||
121 | 追突剣 | 10 | ||||||||||||||||||||
122 | 追突剣 | 10 | ||||||||||||||||||||
123 | 追突剣 | 10 | ||||||||||||||||||||
124 | 追突剣 | 10 | ||||||||||||||||||||
125 | 追突剣 | 10 | ||||||||||||||||||||
126 | 追突剣 | 10 | ||||||||||||||||||||
127 | 追突剣 | 10 | ||||||||||||||||||||
128 | 追突剣 | 10 |
処理内容 | 条件分岐 | 乱数 | 結果 | 消費乱数 |
敵パーティ編成決定 | 乱数 mod 16 | 16あるテーブルの中から決定 | 1 | |
配置パターン決定 | ダッシュ状態で接触 | 乱数 mod 100 | 00〜39:パターン7 40〜79:パターン8 80〜99:正面での接触に分岐 | 1 パターン7か8に決定した場合 2 正面での処理へ分岐した場合 |
背後での接触 | 乱数 mod 100 | 00〜29:パターン5 30〜59:パターン6 60〜99:正面での接触に分岐 | 1 パターン5か6に決定した場合 2 正面での処理へ分岐した場合 | |
側面での接触 | 乱数 mod 100 | 00〜14:パターン5 15〜29:パターン6 30〜99:正面での接触に分岐 | 1 パターン5か6に決定した場合 2 正面での処理へ分岐した場合 | |
正面での接触 | 乱数 mod 4 | 0〜3:パターン1〜4 | 1 | |
フレーム経過により進む乱数 | 1フレーム進む度に1消費 戦闘中は30fpsなので1秒で30進む | 1 |
以降フレームが進む度に1、特殊なエフェクトなどによって多くの乱数が消費される
次に戦闘のプログラムによって乱数が消費されるタイミングはパーティの最後のコマンドの入力後となる。
処理内容 | 条件分岐 | 乱数 | 結果 | 消費乱数 |
魅了状態の味方の行動決定 | 乱数 mod コマンド数 | 表示される全コマンドの中から技・術を決定 | 1 | |
魅了状態の味方の対象の決定 | 対象が自分および全体の技・術は、以降の乱数を消費しない | |||
賢さによる判定 | 乱数 mod 100 | 乱数 mod 100≧賢さ 最も近い位置の者が対象 乱数 mod 100<賢さ ターゲット指定の処理へ分岐 | 1 | |
技・術に"無作為"のターゲット指定フラグがある | 乱数 mod 対象の数 | 得られた数値を優先度に加算 全ての対象に対して行われる | 対象の数 | |
優先度同率1位が出た | 乱数 mod 同率1位の数 | 割り振られた番号から対象を決定する | 1 | |
ここまでの処理を魅了状態の人数分行う | ||||
敵の行動決定 | 1回行動と複数回行動のモンスターでは処理が異なる 1回行動の場合モンスター個別に行動選択→対象選択を行うが、 複数回行動のモンスターは全ての行動を決定してから全ての対象を選択する | |||
1回行動の敵の行動決定 | ターン数、残りHPの条件を満たすテーブルを1から順に判定 条件が合えばそのテーブルのコマンドから使用技・術を決定 | 乱数 mod コマンド数 モンスターのWPJPとコストもチェックされる コスト不足のコマンドの数だけ コマンド数−1 | 割り振られた番号から技術欄を参照し技・術を決定 | 1 |
使用技・術決定後、学習フラグを参照し学習が必要でフラグが無い場合テーブル決定からの処理を繰り返す | ||||
1回行動の敵の対象決定 | 魅了状態の味方の行動決定と同じ | |||
ここまでの処理を敵の数だけ行う | ||||
複数回行動の敵の行動決定 | ターン数、残りHPの条件を満たすテーブルを1から順に判定 条件が合えばそのテーブルのコマンドリストの数だけ技・術を選択 | 乱数 mod 4 | 1/4で技・術が決定 | 行動回数 |
複数回行動の敵の対象決定 | 魅了状態の味方の行動決定と同じ 行動回数分この処理を行う | |||
行動順決定 | 行動順決定で消費される乱数は全員が同じ値を参照する距離補正の乱数と行動順2番目以降の速度の乱数の2種類 あまり重要になることは無いが速度決定の処理の順番は自己最速の味方隊列1〜4→敵隊列1〜4→味方1st→敵1st→味方2nd→敵2nd→味方3rd···となっている | |||
速度決定 | 距離補正に掛かる乱数の決定 | int(乱数/256) mod 128 | 距離補正に1〜1.5までの範囲の補正が掛かる | 1 |
行動順2番目以降の速度決定 | 乱数 mod 16 | 前の行動順−1−乱数−先制補正がそのキャラの速度になる | 行動順2番目以降の人数 | |
閃き判定 | 先に行動する者から順に閃き判定を行う。敵の場合全ての判定はスキップし乱数は消費されない | |||
状態異常による対象変更の処理1 | 自分以外に強制対象変更の状態異常の者がいる | 乱数 mod 100 | 乱数 mod 100<100 100%で強制対象変更の効果が発動する | 1 |
自分が混乱状態 | 乱数 mod 100 | 乱数 mod 100<100 100%で混乱時の対象変更処理を行う | 1 | |
混乱時の対象変更処理(全体攻撃) | 乱数 mod 2 | 0:敵全体 1:味方全体 に対象を決定する | 1 | |
混乱時の対象変更処理(単体攻撃) | 乱数 mod 適正対象数 | 敵味方全員の中から対象を決定する | 1 | |
自分が魅了状態で単体の対象をとる技・術を使用 | 乱数 mod 適正対象数 | 魅了時の場合このパターンのみ乱数を消費する | 1 | |
状態異常による対象変更の処理2 | 未修得の派生先の技の閃き難度参照前にこの処理が再度行われる これによって例えば混乱状態なら技を閃くまで未修得の派生先の数だけ乱数を2消費し、そのたびに対象が変更されることになる | |||
閃き判定乱数決定 | 未修得の派生先の技がを閃くまで行う | int(乱数/16) mod 256 | int(乱数/16) mod 256−int(乱数補正値/4)<境界値 の場合技を閃いて次の行動の判定へ | n(閃くまで) |
連携判定 | 強制攻撃対象のキャラがいる場合連携の処理は全てスキップする | |||
状態異常による対象変更の処理3 | 連携する技・術であるかどうかに関わらず全ての行動でこの処理を行う 精神的状態異常(恐怖 混乱 魅了 狂戦士)の場合連携判定は発生しないが何故か連携判定前にこの処理が行われる | |||
先行からの連携判定 | 乱数 mod 100 | 1 | ||
後続からの連携判定 | 瞬間ステータスと受付ステータスが一致しないと判定の処理は行わず乱数は消費しない | 乱数 mod 256 | 1 | |
最初に行動するキャラの乱数 | ターン最初の行動のに関わる計算はこの最終コマンド入力後に行われる | |||
敵の消費コストチェック | 乱数は消費されないが、敵はこのタイミングでも消費コストが足りるか判定を行う コストが不足している場合技術欄の1番目にある技・術を使用する | |||
狂戦士状態での行動キャンセル | 乱数は消費されないが、狂戦士状態でJPを使用する技・術が選択されている場合行動がキャンセルされ、 代わりに次の行動が最初の行動になる | |||
恐怖状態での行動キャンセル デュエルでは混乱状態でもこの判定を行う | 乱数 mod 2 | 0:通常通り行動 1:行動がキャンセルされ、代わりに次の行動が最初の行動になる | 1 | |
状態異常による対象変更の処理4 | 最初に行動するキャラのみ技・術の命中やダメージ計算の前に再度この判定が行われる | |||
回避技の判定 | 以下の技に対しては判定はされない 相抜け、カウンター技、カスタムアーツ、合成で発動した技術、閃いた技、連携 全体攻撃、対象が2人以上いる、対象が自分 以下の状態異常の相手に対しては判定はされない 恐怖、混乱、魅了、石化、眠り、戦闘不能、昏睡、スタン | |||
技・術の回避フラグと対象の使用武器系統のフラグが一致しないと判定されない | 乱数 mod 100 | 基本回避率 カウンター、反応射撃:10(ロール要撃で30) ディフレクト、ブロック:16 風車:20 基本回避率−(Quick+Quick(1ターン)の補正が掛かる 行動側:遊撃、対象:突撃の場合×0、対象:回避重視の場合×2 デュエルの場合更に両者の体勢で倍率が変わる 行動側:接近 対象:離脱 ×0 行動側:接近 対象:不動 ×4 行動側:不動 対象:離脱 ×4 対象:接近 ×1/2 対象:備え ×2 | 1 | |
ミスの判定 | 以下の技に対しては判定はされない 相抜け、カウンター技、閃いた技、連携、対象が自分 | |||
技・術にミスの回避フラグが無いと判定されない | 乱数 mod 100 | 基本回避率=10−技・術の成長度(下限は1) その他の補正は回避技と同じ | 対象の数 | |
ガードビースト判定 | 以下の技に対しては判定はされない 相抜け、カウンター技、連携、対象がない | |||
対象にガードビーストが掛かっており、 技・術にガードビーストの回避フラグがないと判定されない | 乱数 mod 100 | 乱数 mod 100<30 で回避 | ガードビーストの掛かった対象の数 | |
盾回避判定 | 以下の技に対しては判定はされない 相抜け、カウンター技、新規に合成習得した技術、閃いた技、連携、対象が自分 以下の状態異常の相手に対しては判定はされない 石化 眠り 戦闘不能 昏睡 スタン | |||
対象の武器欄2に盾が装備されており、 技・術に盾1、盾2の内片方か両方のフラグがないと判定されない | 乱数 mod 100 | 技・術が盾1フラグのみの場合盾回避率×1/4 技・術が盾2フラグのみの場合盾回避率×1/2 盾1盾2両方のフラグがあって×1 攻撃属性と盾の属性が一致しないと×0 対象が身を守る状態の場合通常の判定の前に 盾回避率×2にして追加の判定が行われる | 盾を装備した対象の数 更にその中から身を守ってる数だけ+1 | |
ダメージ計算 | ダメージ計算から能力値変化判定までは対象が複数の場合対象Aにダメージ→LP→状態異常→能力値変化の順に乱数を使い同じように対象B以降にも判定を行う | |||
ダメージ計算式が設定されて無い技・術なら判定を行わない | 乱数 mod 威力×4 | どの計算式でも乱数の範囲はこの式 | 対象の数 | |
LPブレイク判定 | 必中LPブレイクが発生する攻撃・全くLPブレイクの発生しない攻撃・ダメージが0未満の場合・回復効果の場合は、判定をスキップ | 乱数1:乱数 mod 32 乱数2:乱数 mod 32 | 乱数1+乱数2<技・術の成長度でLPブレイク発生 | 2n n=対象の数 |
状態異常判定 | 以下の効果は必中で乱数を消費しない 再生、ガードビースト、リヴァイヴァ、凍結、眠り(ナイトメア)、恐怖→混乱、必中LPブレイク、戦闘不能→リ・インカーネイト | |||
乱数 mod 100 | 対象の数 | |||
能力値変化判定 | 必中ではなく確率で効果が発生する技術の場合。通常はサミング、スポイルウェイヴ、ミスティックダンスが該当 魅了などで獣・マインドスケープ・ベルセルク・魂の歌を、敵に使用して能力値減少扱いになった際にも確率判定を行う | 乱数 mod 100 | 対象の数 | |
学習判定 | 学習フラグが無いか学習済みならこの判定は無い | 乱数 mod 64 | 乱数値が0の場合のみ学習 | 1 |
フレーム経過により進む乱数 | 1フレーム進む度に1消費 戦闘中は30fpsなので1秒で30進む | 1 |
コメントをかく