日常の戯言とかなんとか

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- : スポンサー広告 :
Pagetop

【親捏造の利用法】プレイヤーアドレス取得①

この記事は親捏造は何かということを理解した人向けに書いてあります。
親捏造そのものについてはこちらのキャラにまとめてあります


親捏造を用いることで、任意のアドレスの数値を操作できるようになりました。
しかし、前回の解説のタイプの親捏造では、相対的な位置関係から推定するため極めて限定的な操作しかできません。
そこで、広い範囲の数値を操作するためにプレイヤーアドレスを取得して、絶対的な基準となるアドレスを得る必要があります。今回はその方法について解説します。

まず、プレイヤーアドレスがどこにあるかです。
まず1つとして、ヘルパーのparent/root参照先があります。親捏造はparentのアドレスをずらして色々参照する技術です。つまり弄る前のparent参照先を参照先すればそのヘルパーの親のアドレスがわかります。

parent参照先は、プレイヤーアドレスから0x2620後ろにあります。そのためparent参照先を+0x1700したうえでparent,var(56)で参照することができます。root参照先はvar(57)です。

ここで注意しなければいけないことは、例えば本体のアドレスを取得する際、本体が直接出したヘルパーのparent参照先を変化させた場合は本体のparent参照先を取得してしまいます。もちろん本体にparentはないのでこれでは無意味です。
なので、さらにもう一段階ヘルパーを生成して、そこで親捏造を行いましょう。
また、ステコンオバフロで数値を増やすため、元のparent参照先の数値によっては取得失敗します。なので、複数のヘルパーで取得を行うようにするとよいでしょう。また、取得に失敗したヘルパーはすみやかに消去しないとエラーの原因となるので注意が必要です

この方法のプレイヤーアドレス取得法の具体的記述例が見たい人は親捏造式時止め解除テンプレを参照してください



2014-01-04 : MUGEN解説 : コメント : 0 : トラックバック : 0
Pagetop

邪眼キラー

stateno!=◯◯といういわゆる邪眼式ステ抜けを突破するための技術です。
邪眼式ステ抜けを採用しているキャラは多く、かつては上位神への登竜門というような扱いだったそうです。

邪眼式ステ抜けとは、以下のような記述のことを指します。
[state -2]
type = selfstate
trigger1 = ishelper(3000)
trigger1 = stateno != 3000
value = 3000
ignorehitpause = 1

これを突破するにはどうすればよいか考えてみましょう。この記述が実行されないようにするにはhelper(3000)のstatenoが3000であればいいということです。
なのでp2stetenoやtargetstateで3000に送ってやれば(一般的には永続タゲや混線でリダイレクトしてtargetstateのvalueにtarget,statenoを指定する)このヘルパーのステートを奪うことができます。

しかし、変数弄りやアーマー貫通砲などの即死記述がたまたまこちらのstatedef 3000にあればいいのですがそれ以外の場合はせっかくヘルパーを奪えたのに即死記述を読めなくなってしまいます。それを解消するために、相手がこちらの3000にいるときに即死記述のあるステートに送るような記述が必要です。そのための記述の一例が以下のようなものです。

[statedef 3000]
[state ]
type = changestate
trigger1 = name != "FT-kfm";←自キャラの名前
value = 654654654 ;←自キャラの即死ステート
ignorehitpause = 1
persistent = 256

こうすることで相手(name!=自キャラ)の場合は即死ステートに送ることができます。
これが邪眼キラーの原理となります。
そしてここからが邪眼キラーの大変なところですが、今の記述を追加しただけでは相手のstatenoが3000のときにしか対応できないので、汎用性を向上させるためにもっと多くのステートを用意しなければいけません。理想的には0~2147483648まで邪眼キラーステートを用意すればいいのですが、例えば上の例の場合1ステート132バイトなので全ステート用意すると260GBものファイルサイズになってしまいます。そのため、読み込み速度との兼ね合いでステート数を減らし、邪眼式ステ抜けを採用しているキャラの記述を見てその番号のみをピンポイントで用意するという方法が一般的です。

