| 
 【drawclear】 
書式:drawclear 
画面を黑く塗りつぶします。 
 
【drawfill】 
書式:drawfill r,g,b 
画面をその色で塗りつぶします。RGBで、それぞれ0~255を指定します。 
例)drawfill 255,0,128 
 
【drawbg】 
書式:drawbg 
BG画面を描画します。 
スプライトも人もテキスト欄も表示されませんのでご注意ください。 
 
【drawbg2】 
書式:drawbg x,y,x_scale,y_scale,rot 
BG画面を描画します。 
スプライトも人もテキスト欄も表示されませんのでご注意ください。 
(x,y)で位置を指定します。 
この命令は画面の位置を中心座標で指定しますので、注意してください。 
(他の命令のように左上の座標ではありません) 
x_scale、y_scaleは、縦横の拡大率です。単位は%です。 
rotは回転の角度です。反時計回りで、単位は度です。 
例)drawbg 320,240,200,300,15 
(320,240)を中心にして、横に2倍縦に3倍、反時計回りに15度傾けて背景を書く 
なお、はみ出た部分は描画されないので前の画像が残ります。それではまずい場合は、事前にdrawclearなどで消しておいて下さい。 
 
【drawsp】 
書式:drawsp spnum,cellnum,alpha,x,y 
スプライトを描画します。スプライト番号、セル番号、透過度、α値、表示先左上x座標,表示先左上y座標を指定します。通常モードでのスプライトの位置、表示非表示は関係ありません。 
スプライトやテキストウィンドウは、新しく書いたほうが上へ重なります。 
例)drawsp 2,1,128,20,40 
座標(20,40)に、スプライト2番セル1番を、透過度128で表示します。 
 
【drawsp2】 
書式:drawsp spnum,cellnum,alpha,x,y,x_scale,y_scale,rot 
スプライトを描画します。スプライト番号、セル番号、透過度、α値、表示先中心x座標,表示先中心y座標を指定します。通常モードでのスプライトの位置、表示非表示は関係ありません。スプライトやテキストウィンドウは、新しく書いたほうが上へ重なります。 
この命令も、中心座標での指定になりますので、ご注意ください。 
 
例)drawsp2 2,1,128,20,40,150,60,-10 
座標(20,40)に、スプライト2番セル1番を、横1.5倍、縦60%,時計回りで10度傾けて、透過度128で表示します。 
 
 
【drawtext】 
書式:drawtext 
テキストウィンドウを書きます。これより前に書いたスプライトは下に、後に書いたスプライトは上に来ます。 
 
【draw】 
書式:draw 
これらの命令で描画した画像を実画面に転送します。これがないと表示されません。 
 
 
以上の命令を使って、たとえば次のようなスクリプトを試してみてください。 
 
*test 
saveoff 
;デモ処理はsaveoffしたほうが速くなります。終わったらsaveonを忘れずに 
mov %0,0 
bg "bg.bmp",1 
*lp 
resettimer 
drawclear 
drawbg2 320,240,100,100,%0*2 
draw 
wait 5 
;ウェイトを多少いれないと、メッセージ処理が遅れがちになります。 
gettimer %1 
if %1>=50 add %0,%1/50 
if %1<50 waittimer 50:inc %0 
;掛かった処理時間に比例して変数を変化させます。 
goto *lp 
 
 
以下はdefine節でも*start移行でも使える命令です。 
 
rubyon 
ルビモードになります。文字は下詰めになります。 
デフォルト設定では、ルビは本文の文字の縦横半分になります。 
rubyon 10,8 
ルビの大きさを指定します。横10縦8ドットになります。 
アンチエイリアスの都合上、最低13x13はないと見づらいかもしれません。 
rubyon 14,12,"MS ゴシック" 
ルビのフォントを指定できます。省略すると、テキストと同じ書体になります。 
rubyoff 
ルビモードをオフにします。 
 
