基本機能
NL_dofileLuaスクリプトファイルを読み込んで実行する
NSCOM_NScripterからLua関数を呼び出す
NSCOM_mainsystem.luaを起動用ファイルにする
NSEndNScripterの動作を終了する
引数操作
NSCheckComma次の記号がコンマかどうかを調べる
NSPopComma引数列のコンマをひとつ読み飛ばす
NSPopIDNScripterの識別子形式の文字列の引数をひとつ読み込む
NSPopIntNScripterの数値の引数をひとつ読み込む
NSPopIntRefNScripterの数値変数引数の番号をひとつ読み込む
NSPopLabelNScripterのラベル名をひとつ読み込む
NSPopStrNScripterの文字列の引数をひとつ読み込む
NSPopStrRefNScripterの文字列変数引数の番号をひとつ読み込む
変数操作
NSGetIntValueNScripterの数値変数から値を取得する
NSGetStrValueNScripterの文字列変数から値を取得する
NSSetIntValueNScripterの数値変数に値を設定する
NSSetStrValueNScripterの文字列変数に値を設定する
NScripter実行
NSDoEventsWindowsのメッセージを処理させる
NSExec文字列で指定されたNScripterの命令を実行する
NSExecAnimationNScripterのアニメーション処理を実行する
NSGosub文字列で指定したラベルにgosubジャンプする
NSGoto文字列で指定したラベルにgotoジャンプする
NSReturnシナリオスクリプトのサブルーチンからreturnする
NSSavePointセーブポイントを更新する
NSSleep指定した時間ほかのスレッドに動作を明け渡す
NSSystemCall指定したNScripterの機能を呼び出す
コールバック
NSCALL_animationアニメーション割り込みするコールバック
NSCALL_closeウィンドウの「閉じる」をクリックしたときの動作を指定する
NSCALL_endプログラムが終了する直前の動作を指定する
NSCALL_loadロードされた直後の動作を指定する
NSCALL_reset実行節開始時・リセット時の直後の動作を指定する
NSCALL_saveセーブされる直前の動作を指定する
NSCALL_savepointセーブポイントに到達したときの動作を指定する
NSCALL_tagタグテキストを取得するコールバック
NSCALL_text表示文(変換後)を取得するコールバック
NSCALL_text0表示文(変換前)を取得するコールバック
システム情報
NSGetFileInfo指定したファイルの情報を取得する
NSGetSkipスキップ状態を取得する
NSGetWindowSizeNScripterのウィンドウの表示領域の大きさを取得する
NSTimer1msに1増え続けるタイマーを取得する
ダイアログ
NSOkBoxダイアログボックスを表示する
NSYesNoBoxはい/いいえをたずねるダイアログボックスを表示する
アニメーション
NSLuaAnimationIntervalアニメーション割り込みの発生間隔を指定する
NSLuaAnimationModeアニメーション割り込みを開始/停止する
キーボード・マウス入力
NSClick左クリックを待つ
NSGetClick最後に入力されたマウスクリックを取得する
NSGetKeyキーが今押されているかどうかを取得する
NSGetMouseマウスの位置を取得する
画面描画
NSInvalidate無効領域を追加する
NSUpdate無効領域を再描画する
スプライト
NSSpCellスプライトのセルを設定する
NSSpClearスプライトを消去する
NSSpGetInfoスプライトの情報を取得する
NSSpGetPosスプライトの位置を取得する
NSSpLoad普通のスプライト(lsp系)をロードする
NSSpMoveスプライトを移動する
NSSpVisibleスプライトの表示を切り替える
拡張スプライト
NSSp2Clear拡張スプライトを消去する
NSSp2GetInfo拡張スプライトの情報を取得する
NSSp2GetPos拡張スプライトの位置を取得する
NSSp2Load拡張スプライト(lsp2系)をロードする
NSSp2Move拡張スプライトを移動する
NSSp2Visible拡張スプライトの表示を切り替える
OGGファイル
NSOggClose指定したチャンネルの演奏を終了する
NSOggFade指定したチャンネルをフェード操作する
NSOggIsPlaying指定したチャンネルの演奏状態を取得する
NSOggLoadOGGファイルをロードする
NSOggPlayロードしたOGGファイルを再生する
NSOggPlay2ロードしたOGGファイルをループ開始点指定で再生する
NSOggVolume指定したチャンネルの音量を変更する
スプライン補完
NSDefSplineスプライン補間に必要な計算をして、指定したデータ番号に登録する
NSLinear点x0,y0と点x1,y1を通るような関数fの、y=f(x)の値を求める
NSSplineスプライン補間の結果を求める
直接描画
NSDBltテクスチャをそのまま画面にコピーする
NSDCall外部DLLを使ってテクスチャの中身をバイト単位で設定する
NSDClear画面を真っ黒でクリアする
NSDCopyToBg今現在の画面をNScripter上の「背景画面」としてコピーする
NSDDeleteテクスチャを削除する
NSDDLLNSD系命令のテクスチャ作成時に呼び出すDLL関数を設定する
NSDFill画面の指定した領域を指定した色で塗りつぶす
NSDGetSizeテクスチャのサイズを取得する
NSDLoadPNGファイルをテクスチャとしてロードする
NSDOffModeNSD系命令の書きこみ先をオフスクリーンバッファに変更する
NSDPresentNSD系命令で描画した画面を実際に更新する
NSDPresentRectNSD系命令で描画した指定矩形領域を実際に更新する
NSDSetSpriteNSD系命令用のテクスチャを、NScripterのスプライトに変換する
NSDSpテクスチャをα値を考慮して重ね合わせで表示する
NSDSp2テクスチャを回転拡大縮小などの変形処理を加えて画面に転送する
NSDSp2Addテクスチャを回転拡大縮小などの変形処理を加えて画面に転送する
NSDSpAddテクスチャをα値を考慮して、加算合成で表示する
NSDTransitionオフスクリーンに描き込まれた画像を、実際に画面に反映する
NSDTransitionFオフスクリーンに描き込まれた画像を、実際に画面に反映する

Ver.2.94【特殊】
えぬえるどぅふぁいる
NL_dofile

基本機能

NL_dofile(Luaスクリプトファイル名)

●引数
文字列Luaスクリプトファイル名

Lua標準関数のdofileではNSAやNS2アーカイブの中のファイルは実行できませんが、
NL_dofileはアーカイブの中のファイルも実行できます。
もちろん、system.luaもアーカイブの中から実行できます。

例)
"lib.lua"を読み込む。
NL_dofile("lib.lua")

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるあにめーしょん
NSCALL_animation

コールバック

function NSCALL_animation()

●戻り値
真偽値画面更新フラグ(true:更新、false:更新しない)

  セルアニメーションと同じく、一定時間経過ごとに呼び出されます。
  引数はありません。
  戻り値にtrueを返すと画面を更新します。falseだと画面を更新しません。

なお、アニメーション割り込みとは言ってもマルチスレッドではありません。
  通常セルアニメーションが発生するクリック待ちなどのところでこの関数も呼ばれるだけです。
  この関数が呼ばれている間は他の動作はストップします。
例)
アニメーション割り込みする。
function NSCALL_animation()

NSLuaAnimationInterval / NSLuaAnimationMode / NSTimer /
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるくろーず
NSCALL_close

