構造体について

Last-modified: 2009-09-04 (金) 10:56:11

444 名前: UnnamedPlayer [sage] 投稿日: 2009/01/25(日) 15:40:31 ID:RSJALr9V
今GTAがプレイできないからそのスクリプト自体テストしてないから詳しいことは言えないけど、
人物のハンドルを得るには、元々用意されてるopcodeじゃなくて、
http://varistor.dyndns.org/wiki/index.php?FrontPage
このサイトの構造体を調べてハンドルを得る方法を使った方が良い。
元々のopcoodeだと取得できない属性のpedがいるし、使い勝手もよくない。

0A8D: 27@ = read_memory 0xB74490 size 4 virtual_protect 0
000A: 27@ += 0x4
0A8D: 27@ = read_memory 27@ size 4 virtual_protect 0
for 28@ = 0 to 35584 step 0x100
0A8D: 26@ = read_memory 27@ size 1 virtual_protect 0
000A: 27@ += 0x1
if and
0029: 26@ >= 0x00
001B: 0x80 > 26@
then
005A: 26@ += 28@ // (int)
if
803C: not $PLAYER_ACTOR == 26@ // (int)
then
0321: kill_actor 26@
end
end
end

このコードは手当たり次第に人物を調べて、CJでなければ殺すってコードだけど、
これにCJの半径数メートル内にいる、CJから見える、CJが見えるっていう風に条件を足してやる。
0321の代わりに直接命令部分を書いても良いけど、条件に合ったハンドルを得るだけで終わらせるなら、
breakって入れるか、28@に35584を入れて、forループを終わらせてやればいい。
……被ったけど書いたから張っておく。

446 名前: UnnamedPlayer [sage] 投稿日: 2009/01/25(日) 16:03:59 ID:P7l99ztw
ttp://samc.blog123.fc2.com/blog-entry-198.html
wikiの方が読みやすいね。