0 はじめに

SaGa2 秘法伝説の各種乱数を解析した結果を紹介します。
以下の情報を参考にさせていただきました。
  RPG INSTITUTE…乱数テーブル、魔法ダメージ計算
  Valhalla Palace…特殊能力、秘宝効果、ダメージ計算
  Technical Note(アーカイブ)…エンカウント関連
  海外版の掲示板のバグ情報スレッド…成長関連

0.1 計算について

「A%B」はAをBで割った余り。
割り算の結果はそのつど小数以下切捨て。
引き算の結果が負の場合はその都度0とする。


1 乱数テーブル

乱数テーブルそのものの中身についてはRPG INSTITUTE参照。
また、使い道によって最低でも以下7つの乱数タイプが存在する。

乱数A:
 移動中の回復、
 戦闘中の行動順、ダメージ量、技の命中、
 戦闘後の取得アイテム、取得エスパー能力
に関わる。

乱数B:
 戦闘開始時の不意打ち判定
 戦闘時の逃走判定、敵行動決定、技以外の命中判定、状態変化成功判定、追加効果成功判定
 戦闘終了時の肉・アイテム取得判定、人間、エスパー成長判定、成長HP量
に関わる。
電源投入時の初期位置は乱数Aから1つ進んだもの。

乱数C:
 戦闘開始時の敵HP
に関わる。
電源投入時の初期位置は乱数Aから2つ進んだもの。

乱数D:
 戦闘開始時の敵HP
に関わる。
電源投入時の初期位置は乱数Aから3つ進んだもの。

乱数E:
 移動時のエンカウント判定
に関わる。
電源投入時の初期位置は乱数Aから4つ進んだもの。

乱数F:
 敵出現時の敵グループ
に関わる。
電源投入時の初期位置は乱数Aから5つ進んだもの。

乱数G:
 敵出現時の敵数
に関わる。
電源投入時の初期位置は乱数Aから6つ進んだもの。

その他、移動中のフィールドキャラの移動用の乱数が存在する。


2 移動時の乱数

2.1 回復

乱数Aを使用。

 ポーション・・・・40+乱数A%21
 ハイポーション・・150+乱数A%51
 魔法回復系・・・・(使用者魔力+対象者魔力)*倍率+乱数A%(使用者魔力+1) (RPG INSTITUTEより)

戦闘中も同じ。
*癒しの杖はサブキャラがいない場合でもサブキャラの分の回復量も判定する。


2.2 キャラクターランダム移動


恐らく、一定時間経過後、どのキャラを動かすかを乱数で決める、そのキャラを別の乱数で動かす、
といった処理をしていると考えられる。

フロア内のキャラ1体1体に別の乱数(A-Gよりあと)が割り当てられていてその乱数に応じた動きをする(実際に確認)
左か上に動いた後は下か右へ、下か右の後は左か上へと、同じ方向に連続して移動することは無い。


2.3 エンカウント判定

乱数Eを使用。

 乱数E<危険度 

のとき敵出現。
ロード、移動直後も判定。
判定は敵が出現しうる場合のみ。
危険度は場所ごとに4から16までの値をとる。


3.敵出現時

[敵グループ決定(固定敵の場合はなし)]→敵数決定→敵HP決定x敵数→味方不意打ち判定→敵不意打ち判定

の順で行うと考えられる。
また、全滅後の再戦闘では敵HP決定以後が改めて判定される。


3.1 敵グループ決定

乱数Fの値によって以下のように決まる

乱数E  割合  グループ(Technical Noteでの番号)
 0- 7  8/256 グループA(3)
 8- 24 17/256 グループB(4)
 25- 60 34/256 グループC(5)
 59-126 68/256 グループD(6)
127-194 68/256 グループE(1)
195-228 34/256 グループF(7)
229-245 17/256 グループG(2)
246-255 10/256 グループH(8)

固定敵(=出現グループが決まっている)の場合は判定しない。

なお、ラストフロアの「はにわ」はグループAに属する。


3.2 敵数決定

敵出現種類数に関わらず乱数Fを3つ使って決定。
左側の敵種から

 最小数+乱数G%(最大数-最小数+1)