setwindow時に、縦の字間を、最低ルビの縦サイズと同じだけ開けてください。 
縦書きモードでもルビ機能は使えます。その場合、横の字間を開けてください。 
 
11/21更新: 
 
●savescreenshot2命令追加 
getscreenshotで取得した画像は、savescreenshotでは消えてしまいますが、こちらでは消えません。連続してセーブできます。 
(getscreenshot savescreenshotについては030614の説明をご覧下さい) 
 
●deletescreenshot 
savescreenshot2命令と組み合わせて使います。取得した画像を消します。 
 
●ルビ機能実装。define節でrubyonを実行すれば使えます。 
以下、サンプルスクリプトです。 
 
---- 
*define 
rubyon 
game 
*start 
setwindow 10,10,20,20,24,24,0,12,0,1,1,#ffffff,0,0,639,479 
ルビ機能の(暫定仕様/ざんていしよう)です。@ 
rubyon時、(文字/もじ)は(下詰/したづめ)で表示されます。@ 
(縦/たて)の(字間/じかん)を、ルビが入る分とって下さい。@ 
「(承/うけたまわ)」る、とか、「(論理的/ロジカル)」みたいに、文字幅をあわせようとする機能がついてます。 
ルビは折り返し改行されませんのでご注意ください。\ 
end 
---- 
 
今後の予定 
●00.txt~09.txtのときに、デバッグ時の行番号表示がおかしくなるので修正する 
●デモ用の機能追加(具体的には、Fateの画像効果のようなものを作れるような簡易スクリプトを別に組んで、それを再生するように作る予定です) 
 
商業の関連でいくつか更新しました。 
また、dwave命令でのogg再生がサポートされました。 
 
・ogg再生機能 
フォルダ「ogg再生用DLL」に入っているoggdecode.dllを 
NScr.exeと同じフォルダに置くことで、oggを再生できます。 
なお、このDLLはBSDスタイルのオープンソースな 
ライブラリを利用して作られています。 
配布の際には、同じフォルダにあるreadme.txtを読んで 
ライセンスを破らないように使ってください。 
 
oggは再生前にすべてデコードしてしまいます(ストリーミングしません) 
よって、長さが1分を超えるようなファイルだと再生までにラグが生じます。 
この機能はボイスやSEの圧縮を想定して用意したものです。 
それらはせいぜい数十秒程度の長さでしょうから、ラグも小さく、 
問題にはならないかと思われます。 
 
・getpage命令の追加 
btndefとbtnwait系命令の間に入れてください。 
PageUp PageDownをボタンモードで拾えるようになります。 
・getinsert getzxcの追加 
上に同じく、insertキーやz,x,cキーを拾えます。 
 
ボタンモードはだいぶややこしくなってきてるので、 
どこかで一度綺麗に整理したいです。 
 
・00.txt~09.txtに対応。 
これからは、0.txt~9.txtではなく00.txt~09.txtを 
使うことをお勧めします。 
エクスプローラーで整列した時に順番どおりになってくれます。 
それにともないnscmake.exeも新しくなっています。 
 
・スクリーンショットを取れるようになりました 
getscreenshot xサイズ,yサイズ 
でスクリーンショットをメモリ内に確保し、 
savescreenshot "ファイル名" 
でそのファイル名で保存します。 
 
・ローカル変数とグローバル変数の境目を変えられるようになりました 
スクリプトの一行目で、 
;value500 
グローバル変数が500番からになります 
(数字は0~4000の間で任意の数字です) 
もし800x600モードと併用される場合は、 
;mode800,value500 
としてください。 
 
・三角関数が追加されました 
sin cos tanが使えます。 
形式は、 
sin %変数番号,角度(単位はディグリー(度)) 
です。 
値は1000倍されたものが帰ってきます。 
tanは90度,270度に特異点を持つことに注意してください。 
例) 
sin %0,90 
;%0=1000になる。 
cos %1,60 
;%1=500 
 