コールバック

function NSCALL_close()

●戻り値
真偽値「閉じる」押下後の動作(true:終了処理の続行、false:キャンセル)

  ウィンドウの「閉じる」をクリックしたときの動作を指定します。
  引数はありません。戻り値trueでプログラムを終了、falseでキャンセルです。
  戻り値:この後の動作(trueで終了処理の続行、falseでキャンセル)

この命令を使うと、デフォルトの処理(ダイアログ)は行われなくなります。
例)
ウィンドウの「閉じる」をクリックしたときの動作を指定する。
function NSCALL_close ()

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるえんど
NSCALL_end

コールバック

function NSCALL_end()

  プログラムが終了する直前の動作を指定します。
  引数も戻り値もありません。

例)
プログラムが終了する直前の動作を指定する。
function NSCALL_end ()

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるろーど
NSCALL_load

コールバック

function NSCALL_load(savenum)

●引数
整数セーブ番号

  セーブデータがロードされた直後に呼び出されます。
  saveコールバック関数で保存したデータを読み込んで処理をしてください。
  引数はセーブ番号、戻り値はありません。

例)
ロードされた直後の動作を指定する。
function NSCALL_load(savenum)

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるりせっと
NSCALL_reset

コールバック

function NSCALL_reset()

  *define節からgame命令によって、もしくはリセットによって*startに飛んだときに呼ばれます。

なお、単にgoto *startでは呼ばれません(それはリセットではないので)。
例)
実行節開始時・リセット時の直後の動作を指定する。
function NSCALL_reset()

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるせーぶ
NSCALL_save

コールバック

function NSCALL_save(savenum)

●引数
整数セーブ番号

  シナリオスクリプト側のデータが実際にセーブされる直前に呼び出されます。
  セーブされるべきなのは、この関数が呼び出されたそのときのデータではなく、
  最後に到達したセーブポイント時点でのデータです。間違わないようご注意ください。
  引数はセーブ番号、戻り値はありません。

この命令を使っても、その後でデフォルトの処理はちゃんと行われます。
例)
セーブされる直前の動作を指定する。
function NSCALL_save(savenum)

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるせーぶぽいんと
NSCALL_savepoint

コールバック

function NSCALL_savepoint()

  セーブポイントに到達したときに呼び出されます。
  Lua側でセーブしておきたいデータがある場合はこの段階でメモリ内のセーブデータを更新してください。
  引数も戻り値もありません。

この命令を使っても、その後でデフォルトの処理はちゃんと行われます。
例)
セーブポイントに到達したときの動作を指定する。
function NSCALL_savepoint()

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるたぐ
NSCALL_tag

コールバック

function NSCALL_tag(tag)

●引数
文字列タグテキスト

  デフォルトのpretextgosubのタイミングで呼び出されます。
  この命令を使うとデフォルトの処理は行われなくなります。pregextgosubも無効になります。

NSCALL_tagからNSGotoやNSGosub等でジャンプしないでください。戻ってこれなくなります。
例)
タグテキストを取得する。
function NSCALL_tag(tag)

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるてきすと
NSCALL_text

コールバック

function NSCALL_text(printstr)

●引数
文字列表示文(変換後)

  表示文の、変換が終わったものが送られます。実際に表示される文字列です。
  テキストを表示します。@や\を読み込んだら対応するクリック待ちも行ってください。

この命令を使うと、デフォルトの処理は行われなくなります。textgosubも無効になります。
例)
表示文(変換後)を取得する。
function NSCALL_text(printstr)

/
page top / list / main

Ver.2.94【コールバック】
えぬえすこーるてきすとぜろ
NSCALL_text0

コールバック

function NSCALL_text0(plainstr)

●引数
文字列表示文(変換前)

  表示文の、表示テキストが渡されたタイミングで呼び出されます。
  この段階では変数を展開したり半角数字を全角に直したりしていません。
  自動で変換をしたくない場合はこちらを設定します。

この命令を使うと、デフォルトの変換処理やテキスト表示処理を呼び出しません。
例)
表示文(変換後)を取得する。
function NSCALL_text0(plainstr)

/
page top / list / main

Ver.2.94【高水準】
えぬえすちぇっくこんま
NSCheckComma

引数操作

b=NSCheckComma()

●戻り値
真偽値次がコンマならtrue、コンマでなければfalse

次の記号がコンマかどうかを調べます。読み込みはしません。引数の数を変えたいときに使います。

例)
bに次の記号がコンマかどうかを調べた結果を取得する。
b=NSCheckComma() -- 次がコンマならb=true コンマでなければb=falseが代入される。

/
page top / list / main

Ver.2.95【低水準】
えぬえすくりっく
NSClick

キーボード・マウス入力

NSClick()

click命令と等価です。

例)
左クリックを待ちます。
NSClick()

/
page top / list / main

Ver.2.94【高水準】
えぬえすこむ
NSCOM_

基本機能

function NSCOM_func() end

luasub func
この命令を実行すると、以後シナリオスクリプト(00.txt〜)でfunc命令を実行したときに、
Lua関数 NSCOM_func() が呼び出されます。
luasubで登録されるLua関数には引数も戻り値もありません。
引数や戻り値はそれぞれ下で説明している関数を使って利用してください。
なお、既存の命令も上書きできます。
たとえばluasub bgとすると、もともとのbg命令ではなくluaのNSCOM_bg関数が優先されます。
もともとのbg命令を呼びたい場合は、defsubのときと同様_bgとしてください。

例)
NScrLua命令funcを定義して呼び出す。
--- NScripter ---
*define
luasub func
game
*start
func
\
end

--- Lua ---
function NSCOM_func(){
    NSExec("puttext \"成功\"")
}

NSCheckComma / NSGetIntValue / NSGetStrValue / NSPopComma / NSPopID / NSPopInt / NSPopIntRef / NSPopLabel / NSPopStr / NSPopStrRef / NSSetIntValue / NSSetStrValue /
page top / list / main

Ver.2.95【高水準】
えぬえすこむめいん
NSCOM_main

基本機能

function NSCOM_main() end

0.txt 00.txt nscript.datがなくて、system.luaだけがあるとき、system.luaだけで起動するようになりました。
;mode800等の設定は、一行目に--mode800 などのようにして行います(動作は0.txtの時と同じ)

例)
Luaのみで800*600で起動して挨拶を表示する。
--mode800

function NSCOM_main(){
    NSExec("puttext \"起動した!\"")
    NSClick()
    NSEnd()
}

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーびると
NSDBlt

直接描画

NSDBlt(num,dx,dy,w,h,sx,sy)

●引数
整数テクスチャ番号(0〜15)
整数転送先左上X座標
整数転送先左上Y座標
整数
整数高さ
整数転送元左上X座標
整数転送元左上Y座標

テクスチャをそのまま画面にコピーします。
numはテクスチャ番号です。
dx,dyは転送先、画面上の左上の点の座標。sx,syは転送元、テクスチャ上の左上の点の座標、w,hは幅と高さです。
矩形を重ね合わせを考慮せずそのままコピーしますので、ここから先で説明しているNSDSp〜系の命令よりも高速です。
αブレンディングも重ね合わせや変形の必要もない画像はなるべくこの関数で描画してください。

