标题: 求助日文翻译~咳, 悬赏10000TB
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 15:01 资料 主页 文集 短消息 只看该作者
nscripter的日文说明书……咳,反正就是个高级语言的指令说明书啦。写程序用的。
由于本人日语完全无能,现征翻译一名……完全翻译者可得TB10000,此外,翻译1条奖励100TB。——拿金山快译金山词霸或者其他程序翻译来的轰至渣= =b



【fileexist】
(マニュアルに抜けがあったのでここで紹介します)
ファイルが存在すれば1、しなければ0を返します。nsaアーカイブからも検索します。
例)
fileexist %0,"test.bmp"

【getwindowsize】
getwindowsize 幅を受け取る変数,高さを受け取る変数
ウィンドウのクライアント領域(メニューなどを除いた、画像が描画される部分の大きさ)を取得します。デフォルトでは640と480です。
例)
getwindowsize %0,%1

【getspsize】
スプライトのサイズを取得します。
getspsize スプライト番号,幅を受け取る変数,高さを受け取る変数(,セル数を受け取る変数)
セル数を受け取る変数は省略できます。
例)
getspsize 0,%0,%1
getspsize 0,%0,%1,%2

<drawsp2のバグ修正について>
ver2.51もしくはそれ以前のNScripterでは、drawsp2でα値を持った画像を扱うときに限り、透過度が本来と反対に0で非透過、255で透過と扱われるバグがありました。ver2.52でこれに修正を入れましたが、そのせいで、旧バージョンのスクリプトを使うときにはdrawsp2に与える3つめのパラメータを修正する必要が出来ました。申し訳ありません。

【bgcopy】
bgcpyでも同じ意味になります。現在の画面を背景画面として取り込みます。
ofscpyもしくはofscopyとの違いは、背景画面になっているので、この上にテキストウィンドウなどを表示できることです。
ver2.51で、この命令で作った背景画像はセーブでちゃんと保存されるようになりました。

【getskipoff】
btndefとtextbtnwaitの間で使ってください。
スキップオフを-60で、オートモードオフを-61で取得します。

PNG形式からNScripterのαブレンド形式の画像へ変換できるツールpng2abmpを作成しました。今後はなるべくこれを使ってください。


【movie】
mpegplayに変わる次期主力となる予定のムービー再生命令です。
movie "ファイル名" ;単に終わるまで再生する。クリックでスキップできない。
movie "ファイル名",pos,10,20,320,240 ;左上の座標10,20 大きさ320x240で再生
movie "ファイル名",click ;クリックで、その場で停止して再生終了(async時無効)
movie "ファイル名",loop ;ループ再生します(asyncもしくはclickを指定しないと止める方法がないということになるので注意)
movie "ファイル名",async ;非同期再生します。この命令は再生を始めた時点で処理をNScripterに戻し、通常通りのスクリプト動作を続けたまま、ムービーが再生されます。ムービーは常に最前列として扱われます。字よりも上なので注意。
movie stop ;asyncで非同期再生をしているムービーを止めます
これらは組み合わせることが出来ます。

例)
movie "test.mpg",pos,10,20,320,240,async,loop

再生終了時の画像がそのまま画面に残ります。また、そこは無効領域として扱われますので、print命令を使うことで、そこから元の画像へエフェクトをかけて変化することが出来ます。

【logsp2】
logspの拡張版で、文字サイズが指定出来ます。
例)logsp2 2,$0,150,20,17,17,0,1
左から、スプライト番号、getlogで取得した文字列,X座標,Y座標,文字幅,文字高さ,文字間X,文字間Y

【bw2a3】
白抜きと黑抜きから、NScripter形式の透過画像を作ります。
製作作業用の命令です。
nscripterと同じ位置にフォルダ"b"とフォルダ"w"を作り、それぞれ白抜きと黑抜きを入れてください(白抜きと黑抜きについてはbw2aの説明をご覧ください)
ファイル名は元と同じでいいのがミソです。フォトショップのアクションを使えば作業が効率化できるでしょう。
例)
bw2a3 "test.bmp"
b\test.bmpとw\test.bmpからout\test.bmpを作ります。
このout\test.bmpが目的の画像です。


顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 15:04 资料 主页 文集 短消息 只看该作者
【savedir】
セーブデータを格納するフォルダを指定します。
ただし、envdataだけはnscr.exeと同じフォルダに出来てしまいます。
あらかじめフォルダは掘っておいてください。
例)
savedir "savedata"

【itoa2】
itoaと同様に数値を文字列に変換しますが、この命令では全角文字列になります。表示したいときに便利です。
例)
itoa2 $0,%4

【lrclick】
左クリックもしくは右クリックを待ちます。
どちらで返ってきたかはgetretで取得できます。
getret %0
で、0で右クリック、1で左クリックです。

【textfield】
ウィンドウ上にテキスト入力ウィンドウを開き、入力を待ちます(ダイアログではありません)。
例)
textfield $0,100,50,320,70,10,20,1
左から順に、結果を格納する文字列変数、ウィンドウ左上X座標、Y座標、右下X座標、Y座標、文字幅(1バイト文字のものですので2バイト文字の場合ここでの指定の倍になります)、文字高さ、全角フラグ(1で全角文字しか入力できなくなります)
ここで、指定する文字列変数にあらかじめ入っていた内容がデフォルトの文字列になります。
入力ウィンドウ外を左クリック、もしくはリターンキー、エスケープキー、TABキーを押した時に、関数から戻ってきます。
TABキーを押した場合は、getretでその旨判別できます。この命令の後、
getret %0
として、%0に0が返ってくればTAB以外、1が返ってくればTABで命令を抜けたということを示します。

