RPGツクール+ACEでいろいろと改造してみました
ランダムダンジョンというフリーソフトを改造
RPGツクール自体が改造対策なのかバイナリエディタで検索しても数字がでてこない
うさみみハリケーンでいろいろしらべてみたがどうやら数字が独自のものになっているようだ
数値は0→1 の場合は 0→6となる
123(10進数)のとき1バイト上げ
0x06→0x7F
1→127 実際表示は5閾値をもってるので 122個表示
上記までは "7F"で表すことができる
0x7F→0x80
127→128になるとバイト数表示が先頭に必要となる
"01 7B"となる以後バイト数が上がる場合は先頭にバイト表示が必要となる
表示は123なので閾値の5が消えることになる
122個以上(0x7F)以上にしようとしたときに先頭にバイト表示が必要となる
1バイト255(0xff)→2バイト256(0x0100)になるときも書き換え
01 ff→ 02 00 01となる値をインサートして使用
増えた1バイト分後ろにさげることが必要となる
例1:99
99 + 5 = 104
”68” この数字がバイナリデータに表示される
例2:416
416 ÷ 256 = 1 余り 160
2バイト表示なる為(256以上)
”
02
A0
01” がバイナリデータに表示される
01←256
A0←160
02←2バイト表示なので 2
256 + 160 = 416 となる
例3:16711935
16711935 ÷ 65536 = 255 余り 255
255 ÷ 256 = 0 余り 255
"03 FF 00 FF" がバイナリデータに表示される
これを使って早速改造してみましょう
ランダムダンジョンのニューエイジメロン(ステータスアップアイテム)を99個にしてみます
検索例
@maxhp_plus //MAXHP
@atk_plus //攻撃力
@def_plus //防御力
@spi_plus //精神力
@agi_plus //俊敏性
@gold //金
@items //アイテム
@itemsで検索
今回は毒消し草をニューエイジメロンに変更して個数を99にする
"07 69 06"
これが 07 毒消し 06:個数
に対応している、実際もっている毒消しは1個でIDは2です
これをメロンのIDと99個にかえる
ID:49 がメロン
"36 69 68"に変更
99個になりましたね
ACEでもこの方式で管理してるみたいです
インフレクエストでもためしてみました
4バイトで FFFF3F以上を設定するとマイナスになるようです
それ以上のプラス設定は i → l+ に変更
おそらく int → long+とかなのかもしれません
例:"6C 2B 07 00 00 00 41"
"6C 2B" の部分が l+
07 がバイト数 ただし 4バイトから以後1上がるごとに2バイトずつ増える
07より後ろが格納される値
例:"6C 2B 0A FF FF FF FF FF FF FF FF FF FF"
0A なので 7から+3になっている
合計で 4 + 2*3= 10バイト表示できるようになるようだ
攻撃力が表示しきれずにバグってるようにみえます(;^ω^)
バイト数は20で試してます
"6C 2B 20 この後ろは全部FF で埋め"
20なので 4 + (32 - 7) * 2 = 54バイト 全部FFで埋めてます
ダメージは E+130とかでてきてます
ツクールは変数にかなり格納できるバイト数を保有しているみたいです