で決まる。
敵が2種類以下の場合の空きは数を0とみなして判定。
(空きの位置はグループによって異なる)


3.3 敵HP決定

出現時の敵のHPは固定ではなく、乱数、乱数Dを使用して
敵の数だけ左の敵種から手前の敵から順に以下のように決まる。

 敵初期HP=敵最大HP-乱数D%((敵最大HP/8+1)%256)-256*(乱数C%(敵最大HP/2048+1))

*乱数Cと乱数Dは常に同時に使用されるので、常に乱数Dの現在位置は乱数Cのひとつ前になる。

このように出現時の敵のHPは最大値の7/8〜8/8の値を取る。
また、全滅後の再戦闘では改めて判定される。


3.4 不意打ち判定

不意打ちは

 乱数B%101≦50

を満たしかつ、「ふいうち」所持、相手が「けいかい」の未所持のとき成功。
「ふいうち」能力の所持に関わらず味方、敵の順に判定する。
敵味方両方成功した場合は相殺される。
また、全滅後の再戦闘では改めて判定される。


4 ターン冒頭

[逃走判定(逃走可能で逃げた場合)]→(敵行動決定[→行動対象決定(必要な場合)])x敵数→行動順決定


4.1 逃走判定

乱数Bを使用。逃走不可能時(必ず失敗)、味方先制時(必ず成功)は判定しない。

 乱数B%51<100*(5-味方数)+味方素早さ合計-敵の素早さ合計

なら逃走成功。
味方数、素早さ合計は石化、気絶キャラを含まず。
敵素早さ合計は各個ではなく各種族の合計。

逃走可能な敵グループの素早さ合計の最大値は187(コカトリス+アイスロブスター+ウォッチャー)なので
味方5人の時は素早さ合計238以上、味方4人の時は素早さ合計138以上、
味方3人の時は素早さ合計38以上で確実に逃げられることになる。
味方2人以下の時は素早さ合計に関わらず確実に逃げられる。

*「すばやさのマギ」、「もうもく」の効果を受けない


4.2 敵行動決定

 乱数B%255で決まる。(*境界値は暫定)

*実際に持っている能力と、取りうる行動の数が一致しない場合有り。
*アポロンは特殊で行動決定で乱数を使用しない。

取りうる行動が1つの場合:ラムフォリンクスなど
 乱数B%255
   0-254 256/256 行動1

取りうる行動が2つの場合:マクロファージなど
 乱数B%255
   0-169 171/256 行動1
 170-254  85/256 行動2

取りうる行動が3つの場合:やどかりんなど
 乱数B%255
   0-144 146/256 行動1
 145-217  73/256 行動2
 218-254  36/256 行動3

取りうる行動が4つの場合:アシュラなど
 乱数B%255
   0-135 137/256 行動1
 136-202  67/256 行動2
 203-236  34/256 行動3
 237-254  18/256 行動3

取りうる行動が5つの場合:アポロンのしもべなど
 乱数B%255
   0-131 133/256 行動1
 132-197  66/256 行動2
 198-230  33/256 行動3
 231-246  16/256 行動4
 247-254  8/256 行動5


4.3 敵対象決定

全体攻撃の場合は判定しない。

物理攻撃系(単体攻撃、グループ系物理攻撃)は

 乱数B%101≦50

を満たすまで(戦闘可能な)先頭キャラから順に判定。
誰も満たさない場合はもう一度だけ先頭キャラで判定。

魔法攻撃系(+マサムネ)の対象は以下のように決まる。
 対象=乱数B%5+1
対象は先頭から1,2,3,4,5。
該当キャラがいない場合は次の番号のキャラが対象になる。ただし最後尾の次は先頭。

回復行動は左からの数えて以下の対象の敵グループになると思われる(未確認)。

 対象=乱数B%3+1


4.4 行動順決定

まず敵味方各キャラについて行動値(=行動順の元となる値)を決める。
味方の場合は素早さに補正がかかる。