【cellcheckexbtn】
cellcheckspbtnのexbtnバージョンです。引数はexbtnと同じです。
スプライトがロードされ、かつ、セルが二つ以上あるときのみ拡張ボタンとして設定します。そうでないときは無視されます。
なお、exbtnについては「サンプル」「メニューのカスタマイズと複合ボタン」を参照してください。新機能S(音声再生)とM(スプライト移動)が増えています。

【pretextgosub】
*define節命令です。テキスト表示の直前にこのフラグで示されるサブルーチンへジャンプします。
例)
pretextgosub *pretext_lb

pretextgosub命令を使うと、表示文の直前に「タグ」を付けることが出来ます。
「タグ」は、「[」と「]」で囲まれた部分のことです。
例)
[太郎/0001.wav]テスト用の文章です。


【gettag】
*pretextgosubで指定したサブルーチンから、タグの内容を取得します。
splitに似ていますが、""は必要ありません。/区切りです。
省略されたものは""もしくは0で補います。
タグそのものが省略されているときは、すべてが""もしくは0で補われます(ここがポイント)
例)gettag $0,$1 になってる場合、

[太郎/0001.wav]テスト用の文章です。 ;→$0="太郎" $1="0001.wav"
省略することも出来ます。 ;→$0="" $1=""

ボイスや名前タグの処理に使ってください。


【indent】
改行時に指定文字数だけ右インデントします。上のpretextgosubと組み合わせれば、
台詞内改行の時だけ右に何文字かずらしたいというときに使えます。
例)
indent 2

<これらの一連の命令の使用例>

pretextgosub *pretext_lb

*pretext_lb
dwavestop 0
gettag $0,$1
if $0="" indent 0:goto *next_tag
mov $2,$0
add $2,"/"
puttext $2
;↑単純に名前だけputtextで表示したのでは最後に改行されてしまうので、
;末尾に/を付けて改行を抑制している
indent 3
;台詞なのでインデント指定
*next_tag
if $1="" return
dwave 0,$2
;ボイス再生
return


【ispage】
textgosubサブルーチン時、呼び出し理由が改ページだったら1、単なるクリック待ちだったら0を指定した数字変数に返します。
例)ispage %0


【maxkaisoupage】
*define節命令です。回想モードの最大ページ数を設定します。
例)
maxkaisoupage 10

【checkpage】
回想文字列を取得できるかどうかを調べます。
第一引数は結果を格納する数字変数、第二引数は何ページ前かを指定します。
1で取得可能、0で不可能です。第二引数には1以上を指定してください。
0は現在のページなので、この関数を使わなくても処理できるはずです。
例)
checkpage %5,1 ;一ページ前のログが取得できるかどうかを確かめる。


【texthide】
テクストウィンドウは表示したままで、文字だけを消します。
バックログを作るときに有意義です。

【textshow】
texthideで消した文字を復帰します。


【getlog】
バックログ用の文字列を取得します。改行情報やルビ情報も格納されています。
第一引数に格納先文字列変数、第二引数にcheckpageと同じく何ページ前かを指定します。
例)getlog $0,%5

【logsp】
getlogで取得した文字列から、バックログ用の文字画像をスプライトとして取得します。
いったん文字列を経由するのは、将来的に加工することを考えてのことです。
第一引数にスプライト番号、第二引数にバックログ文字列、第三~四引数で左上の座標、第五引数行以降は、文字色(元の文字色に関係なく単色になります)を指定します。省略すると#FFFFFF、複数指定すると、その数だけセルのある複数セルスプライトになります。
例)
logsp 8,$0,60,90
logsp 8,$0,60,90,#FFFF88
logsp 8,$0,60,90,#888888,#FFFF88

ワンポイントテクニック(プログラムの知識がある人用):
<splitは構造体の代わりになる>
一つの文字列変数の中に複数のデータを格納できるsplitは、構造体の代わりになります。
$0="文字列"
%0=12
%1=5
というようなデータを一度に$1に格納しておきたいときは、

mov $1,$0 ;$1="文字列"
add, $1,"," ;$1="文字列,"
itoa $2,%0
add $1,$2 ;$1="文字列,12"
add $1,"," ;$1="文字列,12,"
itoa $2,%1
add $1,$2 ;"$1="文字列,12,5"

あとで取り出したいときは、
split $1,",",$0,%0,%1

splitで足りない分は、文字列なら"",数字なら0で埋められるので、可変長リストにも使えますね。
split $10,",",$0,$1,$2,$3,$4,$5,$6
$10は、0~6個までの文字列リストを,区切りで格納したものになります。

今商業で作ってるのは、ノベル形式で、一画面に不特定数のボイスがあって、
それをバックログで再生できる物なのですが、一画面分のボイスデータと
座標を記憶するときに、このテクニックを使っています。

【okcancelbox】
【yesnobox】
例)
okcancelbox %0,"セーブします。","セーブ確認"
yesnobox %0,"ロードしますか?","ロード確認"

WindowsのOK/キャンセル、もしくははい/いいえ式のダイアログボックスを出して、ユーザからの入力を変数に代入する。1がOKもしくは「はい」、0がキャンセルもしくは「いいえ」。

【textspeeddefault】
テキスト表示速度をデフォルトにする。表示文ではないので、文字ウィンドウ出ていないときは表示されないままで実行できる。

