;// testRand.ks - ランダマイザ プラグイン テスト ;// since 2004/09/02 ;// rev. 2004/09/03 1.1 ;// [iscript] class RandomPlugin extends KAGPlugin { var randomGenerator; function RandomPlugin() { if ( seed !== void ) this.randomGenerator = new Math.RandomGenerator(seed); else this.randomGenerator = new Math.RandomGenerator(); } function finalize() { invalidate randomGenerator; } function random() { return randomGenerator.random(); } function intrandom(min = 0, max = 0) { // min 以上 max 以下の整数の乱数を返す // 引数が一個だけの場合は 0 〜 その数までの整数を返す if(min>max) { min <-> max; } return int(randomGenerator.random() * (max-min+1)) + min; } function onStore(f, elm) { // 栞を保存するとき f.randomSeed = randomGenerator.serialize(); } function onRestore(f, clear, elm) { // 栞を読み出すとき randomGenerator.randomize(f.randomSeed); } } kag.addPlugin(global.randomPlugin = new RandomPlugin()); var rand = randomPlugin; [endscript] [wait time=200] *randomTest|ランダマイザプログラムのテスト [cm] こんにちは。[r] 今からランダマイザのテストを行ないます。[r] [eval exp="tf.num = 10"] ;---------------------------------------------------------- *randomTestLoop [emb exp="rand.intrandom(0, 100)"] [eval exp="--tf.num"] [if exp="tf.num > 0"][jump target=*randomTestLoop][endif] [r]ここでセーブして、ロードしても同じ数字が出てくるかどうか確認してください。[p] ;---------------------------------------------------------- *randomTestEnd|ランダマイザプログラムの終了 [cm] [nowait]End_of_Scenario[endnowait] [s]