行動順を決定する値
戦闘の行動順は (行動優先度) := floor((すばやさ) × (乱数 80〜120) / 10) の大きさの順で決定され、優先度が同一の場合、味方1, 味方2, ..., モンスター1, モンスター2, ... の順で優先されます。
ソース
+
|
... |
...
0212F466 586A ldr r2,[r5,r1] ; すばやさ
0212F468 200A movs r0,0Ah
0212F46A 4350 muls r0,r2
0212F46C 5068 str r0,[r5,r1]
0212F46E 5868 ldr r0,[r5,r1] ; すばやさ × 10
0212F470 2114 movs r1,14h
0212F472 1C0A adds r2,r1,0
0212F474 F6E3F996 bl Lxx_20127A4h ; すばやさ × 10 × (乱数 80〜120) / 100
0212F478 4906 ldr r1,=Lxx_1524h
0212F47A 5068 str r0,[r5,r1]
...
|
レベルアップ時の上昇幅
(上昇値) := max{(基本上昇値), ((基本上昇値) × (乱数 75〜124) + 50)/100}
ソース
+
|
... |
0200D238 B510 push r4,r14
0200D23A 2032 movs r0,32h
0200D23C 1C0C adds r4,r1,0
0200D23E F041EB00 blx Lxx_204E840h ; r0 ← 乱数 0〜49
0200D242 304B adds r0,4Bh
0200D244 0400 lsls r0,r0,10h
0200D246 0C00 lsrs r0,r0,10h
0200D248 4360 muls r0,r4
0200D24A 3032 adds r0,32h ; r0 ← (基本上昇値) × (乱数 75〜124) + 50
0200D24C 0400 lsls r0,r0,10h
0200D24E 0C00 lsrs r0,r0,10h
0200D250 2164 movs r1,64h
0200D252 F7F8EEB0 blx Lxx_2005FB4h ; r0 ← ((基本上昇値) × (乱数 75〜124) + 50) / 100
0200D256 0400 lsls r0,r0,10h
0200D258 0C00 lsrs r0,r0,10h
0200D25A 42A0 cmp r0,r4
0200D25C D200 bcs Lxx_200D260h
0200D25E 1C20 adds r0,r4,0
0200D260 BD10 pop r4,r15
|
モンスターが仲間になる確率
設定値 |
1 匹目 |
2 匹目 |
3 匹目 |
0 |
(仲間にならない) |
(仲間にならない) |
(仲間にならない) |
1 |
1/256 |
1/1024 |
1/1024 |
2 |
1/64 |
1/128 |
1/256 |
3 |
1/32 |
1/64 |
1/128 |
4 |
1/16 |
1/64 |
1/64 |
5 |
1/4 |
1/64 |
1/64 |
6 |
1/2 |
1/64 |
1/64 |
7 |
1/2 |
1/32 |
1/16 |
8 |
(必ず仲間になる) |
(必ず仲間になる) |
(必ず仲間になる) |
ソース
エンカウント周り
仕様
1 歩移動する毎に(エンカウント用の)カウンタの値を減算し、カウンタの値が 0 未満になった際に戦闘が発生する方式です。
- (カウンタの初期値) := 7680 + (0〜30 の範囲の乱数値に依存した補正値)
- (1 歩移動した際の減算値) := (地形依存の減算値) × (エンカウントテーブル依存の乗数) × (地形依存の乗数)
地形依存の減算値・乗数
タイプ |
地形 |
減算値 |
乗数 |
草原との比率 |
0 |
海 |
153 |
1.0 |
0.398 |
1 |
砂漠 |
576 |
1.0 |
1.500 |
2 |
山 |
960 |
1.0 |
2.500 |
3 |
岩山 |
960 |
1.0 |
2.500 |
4 |
毒の沼地 |
691 |
1.0 |
1.799 |
5 |
茂み |
384 |
1.0 |
1.000 |
6 |
草原 |
384 |
1.0 |
1.000 |
7 |
森 |
460 |
1.0 |
1.198 |
8 |
橋 |
353 |
1.5 |
1.379 |
エンカウントテーブル依存の乗数
設定値 |
乗数 |
0 |
0.25 |
1 |
0.50 |
2 |
0.75 |
3 |
1.00 |
4 |
1.25 |
5 |
1.50 |
6 |
1.75 |
7 |
2.00 |
ランダム補正値
乱数値 |
補正値 |
草原との比率 |
0 |
-1193 |
-3.107 |
1 |
-982 |
-2.557 |
2 |
-844 |
-2.198 |
3 |
-737 |
-1.919 |
4 |
-647 |
-1.685 |
5 |
-568 |
-1.479 |
6 |
-497 |
-1.294 |
7 |
-432 |
-1.125 |
8 |
-371 |
-0.966 |
9 |
-313 |
-0.815 |
10 |
-258 |
-0.672 |
11 |
-204 |
-0.531 |
12 |
-152 |
-0.396 |
13 |
-101 |
-0.263 |
14 |
-51 |
-0.133 |
15 |
-1 |
-0.003 |
16 |
50 |
0.130 |
17 |
100 |
0.260 |
18 |
151 |
0.393 |
19 |
203 |
0.529 |
20 |
257 |
0.669 |
21 |
312 |
0.812 |
22 |
370 |
0.964 |
23 |
431 |
1.122 |
24 |
496 |
1.292 |
25 |
567 |
1.477 |
26 |
646 |
1.682 |
27 |
736 |
1.917 |
28 |
843 |
2.195 |
29 |
981 |
2.555 |
30 |
1192 |
3.104 |
ソース
- 「しのびあし」、「においぶくろ」の効果: $2015654
+
|
... |
02015654 4889 ldr r0,=Lxx_209F42Ch
02015656 F001F847 bl Lxx_20166E8h
0201565A 2800 cmp r0,0h
0201565C D00D beq Lxx_201567Ah ; 「しのびあし」状態ではない
0201565E 4887 ldr r0,=Lxx_209F42Ch
02015660 79C0 ldrb r0,[r0,7h] ; 「しのびあし」状態での累計移動マス数(非負)
02015662 0FC2 lsrs r2,r0,1Fh
02015664 0781 lsls r1,r0,1Eh
02015666 1A89 subs r1,r1,r2
02015668 201E movs r0,1Eh
0201566A 41C1 rors r1,r0 ; r0 ← (累計移動マス数) % 4
0201566C 1850 adds r0,r2,r1
0201566E D01E beq Lxx_20156AEh ; (r0 が 0 の場合、何もしない)
02015670 F00EF8A0 bl Lxx_20237B4h
02015674 F00EF946 bl Lxx_2023904h
02015678 E019 b Lxx_20156AEh
0201567A 4881 ldr r0,=Lxx_209F444h
0201567C F001F834 bl Lxx_20166E8h
02015680 2800 cmp r0,0h
02015682 D010 beq Lxx_20156A6h ; 「においぶくろ」を使っていない場合
02015684 F00EF896 bl Lxx_20237B4h
02015688 F00EF93C bl Lxx_2023904h
0201568C F00EF892 bl Lxx_20237B4h
02015690 F00EF938 bl Lxx_2023904h
02015694 F00EF88E bl Lxx_20237B4h
02015698 F00EF934 bl Lxx_2023904h
0201569C F00EF88A bl Lxx_20237B4h
020156A0 F00EF930 bl Lxx_2023904h
020156A4 E003 b Lxx_20156AEh
020156A6 F00EF885 bl Lxx_20237B4h
020156AA F00EF92B bl Lxx_2023904h
...
|
- カウンタの初期値の決定: $2036858
- 地形依存の減算値・乗数の決定: $2036898
- カウンタの値の減算処理: $20368FC
最終更新:2024年05月31日 00:39