[乐游网导读]记分板系统其实已经出了挺久了,但是我看还没有一个比较系统的应用方面的教程,很多教程都是只列出了命令以及相应的效果什么的,特别是我前几天还看到有人还在用经验值来当RPG地图里的金钱……
记分板系统其实已经出了挺久了,但是我看还没有一个比较系统的应用方面的教程,很多教程都是只列出了命令以及相应的效果什么的,特别是我前几天还看到有人还在用经验值来当RPG地图里的金钱……
所以我决定写篇教程,详细地讲下记分板这个系统和它在各方面的应用。
在阅读此教程之前,请确保你会使用命令方块的基础功能
记分板是什么
记分板是一个以/scoreboard 为首的一系列命令的组合
记分板中的项目其实就是一个变量
变量……嘛能理解吧 如果理解不了的话就把它看成一个未知数x
而这个x的值可以通过各种操作来改变
换句话说,记分板可以设定一个未知数x,改变它的值,然后再根据这个x的大小来作出相应的反应
这里举个例子
如果我想要用记分板来做个任务的话【RPG地图】
我可以设定一个未知数x,起个名字叫【任务】,这时x=0
然后在完成任务时【比如交出某一物品,触发某个机关】时,把这个x的值改成1
然后再做一个机关,当触发时判定x的值是否是1,如果是的话就发出完成任务的信息
那么就是这样,一个任务就做好了
当然这只是一个非常简单的例子
下面我就会详细地说这个例子是怎么实现的
首先我们需要创建一个变量【也就是那个未知数x
/scoreboard objectives add RenWu dummy
这里的RenWu是BL的名字
而那个dummy则是判定条件,这里的dummy是虚拟变量
也就是说,这个变量是不受任何因素影响,只会被其他命令改变
左下角可以看到,我创建了一个变量
这个命令可以改变特定变量的值
而这里我是将RenWu变量的值改成了1
相对的,如果我把set改成:
add=》加一
remove=>减一
而后面的1则是代表相应的值
而另外一个命令则可以检测某个变量是否达到了某个值
比如如果我需要做出像是例子中的效果
【当变量=1时,输出信号】
就可以这样做:
/testfor @p[score_RenWu_min=1]
使用这个命令可以在命令方块被通入信号时,判断变量[RenWu]的值是否等于1
如果是的话,则向旁边的比较器输出信号
从而点亮红石灯
而对于一开始的那个做任务的例子,现在也可以很轻松地做出来了
这是接受任务的地方
触发机关时,创建【RenWu】这个变量,同时说一声balabala=L=【没错我没装中文补丁……
而当我们的英雄费尽千辛万苦来到了任务的终点时,他丢下了火把,触发了机关
此时将那个变量的值改为1
而这个就是接收器了
用高频的脉冲不断地判断变量的值
当它【终于】等于1时,向旁边的比较器输出信号
从而激发接下来的机关
比如123456啊什么的对吧【恩
有的小伙伴就会说啦【你丫根本没人在看吧喂
“LZSB,我直接在完成任务那里做完成任务的机关不就好了,完爆LZ”
=L=……怎么说呢
如果任务的完成条件不是1,而是3,4,5,6之类的呢?
也就是说,如果这个任务有多个完成的条件呢?
再或者,如果这个任务有很多的完成条件,但是完成任务时根本就不需要全部做完呢?
又或者,如果这个任务的每个目标加的分不一样,而完成任务只是要求达到特定的分数呢?
这样的情况下,用传统的红石电路是难以达到的【恩
而且别忘了,记分板不仅可以用来做任务
比如……等级系统?
没错=L=
就是传统RPG中的等级系统
杀怪升级啊,升一级属性会增强啊什么的
这里呢,就要用到另一种任务的判定条件【杀敌】了
这是wiki的解释:
"击杀数量 (totalKillCount)": 当玩家杀死其他生物时分数会自动增加。
而我们就可以尝试用这个系统做一个打怪/做任务升级的系统
/scoreboard objectives add Level totalKillCount
这个命令可以创建一个名为Level的变量
细心的小伙伴们可能会注意到
现在是晚上啦!!
————不闹了
这里的dummy改成了totalKillCount
而这个意味着
这个变量会随着你击杀其他生物而上升
/scoreboard objectives setdisplay sidebar Level
这个变量可以在你的视窗右边持续地显示这个变量的值
也就是说
你可以持续地在右边看到你的经验
没错我刚刚杀了一只鸡=L=
然后可以看到,我现在的经验值是1
=L=又杀了一只
现在是2了
testfor @p[score_Level_min=15]
喜闻乐见的升级判定
而这里的命令则是代表,当你的经验值在15以上时,触发升级的电路
而这四个则分别代表不同的等级
他们要求的经验值也不同,左下角可以看到
——注意这里的经验值指的是Level的值,而不是你正下方的那个经验条……
通到一个按钮上面
这里不用高频电路的原因呢……
艾玛太卡了=L=
在我跑出去杀了一堆怪以后呢
回来这里,右击按钮
leveled up!
没错我血条增加了噗咩哈哈哈【深井冰
哈啊啊~再来做个金钱系统吧
没错就是金钱
=L=用经验条当货币的你们弱爆了
交易东西啊什么的我就不说了……用售货机,然后在输出端设定给作为钱的变量增加特定的数值就好
这里来讲讲怎么把打怪得到的经验换成钱
也就是说怎样把一个变量的值移到另一个变量上面
差不多就是这样子的结构了
首先,创建Money和level这两个变量【Level就是前面提到的那个等级系统的变量
最左边的命令方块是
/testfor @p[score_Level_min=10]
判定玩家的经验值是否大于10
如果是的话则激发右边的两个命令方块
分别是:
/scoreboard players add @p Money 3000
/scoreboard players remove @p Level 10
这里的意义是,
减掉玩家的十点经验,
然后给玩家3000块钱
恩就是这样
热门评论
最新评论
支持( 0 ) 盖楼(回复)
支持( 0 ) 盖楼(回复)
支持( 1 ) 盖楼(回复)
支持( 4 ) 盖楼(回复)
支持( 1 ) 盖楼(回复)