例)
テクスチャ0番の座標(64,0)サイズ32x32を画面座標(0,64)にコピーします。
NSDBlt(0,0,64,32,32,64,0)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーこーる
NSDCall

直接描画

NSDCall(texnum,filename,procnum(,param))

●引数
整数テクスチャ番号
文字列ファイル名

テクスチャ作成時に、外部DLLを使ってテクスチャの中身をバイト単位で設定できます。
NSD系のテクスチャは作成時の内容を変更することが出来ません。
例えば、フォントを出力するような外部DLLを使って、文字フォントのテクスチャを作ることが出来ます。
なお、引数paramがない場合は省略できます(この場合、DLLにはNULLが送られます)。
呼び出されるDLL関数の型は次の通りにしてください。
void Func (unsigned char *ptr,int w,int h,const char *param);
paramは呼び出し元から渡された文字列引数です。指定されなかった場合はNULLが入ります。
wは画像の幅、hは画像の高さです。
ptrはビットデータ配列です。
(x,y)ピクセルのデータはptr[x*4+y*w*4]〜ptr[x*4+y*w*4+3]にあります。
x*4+y*w*4=posとおくと、p[pos]=青 p[pos+1]=緑 p[pos+2]=赤 p[pos+3]=α値です。

例)
10番テクスチャをまず画像ファイル"*200,60"(つまり200x60の完全透明画像)で初期化し、 その後、番号fontprocに登録したDLL関数を"20,20,あいうえお"という引数で呼び出します
NSDCall(10,"*200,60",fontproc,"20,20,あいうえお")
例)
8番テクスチャをまずtest.pngで初期化し、番号filterprocに登録したDLL関数を"gauss"という引数で呼び出します。
NSDCall(8,"test.png",filterproc,"gauss")

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーくりあ
NSDClear

直接描画

NSDClear()

画面を真っ黒でクリアします。

例)
画面を真っ黒でクリアします。
NSDClear()

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーこぴーとぅびーじー
NSDCopyToBg

直接描画

NSDCopyToBg()

NSD〜系の画像処理は、NScripterの描画処理とは独立しています。
したがって、Lua関数から抜けたり、Lua内部からNScripterの元々の機能を呼び出すと、描画している画像は全部上書きされてしまいます。
残す必要がある場合は、この関数を実行することで、今現在の画面をNScripter上の「背景画面」としてコピーすることが出来ます。
なお、この命令はNScripter側のBGロードと同じ処理をしていますので、立ち絵は全部消去されます。

例)
今現在の画面をNScripter上の「背景画面」としてコピーします。
NSDCopyToBg()

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーでりーと
NSDDelete

直接描画

NSDDelete(num)

●引数
整数テクスチャ番号(0〜15)

テクスチャを削除します。なお、明示的に削除しなくても、同じ番号にテクスチャをロードすると古いテクスチャは削除されます。
 使わなくなったテクスチャは削除するとメモリが節約できます。

例)
0番のテクスチャを削除します。
NSDDelete(0)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーでぃーえるえる
NSDDLL

直接描画

procnum=NSDDLL(dllname,funcname)

●引数
文字列DLLファイル名
文字列関数名

NSD系命令のテクスチャ作成時に呼び出すDLL関数を設定します。
Luaファイル読み込み時に一度だけ実行してください。
戻り値の番号はNSDCall関数にて引数に指定します。

例)
deffont.dll内のFont関数を読み込み、関数番号をfontprocに格納します。
fontproc=NSDDLL("deffont.dll","Font")

/
page top / list / main

Ver.2.94【低水準】
えぬえすでふすぷらいん
NSDefSpline

スプライン補完

NSDefSpline(num,xarray,yarray)

●引数
整数データ番号(0〜99)
配列xの座標を小さい順に格納した配列
配列xにそれぞれ対応するyの値を格納した配列

numにはスプライン補間のデータ番号(0〜99)を指定します。
xarrayにxの座標を小さい順に格納した配列、yarrayにそのxにそれぞれ対応するyの値を格納した配列を渡します。
スプライン補間に必要な計算をして、そのデータ番号に登録します。

なお、スプライン補間のためには点のデータは最低でも三つ必要です。
20090419版以降で実装。
例)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーふぃる
NSDFill

直接描画

NSDFill(lx,ly,rx,ry,r,g,b)

●引数
整数左上X座標
整数左上Y座標
整数右下X座標
整数右下Y座標
整数赤成分(0〜255)
整数緑成分(0〜255)
整数青成分(0〜255)

画面の指定した領域を指定した色で塗りつぶします。
それぞれ、左上の座標、右下の座標、RGBの指定(0〜255で)です。

例)
640x480時に画面の全体を白色で塗りつぶします。
NSDFill(0,0,639,479,255,255,255)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーげっとさいず
NSDGetSize

直接描画

width,height=NSDGetSize(num)

●引数
整数テクスチャ番号(0〜15)

テクスチャのサイズを取得します。

例)
0番のテクスチャのサイズを取得します。
width,height=NSDGetSize(0)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーろーど
NSDLoad

直接描画

NSDLoad(num,filename)

●引数
整数テクスチャ番号(0〜15)
文字列PNGファイル名

PNGファイルをテクスチャとしてロードします。アーカイブからでも裸でも読めます(ただし最新版のnspng.dllが必要)
numはテクスチャ番号です。0から15が指定できます。
この関数群は画像の一部を指定して転送することが出来ますので、一緒に使うチップは連結してまとめて置いてください。
(これは、将来的にグラフィックカードのテクスチャ機能に置き換えるときに、テクスチャ切り替えを少なくして高速化するためです)

例)
テクスチャ2番にtest.pngを読み込みます。
NSDLoad(2,"test.png")
例)
テクスチャ3番に32x32ドットの完全透明画像を作成します。
NSDLoad(3,"*32,32")
-- 色指定を省略すると完全透明なテクスチャになります。
-- これはNSDLoadでは使い道がありませんが、後で説明するNSDCallで使います
例)
テクスチャ4番に48x24ドット、R=128 G=64 B=32 α=255で塗りつぶされた画像を作成します。
NSDLoad(4,"*48,24,128,64,32,255")

/
page top / list / main

Ver.2.94【高水準】
えぬえすどぅいべんつ
NSDoEvents

NScripter実行

b=NSDoEvents()

●戻り値
真偽値trueのときは直ちにNScripterに処理を戻す

時間のかかる関数からは時々これを呼んでWindowsのメッセージを処理してください。
戻り値は終了フラグです。trueのときは直ちに関数から抜けてNScripterに処理を戻してください。

例)
Windowsのメッセージを処理させる。
b=NSDoEvents() -- b==trueのときは処理をやめてLua関数から抜けること

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーおふもーど
NSDOffMode

直接描画

NSDOffMode(mode)

●引数
真偽値trueでオフスクリーンバッファに変更

NSDOffMode(true)で、NSD系命令の書きこみ先をオフスクリーンバッファに変更します。
NSDOffMode(false)で、NSD系命令の書きこみ先は画面になります。デフォルトの書き込み先は画面です。
NSDOffMode(true)の時は、NSDPresent、NSDPresentRectは使えません(画面には書きこんでいないため)。
この命令は、次のNSDTransitionと組み合わせて、トランジションを実現するために使います。