2013-08-14 : MUGEN解説 : コメント : 7 : トラックバック : 0
Pagetop

あゆあゆキラー

あゆあゆキラーとは
コモンステートからhitfalldamageを消去してあってアーマー貫通砲が効かないキャラを即死させるために編み出された混線利用型即死攻撃です。あゆあゆを倒せたからあゆあゆキラーです。

では記述例を見てみましょう。実は記述そのものはアーマー貫通砲とほとんど同じです。

まずこれが混線で奪ったヘルパーに読み込ませるステコンです
[state ,あゆあゆキラー]
type = projectile
triggerall = ishelper
trigger1 = !root,numprojID(10000)
attr = S,NA ;ここは自分の被弾ヘルパーの属性に合わせて適当な値にしてください
projid = 10000
projanim = ifelse(random%2, anim, (random %5 + 1) * 200)
projpriority = 7
projremove = 1
projremovetime = 30
projmisstime = 1
postype = p2
offset = 0, 500
sparkxy = 999, 999
pausetime = 0, 2
p1stateno = ifelse(gametime%2 , random*1000000, 110)
pausemovetime = 999999999
supermovetime = 999999999
ignorehitpause = 1

そして攻撃用のヘルパーなりあゆあゆキラーを仕込む大魔法のステート内なりにこのような記述を置きます。
[state ,あゆあゆキラー用proj]
type = projectile
triggerall = !root,numprojID(20000)
trigger1 = enemy,stateno = 110
attr = SCA,AA,AT,AP
projid = 20000
projanim = 10000 ;全画面攻撃推奨
projpriority = 7
projremove = 1
projremovetime = 30
projmisstime = 1
sparkxy = 999, 999
damage = 9999999999
fall.damage = 9999999999
pausemovetime = 999999999
supermovetime = 999999999
ignorehitpause = 1

こちら側のステートの記述はアーマー貫通砲の記述と一緒で問題ありません。
ただアーマー貫通砲と違いMUGENの内部処理を利用しているので少々話が難しくなります。

パンドラキラーで相手の無敵を剥がすまでは同じです。しかし、そこからが違います。
攻撃が命中した瞬間、食らいステートのmovetypeに関わらず内部処理によってmovetype=Hになります。通常はこのあと改造したコモンステートにある食らいステートで
[Statedef 5000]
type = S
movetype= I
physics = N
このようにmovetype=Iに戻されるためダメージは通りませんが、ここで混線を使い、相手のステートをp1statenoで指定したようなでたらめな番号に変えてやります。するとmovetype=Iに戻していたのが読み込まれなくなり、movetype=Hのままとなりダメージ処理が行われます。これにより相手に大ダメージを与え即死させます。
これにより倒せる相手としてはあゆあゆ(ただしこいつは地味に難しい)、ミズグモ、神咲夜(ただし要hitby探査)などがいます。hitbyさえあればかなり多くのキャラを倒せるようになるため非常に強力な即死だといえます。上位神を目指すならぜひとも習得しましょう
2013-07-31 : MUGEN解説 : コメント : 0 : トラックバック : 0
Pagetop

アーマー貫通砲

アーマー貫通砲とは
パンドラキラーによって相手に攻撃を当てて落下ダメージを蓄積させ、混線によって相手を落下ステートに送り込み、落下ダメージによって即死させることです。
本体は常時無敵のヘルパーアーマーキャラを倒す手段として開発されたので「アーマー貫通」砲ということらしいです。

では記述例を見てみましょう

まずこれが混線で奪ったヘルパーに読み込ませるステートです
[state ,アーマー貫通砲]
type = projectile
triggerall = ishelper
trigger1 = !root,numprojID(10000)
attr = S,NA ;ここは自分の被弾ヘルパーの属性に合わせて適当な値にしてください
projid = 10000
projanim = ifelse(random%2, anim, (random %5 + 1) * 200)
projpriority = 7
projremove = 1
projremovetime = 30
projmisstime = 1
postype = p2
offset = 0, 500
sparkxy = 999, 999
pausetime = 0, 2
p1stateno = ifelse(root,gethitvar(fall.damage) , 5110, 110)
pausemovetime = 999999999
supermovetime = 999999999
ignorehitpause = 1

