mugen日記

現在elemの被弾判定

CATEGORYmugen記述
COMMENT0
[[[[[アドレス+0x13BC]+0x10]+0x2C]+0x8]+0x4~0x13]
多分ここでよさそう
Clsn2[1]がある場合は0x14~0x17を飛ばして0x18以降にあるっぽいね

具体的にはこう


で、実験に使ったairがこれ


調べた場所は0x004350DD~0x0043522Aの辺り
ようやく放置してたアマ貫を搭載できそうですなぁ

<追記>
clsn2自体がない場合[[[アドレス+0x13BC]+0x10]+0x2C]が0みたい
その辺考慮しとかないとダメだね

<追記2>
汎用コードまとめ更新
指定プレイヤーの被弾判定を調べてくれるのを作った

sysvar弄り

CATEGORYmugen
COMMENT0
http://migo0110.blog.jp/archives/8914916.html
これ、凄く同感です
ステート奪われるようにするんなら変数弄られることも想定すべきだとは思う
その対応方法としてペナるってのは個人的にあまり好きじゃない
デフォcommonで使われてる以上「この変数は好きに弄ってもいいんだ」と判断する人は確実にいるわけで

そもそも専用or偶然でピンポイントな値にセットされたら機能しない対策じゃないですか
そういうのが嫌で自分はconstに変数保存してたんですよねー

ってことでみんなもコード式変数保存しようぜ!
1ステコンで全変数を簡単に保存できるぞ!

ニコニコ

CATEGORY未分類
COMMENT0
諸事情でMUGEN動画はサブ垢で上げていこうかと
ってことで旧アカをフォローしても今後意味ないです

paramsで使用する変数を指定する

CATEGORYmugen
COMMENT0
http://melon-eat-pierrot.seesaa.net/article/451678866.html
だそうです
これを真似してウチのコード書き換えればいいんじゃないですかね

念のため補足
%cを使うと文字を出力できるんで、それを使ってコードを可変式にしましょうって話
DTCに%c指定してparamsに適当な値入れてみれば分かるかと

%n

CATEGORYmugen
COMMENT0
前にも記事書いた気がするけど、なんかコードって%nに比べて重いのよね
そりゃ自前で用意したコード無理やり実行させてるわけで、その分処理増えるし重いわな
ってことで1バイトの書き換えで事足りるならわざわざコード使うより%nの方が軽くなるよ

<追記>
そもそも文字出力自体が重いらしい…?
別の実行方法探した方がいいのかもね

コード改善案

CATEGORYmugen
COMMENT0
正直var(0)の値取ってきた後は用済みなんだからvar(1)に代入する必要ないよね
var(0)でアドレス指定して戻り値をvar(0)に代入する方が無駄が減る気がする
つっても一時変数は5個用意してるからそこまで必死に節約する意味ねーわ

コードで使用する変数の置き換え

CATEGORYmugen記述
COMMENT0
画像つきで説明した方が分かりやすいかな?
ということでもう少し真面目に解説

まとめ再更新

CATEGORYmugen
COMMENT0
アセンブリのメモが盛大にミスってた
何度も申し訳ない…

以下、使用変数の変更方法
add eax,1111aaaa
sub eax,11119c6a

0x1111aaaa - 0x11119c6a = 0xE40(3648)ね
こんな感じの命令でvar(0)の値を引っ張ってくるよう指定してるから、ここを適当に書き換える
movで指定してるとこもあるんでそこは注意
アセンブリを機械語に変換する方法はアドレス取得テンプレで説明してるんでそっち見てくだされ

コードまとめ更新

CATEGORYmugen
COMMENT0
triggerと説明がミスってたので修正
ついでに公開場所をリンクへ移動

特定ヘルパーの変数保存したいなら一番下2つの使えばできるんじゃない?
var(0)にアドレス入れるとそのアドレスを持つプレイヤーの変数保存するコードだし

コード式アドレス取得テンプレ公開

CATEGORYmugen
COMMENT0
しばらく前から作ってて放置してたけど、やっとこさ完成
A-Godmanに乗っけたのを抜粋&改変しただけ