Ver.2.94【特殊】
えぬえるどぅふぁいる
NL_dofile
NL_dofile(Luaスクリプトファイル名)
●引数
文字列Luaスクリプトファイル名
Lua標準関数のdofileではNSAやNS2アーカイブの中のファイルは実行できませんが、
NL_dofileはアーカイブの中のファイルも実行できます。
もちろん、system.luaもアーカイブの中から実行できます。
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるあにめーしょん
NSCALL_animation
function NSCALL_animation()
●戻り値
真偽値画面更新フラグ(true:更新、false:更新しない)
セルアニメーションと同じく、一定時間経過ごとに呼び出されます。
引数はありません。
戻り値にtrueを返すと画面を更新します。falseだと画面を更新しません。
※
なお、アニメーション割り込みとは言ってもマルチスレッドではありません。
通常セルアニメーションが発生するクリック待ちなどのところでこの関数も呼ばれるだけです。
この関数が呼ばれている間は他の動作はストップします。
例)function NSCALL_animation()
NSLuaAnimationInterval /
NSLuaAnimationMode /
NSTimer /
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるくろーず
NSCALL_close
function NSCALL_close()
●戻り値
真偽値「閉じる」押下後の動作(true:終了処理の続行、false:キャンセル)
ウィンドウの「閉じる」をクリックしたときの動作を指定します。
引数はありません。戻り値trueでプログラムを終了、falseでキャンセルです。
戻り値:この後の動作(trueで終了処理の続行、falseでキャンセル)
※
この命令を使うと、デフォルトの処理(ダイアログ)は行われなくなります。
例)function NSCALL_close ()
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるえんど
NSCALL_end
function NSCALL_end()
プログラムが終了する直前の動作を指定します。
引数も戻り値もありません。
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるろーど
NSCALL_load
function NSCALL_load(savenum)
●引数
整数セーブ番号
セーブデータがロードされた直後に呼び出されます。
saveコールバック関数で保存したデータを読み込んで処理をしてください。
引数はセーブ番号、戻り値はありません。
例)function NSCALL_load(savenum)
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるりせっと
NSCALL_reset
function NSCALL_reset()
*define節からgame命令によって、もしくはリセットによって*startに飛んだときに呼ばれます。
※
なお、単にgoto *startでは呼ばれません(それはリセットではないので)。
例)function NSCALL_reset()
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるせーぶ
NSCALL_save
function NSCALL_save(savenum)
●引数
整数セーブ番号
シナリオスクリプト側のデータが実際にセーブされる直前に呼び出されます。
セーブされるべきなのは、この関数が呼び出されたそのときのデータではなく、
最後に到達したセーブポイント時点でのデータです。間違わないようご注意ください。
引数はセーブ番号、戻り値はありません。
※
この命令を使っても、その後でデフォルトの処理はちゃんと行われます。
例)function NSCALL_save(savenum)
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるせーぶぽいんと
NSCALL_savepoint
function NSCALL_savepoint()
セーブポイントに到達したときに呼び出されます。
Lua側でセーブしておきたいデータがある場合はこの段階でメモリ内のセーブデータを更新してください。
引数も戻り値もありません。
※
この命令を使っても、その後でデフォルトの処理はちゃんと行われます。
例)function NSCALL_savepoint()
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるたぐ
NSCALL_tag
function NSCALL_tag(tag)
●引数
文字列タグテキスト
デフォルトのpretextgosubのタイミングで呼び出されます。
この命令を使うとデフォルトの処理は行われなくなります。pregextgosubも無効になります。
※
NSCALL_tagからNSGotoやNSGosub等でジャンプしないでください。戻ってこれなくなります。
例)function NSCALL_tag(tag)
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるてきすと
NSCALL_text
function NSCALL_text(printstr)
●引数
文字列表示文(変換後)
表示文の、変換が終わったものが送られます。実際に表示される文字列です。
テキストを表示します。@や\を読み込んだら対応するクリック待ちも行ってください。
※
この命令を使うと、デフォルトの処理は行われなくなります。textgosubも無効になります。
例)function NSCALL_text(printstr)
/
page top /
list /
mainVer.2.94【コールバック】
えぬえすこーるてきすとぜろ
NSCALL_text0
function NSCALL_text0(plainstr)
●引数
文字列表示文(変換前)
表示文の、表示テキストが渡されたタイミングで呼び出されます。
この段階では変数を展開したり半角数字を全角に直したりしていません。
自動で変換をしたくない場合はこちらを設定します。
※
この命令を使うと、デフォルトの変換処理やテキスト表示処理を呼び出しません。
例)function NSCALL_text0(plainstr)
/
page top /
list /
mainVer.2.94【高水準】
えぬえすちぇっくこんま
NSCheckComma
b=NSCheckComma()
●戻り値
真偽値次がコンマならtrue、コンマでなければfalse
次の記号がコンマかどうかを調べます。読み込みはしません。引数の数を変えたいときに使います。
例)b=NSCheckComma() -- 次がコンマならb=true コンマでなければb=falseが代入される。
/
page top /
list /
mainVer.2.95【低水準】
えぬえすくりっく
NSClick
NSClick()
click命令と等価です。
/
page top /
list /
mainVer.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としてください。
例)--- 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 /
mainVer.2.95【高水準】
えぬえすこむめいん
NSCOM_main
function NSCOM_main() end
0.txt 00.txt nscript.datがなくて、system.luaだけがあるとき、system.luaだけで起動するようになりました。
;mode800等の設定は、一行目に--mode800 などのようにして行います(動作は0.txtの時と同じ)
例)
--mode800
function NSCOM_main(){
NSExec("puttext \"起動した!\"")
NSClick()
NSEnd()
}
/
page top /
list /
mainVer.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〜系の命令よりも高速です。
αブレンディングも重ね合わせや変形の必要もない画像はなるべくこの関数で描画してください。
例)NSDBlt(0,0,64,32,32,64,0)
/
page top /
list /
mainVer.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]=α値です。
例)NSDCall(10,"*200,60",fontproc,"20,20,あいうえお")
例)NSDCall(8,"test.png",filterproc,"gauss")
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーくりあ
NSDClear
NSDClear()
画面を真っ黒でクリアします。
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーこぴーとぅびーじー
NSDCopyToBg
NSDCopyToBg()
NSD〜系の画像処理は、NScripterの描画処理とは独立しています。
したがって、Lua関数から抜けたり、Lua内部からNScripterの元々の機能を呼び出すと、描画している画像は全部上書きされてしまいます。
残す必要がある場合は、この関数を実行することで、今現在の画面をNScripter上の「背景画面」としてコピーすることが出来ます。
なお、この命令はNScripter側のBGロードと同じ処理をしていますので、立ち絵は全部消去されます。
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーでりーと
NSDDelete
NSDDelete(num)
●引数
整数テクスチャ番号(0〜15)
テクスチャを削除します。なお、明示的に削除しなくても、同じ番号にテクスチャをロードすると古いテクスチャは削除されます。
使わなくなったテクスチャは削除するとメモリが節約できます。
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーでぃーえるえる
NSDDLL
procnum=NSDDLL(dllname,funcname)
●引数
文字列DLLファイル名
文字列関数名
NSD系命令のテクスチャ作成時に呼び出すDLL関数を設定します。
Luaファイル読み込み時に一度だけ実行してください。
戻り値の番号はNSDCall関数にて引数に指定します。
例)fontproc=NSDDLL("deffont.dll","Font")
/
page top /
list /
mainVer.2.94【低水準】
えぬえすでふすぷらいん
NSDefSpline
NSDefSpline(num,xarray,yarray)
●引数
整数データ番号(0〜99)
配列xの座標を小さい順に格納した配列
配列xにそれぞれ対応するyの値を格納した配列
numにはスプライン補間のデータ番号(0〜99)を指定します。
xarrayにxの座標を小さい順に格納した配列、yarrayにそのxにそれぞれ対応するyの値を格納した配列を渡します。
スプライン補間に必要な計算をして、そのデータ番号に登録します。
※
なお、スプライン補間のためには点のデータは最低でも三つ必要です。
20090419版以降で実装。
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーふぃる
NSDFill
NSDFill(lx,ly,rx,ry,r,g,b)
●引数
整数左上X座標
整数左上Y座標
整数右下X座標
整数右下Y座標
整数赤成分(0〜255)
整数緑成分(0〜255)
整数青成分(0〜255)
画面の指定した領域を指定した色で塗りつぶします。
それぞれ、左上の座標、右下の座標、RGBの指定(0〜255で)です。
例)NSDFill(0,0,639,479,255,255,255)
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーげっとさいず
NSDGetSize
width,height=NSDGetSize(num)
●引数
整数テクスチャ番号(0〜15)
テクスチャのサイズを取得します。
例)width,height=NSDGetSize(0)
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーろーど
NSDLoad
NSDLoad(num,filename)
●引数
整数テクスチャ番号(0〜15)
文字列PNGファイル名
PNGファイルをテクスチャとしてロードします。アーカイブからでも裸でも読めます(ただし最新版のnspng.dllが必要)
numはテクスチャ番号です。0から15が指定できます。
この関数群は画像の一部を指定して転送することが出来ますので、一緒に使うチップは連結してまとめて置いてください。
(これは、将来的にグラフィックカードのテクスチャ機能に置き換えるときに、テクスチャ切り替えを少なくして高速化するためです)
例)NSDLoad(2,"test.png")
例)NSDLoad(3,"*32,32")
-- 色指定を省略すると完全透明なテクスチャになります。
-- これはNSDLoadでは使い道がありませんが、後で説明するNSDCallで使います
例)NSDLoad(4,"*48,24,128,64,32,255")
/
page top /
list /
mainVer.2.94【高水準】
えぬえすどぅいべんつ
NSDoEvents
b=NSDoEvents()
●戻り値
真偽値trueのときは直ちにNScripterに処理を戻す
時間のかかる関数からは時々これを呼んでWindowsのメッセージを処理してください。
戻り値は終了フラグです。trueのときは直ちに関数から抜けてNScripterに処理を戻してください。
例)b=NSDoEvents() -- b==trueのときは処理をやめてLua関数から抜けること
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーおふもーど
NSDOffMode
NSDOffMode(mode)
●引数
真偽値trueでオフスクリーンバッファに変更
NSDOffMode(true)で、NSD系命令の書きこみ先をオフスクリーンバッファに変更します。
NSDOffMode(false)で、NSD系命令の書きこみ先は画面になります。デフォルトの書き込み先は画面です。
NSDOffMode(true)の時は、NSDPresent、NSDPresentRectは使えません(画面には書きこんでいないため)。
この命令は、次のNSDTransitionと組み合わせて、トランジションを実現するために使います。
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーぷりぜんと
NSDPresent
NSDPresent()
画面を実際に更新します。ウィンドウ内が再描画されます。
NSDPresent()は全画面、NSDPresetnRect(lx,ly,rx,ry)は指定した矩形領域が再描画されます(それぞれ左上座標、右上座標です)
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーぷりぜんとれくと
NSDPresentRect
NSDPresentRect(lx,ly,rx,ry)
●引数
整数左上X座標
整数左上Y座標
整数右下X座標
整数右下Y座標
画面を実際に更新します。ウィンドウ内が再描画されます。
NSDPresent()は全画面、NSDPresetnRect(lx,ly,rx,ry)は指定した矩形領域が再描画されます(それぞれ左上座標、右上座標です)
例)NSDPresentRect(0,0,319,479)
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーせっとすぷらいと
NSDSetSprite
NSDSetSprite(spnum,texnum(,tag))
NSD系命令用のテクスチャを、NScripterのスプライトに変換します。
タグは省略すると"a;"になります。
NSD系命令のテクスチャは常にα付きなので、:a以外には変換できません。
NSD系命令のテクスチャにはセルやアニメ設定の概念がないので、設定が必要ならタグを指定する必要があります。
DLLで作ったフォント画像をNScripterのテクスチャにしたい時などに使えると思います。
例)NSDSetSprite(0,8)
例)NSDSetSprite(3,10,":a/2,0,3;")
/
page top /
list /
mainVer.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を指定して下さい。
例)NSDSp(0,0,64,32,32,64,0,128)
/
page top /
list /
mainVer.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は全体のα値です。
例)NSDSp2(0,16,80,64,0,32,32,0.5,0.5,90,128)
/
page top /
list /
mainVer.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は全体のα値です。
例)NSDSp2Add(0,16,80,64,0,32,32,0.5,0.5,90,128)
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーえすぴーあっど
NSDSpAdd
NSDSpAdd(num,dx,dy,w,h,sx,sy,alpha)
●引数
整数テクスチャ番号(0〜15)
整数転送先左上X座標
整数転送先左上Y座標
整数幅
整数高さ
整数転送元左上X座標
整数転送元左上Y座標
整数α値
テクスチャをα値を考慮して、加算合成で表示します。その他はNSDSpと同じです。
※
現状では関係ありませんが、将来的にグラフィックカードの機能を使うときには、なるべくNSDSpAdd,NSDSp2AddとNSDSp,NSDSp2はまとめて実行したほうがいいです。
そのほうがグラフィックカードのモード切替が減らせて、高速化されるからです。
例)NSDSpAdd(0,0,64,32,32,64,0,128)
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーとらんじしょん
NSDTransition
NSDTransition(effectnum,effecttime,rulename)
●引数
整数エフェクト番号
整数持続時間
文字列ルールファイル名
NSDOffMode(true)でオフスクリーンに描き込まれた画像を、実際に画面に反映します。
この関数は、一端画像をNScripterのデータに書き戻してNScripter側のエフェクト処理を呼んでいますので、NScripter側のエフェクトと同程度の重さの処理になります。
NSD〜系の描画だけで実現できるエフェクトは、そちらで実装したほうが高速になります。
このとき、NScripterと同じエフェクトが使えます。また、この関数は引数を省略できます。
※
ルール画像の指定にはbmpも使えますが、PNGに統一したほうがややこしくないと思います。
例)NSDTransition(1)
例)NSDTransition(10,500)
例)NSDTransition(18,1000,"rule.png")
/
page top /
list /
mainVer.2.95【低水準】
えぬえすでぃーとらんじしょんえふ
NSDTransitionF
NSDTransitionF(effectnum,effecttime,rulename)
●引数
整数エフェクト番号
整数持続時間
文字列ルールファイル名
NSDTransition関数は、CTRLキーで高速化したりスペースやクリックでキャンセルしたり出来ます。
NSDTransitionFは高速化やキャンセルが出来ないトランジションを実行します。
そのほかはNSDTransitionと同じです。
/
page top /
list /
mainVer.2.95【低水準】
えぬえすえんど
NSEnd
NSEnd()
NScripterの動作を終了します。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすえぐぜく
NSExec
NSExec(script)
●引数
文字列スクリプト文字列
文字列で指定されたNScripterの命令を実行します。
命令は一回にひとつだけです。:によるマルチステートメントは使えません。
複数の命令を実行したい場合は、この命令を続けて複数回呼んでください。
goto gosub selectなどジャンプが伴う命令、for next命令は使えません。
命令がLuaを呼び出してもかまいませんが、そこからNSExecを二重に呼んではいけません。
if文は使えますが、マルチステートメントが使えないので、Lua側のifのほうが書きやすいと思います。
※
define時に行いたい処理はsystem.luaに裸で書いておけば読み込み時に実行されます。
例)NSExec("amsp 10,100,50")
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえぐぜくあにめーしょん
NSExecAnimation
NSExecAnimation()
NScripterのアニメーション処理を実行します。
普段は定期的に呼ばれている関数ですが、Lua内からは自動では呼ばれないので、
アニメーションを実行する必要がある場合は、時々この命令を呼んでください。
(メッセージ待ちの時などに呼ぶのが一般的な使い方です)
※
なお、アニメーションによってLua関数NSCALL_animationが呼ばれる可能性がありますが、
NSCALL_animationの中からこの関数を呼ぶと無限ループするので、呼ばないでください。
なお、この関数だけでは表示はされません。NSUpdate()もしくはNSExec("print 1")などを呼ぶ必要があります。
/
page top /
list /
mainVer.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 /
mainVer.2.94【低水準】
えぬえすげっとふぁいるいんふぉ
NSGetFileInfo
arcname,offset,length=NSGetFileInfo(filename)
●戻り値
文字列アーカイブのファイル名(無い場合はnil)
整数スタート位置offset(ファイル先頭から)
整数サイズlength(単位バイト)
指定したファイルfilenameをnsaもしくはns2アーカイブから探し、
アーカイブのファイル名arcnameと、スタート位置offset(ファイル先頭から)と、
サイズlength(単位バイト)を返します。
ただし、アーカイブでなく生でそのファイルがある場合は、
arcnameにはfilenameそのまま、位置とサイズにはともに0を返します。
(生ファイルのサイズを代入するわけではないので注意)
ファイルがなかったときはarcnameにnilを返します。
例)arcname,offset,length=NSGetFileInfo("test.dat")
/
page top /
list /
mainVer.2.94【高水準】
えぬえすげっといんとばりゅー
NSGetIntValue
num=NSGetIntValue(var)
●引数
整数数値変数番号
●戻り値
整数数値変数番号の値
NScripterの数値変数から値を取得します。
例)num=NSGetIntValue(10) -- %10の値が返る。
/
page top /
list /
mainVer.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 /
mainVer.2.94【低水準】
えぬえすげっとまうす
NSGetMouse
x,y=NSGetMouse()
●戻り値
整数マウスのX座標(画面外の場合は-1)
整数マウスのY座標(画面外の場合は-1)
マウスの位置を取得します。画面外の場合は-1,-1が返ります。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすげっとすきっぷ
NSGetSkip
skipmode=NSGetSkip()
●戻り値
整数スキップモード(0:通常、1:スキップモード、2:オートモード)
スキップ状態を取得します。0=スキップモードではない 1=スキップモード 2=オートモード です。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすげっとえすてぃーあーるばりゅー
NSGetStrValue
str=NSGetStrValue(var)
●引数
整数文字列変数番号
●戻り値
文字列文字列変数番号の値
NScripterの文字列変数から値を取得します。
例)str=NSGetStrValue(12) -- $12の値が返る。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすげっとうぃんどうさいず
NSGetWindowSize
width,height=NSGetWindowSize()
●戻り値
整数ウィンドウの幅
整数ウィンドウの高さ
NScripterのウィンドウの表示領域の大きさを得ます。
例)width,height=NSGetWindowSize()
/
page top /
list /
mainVer.2.94【高水準】
えぬえすごーさぶ
NSGosub
NSGosub(label)
●引数
文字列ラベル文字列
文字列で指定したラベルにgosubジャンプします。つまりシナリオスクリプトのgosub命令と等価です。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすごーとぅー
NSGoto
NSGoto(label)
●引数
文字列ラベル文字列
文字列で指定したラベルにgotoジャンプします。つまりシナリオスクリプトのgoto命令と等価です。
ここで、ジャンプするのはあくまでシナリオスクリプト(00.txt等)の実行位置であり、
Luaの実行はそのまま続行されることに注意してください。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすいんばりでいと
NSInvalidate
NSInvalidate(lx,uy,rx,dy)
●引数
整数左上X座標
整数左上Y座標
整数右下X座標
整数右下Y座標
無効領域を追加します。この後NSUpdateで再描画します。
例)NSInvalidate(10,10,100,100) -- (10,10)-(100,100) 幅と高さではなく、「座標」です。
/
page top /
list /
mainVer.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)の値を求めます。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすあにめーしょんいんたーばる
NSLuaAnimationInterval
NSLuaAnimationInterval(intervalms)
●引数
整数アニメーション割り込みの発生間隔(ミリ秒)
アニメーション割り込みの発生間隔を指定します。
ミリ秒単位で指定出来ますが、その時間で必ず来るとは限りません。
物理的に間に合わない場合はかなり遅れて飛んでくることになります。
実際にどのタイミングで呼び出されたかは、NSTimer()を使って取得してください。
例)NSLuaAnimationInterval(20) -- 20ミリ秒に一回呼ばれる
NSCALL_animation /
NSLuaAnimationMode /
NSTimer /
page top /
list /
mainVer.2.94【低水準】
えぬえすあにめーしょんもーど
NSLuaAnimationMode
NSLuaAnimationMode(boolswitch)
●引数
整数アニメーション割り込みの開始フラグ(true:開始、false:停止)
NSLuaアニメーション割り込みを開始したり止めたり出来ます。
デフォルトはfalseですので、設定が終わったらこの関数でtrueを指定して、
割り込みを開始してください。Luaで操作したいオブジェクトがひとつもないときは、
falseを指定して割り込みをとめることが出来ます。trueを指定すればまた割り込みが発生します。
例)NSLuaAnimationMode(true)
NSCALL_animation /
NSLuaAnimationInterval /
NSTimer /
page top /
list /
mainVer.2.94【低水準】
えぬえすおっぐくろーず
NSOggClose
NSOggClose(ch)
●引数
整数チャンネル番号
指定したチャンネルの演奏を終了します。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすおっぐいずぷれいいんぐ
NSOggFade
NSOggFade(ch,startvol,endvol,time,closeflag)
●引数
整数チャンネル番号
整数フェード開始音量
整数フェード終了音量
整数フェード時間(ミリ秒)
整数フェード後終了フラグ(true:終了、false:続行)
指定したチャンネルをフェード操作します。startvolからendvolまで変化します。timeの単位はミリ秒です。
closeflag=trueでフェード終了後ファイルをクローズします。falseの時は演奏続行です。
例)NSOggFade(4,-10000,0,1000,false)
/
page top /
list /
mainVer.2.94【低水準】
えぬえすおっぐいずぷれいいんぐ
NSOggIsPlaying
isplaying=NSOggIsPlaying(ch)
●引数
整数チャンネル番号
●戻り値
整数演奏状態(true:演奏中、false:停止中)
指定したチャンネルが演奏していればtrue していなければfalseが返ります。
※
20090419版以降で戻り値が整数となるバグ修正。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすおっぐろーど
NSOggLoad
NSOggLoad(ch,filename)
●引数
整数チャンネル番号
文字列ファイル名
ストリーミング再生チャンネルchにファイルをロードします。再生はしません。
nsogg2.dllが必要です。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすおっぐぷれい
NSOggPlay
NSOggPlay(ch,isloop)
●引数
整数チャンネル番号
真偽値ループフラグ(true:ループ、false:一回だけ)
ロードしたファイルを再生します。isloop=trueでループ、falseで一回だけです。
nsogg2.dllが必要です。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすおっぐぷれいつー
NSOggPlay2
NSOggPlay2(ch,point)
●引数
整数チャンネル番号
実数ループ開始点(秒)
ロードしたファイルを再生します。ループ開始点を指定できます。
単位は秒で、double型(実数型)で指定できます。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすおっぐぼりゅーむ
NSOggVolume
NSOggVolume(ch,vol)
●引数
整数チャンネル番号
整数音量(0:最大、-10000:最小)
指定したチャンネルの音量を変更します。
0〜-10000が指定できます。0が最大、-10000が最小です。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすおっけーぼっくす
NSOkBox
NSOkBox(text,title)
●引数
文字列本文
文字列タイトル文字列
ダイアログボックスを表示します。
NScripterでいうmesbox命令ですが、本文とタイトルの指定順が逆になっていますのでご注意ください。
(こちらのほうがWindowsでは標準のようなので、標準に従うことにしました。)
例)NSOkBox("本文です","タイトルです。")
/
page top /
list /
mainVer.2.94【高水準】
えぬえすぽっぷこんま
NSPopComma
NSPopComma()
引数列のコンマをひとつ読み飛ばします。引数と引数の間には普通コンマがあります。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすぽっぷあいでぃー
NSPopID
id=NSPopID()
●戻り値
文字列識別子形式の文字列の引数(小文字)
NScripterの識別子形式の文字列の引数をひとつ読み込みます。大文字が含まれていた場合小文字に変換されます。
識別子形式とは、たとえばbg命令のblackやwhiteだとか、ld命令のl r cだとかのように、""で囲まれていない文字列です。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすぽっぷいんと
NSPopInt
number=NSPopInt()
●戻り値
整数数値の引数
NScripterの数値の引数をひとつ読み込みます。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすぽっぷいんとれふ
NSPopIntRef
ivalindex=NSPopIntRef()
●戻り値
整数数値変数引数の番号
NScripterの数値変数引数の番号をひとつ読み込みます。%5なら5です。
例)ivalindex=NSPopIntRef()
/
page top /
list /
mainVer.2.94【高水準】
えぬえすぽっぷらべる
NSPopLabel
label=NSPopLabel()
●戻り値
文字列ラベル名の引数(小文字)
NScripterのラベル名をひとつ読み込みます。大文字だった場合小文字に変換されます。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすぽっぷえすてぃーあーる
NSPopStr
str=NSPopStr()
●戻り値
文字列文字列の引数
NScripterの文字列の引数をひとつ読み込みます。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすぽっぷえすてぃーあーるれふ
NSPopStrRef
svalindex=NSPopStrRef()
●戻り値
整数文字列変数引数の番号
NScripterの文字列変数引数の番号をひとつ読み込みます。$10なら10です。
例)svalindex=NSPopStrRef()
/
page top /
list /
mainVer.2.94【高水準】
えぬえすりたーん
NSReturn
NSReturn()
シナリオスクリプトのサブルーチンからreturnします。つまりシナリオスクリプトのreturn命令と等価です。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすせーぶぽいんと
NSSavePoint
NSSavePoint()
NSExec("savepoint")は駄目です。NSSavePoint()という専用の関数を使ってください。
/
page top /
list /
mainVer.2.94【高水準】
えぬえすせっといんとばりゅー
NSSetIntValue
NSSetIntValue(var, num)
●引数
整数数値変数番号
整数整数
NScripterの数値変数に値を設定します。
例)NSSetIntValue(3,10) -- %3=10
/
page top /
list /
mainVer.2.94【高水準】
えぬえすせっとえすてぃーあーるばりゅー
NSSetStrValue
NSSetStrValue(var, str)
●引数
整数文字列変数番号
整数整数
NScripterの文字列変数に値を設定します。
例)NSSetStrValue(10,"test") -- $10="test"
/
page top /
list /
mainVer.2.94【低水準】
えぬえすすりーぷ
NSSleep
NSSleep(sleepms)
●引数
整数動作を明け渡す時間(ミリ秒)
指定した時間(ミリ秒単位)ほかのスレッドに動作を明け渡します。
NScripter命令の「wait」とだいたい同じです。
動作をすぐにNScripterに戻すスクリプトでは必要ありませんが、
長時間Luaスクリプトを走らせっぱなしにするとCPU使用率が上がるので、
適度にNSSleep(1)とかNSSleep(2)とかを呼んでCPU使用率を下げてください。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーつーくりあ
NSSp2Clear
NSSp2Clear(num)
●引数
整数拡張スプライト番号
拡張スプライトを消去します。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーつーげっといんふぉ
NSSp2GetInfo
width,height,cellnum=NSSp2GetInfo(num)
●引数
整数拡張スプライト番号
●戻り値
整数幅
整数高さ
整数セル数
拡張スプライトの情報を得ます。幅、高さ、セル数が得られます。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーつーげっとぽす
NSSp2GetPos
cx,cy,xs,ys,rot,alpha,ope=NSSp2GetPos(num)
●引数
整数拡張スプライト番号
●戻り値
整数中心X座標
整数中心Y座標
整数横倍率
整数縦倍率
整数回転角
整数α値(0:透過、255:不透過)
整数出力オプション(0:普通、1:加算合成、2:減算合成)
拡張スプライトの位置を得ます。中心座標X,Y,横倍率,縦倍率,回転角,α値,出力オプションが得られます。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーつーろーど
NSSp2Load
NSSp2Load(num,filename)
●引数
整数拡張スプライト番号
文字列ファイル名
拡張スプライト(lsp2系)をロードします。
画面外にロードしますので、移動しないと見えません。
例)NSSp2Load(0,":a/2,0,3;test.bmp")
/
page top /
list /
mainVer.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で減算ブレンディングです。
例)NSSp2Move(0,100,100,100,100,45,255,0)
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーつーびじぶる
NSSp2Visible
NSSp2Visible(num,isvisible)
●引数
整数拡張スプライト番号
真偽値表示フラグ(true:表示、false:非表示)
拡張スプライトを表示したり消したりします。trueで表示、falseで非表示です。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーせる
NSSpCell
NSSpCell(num,c)
●引数
整数スプライト番号
整数セル番号
スプライトのセルを設定します。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーくりあ
NSSpClear
NSSpClear(num)
●引数
整数スプライト番号
スプライトを消去します。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーげっといんふぉ
NSSpGetInfo
width,height,cellnum=NSSpGetInfo(num)
●引数
整数スプライト番号
●戻り値
整数幅
整数高さ
整数セル数
スプライトの情報を得ます。幅、高さ、セル数が得られます。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーげっとぽす
NSSpGetPos
lx,ly,alpha=NSSpGetPos(num)
●引数
整数スプライト番号
●戻り値
整数左上X座標
整数左上Y座標
整数α値(0:透過、255:不透過)
スプライトの位置を得ます。左上座標X,Y,α値が得られます。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすすぷらいん
NSSpline
y=NSSpline(num,x)
●引数
整数データ番号(0〜99)
整数求めたいxの値
●戻り値
整数スプライン補間によるyの値
NSDefSplineで定義したデータ番号を指定し、求めたいxの値を指定すると、スプライン補間によってyの値が返ります。
ここで、xはxarrayに指定した最小値と最大値の間になくてはなりません。
例)xa={1,2,4} ya={2,4,8}
NSDefSpline(0,xa,ya)
y=NSSpline(0,3)
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーろーど
NSSpLoad
NSSpLoad(num,filename)
●引数
整数スプライト番号
文字列ファイル名
普通のスプライト(lsp系)をロードします。
ファイル名にはlspで使えるのと同じタグが使えます。
画面外にロードしますので、移動しないと見えません。
例)NSSpLoad(0,":a/2,0,3;test.bmp")
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーむーぶ
NSSpMove
NSSpMove(num,lx,ly,alpha)
●引数
整数スプライト番号
整数移動先X座標
整数移動先Y座標
整数α値(0:透過、255:不透過)
スプライトを移動します。
mspと同じく、この命令だけでは画面に反映されません。
適切なタイミングでNSUpdate()を呼んでください。
(ほかのスプライトも全部描画してからまとめて呼んだほうが効率がいいです)
例)NSSpMove(3,100,100,255)
/
page top /
list /
mainVer.2.94【低水準】
えぬえすえすぴーびじぶる
NSSpVisible
NSSpVisible(num,isvisible)
●引数
整数スプライト番号
真偽値表示フラグ(true:表示、false:非表示)
スプライトを表示したり消したりします。trueで表示、falseで非表示です。
この命令だけでは画面に反映されませんのでNSUpdate()を呼んでください。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすしすてむこーる
NSSystemCall
NSSystemCall(callstr)
●引数
文字列機能名
指定したNScripterの機能を呼び出します。
NScripter命令で言うmenu_???命令やsystemcall命令等をまとめたものです。
メッセージを送るだけなので、即時実行されないこともあります。
(その場合、NScripterが次にメッセージを処理したときに実行されます)
次の文字列が指定できます。
★close 「閉じる」ボタンを押したのと同じ動作をします。
★end NScripterを終了します。何も聞いてこないので注意してください。end命令と同じです。
★reset NScripterをリセットします。何も聞いてこないので注意してください。reset命令と同じです。
★full フルスクリーン化します。
★window ウィンドウ化します。
★automode オートモード状態にします。
★skip スキップ状態にします。
★skipoff スキップ状態を解除します。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすたいまー
NSTimer
count=NSTimer()
●戻り値
整数Windowsが起動してからの経過時間(ミリ秒)
1msに1増え続けるタイマーを取得します。resettimer gettimerと同じ精度です。
Windowsが起動してから経過したミリ秒を指すカウンタは、ひたすら増えていくだけです。
この関数からは値を取得することしか出来ません。二回呼び出して、その差をとることで、
経過時間が正確にわかります。
NSCALL_animation /
NSLuaAnimationInterval /
NSLuaAnimationMode /
page top /
list /
mainVer.2.94【低水準】
えぬえすあっぷでーと
NSUpdate
NSUpdate()
無効領域を再描画します。print 1と等価です。
/
page top /
list /
mainVer.2.94【低水準】
えぬえすいえすのーぼっくす
NSYesNoBox
result=NSYesNoBox(text,title)
●引数
文字列本文
文字列タイトル文字列
●戻り値
真偽値はいを押せばtrue、いいえならfalse
はい/いいえをたずねるダイアログボックスを表示します。戻り値はbooleanです。
NScripterでいうyesnobox命令ですが、本文とタイトルが逆になっていますのでご注意ください。
例)result=NSYesNoBox("質問です","タイトルです") -- はいを押せばresult=true、いいえならresult=false
/
page top /
list /
main