【setwindow3】 
回想バッファをクリアしない以外はsetwindowと同じ。 
ただし、同じ縦横幅でないと、回想モードに入ったときにバグる。 
 
【allsphide】 
すべてのスプライトを一時隠します 
 
【allspresume】 
allsphideで隠したスプライトを表示します 
 
【getcursorpos】 
例) 
getcursorpos %0,%1 
テキストウィンドウにおける文字の表示位置を得ます 
 
【getnextline】 
例) 
getnextline %0,%1 
テキストウィンドウにおける次の行の行頭の位置を得ます。 
 
【btnarea】 
btnarea 数字 
btndefの下で使ってください。 
負ならば絶対値を取って、その数以上、正ならばその数以下の位置にカーソルが来たときに、ボタン命令で-4を返します。 
 
 
【chvol】 
例) 
chvol 3,100 
dwaveチャンネルのボリュームを変えます。セーブされないので手動で管理してください。 
この場合だとチャンネル3をボリューム100にします(0-100) 
 
【effectcut】(define節専用) 
スキップ時エフェクトをカットします。 
 
【btnnowindowerase】(define節専用) 
ボタン時にテキストウィンドウが消えなくなります。 
 
【windowback】(define節専用) 
立ち絵より上、立ち絵よりも上のスプライトよりは下にウィンドウが来るようになる。 
 
【lookbacksp 上スプライト番号,下スプライト番号】(define節専用) 
例) 
lookbacksp 2,3 
バックログボタンがデフォルトのものではなくスプライトボタンになる。 
 
【windowchip】(define節専用) 
例) 
windowchip 2 
指定したスプライトがテキストウィンドウと一緒についたり消えたりするようになる 
 
【shadedistance】(define節専用) 
例) 
shadedistance 2,3 
影の位置を指定する。この場合右に2ドット下に3ドットずれる。 
 
【spfont】(define節専用) 
例) 
spfont "フォント名",横幅,縦幅,横字間,縦字間,太字フラグ,影フラグ 
文字列スプライトのフォントを設定する 
 
 
【文字列スプライトのサイズ指定機能】 
例) 
lsp 0,":s/16,40,4;#888888#FFFFFFスプライト文字列です。",100,100 
lsp 1,":s/48,12,1;#888888#FFFFFFスプライト文字列です。",250,250 
順に、横幅、縦幅、文字間、です。 
 
【gettext】 
例) 
gettext $0 
現在テキストウィンドウに表示されているテキストを取得します。 
 
【minimizewindow】 
例) 
minimizewindow 
ウィンドウを最小化します。 
 
【movemousecursor】 
例) 
movemousecursor 100,10 
マウスを画面上の任意の位置に移動させる。この場合100,10 
 
【if文で文字列の比較に対応しました。】 
例) 
if $0=$1 goto *equal 
>や<も使えます(辞書順) 
 
【btntime2】 
btntimeとほぼ同じだが、ボイスの発生終了まで待つ 
 
【gettab】 
【getfunction】 
【getcursor】 
【getenter】 
それぞれ、btndefとbtnwait系命令の間に挟む。 
gettabを使えばtabキーを押したときに=-20が、 
getfuncrionならF1~F12を押したときに-21~-32が、 
getcursorならカーソル上右下左で-40,-41,-42,-43が、 
getenterならリターンキーを押したときに-19が返るようになる。 
 
例) 
*define 
game 
*start 
btndef clear 
gettab 
getcursor 
getfunction 
getenter 
btnwait2 %0 
%0@ 
end 
 
 
mp3命令はDirectShowを使っていますので、メディアプレイヤーで再生できる 
音声ファイルならmp3に限らずWAVでもWMAでも再生できます。 
(ただし、WMAはメディアプレイヤーそのものをインストする必要アリ) 
たとえばADPCM形式WAVをmp3命令に投げてBGMとして使うことも出来ます。 
 