例)
NSD系命令の書きこみ先をオフスクリーンバッファに変更します。
NSDOffMode(true)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーぷりぜんと
NSDPresent

直接描画

NSDPresent()

画面を実際に更新します。ウィンドウ内が再描画されます。
NSDPresent()は全画面、NSDPresetnRect(lx,ly,rx,ry)は指定した矩形領域が再描画されます(それぞれ左上座標、右上座標です)

例)
NSD系命令で描画した画面を実際に更新します。
NSDPresent()

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーぷりぜんとれくと
NSDPresentRect

直接描画

NSDPresentRect(lx,ly,rx,ry)

●引数
整数左上X座標
整数左上Y座標
整数右下X座標
整数右下Y座標

画面を実際に更新します。ウィンドウ内が再描画されます。
NSDPresent()は全画面、NSDPresetnRect(lx,ly,rx,ry)は指定した矩形領域が再描画されます(それぞれ左上座標、右上座標です)

例)
NSD系命令で描画した画面の左半分を実際に更新します。
NSDPresentRect(0,0,319,479)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーせっとすぷらいと
NSDSetSprite

直接描画

NSDSetSprite(spnum,texnum(,tag))

NSD系命令用のテクスチャを、NScripterのスプライトに変換します。
タグは省略すると"a;"になります。
NSD系命令のテクスチャは常にα付きなので、:a以外には変換できません。
NSD系命令のテクスチャにはセルやアニメ設定の概念がないので、設定が必要ならタグを指定する必要があります。
DLLで作ったフォント画像をNScripterのテクスチャにしたい時などに使えると思います。

例)
NScripterのスプライト0番にテクスチャ8番の画像を変換する。
NSDSetSprite(0,8)
例)
NScripterのスプライト3番にテクスチャ10番の画像をセル数2アニメ無しで変換する。
NSDSetSprite(3,10,":a/2,0,3;")

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーえすぴー
NSDSp

直接描画

NSDSp(num,dx,dy,w,h,sx,sy,alpha)

●引数
整数テクスチャ番号(0〜15)
整数転送先左上X座標
整数転送先左上Y座標
整数
整数高さ
整数転送元左上X座標
整数転送元左上Y座標
整数α値

テクスチャをα値を考慮して重ね合わせで表示します。拡大縮小回転などの変形処理は行われません。
numはテクスチャ番号です。
dx,dyは転送先、画面上の左上の点の座標。sx,syは転送元、テクスチャ上の左上の点の座標、w,hは幅と高さ、alphaは全体のα値です。
転送元のテクスチャ画像のα値をそのまま使いたい場合は、alphaには255を指定して下さい。

例)
テクスチャ0番の座標(64,0)サイズ32x32を画面座標(0,64)に半透過で表示します。
NSDSp(0,0,64,32,32,64,0,128)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーえすぴーつー
NSDSp2

直接描画

NSDSp2(num,dcx,dcy,sx,sy,w,h,xs,ys,rot,alpha)

●引数
整数テクスチャ番号(0〜15)
整数転送先中心X座標
整数転送先中心Y座標
整数転送元左上X座標
整数転送元左上Y座標
整数変形前幅
整数変形前高さ
実数横の倍率(1.0が元のサイズ)
実数縦の倍率(1.0が元のサイズ)
実数回転角(度単位、0.0が回転無し)
整数α値

テクスチャを回転拡大縮小などの変形処理を加えて画面に転送します。
numはテクスチャ番号です。
dcx,dcyは転送先画面の「中心の」座標、sx,syは転送元テクスチャの「左上の」座標、w,hはテクスチャの「変形前の」幅と高さです。
xs,ysは横・縦の倍率(少数で、1.0が元のサイズ),rotは回転角(度単位で、少数で、0.0が回転無し)です。alphaは全体のα値です。

例)
テクスチャ0番の座標(64,0)サイズ32x32を画面中心座標(16,80)に、半サイズ・90度回転、半透過で表示します。
NSDSp2(0,16,80,64,0,32,32,0.5,0.5,90,128)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーえすぴーつーあっど
NSDSp2Add

直接描画

NSDSp2Add(num,dcx,dcy,sx,sy,w,h,xs,ys,rot,alpha)

●引数
整数テクスチャ番号(0〜15)
整数転送先中心X座標
整数転送先中心Y座標
整数転送元左上X座標
整数転送元左上Y座標
整数変形前幅
整数変形前高さ
実数横の倍率(1.0が元のサイズ)
実数縦の倍率(1.0が元のサイズ)
実数回転角(度単位、0.0が回転無し)
整数α値

テクスチャを回転拡大縮小などの変形処理を加えて画面に転送します。
numはテクスチャ番号です。
dcx,dcyは転送先画面の「中心の」座標、sx,syは転送元テクスチャの「左上の」座標、w,hはテクスチャの「変形前の」幅と高さです。
xs,ysは横・縦の倍率(少数で、1.0が元のサイズ),rotは回転角(度単位で、少数で、0.0が回転無し)です。alphaは全体のα値です。

例)
テクスチャ0番の座標(64,0)サイズ32x32を画面中心座標(16,80)に、半サイズ・90度回転、半透過で表示します。
NSDSp2Add(0,16,80,64,0,32,32,0.5,0.5,90,128)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーえすぴーあっど
NSDSpAdd

直接描画

NSDSpAdd(num,dx,dy,w,h,sx,sy,alpha)

●引数
整数テクスチャ番号(0〜15)
整数転送先左上X座標
整数転送先左上Y座標
整数
整数高さ
整数転送元左上X座標
整数転送元左上Y座標
整数α値

テクスチャをα値を考慮して、加算合成で表示します。その他はNSDSpと同じです。

現状では関係ありませんが、将来的にグラフィックカードの機能を使うときには、なるべくNSDSpAdd,NSDSp2AddとNSDSp,NSDSp2はまとめて実行したほうがいいです。
そのほうがグラフィックカードのモード切替が減らせて、高速化されるからです。
例)
テクスチャ0番の座標(64,0)サイズ32x32を画面座標(0,64)に半加算合成で表示します。
NSDSpAdd(0,0,64,32,32,64,0,128)

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーとらんじしょん
NSDTransition

直接描画

NSDTransition(effectnum,effecttime,rulename)

●引数
整数エフェクト番号
整数持続時間
文字列ルールファイル名

NSDOffMode(true)でオフスクリーンに描き込まれた画像を、実際に画面に反映します。
この関数は、一端画像をNScripterのデータに書き戻してNScripter側のエフェクト処理を呼んでいますので、NScripter側のエフェクトと同程度の重さの処理になります。
NSD〜系の描画だけで実現できるエフェクトは、そちらで実装したほうが高速になります。
このとき、NScripterと同じエフェクトが使えます。また、この関数は引数を省略できます。

ルール画像の指定にはbmpも使えますが、PNGに統一したほうがややこしくないと思います。
例)
オフスクリーンに描き込まれた画像を、実際に画面に反映します。
NSDTransition(1)
例)
print 10,500と同じエフェクトを使いたい場合
NSDTransition(10,500)
例)
print 18,1000,"rule.png"と同じエフェクトを使いたい場合
NSDTransition(18,1000,"rule.png")

/
page top / list / main