そして攻撃用のヘルパーなりアーマー貫通砲を仕込む大魔法のステート内なりにこのような記述を置きます。
[state ,アーマー貫通砲用proj]
type = projectile
triggerall = !root,numprojID(20000)
trigger1 = enemy,stateno = 110
attr = SCA,AA,AT,AP
projid = 20000
projanim = 10000 ;全画面攻撃推奨
projpriority = 7
projremove = 1
projremovetime = 30
projmisstime = 1
sparkxy = 999, 999
fall.damage = 9999999999
pausemovetime = 999999999
supermovetime = 999999999
ignorehitpause = 1


まず、パンドラキラーの項目でも述べたように110に相手のステートを返して無敵を剥がします。そのタイミングでこちらはfall.damageに膨大なダメージを設定したprojを当てます。これにより相手本体にfall.damageが蓄積されました。次に、奪ったヘルパーによって相手本体を5110に返します。
common1.cnsのstatedef 5110には以下のような記述があります。

[State 5110, 4]
type = HitFallDamage
trigger1 = Time = 0

HitFallDamageは実行されると落下ダメージを受けるので、fall.damageを蓄積された相手は即死します。このようにして即死させることができます。
コモンステートの穴をついた即死であるがゆえにアーマー貫通砲で倒せるキャラは非常に多く、神オロチや守護者エミヤ、氷河意思などが代表的です。これを使いこなせると神キャラとして大きく前進するでしょう。
2013-07-30 : MUGEN解説 : コメント : 0 : トラックバック : 0
Pagetop

混線の種類

この記事では混線の基本的な原理や作り方について書きました。
しかし、これだけでは干渉できるのは1つの領域だけになってしまうためさほど強力ではありません。
そこで、今回はより広い領域をターゲットにできるような方法を紹介したいと思います。

①多重混線
下図のように1つのヘルパーで複数のターゲットを取って、干渉できる範囲を広げたものです。1つのヘルパーで最大8個までターゲットが取れます。
8タゲ混線
ただし、ターゲットが複数ある時にステコンのパラメータにtargetリダイレクトを使うとMUGENが強制終了される場合があるのでtargetリダイレクトは使用してはいけません。もし使用する場合は一度varsetなどでtargetリダイレクトの数値を変数に代入して、それをパラメータに指定するようにしましょう。


②多重混線の全体化
上で紹介した多重混線を複数のヘルパーで行い、4~59全てのヘルパー領域に対してターゲットをとれるようにしたものです。ヘルパーの配置はこのようになります。
多重混線
相手のヘルパーが出される前にこちらのヘルパーで全ての領域を埋めて、混線が完成したところで相手のヘルパーを出させます。そうすることで相手の全てのヘルパーをターゲットにすることができます。


③並列混線
1つのヘルパーで1つのターゲットを取り、それを全ての領域に対して行うようにしたものです。
並列混線
この方法の利点は、targetリダイレクトが使え、相手のヘルパーの情報収集が容易に行えるようになることです。また、親変更を用いて変数を書き換える際にもターゲットが1つのみのほうが都合がいいです。


④並列逆混線
並列混線とは逆に混線ヘルパーをターゲットよりも後ろの領域に配置したものです。
逆混線
この方法はターゲットのヘルパーよりも後に混線ヘルパーの処理が行われるため、ステート探査などの高度な情報収集を行う際に便利です。しかし、相手のヘルパーよりも後に処理が行われることから親変更で変数を弄るときに不利になります。なので一般的に並列混線と組み合わせて使われており、この方式は単体ではほとんど使われていません。


キャラによって工夫されているところはありますが基本的にはここで紹介した方式に大別されると思います。


2013-07-02 : MUGEN解説 : コメント : 2 : トラックバック : 0
Pagetop
« 前のページ  ホーム  次のページ »

プロフィール

@ひたち

Author:@ひたち
「@」を忘れるべからず
読みは普通に「ひたち」でいいんじゃないの

検索フォーム

アクセスカウンター

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。