Event-EI:インタプリタ例外情報強化スクリプト


トップページへ | RGSSスクリプトへ

Event-EI インタプリタ 例外情報強化スクリプト

最終更新:2008/09/03 01:38:50

このスクリプトは、イベントやキャラクターの移動ルートなどでのスクリプトでエラーが発生したときに、詳細情報を提供するスクリプトです。

こんな方にお勧めです

イベントコマンド スクリプトを多用されている方

このスクリプトは、イベントで問題が発生しても場所を特定しやすくなり、エラーの内容も詳細に表示します。このため、今までよりも更に楽にデバッグが行えるようになり、節約した時間を新たなことに利用できるようになります。

イベントにあるスクリプト実行中のエラーで困っている方

このスクリプトを導入してから、同じようなところでエラーを再現してみてください。エラーの詳細情報がわかるため、どこに問題があるか突き止められるようになります。

▲このページの先頭へ

このスクリプトの機能紹介

例外情報の詳細表示

イベントコマンド、スクリプトで何らかの問題が発生したとき、発生した例外がSyntaxErrorだったとします。 デフォルトのスクリプトでは、次のようなダイアログが表示されるだけです。

スクリプト実行中にSyntaxErrorが発生しました。
※注:SyntaxErrorでなければ、例外発生時のメッセージが削除されていないだけまだましです。それでも場所が全然わからないのですが…

これではスクリプト上でSyntaxErrorが発生したことしかわかりません。中規模以上の作品を作成しているとき、またはイベントコマンド スクリプトを多用しているときなどの場合では、何処に不具合があるのか探すだけでとても大変なことになります。あまりの情報の無さに悲鳴をあげることでしょう。

また、スクリプトの不具合などで質問するときも、情報が足りないために、回答が得られないことが多く、途方に暮れることになります。

Event-EI インタプリタ 例外情報強化スクリプトを導入した後では、ダイアログは次のようになります。

スクリプト実行中に ScriptSyntaxError が発生しました。(eval)** Map Event Error: script: (以下略)

この例では、MAP001( ID:001 ) の EV004( ID:004 )の1 ページ目のスクリプトでScriptSyntaxError(※1)が発生していることを示します。スクリプトおよび、問題の詳細も表示されますので、直ぐに修正に取り掛かることができます。

同様に、条件分岐のスクリプトキャラクタの移動ルートによるスクリプトから発生するエラーにおいても詳細情報を取得することができます。

共通スクリプトでも、エラー発生時のログを取得しますが、このスクリプトでも詳細情報をログに残しますので、後でエラーの場所を調べる事ができます。

※1 ScriptSyntaxError
RGSSでは、SyntaxErrorの詳細情報をすべて削除してしまうため、このような例外が用意されています。

イベントコマンド スクリプトによる無限ループ検出

イベントが意図せずにいきなり停止して戸惑った事はありませんか?このような問題があるスクリプトも検出してエラーにしてしまうこともできます。

スクリプト実行中にRuntimeErrorが発生しました。 (eval)** Map Event Error: script:  return false  map_name:MAP001 mapid: 1 common_event_id:0 player_x: 6 player_y:9 event_x:0 event_y:0 event_id:2 event_name:EV002 pages:1 list 11 / 42 depth:0  ** Exception: Does this script assume the thing repeated until satisfying it?

この例ですと、MAP001( ID:001 )の EV002( ID:002 ) の 1ページ目のスクリプトで 無限ループに陥る可能性があるスクリプト(この例の場合 return false)を実行していることを示します。これが意図した操作(条件を満たすまで繰り返す)でなければ、修正を行う事ができます。

※この機能は、デフォルトで無効(XP版のみ)にしています。条件を満たすまで繰り返す意図があるスクリプトがあるかもしれないからです。

※VX版ではデフォルトで有効になっています。

ハングアップ検出

スクリプト上でハングアップが発生したとしても、詳細情報を取得し、何処で発生したかを突き止めようとします。この機能によりハングアップの原因を追究しやすくなるでしょう。

※VX版ではHangupが廃止されているため、検出を行いません。

インスタンス変数の状態

不具合の原因が分からない場合に、エラー発生時のインスタンス変数の状態を出力させることもできます。

※重大な注意事項※

ゲームを配布される前にからなずこの機能が無効になっていることを確認してください
このオプション設定は、内部の状態を出力するものです。
配布した作品でこのオプションが有効になっていた場合、異常終了時に内部の情報が流出する恐れがあります。

このスクリプトによって上記のような問題が発生したとしてもWHITE-FLUTEは一切責任を負いませんのでご了承ください。

▲このページの先頭へ

導入の手順

Event-EI インタプリタ 例外情報強化スクリプトを導入する手順は次の通りです。共通スクリプトは、rev-11以降が必要となります。

  1. はじめてWF-RGSS-Scriptを導入する場合は、共通スクリプトを導入します。 旧いバージョンの場合も同様に導入が必要な場合があります。
    「WF-RGSS-Scripts共通スクリプト導入方法」へ
  2. Event-EI インタプリタ 例外情報強化スクリプトScene_Battleより下、Mainより上に導入してください。
▲このページの先頭へ

修正履歴

  • rev-6.1 (2008-9-3)
    • (VX版) 自動実行コモンイベントのセットアップに失敗する不具合を修正
  • rev-6 (2008-5-22)
    • RPGツクール(R)VXに対応しました。
  • rev-5 (2008-5-18)
    • 依存性を低減しました。より導入しやすくなっています。
  • rev-4 (2006-6-30)
    • イベントコマンド スクリプトで例外が発生したときインスタンス変数の状態を取得できるようにしました。
      ※デフォルトでは無効にしています。
  • rev-3 (2006-6-3)
    • スクリプト上でハングアップしたとき、詳細情報を可能な限り出力するようにしました。
    • スクリプト上でのGraphics.update の検出する機能を追加しました。
      ※デフォルトでは無効にしています。
    • インタプリタの動作速度を若干速くしました。
  • rev-2 (2006-5-27)
    • イベントコマンド スクリプトで意図しない無限ループを検出できるようにしました。
      ※条件を満たすまで繰り返す事を想定していることがあるため規定でこの機能は無効となっています。
    • 例外発生時のログ記録機能は、共通スクリプトに移動しました。共通実行スクリプトの編集は不要となります。
  • rev-1 (2006-5-23)
    • 初版公開
▲このページの先頭へ

トップページへ | RGSSスクリプトへ
名前: コメント:
■コメント一覧■ 件数=0 最新100件のみ表示
WHITE-FLUTE Web.
URIhttp://www.whiteflute.org/
© 2010 WHITE-FLUTE all rights reserved.
Powered by Gumiki A2S ver1.01