Ver.2.95【低水準】
えぬえすでぃーとらんじしょんえふ
NSDTransitionF

直接描画

NSDTransitionF(effectnum,effecttime,rulename)

●引数
整数エフェクト番号
整数持続時間
文字列ルールファイル名

NSDTransition関数は、CTRLキーで高速化したりスペースやクリックでキャンセルしたり出来ます。
NSDTransitionFは高速化やキャンセルが出来ないトランジションを実行します。
そのほかはNSDTransitionと同じです。

例)
オフスクリーンに描き込まれた画像を、実際に画面に反映します。
NSDTransitionF(1)

/
page top / list / main

Ver.2.95【低水準】
えぬえすえんど
NSEnd

基本機能

NSEnd()

NScripterの動作を終了します。

例)
NScripterの動作を終了します。
NSEnd()

/
page top / list / main

Ver.2.94【高水準】
えぬえすえぐぜく
NSExec

NScripter実行

NSExec(script)

●引数
文字列スクリプト文字列

 文字列で指定されたNScripterの命令を実行します。
 命令は一回にひとつだけです。:によるマルチステートメントは使えません。
 複数の命令を実行したい場合は、この命令を続けて複数回呼んでください。
 goto gosub selectなどジャンプが伴う命令、for next命令は使えません。
 命令がLuaを呼び出してもかまいませんが、そこからNSExecを二重に呼んではいけません。
 if文は使えますが、マルチステートメントが使えないので、Lua側のifのほうが書きやすいと思います。

define時に行いたい処理はsystem.luaに裸で書いておけば読み込み時に実行されます。
例)
"amsp 10,100,50"を実行する。
NSExec("amsp 10,100,50")

/
page top / list / main

Ver.2.94【低水準】
えぬえすえぐぜくあにめーしょん
NSExecAnimation

NScripter実行

NSExecAnimation()

NScripterのアニメーション処理を実行します。
普段は定期的に呼ばれている関数ですが、Lua内からは自動では呼ばれないので、
アニメーションを実行する必要がある場合は、時々この命令を呼んでください。
(メッセージ待ちの時などに呼ぶのが一般的な使い方です)

なお、アニメーションによってLua関数NSCALL_animationが呼ばれる可能性がありますが、
NSCALL_animationの中からこの関数を呼ぶと無限ループするので、呼ばないでください。
なお、この関数だけでは表示はされません。NSUpdate()もしくはNSExec("print 1")などを呼ぶ必要があります。
例)
NScripterのアニメーション処理を実行する。
NSExecAnimation()

/
page top / list / main

Ver.2.94【低水準】
えぬえすげっとくりっく
NSGetClick

キーボード・マウス入力

l,r,w,ld,rd=NSGetClick()

●戻り値
真偽値左クリックアップ(true:入力あり、false:入力なし)
真偽値右クリックアップ(true:入力あり、false:入力なし)
整数ホイール入力(0:入力なし、1以上:上回転、-1以下:下回転)
真偽値左クリックダウン(true:入力あり、false:入力なし)
真偽値右クリックダウン(true:入力あり、false:入力なし)

最後に入力されたマウスクリックを取得します。
lは左クリックアップ(trueかfalse)、rは右クリックアップ(trueかfalse)、wはホイール入力(整数)
ldは左クリックダウン(trueかfalse)、rdは右クリックダウン(trueかfalse)です。
基本的にはlとrとwを見ておけばいいです。アクションゲーム等でldやrdを使うこともあるかもしれません。
Luaは戻り値を省略できるので、後ろが必要ない場合は省けます。

ホイールクリックは取得できません。(by senzogawa)
例)
最後に入力されたマウスクリックを取得する。
l=NSGetMouse() -- 左クリックだけ取得
l,r,w=NSGetMouse() -- 左右クリックとホイールを取得
l,r,w,ld,rd=NSGetMouse() -- 全部取得

/
page top / list / main

Ver.2.94【低水準】
えぬえすげっとふぁいるいんふぉ
NSGetFileInfo

システム情報

arcname,offset,length=NSGetFileInfo(filename)

●戻り値
文字列アーカイブのファイル名(無い場合はnil)
整数スタート位置offset(ファイル先頭から)
整数サイズlength(単位バイト)

指定したファイルfilenameをnsaもしくはns2アーカイブから探し、
アーカイブのファイル名arcnameと、スタート位置offset(ファイル先頭から)と、
サイズlength(単位バイト)を返します。
ただし、アーカイブでなく生でそのファイルがある場合は、
arcnameにはfilenameそのまま、位置とサイズにはともに0を返します。
(生ファイルのサイズを代入するわけではないので注意)
ファイルがなかったときはarcnameにnilを返します。

例)
"test.dat"の情報を取得する。
arcname,offset,length=NSGetFileInfo("test.dat")

/
page top / list / main

Ver.2.94【高水準】
えぬえすげっといんとばりゅー
NSGetIntValue

変数操作

num=NSGetIntValue(var)

●引数
整数数値変数番号
●戻り値
整数数値変数番号の値

NScripterの数値変数から値を取得します。

例)
%10の値を取得する。
num=NSGetIntValue(10) -- %10の値が返る。

/
page top / list / main

Ver.2.94【低水準】
えぬえすげっときー
NSGetKey

キーボード・マウス入力

b=NSGetKey(keycode)

●引数
文字列キー種別
●戻り値
真偽値左クリックアップ(true:入力あり、false:入力なし)

そのキーが今押されているかどうかをtrueかfalseで返します。
NScripter命令の「checkkey」とだいたい同じです。
keycodeには次の文字列が指定できます。
 ・英字1文字、数字、スペースなどはそのまま指定できます。
 ・"ESC" エスケープキー
 ・"SPACE"でもスペースキーは取得できます。
 ・"RETURN" "ENTER" リターンキー
 ・"CTRL" コントロールキー
 ・"UP" "DOWN" "LEFT" "RIGHT" カーソルキー上下左右
 ・"F1"〜"F12" ファンクションキー
 ・"PAGEUP" "PAGEDOWN" ページアップ、ダウンキー
 ・"SHIFT" シフトキー

例)
キーが今押されているかどうかを取得する。
b=checkkey("CTRL") -- CTRLキーが押されていればtrue

/
page top / list / main

Ver.2.94【低水準】
えぬえすげっとまうす
NSGetMouse

キーボード・マウス入力

x,y=NSGetMouse()

●戻り値
整数マウスのX座標(画面外の場合は-1)
整数マウスのY座標(画面外の場合は-1)

マウスの位置を取得します。画面外の場合は-1,-1が返ります。

例)
マウスの位置を変数x,yに取得する。
x,y=NSGetMouse()

/
page top / list / main

Ver.2.94【低水準】
えぬえすげっとすきっぷ
NSGetSkip

システム情報

skipmode=NSGetSkip()

●戻り値
整数スキップモード(0:通常、1:スキップモード、2:オートモード)

スキップ状態を取得します。0=スキップモードではない 1=スキップモード 2=オートモード です。

例)
スキップ状態を取得する。
skipmode=NSGetSkip()

/
page top / list / main

Ver.2.94【高水準】
えぬえすげっとえすてぃーあーるばりゅー
NSGetStrValue

変数操作

str=NSGetStrValue(var)