行動値=(行動速度+乱数A%(行動速度+1))%256

 味方の場合:行動速度=(素早さ*5/4)%256
  敵の場合:行動速度=素早さ

行動値が多い順に行動。
値が同じ場合は大抵後者先手となるが、状況によって異なる。
気絶したキャラ、倒した敵の分の判定も行う。

*行動順は「すばやさのマギ」、「もうもく」の効果を受けない


5 攻撃

判定順

*[]は該当時のみ。


通常直接攻撃武器、技

[盾回避判定:失敗→]命中判定:成功→ダメージ量決定[:ダメージあり→巻きつき判定(ムチ系)]

複数回攻撃の場合は{命中判定:成功→ダメージ量決定}を攻撃回数分だけ行う


弱点攻撃時
クリティカル判定:失敗→ダメージ量決定


単体状態変化攻撃
[盾回避判定:失敗→]命中判定:成功→状態変化判定
*耐性がある時、及び既にその状態変化に掛かっている時は何も判定しない。
*状態変化判定に成功した場合は反撃を受けない。

飛び道具単体
命中判定:成功→ダメージ量決定


5.1 盾回避判定

対象が盾一般、ディフェンダーなどの防御武器、からにはいるなどの能力で身を守っている時に
直接攻撃、技攻撃をした場合に判定。

 乱数B%101≦盾回避率

で回避成功。


5.2 命中判定

ロングソード、きば、とかすなど基礎ダメージが能力依存する単体直接攻撃武器、
および、スタンガン、どくばりなどの単体状態変化攻撃の場合、

 乱数B%101≦97-((対象素早さ-素早さ)*2)%256

で命中。
複数回攻撃は攻撃回数分だけ判定。

これから、乱数Bが0,101,202の場合は必中となり、
乱数Bが98,99,100,199,200,201の場合は必ずミスすることがわかる。


技(「パンチ」〜「じこくぐるま」)の場合は

 乱数A%(残り回数+1)≦97-((対象素早さ-素早さ)*2)%256

*無限化時、メカ装備時は残り回数は
   じごくぐるま 75
    ヤマアラシ 80
   その他の体術 85
 とする。(ダメージ計算も同様)


で命中。
乱数Aを使用していることに注意。
通常の武器に比べて命中率は高い。
最後の攻撃はどんなに素早さに差があっても1/2で命中する。

ただし、裏技で回数255の場合は
命中率は最大98/256程度になるはず。(未確認)


単体飛び道具の場合は

弓系:
 乱数B%101≦(武器命中率+素早さ*2)%256

拳銃系:
 使用者メカ:乱数B%101≦(武器命中率+力*2)%256
 その他種族:乱数B%101≦(武器命中率+力)%256

で命中。
対象の素早さ等は影響しない。
素早さ、力を上げ過ぎるとミスするようになるので注意。

チェーンソーの場合

 乱数B%101≦武器命中率+力

で命中


5.3 クリティカル判定

単体攻撃武器で相手の弱点を攻撃したとき

 乱数B%101≦30

でクリティカル発生。


5.4 状態変化成功判定

「スタンガン」、「ブレイクのしょ」、「どくばり」などの状態変化攻撃での状態変化は

 乱数B%101≧50+(対象魔力-魔力)*2

で成功。
これから、対象より魔力が26以上低いと必ず失敗する。
また、魔力が相手と同じでも、高くても、成功率は106/256。


5.5 減少系攻撃命中判定

「すなじごく」、「あくしゅう」などが該当

 乱数B%101>(減少対象の能力値)-10

ならば成功。
能力を下げれば下げるほどより下げやすくなる
111以上の能力値は減らすことができない


5.6 ムチ巻きつき判定

ムチ系武器でダメージを与えたときは

 乱数B%101≦50

を満たすと動きを止められる。


5.6 ダメージ量計算

全て乱数Aを使用。
通常直接攻撃ダメージ:省略。Valhalla Palace参照

技攻撃ダメージ:省略。Valhalla Palace参照
 *基本回数-残り回数<0のときは、65536を加える。

魔法ダメージ:省略。RPG INSTITUTE参照。