【humanorder】
例)
humanorder "rcl"
立ち絵間の優先順位を指定する。

【bgmdownmode】
例)
bgmdownmode 1
音声再生時にBGMボリュームを下げる。

【tateyoko】
例)
tateyoko 1
縦書きモードにする。詳細はサンプルで。
※このほか、システムカスタマイズ命令は、システムカスタマイズサンプルで解説しています。
 縦書きモードもそちらにあります。

【loadgosub】
例)
loadgosub *loadlb
ロード直後に呼び出すサブルーチンを指定します。
このサブルーチンは、セーブした状態を復元したその直後に呼ばれます。
つまり、セーブできるところならどこからでも呼ばれうるものであることに
注意して慎重にスクリプトを組んでください。
プラグインで音楽を再生したりしている場合、その復元は手動でしなければ
ならないので、そのためにこの命令を用意しました。

【defsub】(define節のみ)
指定した名前のユーザ定義命令を作ります。
実際にはサブルーチンとして実装されます。
命令名は変数と同じ法則で名づけることが出来ますが、先頭に_を使うことだけは出来ません。

例)
defsub subname

以下のスクリプトで
subname
とあると、
*subname
にgosubジャンプする。

なお、NScripterにもともとある命令名でもdefsubで登録できます。
その場合、ユーザ定義命令が優先されます。
もともとの命令を呼びたい場合は、頭に_をつけてください。
例)
*define
defsub *texton
game

*start
texton ;gosub *textonになる
_texton ;もともとのtextonが呼ばれる


【getparam】
ユーザ定義命令の呼び出し元から、パラメータを取得します。
例)
*define
defsub sub

*sub
getparam $50,%50
;$50に"文字列"、%50に12が代入される
return

*start
sub "文字列",12

このように、数字変数,文字変数に代入できるほか、次のようなことも出来ます。

*define
defsub kakeru_4
game

*kakeru_4
getparam i%50,%51
;i%と書くと、呼び出し元の数字変数の変数番号が取得できる。この場合「3」
mov %%50,%51*4
;%%50と書くと、変数番号「%50」の数字変数への代入になります。つまりこの場合mul %3,4と同じ
return

*start
kakeru_4 %3,10
;%3は10*4=40になる


*define
defsub renketu
game

*renketu
getparam s%50,$51
;文字変数の場合はs%
add $%50,$51
;$%50と書くと、変数番号「%50」の文字変数への代入になります。
return

*start
mov $1,"れんけつ"
renketu $1,"てすと"
;$1は"れんけつてすと"となる。

使用例はサンプルフォルダ内のdefsubサンプルをご覧ください。

なお、呼び出し元でラベル名を指定した場合、呼び出し先では文字列として
読み込むことが出来ます。
NScripterのどの命令でも、ラベル名の代わりに文字列を使うことが出来ると
いうのをうまく利用してください。
たとえば、
*define
defsub usergoto
game

*label
ジャンプしました。\
end

*start
usergoto *label

*usergoto
getparam $0
;ここで、$0に"*label"が入る。
goto $0
;これで、goto "*label"→goto *labelと同じ


<注意>
getparamで渡される変数と格納される変数が混在するととてもややこしいので、
defsubサブルーチン内で使う変数と呼び出し元スクリプト内で使う変数は分けましょう。
例えば、%0-%49までを普通のスクリプトで、%50-%99をdefsubサブルーチンで
使うことにして、混在させない。




【readfile】
文字列にファイルを読み込みます。
例)
readfile $0,"file.txt"

【split】
文字列を指定記号を区切りにして切り出して、指定した変数に値を代入します。
プラグインからの戻り値やreadfileで読んだ文字列の処理に使ってください。
例)
split $0,"/",$1,$2,%0,%1,$3

一つ目が切り出す対象文字列、二つ目が区切り文字(一文字でなければなりません)、三つ目以降が代入先変数です。

サンプル)
mov $0,"あいうえお/かきくけこ/15/25/さしすせそ"
split $0,"/",$1,$2,%0,%1,$3

$1=$1
$2=$2
%0=%0
%1=%1
$3=$3\


【getcselstr】
例)
getcselstr $0,0
cselで指定した文字列を取得します。数字は選択肢の何番目かです。

デモ用演出命令:
通常時のNScripterの画面表示を行わずに、自前でスプライトを描画する命令です。
重ね合わせ、回転、拡大縮小の機能を上手く使えば、凝った演出が出来ます。
とりあえずデモ用にのみ実装しますが、いずれ回転拡大縮小機能は通常時のスプライトアニメーション機能に追加する予定です。

デモ用命令:画面に直接描画します。セーブしても画面は復帰しませんのでご注意ください。

【drawclear】
書式:drawclear
画面を


顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 15:10 资料 主页 文集 短消息 只看该作者
【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)を作ります。
真っ白背景に
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 15:12 资料 主页 文集 短消息 只看该作者
●createdummy "ファイル名"
その名前でダミーBMPファイル(640.480)を作ります。
真っ白背景に黑字でファイル名がでかでか書かれます。
例)
createdummy "test.bmp"

deletemenuを追加しました。*define節専用,NScrからWindowsのメニューバーをなくせます。

NEGAのバグを修正しました。

現在フルスクリーンかどうかを取得する命令isfullを作りました。
isfull %変数番号
Alt+Returnでもスクリーンモードを変えられるので、この命令以外では
現在のスクリーンモードは取得できません。