●引数
整数文字列変数番号
●戻り値
文字列文字列変数番号の値

NScripterの文字列変数から値を取得します。

例)
$12の値を取得する。
str=NSGetStrValue(12) -- $12の値が返る。

/
page top / list / main

Ver.2.94【低水準】
えぬえすげっとうぃんどうさいず
NSGetWindowSize

システム情報

width,height=NSGetWindowSize()

●戻り値
整数ウィンドウの幅
整数ウィンドウの高さ

NScripterのウィンドウの表示領域の大きさを得ます。

例)
NScripterのウィンドウの表示領域の大きさを取得する。
width,height=NSGetWindowSize()

/
page top / list / main

Ver.2.94【高水準】
えぬえすごーさぶ
NSGosub

NScripter実行

NSGosub(label)

●引数
文字列ラベル文字列

 文字列で指定したラベルにgosubジャンプします。つまりシナリオスクリプトのgosub命令と等価です。

例)
"*sub"にジャンプする。
NSGosub ("*sub")

/
page top / list / main

Ver.2.94【高水準】
えぬえすごーとぅー
NSGoto

NScripter実行

NSGoto(label)

●引数
文字列ラベル文字列

 文字列で指定したラベルにgotoジャンプします。つまりシナリオスクリプトのgoto命令と等価です。
 ここで、ジャンプするのはあくまでシナリオスクリプト(00.txt等)の実行位置であり、
 Luaの実行はそのまま続行されることに注意してください。

例)
"*loop"にジャンプする。
NSGoto ("*loop")

/
page top / list / main

Ver.2.94【低水準】
えぬえすいんばりでいと
NSInvalidate

画面描画

NSInvalidate(lx,uy,rx,dy)

●引数
整数左上X座標
整数左上Y座標
整数右下X座標
整数右下Y座標

無効領域を追加します。この後NSUpdateで再描画します。

ver.2.95にて利用可能となりました。
例)
無効領域を追加する。
NSInvalidate(10,10,100,100) -- (10,10)-(100,100) 幅と高さではなく、「座標」です。

/
page top / list / main

Ver.2.94【低水準】
えぬえすりにあ
NSLinear

スプライン補完

y=NSLinear(x0,y0,x1,y1,x)

●引数
整数直線上の点X0
整数直線上の点Y0
整数直線上の点X1
整数直線上の点Y1
整数y=f(x)のxの値
●戻り値
整数y=f(x)のyの値

点x0,y0と点x1,y1を通るような関数fの、y=f(x)の値を求めます。

20090419版以降で実装。
例)
(1,5)と(3,15)を通る直線はy=5xですので、x=4の時の値20がyに代入されます。
y=NSLinear(1,5,3,15,4)

/
page top / list / main

Ver.2.94【低水準】
えぬえすあにめーしょんいんたーばる
NSLuaAnimationInterval

アニメーション

NSLuaAnimationInterval(intervalms)

●引数
整数アニメーション割り込みの発生間隔(ミリ秒)

アニメーション割り込みの発生間隔を指定します。
ミリ秒単位で指定出来ますが、その時間で必ず来るとは限りません。
物理的に間に合わない場合はかなり遅れて飛んでくることになります。
実際にどのタイミングで呼び出されたかは、NSTimer()を使って取得してください。

例)
アニメーション割り込みの発生間隔を指定する。
NSLuaAnimationInterval(20) -- 20ミリ秒に一回呼ばれる

NSCALL_animation / NSLuaAnimationMode / NSTimer /
page top / list / main

Ver.2.94【低水準】
えぬえすあにめーしょんもーど
NSLuaAnimationMode

アニメーション

NSLuaAnimationMode(boolswitch)

●引数
整数アニメーション割り込みの開始フラグ(true:開始、false:停止)

NSLuaアニメーション割り込みを開始したり止めたり出来ます。
デフォルトはfalseですので、設定が終わったらこの関数でtrueを指定して、
割り込みを開始してください。Luaで操作したいオブジェクトがひとつもないときは、
falseを指定して割り込みをとめることが出来ます。trueを指定すればまた割り込みが発生します。

例)
NSLuaアニメーション割り込みを開始する。
NSLuaAnimationMode(true)

NSCALL_animation / NSLuaAnimationInterval / NSTimer /
page top / list / main

Ver.2.94【低水準】
えぬえすおっぐくろーず
NSOggClose

OGGファイル

NSOggClose(ch)

●引数
整数チャンネル番号

指定したチャンネルの演奏を終了します。

例)
ストリーミング再生チャンネル4の演奏を終了する。
NSOggClose(4)

/
page top / list / main

Ver.2.94【低水準】
えぬえすおっぐいずぷれいいんぐ
NSOggFade

OGGファイル

NSOggFade(ch,startvol,endvol,time,closeflag)

●引数
整数チャンネル番号
整数フェード開始音量
整数フェード終了音量
整数フェード時間(ミリ秒)
整数フェード後終了フラグ(true:終了、false:続行)

指定したチャンネルをフェード操作します。startvolからendvolまで変化します。timeの単位はミリ秒です。
closeflag=trueでフェード終了後ファイルをクローズします。falseの時は演奏続行です。

例)
ストリーミング再生チャンネル10の演奏状態をispに取得する。
NSOggFade(4,-10000,0,1000,false)

/
page top / list / main

Ver.2.94【低水準】
えぬえすおっぐいずぷれいいんぐ
NSOggIsPlaying

OGGファイル

isplaying=NSOggIsPlaying(ch)

●引数
整数チャンネル番号
●戻り値
整数演奏状態(true:演奏中、false:停止中)

指定したチャンネルが演奏していればtrue していなければfalseが返ります。

20090419版以降で戻り値が整数となるバグ修正。
例)
ストリーミング再生チャンネル10の演奏状態をispに取得する。
isp=NSOggIsPlaying(10)

/
page top / list / main

Ver.2.94【低水準】
えぬえすおっぐろーど
NSOggLoad

OGGファイル

NSOggLoad(ch,filename)

●引数
整数チャンネル番号
文字列ファイル名

ストリーミング再生チャンネルchにファイルをロードします。再生はしません。
nsogg2.dllが必要です。

例)
ストリーミング再生チャンネル3に"se.ogg"をロードする。
NSOggLoad(3,"se.ogg")

/
page top / list / main

Ver.2.94【低水準】
えぬえすおっぐぷれい
NSOggPlay

OGGファイル

NSOggPlay(ch,isloop)

●引数
整数チャンネル番号
真偽値ループフラグ(true:ループ、false:一回だけ)

ロードしたファイルを再生します。isloop=trueでループ、falseで一回だけです。
nsogg2.dllが必要です。

例)
ストリーミング再生チャンネル3を一回だけ再生する。
NSOggPlay(3,false)

/
page top / list / main

Ver.2.94【低水準】
えぬえすおっぐぷれいつー
NSOggPlay2

OGGファイル

NSOggPlay2(ch,point)

●引数
整数チャンネル番号
実数ループ開始点(秒)

ロードしたファイルを再生します。ループ開始点を指定できます。
単位は秒で、double型(実数型)で指定できます。

例)
ループ開始点を1.4142秒後としてストリーミング再生チャンネル4を再生する。
NSOggPlay2(4,1.4142)

/
page top / list / main

