幻想森林

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

[NS] NScripter全攻略:LEVEL 4 向左走,向右走 选择与跳转、变量

 关闭 [复制链接]

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

发表于 2006-1-8 01:05:12 | 显示全部楼层 |阅读模式
原本已经想开始说lsp图片显示了,忽然发现还有一堆基础中的基础没写。
于是加进来……=v=

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

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

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

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

LEVEL 4 向左走,向右走 选择与跳转、变量入门

相关指令
select
goto
mov
add
sub

相关符号
*(标签)
%(变量)

--------------------------------------------------------------------------
游戏之所以不同于其他任何一种娱乐形式,就在于,游戏具有“互动性”。
也就是说,随着玩家的动作,游戏也会做出相应的反映。
在多线型的电子小说中,这就表现为最简单的形式——选择。
屏幕上出现几个选项,而玩家从中选择一个,从而走到不同的路线上。

NScripter除了本身的*define和*start区以外,允许玩家在*start区里自定义以 * 号开头的标签。标签的作用,就是把整个游戏脚本分成多个部分,每两个标签之间,可以视为一个“事件”。比如说,以下这样的形式。

*define
game

*start

*event1

*event2

*event3

end


NS默认的执行方式,就是从*start开始,一路执行到end。
所以一定会经历事件1,2,3。
如果想要作一个三个选项的选择支,然后根据选择的不同而分别走向事件1,事件2,和事件3,那么,就可以写成这样。

*define
game

*start
select "我选一", *event1,"我选二", *event2,"我选三" ,*event3

*event1
你选择了一。\
end

*event2
你选择了二。\
end

*event3
你选择了三。\
end


以上,就是一个简单的选项。
和之前的例子还有一点不同,那就是每个事件的结尾,都加上了end。
不妨试看看,假如删除前两个end会出现怎样的情况。

没错,删除end之后,再选择“我选一”,执行*event1的内容之后,还是会继续接下来执行*event2和*event3。

当然,一般来说,根据选择分歧的事件,往往最后还是会合到一条路来。所以简单的加入end不太实际。

*define
game

*start

select "我选一", *event1,"我选二", *event2,"我选三" ,*event3

*event1 ;事件1
你选择了一。\
goto *goodending

*event2 ;事件2
你选择了二。\
goto *goodending

*event3 ;事件3
你选择了三。\
goto *goodending ;因为是紧接着的,这行其实可写可不写,看出来了吗?

*goodending
这里是结局了。\
end


这个例子里,无论选择了哪个项目,在执行完对应的事件之后,都会汇合到最后一个事件里。
Goto 所起的就是这个在事件之间跳转的作用。

到现在为止,已经可以做出一个互动的电子小说了。

现在,只要稍微动动脑,NS的官方范例游戏《泡沫》,都可以用现在所知道的技术实现了。
《泡沫》的标题就是用“全透明对话框”+“选择”构成的。虽然简陋,但是也相当实用哦。

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

忙完电子小说,当然要开始考虑其他更复杂的AVG了。
恋爱游戏里最重要的是什么?
PPMM?——错!
答案是——好感度!
那么,好感度的本质是什么呢?
根据你的“选择”,对方对你的好感度会有“增加”、“减少”或者“不变”三种可能。
说白了。好感度,就是一个数值而已。=v=
这种可以加加减减的数值,在游戏里就叫做“变量”或者“变数”——因为是可以变化的嘛。
变量本身需要有一个名字,例如“某人的好感度”,“某人的BT度”“HP”,“昨天的台风等级”等,而变量的内容,就是一个数字。
在NScripter里,变量的名字是以 % (百分号)开头的。可以从 %0 到 %4010以上 (以2.45版测试,到%5000虽然不会出错,但是变量的操作不会被记录下来。4000应该说是相当够用了)。
当然这个%0 ,%4010之类的并不是变量的内容,而是变量的名字,或者说编号哦。
变量本身的内容,则是需要通过赋值(代入)和操作(加减乘除等)改变的。
比如
mov %10,200
代表把200这个数赋值给%10这个变量。
那么,现在,%10=200
add %253,300
代表把变量%253的现有数值再加上300
sub %4010,25
代表把变量%4010现有的数值减去25。

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

