アットウィキロゴ

DQ5 (DS) > 確率


行動順を決定する値

戦闘の行動順は (行動優先度) := floor((すばやさ) × (乱数 80〜120) / 10) の大きさの順で決定され、優先度が同一の場合、味方1, 味方2, ..., モンスター1, モンスター2, ... の順で優先されます。

ソース

+ ...
;--------------------------------------------
; r0 ← r0 * (乱数 (100-r1)〜(100+r2)) / 100
;--------------------------------------------
20127a2: 0000        movs  r0, r0
20127a4: b538        push  {r3, r4, r5, lr}
20127a6: 1c0c        adds  r4, r1, #0
20127a8: 1c05        adds  r5, r0, #0
20127aa: 18a0        adds  r0, r4, r2
20127ac: 1c40        adds  r0, r0, #1
20127ae: f03c e848   blx 0x204e840
20127b2: 2164        movs  r1, #100  @ 0x64
20127b4: 1b0a        subs  r2, r1, r4
20127b6: 1810        adds  r0, r2, r0
20127b8: 4368        muls  r0, r5
20127ba: f7f3 ebfc   blx 0x2005fb4
20127be: bd38        pop {r3, r4, r5, pc}
 
;
; 行動順
;
...
212f466: 586a        ldr r2, [r5, r1] ; r2 ← すばやさ
212f468: 200a        movs  r0, #10
212f46a: 4350        muls  r0, r2     ; r0 ← すばやさ * 10
212f46c: 5068        str r0, [r5, r1]
212f46e: 5868        ldr r0, [r5, r1] 
212f470: 2114        movs  r1, #20
212f472: 1c0a        adds  r2, r1, #0
212f474: f6e3 f996   bl  0x20127a4    ; r0 ← すばやさ * 10 * (乱数 80〜120) / 100
212f478: 4906        ldr r1, [pc, #24] @ (0x212f494)
212f47a: 5068        str r0, [r5, r1]
...
 

レベルアップ時の上昇幅

(上昇値) := max{(標準上昇値), ((標準上昇値) × (乱数 75〜124) + 50)/100}

ソース

+ ...
200d238: b510        push  {r4, lr}
200d23a: 2032        movs  r0, #50 @ 0x32
200d23c: 1c0c        adds  r4, r1, #0
200d23e: f041 eb00   blx 0x204e840
200d242: 304b        adds  r0, #75 @ 0x4b   ; r0 ← 乱数 75〜124
200d244: 0400        lsls  r0, r0, #16
200d246: 0c00        lsrs  r0, r0, #16
200d248: 4360        muls  r0, r4
200d24a: 3032        adds  r0, #50 @ 0x32
200d24c: 0400        lsls  r0, r0, #16
200d24e: 0c00        lsrs  r0, r0, #16
200d250: 2164        movs  r1, #100  @ 0x64
200d252: f7f8 eeb0   blx 0x2005fb4          ; r0 ← ((基本上昇値) * (乱数 75〜124) + 50) / 100
200d256: 0400        lsls  r0, r0, #16
200d258: 0c00        lsrs  r0, r0, #16
200d25a: 42a0        cmp r0, r4
200d25c: d200        bcs.n 0x200d260
200d25e: 1c20        adds  r0, r4, #0
200d260: bd10        pop {r4, pc}
 

モンスターが仲間になる確率

設定値 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 (必ず仲間になる) (必ず仲間になる) (必ず仲間になる)

ソース

  • モンスターを仲間にする処理: 0x021274A0

エンカウント周り

仕様

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

ソース

  • 「しのびあし」、「においぶくろ」の効果: 0x2015654
+ ...
2015654: 4889        ldr r0, [pc, #548]  @ (0x201587c)
2015656: f001 f847   bl  0x20166e8
201565a: 2800        cmp r0, #0
201565c: d00d        beq.n 0x201567a     ; 「しのびあし」状態ではない
 
201565e: 4887        ldr r0, [pc, #540]  @ (0x201587c)
2015660: 79c0        ldrb  r0, [r0, #7]
2015662: 0fc2        lsrs  r2, r0, #31
2015664: 0781        lsls  r1, r0, #30
2015666: 1a89        subs  r1, r1, r2
2015668: 201e        movs  r0, #30
201566a: 41c1        rors  r1, r0
201566c: 1850        adds  r0, r2, r1
201566e: d01e        beq.n 0x20156ae     ; 累計移動マス数 が 4 で割り切れる場合、何もしない
 
2015670: f00e f8a0   bl  0x20237b4
2015674: f00e f946   bl  0x2023904
2015678: e019        b.n 0x20156ae
 
201567a: 4881        ldr r0, [pc, #516]  @ (0x2015880)
201567c: f001 f834   bl  0x20166e8
2015680: 2800        cmp r0, #0
2015682: d010        beq.n 0x20156a6     ; 「においぶくろ」の効果中ではない
 
2015684: f00e f896   bl  0x20237b4
2015688: f00e f93c   bl  0x2023904
201568c: f00e f892   bl  0x20237b4
2015690: f00e f938   bl  0x2023904
2015694: f00e f88e   bl  0x20237b4
2015698: f00e f934   bl  0x2023904
201569c: f00e f88a   bl  0x20237b4
20156a0: f00e f930   bl  0x2023904
20156a4: e003        b.n 0x20156ae
 
20156a6: f00e f885   bl  0x20237b4
20156aa: f00e f92b   bl  0x2023904
 
...
 
201587c: 0209f42c
2015880: 0209f444
...
 
  • カウンタの初期値の決定: 0x2036858
  • 地形依存の減算値・乗数の決定: 0x2036898
  • カウンタの値の減算処理: 0x20368FC
最終更新:2024年05月31日 00:39