今回の更新は、以下のとおりです。
・回想バッファが時々クリアされていた仕様を修正して、いつでも戻れるようにした
・簡易デバッガが付いた(詳細はnscrデバッガ.txtを参照のこと)
・NT系でフルスクリーン時にリフレッシュレートが変わるバグ修正
・命令追加:loopbgm loopbgmstop

loopbgm "冒頭部ファイル名","ループ部ファイル名"
loopbgmstop

(使用例)
loopbgm "bgm_s.wav","bgm_l.wav"
bgm.s.wav -> bgm_l.wav -> bgm_l.wav -> ...(以後ループ)
という風に演奏します。

loopbgmstop
停止します。

鳴らせるファイルはwaveファイルだけです。
ボリュームはmp3vol、フェードアウト設定はmp3fadeoutに従います。
ボリュームダイアログにも対応しています。

・外部DLLで描画する機能を追加。
 命令追加:setlayer,layermessage,getret
 詳しくは「DLLによる機能拡張サンプル」フォルダをご覧ください。

この機能を利用してパーティクル機能(雨を降らしたり雪を降らしたり)を作る予定。
(僕が作る分にはDLLで分離する必要はないんで内部にリンクしてしまうかもしれないですが)
メッセージ処理が出来るので、描画だけではなく色々な拡張機能を作れるでしょう。
プログラムが出来る方は、DLLの仕様も載っているので、それを参考にして
オリジナルのプラグインを作ってみてください。
この機能はまだまだ検討段階です。不具合がありましたらどんどんご連絡ください。
開発者の方々からの御意見をいただければ、仕様に反映していけると思います。
とりあえず、あまり出来は良くないですがサンプル用の雪プラグインを作りました。
いずれちゃんとしたのを作りますが、少し更新は休みます。

更新が遅れております。商業利用での要望による機能追加を
最優先としておりますが、その次に以下の機能を実装する予定です。

・ルビ機能
・CLICKSTRがシステムカスタマイズ時正しく働かない問題の修正


---
<配列が必要なときの代替手段>
%数字、が数字変数を表すのはご存知でしょう。
%0が0個目の数字変数
%1が1個目の数字変数を表しています。

ここで、%数字の「数字」の部分にも数字変数を使うことが出来ます。すなわち、
%2が12のとき、%%2は、12番目の数字変数、すなわち「%12」で表される変数と同じ物を表しています。

サンプル:

mov %3,4
mov %%3,12
変数4番は%4です。

実行結果:

変数4番は12です。

これを上手く使えば、SLGなどで必要なテーブル参照が出来ます。

---


以下はNScrに、過去のさまざまな事情から追加されていた/今現在の事情から追加した隠し命令の一覧票です。
なぜマニュアルに発表しないかというと、やっつけ仕事的な仕様になっているとか、使い方が難しいとか、用途が特殊過ぎるとかいう理由です。
いずれ正式命令に格上げになる予定のものもあります。
代替命令ができる予定のものもあります。
どちらにしろ、命令から削除されることはありませんので使っても大丈夫ですが、あまり強くお勧めはしません。

"mov3"

書式:mov3 数字変数,数字,数字,数字
機能:最初に指定した数字変数から順に3つ、数字を代入する。
使用例:
mov3 %3,2,4,6
これは、
mov %3,2
mov %4.4
mov %5,6
と等価です。
単純に、3つの値をテーブルに代入する作業が楽になる命令です。

同様の命令に、"mov4" "mov5" "mov6" "mov7" "mov8" "mov9" "mov10" があります。
それぞれ、4、5、6、7、8、9、10個の代入を楽にしてくれます。



automode
この命令を実行すると、メニューに「オートモード」がつきます。
オートモードは「次の選択肢まで進む」に似ていますが、ウェーブが
なりおわるまで先には進まず、ウェーブがないところでも、下のautomode_time命令で
どのくらいクリックまでに待つか指定することが出来ます。
いわゆる読み上げモードですね。


"mode_saya"
古い命令ですので、使用はあまりお勧め出来ません。windowchip命令で代替出来ます。
同ソ「莢~背徳の迷宮~」のために作った命令です。
この命令を実行すると、動作が莢モードになります。
莢モードでは、
・文字ウィンドウが消えているとき、表示状態に関わらず、
 スプライト0~9が非表示になります。
・文字ウィンドウが消えているとき、以下で説明するバーや数字表示が非表示になります。
この二つは、例えば「パラメータウィンドウ」みたいのを、テキストウィンドウを
消すのと同時に消したいときに使えます。


"automode_time"
 上のmode_extで増える「オートモード」のとき、ウェーブがなっていないときに
 どのくらい待つのかをミリ秒単位で指定します。

"systemcall rmenu"
 右クリックメニューと同じ効果です。
 これは、例えばボタンモードで右クリックしたときに、右クリックメニューを
 出したいな、というときに使えます。
 右クリックメニューから出ると、動作はこの命令の次の文へうつります。
(画面状態をうまく把握していないと、おかしなことになります。
 この命令の直後にテキストウィンドウの内容を消して書きなおすのが
 ベストかと思われます。)


"barclear"
 バーの設定をクリアします。
 バーとは、格闘ゲームの体力バーみたいなもののことです。

"prnumclear"
 数値ラベル設定をクリアします。

"bar"
書式:bar バー番号,現在値,x,y,幅,高さ,バーの最大値,色

機能:
 バー表示指定をします。幅と高さは、バーが最大値であったときの値です。
 最大値に満たない場合は、割合に合わせてバーが短くなります。
 バーは左詰表示です。単純に長さにあわせて指定した色で塗りつぶすだけなので、
 値が足りないときの地の色は、元絵のほうで描いてしておいてください。
 なお、指定した後でprint命令などの表示処理を実行しないと、画面に反映されません。