假设我们现在规定变量 %10 ,作为某个恋爱游戏女主角的“好感度”。
然后,写出这样一段代码。

*define
game

*start
mov  %10,0 ;把对方的好感度预设为0

一起去公园怎么样?\

select "好啊",*event1,"不行",*event2,"那个,稍微有点事……",*event3

*event1 ;事件1
嗯,那么走吧。\
add %10,5 ;对方好感度上升了
goto *goodending

*event2 ;事件2
真是的,那么凶干吗……\
sub %10,5 ;对方好感度降低了
goto *goodending

*event3 ;事件3
这样啊,太遗憾了。\

*goodending
这里是结局了。对方对你的好感度现在是%10哦。\

end


执行一下这段,就会发现选择1,对方的好感度是5,选择2的话,则是-5,选择3,是0。
变量的名字,也就是%10,直接出现在对话里,显示出来的却是变量的具体数值。
不知不觉,居然写满4页……那,收工吧。=v=



再来看下这张图。虽然对话一样,但是和上面的样例有一些不同。
加入了对话框的使用,并且用换行符号 @ 代替了翻页符号 \ ,让剧情看起来更连贯。
当然要记得,对话+选择总的行数不能超过对话框设定的范围,否则会出错的。

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

本日小贴士:变量的管理。
游戏做得久了,哪几个变量用过哪几个变量没用过,基本上是记不清楚了。
非常可能因为这样出现各种低级错误。《=某D就犯过把HP当作临时变量操作来操作去的白痴错误。
因此,建议大家开始制作游戏前先准备好笔记本,将大致的变量区间分配下。
比如,%200到%300用做人物好感度,而%400到%600用做人物的养成数值等等。
同时在制作过程中,将已经使用过的变量标注出来。当然也推荐使用excel类的工具进行列表。
另外,为了避免一操作变量的时候一个不小心把mov %100,20写成mov %1000,20,NScripter也提供了变量自行命名的功能。
在*define区块里加入:
numalias attack,1
就代表把变量%1命名为attack
这样以后操作变量%1的时候,除了可以用mov %1,20的写法,也可以用mov %attack,20的写法。
--------------------------------------------------------------------------

作业:技术含量和《泡沫》差不多,带分歧与好感显示的电子小说……=v=


本帖子中包含更多资源

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

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

使用道具 举报

6

主题

129

帖子

616

积分

⑤进阶

↑苦力

积分
616
发表于 2006-1-8 01:24:53 | 显示全部楼层
坐一下沙发……顺便祝自己生日快乐

LZ辛苦了:)
呜呼六歌兮歌思迟 溪壑为我回春姿
回复 支持 反对

使用道具 举报

36

主题

572

帖子

4132

积分

⑥精研

正太班班长

积分
4132
发表于 2006-1-8 01:30:09 | 显示全部楼层
看小D的教程,渐渐深入的学,还是没有想象的那么难
辛苦了 =v=
回复 支持 反对

使用道具 举报

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

 楼主| 发表于 2006-1-8 01:32:47 | 显示全部楼层
下面是引用门清于2006-01-08 01:24发表的:
坐一下沙发……顺便祝自己生日快乐

LZ辛苦了:)

啊咧,生日快乐。卡卡……
http://www.nvlmaker.net/
回复 支持 反对

使用道具 举报

26

主题

409

帖子

9549万

积分

⑧专业

无限怨念积攒中……

积分
95492781
发表于 2006-1-8 17:08:31 | 显示全部楼层
门清生日快乐哦~
这节课我要好好学学~~~谢谢~~SENSAN
怨念……Orz毒害中……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 07:20 , Processed in 0.026461 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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