FC2ブログ

試合開始直後のctrlの挙動

今手元で弄ってるキャラの挙動が試合開始後だけおかしいんだよね
該当箇所の記述(行動許可条件を統合してる箇所)がこんな感じ

[state ];行動許可flag判断
type=null ;演算子を用いて代入している
trigger1=roundstate=2;試合中
trigger1=ctrl=1;ctrlできる状態(各技のステートで0にしている)
trigger1=(var(59)&1);AIが入っている
trigger1=statetype!=A;空中にいない
trigger1=var(59):=(var(59)|2);おめでとう!行動していいよ!
ignorehitpause=1

この直下で常時ステ抜けしてdef -1の処理に移っている(def -1で行動決めて個別ステートへ)

こんな感じなのだが、AIが早めに入る(「fight」のコールの途中?)と個別ステートに行った後にキャンセルできない技にも関わらず勝手に別の技へとキャンセルしだす事がある
AIONを遅延すればするほどこれの発生率は下がる+不本意なキャンセル発生時はかならずv59^2のフラグは立っている(=上記述の条件を全て満たしている)という事だから、試合開始直後に内部処理でctrl=1にされる事があるのだろうか?
AIがOFFなら確定で満たさない条件なので

ここ軽くググっても出てこなかったのよな
ただctrlを勝手に1にできる機構がないキャラがctrl条件のAIを動かすためには、最初の初動のどこかでctrlが入るはずなんだよね
だから試合開始直後にctrlをONにする内部処理が行われていてもおかしくないよな、と

まとめると、[fight!]のコール後ら辺に勝手にctrl=1にされるタイミングがある? → そのタイミングまでに行動しているキャラクターはctrlを想定していないタイミングで建てられる事によるAIの無理やりキャンセルが発動する と

ただ、広く用いられているcmd型やhelper型だと試合開始後にAI入るはずだし気にする機会はないんじゃないかなぁ
自分はcmd型は起動が遅れるケースあって気になる+相手が5150固定しているとAI起動できない裏目から保険が欲しくて、helper型はわざわざAI入れるためにhelper出すのもな、という感じなのでcmd型に待ちAI併用させてます
相手のmovetypeがA(相手AI入ってるんじゃねーの)の時とダメージ感知で行動始めるタイプ、某隣のカインさんで普通カインが普通にフライングしていたのも多分待ちAIが機能したからだと思います
上のキャラはさらにroundstate=2の時間が一定時間(1秒未満)を超えたら即AIが入る感じなので、上記の想定外のキャンセルに引っかかりやすいと
スポンサーサイト



コメント

非公開コメント

プロフィール

illness

Author:illness
格ゲーはやったことないです

検索フォーム

ブロとも申請フォーム

QRコード

QR