使用例:bar 1,23,5,5,200,8,100,#FF7777

"amsp"
書式:amsp スプライト番号,x,y,透過度
機能:mspと似ているが、こちらは増分ではなく絶対指定。
使用例:
amsp 2,5,2,100
 これで、スプライト2番が、(5,2)に移動し、透過度は100になる。

"btndef clear"
ボタン設定で、メモリ内のボタン画像ファイルはそのままだが、登録したボタン設定だけを消去する。
btndef ""はメモリ内のボタン画像ファイルを消去してしまうことに注意
ボタン画像をひとまとめにつくっておいて、あとで読みなおしたりしなくても
いいようにする最適化のための命令です。
btnwait2とうまく組み合わせて使ってください。

なお、btnwait2とbtndef clearを使って処理している場合、自分でbtndef ""をやるか、
プログラム自体を終了するまでは、ずっとメモリ上にそのボタン画像があることになります。
ムダ遣いにならないようにうまく解放してください。

このへんは、プログラマ的な素養がちょっと必要かもしれません。

"blt"
書式:blt 画面上のx,画面上のy,画面上の幅,画面上の高さ,ボタン画像上のx,ボタン画像上のy,ボタン画像上の幅,ボタン画像上の高さ

機能:
 高速に画面上で画像表示をしたいとき(AIRのオープニングのようなアニメーション処理)に使う命令です。
 ボタン画像バッファを利用しますので、事前にbtndefで画像を読みこんでください。
 ボタン画像から読んでくる元画像の幅が画面上の幅と違うときは、画面にあわせて画像が拡大縮小されます。
(例えば、全画面のXY半分のサイズの画像を4つ描いたものをロードしておいて、高速に拡大しながら画面全体に表示していくと、残像効果でドットの荒さは見えず高速なアニメに見える、というテクニックがAIRでは使われています。)
 この命令はバッファを介さず直接スクリーンに画像を書きます。よって、終わった後は画面データが不定になるので、下のofscpy命令を使った後、必ず別の画像をふつうのbg命令などで呼び出して、画像を確定してください。

 セーブによっても、この命令の結果としての画像がセーブされたりはしません。
 よって、使われる部分は限られてきます。(デモとか、SLGでの小窓アニメなど、間にセーブやコマンド入力が挟まれないような処理)

"ofscpy"
書式:ofscpy
機能:上のblt命令で描かれた画像をオフスクリーンバッファに転送する。
解説:
 上の処理を終わってから何かエフェクトをかけたいとき、この命令でオフスクリーンバッファに
 今の状態をコピーしてから行います。
 この命令で作られたオフスクリーンバッファは、エフェクトのときには正しく動作しますが、
 セーブ・ロードでは記憶されません。あくまでつなぎのための命令です。

 blt命令にしろ、ofscpy命令にしろ、高速なデモ処理(AIRのような)をやるために
作られた特殊な命令なので、使い方が結構難しいですが、ご了承下さい。


使用例:


btndef "~"
;アニメ用の画像を読んでおく。

bg ~
ld c,~
;ここまでは普通の画面命令なので、普通に動く。

resettimer
blt ~
waittimer 100
blt ~
waittimer 100
;このへんで、高速な画像処理をしている。

;blt処理をしてから普通の画像命令を使いたいときは、その前にofscpy命令を使うこと。
ofscpy
bg ~

;あとは普通にやっていい。
bg ~
ld c,~




<暫定命令について>
・mov3~mov10は正式命令に格上げされました。

・mode_extは、automodeという名前の命令と同じ意味になります。

・automode_time,systemcall rmenu,bar・prnum系命令,amsp,blt,ofscpyは正式命令に格上げされました。

<追加命令について>

いっぱいあるのですが、システムの根幹に関わるような命令は、
使い方が複雑なので、後でサンプルを作って説明することにします。
今回は簡単な命令から発表します。

labellog(*define節専用命令)
 ファイルログと同じような形式で、ラベルのログを取ります。
 goto gosub 等の飛び先に指定されたか、スクリプトを読んでいて通過したラベル名をすべて記憶します。


lchk ラベル名
 fchkと同じく、if文中で使います。そのラベルを読んでいれば真です。
 NScrのラベル名には(ここ以外のどの場所でもですが)文字変数が使えますので、
lchk *test
lchk "*test"
lchk $0
 上のみっつは、どれも正しい表記です。



nsa(*define節専用命令)
NSAアーカイブモードにします。
同梱のnsaarc.exeで圧縮すると作られるarc.nsa内のファイルを読みこめるようになります。
DLLなどはいりません。nsaファイルはNScripterと同じフォルダにおいてください。
BMPにはアーカイブ化のときに圧縮がかかります。生BMPを直接渡してください。
NScripterは、NSA内のBMPを扱うときにもっとも高いパフォーマンスを発揮します。
NSA内のBMP形式では、画像ファイルなどを扱うとき、一切の中間ファイルを作りません。

圧縮するのに時間がかかるような巨大なアーカイブは分割管理すると便利です。
arc.nsa arc1.nsa arc2.nsa~arc9.nsaの10個のアーカイブファイルを扱うことが出来ます。
この場合、上に書いた順番で検索していきます。



repaint
画面を書きなおします。もし画面が変になってたりしたら、これでなおるかも。



