手配レベル上がらない この方法は他のソフトでも使える方法かといえば 恐らく流用できる方法ではないと思いますが PS2にはこんな探し方もあるんだなという気持ちで 読んで頂ければと思います、ただし難易度は高い方なので要注意。 ラベル一覧で役に立ちそうな物を探していると なにやら暗号みたいな文字列が見つかりました ちなみに今回はWinXPが入ってるPCでこれを書いてるので 少しウィンドウが今までの画像とは違います。URDLURDL4144(3144など)これを左右反対にすると 4144LDRULDRUやっぱり謎の文字にしか見えませんが しばらく考えていてある仮説を思い付きました その時点では4144はまだ分かりませんでしたが LDRUは十字キーの各方向を表してるのではないでしょうか? L=Left(左) D=Down(下) R=Right(右) U=Up(上) そういえばチートコマンドにこれに似た物があります ライフ回復や武器出現のコマンドは最後が←↓→↑←↓→↑ これはチートコマンドを表している可能性が非常に高いです。 となると、1234はLRボタンでしょうか? このチートコマンドを表しているであろう文字列が存在する アドレスの参照先を調べてみる事にしました 003F3310をマークしてF3で検索します すると、一箇所だけ参照している場所がありました
そこから下方向を見ると全く同じプログラムへ 何度もジャンプするように命令が並んでいます 他にもジャンプする度に1〜Bまで数値が増えたり 0064や0005、00C8といったキリの良い数値もあります
この数値は武器出現コマンド (R2,R2,L1,R2,←,↓,→,↑,←,↓,→,↑) を入力した時に増加する弾数と全く同じです どうやらここはチートコマンドに関係しているプログラムの様です 試しにプログラムの先頭をjr raで潰して(遅延もnopで潰す) このプログラムを通らないようにしてコマンドを入れた所 効果も入力成功表示も出なくなりました。 そうと分かれば、このプログラム周辺を探れば ライフ回復や所持金増加、手配レベル0の効果を持っている プログラムが見つかる可能性があります 武器コマンドより上はすぐ関数の先頭部分になるので ここから下方向へプログラムを読んでいきます。 すると、こんな場所を発見
42C80000は浮動小数点値を16進数表示にした物です 10進数に直すと100.000000、ここは体力と 防弾チョッキの回復コマンドの時に通過するようです。 次はこんな場所が見つかりました
何か数値をaddiu命令で2増やしています その後、0006で比較されている事から 手配レベルアップコマンドの場所であると予想出来ます 加算命令が2つあったので両方の加算値を0000にすると コマンド成功表示が出てもレベルが上がらなくなりました 手配レベルはv0レジスタ+0018hです これを元に手配レベルを管理してる他の場所を探します この0018で16bit検索してみると結構見つかりますが 002A6D50で引っかかった場所から下方向を見ると 6〜0の数値のどれかをストアするように 何回か分岐命令を通過するようになっています
(画像サイズの関係で一部(レベル5と6)のみ) プログラムの終わり付近ではzeroをストアする場所があります そこを必ず通過するように、関数先頭近くから その場所まで分岐命令でジャンプさせるようにして コード化して車で歩道を暴走してみました(笑) すると、何人轢こうが警察車両に銃を撃ち込もうが 手配レベルが0固定で絶対に上がりません ただでさえ危ないゲームがもっと危なくなりました(笑) 今回は普通とは全く違う探し方でコードを探しました コマンドから探す方法はGTA3独特の物で 他のソフトでも似たような方法で探せる可能性は低いです こういう普通の最大値検索などとは全く違う探し方をする場合は どんな情報でもコードになると見て考えて とにかくコード化して実験などを繰り返すのが重要です 実際にコマンドに辿り着くまで結構掛かっています(汗)