Ver.2.94【低水準】
えぬえすおっぐぼりゅーむ
NSOggVolume

OGGファイル

NSOggVolume(ch,vol)

●引数
整数チャンネル番号
整数音量(0:最大、-10000:最小)

指定したチャンネルの音量を変更します。
0〜-10000が指定できます。0が最大、-10000が最小です。

例)
ストリーミング再生チャンネル3の音量を最大にする。
NSOggVolume(3,0)

/
page top / list / main

Ver.2.94【低水準】
えぬえすおっけーぼっくす
NSOkBox

ダイアログ

NSOkBox(text,title)

●引数
文字列本文
文字列タイトル文字列

ダイアログボックスを表示します。
NScripterでいうmesbox命令ですが、本文とタイトルの指定順が逆になっていますのでご注意ください。
(こちらのほうがWindowsでは標準のようなので、標準に従うことにしました。)

例)
ダイアログボックスを表示する。
NSOkBox("本文です","タイトルです。")

/
page top / list / main

Ver.2.94【高水準】
えぬえすぽっぷこんま
NSPopComma

引数操作

NSPopComma()

引数列のコンマをひとつ読み飛ばします。引数と引数の間には普通コンマがあります。

例)
引数列のコンマをひとつ読み飛ばす。
NSPopComma()

/
page top / list / main

Ver.2.94【高水準】
えぬえすぽっぷあいでぃー
NSPopID

引数操作

id=NSPopID()

●戻り値
文字列識別子形式の文字列の引数(小文字)

NScripterの識別子形式の文字列の引数をひとつ読み込みます。大文字が含まれていた場合小文字に変換されます。
識別子形式とは、たとえばbg命令のblackやwhiteだとか、ld命令のl r cだとかのように、""で囲まれていない文字列です。

例)
idに識別子形式の文字列の引数をひとつ読み込む。
id=NSPopID()

/
page top / list / main

Ver.2.94【高水準】
えぬえすぽっぷいんと
NSPopInt

引数操作

number=NSPopInt()

●戻り値
整数数値の引数

NScripterの数値の引数をひとつ読み込みます。

例)
numberに数値の引数をひとつ読み込む。
number=NSPopInt()

/
page top / list / main

Ver.2.94【高水準】
えぬえすぽっぷいんとれふ
NSPopIntRef

引数操作

ivalindex=NSPopIntRef()

●戻り値
整数数値変数引数の番号

NScripterの数値変数引数の番号をひとつ読み込みます。%5なら5です。

例)
ivalindexに数値変数引数の番号をひとつ読み込む。
ivalindex=NSPopIntRef()

/
page top / list / main

Ver.2.94【高水準】
えぬえすぽっぷらべる
NSPopLabel

引数操作

label=NSPopLabel()

●戻り値
文字列ラベル名の引数(小文字)

NScripterのラベル名をひとつ読み込みます。大文字だった場合小文字に変換されます。

例)
labelにラベル名をひとつ読み込む。
label=NSPopLabel()

/
page top / list / main

Ver.2.94【高水準】
えぬえすぽっぷえすてぃーあーる
NSPopStr

引数操作

str=NSPopStr()

●戻り値
文字列文字列の引数

NScripterの文字列の引数をひとつ読み込みます。

例)
strに文字列の引数をひとつ読み込む。
str=NSPopStr()

/
page top / list / main

Ver.2.94【高水準】
えぬえすぽっぷえすてぃーあーるれふ
NSPopStrRef

引数操作

svalindex=NSPopStrRef()

●戻り値
整数文字列変数引数の番号

NScripterの文字列変数引数の番号をひとつ読み込みます。$10なら10です。

例)
svalindexに文字列変数引数の番号をひとつ読み込む。
svalindex=NSPopStrRef()

/
page top / list / main

Ver.2.94【高水準】
えぬえすりたーん
NSReturn

NScripter実行

NSReturn()

 シナリオスクリプトのサブルーチンからreturnします。つまりシナリオスクリプトのreturn命令と等価です。

例)
シナリオスクリプトのサブルーチンからreturnする。
NSReturn()

/
page top / list / main

Ver.2.94【低水準】
えぬえすせーぶぽいんと
NSSavePoint

NScripter実行

NSSavePoint()

NSExec("savepoint")は駄目です。NSSavePoint()という専用の関数を使ってください。

例)
セーブポイントを更新する。
NSSavePoint()

/
page top / list / main

Ver.2.94【高水準】
えぬえすせっといんとばりゅー
NSSetIntValue

変数操作

NSSetIntValue(var, num)

●引数
整数数値変数番号
整数整数

NScripterの数値変数に値を設定します。

例)
%3に10を設定する。
NSSetIntValue(3,10) -- %3=10

/
page top / list / main

Ver.2.94【高水準】
えぬえすせっとえすてぃーあーるばりゅー
NSSetStrValue

変数操作

NSSetStrValue(var, str)

●引数
整数文字列変数番号
整数整数

NScripterの文字列変数に値を設定します。

例)
$10に"test"を設定する。
NSSetStrValue(10,"test") -- $10="test"

/
page top / list / main

Ver.2.94【低水準】
えぬえすすりーぷ
NSSleep

NScripter実行

NSSleep(sleepms)

●引数
整数動作を明け渡す時間(ミリ秒)

指定した時間(ミリ秒単位)ほかのスレッドに動作を明け渡します。
NScripter命令の「wait」とだいたい同じです。
動作をすぐにNScripterに戻すスクリプトでは必要ありませんが、
長時間Luaスクリプトを走らせっぱなしにするとCPU使用率が上がるので、
適度にNSSleep(1)とかNSSleep(2)とかを呼んでCPU使用率を下げてください。

例)
1ミリ秒間ほかのスレッドに動作を明け渡する。
NSSleep(1)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーつーくりあ
NSSp2Clear

拡張スプライト

NSSp2Clear(num)

●引数
整数拡張スプライト番号

拡張スプライトを消去します。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。

例)
拡張スプライト番号2を消去する。
NSSp2Clear(2)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーつーげっといんふぉ
NSSp2GetInfo

拡張スプライト

width,height,cellnum=NSSp2GetInfo(num)

●引数
整数拡張スプライト番号
●戻り値
整数
整数高さ
整数セル数

拡張スプライトの情報を得ます。幅、高さ、セル数が得られます。

Luaは戻り値を全部使わなくてもかまいません。
例)
拡張スプライト番号2の幅と高さを取得する。
w,h=NSSp2GetInfo(2)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーつーげっとぽす
NSSp2GetPos

拡張スプライト

cx,cy,xs,ys,rot,alpha,ope=NSSp2GetPos(num)

●引数
整数拡張スプライト番号
●戻り値
整数中心X座標
整数中心Y座標
整数横倍率
整数縦倍率
整数回転角
整数α値(0:透過、255:不透過)
整数出力オプション(0:普通、1:加算合成、2:減算合成)

拡張スプライトの位置を得ます。中心座標X,Y,横倍率,縦倍率,回転角,α値,出力オプションが得られます。

例)
拡張スプライト番号7の中心座標をcx,cyに取得する。
cx,cy=NSSp2GetPos(7)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーつーろーど
NSSp2Load

拡張スプライト

NSSp2Load(num,filename)

●引数
整数拡張スプライト番号
文字列ファイル名