mpegplayもDirectShowを使っていますので、メディアプレイヤーで再生できる 
ムービーファイルはなんでも再生できます。 
(この場合もデフォルトのWIndowsがそれをサポートしているのかどうかに注意。 
 ちなみにMPEG-1はDirectX8.0が標準でサポートしていますので大丈夫。) 
AVI命令よりはこっちを使っていただけたほうが助かります。 
 
jumpfとjumpbですが、この命令よりもgoto文のほうがはやいのと、 
表示文をはさむと誤動作するため、あまり使わないほうがいいと思われます。 
 
soundpressplginの仕様はあまりお勧めしません。 
確かに小さくはなるのですが、少し重いですし、 
これで小さくするよりはADPCMにしたほうが効果は大きいです。 
 
追加命令(変数番号は適当につけてます): 
transbtn 
 btndefとbtnwait系命令の間に挟んでください。 
 そのボタン命令において、ボタン画像の透過部分をボタンとして無効にします。 
 
spclclk 
 btndefとbtnwait系命令の間に挟んでください。 
 そのボタン命令において、スペースバーを左クリックと同じ動作にします。 
 
getpageup 
 btndefとbtnwait系命令の間に挟んでください。 
 そのボタン命令において、pageupを取得します。 
 pageupを押すと-12を返します。 
 
spwait スプライト番号 
 そのスプライトのアニメが一巡するまで待ちます 
 
bgm "ファイル名" 
 mp3loop命令と同じ意味です。 
 
bgmonce "ファイル名" 
 mp3と同じ意味です。 
 
date %0,%1,%2 
 日付の取得。年月日。 
 
time %0,%1,%2 
 時刻の取得。時分秒 
 
itoa $0,%0 
 数値を文字列に変換 
 
atoi %0,$0 
 文字列を数値に変換 
 
len %0,$0 
文字列の長さを返します。 
 
mid $0,$1,%0,%1 
文字列$1の%0文字目から%1文字分の部分文字列を$0に切り出します。 
ただし、最初の文字を0文字目と数えてください。 
 
usewheel 
(define節のみ)ボタン命令でホイールを使う設定にします。 
ホイールは-2(上)と-3(下)を返します。 
この場合、btntimeの時間切れは-5を返すようになります。 
 
useescspc 
(define節のみ)ボタン命令でescボタンとspcボタンを使う設定にします。 
escボタンは-10、spcボタンは-11を返します。 
 
linepage 
(define節のみ) 
以後、表示文の末備に自動的に\を補います。つまり、 
本文を普通に書いていけば、それは一行辺り一ページになるわけです。 
AVGタイプのゲームを作るときに便利です。 
 
noteraseman 
(define節のみ) 
ウィンドウ消去時、人を消さなくなります。 
 
 
v数字: 
dv数字: 
ボイスを入れるときに便利な命令です。それぞれ、 
wave "wav\数字.wav" 
dwave 0,"wav\数字.wav" 
と等価です。次のように使います。 
dv0001:「これが0001番のせりふだよー」 
 
flushout エフェクトにかける時間(ミリ秒) 
特殊効果です。やや重め。 
命令の後は必ず別の背景をロードして表示してください。 
 
skipoff 
スキップ状態を強制解除します。 
 
menu_dwavvol 
ボリューム変更ダイアログを表示します。 
 
cellcheckspbtn (パラメータはspbtnと同じ) 
基本的にはspbtnと同じですが、セルが二つ以上ない画像の場合は無視されます。 
これはCGモードのときに有効に使えます。 
(つまり、サムネイルはセルがひとつだけにしておけば、 
 spbtn登録はループで一気に行える) 
 
 
 
tablegoto %0,*label0,*label1,*label2,... 
 テーブルジャンプ。 
 変数の値が0ならひとつめ、1ならふたつめ……と、 
 羅列したラベルの先へとジャンプする。 
 
 
atoi 数字変数,文字列 
文字列を数字に変換します。C言語の同名関数と同じです。 
例) 
        atoi %0,"123" 
        atoi %3,$0 
 
