前回に続いて今回は移動中の回復呪文の変更をします。移動中の呪文等の処理は$030B31に3バイトずつのアドレスの配列で定義されている中にあります。$09128Fで処理を行っていますので、この中を変更することになります。ホイミ・べホイミ・ベホマです。$09B3Aをコールして回復量を取得しているようです。$09B3Aをコピーして一部に条件判断を加えて実装することにします。return長いですが、途中までオリジナルのコピーなので追加した部分だけ説明します。追加したのは$09E464以降です。この時点で回復量はStack($01)にセットされています。術者の職業IDを取得して、勇者(#$08)か賢者か(#$07)か僧侶(#$03)であれば調整はしないので処理を飛ばします。次に、回復量を見て#$FFFFでなければベホマでないと判断し、3/4にする処理をし、ベホマであれば術者の賢さを取得してその値をStack($01)に差し替えます。最後にスタックの状態を元に戻して終わりです。スタックはSRに入る前と出る直前の状態を同じにしておく必要があります。スタックからポップし忘れたりするとあっという間にバグるので注意してください。逆にいうとあからさまにバグってくれるので見つけやすいともいえますが。これで単体回復系は終わりです。次にベホマラー・ベホマズンを変更します。$0912A4の中で行っています。(2013-03-02追記)まんたん処理を見なおしている最中に今回の処理を改めて見なおす機会があったので、従来の処理があまりにお粗末だったので書き換えました。思えばこの部分はプログラム改造を始めるにあたって一番最初に手をつけた場所だったのでしょうがないという面もありますが。今回の改定でコード量も短くなり、スッキリした実装になりました。1点気になるのはこのような意味不明の実装を他でもやってないかということですが*1、調べる手間を考えると恐ろしいので気にしないことにします。先ほど実装したSRを$090B3Aの代わりに呼んでやるだけで終わりです。これで機能自体の実装は終わりです。次回は残りの呪文説明文の変更を説明します。効果が倍加、という処理はなんとか実装できたのですが、移動中回復呪文がどうにも上手くいきません。アイテム装備チェックを使った条件判定の書き方の例を教えてもらえたら助かります。管理者より返信:最終的に何が知りたいのかはっきりしないのですが、移動中呪文処理$090D2Fの下を掘っていってみてください。不思議な帽子などのアイテム装備チェックを行っている箇所があるはずです。22:10返信ありがとうございます。変えてみたり等を試してみたのですが装備チェックの判定が上手く動作しません。$044DC0は装備しているかどうかはvフラグを見ます。$02AFC5の近辺を見てください。既存SRを流用する場合は、バイナリエディタでそのSRをコールしている部分を探せば使い方がわかります。SFCGENEditorに指定したSRを使用している箇所を探す機能があればいいんですが、UIをどうするかなど考えると面倒なので実装していません。そのへんはおいおい実装できたらいいなとは思っていますが。00:52何度もすみません。不思議なぼうし、ボレロの装備チェックをしている部分を探してコピペしたもので最初に試した時点でダメだったので意味もよく分からずD0、90などを試した次第であります。ほとんどプログラムの意味もわかっていないレベルの自分にはちょっと手に負えそうにない感じがしてきたので最悪諦めます。何度もありがとうございました。09としてみたところ、やっと望み通りの動作になってくれました。コメントをキャンセルメールアドレスが公開されることはありません。コメントは管理者の承認後表示されます。