拡張スプライト(lsp2系)をロードします。
画面外にロードしますので、移動しないと見えません。

例)
拡張スプライト番号0に":a/2,0,3;test.bmp"をロードする。
NSSp2Load(0,":a/2,0,3;test.bmp")

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーつーむーぶ
NSSp2Move

拡張スプライト

NSSp2Move(num,cx,cy,xs,ys,rot,alpha,ope)

●引数
整数拡張スプライト番号
整数移動先中心X座標
整数移動先中心Y座標
整数横倍率
整数縦倍率
整数回転角
整数α値(0:透過、255:不透過)
整数出力オプション(0:普通、1:加算合成、2:減算合成)

拡張スプライトを移動します。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。
ope=0で普通、ope=1で加算ブレンディング、ope=2で減算ブレンディングです。

例)
拡張スプライト番号3を100,100に移動し、不透過値を255にする。
NSSp2Move(0,100,100,100,100,45,255,0)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーつーびじぶる
NSSp2Visible

拡張スプライト

NSSp2Visible(num,isvisible)

●引数
整数拡張スプライト番号
真偽値表示フラグ(true:表示、false:非表示)

拡張スプライトを表示したり消したりします。trueで表示、falseで非表示です。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。

例)
拡張スプライト番号1を表示する。
NSSp2Visible(1,true)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーせる
NSSpCell

スプライト

NSSpCell(num,c)

●引数
整数スプライト番号
整数セル番号

スプライトのセルを設定します。

例)
スプライト番号4のセルを0に設定する。
NSSpCell(4,0)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーくりあ
NSSpClear

スプライト

NSSpClear(num)

●引数
整数スプライト番号

スプライトを消去します。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。

例)
スプライト番号2を消去する。
NSSpClear(2)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーげっといんふぉ
NSSpGetInfo

スプライト

width,height,cellnum=NSSpGetInfo(num)

●引数
整数スプライト番号
●戻り値
整数
整数高さ
整数セル数

スプライトの情報を得ます。幅、高さ、セル数が得られます。

Luaは戻り値を全部使わなくてもかまいません。
例)
スプライト番号2の幅と高さを取得する。
w,h=NSSpGetInfo(2)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーげっとぽす
NSSpGetPos

スプライト

lx,ly,alpha=NSSpGetPos(num)

●引数
整数スプライト番号
●戻り値
整数左上X座標
整数左上Y座標
整数α値(0:透過、255:不透過)

スプライトの位置を得ます。左上座標X,Y,α値が得られます。

例)
スプライト番号2の左上座標を取得する。
lx,ly=NSSpGetPos(2)

/
page top / list / main

Ver.2.94【低水準】
えぬえすすぷらいん
NSSpline

スプライン補完

y=NSSpline(num,x)

●引数
整数データ番号(0〜99)
整数求めたいxの値
●戻り値
整数スプライン補間によるyの値

NSDefSplineで定義したデータ番号を指定し、求めたいxの値を指定すると、スプライン補間によってyの値が返ります。
ここで、xはxarrayに指定した最小値と最大値の間になくてはなりません。

20090419版以降で実装。
例)
y=6が返ります。
xa={1,2,4} ya={2,4,8}
NSDefSpline(0,xa,ya)
y=NSSpline(0,3)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーろーど
NSSpLoad

スプライト

NSSpLoad(num,filename)

●引数
整数スプライト番号
文字列ファイル名

普通のスプライト(lsp系)をロードします。
ファイル名にはlspで使えるのと同じタグが使えます。
画面外にロードしますので、移動しないと見えません。

例)
スプライト番号0に":a/2,0,3;test.bmp"をロードする。
NSSpLoad(0,":a/2,0,3;test.bmp")

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーむーぶ
NSSpMove

スプライト

NSSpMove(num,lx,ly,alpha)

●引数
整数スプライト番号
整数移動先X座標
整数移動先Y座標
整数α値(0:透過、255:不透過)

スプライトを移動します。
mspと同じく、この命令だけでは画面に反映されません。
適切なタイミングでNSUpdate()を呼んでください。
(ほかのスプライトも全部描画してからまとめて呼んだほうが効率がいいです)

例)
スプライト番号3を100,100に移動し、不透過値を255にする。
NSSpMove(3,100,100,255)

/
page top / list / main

Ver.2.94【低水準】
えぬえすえすぴーびじぶる
NSSpVisible

スプライト

NSSpVisible(num,isvisible)

●引数
整数スプライト番号
真偽値表示フラグ(true:表示、false:非表示)

スプライトを表示したり消したりします。trueで表示、falseで非表示です。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。

例)
スプライト番号1を表示する。
NSSpVisible(1,true)

/
page top / list / main

Ver.2.94【低水準】
えぬえすしすてむこーる
NSSystemCall

NScripter実行

NSSystemCall(callstr)

●引数
文字列機能名

指定したNScripterの機能を呼び出します。
NScripter命令で言うmenu_???命令やsystemcall命令等をまとめたものです。
メッセージを送るだけなので、即時実行されないこともあります。
(その場合、NScripterが次にメッセージを処理したときに実行されます)
次の文字列が指定できます。
★close  「閉じる」ボタンを押したのと同じ動作をします。
★end  NScripterを終了します。何も聞いてこないので注意してください。end命令と同じです。
★reset  NScripterをリセットします。何も聞いてこないので注意してください。reset命令と同じです。
★full  フルスクリーン化します。
★window  ウィンドウ化します。
★automode オートモード状態にします。
★skip  スキップ状態にします。
★skipoff  スキップ状態を解除します。

例)
NScripterの「閉じる」ボタン機能を呼び出す。
NSSystemCall("close")

/
page top / list / main

Ver.2.94【低水準】
えぬえすたいまー
NSTimer

システム情報

count=NSTimer()

●戻り値
整数Windowsが起動してからの経過時間(ミリ秒)

1msに1増え続けるタイマーを取得します。resettimer gettimerと同じ精度です。
Windowsが起動してから経過したミリ秒を指すカウンタは、ひたすら増えていくだけです。
この関数からは値を取得することしか出来ません。二回呼び出して、その差をとることで、
経過時間が正確にわかります。

例)
1msに1増え続けるタイマーを取得する。
count=NSTimer()

NSCALL_animation / NSLuaAnimationInterval / NSLuaAnimationMode /
page top / list / main

Ver.2.94【低水準】
えぬえすあっぷでーと
NSUpdate

画面描画

NSUpdate()

無効領域を再描画します。print 1と等価です。

例)
無効領域を再描画する。
NSUpdate()

/
page top / list / main

Ver.2.94【低水準】
えぬえすいえすのーぼっくす
NSYesNoBox

ダイアログ

result=NSYesNoBox(text,title)

●引数
文字列本文
文字列タイトル文字列
●戻り値
真偽値はいを押せばtrue、いいえならfalse

はい/いいえをたずねるダイアログボックスを表示します。戻り値はbooleanです。
NScripterでいうyesnobox命令ですが、本文とタイトルが逆になっていますのでご注意ください。

例)
はい/いいえをたずねるダイアログボックスを表示する。
result=NSYesNoBox("質問です","タイトルです") -- はいを押せばresult=true、いいえならresult=false

/
page top / list / main