itoa 文字変数,数値 
数値を文字列に変換します。ただし、半角文字になります。 
例) 
        itoa $0,120 
        itoa $1,%2 
 
 
dwave 数字,ファイル名 
        DirectSoundでWAVファイルを演奏します。 
        数字はチャンネルNOで、0から49までです。 
        違うチャンネルの音はミキシングされて同時再生されます。 
        なお、オートモードでの再生終了待ちはチャンネル0で行います。 
        再生できるのはPCM形式だけです。 
        wave系命令と同時に使用することも出来るので、たとえばMP3コーデックでの 
        BGMをwaveloop命令で鳴らしつつ、こっちで音声再生という使い方が出来ます。 
例) 
        dwave 0,"test.wav" 
 
dwaveloop 数字,ファイル名 
        dwaveと同じ書式ですが、こっちはループ再生します。 
 
dwavestop 数字 
        そのチャンネルの再生を止めます。 
 
■新しくNScripterでゲームを作る方は、NSAアーカイブを使ってください。 
 あらゆる点においてNSAはSARと同程度かそれ以上のパフォーマンスを 
 発揮します。また、SPB形式はNSAがBMPを扱うときの機能の一部として 
 取り込まれていますので、個別に使うメリットはありません。 
 
■QUAKE命令を追加 
 前のQUAKEX QUAKEY命令はマシンに掛ける負担が大きかったので、 
 昔のノートのビデオカードの一部でとても遅くなる現象があった 
 ようなので、新しく作りました。遅いマシンでも問題無く動くと思います。 
 
QUAKE 振幅,時間(ミリ秒単位) 例)QUAKE 8,1000 
 
画像タグsを追加。 
書式:":s#rrggbb#rrggbb……文字列" 
例) 
":s#ffffffテストです"  
 ……白(#ffffff)で、「テストです」という文字列の画像になる。 
":s#ff0000#00ff00あいうえお" 
 ……セル数2,セル番号0が赤(#ff0000)、セル番号1が緑(#00FF00)で 
 「あいうえお」という文字列の画像が出来る。 
":s#ff00ff$0" 
 文字列$0の内容で、紫(#ff00ff)の画像になる。 
 
lsp 0,":s#444422#FFFFAA文字列でボタン",100,100 
btndef clear 
spbtn 0,1 
btnwait %0 
 
こんな感じで使います。 
なお、文字列画像はファイルログには追加されません。 
 
●画像指定タグにmが加わりました。 
 
書式: 
":mマスク画像ファイル名;元画像ファイル名" 
例) 
":mmask.bmp;pict.bmp" 
 
現在、セル数が1の画像にしか対応していません。 
 
●DirectShowによるmp3再生のサポート。 
昔の仕様どおりのmp3命令やmp3loop命令が使えます。 
DirectShowを使うので、以前のバージョンで使っていたdllは 
必要ありませんが、DirectX7以降が必要になります。 
(bgm命令はmp3loop命令とまったく同じです。) 
 
命令getversionを追加。 
例)getversion %0 
バージョンは3桁の整数で返ってきます。 
実際のバージョンの100倍の数字です。 
つまり、Ver1.90ならば190になります。 
 
命令dwaveload dwaveplay dwaveplayloopの追加 
 
例) 
dwaveload 0,"test.wav" 
dwaveplay 0 
dwaveplayloop 0 
これで、前もってWAVをメモリにロードしておいて、 
それを再生することが出来ます。 
 
 
命令trap2 lr_trap lr_trap2を追加。 
これらはtrapと同じパラメータを取るtrap系命令です。 
trap     …… 左クリックのみに反応 
lr_trap  …… 左右クリックに反応 
trap2    …… 左クリックと「次の選択肢に進む」に反応 
lr_trap2 …… 左右クリックと「次の選択肢に進む」に反応 
 
この辺の命令仕様がどうも美しくないので、そのうち 
統合するような命令を作るかもしれませんが、これらの 
命令は今後ともサポートしますので、お使い下さい。 
 
