DQ3 すごろく!マークのステータス変動値を1~3に抑える

最近実装に関しての質問が何件か連続して来たので最初は個別に回答していたのですが、メールで回答してしまうと他の人には知られないまま終わってしまうのでもったいないと思い、エントリという形で回答することにしました。もちろん中の人ではないので全てに答えられるわけではありませんが、知ってる範囲のものについては返事をしていくつもりです。私の回答が一番ベストな答えとは限りませんので、ツッコミをするなり、よりベターな解決法を各自探すなりそのへんはご自由に。また、一応断っておきますが、私の基本スタンスは「やりたいことはやりたいやつがやる」なので、「〇〇を実装してください!」というような要望には応えませんのでその点はご了承ください。

さて前置きが長くなりましたが、第1回目のお便りコーナーは

DQ3ですごろくの!マークでのステータス変動値が大きすぎるので1~3に抑えたいがどうしたらいいか

です。正直種集めをするより、第1すごろく場でステートセーブを使いながら!マークでインチキする方がはるかに早いですから、ここを何とかしたいというのはわかります。方針としては、数値決定している部分の出目を1/2してしまうのが一番簡単かなと思います。1,2なら1変動、3,4なら2変動、5,6なら3変動とすれば、変更範囲もさほど大きくはないのではないかというのがその理由です。まずはオリジナルの実装を見てみます。

  • SR: $0587DA すごろく強さ変化処理(さいころ/数値・UpDown確定 Up c=on)
0587DAJSL $C5882DSR: $05882D
0587DEJSL $C56716SR: $056716すごろくの目決定処理(ランダム)
0587E2JSL $C58825SR: $058825
0587E6LDA $C1E7A=$C1E7さいころ出目
0587E9STA $BE81$BE81=Aメッセージ中変数部分(XポイントのXに相当)にセット
0587ECLDA $C1E7A=$C1E7
0587EFSTA $C1F5$C1F5=Aステータス変動値にセット

SR: $056716をコールすると、$7EC1E7にサイコロの現在の出目がセットされます。その後メッセージ用の変数とステータス変動値用の変数に出目をセットしているので、これらの変数へのセット前に出目を加工してしまえばいいということになります。というわけで以下変更例。

  • SR: $0587DA すごろく強さ変化処理(さいころ/数値・UpDown確定 Up c=on)
0587E6LDA $C1E7A=$C1E7さいころ出目
0587E9JSR $FA71SR: $05FA71出目加工
0587ECLDA $C1E7A=$C1E7
0587EFSTA $C1F5$C1F5=A

  • SR: $05FA71 出目加工(新SR)
05FA71CLCc=off
05FA72LSA AA>>1出目を1ビット左にシフト
05FA73BCC #01if(c==off) goto $05FA76c=on 元の数が奇数なら1足す
05FA75INC AA++
05FA76RTSreturn

というわけで証拠画像。

20101019005032.jpg

コメント

タイトルとURLをコピーしました