SpawnScriptDebugger()

実行しているスクリプトのデバッギングのために、スクリプトデバッガーを起動します。

void SpawnScriptDebugger();

Description

この関数が呼び出されると、スクリプトデバッガーが実行されます。

スクリプトがデバッギング情報と一緒にコンパイルされていない場合、この関数は何も行いません。

この関数を実行させるためには、デバッグ情報と一緒にスクリプトをコンパイルする必要があります。

これを行うためには、ツールセットのツールメニューを開いてオプションを選択し、それからスクリプトエディタを選びます。そして、"スクリプトをコンパイルする時にデバッグ情報を作成する"をチェックします。

SpawnScriptDebugger関数を使用したいスクリプトは、先のオプションがチェックされた後にコンパイルしなければなりません。そうでなければ、それらのスクリプトを手作業で再コンパイルするか、それ用のモジュールを作成するかです。



Remarks

デバッガーによって多くのことが可能になります。スクリプトにおける変数の変化をステップ毎に記録したり、スクリプトで使用されているそれぞれのオブジェクトのオブジェクトidを見ることもできます。

descriptionに詳述している事は別にして、この関数をゲーム内で試す時に効果を得るためには、まだ必要な事があります。

NWNがインストールされているディレクトリ内のutilsフォルダに移動し、DebugServerという名前のプログラムを実行して下さい。

画面下部のタスクバーにプログラムが追加されること以外には何も起きないでしょう。

Neverwinter Nightsをウィンドウモードで起動していることを確認して下さい。

そのためには、インストールされているディレクトリ内にあるnwn.iniファイル中に以下の2行が記述されている必要があります。

FullScreen=0

AllowWindowedMode=1

また、デスクトップの解像度がNWNの解像度より高いことも確認しなければなりません。

例えば、デスクトップの解像度を1024X768に設定し、NWNの解像度を800X600に設定します。

何が起こっているかを道筋に沿って見ることができるサンプルスクリプトを以下に作成しました。

基本的には、それぞれのオブジェクトのオブジェクトidの確認や、変数に割り当てられている値の記録などができます。

このサンプルスクリプトは、スクリプト内で何が起こっているかをステップ毎に確認することができる貴重なスクリプトです。

SpawnScriptDebugger関数を使用しないときには、スクリプトから削除するかコメントアウトすることを確実に行って下さい。

その状態でスクリプトを実行し、かつDebugServerが起動していなければ、SpawnScriptDebugger関数によって数秒の間ゲームが遅くなるということもなくなるでしょう。

また、DebugServerが起動していて、デバッグのためのコンパイルがされていないスクリプト内にSpawnScriptDebugger関数がある場合、デバッグセッションが開始され、すぐに終了するでしょう。

デバッグメッセージスクリーンがフラッシュするのに気付くでしょうが、それがそうです。

終いには、デバッグスクリーンの情報を読みとることもできませんが、utilsフォルダー内で、デバッグ情報がまとめられたLOGという名前のテキストファイルを見つけることができるでしょう。


Version

1.30

Example

//このスクリプトを機能させるためには、上に書いた指示に従って下さい。
//上に詳述したように、デバッグ情報と一緒にコンパイルしなければなりません。

void main()
{
//デバッガーを起動します。
SpawnScriptDebugger();

//デバッガー内で、PC上のいくつかの情報が得られるでしょう。
object oPC=GetFirstPC();

SendMessageToPC(oPC, "Hello");

//デバッガー内で、sNameの値を見ることができるでしょう。
string sName=GetName(OBJECT_SELF);

SendMessageToPC(oPC, sName);

}

See Also

categories: Debug Functions


author: Charles Feduke, editor: Lilac Soul, JP team: katsu794
Send comments on this topic.