saveon saveoff
セーブモードをオン/オフします。
セーブできなくなるわけではなく、ロードすると最後にセーブオンだったところまで戻されるということです。
saveonの間は、スプライトを動かしたりしただけでもセーブデータを書きこみに行きますので、
場合によってはパフォーマンスに影響が出るかもしれません。
ミリ秒単位でスプライトをいじるようなアニメ処理をしている間はsaveoffにすると動作が速くなるでしょう。



skipoff
「次の選択肢まで進む」や「オートモード」などをそこで停止します。

cell スプライト番号,セルNO
手動でスプライトのセルを指定します。
内部状態を切り替えるだけなので、あとでprintなどで画面に反映してください。



spbtn スプライト番号,ボタン番号
btn命令と同じような使い方で、こちらはスプライトをボタンに指定します。ちゃんと透過とかもします。
押されていない状態がセル0、押されている状態がセル1です。
ボタンを押すと、ボタン番号が帰ってきます。



mode_wave_demo(*define節専用命令)
普通、次の選択肢を飛ばすモードのときはWAVEはならないのですが、
mode_wave_demoを実行していると、なります。



jumpf
次の~記号までジャンプします。ラベル名を考えるのがめんどくさいときに使ってください。
しかし、当然入れ子構造には出来ないので、とび先がすぐ見えるときだけに限定して使うほうがいいです。

例)
jumpf
この文は飛ばされます。
~
この文は表示されます。



jumpb
直前の~記号まで戻ります。


<新機能>
特殊文字列構文
(条件ファイル名)"TRUE文字列""FALSE文字列"
条件ファイル名がファイルログの中にあった(すでにロード済みだった)場合、TRUE文字列、
無かった場合、FALSE文字列を返します。
これは、たとえばCGモードのボタンを選ぶときに使えます。
少々みにくいですが、スクリプトを書くのが楽になります。C言語で言う?:に近いです。
例)
lsp 0,("cg1.bmp")"cg1_sum.bmp""dummy_sum.bmp",0,0
顶部
性别:未知-离线 西晋羊牯

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 左将军
功绩 16
帖子 1290
编号 48111
注册 2005-9-7
家族 轩辕狼党


发表于 2005-10-30 15:15 资料 文集 短消息 只看该作者
通宝太少,鉴定完毕,请指示!
顶部
性别:女-离线 慕容翩翩
(三小姐)

韩国公主
谏议大夫

Rank: 16
柱国(正二品)
组别 翰林学士
级别 征东将军
好贴 5
功绩 803
帖子 5431
编号 2222
注册 2005-3-16
来自 九秀山庄
家族 慕容世家


发表于 2005-10-30 15:21 资料 个人空间 短消息 只看该作者
すげぇーな、この量

専門用語が多いんで、あたしできないわ、ごめんな
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 15:28 资料 主页 文集 短消息 只看该作者
专用语比如“变数”一类的词留着就好@_@

集资中,预备增加悬赏数目ing
顶部
性别:男-离线 穆成雪

白衣伯爵中大夫

Rank: 13Rank: 13Rank: 13Rank: 13
组别 白衣卿相
级别 镇北将军
功绩 188
帖子 3467
编号 2070
注册 2004-12-18
来自 上海
家族 现视研


发表于 2005-10-30 15:35 资料 主页 文集 短消息 只看该作者
【fileexist】
如果(因为手册有遗漏在这里介
绍)文件存在1,如果不做还0。从nsa存档也检索。
例)
fileexist %0,"test.bmp"

【getwindowsize】
取得接收getwindowsize 幅度的变量 C接收高度的变量窗的除去了顾客领域(菜单等,画像被绘画的部分的大小)。默认是640和480。
例)
getwindowsize %0,%1

【getspsize】
取得雪碧的尺寸。
接收接收getspsize 雪碧号码,幅度的变量,接收高度的变量(接收,电池
数的变量)电池数的变量能省略。
例)
getspsize 0,%0,%1
getspsize 0,%0,%1,%2

<关于drawsp2错误修正>
ver2.51如那个以前的NScripter,处理以drawsp2有了α价值的画像的时候限定,也存在透过度本来和被反对(面)以0非透过,以255与透过对待的错误。以ver2.52把修正作为了这个,不过,由于那个原因,使用旧版本的电影脚本的时候修正对drawsp2带来的3填塞的参数的必要能了。对不起。

【bgcopy】
变成bgcpy也同样的意义。作为背景画面拿进来现在画面。
ofscpy也如跟ofscopy的差异,因为成为背景画面,此外再能是表示文本窗等。
通过ver2.51,由于这个命令创造了的背景画像由于救好好地变得被保存。

【getskipoff】
请在btndef和textbtnwait之间使用。
以-60跳着走关断,以-61otomodoofu取得。

制作了从PNG形式能变换向NScripter的α混合形式的画像的工具png2abmp。今后请尽量使用这个。


【movie】
是成为变成mpegplay的下期主力的预定的电影再生命令。
movie "文件名” ;到仅仅结束再生。用单击跳着走不能。
movie "文件名”pos,10,20,320,240 ;以左面上的坐标10,20 大小320x240再生
movie "文件名”,click ;用单击,在那个场合停止再生结束(async时无效)
movie "文件名",loop ;圈再生(因为就是没有止住不指定async也如click的方法注意)
movie "文件名”,async ;异步再生。这个命令开始了再生的时刻处理
NScripter返还,持续通常那样的电影脚本动作,电影被再生。电影经常作为最前排被处理。比字都因为是上面注意。
movie stop ;async停住出做异步再生的电影
这些能组合。

