幻想森林

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

水箭龟009的RM教程(二)——变数详解

 关闭 [复制链接]

67

主题

912

帖子

16万

积分

⑧专业

水箭龟009

积分
162267
QQ
发表于 2004-8-15 10:42:53 | 显示全部楼层 |阅读模式
水箭龟009的RM教程(二)——变数详解
2004.8.15
www .com/bbs

* 注:本教程在rpgchina的论坛上发表,授权给该论坛使用。版权属于作者。其他人转载需要注明出处。


话说上回,我们学习了开关的使用。大家有没有认真复习啊?(没人回答,冷场……)今天我们来学习一下这个变数。变数在传说中可是比开关还有用DI~所以大家认真学习啊。


·什么是变数?
变数的概念就跟数学当中的字母代表数字如出一辙。例如a=5当中,a就是变量(也就是我们说的变数了)。简单的说就是将一个数字赋值给一个字母,然后通过对这个字母的操作(加减乘除等),得到一个新的数据。只不过在RM当中,变数不一定就要用字母来命名,你完全可以像给开关命名一样,给变数取名叫做“我的变数”、“主人公的等级”、“剩下的money”等等。当然你要知道某个变数是干吗的,不要连自己都不知道在这么多变数当中自己要的究竟是什么。


·变数的应用实例?
*本例当中,玩家在跟NPC对话当中,NPC会在预先设定的5句话当中随机显示不同的话,而不是一个顺着一个的按照顺序。

程序流程:
玩家跟NPC对话时,判断此时变数的值(1~5之间的某个数字),然后根据变数值的不同显示不同的语言。(例如:变数为1显示“当前变数为1”,变数为2显示“当前变数为2”,以此类推。)然后在事件最后通过给这个变数重新代入新的随机的数值,改变变数的数值。再次跟这个NPC对话就会再次判断变数值,然后重复上述过程,循环下去。


方法:
在地图上新建NPC一个,图像随便。然后开始编写事件内容。
首先就是对当前变数数值的判断。在事件指令第三页找到“条件分支”项目。点击后出现“条件分支”窗口。在这里将判断的条件点选成“变数”,表示通过变数来进行条件分支。之后就开始判断了。点单选钮“变数”右边的省略号,出现了跟开关管理器很相像的的变数管理器。在左边选择一个自己喜欢的位置吧,然后我给它命名为“语言”(当然你也可以自己命名)。OK,确定,返回条件分支窗口。现在已经设定的含义就是:判断变数“语言”。那么怎么判断呢?继续设定。选择“定数”。然后在左边将值修改为“1”。隔一行设置为“相同”。这样一个判断条件就完成了,意义是:判断变数“语言”,当语言的值为“1”时,就……
就什么呢?这就要开始编写具体的内容了。“确定”返回事件内容编辑。看见吗?已经添加了判断语句(FORK……ELSE CASE……END CASE)其中FORK和ELSE CASE之间就是达到条件(上面的变数“语言”的值为1)的时候执行内容的编辑区域。在这里,我们设定文字的显示,内容就是“当前变数为1”。到这里,一个完整的判断完成了,意义是:判断变数“语言”,当语言的值为“1”时,就显示文字“当前变数为1”。ELSE CASE以及END CASE之间是没有达到判断条件的时候的执行内容。这里什么都不执行,留白。
搞定!之后就要给变数重新赋值,好让下一次跟这个NPC对话的时候随机显示其他文字。在事件内容END CASE最后增加一行代码——双击打开“事件指令”窗口。选择第一页的“变数的操作”(变数用处很大吧,否则也不会放在第一页)。变数操作窗口分成上中下三个区域。操作变数就是你要对他进行加减乘除代入等操作的变数,这里当然选择刚才的“语言”。操作内容就是你要怎么处置这个变数?这里选择“代入”。代入什么呢?就在下面的运算数当中选择乱数,范围设置为1~5,这样就可以随机让“语言”的值为1到5当中的某个了。
现在测试一下吧!当你跟这个NPC对话的时候,有一定几率显示对话“当前变数为1”。但是大多数情况下他不理你。这就是因为此时的变数“语言”的值不是我们的判断条件“1”,所以不执行任何事件,只不过暗地里重新让“语言”获得了一个新的随机数值。
怎么办呢?当然就要继续编写程序,根据变数“语言”为2、3、4、5的时候进行不同的对话了。
仿照上面例子,在上述的判断过程(FORK到END CASE)之后以及最后的变数操作之前进行其他4个判断。条件依次是“语言”的值与2、3、4、5中的一个相同。执行内容就是显示对话:“当前变数为…”。(注意每个判断过程之间不要错误设定成一个嵌在另外一个里面,而是一个结束了进行另外一个。
现在你的代码流程应该是这样:

判断“变数为1”,显示“当前变数为1”,判断结束
判断“变数为2”,显示“当前变数为2”,判断结束
……
判断“变数为5”,显示“当前变数为5”,判断结束
给变数“语言”随机代入1~5的数值。

现在,再来测试一下吧!怎么样!每次都会说不同的话了吧!

这个例子让大家了解了变数的基本操作方法以及变数的黄金搭档“条件分支”的联合应用。大家可以举一反三,自己尝试变数的其他功能。



·变数的应用举例(思路)
1。“亲密值”系统。在游戏当中当玩家执行到特殊情节,就可以让变数“亲密值”加减。然后根据最后的亲密值结果,用条件分支进行不同的结局。(事件编辑器的事件出现条件当中还有一个“变数多少以上”,同样能实现这个效果,不过仅仅能相当于一个判断过程,不能实现多个,不太实用)
2。合成系统。每个物品设置一个自己的ID,根据融合原料的ID,计算出融合出的物品的ID,然后增加相应ID的物品,减少融合原料物品。
3。开关。变数就等于是无数个开关了。开关只有ON、OFF两面,变数却可以有无数个值。判断变数不同的值就相当于判断当前开关是ON还是OFF还是其他状态……。
4。赌博游戏。这就是随机变数的应用。可以是赌大小、老虎机这一类游戏,反正核心就是生成不同的随机数然后玩家来操作,如果操作结果相同就胜利,反之失败。
5。其他……实在是有很多用处,大家自己慢慢发掘吧,争取开发自己的变数应用系统。


·在对话当中显示变数的值
语句是:    \v[?]

变数值显示用,如果想要让对话内容出现设定的变数现在值就用这个,如果那变数没动过就只有0出现。?替换变数号码。




第二讲就这么着吧。上次的讲座害我被屏蔽语言了N分钟(因为得罪了某BOSS级人物),所以这次不敢乱来。不怕死的自己写个恶搞看看会死成啥样吧。

下次的主题思考中……大家说说想了解点什么吧~

http://b.fanfou.com/u/f9999/s.png  [url=http://blog.sina.com.cn/f9999]http://blog.sina.com.cn/f9999[/url]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 05:51 , Processed in 0.023560 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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