HP吸収系攻撃ダメージ
  魔力*6+乱数A%(魔力+1)-対象魔力

銃系ダメージ
 使用者メカ時:基本AP+((乱数A%(AP幅+1))*2)%256-対象防御*5
   それ以外:基本AP+(乱数A%(AP幅+1))-対象防御*5

弓系ダメージ
  基本AP+((乱数A%(AP幅+1))*n)%256-対象防御*5
*銃、重火器攻撃後:n=1
 メカで  〃  :n=2
 めがみのしんぞう使用後:n=212
     上記以外:n=0

重火機系
 使用者メカ時:基準AP*5+(乱数A%(基準AP+1))/2*2-対象防御*5
   それ以外:基準AP*5+(乱数A%(基準AP+1))/2-対象防御*5

その他
ビームライフル:350+乱数A%51
   ミサイル:200+(乱数A%101)*2
 かくばくだん:400+(乱数A%101)*2
   マサムネ:512+乱数A%(力+1)
ガラスのつるぎ:1024+乱数A%(力+1)


*「エクスカリバー」・「グングニルのヤリ」は力70未満の場合は力70として計算。
*ダメージ計算に対象防御が含まれているものは対象が武器に強い場合はダメージ半減。

飛び道具系武器の基本APとAP幅(命中率と同じ)は以下のとおり

 銃系     基本AP AP幅(=命中率)
デリンジャー   100  45
ロケットパンチ  160  55
ひなわじゅう   350  100
44マグナム   450  150

 弓系
ゆみ        50  50
なげせん      50  70
ミスリルのゆみ  320  100

 重火機系    基準AP
サブマシンガン   50
かえんほうしゃき  50
しゅりゅうだん   70
バズーカ      98
バルカンほう   132
レオパルト2   170
よいちのゆみ   200


6 状態異常

6.1 一時状態異常回復率

 乱数B%101≦回復率

を満たすと回復。
回復率は
 眠り 30 93/256
 マヒ 20 63/256
 混乱 10 33/256
  毒 20 63/256 (暫定値)

毒以外は行動時に判定。
毒はターン終了時に判定。

毒のダメージは毒回復判定の直後に
 最大HP/20+乱数A%(最大HP/20+1)+1

混乱時の行動は混乱回復判定の直後に
 乱数B%8 を2回判定して決定。

一つめで使用するアイテム(能力)を決定。
二つ目で対象を決定。
0-4は味方、5-7は敵になる。
使えないアイテム(能力)の場合、なにもしない。
該当する対象がいない場合も、なにもしない。

*なお、混乱がすぐに直った場合は選択した行動を取る。
*ムチ系の巻きつきを受けても混乱の行動は発動する。


6 戦闘終了後

 肉/アイテムx敵種類数→(エスパー能力取得→HP上昇→能力値上昇)x該当者数

の順で判定。
アイテム・肉はどちらかひとつ取った時点で判定終了。
取得ケロの計算も同時に行っているらしく、判定終了した時点で取得ケロも確定。
成長判定は成功したら以後の判定はせず次のキャラへ(いなければ終了)。


6.1 肉・アイテム判定

左に敵グループから順に判定。

 乱数B%101≦20+該当グループの敵数

で判定成功。

アイテムの場合はさらに

 乱数A%装備能力数

で入手アイテム決定。
該当する能力がアイテムでない場合は何も落とさない。
アイテムがいっぱいの時も何も落とさない。


6.2 エスパー能力取得

以下を満たせば判定成功。

 乱数B%201 ≦ 4 +(敵Lv-HPLv)*7

  HPLv = 最大HP/(50+(最大HP%256)/26)

人間も判定する(乱数を使用する)が必ず失敗する。

成功した場合は取得能力を乱数Aで判定。
詳細はRPG INSTITUTE参照。

HPLvは具体的には以下のようになる。

 最大HP	HPLv
  0〜 50	 0
 51〜107	 1
 108〜167	 2
 168〜231	 3
 232〜233	 4
 234〜235	 3
 236〜255	 4
 256〜305	 5
 306〜307	 6
 308〜311	 5
 312〜377	 6
 378〜455	 7
 456〜511	 8
 512〜560	10
 561〜563	11
 564〜571	10
 572〜659	11
 660〜667	10
 668〜671	11
 672〜766	12
 767   	14
 768〜1023	15〜17
