幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 13791|回复: 19

[NS] NScripter全攻略:LEVEL 1 Hello World

[复制链接]

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

发表于 2005-10-3 15:11:48 | 显示全部楼层 |阅读模式
本引用框内连接为非法转载本教程的论坛地址,在作者声明禁止无端转载之后依然坚持盗帖不署名的伟大行为。作者在此对这些ID表示严重鄙视。

批量转载搬走本区全部精华者:
http://cache.baidu.com/c?word=ns ... 0d48&user=baidu
≡ 都 市 の 枫 ≡  版主:noahland
整个精华区包括TOZ等各位作者的帖均被不署名盗走,最搞笑的是发帖抗议以后该论坛不声不响的删除了我的抗议帖,然后把整个他们所谓的NS区隐藏了,但是只要通过原地址或者BAIDU依然能找到这些。

邪恶之诅咒:
盗帖者全家死光光
无端转载者出门被狗咬

假如获得转载授权,转载同时请贴出本人签字画押授权书。
本教程已在国家R界专利局申请专利,禁止任何形式的侵犯版权行为。

作者联系方式:
fs_countd@126.com

以下内容需要积分高于 0 才可浏览

LEVEL 1 Hello World !

友情提示:在观看LEVEL 1教程之前,请先详细读完LEVEL 0~谢谢合作~

相关指令:
*define
game
*start
end
reset
\
@
br
clickstr
_
;
Hello World。也就是所谓的“自己动手制作的第一个程序”。
似乎,在看过的基本所有程序类“入门到精通”的书里,都有这东西的存在。虽然这个程序既没有乐趣也没多少成就感,而且还没创意,但是,……

首先,打开我们已经建好的0.txt(其实叫2.txt或者99.txt或者别的什么也无所谓),在里面输入以下内容,然后保存。
  1. ;-------------------我是分隔线-------------------
  2. *define
  3. game
  4. *start
  5. 你好,世界。@
  6. 这是我的第一个程序。\
  7. end
  8. ;-------------------我是分隔线-------------------
复制代码



再补充说明一下:
一般来说,NScripter读取指令的时候,是依靠“分行”来辨认的,将每一行视为一条指令。如果有空行,就会被忽略。

还要注意的是“文章(无论中文E文数字都一样)”及“标点符号”必须使用全角,而作为“显示文章”标志的@和\,以及其他的英文部分的指令则是使用半角的。

接下来,是每条指令详细的说明……

*define “define”是E文“定义”的意思。
从*define到game之间的部分,被称为NS的定义区块。这部分的主要功能是对NS的内部设置做一些修改。假如里面什么都不写的话也没关系,NS会全部采用默认设置。(包括我们现在看到的那排写着“画面设定”“字体设定”的菜单栏,内建存档的个数等等,都是可以修改的。)而NS开始执行游戏,也就是从寻找TXT文件里的*define标志开始的。(现在知道一开始只有一个EXE文件的NS为什么会显示“标签*define不存在”这样的错误信息了吧?)
game 表示定义部分已经完成,可以开始正式的游戏了。

*start ——当然就是开始游戏的意思。这部分以后,就是“游戏执行区块”了。
因为有定义部分和游戏部分的区别,NS本身的指令也分为三种:只能用在定义区块里的(F类指令),只能用在游戏执行区块里的(E类指令),和在两部分都可以通用的(FE类指令)。

最后,当NS执行到end指令的时候,就会退出。

中间的两行,刚刚已经看到了,就是显示出来的文章。
你好,世界。@
这是我的第一个程序。\
@和\这两个标志的意思都是“显示一段文字,并且等待玩家点鼠标(或者按下ENTER键)之后,才继续执行下一条指令”。如果不使用这两个标志来表示“等待”的话,这两句话会在屏幕上一闪而过,之后就退出了。
这两个标志的特殊还在于可以在同一行里多次出现。
类似这样的写法“你好,@世界。@这是我的第一个程序。\”也是可以的。

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

问题一:既然同样都是作为“显示文章”的标志,@标志和\标志有什么区别吗?

那么,试看看把程序写成这样……
  1. ;-------------------我是分隔线-------------------
  2. *define
  3. game
  4. *start
  5. 你好,世界。\
  6. 这是我的第一个程序。\
  7. end
  8. ;-------------------我是分隔线-------------------
