查看完整版本: [-- Nscripter指令手册中文不完全版--(陆续增补中……) --]

幻想森林论坛 -> AVG精华文章区 -> Nscripter指令手册中文不完全版--(陆续增补中……) [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

toz 2005-07-29 00:57

Nscripter指令手册中文不完全版--(陆续增补中……)


声明:
之一,我写这东东的初衷是方便自己写脚本用的速查手册,而非教程,所以一开始解释得非常简略,后来虽然增加了少许说明但基本上也是自己能理解就算了,如果有看后不知所云的地方请提出(或者说还是加上例子之类的比较好呢?不过那工作量有点大啊……)。
之二,因为我不懂日语,所以此手册并非从日文版翻译过来的,而是以个人的理解来解释各项条目的,所以错漏在所难免。
之三,我没什么编程常识,个别专有名词如果和惯例的说法不同也请提出来。
之四,还有一些完全看不懂的条目保留了简略的日文说明,设置成了灰色,等着会的人教我……笑。
希望各位ns同好遇到以上或其他问题尽量地提出,协助补完这份手册。


我已经尽力了……(吐血倒地)……请各位踩着我的尸体前进吧……
……
(再爬起来……)目前放出的部分主要是参照邮箱里那份“NScripter比较完整的指令手册”,但还有相当一部分条目未被涉及(尤其是新手册“追加命令一览”中的命令,有相当多未提到的)。之后我会陆续将新旧手册上的其他条目整理出来……





颜色标识说明:


特别定义语:具有特殊意义的文字或符号,如标签等


F命令:限定用于定义区间的命令


E命令:限定用于执行区间的命令


F·E命令:定义和执行区间都可使用的命令


特殊文字:可插入剧本文字间,不识别为文字而是作为命令被执行的文字或符号。



1-------------------------------------------


游戏开始・重置・结束


*define 定义区块开始位置的标签


*start 执行区块开始位置的标签


game 定义区块结束,进入执行区块


reset 复位游戏


definereset スクリプトを読みなおさせる


end 游戏结束,关闭窗口


2-------------------------------------------


剧本格式相关


* 标签开头标记


; 注释


: 一行出现多条命令之间的分隔符


% 数字变量的开头标记


$ 文字变量的开头标记


? 队列变量的开头标记


~ jumpf和jumpb的跳跃标记


/ 标记在一行的末尾,表示下一行文字续接在这行显示(忽视脚本上的换行空行或其他不影响文字的命令)。


3-------------------------------------------


文字框


setwindow 设置文字框
setwindow 头文字左上角x坐标,y坐标,每行字数,行数,字宽,字高,字间距,行间距,单字显示速度毫秒数,粗体状态,阴影状态,窗体颜色,窗体左上角x坐标,y坐标,右下角x坐标,y坐标


setwindow 头文字左上角x坐标,y坐标,每行字数,行数,字宽,字高,字间距,行间距,单字显示速度毫秒数,粗体状态,阴影状态,"图片路径",窗体左上角x坐标,y坐标


默认的文字框设置为setwindow 8,16,20,23,26,26,0,2,20,1,1,#999999,0,0,639,479


setwindow2 变更文字框的样式。只能对窗体颜色或图片进行更改,不会影响到文字显示。
setwindow2 窗体颜色
setwindow2 "图片路径"


textoff 文字框消失


texton 文字框出现


windoweffect 设定文字框的显示效果。默认为瞬间显示。
windoweffect 显示效果编号{,显示时间毫秒数,遮片图片路径}


erasetextwindow 执行其它效果时文字框消失与否
erasetextwindow 0 不消失
erasetextwindow 1 消失


4-------------------------------------------


文章显示


defaultfont 改变文字字体
defaultfont "字体名"


shadedistance 定义区块使用.可以设定文字阴影宽度
shadedistance 横向偏移像素数,纵向偏移像素数


!s 文字显示速度,可以插入文字间
!s 毫秒数


# 改变文字色彩
# rgb值


& 将文字变为黑色


(/) 给文字增加注释,注释会以小号字体在被注释文字上方显示。
(要注释的文字/注释内容)


textclear 清空文字框中的文字。


locate 文字框设定不变,仅改变文字位置,不影响文字显示……就是节省打空格的工夫了……
locate 头文字后移字数,下移行数


puttext 用在if后面显示文字的命令,不能插入变量,似乎可以显示半角字。
if 条件 puttext "文字内容":puttext "另起一行文字内容"……


br 两行文字之间插入空行


textspeed 改变文字显示速度。
textspeed 数字或数字变量


5-------------------------------------------


点击等待


@ 等待鼠标点击后继续显示文字

\ 等待鼠标点击后换页显示文字


clickstr 遇到特定文字就自动等待点击。限制和特殊情况,没看懂……后面的数字决定是一般等待还是换页等待。数字大于文字框剩余行数,换页,反之一般等待。
clickstr "指定文字",数字


_ 在clickstr指定的文字前标记_即可忽视本次点击等待。


linepage 一行ごとにクリック待ちするようにする


clickvoice 设定点击时的音效。
clickvoice "一般点击时的音效文件路径","换页点击时的音效文件路径"


autoclick 设定点击等待超过一定时间后自动前进。时间数字为0时无自动前进效果。
autoclick 毫秒数


click 等待一次点击后再继续前进



6-------------------------------------------


光标


setcursor 设定等待及换页光标,其后的坐标为0,0时光标和下一个文字位置对齐。图片参数与lsp类似,需要设置动画参数
setcursor 0,"图片路径及参数",相对x坐标偏移,相对y坐标偏移 ;等待
setcursor 1,"图片路径及参数",相对x坐标偏移,相对y坐标偏移 ;换页

abssetcursor 设定固定位置的等待及换页光标
abssetcursor 0,"图片路径及参数",左上角x坐标,y坐标 ;等待
abssetcursor 1,"图片路径及参数",左上角x坐标,y坐标 ;换页


mousecursor 更改鼠标指针
mousecursor "指针文件(*.cur)路径"




[此贴子已经被作者于2005-7-29 19:57:38编辑过]

toz 2005-07-29 00:58

7-------------------------------------------


图片显示


transmode 设定透明方式,默认为leftup
transmode {leftup,copy,alpha}


underline 设定人物站立图片底端坐标
underline 底端x坐标


bgalia 设定特殊尺寸的背景
bgalia 背景左上角x坐标,y坐标,背景宽,高


humanz 站立图相对其他对象遮挡的优先顺序(前后顺序),默认顺位是500
humanz 顺位数字


windowback 使文字框与站立图位于同一遮挡顺位。应用于需要让其他对象遮挡文字框的情况。但文字框中的文字是不可遮挡的


bg 显示背景
bg "图片位置",显示效果编号,显示时长毫秒数
bg 颜色,显示效果编号,显示时长毫秒数


ld 显示站立图
ld 位置参数,图片名,显示效果编号
l-左侧;c-中央;r-右侧


cl 清除站立图
cl {l,c,r,a},显示效果
a表示全部清除

tal 改变站立图的透明度
tal {l,c,r},透明度


print 显示画面
print 显示效果编号{,显示时间毫秒数,遮片图片路径}
print 自定义显示效果编号


lsp 预载对象并默认为可见
lsp 图片编号,"{:透明方式}{/划分动画格数,}{动画间隔时间毫秒数,}{动画播放模式}{;}图片路径",左上角x坐标,y坐标,透明度
透明方式:a -alpha透明;l -以图像左上角像素颜色为透明色;r -以图像右上角像素颜色为透明色;c -无透明;#rrggbb -真彩色图片指定透明色;!pal -索引色图片指定透明色(色板位置)
动画模式:1 -播放一次;2 -循环播放;3 -不播放,用于按钮或灵活指定cell的状况。


lsp 图片编号,("图片a路径"),"图片b路径及参数","图片c路径及参数",左上角x坐标,y坐标,透明度
专用于cg一览模式的语法,当图片a被载入过时,显示图片b,否则显示图片c。


lsp 文字编号,":s/字宽,字长,字间距;颜色{次颜色}文字内容",左上角x坐标,y坐标
次颜色:当把文字对象设为按钮时的鼠标悬停变色。



lsph 预载对象并默认为不可见
格式同上


csp 卸载图片
csp 对象编号
csp -1 ;清除所有对象

vsp 改变图片的可见状态
vsp 对象编号,可见状态
0 -不可见;1 -可见

spstr 用于同时指定多个对象的显示状态(复合控制)。"C对象编号" -指定对象不可见,相当于vsp 对象编号,0;"P对象编号" -指定对象可见,相当于vsp 对象编号,1;"P对象编号,祯号" -指定对象可见且显示为指定祯,相当于vsp 对象编号,1:cell 对象编号,祯号。需要配合print使用。
spstr "控制文字列"
例如:spstr "C11P10,2P9"


msp 图片移动(相对位置)
msp 对象编号,相对横向位移,相对纵向位移,相对透明度变化

amsp 图片移动(绝对位置)
amsp 对象编号,x坐标,y坐标,透明度


cell 指定sp对象显示的为哪一祯。0为第一祯,1为第二祯,2为第三祯……以此类推。指定祯号超过现有祯数显示最后一祯。默认为0。
cell 对象编号,祯号


blt 快速显示图像的命令。要截取的图像事前要使用btndef载入(相当于没有按钮功能的按钮)。截取的图像会根据显示区域自动缩放,可结合wait及for_next命令制作缩放或平移动画。
blt 显示区域左上角x坐标,y坐标,显示区域宽,高,预载图像截取左上角x坐标,y坐标,截取部分宽,高


ofscpy 总之在blt命令之后不写上这一句的话,blt的显示区域和别的print效果切换时无法正常显示。


repaint 画面重新刷新,如出现显示错误可以用此命令刷新画面来解决(例如bar或prnum对象print无法正常消失之类)。


allsphide 隐藏全部对象,需要配合print命令


allspresume 将隐藏状况解除,也需要配合print命令



8-------------------------------------------



画面效果


effect 画面效果设定,自定义编号从2开始
effect 自定义效果编号,显示效果编号{,显示时间毫秒数,遮片图片路径}
显示效果:
0-依下一个显示命令显示……不太理解,总之尽量别用……
1 -瞬间显示
2 -左快门
3 -右快门
4 -上快门
5 -下快门
6 -左窗帘
7 -右窗帘
8 -上窗帘
9 -下窗帘
10 -透明渐变
11 -左卷动
12 -右卷动
13 -上卷动
14 -下卷动
15,18 -遮片/ALPHA遮片
16,17 -马塞克效果


effectblank 显示效果实施后等待一段时间再继续执行命令。当显示效果为瞬间显示(1)时此设定不执行。
effectblank 毫秒数


effectcut 快速略过时所有显示效果都为瞬间显示


quake 画面晃动效果,单次不规律晃动
quake 位移像素数,晃动时长毫秒数


quakex 画面横向晃动
quakex 晃动次数,晃动总时长毫秒数


quakey 画面纵向晃动
quakey 晃动次数,晃动总时长毫秒数


monocro 画面褪色效果,画面变为以指定颜色为主色调的单色图。需配合print命令使用
monocro 颜色
monocro off ;结束退色效果


nega 底片效果,参数为1表示和monocro并用时与褪色效果指定的色调统一,2表示和monocro并用时与褪色效果指定的色调反相(但我使用nega 2命令时若保持底片效果至end,ns窗口会在关闭时弹出错误报告,不知是否为bug),0表示还原为原图色彩。也需要配合print使用。
nega 效果参数



9-------------------------------------------


文字・数字・条块


% 显示数字变量


$ 显示文字变量


bar 设定条块对象,需要用print来显示
bar 条块编号,当前长度比例,左上角x坐标,y坐标,长度,高度,总长度比例,颜色


barclear 清除条块对象的设定。要配合repaint才有效果

prnum 显示0-999之间的数值
prnum 数字编号,欲显示的数值,左上角x坐标,y坐标,字宽,字高,颜色


prnumclear 清除数字标签的设定。要配合repaint才有效果



10-------------------------------------------


音乐与音效


cdfadein cd音轨淡入效果时间指定
cdfadein 淡入时间毫秒数


cdfadeout cd音轨淡出效果时间指定
cdfadeout 淡出时间毫秒数


mp3fadein mp3及midi淡入效果时间指定
mp3fadein 淡入时间毫秒数


mp3fadeout mp3及midi淡出效果时间指定,以上会应用于单次播放的音乐头尾,循环播放的单曲头尾,音乐切换时的切出部分。
mp3fadeout 淡出时间毫秒数


play 循环播放midi及cd上的音轨
play "midi文件路径"
play "*音轨序号"


playonce 同上,只播放一次


playstop 停止MIDI或者CD


wave 播放wave文件(单次)
wave "wave文件路径"


waveloop 同上,循环播放wave文件


wavestop 停止播放wave文件


mp3 播放mp3文件(单次)
mp3 "mp3文件路径"


mp3loop 同上,循环播放mp3文件

mp3save mp3再生中にセーブするとロード後もを再生


bgm 循环播放所有格式声音文件
bgm "文件路径"


dsound 在定义区块表明使用DirectSound,需要DirectX2或更高版本支持。现在已经没有必要了。

dwave 使用DirectSound播放wave文件,可以实现多个wave文件重叠播放。也可以和以上播放命令重叠使用。
dwave 音效编号,"wave文件路径"


dwaveloop 同上,循环播放


dwavestop 停止播放
dwavestop 音效编号


dwaveload 预载wave文件
dwaveload 音效编号,"wave文件路径"


dwaveplay 播放预载的wave文件
dwaveplay 音效编号


dwaveplayloop 同上,循环播放


chvol 调解音效音量
chvol 音效编号,音量
满值为100


stop 停止播放全部音乐



11-------------------------------------------


播放动画


avi 播放avi文件
avi "文件路径",播放参数
1 -鼠标点击时中止播放,执行后面的命令;0 -无视点击强制播放到结尾


mpegplay 播放mpeg文件,参数同上
mpegplay "文件路径",播放参数



12-------------------------------------------


选项


selectcolor 指定选项文字的颜色,
selectcolor 悬停变色颜色,普通状态颜色
默认为selectcolor #ffffff,#999999


selectvoice 指定选项的音效
selectvoice "选项展开时的音效文件路径","悬停时的音效文件路径","点击时的音效文件路径"


select 显示选项,选项将会以一行一个方式顺序排列,超出文字框行数会报错。
select "第一个选项内容",要跳转到的标签名,"第二个选项内容",要跳转到的标签名,……


selgosub 选择后跳转到某标签,执行结束后回到selgosub,即将选项跳转到的标签作为公共事件。要配合return使用。
写法同上


selnum 根据选项给变量赋值,即把选项作为按钮设置。
selum 数字变量,"第一个选项内容","第二个选项内容",……




13-------------------------------------------


跳跃


goto 跳跃到指定的标签
goto 标签名


skip 跳过若干行命令,如果行数为负即为向上跳过几行执行。
skip 行数


gosub 跳跃到公共事件,要配合return使用


return 从公共事件返回,标记在公共事件的末尾。


jumpf 跳跃到下方最近的~标记


jumpb 跳跃到上方最近的~标记


14-------------------------------------------


监视点击跳跃


trap 鼠标左点击后跳跃到指定标签。
trap *标签名
trap off
;取消监视点击的状态

lr_trap 鼠标左右点击同时被监视,效果与写法同上。


trap2 左クリックと「次の選択肢に進む」に反応して指定ラベルへジャンプする


lr_trap2 左右クリックと「次の選択肢に進む」に反応して指定ラベルへジャンプする




[此贴子已经被作者于2005-7-29 15:42:50编辑过]

toz 2005-07-29 02:01
15-------------------------------------------





图像按钮

btndef 预载按钮悬停图片
btndef "图片路径"

btn 设置按钮,编号从1开始
btn 按钮编号,按钮范围左上角x坐标,y坐标,宽,?悬停图像截取左上角x坐标,y坐标

btnwait 等待点击并根据点击位置给变量赋值。点击按钮以外区域返回值0;点击按钮返回值为按钮编号;右键点击返回值-1。btnwait执行后会清空按钮定义的内容。
btnwait 数字变量

btnwait2 同上,执行后不会清空按钮定义的内容。

spbtn 将对向指定为按钮,对象按钮没接触时cell为0,悬停后为1
spbtn 对象编号,按钮编号

getbtntimer 取得在btnwait状态下停留的时间。此期间如果点了鼠标右键或空白处,返回了btnwait上面的标签的话,就重新开始计时。
getbtntimer 数字变量

btntime 给按钮设置时间限制。写在btnwait前一行,此期间如果点了鼠标右键或空白处,返回了btnwait上面的标签的话,就重新开始计时。
btntime 数字或数字变量或计算式

exbtn 复合按钮的状态设置。可以给按钮附加音效,也可以以复合控制文字列设置鼠标悬停时的一系列sp变化,具体可参考spstr命令。附加音效的写法似乎还有其他参数……不明……
exbtn 对象编号,按钮编号,"音效文件路径"
exbtn 对象编号,按钮编号,"控制文字列"

exbtn_d 复合按钮的状态设置。设定鼠标未接触按钮时的sp显示状态。
exbtn_d "控制文字列"


16-------------------------------------------

等待与计时

!d 插入文字间指定等待时间,不能使用变量,鼠标点击可以略过。
!d 毫秒数

!w 指定强制等待时间,不能使用变量,不能略过。
!w 毫秒数

delay 鼠标点击可以略过的等待。可以使用变量。
delay 毫秒数或数字变量

wait 强制等待。可以使用变量。
wait 毫秒数或数字变量

resettimer 内部计时器归零。

waittimer 以内部时钟计时指定等待时间。这是ns最准确的计时方式。 图像显示效果之类命令中的时间设定并不是十分准确的(个人估测误差在1%以内)。
waittimer 毫秒数

gettimer 取得内部计时器从resettimer开始经过的时间。
gettimer 数字变量

spwait 等待指定号码的图片对象的动画播放完毕后再执行下一步操作。动画模式为循环时约等待2次循环后继续。
spwait 对象编号


17-------------------------------------------

变量与计算

stralias 给包含文件路径和参数的文字列命名,脚本中写这个简称即可调用指定的文件。调用名可以由半角字母,数字和下滑线组成,头文字不能为数字。
stralias 自定义调用名,"文件路径及参数"

numalias 给数值命名,扩展用法是给变量命名
numalias 自定义调用名,数字

intlimit 设定变量的上下限,超出次上下限时变量的值会自动带入指定的最大最小值
intlimit 变量编号,最小值数字,最大值数字

dim 定义数组变量范围。数组变量就是按行列排列成表格的样子的一组数字变量。因为行列都是从0开始计的,所以若行数写为[2],代表有3行。
dim 数组变量[行数][列数]

mov 给变量赋值
mov 数字变量,数值或变量或计算式
mov 文字变量,"文字内容"

mov3~mov10 可以同时给指定变量以后连续的10个以下数字变量赋值,
movN 数字变量,第一个值,第二个值,……第N个值

movl 给数组变量的某一行赋值。
movl数组变量[行号],第一个值,第二个值,第三个值……

len 获得文字变量的字数(一个汉字占两字节)
len 数字变量,文字变量

mid 从一个文字变量中截取一段文字赋予另一个文字变量,后面的第一个数字为截取开始位置,从第一个字开始截取就设为0;第二个数字为截取长度。(一个汉字占两字节)
mid 被赋值的文字变量,作为母本的文字变量,数字或数字变量,数字或数字变量

add 加
add 数字变量,数值
add 文字变量,"追加文字"

sub 减
sub 数字变量,数值或变量

inc 加1
inc 数字变量

dec 减1
dec 数字变量

mul 乘
mul 数字变量,数值

div 除,只保留整数(不是四舍五入)
div 数字变量,数值

mod 求余
mod 数字变量,数值

rnd 获得0-给出数字之间的随机数
rnd 数字变量,数字

rnd2 获得数字1-数字2之间的随机数
rnd2 数字变量,数字1,数字2

itoa 将数值转换为文字列,只能转换为半角
itoa 文字变量,数值

atoi 以上反之,文字列只能为半角数字。
atoi 数字变量,文字列

18-------------------------------------------

条件和循环

if 条件判断,当……的时候
if {条件} {要执行的操作}
if {条件} && {条件} &&…… ;多个条件同时成立,&&也可写为&。
if {条件} {要执行的操作}:{要执行的操作}:…… ;执行多步操作
条件式常用符号:<,>,=,>=,<= 讲解略
==与=都是等于的意思
<>与!=都是不等于的意思

notif 如果不是……的情况
格式同上

cmp 文字どうしを比較する

fchk 判断指定文件是否被调用过,如果调用时的参数不同则视为否。
if fchk "文件路径及参数"

lchk 判断指定标签是否被读到过,以下写法都可。
if lchk 标签名
if lchk "标签名"
if lchk 文字变量

for~next 循环
for 数字变量=数字 to 数字 step 每次递增数值
{要执行的操作}
next

break 中断循环
for 数字变量=数字 to 数字 step 每次递增数值
{要执行的操作}
if 条件 break
next

19-------------------------------------------

右键机能设定

rmenu 右键呼出菜单的设置。
rmenu "自定义的机能名称",机能,"第二个技能名称",机能,……
可加入右键呼出菜单的机能有:
skip -快速略过
reset -游戏复位
save -储存档案
load -读取档案
lookback -回顾前一段文字
windowerase -屏蔽文字框

menusetwindow 右键呼出菜单的外观设置。除文字以外只能改变窗口颜色。默认为menusetwindow 26,26,0,2,0,0,#999999
menusetwindow 文字高,宽,字间距,行间距,粗体字状态,黑体字状态,窗体颜色

savename 右键呼出菜单中的储存读取菜单具体名称设置。默认为“保存”,“读取”和“档案”
savename "自定义储存菜单标题","自定义读取菜单标题","自定义档案名"

menuselectcolor 右键呼出菜单中的文字颜色设定。
menuselectcolor 鼠标悬停颜色,一般状态颜色,尚未保存过的档案颜色

menuselectvoice 右键呼出菜单中的音效设定。如写作""代表无音效。
menuselectvoice "菜单打开时的音效文件路径","关闭时的音效","鼠标悬停时","点击时","点击了无法进行的操作的警示音","选择「是」的时候","选择「否」的时候"

rlookback 设置右点击为回顾上一段文字

roff 右点击无效

rmode 右点击功能开关
rmode 1 右点击有效
rmode 0 右点击无效

toz 2005-07-29 02:02

20-------------------------------------------


回顾


lookbackbutton 设定回顾功能按钮,默认的文件名为"uoncur.bmp","uoffcur.bmp","doncur.bmp"。要求图片大小一致,不支持动画,不能改变位置(按钮位置为文字框的右上角和右下角)。
lookbackbutton "向前按钮选中状态图片路径","向前按钮一般状态","向后按钮选中状态","向后按钮一般状态"


lookbackcolor 设定回顾模式的文字颜色
lookbackcolor #rrggbb


lookbackvoice 设定回顾模式音效
lookbackvoice "音效文件路径"


lookbackflush 取消回顾模式



21-------------------------------------------



初次阅读判断及快速略过


kidokuskip 打开初次阅读判断,设置后脚本运行时会自动生成一个kidoku.dat文件记录已经读过的文字。对于初次阅读的文字部分禁用菜单的快速略过功能。


mode_wave_demo 「次の選択肢を飛ばす」の時でもWAVEを鳴らす


skipoff 停止快速略过。



22--------------------------------------------



调用记录和全局变量


filelog 用来记录调用过的文件的相关数据。如果调用时的参数不同则视为不同的文件。和globalon同时使用时的特殊情况………………没看懂…………


globalon 全局变量


labellog 记录读取过的标签的日志。


23-------------------------------------------


存储与读取


savenumber 指定存档总数,最大为20,默认为9。如没有配合设定好菜单样式等,造成文字超出会出错。
savenumber 数字


savegame 存档到指定编号的档案,自动存储,不会出现任何确认提示。
savegame 档案编号


loadgame 从指定编号档案读取存档,自动读取,也没有任何确认提示。如无法读取(如该档案无存档等)继续执行下面的命令。
loadgame 档案编号


savefileexist 判断某一编号档案上有无存档。有存档变量赋值1,无存档为0。
savefileexist 数字变量,档案编号


saveon 重新开启即时存档功能

saveoff 禁止即时存档,与以上配合,在saveoff与saveon之间区域的存档内容强制为saveoff之前。


24-------------------------------------------


追加机能


mesbox 弹出信息窗口。
mesbox "信息内容","信息窗口标题"


inputstr 弹出文字输入对话框。最后四个尺寸设定可以省略。最大字数那里请注意:一个汉字算两个字数。全角字判定为1 -打开判定(禁止输入半角字),0 -关闭判定;ns2.45汉化版此处存在bug,请不要设定为1。
inputstr 文字变量,"说明文字",最大文字数,全角判定,对话框宽,高,输入框宽,高


input 同样的弹出文字输入对话框,可以在输入栏指定默认内容。
input 文字变量,"说明文字","默认输入内容",最大文字数,全角字判定


clickpos 取得鼠标点击点的坐标
clickpos 获得x坐标的变量,获得y坐标的变量


systemcall 可以调用右键呼出菜单里的所有系统功能,具体可参考rmenu命令。systemcall rmenu的话就是叫出右键呼出菜单,与右键点击效果相同。
systemcall 机能


25-------------------------------------------


特殊模式设定


automode 「オートモード」を使用する設定にする


automode_time 「オートモード」でWAVEが鳴っていないときの時間設定


defvoicecol 设置0频道声音(dwave 0)的音量。默认为100。
defvoicecol 音量


defsevol 设置1频道声音(dwave 1~)的音量。默认为100。
defsevol 音量


defmp3vol 设置mp3(bgm)的音量,默认为100。
defmp3vol 音量


mode_saya 开启“莢模式”。当文字框消失时,编号1-9的对象同时消失。可用其制作自制系统按钮。


mode_ext 「銀色モード(オートモード)」を使用する設定にする


mode800 画面尺寸变为800x600


26-------------------------------------------


插件和素材文件管理


soundpressplgin 音楽圧縮プラグインを指定する(現在はDirectX命令で代用できる)


spi 画像圧縮プラグインを指定する。


arc アーカイブを使う


nsa 直接读取nsa压缩包里的文件


nsadir 指定要从中读取文件的nsa文件的名称。默认为arc.nsa
nsadir "nsa文件名"


27-------------------------------------------


信息显示


versionstr 变更版本说明中的文字,限两行(但单行文字量超过一定量会自动换行)。支持半角
versionstr "第一行文字内容","第二行文字内容"


caption 变更窗口标题栏
caption "标题文字"



28-------------------------------------------


信息获得


date 获得系统日期(年月日)
date 获得年份数值的数字变量,获得月份数值的数字变量,获得日期数值的数字变量


time 获得系统时间(时分秒)
time 获得时数值的数字变量,获得分数值的数字变量,获得秒数值的数字变量


savetime 获得指定编号的档案的存档时间(月日时分)。当该编号档案无存档时月份的返回值为0。
savetime 档案编号,获得月份数值的数字变量,获得日期数值的数字变量,获得时数值的数字变量,获得分数值的数字变量


getversion 获得当前运行的ns执行文件的版本编号。(数值为当前版本号x100)
getversion 数字变量


getreg レジストリを参照する


getini iniファイルを参照する



29-------------------------------------------


窗口菜单相关


killmenu 消除窗口菜单,最左侧菜单编号为0,向右依次加1。
killmenu 菜单编号


defaultspeed 设定系统菜单中的文字低中高速状态的速度。
defaultspeed 低速状态的速度,普通状态的速度,高速状态的速度


!sd 在文字间设定系统菜单中的文字低中高速状态的速度。
同上


menu_full 开启全屏模式


menu_window 开启窗口模式


menu_click_def 普通に表示するモードにする


menu_click_page 1ページごとに表示するモードにする



30-------------------------------------------


システムカスタマイズ関連


*customsel cselと対応するラベル


textgosub システムカスタマイズ時通常文章のクリック待ちで飛んでくるラベル


csel システムカスタマイズ時の選択肢命令


cselbtn 選択肢のテキストでボタンを作る


getcselnum csel選択肢の数を取得する


cselgoto cselで設定したラベルへ飛ぶ


textbtnwait customwait時のクリック待ちをする


selectbtnwait customsel時のクリック待ちをする


texec 改ページ待ちの場合テキストを消去する


getcursorpos 获得文字框光标的坐标(光标图片左上角)
getcursorpos 获得x坐标的数字变量,获得y坐标的数字变量




[此贴子已经被作者于2005-7-29 18:56:46编辑过]

cexo 2005-07-29 11:06

補充一下:關於kidokuskip

既読スキップ

kidokuskip 既読スキップ機能をONにする
mode_wave_demo 「次の選択肢を飛ばす」の時でもWAVEを鳴らす
skipoff 自動文字送り状態を解除する

個人理解:既讀判定

也就是在define裏面加入kidokuskip語句以後,對於後面的text文字如果看過一次以後,再skip的話就可以直接忽略

如果不加入kidokuskip的話,不管看過沒有看過都可以直接忽略

加入了這個語句以後執行nscr,會出現kidoku.dat這個文件記錄既讀對話。

這個語句在後面貌似可以用kiddokuskip 1和kiddokuskip 0打開和關閉

順便補充以下if

if中有些奇怪的符號

==這個符號是恆等於

!=這個我也不知道……而且相關範例中沒有見到過

<>這個符號貌似是不等于

使用if的幾種形式

if %0=1 quakex 2 基本形式 如果%0=1 執行quakex 2

if %0=1 && %2=5 end 同時達成形式 如果%0=1而且%2=5同時達成,執行end

if %0=2 mov %1,1:skip 2 如果%0=2 那麽將變量%1變成1,之後執行skip 2


toz 2005-07-29 12:37

<>是不等于,!=也是不等于阿……反正我试过之后是那么理解的……
恒等于和等于有什么区别啊?
另外还有&&,只写一个&也是一样的意思……不知为什么还这么多花样……?为了整齐么?[em01]


[此贴子已经被作者于2005-7-29 12:45:55编辑过]

cexo 2005-07-29 12:57

&&大概是因为&本身还有其他的意思,方便编辑的时候查找的时候设置的吧……

恒等于和等於的區別不知道,我在c65的腳本裏面也沒有看到恒等于,自己嘗試了恒等于就是等於……大概區別和c語言裏的一樣吧(c裏面貌似也有兩個等於)

mid……持續不知道是什麽意思……然c65裏面大量用到了mid

尤其是回顧系統kaisuo裏面……

[em06][em06]

mov %1,%11
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 51,$0,30,500
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 52,$0,30,436
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 53,$0,30,371
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 54,$0,30,307
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 55,$0,30,243
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 56,$0,30,179
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 57,$0,30,114
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 58,$0,30,50

在這裡貼上腳本局部,toz san有空幫我分析下……

[em06][em06]

這一個局部是在回顧的時候引入名字,c65裏面把名字的setwindow和對話的setwindow分開了,好似是和兩個不同的變數連接,然後回顧的時候名字佔用了7個全角字符,每一個回顧頁面可以顯示8段對話和8個名字。

西日東月c65詳細的腳本貌似adv大人貼上了……雖然是c65,但是功能相對已經比較全面了,除了沒有save和load以及特有的qsave。然,腳本裏貌似寫了save和load以及qsave標簽……

[em06][em06][em06][em06]

Advance 2005-07-29 13:00

&&在C和其他语言中相对于&是有不同含义的,&&表示“条件和”,而&表示“做前后判断项做AND处理操作”

如一个字节(8位)的数据,内容是2,与另外一个内容是8的数据做AND处理,用二进制来表示,则为
|00000010
&
|00001000

0&0为0,1&1为1,1&0为0,所以上面所得是00000000,但必须书写“X & Y == 1”才能等价于X && Y,因为若第二个数据的内容为14,则
|00000010
&
|00001110

显而易见,最终会得到00000010这个值,即2 & 14 == 2

另外附带一提,=是赋值操作符,==才是判断等式是否成立的符号~_~

恒等式是指判断内容已经被确定的等式,如1==1,2==2


[此贴子已经被作者于2005-7-29 13:03:27编辑过]

Advance 2005-07-29 13:13

我给你补充一下好了

clickstr "?!",???

输出以下对话的时候,分别在问号和感叹号出现时停顿两次

「啊嚏!冷死了,今天气温多少?」

如果我们在问号前面加一个_,变成

「啊嚏!冷死了,今天气温多少_?」

则程序只会在感叹号出现时停顿一次


system custom关联

提供一些低级指令来实现一些自由度要求较高的功能

比如典型的getcursorpos(顺便说一下在EADV里面是mouse.getpos,HOHO),它包含的两个参数就是用来装载当前鼠标指针所处位置的。

还有类似的cselgoto,允许用户在使用一个高级指令后插入自己的处理语句


toz 2005-07-29 19:42

追加if的详细讲解


追加_;len及mid;kiddokuskip及skipoff;getcursorpos等条目


关于kiddokuskip 0,kiddokuskip 1,至少在2.45版还不支持在执行区间使用这个命令。


关于getcursorpos,这个命令应该是用来取得文字框光标坐标的。


关于==,=,&&,&,因为至少在ns里可以通用,就不加以深入区分了……


以上内容已更新。


[此贴子已经被作者于2005-7-29 19:55:39编辑过]

CountD 2005-07-29 22:34

getcursorpos在邮箱里的日本范例游戏下载里有使用.

现在使用的伪圣书的对话系统也是借鉴了那个的思路.(但是因为cursor位置是固定的,所以就没有使用这条命令)


CountD 2005-08-07 17:12

lsp 0,":s/20,20,0,0,0;#FFFFFFあああああ",x,y

日站上看到的,lsp显示文字格式.原来可以加这么多参数...= =


toz 2005-08-08 11:01

lsp 0,":s/20,20,0,0,0;#FFFFFFあああああ",x,y

急忙忙试了一下,知道第一个参数(红的那个)的用途了:0是维持和文字框的字妆饰设定一致(默认是0),1是文字边缘变为不消除锯齿的状态(就是取消掉所有的字边缘装饰效果吧?如果原来设为阴影字,阴影也取消),2是以不消除锯齿的方式给文字描边……好像只能用黑色描边……很难看……[em14]

第二个参数始终不知道是干嘛的……


CountD 2005-08-08 18:46

实际上偶加过4个零...= =||8过似乎也没啥用...


toz 2005-09-30 14:12
键控相关命令
以下命令的作用都是在btnwait时程序可以对键盘的输入做出反应。根据btnwait时按下的按键不同而给变量返回不同的值,从而实现ns的键控。

------------------------------

usewheel
定义区间专用命令,允许使用鼠标滚轮,向上滚动返回值-2,向下-3,使用了的情况下btntime返回值-5

useescspc
定义区间专用命令,允许使用esc键和空格键,esc键返回值-10,空格键返回值-11

-----------------------------

以下命令是执行区间专用的,且只能写在btndef和btnwait系命令之间。

getinsert
允许使用insert键,返回值-50

getzxc
允许使用z,x,c键
z返回值 -51
x返回值 -52
c返回值 -53

getpageup
允许使用pageup键,返回值-12

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

门清 2005-11-17 15:40
http://nscripter.insani.org/reference/meirei/meirei.htm
ONscripter英文版说明书……这是哪一版呢= =

然则命令的用法跟Ns一样,不过功能明显比NS少

toz 2005-11-17 16:02
就是邮箱里那份日文手册的英文版……我顶楼提到的主要参考的“比较全的命令手册”也是指的那份(日文),我整理的这个又增补了一些2.45新追加命令……

应该是针对2.45以前版本的。


查看完整版本: [-- Nscripter指令手册中文不完全版--(陆续增补中……) --] [-- top --]



Powered by PHPWind v7.5 SP3 Code ©2003-2010 PHPWind
Time 0.064651 second(s),query:2 Gzip enabled

You can contact us