第一百一十七章 控制成就系统的指令
上一章我们提到了进度系统,也提到了修改进度的指令:/advancement。
那么在JAVA1.12版本之前,也就是成就还未移除的时候,那个时候的玩家它们该怎样通过指令获得或移除成就呢?
在JAVA beta1.5版本,成就系统正式加入到了Minecraft,尽管在当时成就系统的功能并不完善。
但直到1.7.2版本更新之前,成就系统仍然跟指令没有任何关系。也就是说,在当时,成就系统是一个独立的系统。
1.7.2版本更新,这个独立的系统被打破了。
1.7.2 13w36a更新,更新了成就系统,且将成就系统和指令系统第一次进行连接。其中,除了成就和计分板连上了关系,Mojang还对成就添加了一个新的指令:/achievement。
这是什么指令?和/advancement。差不多,是可以控制指定玩家成就的指令。
那么具体就来看看这条指令到底该怎么用吧。
/achievement
作用:对指定玩家进行赋予或移除成就的操作。
使用权限下限:管理员(OP)
是否可使用命令方块执行:是
格式:
/achievement <give|take><成就id|*>[目标选择器:玩家]
首先和/advancement一样,是选择give(赋予)还是take(移除)的操作。
然后就不一样了,因为这里直接就上成就id了。
等等,那个“*”是干啥用的?
全选啊!所以/achievement give *@s就可以让你一秒钟获得全部成就了。
只不过不填目标选择器也行,因为目标选择器是非必填项,不填默认是执行者自己,填了就是指定玩家了。
但是,如果填成就id,是不是和/advancement一样,只获得这个成就呢?
其实不然,比如直接使用/achievement达成“获得升级”成就,那么你不会只获得这个成就,还会获得上游的全部成就,也就是:
“打开物品栏——>获得木头——>制作工作台——>采矿时间到——>获得升级”这一连串的成就,即/advancement的until操作效果。而如果按照看/advancement的眼光来看/achievement,那么/achievement只有until和everything的操作。
那么问题来了,成就id到底有哪些呢?
在Minecraft Wiki里有对成就id的格式有简单说明:
achievement.成就名(其中“成就名”为有效的成就标识符)
但如果我们找到“成就”这个词条,只会出现基岩版的成就。在这里有包括成就图标、成就名(中文)、游戏内描述、实际需求(若异)、Xbox点数以及奖杯(PS),可偏偏就是没有成就标识符。
而在成就/JAVA版词条就更寒酸了,就几张图片和历史,完全就把JAVA版的成就当成空气一样看待。
而唯二的成就id就只有在/achievement词条里有:achievement.overkill(赶尽杀绝)和achievement.obr /enInventory(打开物品栏)。
其他的成就id就像Notch的离开Mojang一样也离开了Minecraft,在Minecraft Wiki连个影子都看不到。
真的是这样吗?
别忘了,上面这些词条都是进过中文翻译的,而Mojang经常使用英文来作为一个方块或物品的id,那么我们或许可以不要转换语言?
但令人震惊的是,Minecraft Wiki的语言竟然转换不回去!那么该怎么办呢?
看来,Minecraft Wiki也并不怎么全面啊,所以我们要把目光移向别的地方。
2016年8月29日,在Minecraft JAVA版1.11.2都还未更新时,百度用户steven8967将Minecraft 中文Wiki的“成就”词条全部复制到了百度百科下“成就”词条中的一个义项。令人震惊的是,这个已经创建了将近4年的词条,浏览量竟然不过万!所以,直到现在,这个词条义项的内容并没有发生过多大改变,它完好无损地保留了2016年8月29日的Minecraft 中文Wiki词条的内容!在其中我们发现,这个列表不止有现在Minecraft 中文Wiki成就词条的大部分内容,还包括了PS的奖杯类型和JAVA版的成就id!
通过这个词条,我们成功获得了Minecraft JAVA的所有成就id(百度百科牛逼!):
打开物品栏——obr /enInventory
获得木头——mineWood
这是?工作台!——buildWorkBench
采矿时间到!——buildPickaxe
“热”门话题——buildFurnace
来硬的——acquireIron
耕种时间到!——buildHoe
烤面包——makeBread
蛋糕是个谎言——bakeCake
获得升级——buildBetterPickaxe
美味的鱼儿——cookFish
在铁路上——onARail
出击时间到!——buildSword
怪物猎人——killEnemy
斗牛士——killCow
当猪飞的时候!——flyPig
狙击手的对决——snibr /eSkeleton
钻石!——diamonds
我们需要再深入些(前往下界)——br /ortal
见鬼去吧!——ghast
与火共舞——blazeRod
本地的酿造厂——br /otion
结束了?——theEnd
结束了。——theEnd2
附魔师——enchantments
赶尽杀绝——overkill
图书管理员——bookcase
探索的时光——exbr /loreAllBiomes
开始了?——sbr /awnWither
开始了。——killWither
信标工程师——fullBeacon
种群恢复——breedCow
给你钻石!——diamondsToYou
君临天下——overbr /owered
所有工具——?
兽群领袖——?
获得所有奖杯——?
猪排——?
The Haggler——?
盆栽种植——?
铁肚皮——?
在寒冷中——?
一满箱的圆石——?
可再生能源——?
爱听的话——?
保镖——?
钢铁侠——?
僵尸医生——?
驯狮者——?
弓箭手——?
扎染服装——?
蹦床——?
伪装——?
地图之屋——?
货运站——?
闻到的一切!——?
以其人之道治其人之身——?
好吧,并不是全部,但也已经不少了。
不得不说,老版本的成就,在我看来,比新版本的进度还要好。
/achievement的历史
Java版
1.7.2——13w36a——加入了/achievement命令。
1.9——16w03a——/achievement命令不再影响统计数据。
1.12——17w13a——移除了/achievement命令。
JAVA版成就系统的历史
JAVA(Beta)
1.4——测试版的成就系统可在源代码中找到,亦出现于Notch发布的测试视频中。其中有打开物品栏、采集木头和制作工作台。
1.5——加入了成就系统。实际上开始是想在Beta 1.4加入成就系统,不过那时功能还不完善。首个被Notch确认的成就是当猪飞的时候,尽管比起实际需求这名字有点夸张了。
1.8——2011年7月13日 Notch推特了关于增加狙击手的对决成就。
Java版
1.0.0——Beta 1.9 Prerelease 6——“结束了。”成就的图标被改变。
1.5——13w04a——下载升级Minecraft不会再重置成就了。
1.7.2——13w36a——更新了成就系统,现在在各个世界/服务器中单独计算成就。同时增加了更多成就:探索的时光、开始了?、开始了。、信标工程师以及种群恢复,但是探索的时光成就无法获取。并且成就现在可以作为计分板系统的对象了。
1.7.2——13w37a——“采矿时间到!”、“耕种时间到!”和“出击时间到”现在用木板之外的材料合成也可以得到了。同样“获得升级”现在也可以通过用任何木头以外的材料合成镐获得了,之前需要用圆石合成。如果你第一次合成的镐就不是木质的,那你将同时得到“采矿时间到!”和“获得升级”两个成就。
1.7.2——13w38a——加入了成就“给你钻石!”。同时“钻石!”的图标从被改变。之前的图标被“给你钻石!”成就使用了。
1.7.2——13w39b——“给你钻石!”可以通过扔给一个僵尸获得了,这样单人模式也可以获得这个成就了。
1.8——14w06a——加入了成就“君临天下”。
1.8——14w17a——“探索的时光”现在不用命令也可以获得了。之前,指定的38个生物群系必须在到访其他生物群系前到访过,而为了得到前提成就“结束了?”必须到达末地。现在“不能到达过其他生物群系”的限定被移除了。同时获得“探索的时光”成就不再需要到过冻洋和悬崖这两个从13w36a后不再生成的生物群系。
1.8——14w32a——更正了“斩尽杀绝”成就的描述,你必须制造一击9颗心的伤害——之前描述是8颗心。
1.9——15w44a——移除了附魔金苹果的合成配方,使“君临天下”成就无法获得。
1.9——15w45a——“君临天下”成就的简介和要求从“制造一个附魔金苹果”变成“吃掉一个附魔金苹果”。
1.12——17w13a——移除了成就,取而代之的是进度。