ご報告ありがとうございます。
どのプラットフォーム・バージョンをお使いでしょうか。
こちらで試してみたところ、Linux (gcc-4.4.4), Zaurus (gcc-2.95.2) では一回目から毎
回異なる値が得られます。
Windows (Visual Studio 2008 C++ 付属の cl) の場合は、おっしゃるように一回目の値が
ほぼ同じ値になります。乱数のシード値に time(NULL) の値を使っていますが、どうも
cl ではシード値が近い値の場合に、最初の乱数値も近い値になってしまうようです。
rnd で指定する乱数の最大値を大きくすれば、一回目からほぼ同じですが異なる値が返っ
てくると思います。
以下のどちらかの方法で回避してください。
(1) 一回目の rnd の結果は捨てる
(2) ScriptParser.cpp の
srand( time(NULL) );
の直後に
rand();
を挿入し、ONScripter 側で一回目の乱数を捨てる
次回のリリースで (2) の修正をする予定です。