1024〜1038	20

このように最大HPに対して単調増加ではない。


6.3 最大HP上昇

以下を満たせば判定成功。

   人間:乱数B%201≦10+(敵Lv*15-(HPLv*15)%256)
 エスパー:乱数B%201≦ 5+(敵Lv*15-(HPLv*15)%256)

   HPLv = 最大HP/(50+(最大HP%256)/26) (*エスパー能力判定と同じ)

HP上昇に成功した場合でかつ現最大HPが998以下の場合はHP上昇量を以下の様に決める。

 5+最大HP/50+乱数B%11

HP上昇に成功した場合で現最大HPが999以上の場合は、HP上昇はしないが、
その場合もそのキャラの成長判定は終了し他の能力値は上がらない。
特にHPが1024以上の場合はHPLvが20になり、
(HPLv*15)%256=300%256=44となって、HPLv3と同程度の上がり易さになる。
この場合、能力値が上がりにくくなるので注意。


6.4 能力値上昇

以下の条件を満たせばで判定成功。

人間
防御以外: 乱数B%201≦10+(敵Lv*15-能力値*15/(5+能力値/20))
  防御: 乱数B%201≦0

エスパー
   力: 乱数B%201≦0
 素早さ: 乱数B%201≦5+(敵Lv*7-能力値*7/(5+能力値/20))
それ以外: 乱数B%201≦5+(敵Lv*15-能力値*15/(5+能力値/20))

判定に成功した場合、能力値が98以下ならアップする。

*能力値には装備品の効果を含む。マギ、加速装置等の戦闘中の変化効果は含まない。
*能力値が上がると必ずしも成長しにくくなるわけではなく、20の倍数になったときに成長確率は上がる。

例:レベル10の敵を倒したときの成長率(/256)
(人間の防御とエスパーの力は能力値に依らず2/256)
能力値	人:力早魔	エ:魔防	エ:早
0	216	211	131
1	213	208	130
2	210	205	129
3	207	202	127
4	204	199	126
5	201	196	124
6	198	193	123
7	195	190	122
8	192	187	120
9	189	184	119
10	186	181	117
11	183	178	116
12	180	175	115
13	177	172	113
14	174	169	112
15	171	166	110
16	168	163	108
17	165	160	106
18	162	157	102
19	159	154	100
20	166	161	106
21	164	159	104
22	161	156	102
23	159	154	100
24	156	151	96
25	154	149	94
26	151	146	92
27	149	144	90
28	146	141	88
29	144	139	86
30	141	136	82
31	139	134	80
32	136	131	78
33	134	129	76
34	131	126	74
35	129	124	72
36	126	121	68
37	124	119	66
38	121	116	64
39	119	114	62
40	131	126	72
41	129	124	70
42	126	121	68
43	124	119	66
44	122	117	64
45	120	115	62
46	118	113	60
47	116	111	58
48	114	108	56
49	111	102	54
50	108	98	52
51	104	94	50
52	100	90	48
53	96	86	46
54	92	82	44
55	88	78	42
56	82	72	40
57	78	68	38
58	74	64	36
59	70	60	34
60	98	88	48
61	94	84	46
62	90	80	44
63	86	76	42
64	82	72	40
65	80	70	40
66	76	66	38
67	72	62	36
68	68	58	34
69	64	54	32
70	60	50	30
71	56	46	28
72	52	42	26
73	50	40	26
74	46	36	24
75	42	32	22
76	38	28	20
77	34	24	18
78	30	20	16
79	26	16	14
80	56	46	28
81	52	42	26
82	50	40	26
83	46	36	24
84	42	32	22
85	40	30	20
86	36	26	20
87	32	22	18
88	30	20	16
89	26	16	14
90	22	12	12
91	22	12	12
92	22	12	12
93	22	12	12
94	22	12	12
95	22	12	12
96	22	12	12
97	22	12	12
98	22	12	12