命令timertrapを追加 
例)timertrap *label,1000 
指定したミリ秒後に割り込みが掛かってジャンプします。 
ただし、個々の命令の動作の隙間でしかタイマ判定しないので、 
ウェイト状態(ボタン待ちや、click,delay,wait命令、 
デフォルトでの@ \など)のときには割り込みが起きません。 
元々NScripterはスクリプトからのタイマー割り込みを想定 
している言語ではないので、使い方が結構難しい命令です。 
 
trap系命令とtimertrap命令に新しいオプションstopとresumeがつきました。 
 
例) 
trap stop 
lr_trap resume 
lr_trap2 stop 
trap2 resume 
 
trap offとすると、割り込み設定自体がクリアされてしまいます。 
対して、trap stopは割り込みを一時的に禁止するだけです。 
trap resumeは再び割り込みを許可する命令です。 
もしtrap stopしている間にクリックしていた場合、 
後でtrap resumeを実行すると、そこで割り込みが発生します。 
 
命令spwaitを追加しました。 
 
例)spwait 2 
指定したスプライト番号のアニメーションが終わる 
(最初のコマに戻るか、もしくはストップする)のを待ちます。 
 
命令mousecursorは今のところ使わないで下さい。 
機種によって動いたり動かなかったりのようです。 
 
命令nsadirを追加(nsaファイルを読みにいくディレクトリを指定できる。) 
 
*define節でmode_extを使うと、メニューからボリューム変更ダイアログが 
使えるようになる。(MP3(BGM) voice(DWAVE 0) SE(DWAVE 1~)のボリュームを 
いじれるようになりました。) 
この辺の拡張機能の追加についてはもうちょっとすっきりした命令を作る予定 
(今有効な命令は将来的にもちゃんと使えます。) 
 
bgmfadeout 数字 
 BGMのフェードアウトの時間を指定 
 *define節専用です。 
 
mp3save ファイル名 
 mp3と同様一回だけの再生ですが、再生中にセーブするとロード後も再生されます。 
 
defvoicecol 数字 
defsevol 数字 
defmp3vol 数字 もしくはdefbgmvol 数字 
を追加。デフォルトボリュームをいじれます。デフォルトでは100 
(0から100です。) 
*define節専用です。 
 
voicecol 数字 
sevol 数字 
mp3vol 数字(もしくはbgmvol) 
ボリュームをいじれます。ただし、セーブはされませんので、手動で管理してください 
(0から100です。) 
実行中にも使えます。 
 
【FOR~NEXTループ命令を追加】 
 
書式: 
FOR %変数番号=数字 TO 数字 (STEP 増分) 
;(ループの内容) 
NEXT 
 
基本的にBASICと同じです。指定した変数がTOで指定した数を超えるまで 
(STEPが負の時は、それより小さくなるまで)は、ループを繰り返します。 
一回ごとにSTEPで指定した数を変数に加えます。 
STEPは省略すると1になります。 
 
(注意) 
FORループをgoto文やselect文で抜けないでください。 
(ループ内から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文に*ラベル名があればそのラベルに飛びます。 
ただし、ラベル指定でふたつのループを抜けても内部的には 
一番内側のひとつしかループ状態を解除しませんので、不具合の元になります。 
 
基本的に、FOR文は途中で抜けることを想定しない簡単な処理に使ってください。 
 
【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でも使えるかもしれませんが、サポート対象にはしません) 
 
 
命令btntimeとgetbtntimerを追加しました。 
 
btntimeは、次のbtnwaitもしくはbtnwait2の時間制限をミリ秒で指定します。 
この命令を使った直後のボタンモードで、何も押されずに指定した時間が過ぎると、 
btnwait系命令は-2を返します。 
 