例)
movie "test.mpg",pos,10,20,320,240,async,loop

再生结束时的画像就那样残留在画面。同时,那里因为作为无效领域被对待,由于使用print命令的事,从那里能到效果变化到原来的画像。

【logsp2】
由于logsp的扩张版,字符大小能指定。
例)logsp2 2,$0,150,20,17,17,0,1
从左面,雪碧号码,getlog取得了的字符串,X座標,Y座標,文字幅,文字高さ,文字間X,文字間Y

【bw2a3】
与白去掉用黑去掉,制作NScripter形式的透过画像。
是制造工作用的命令。
做(制作)在与nscripter同样的位置时与文件夹”b”文件夹”w”,与各自白去掉放入黑去掉关于是ku色子(白去掉和黑去掉瞧是ku色子)文
件名bw2a的说明与原来同样好的是酱。如果使用照片店铺的动作工作效率化能吧。
例子)
bw2a3 "test.bmp"
做(制作)b\test.bmpとw\test.bmpからout\test.bmp 。
这个out\test.bmp是目的画像。



无责任翻译...........雪碧是啥咚咚??
顶部
性别:未知-离线 西晋羊牯

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 左将军
功绩 16
帖子 1290
编号 48111
注册 2005-9-7
家族 轩辕狼党


发表于 2005-10-30 15:41 资料 文集 短消息 只看该作者
上の階はかすまで(へ)追い払われることに注意する
顶部
性别:女-离线 慕容翩翩
(三小姐)

韩国公主
谏议大夫

Rank: 16
柱国(正二品)
组别 翰林学士
级别 征东将军
好贴 5
功绩 803
帖子 5431
编号 2222
注册 2005-3-16
来自 九秀山庄
家族 慕容世家


发表于 2005-10-30 15:46 资料 个人空间 短消息 只看该作者
雪碧

偶想应该是这个东东

http://www.sprite.co.jp/tsubaki/index.html
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 15:47 资料 主页 文集 短消息 只看该作者
打倒金山版本= =。金山就把那个翻译成雪碧……= =

然则 雪碧就雪碧吧 那个也算个专有名词了……
顶部
性别:男-离线 穆成雪

白衣伯爵中大夫

Rank: 13Rank: 13Rank: 13Rank: 13
组别 白衣卿相
级别 镇北将军
功绩 188
帖子 3467
编号 2070
注册 2004-12-18
来自 上海
家族 现视研


发表于 2005-10-30 15:48 资料 主页 文集 短消息 只看该作者


QUOTE:
原帖由慕容翩翩于2005-10-30, 15:46:35发表
雪碧

偶想应该是这个东东

http://www.sprite.co.jp/tsubaki/index.html

晴儿应该知道啊,那个雪碧是啥噫嘻??
顶部
性别:女-离线 慕容翩翩
(三小姐)

韩国公主
谏议大夫

Rank: 16
柱国(正二品)
组别 翰林学士
级别 征东将军
好贴 5
功绩 803
帖子 5431
编号 2222
注册 2005-3-16
来自 九秀山庄
家族 慕容世家


发表于 2005-10-30 15:51 资料 个人空间 短消息 只看该作者
SpriteAgent サーバ/システム監視サービス

sever和system监视的服务~~

偶觉得应该是这个吧~~~
顶部
性别:男-离线 穆成雪

白衣伯爵中大夫

Rank: 13Rank: 13Rank: 13Rank: 13
组别 白衣卿相
级别 镇北将军
功绩 188
帖子 3467
编号 2070
注册 2004-12-18
来自 上海
家族 现视研


发表于 2005-10-30 15:52 资料 主页 文集 短消息 只看该作者


QUOTE:
原帖由门清于2005-10-30, 15:47:22发表
打倒金山版本= =。金山就把那个翻译成雪碧……= =

然则 雪碧就雪碧吧 那个也算个专有名词了……

顶部
性别:男-离线 风の幻影

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 189
编号 2753
注册 2003-11-30
来自 天府帝都


发表于 2005-10-30 15:53 资料 短消息 只看该作者 QQ
文章太长了
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 15:58 资料 主页 文集 短消息 只看该作者


QUOTE:
原帖由风の幻影于2005-10-30, 15:53:31发表
文章太长了

一段段翻译 做钟点工也可以
顶部
性别:女-离线 慕容翩翩
(三小姐)

韩国公主
谏议大夫

Rank: 16
柱国(正二品)
组别 翰林学士
级别 征东将军
好贴 5
功绩 803
帖子 5431
编号 2222
注册 2005-3-16
来自 九秀山庄
家族 慕容世家


发表于 2005-10-30 16:00 资料 个人空间 短消息 只看该作者
スプライト
辞書:グラフィック技術編 (TCG.DIC) : 電算用語
読み:スプライト
外語:sprite
発音:sprit
品詞:名詞
・画像データを重ね合わせ処理をした上で任意の座標に表示する機能.

画像deta复合处理后表示任意坐标的技能 大概是这个乐~~

・語源は, 画面の好きなところに, いつでも, 特別な処理を必要とせずに表示出来ることが, まるでスプライト(気まぐれな妖精)にそっくりなところから.

・CPUの能力が足りなかった8ビット機ではハードウェアにスプライト機能を持たせることが多かったが, CPU能力が上がってくるとソフトウェアでスプライトの処理を行なわせても処理速度の問題が起こらなくなった. そのため, 今ではハードウェアでスプライトを用意しているものは殆どない. ハードウェアスプライトはものの見事に過去の技術になってしまったのである.
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 16:08 资料 主页 文集 短消息 只看该作者
NS圈里的人都管它叫雪碧啦^_^

