当前位置 首页 魔王现役 NScripter全攻略:LeVeL 1

《魔王现役》NScripter全攻略:LeVeL 1

作者:马鹿·D·多古拉 字数:2295 书籍:魔王现役

  、、、、、、、

  前:

  因为起点系统歧视英文,会自动把英文改变大小写和全角半角,所以在这里特别提醒:

  在教程正文(除作业)出现的英文字母,全部为“半角、小写”格式。

  ============正文分割线=============

  邪恶之诅咒:

  盗帖者全家死光光

  无端转载者出门被狗咬

  假如获得转载授权,转载同时请贴出本人签字画押授权书。

  本教程已在国家R界专利局申请专利,禁止任何形式的侵犯版权行为。

  作者联系方式:

  fs_countd@

  LeVeL_1_Hello_orld!

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

  相关指令:

  *define

  game

  *start

  end

  reset

  \

  @

  br

  clickstr

  _

  ;

  Helloorld。也就是所谓的“自己动手制作的第一个程序”。

  似乎,在看过的基本所有程序类“入门到精通”的书里,都有这东西的存在。虽然这个程序既没有乐趣也没多少成就感,而且还没创意,但是,……

  首先,xt(xt或者别的什么也无所谓),在里面输入以下内容,然后保存。

  **********这里是需要复制的内容***********

  ;—————————-我是分隔线—————————-

  *define

  game

  *start

  你好,世界。@

  这是我的第一个程序。\

  end

  ;—————————-我是分隔线—————————-

  **********需要复制内容结束***********

  (效果见附图)

  再补充说明一下:

  一般来说,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键)之后,才继续执行下一条指令”。如果不使用这两个标志来表示“等待”的话,这两句话会在屏幕上一闪而过,之后就退出了。

  这两个标志的特殊还在于可以在同一行里多次出现。

  类似这样的写法“你好,@世界。@这是我的第一个程序。\”也是可以的。

  ————————————————————————-

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

  那么,试看看把程序写成这样……

  **********这里是需复制内容**********

  ;—————————-我是分隔线—————————-

  *define

  game

  *start

  你好,世界。\

  这是我的第一个程序。\

  end

  ;—————————-我是分隔线—————————-

  **********需复制内容结束**********

  这一次,在显示“这是我的第一个程序。”的同时,“你好,世界。”消失了。

  \标志比@标志多了一条功能,就是在显示它所在的这一行文章的同时,将之前显示的文章消除。在电子里,@是接着看下一行,而\就是翻过一页,把之前的一页清掉了。

  因为屏幕或者对话框的大小是有限的,如果已经显示的文章字数超过了屏幕可以容纳的范围,NS就会报错,因此在制作电子的时候,合理的使用这两个标志是很重要的基础哟。

  ————————————————————————-

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

  因为这样,NS也提供了另外一条指令。“br”其实是HTmL语言里表示空行的命令,在NS里,也是同样的意思。

  **********这里是需要复制内容**********

  ;—————————-我是分隔线—————————-

  *define

  game

  *start

  你好,世界。@

  br

  这是我的第一个程序。\

  end

  ;—————————-我是分隔线—————————-

  **********需复制内容结束**********

  不用说,自己看看效果吧。

  ————————————————————————-

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

  既然每句话结尾多少都有个感叹号句号问号之类的,在制作比较大型的游戏时,还要再为每行文字加一个标志确实很烦。因此,NS也提供了比较简单的方法:clickstr命令。

  clickstr就是一个F类指令,也就是说,是只能用在NS的定义区块里的。

  **********这里是需复制内容**********

  ;—————————-我是分隔线—————————-

  *define

  clickstr‘。‘,1

  game

  *start

  你好,世界。

  这是我的第一个程序。

  end

  ;—————————-我是分隔线—————————-

  **********需复制内容结束**********

  没有使用@和\的情况下,效果和之前的完全一样。

  并且,使用clickstr命令之后,NS会根据参数,在文字显示超过屏幕可容纳字数后自动翻页。

  clickstr的格式为:

  clickstr‘。!?(可以写一个,也可以写N个,必须要是全角)‘,2

  clickstr‘等待标志‘,翻页参数

  翻页参数为0时候,不会自动翻页,超过字数会出错。

  为1时,显示到屏幕(或对话框)满为止,自动翻页。

  为2时,到离可容纳字数还有1行时翻页。

  为3时,到离可容纳字数还有2行时翻页。

  以下类推。

  而假如某一行里有句号或其他已经定义的等待符号,比如说问号,但是不想让这部分等待的时候,还有一个“等待失效”的标志“_”。

  把“_”标志放在等待符号的前面,执行到这里的时候就不会等待,而会直接继续显示下一句了。

  例如:

  国家政策,小白要持证上岗_。

  补充,假如真的对以上都懒得使用,请在define区内加入linepage命令。

  这条命令会把每一行视做一段对话。

  缺点是,在使用这个命令之后/命令(换行失效命令)无法使用。

  ——————————————————————————-

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

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

  ———————————————————————————

  本日小贴士:

  注释符号“;(半角分号)”的使用。

  NScripter里,某一行里的“;”符号后面的部分会被当作注释而不执行,因此无论是中文英文全角半角都可以用在注释里。

  虽然似乎很多人(包括蓝蛇……==)都没有使用注释的习惯,但是,其实,根据某D的经验,注释还是非常有用的。除了使用文字和分隔线,免得时间长了自己看不懂以外,加在某个命令前,使某一条命令暂时不起作用以测试它的功能,或者用来加入大量个人化的东西以恶搞,打上版权标记,或者甚至仅仅为了让文本看起来不那么单调,请大家把注释华丽的使用到底吧……[天音:你以为全世界的人都和你一样无聊吗……]

  注释使用范例:

  **********这里是需关注内容**********

  ;—————————我是分隔线—————<<==这行就全是注释了

  *define;这里开始是定义区<<==可以这么用....

  game;定义结束...

  ;^^前面多打几个空格(半角空格)也可以,半角空格和空行一样是会被自动忽略的

  ;—————————我是分隔线—————<<==这行也是注释

  ***********需关注内容结束***********

  ———————————————————————————

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

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

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

  3DeBUG练习。

  找出以下程序的错误。

  ***********debug内容**********

  *define

  clickstr“.”

  game*START

  HeLLOORLD!@

  re

  set

  **********debug结束**********

  点击察看图片链接:

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体风格
适中 偏大 超大
保存设置
恢复默认
听书
听书
发声
男声 女生 逍遥 软萌 粤语 陕西 台语 辽宁
语速
适中 超快
音量
适中
开始播放
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
收藏
反馈
章节报错
当前章节
报错内容
提交
加入收藏 < 上一章 回到书页 下一章 > 错误反馈

设为首页加入收藏保存桌面网址发布会员中心留言本

Copyright © 2024-2025 All Rights Reserved