今回の更新点: 【FOR〜NEXTループ命令を追加】 書式: FOR %変数番号=数字 TO 数字 (STEP 増分) ;(ループの内容) NEXT 基本的にBASICと同じです。指定した変数がTOで指定した数を超えるまで (STEPが負の時は、それより小さくなるまで)は、ループを繰り返します。 一回ごとにSTEPで指定した数を変数に加えます。 STEPは省略すると1になります。 (注意) FORループをgoto文やselect文で抜けると、内部的にはループ中なので、 NScrのスタックを無駄に消費します。 その部分が無限ループでもない限りそのせいで落ちるということは まずないですが、そういうコードはいわゆる「スパゲッティコード」 と呼ばれるもので、読みにくく、分かりにくくなっているはずです。 FOR文とNEXT文は見やすくインデントしてソースの上でも一対一対応 させるのがお勧めです。 また、途中で安全にループを抜けたい場合はBREAK文を使ってください。 (ループ内からgosubで飛んでループ内に戻ってくるのはOKです。  むしろループの始まりと終わり、外と中がはっきりするのでお勧め) 書式: BREAK 一番内側のループをひとつ、途中で抜け出します。 すぐ下のNEXT文を探し、その下へ抜けます。 二重ループを一気に外まで抜けることはできません。 一重めのループをBREAKで抜けた後、さらに次のBREAKを書いてください。 サンプル: ;------------------------ *define game *start for %0=1 to 8 for %1=6 to 2 step -2 %0,%1 if %0=4 & %1=4 break next next click end ;------------------------ 【お勧めしない使い方】 BREAK *ラベル名 BREAK文に*ラベル名があればそのラベルに飛びます。 ただし、ラベル指定でふたつのループを抜けても内部的には 一番内側のひとつしかループ状態を解除しません。 先述のとおり、そういう使い方はスタックを無駄遣いするのと ソースを見難くするのでお勧めはしません。 【CTRLキーでメッセージスキップできるようにした】 これからは、これをオフィシャルなスキップキーにします。 【セーブデータを少し頑強にした】 セーブデータを行番号で管理する方式にしました。 たとえスクリプトを入れ替えても、行をずらしさえしなければ、 セーブデータは前のまま使えることになりました。 【セーブファイルの日時の取得関数】 命令savetime 書式: savetime セーブ番号,%月,%日,%時,%分 セーブファイルが存在しない場合は、月の値に0を返す。 例) savetime 3,%0,%1,%2,%3 if %0=0 goto *non セーブ3番は%0月%1日%2時%3分@ end *non セーブ3番は存在しない。@ end 【配列変数を使えるようにした】 ?配列番号[添字1][添字2]... (全部で200個までの配列、20次元まで使用可能です) <使い方> *define節で配列変数を宣言してください。 命令dim 書式: dim ?0[10][20] 配列変数はBASIC式です。つまり、この宣言だと、?0は、 一次元目が0〜10の、二次元目が0〜20の添字を使えます。 mov ?0[2][5],20 ;?0[2][5]に20を代入。 mov %4,?0[3][1] ;%4に?0[3][1]を代入。 ?0[2][3]=?0[2][3]@ ;値を表示 このとおり、今まで「数字」となっていたところならどこでも 配列変数を使えます。 numaliasを使えば、もっと見やすく出来ます。 例) numalias enemyparam,10 dim ?enemyparam[10] 【命令movlを追加】 配列の行に対して一度に値を代入します。 movl 配列行指定,数字,数字,…… 例) dim ?10[4] dim ?20[2][3] movl ?10,0,1,2,3,4 movl ?20[0],0,1,2,3 movl ?20[1],0,2,4,6 movl ?20[2],0,3,6,9 <注意> 配列の添字は0からはじまるので、一列の長さは宣言のときの 数字よりもひとつ多いことに気をつけてください。 【MPEG再生機能の追加】 命令mpegplay 書式: mpegplay ファイル名文字列,クリックフラグ 例) mpegplay "test.mpeg",1 解説: ファイル名に指定したファイルをDirectShowの機能で再生します。 クリックフラグが0だとクリックしても再生をやめませんが、 クリックフラグが1の場合は、画面クリックで再生を中止します。 この命令を使うには、DirectX8.0a以上が必要です。 (古いDirectXでも使えるかもしれませんが、サポート対象にはしません)