就是一个制作动画相关的东东,可以做出类似电影结束后的职员卷
顶部
性别:男-离线 风の幻影

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 189
编号 2753
注册 2003-11-30
来自 天府帝都


发表于 2005-10-30 16:12 资料 短消息 只看该作者 QQ
【fileexist】
(マニュアルに抜けがあったのでここで紹介します)
文件如果存在1、就必须弄回0。nsa从记录保管处搜索。
例)
fileexist %0,"test.bmp"
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 16:19 资料 主页 文集 短消息 只看该作者
风の幻影 2005-10-30  ¥ 100 轩辕通宝
顶部
性别:男-离线 风の幻影

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 189
编号 2753
注册 2003-11-30
来自 天府帝都


发表于 2005-10-30 16:28 资料 短消息 只看该作者 QQ
【getwindowsize】
getwindowsize 取得幅度変数,取得高度変数
取得窗口的クライアント領域(除了主面版、把画像描画的部分描大一些)。Default是640和480。
例)
getwindowsize %0,%1
顶部
性别:男-离线 风の幻影

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 189
编号 2753
注册 2003-11-30
来自 天府帝都


发表于 2005-10-30 16:33 资料 短消息 只看该作者 QQ
【getspsize】
取得スプライト的尺寸。
getspsize スプライト号码,取得幅度変数,取得高度変数(,取得セル数変数)
取得セル数変数可以省略。
例)
getspsize 0,%0,%1
getspsize 0,%0,%1,%2
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-10-30 17:49 资料 主页 文集 短消息 只看该作者
麻烦楼上的大人把那几个平假名也拼出英文来……:)
顶部
性别:男-离线 风の幻影

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 189
编号 2753
注册 2003-11-30
来自 天府帝都


发表于 2005-10-30 21:37 资料 短消息 只看该作者 QQ


QUOTE:
原帖由门清于2005-10-30, 17:49:13发表
麻烦楼上的大人把那几个平假名也拼出英文来……:)

能大概读出来 但不敢肯定 如果能标出英文了 不如直接翻译了吧?
顶部
性别:女-离线 慕容翩翩
(三小姐)

韩国公主
谏议大夫

Rank: 16
柱国(正二品)
组别 翰林学士
级别 征东将军
好贴 5
功绩 803
帖子 5431
编号 2222
注册 2005-3-16
来自 九秀山庄
家族 慕容世家


发表于 2005-10-30 22:13 资料 个人空间 短消息 只看该作者
其实不懂的直接按到yahoojp上一查就有了么^_^

+U+U
顶部
性别:女-离线 门清
(ベディヴィエル)

长清公主

Rank: 12Rank: 12Rank: 12
组别 轩辕公主
级别 安北将军
好贴 2
功绩 252
帖子 2749
编号 34754
注册 2005-3-16
来自 冬木町
家族 现视研


发表于 2005-11-1 18:37 资料 主页 文集 短消息 只看该作者
顶上来^^

yahoojp是虾米@_@。国内学NS的不多 这个翻译很难找:(

风の幻影 2005-11-01  ¥ 200 轩辕通宝
顶部
性别:女-离线 慕容翩翩
(三小姐)

韩国公主
谏议大夫

Rank: 16
柱国(正二品)
组别 翰林学士
级别 征东将军
好贴 5
功绩 803
帖子 5431
编号 2222
注册 2005-3-16
来自 九秀山庄
家族 慕容世家


发表于 2005-11-1 19:06 资料 个人空间 短消息 只看该作者
www.yahoo.co.jp

日文雅虎挖~~~

有搜索的,可以查外来语的意思~~一般英文外来语都有直接还原的挖~~

大三元姐姐去看看吧^O^
顶部
性别:女-离线 慕容宁宁

白衣郡主

Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11
组别 轩辕郡主
级别 镇南将军
好贴 1
功绩 137
帖子 3691
编号 1125
注册 2005-2-24
家族 慕容世家


发表于 2005-11-1 19:11 资料 主页 文集 短消息 只看该作者
yahoojp是日本雅虎挖~
顶部
性别:未知-离线 凝雪幻

白衣公主谏议大夫

Rank: 10Rank: 10Rank: 10Rank: 10
组别 白衣卿相
级别 左将军
好贴 1
功绩 244
帖子 1374
编号 3870
注册 2003-12-29


发表于 2005-11-1 21:25 资料 主页 文集 短消息 只看该作者
【itoa2】
itoaと同様に数値を文字列に変換しますが、この命令では全角文字列になります。表示したいときに便利です。
例)
itoa2 $0,%4
---------------------------------------------------------

itoa <character variable>,<number>
Turns a number into a character string. Similar to the itoa function in C.

EX)
itoa $0,120
itoa $1,%2

拿钱来~~~~
顶部
性别:未知-离线 西晋羊牯

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 左将军
功绩 16
帖子 1290
编号 48111
注册 2005-9-7
家族 轩辕狼党


发表于 2005-11-1 21:39 资料 文集 短消息 只看该作者
这个东西有英文说明书的,自己去找,鄙视用英文骗钱的。。。。。。。。。

这个东西做的HG不错。


顶部

正在浏览此帖的会员 - 共 3 人在线




当前时区 GMT+8, 现在时间是 2025-2-5 22:41
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.036075 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP