戦闘システム 一覧

DQ6戦闘部分解説9

相当サボっていますがとりあえずあまりネタを考えるのに頭を使わなくていいところから作業をしていきます。というわけで前回の続き、戦闘コマンド入力「たたかう」を見ていきます。

dq6戦闘画面

続きを読む


DQ6戦闘部分解説8

今回は「逃げる」の時の処理です。

  • SR:$023E17 戦闘コマンド処理_SRアドレス_逃げる
023E17JSL $C1F32ASR: $01F32A 引数:1#$00B1BGM再生
023E1DLDA #$0042A=#$0042
023E20STA $2555$2555=A
023E23PEA #$2011Push #$2011イベント戦闘なら逃走不可
023E26PEA #$0004Push #$0004
023E29PEA #$7E00Push #$7E00
023E2CJSL $C92965SR: $092965RAM上情報取得
023E30BNE #$49if(z==off) goto $023E7B
023E32JSR $3ECBSR: $023ECB確実に逃げられるか(該当c=on)
023E35BCS #$22if(c==on) goto $023E59
023E37PEA #$2514Push #$2514
023E3APEA #$0060Push #$0060
023E3DPEA #$7E00Push #$7E00
023E40JSL $C92965SR: $092965RAM上情報取得
023E44TAXX=A
023E45LDA $C23EC7,XA=$023EC7+X逃走確率閾値アクセス
023E49AND #$00FFA&=#$00FF
023E4CSTA $00DP($00)=A
023E4EJSL $C00E97SR: $000E97乱数発生(00-FF)
023E52AND #$0007A&=#$0007
023E55CMP $00A>=DP($00)?
023E57BCS #$12if(c==on) goto $023E6B
023E59LDA #$0005A=#$0005
023E5CPEA #$2514Push #$2514
023E5FPEA #$001EPush #$001E
023E62PEA #$7E00Push #$7E00
023E65JSL $C929B0SR: $0929B0RAM上情報変更
023E69CLCc=off
023E6ARTSreturn
023E6BJSR $3F24SR: $023F24レンジャーがいるときの追加逃走閾値取得
023E6ESTA $00DP($00)=A
023E70JSL $C00E97SR: $000E97乱数発生(00-FF)
023E74AND #$0007A&=#$0007
023E77CMP $00A>=DP($00)?
023E79BCC #$DEif(c==off) goto $023E59
023E7BPEA #$2514Push #$2514
023E7EPEA #$0060Push #$0060
023E81PEA #$7E00Push #$7E00
023E84JSL $C92965SR: $092965RAM上情報取得
023E88INCA++
023E89CMP #$0004A>=#$0004?
023E8CBCS #$0Dif(c==on) goto $023E9B
023E8EPEA #$2514Push #$2514
023E91PEA #$0060Push #$0060
023E94PEA #$7E00Push #$7E00
023E97JSL $C929B0SR: $0929B0RAM上情報変更
023E9BLDA #$0002A=#$0002
023E9EPEA #$2513Push #$2513
023EA1PEA #$0003Push #$0003
023EA4PEA #$7E00Push #$7E00
023EA7JSL $C929B0SR: $0929B0RAM上情報変更
023EABJSL $C2CAC6SR: $02CAC6
023EAFJSL $C2CA59SR: $02CA59
023EB3JSL $C02A16SR: $002A16 引数:1#$0028戦闘メッセージ表示「○○は にげだした!」
023EB9JSL $C02A16SR: $002A16 引数:1#$0001戦闘メッセージ表示:プロンプト
023EBFJSL $C02A16SR: $002A16 引数:1#$0029戦闘メッセージ表示「しかし まわりこまれてしまった!」
023EC5CLCc=off
023EC6RTSreturn

$023EC7から1バイトずつ逃走確率の閾値が格納されています。

逃走回数閾値成功率
1回目450%
2回目450%
3回目675%
4回目以降787.5%

となっているので、DQ6では通常時は確実に逃げられることはありません。

続きを読む


スポンサーリンク

DQ6戦闘部分解説7

だいぶ間が空きましたが、続きをやっていきます。まずは戦闘方針ウィンドウ(?)の部分です。具体的にはこの画面のコマンドです。「たたかう」は内部に通常戦闘コマンド処理を含むので後回しにします。

dq6000

  • SR:$023E05 戦闘コマンド処理_SRアドレス_入れ替え
023E05JSL $C5EF55SR: $05EF55戦闘中入れ替え処理
023E09SECc=on
023E0ARTSreturn
  • SR:$05EF55 戦闘中入れ替え処理
05EF55PHPPush P Flag
05EF56REP #$30m=off(A/M:16b) x=off(X/Y:16b)
05EF58PHAPush A
05EF59PHXPush X
05EF5APHYPush Y
05EF5BPHBPush DB
05EF5CJSL $C1CEDASR: $01CEDA
05EF60BCC #$22if(c==off) goto $05EF84
05EF62LDA #$0061A=#$0061
05EF65JSL $C37236SR: $037236ウィンドウ描画+ユーザー入力を得る(キャンセルc=on)
05EF69JSL $C02A16SR: $002A16 引数:1#$0179戦闘メッセージ表示「ここでは いれかえは できない!」
05EF6FJSL $C31BD0SR: $031BD0
05EF73LDA $38B0A=$38B0
05EF76DECA–
05EF77JSL $C3B5DBSR: $03B5DB
05EF7BPLBPull DB
05EF7CREP #$30m=off(A/M:16b) x=off(X/Y:16b)
05EF7EPLYPull Y
05EF7FPLXPull X
05EF80PLAPull A
05EF81PLPPull P Flag
05EF82SECc=on
05EF83RTLreturn
05EF84JSL $C42B1CSR: $042B1C 引数:1#$08 引数:2#$FFパーティ人数取得
05EF8ACMP #$0001A==#$0001?
05EF8DBNE #$22if(z==off) goto $05EFB1
05EF8FLDA #$0061A=#$0061
05EF92JSL $C37236SR: $037236ウィンドウ描画+ユーザー入力を得る(キャンセルc=on)
05EF96JSL $C02A16SR: $002A16 引数:1#$0177戦闘メッセージ表示「いれかえられる なかまがいない!」
05EF9CJSL $C31BD0SR: $031BD0
05EFA0LDA $38B0A=$38B0
05EFA3DECA–
05EFA4JSL $C3B5DBSR: $03B5DB
05EFA8PLBPull DB
05EFA9REP #$30m=off(A/M:16b) x=off(X/Y:16b)
05EFABPLYPull Y
05EFACPLXPull X
05EFADPLAPull A
05EFAEPLPPull P Flag
05EFAFSECc=on
05EFB0RTLreturn
05EFB1LDA #$0079A=#$0079
05EFB4JSL $C37236SR: $037236ウィンドウ描画+ユーザー入力を得る(キャンセルc=on)
05EFB8BCC #$11if(c==off) goto $05EFCB
05EFBALDA $38B0A=$38B0
05EFBDDECA–
05EFBEJSL $C3B5DBSR: $03B5DB
05EFC2PLBPull DB
05EFC3REP #$30m=off(A/M:16b) x=off(X/Y:16b)
05EFC5PLYPull Y
05EFC6PLXPull X
05EFC7PLAPull A
05EFC8PLPPull P Flag
05EFC9SECc=on
05EFCARTLreturn
05EFCBASLA<<1
05EFCCTAXX=A
05EFCDJMP $EFD0 ($05EFD0)goto $($05EFD0+X)

DQ3と比べて低レベルの処理がまぜこぜになってるような印象を受けます。一番最後では、選んだメニュー「いれかえ」「そうがえ」「みる」に応じた処理にジャンプするようになっています。

続きを読む


DQ6戦闘部分解説6

ようやく戦闘コマンドを入力するところまで来ました。

続きを読む


スポンサーリンク

DQ6戦闘部分解説5

ちんたらやっているせいで未だに戦闘が始まっていないわけですが、他にネタもないしいいかなと。

続きを読む


1 2 3 4 5 6 15