MUGEN State Controller

MUGENで良いキャラを作るポイントは… 「良いキャラのソースコードを読む」->「コピペ」->「記述を理解」->「自分でアレンジ」
MUGEN AppendToClipboard

Type = AppendToClipboard

デバッグ > クリップボードに変数・トリガー等の値を表示 | 実装されたバージョン: 2002.04.14 | 対象: クリップボード

基本的にはDisplayToClipboardと同じで、併用も可能。

DisplayToClipboardは、すでにメッセージが存在する場合、上書きされますが、こちらは改行して表示されます。

直前の値と見比べることができますが、頻繁に値が変わる場合、却って見にくくなってしまいます。

関連するステートコントローラー: DisplayToClipboard

パラメーター

Text = "所定の文字列" (文字列)

画面に出力したい文字列を、定められた書式に従って指定します。

基本的には""で括った文字列がそのまま出力されます。引数の値を表示させたり、特殊な文字を表示させる場合は下記のような記述をます。

書式 内容
\n 改行します。
\t タブを表示します。
%% %を表示します。
%d 引数の値をint値で表示します。
%f 引数の値をfloat値で表示します。
%o 引数の値を8進数で表示します。(Version1.0より前で使用可能)
%x 引数の値を16進数で表示します。(Version1.0より前で使用可能)
%u 引数の値を負の補数表現で表示します。(Version1.0より前で使用可能)
%c 引数の値を文字で表示します。(Version1.0より前で使用可能)
%p 引数の値をポインタで表示します。(Version1.0より前で使用可能)
%n 引数の値のメモリアドレスに、そこまでに出力した文字数(4byte)を書き込みます。パソコンを破損させる危険性があるバグです。わからない人は絶対に使用してはいけません。(Version1.0より前で使用可能)
%s 引数の値を文字列で表示します。(Version1.0より前で使用可能)
省略不可
Params = 引数1, 引数2, 引数3, 引数4, 引数5, 引数6 (文字列)

ここで指定した値が、指定順に、textで記述した%d、%fと置き換わります。6つまで指定可能。

text中の%d、%fの数と、paramsの数は、一致させる必要があります。データ型は、一致しなくてもエラーとはなりませんが、正しい値が返されません。

省略時のデフォルト値: ;なし
Persistent = ステートを再度読み込むフラグ (整数)

Persistentの値をNに設定した場合、設定したステートコントローラーはNフレーム後にもう一度実行されます。0の場合、トリガーが成立しても1回しかステートコントローラーが実行されません。※トリガーは読み込みますが、パラメーターは完全に無視されます。

Persistentが管理されている配列が初期化される条件は、ステート処理開始(ChangeState,SelfState,TagOut,TagInなどでステート移動)でTime=0の場合に実行されます。また、初期化される個数が決まっており、10個のPersistentしか初期化されません。ですので、Persistentの多様やChangeStateでの使用は避けましょう。もし、特定のステートが実行されない場合は、この仕様を疑ったほうがいいかもしれません。

その他にも、var,fvar,sysvar変数は利用できない・常時ステート([StateDef -1],[StateDef -2],[StateDef -3])では、常にPersistent=1の状態・IgnoreHitPause=1が設定されていた場合、アドレスを書き換え(Alive偽装・Persistent偽装?など)・バージョンによる動作の違いなどバグが満載です。

結論、Persistentの値が0以外の場合は省略して、TriggerTimevarを使って管理した方がいいです。

最小値: 0 , 最大値: 128
省略時のデフォルト値: 1
IgnoreHitPause = HitPauseを無視するフラグ (0か1)

IgnoreHitPauseの記述されたステートコントローラー処理がHitPause(ヒット停止時間)を無視して実行されます。基本的に1に設定しておくべきパラメーター。

パラメーター自身にvar,fvar,sysvar変数は利用できません。

攻撃を当てたり受けたりした時にVarSetしたり、Explodの演出をずれないようにしたり用途はさまざま。

最小値: 0 , 最大値: 1
省略時のデフォルト値: 0

仕様・バグ・エラー・変更点

Version1.0以上 %o,%x,%u,%c,%p,%nが使用不可能になりました。
Version1.0以上 %sを記載しているとフリーズします。
Version1.0より前 Paramsは5つまでしか指定できません。
Version1.0以上 Paramsを6つまで指定できるようになりました。

省略した時のデフォルト値

  • [State ,AppendToClipboard]
  • Type = AppendToClipboard
  • Trigger1 = 1
  • Text = ?
  • Params = ;なし
  • Persistent = 1
  • IgnoreHitPause = 0

コードサンプル

IDの確認

  • [StateDef -2]
  • [State ]
  • Type = AppendToClipboard
  • Trigger1 = 1
  • Text = "MyID:%d, EnemyID:%d"
  • Params = ID, EnemyNear,ID

変数の確認

  • [StateDef -2]
  • [State ]
  • Type = AppendToClipboard
  • Trigger1 = 1
  • Text = "v0:%d fv0:%f"
  • Params = var(0), fvar(0)

コンボの確認

  • [StateDef -2]
  • [State ]
  • Type = AppendToClipboard
  • Trigger1 = 1
  • Text = "HC:%d UHC:%d GHVHC:%d EGHVHC:%d vC:%d"
  • Params = HitCount, UniqHitCount, GetHitVar(HitCount), enemy,GetHitVar(HitCount), var(0)

パラメーターの読み込み順

Text(?) => Params(1, 2, 3, 4, 5, 6) => Persistent(?) => IgnoreHitPause(?) =>


*バージョンや実行環境,パラーメーターの指定の仕方によって、読み込まれる順番が変わる可能性があります。参考程度なものだと思ってください。
公開日:
最終更新日:
目次
この記事は役に立ちましたか?
ご意見・ご要望はございますか?
記事に不備があった場合

不備があればGithubTwittersuteadddayov@gmail.comにご報告下さい。

記事を編集してみませんか?

ページ編集・翻訳にご協力いただける方を募集しております。お気軽にご連絡下さい。

We are looking for someone who can cooperate on page editing / translation. Please feel free to contact us.