getbtntimer %0 
たとえば、右クリックなどで抜けた後、再び処理をbtnwaitに戻したいとします。 
その場合、btnwait命令が実際には何ミリ秒を使ったのかをgetbtntimer命令は 
返してくれるので、その分引いた秒数で実行すればうまくいきます。 
 
 
*define節命令kidokuskipを追加しました。 
この命令を使うと、「次の選択肢へ進む」が既読スキップになります。 
既読データはファイルに保存されますが、スクリプトが変わると、 
変わった部分以降はずれてきます。 
 
 
 
命令date,timeを追加しました。現在日付/時刻の取得命令です。 
例) 
date %0,%1,%2 
%0に年、%1に月、%2に日が入ります。 
 
time %0,%1,%2 
%0に時、%1に分、%2に秒が入ります。 
 
命令inputが追加されています。 
input "説明テキスト","デフォルト文字列",最大文字数,全角フラグ です。 
 
 
 
■setwindow2 
 
(使い方) 
setwindow2 "ウィンドウCGファイル名" 
もしくは 
setwindow2 #色タグ指定 
 
(例) 
setwindow2 ":c;twindow2.bmp" 
 
回想バッファを消さず、今表示しているウィンドウも文字も消さず、 
ウィンドウの見た目だけを変更する命令です。 
setwindow命令のタグ指定もしくはウィンドウCG指定の部分だけを 
指定することが出来ます。他は何も変えられません。 
 
■savegame セーブ番号 
 そのセーブ番号にセーブします。何の確認もしませんので注意。 
 
■loadgame セーブ番号 
 そのセーブ番号からロードします。何の確認もしませんので注意。 
 もしロードが失敗すると、何も起こらずに次の処理に移ります。 
 
■savefileexist 数字変数,セーブ番号 
 もしセーブファイルが存在すれば1、しなければ0を返します。 
 
新命令) 
作業の都合で作った命令とかもあって、あんまり使えないかも 
●isskip %数字変数 
例)isskip %0 
現在がスキップモードなら1、オートモードなら2、通常モードなら0を返します。 
 
●bw2a "画像ファイル名(先頭部分)" 
例) 
bw2a "test" 
test_w.bmpとtest_b.bmpからNScrのα値形式BMPを作ります。 
付属しているbw2aconv.exeと同じ動作です。 
 
<豆知識> 
コマンドプロンプトから 
dir /b > filelist.txt 
とかをやるとファイルリストが取れるので、 
それと組み合わせて一括変換に使うといいでしょう。 
 
 
 
●bmpcut "画像ファイル名",横分割数,縦分割数 
例) 
bmpcut "test.bmp",3,2 
これでtest.bmpを横3縦2に分割してBMP形式で保存します。 
ファイル名を投げやりにつけるので注意。 
 
 
●systemcall resetdlg 
リセットダイアログを出します。 
キャンセルできることに注意 
 
●winexec "実行ファイル名",数字 
外部実行ファイルを実行します。WinExec APIを使います。 
フルスクリーン時にはSW_MAXIMIZE、通常スクリーン時にはSW_SHOWNORMALを指定します。 
数字に0以外を指定すると、そのプログラムと同期動作します。 
NScripterのウィンドウにWM_USER+10が送られてくれば実行再開、WM_USER+20が 
送られてくればプログラムを終了します。 
数字に0を指定すると、起動するだけでプログラムは先へ進みます。 
Dolls Antiqueのデモプログラムとの連携に使った命令です。 
 
●shell "ファイル名" 
エクスプローラーからそのファイルを実行します。 
ShellExecute APIを使います。同期実行はしません。 
 
●chainbmp "画像ファイル名" 
out.bmpの隣にその画像ファイルを貼り付けていきます。 
out.bmpが無ければ作成します。 
画像の縦幅は同じ必要があります。 
あまり使い勝手よくないです。 
 
●mv数: 
voice\数.mp3をmp3命令でボイス扱いで再生します。 
例) 
mv00001: 
「これでvoice¥00001.mp3が再生されます」 
 
●createdummy "ファイル名" 
その名前でダミーBMPファイル(640.480)を作ります。 
真っ白背景に 
 |