复制代码

这一次,在显示“这是我的第一个程序。”的同时,“你好,世界。”消失了。
\标志比@标志多了一条功能,就是在显示它所在的这一行文章的同时,将之前显示的文章消除。在电子小说里,@是接着看下一行,而\就是翻过一页,把之前的一页清掉了。
因为屏幕或者对话框的大小是有限的,如果已经显示的文章字数超过了屏幕可以容纳的范围,NS就会报错,因此在制作电子小说的时候,合理的使用这两个标志是很重要的基础哟。

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

问题二:我想在两行文字间空上一行,但是NS把所有空行都WS了?

因为这样,NS也提供了另外一条指令。“br”其实是HTML语言里表示空行的命令,在NS里,也是同样的意思。
  1. ;-------------------我是分隔线-------------------
  2. *define
  3. game
  4. *start
  5. 你好,世界。@
  6. br
  7. 这是我的第一个程序。\
  8. end
  9. ;-------------------我是分隔线-------------------
复制代码
不用说,自己看看效果吧。

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

问题三:每显示一段文章都一定要用@和\吗?麻烦不说,要是忘了加还容易出错,没有其他办法?

既然每句话结尾多少都有个感叹号句号问号之类的,在制作比较大型的游戏时,还要再为每行文字加一个标志确实很烦。因此,NS也提供了比较简单的方法:clickstr命令。
clickstr就是一个F类指令,也就是说,是只能用在NS的定义区块里的。
  1. ;-------------------我是分隔线-------------------
  2. *define
  3. clickstr "。",1
  4. game
  5. *start
  6. 你好,世界。
  7. 这是我的第一个程序。
  8. end
  9. ;-------------------我是分隔线-------------------
复制代码

没有使用@和\的情况下,效果和之前的完全一样。
并且,使用clickstr命令之后,NS会根据参数,在文字显示超过屏幕可容纳字数后自动翻页。

Clickstr的格式为:
Clickstr "。!?(可以写一个,也可以写N个,必须要是全角)",2
Clickstr "等待标志",翻页参数

翻页参数为0时候,不会自动翻页,超过字数会出错。
为1时,显示到屏幕(或对话框)满为止,自动翻页。
为2时,到离可容纳字数还有1行时翻页。
为3时,到离可容纳字数还有2行时翻页。
以下类推。

而假如某一行里有句号或其他已经定义的等待符号,比如说问号,但是不想让这部分等待的时候,还有一个“等待失效”的标志“_”。
把“_”标志放在等待符号的前面,执行到这里的时候就不会等待,而会直接继续显示下一句了。
例如:
国家政策,小白要持证上岗_。

补充,假如真的对以上都懒得使用,请在define区内加入linepage命令。
这条命令会把每一行视做一段对话。
缺点是,在使用这个命令之后/命令(换行失效命令)无法使用。

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

问题四:执行完窗口关掉以后,怎么文件夹里多了一个叫“envdata”的文件?

Envdata文件是设置文件,类似一般游戏里的ini文件。作用是记录一些玩家的操作和设定,比如上一次进行游戏时是全屏还是窗口模式,使用的是什么字体之类的信息,都会被记录下来。这当然是很贴心的功能了,对游戏制作者来说却有点头大,修改了一些设定之后再执行游戏,却无论如何都没效果,究其原因,都是这个envdata文件在作怪。因此,保险起见,修改一些设定之后,请记得删除envdata文件再做测试。

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

本日小贴士:
注释符号“;(半角分号)”的使用。
NScripter里,某一行里的“; ”符号后面的部分会被当作注释而不执行,因此无论是中文英文全角半角都可以用在注释里。
虽然似乎很多人(包括蓝蛇……= =)都没有使用注释的习惯,但是,其实,根据某D的经验,注释还是非常有用的。除了使用文字和分隔线,免得时间长了自己看不懂以外,加在某个命令前,使某一条命令暂时不起作用以测试它的功能,或者用来加入大量个人化的东西以恶搞,打上版权标记,或者甚至仅仅为了让文本看起来不那么单调,请大家把注释华丽的使用到底吧……[天音:你以为全世界的人都和你一样无聊吗……]
注释使用范例:
  1. ;------------------我是分隔线----------<<==这行就全是注释了
  2. *define;这里开始是定义区<<==可以这么用....
  3. game    ;定义结束...
  4. ;^^前面多打几个空格(半角空格)也可以,半角空格和空行一样是会被自动忽略的
  5. ;------------------我是分隔线----------<<==这行也是注释
