91

色々調査をした成果

ペットTASについて、長年防御の値を求めることができなかったが、それっぽい値を見つけることができた。
でも、luaで出力しようとすると値がおかしくなる。どういうことなのだろう。

RAMをのぞいてみて色々してみた。HPや経験値などは、3桁を超すのが当たり前だったので、luaで表記する時は下記のようにしている

local [アドレス名]=0x0000yyyy
yyyy…HP等が格納されているアドレス
[変数名]=memory.readword([アドレス名])
gui.text([X座標],[Y座標],"[表示テキスト]" .. [変数名])

ただ、防御の場合はこの方法で表示すると多少問題が発生する。

まず、防御の値に極端に高い値を入れる必要がない。
なぜなら、大きい値を入れすぎると、クリティカル攻撃か特技でしかダメージが通らなくなるから。
後半のボスであれば通用するかもしれないけど、たぶんこのゲームはLV30-35くらいでクリアできるように作られてる。

一番高い火力を持つジャイアンでも、攻撃が100を超すのはLV35から。
主人公女としずかはLV99で攻撃が99になるため、3桁を超すことはない。
(一応、武器や腕輪で火力増強はできるけど、それでもLV70〜83くらいは必要)
他キャラについては、ドラえもんLV47、のび太LV95、スネ夫LV90
でも、低レベルでもクリアできるなら防御を3桁以上に設定する意味がほとんどなくね?

話変わって、luaの「[変数名]=memory.readword([アドレス名])」について
そういう形式なのかと思ったら、実はmemory.readwordはメモリを2バイトで参照する式だった。
1バイトで参照したい時は、memory.readbyteを使うらしい。

ということで、防御の値だけをmemory.readbyteで表示するようにしたところ、正常?に表示されるようになった。

というわけで、情報を表示しながら色々遊んでみた動画を貼って終わります。
表示されているのは、上からHP、防御、経験値、ほうせき、撃破時に貰える経験値、ほうせきとなっております。