Added: improved public debug console
この機能によってスクリプティング、デバッグがとても簡単になった。コンソールはエディット中にミッションをプレビューしたとき、Escを押すと開ける。これによりミッションの変数やオブジェクトを素早く変更出来るようになった。
_somevariable = 123; hint format ["%1", _somevariable]; //"123"を表示 _somevariable = objNull; hint format ["%1", _somevariable]; //"<null-object>"を表示 _somevariable = compile "a = b"; hint format ["%1", _somevariable]; //"{a = b}"を表示 _somevariable = call {}; hint format ["%1", _somevariable]; //"<null>"を表示 _somevariable = nil; hint format ["%1", _somevariable]; //"any"を表示ヒントは数秒間表示された後、消える。また、連続してhint命令をした時、それ以前に表示されていたヒントは上書きされる。よって複数回に渡って出力が必要なら、diag_log命令を – diag_log format [“%1″,(値)];のように使おう。diag_logは.rpt (reportの略?)ファイルに出力され、毎回diag_log命令のたびに新しい行に書かれる。ファイルは(注:デフォルトでは)C:\Users\[ユーザー名]\AppData\Local\Arma 3\arma3_[更新日時].rptに置いてある。
_somevariable = call {}; diag_log format ["%1", _somevariable]; _somevariable = nil; diag_log format ["%1", _somevariable]; //.rptの出力結果: //"<null>" //"any"デバッグのためにformatをhintやdiag_logで使うのは大変重要だ。返り値がanyや<null>でも可視化されるためだ。 <null>は値がnullであることを示し、先の例のcallは何も返さなかったためにnullを返した。anyは値が未定義であり、いかなる値の形にも成りうることを示す。例でnilを代入しリセットしたためにanyが返された。.rptファイルはスクリプト構文のエラーも示してくれる。スクリプトがエラーに直面した場合、スクリプトは中断される可能性があるため、エラーがないか確認する必要がある。次にちょっとおもしろいことをしてみよう。
//空中で泳がせる player playMove "AbswPercMrunSnonWnonDf"; //プレイヤーを非表示に player hideObject true; //オブジェクトすり抜け null = [] spawn { while {true} do { { player disableCollisionWith _x; } forEach ((position player) nearObjects 100); sleep 1; }; };(注:現在では様々な仕様変更により一部KK氏が意図した挙動を示しません)
ところで、上の例に使われているsleepをデバッグコンソールで使ってみたいと思ったなら、spawnを使ってこんな感じにnull = [] spawn {…スクリプト…};カプセル化する必要がある。理由としてデバッグコンソールはcallを使っているため、処理の遅延は使えないのだ。詳細はまた後で紹介しよう。
Enjoy,
KK
KK's blog – ArmA Scripting Tutorials: Getting Started by Killzone Kid
Translated by POLPOX
Translated by POLPOX
補足
Eden Editorにおいては、.rptファイルは画面左上のメニューから素早くアクセスすることができます。
.rptファイルは「arma3_YYYY-MM-DD_HH-MM-SS.rpt」の形で保存されているので、コンソールなり何なりでdiag_logを実行した後、最新の日付の物を探して開いてみましょう。
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。