复制代码

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


作业(觉得太弱智的可以不做,反正没人检查……):

1随便找一段文字把它丢到NS里,小学课文也可以。试一下“\ ,@,br,clickstr”的使用。

2把程序末尾的end指令令换成reset指令,看看会有什么变化。

3 DEBUG练习。
找出以下程序的错误。
  1. *define
  2. clickstr “.”
  3. game*START
  4. HELLO WORLD!@
  5. re
  6. set
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
http://www.nvlmaker.net/
回复

使用道具 举报

56

主题

2671

帖子

92

积分

超级版主

爆忙毒舌原画师仓鼠丸

Rank: 8Rank: 8

积分
92
QQ
发表于 2005-10-3 18:29:44 | 显示全部楼层
来顶......回头我配图拿来做电子书好了-w-
因金融危机失业,长期承接各种2D商业外包活 游戏人设 原画 游戏宣传图 游戏界面 像素 UI 动画 光效 魔法阵 场景 背景 纸娃娃 花纹边框 情景CG 图片处理 美术指导 男性向女性向双性向蔷薇向百合向宅向腐向正常向YAOI向全年龄向 承接漫画 插画 H漫 不H漫 漫画助理服务-_,-+
回复 支持 反对

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2005-10-4 01:52:27 | 显示全部楼层
教程帖!
积德的东西啊,来顶了。

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

3

主题

10

帖子

35

积分

②入门

积分
35
发表于 2005-10-4 09:40:22 | 显示全部楼层
交作业了…………
红色部分为错误的地方……
*define
clickstr “.”
game*START
HELO WORLD!@
re
set


game*START
定义标签貌似不应该使用全形字符……并且应该换行……

HELO WORLD!@
@不应该是全形字符俄……以及,标点符号应该使用全形字符,以免发生错误……

re
set

诶诶……reset是一条命令阿……别把他分开……

不知道有没有做错……
PS:D大大……[HELLO]打错了……
回复 支持 反对

使用道具 举报

0

主题

2

帖子

1214

积分

⑥精研

积分
1214
发表于 2005-10-4 09:56:57 | 显示全部楼层
我想提问?:

请问分号注释的含义?我不明白……能举个例子吗?[s:8] 谢谢斑竹了~
回复 支持 反对

使用道具 举报

6

主题

67

帖子

802

积分

⑤进阶

积分
802
发表于 2005-10-4 12:19:31 | 显示全部楼层
下面是引用如月于2005-10-04 09:40发表的:
交作业了…………
红色部分为错误的地方……
*define
clickstr “.”
game*START
.......

clickstr指令也有错喔...
回复 支持 反对

使用道具 举报

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

 楼主| 发表于 2005-10-4 17:11:09 | 显示全部楼层
编辑完...
谢谢支持...(真有人乖乖写作业啊...= =|||)
题外...
其实NS的对话也只支持全角英文/数字,很郁闷的...= =|||
其实HELLO WORLD就不能使用半角(因为这里H和W是全角,ELLO和ORLD是半角,不构成全半角文字...= =所以运气好还不会出错...)...
http://www.nvlmaker.net/
回复 支持 反对

使用道具 举报

125

主题

288

帖子

1387

积分

⑥精研

积分
1387
发表于 2005-10-4 17:21:15 | 显示全部楼层
EDAV现在可以用了,不过特殊符号还是有特殊的用处O_O
回复 支持 反对

使用道具 举报

13

主题

155

帖子

1483

积分

⑥精研

美型才是王道推广者

积分
1483
发表于 2005-10-4 17:35:52 | 显示全部楼层
==受教了……

谢谢d的功略 虽然我现在对ns还是提不起半点兴趣………………唉

死命的研究某人的eadv ing
回复 支持 反对

使用道具 举报

1

主题

9

帖子

22

积分

②入门

积分
22
发表于 2005-10-5 14:38:13 | 显示全部楼层
...

小白一只按照教程学习中

不过 在某白的电脑上
教程上的
Clickstr命令无法执行...

详情见下

[s:8] [s:8]  [s:8]

这地方不能上传吗?

...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-27 06:25 , Processed in 0.038697 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表