S.E.E.D(Shiori Event Emulator for Developers、[[SSP Bugtraq>http://ssp.shillest.net/etc.shtml]])を使うと、ゴーストに任意のイベントを送ることができます。~
AYAやYAYAでは、イベントスクリプトと関数はほぼ同じ形で辞書中に記述されますが、関数はイベントではないため、S.E.E.Dから直接動作させることはできません。~
デバッグ時など、手軽に関数の動作チェックをしたい時のために、~
S.E.E.Dから直接関数を発動させられるようにするイベントを埋め込むと、ちょっとだけ便利です。
OnTestFunction
{
_funcname = reference0
_i = 1
_param = IARRAY
_paramstr = ''
for _i=1; _i<8; _i++
{
_paramstr = EVAL('reference'+TOSTR(_i))
if _paramstr == 'eof'
{
break
}
if _paramstr == ''
{
_paramstr = '""'
}
if ( ISINTSTR(_paramstr) == 1 || ISREALSTR(_paramstr) == 1 ) /
&& SUBSTR( _paramstr, 0, 1) != '"' /
&& SUBSTR( _paramstr, STRLEN(_paramstr)-1 , 1) != '"'
{
_paramstr = '"' + _paramstr + '"'
}
_param ,= _paramstr
}
EVAL(_funcname+'('+TOSTR(_param)+')')
}
このイベントを辞書に追加して、S.E.E.Dから
Ev=OnTestFunction
ref0=関数の名前
ref1=1番目の引数
ref2=2番目の引数
…
ref7=7番目の引数
をゴーストに送ると、関数を直接動作させることができます。~
引数が7個に満たない場合、最後の引数の次の欄に、「eof」と書くことで、引数の個数を制限できます。
*** 使用上の注意 [#n276e73d]
-明示的に文字列型として与えたい引数は、「""」でくくって与えてください。
-「eof」という文字列を引数に与えたい場合は、「""」でくくって与えてください。。
-「eof」という文字列を引数に与えたい場合は、「"eof"」としてください。