<   2010年 07月 ( 2 )   > この月の画像一覧

web拍手への返信 その8

> うまく調整すれば町での泥棒の成功率が上がりそうなので、NPCの出現条件について詳しく知りたいです。

NPC毎に個別に調べるのは簡単なのですが、NPC出現スクリプトは長いので、全貌を調べるかどうかは分かりません。やるとしても完成するのは当分先でしょう。


> 武器や盾のことで質問で、変更は何とかできたんですけど、
> 新規アイテム(花とか)に追加することは可能ですか?
> オフセットを空き領域に移せば何とかなる感じでしょうか。

武器・盾のグラッフィクデータから離れた空き領域に追加したいグラフィックデータを入れて、
追加したグラフィックが読み込まれるように武器・盾のグラフィックを読み込む処理を改造することになるでしょう。
なので、デバッガを使ってそのプログラムを突き止め、改造する必要があります。


> 戦車といえばボウヤー系を含め、放たれた矢(銀の矢以外)がシレンに当たるのとその他モンスター、NPCに当たるのとではダメージが妙に違いますよね。

それは既によく知られているバグで、敵の矢がシレン以外に当たった時の攻撃力はシレンの攻撃力となります。
[PR]
by oyasen | 2010-07-18 11:28 | web拍手への返信

特殊モンスターハウスのモンスター出現率のバグ

web拍手で指摘を頂いたのですが、特殊モンスターハウスに出現するモンスターの出現率が、開発者の意図したようにはなっていないようなので、調べてみました。
その他のROMイメージ改造で、次のように書きました。

039764以降 種族データのオフセット
03976E以降 種族データ
039792以降 種族データのサイズ

本来の設定は次の通りです。バイナリエディタで確認しながら見て下さい。

どろぼう:ガマラ,ガマラ,ガマラ,ガマラ,ぬすっトド,ぬすっトド,ぬすっトド,ぬすっトド
ドレイン:吸引幼虫,吸引幼虫,くねくねハニー,くねくねハニー,まわるポリゴン,まわるポリゴン
1ッ目:吸引幼虫,吸引幼虫,ぴーたん,ぴーたん,ゲイズ,ゲイズ,アイアンヘッド,アイアンヘッド
ゴースト:死の使い,死の使い,エーテルデビル,エーテルデビル,パコレプキン,パコレプキン,セルアーマー,セルアーマー
パワー:ナイフゲータ,アイアンヘッド,タウロス,デブータ,火炎入道,キグニ族

しかし、データを読み込むプログラム(03973B以降)にバグがあります。これは書き換え版でも修正されていません(書き換え版ではアドレスがずれています)。
種族データのオフセットが2バイトずつなので、それを読み込む為に引数である$00(特殊モンスターハウスの種類)を2倍にして"X"に入れ、LDA $039764+"X"としてオフセットを読み込みます。
この後、0~7の乱数を発生させて$039792+"X"と比較して、前者が後者以上だと乱数生成をやり直すようになっているのですが、2倍にされた"X"を1/2倍する処理を忘れています。その結果、種族データのサイズとして読み込まれるデータは1バイトずつ飛び、次のプログラム(039797以降)にまではみ出してしまいます。
更に、種族データのサイズは1バイトずつなのにも拘わらず、比較する時点で2バイトモードを1バイトモードにするのを忘れています。その結果、この比較処理は意味がなくなり、本来6バイト分しか用意されていないドレイン、パワーハウスのデータは2バイトはみ出してしまいます。
それでも、不幸中の幸いと言うか、偶然にもドレインハウスの次の2バイトは1ッ目ハウスの吸引幼虫*2、パワーハウスの次の2バイトは種族データのサイズである08 06(種族データと見なすと火炎入道、デブータ)なので、意図しないモンスターが出たりはしません。だから気付かれなかったのしょう。
ということで、実際は次の表から等確率で選択ということになり、出現する種族に偏りが出ます。それにしても、あまりにも初歩的なミスの連続なのですが、よく大した不具合が起こりませんでしたね。

どろぼう:ガマラ,ガマラ,ガマラ,ガマラ,ぬすっトド,ぬすっトド,ぬすっトド,ぬすっトド
ドレイン:吸引幼虫,吸引幼虫,くねくねハニー,くねくねハニー,まわるポリゴン,まわるポリゴン,吸引幼虫,吸引幼虫
1ッ目:吸引幼虫,吸引幼虫,ぴーたん,ぴーたん,ゲイズ,ゲイズ,アイアンヘッド,アイアンヘッド
ゴースト:死の使い,死の使い,エーテルデビル,エーテルデビル,パコレプキン,パコレプキン,セルアーマー,セルアーマー
パワー:ナイフゲータ,アイアンヘッド,タウロス,デブータ,火炎入道,キグニ族,火炎入道,デブータ
[PR]
by oyasen | 2010-07-04 14:51 | 改造・解析