Minecraft(我的世界)中文论坛

 找回密码
 注册(register)
查看: 8540|回复: 49

[命令方块] 【CBL|秋一】(1.12)函数命令系统:当命令脱离命令方块

[复制链接]
发表于 2017-5-8 03:22:31 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

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

x
本帖最后由 acordome 于 2017-6-8 00:40 编辑

 这个帖子目前对应版本为1.12 正式版,后续版本随时可能更改。请知悉。 


  §1 - 写在前面的话

  1.9的更新为我们带来了三色命令方块,让命令方块脱离了红石成为独立的体系,我们因此可以更好实现一些想法;时隔3个版本,MOJANG再次为我们带来惊人的变革。
  1.12中,函数与进度系统的出现,让命令脱离命令方块——这句曾经说过的玩笑般的预言,正式成为可能。



  在这之前,你有想过完全不使用命令方块,去完成一张地图吗?
  这当然是可以做到的,而且我们已经做到了。




  废话就不多讲了,在这里我们来聊聊函数系统、进度系统以及命令方块系统的联系和对比,看看他们各自的一些优缺点吧!

  (点击目录中的对应章节可以查看相应内容

评分

参与人数 25人气 +34 金粒 +428 贡献 +5 收起 理由
FHC红石 + 3 新·dalao
siebo + 1 + 10 一段时间没来变化就这么大啊
lmqlmq9999 + 3 神乎其技,不服不行!
至高丨神坠 + 10 MCBBS有你更精彩~
nalai233 + 1 + 10 神乎其技,不服不行!
llopllop + 2 + 20 神乎其技,不服不行!
pineapple_ + 1 + 20 没人气了=-=
唔咩 + 1 + 10 MCBBS有你更精彩~
回调然后他 + 2 + 20 哎呀呀,来晚了,来晚了
lrf8643 + 2 + 35 function大法好,command可以放一边了。.
林扬骐 + 35 function大法好,cb大法再见
Deing + 2 + 35 大触我们做朋友吧!
hqyuiu133 + 5 很棒的作品!
啦啦啦_ + 1 + 1 看不懂XD
不笑君 + 20 MCBBS有你更精彩~
2330848276 + 1 这个帖子在说什么,我看不懂/汗.
brooke1999 + 2 + 35 划时代更新
乙烯_中国 + 4 + 44 + 2 优秀
贰逼 + 3 + 20 + 1 跟不上时代了
Zero_Exact + 1 很棒的作品!

查看全部评分

回复

使用道具 举报

发表于 2017-5-8 03:46:53 | 显示全部楼层
凌晨3点,你起来就为了发这破玩意?= =

点我跳转,把这个附在帖子里,就足以让所有CB爱好者全体转移目标了

开头那两个新trigger很棒棒哦

点评

too naive 链接都放错了……  详情 回复 发表于 2017-5-8 20:05
那个链接404了  详情 回复 发表于 2017-5-8 19:56
凌晨3点。。刚好吃夜宵回来随手发  详情 回复 发表于 2017-5-8 05:12

评分

参与人数 1人气 -2 金粒 -10 收起 理由
乙烯_中国 -2 -10 注意言辞

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-5-8 05:12:55 | 显示全部楼层
langyo_v3 发表于 2017-5-8 03:46
凌晨3点,你起来就为了发这破玩意?= =

点我跳转,把这个附在帖子里,就足以让所有CB爱好者全体转移目标了

凌晨3点。。刚好吃夜宵回来随手发

评分

参与人数 1金粒 +5 收起 理由
langyo_v3 + 5 大佬夜宵在凌晨3点吃…

查看全部评分

回复

使用道具 举报

发表于 2017-5-8 07:06:49 | 显示全部楼层
pcc除了tick以外的功能都做到了,看来得加个tick了2333
然而纯cb也不是没好处,起码一些应该要没人的情况下也能运行的就得cb了

点评

把这帖收进你的新人手册吧 这回版本又新了一点,17w18b……  详情 回复 发表于 2017-5-8 11:01
嗯,不过不像以前需要那么多了就是,至少大部分指令都可以用adv来解决了  详情 回复 发表于 2017-5-8 10:59
回复

使用道具 举报

发表于 2017-5-8 10:05:18 | 显示全部楼层
推荐,如果进一步详尽叙述设计思路,满足“仔细阅读后就能会”的条件后可提升评级。
回复

使用道具 举报

发表于 2017-5-8 10:58:08 | 显示全部楼层
本帖最后由 ruhuasiyu 于 2017-5-8 12:10 编辑

辛苦

但是注意一点,当前快照版本中,arbitrary_player_tick有一个很大的问题,例如
  1. cpp:craft/test.json

  2. {
  3.     "display": {
  4.         "icon": {
  5.             "item": "minecraft:egg"
  6.         },
  7.         "title": "233",
  8.         "description": ""
  9.     },
  10.     "parent": "cpp:craft/root",
  11.     "criteria": {
  12.         "233": {
  13.             "trigger": "minecraft:arbitrary_player_tick"
  14.         }
  15.     },
  16.     "rewards": {
  17.                 "commands": [
  18.                         "say 1",
  19.                         "advancement revoke @a only cpp:craft/test"
  20.         ]
  21.     }
  22. }
复制代码


在玩家从末地返回主世界时,不能正确地剥夺该进度。
这似乎应该是一个bug,但是tick可以正确运行。
因为理论上来说rewards的命令应该在获得进度的时候立即执行才对。
回复

使用道具 举报

发表于 2017-5-8 10:59:23 | 显示全部楼层
pca006132 发表于 2017-5-8 07:06
pcc除了tick以外的功能都做到了,看来得加个tick了2333
然而纯cb也不是没好处,起码一些应该要没人的情况下 ...

嗯,不过不像以前需要那么多了就是,至少大部分指令都可以用adv来解决了
回复

使用道具 举报

发表于 2017-5-8 11:01:04 | 显示全部楼层
pca006132 发表于 2017-5-8 07:06
pcc除了tick以外的功能都做到了,看来得加个tick了2333
然而纯cb也不是没好处,起码一些应该要没人的情况下 ...

把这帖收进你的新人手册吧

这回版本又新了一点,17w18b……
回复

使用道具 举报

发表于 2017-5-8 13:04:43 | 显示全部楼层
居然看到了HelloWorld,看来minecraft 1.12将会是个面向JSON编程的时代……
进化系统不像command block依赖方块坐标,个体间通信全靠标签,这点爽歪歪了
回复

使用道具 举报

发表于 2017-5-8 15:36:17 | 显示全部楼层
本帖最后由 chyx 于 2017-5-8 15:56 编辑

  “试想一下,如果你的系统足够庞大,出生地可以加载的区域放不下那么多cb,怎么办?”

^_^



出生地常加载区块至少有16*16个区块 每个区块是16*16*256个方块
让我试想一下这个啊

我想我早就先死了

而且 过去的版本里每游戏刻的cb执行个数是有限的。远没有这么大

点评

我觉得你可以看看2b的索引帖,里面有说到CB方块更新数量对多人服务器的影响,就是我们俗称的63大法。出生点区域看起来空间很大,实际做东西的时候能利用的空间真的是少的可怜,你还要和其他人预先商量好什么模块放在  详情 回复 发表于 2017-5-8 17:40
回复

使用道具 举报

 楼主| 发表于 2017-5-8 17:40:33 | 显示全部楼层
chyx 发表于 2017-5-8 15:36
  “试想一下,如果你的系统足够庞大,出生地可以加载的区域放不下那么多cb,怎么办?”

^_^

我觉得你可以看看2b的索引帖,里面有说到CB方块更新数量对多人服务器的影响,就是我们俗称的63大法。出生点区域看起来空间很大,实际做东西的时候能利用的空间真的是少的可怜,你还要和其他人预先商量好什么模块放在哪里,才能尽可能利用空间。adv就没有这方面的担心,完全没有

点评

我的意思是过去版本由于mc的命令方块的每游戏刻执行个数的上限远低于出生地区块的方块数 你要说cb在这一点上的不足 更应该说这个上限而不是出生地能不能塞得下  详情 回复 发表于 2017-5-8 21:11
回复

使用道具 举报

发表于 2017-5-8 18:51:21 | 显示全部楼层
如果命令以JSON形式输入的话,那么CB只需要在事件层面(硬件层)提供I/O就可以了。这个确实显著提高系统可读性和执行效率。既往的CB阵列可读性确实……
如果说以前CB系统是做硬件编程的单片机,那这个的出现就是升级为嵌入式系统。

标准MC游戏指令引擎(字库/DirectDraw/etc.)或许可以实现?譬如Include stdio.json?

由@e变成@s,感觉是在玩家私有属性上可以简化大量的选择器设定。提高了一定的独立性,不知支不支持虚拟玩家(作变量)。顺便Mojang果然是膜酱,+@s

点评

adv系统触发必然需要在线玩家,虚假玩家都不行~ @s倒是仅仅针对命令执行者,跟是玩家还是其他实体没什么关系。至于conditional……现在的adv就没法了,所以诸如scoreboard players test PLAYER SCORE SCORE然后接con  详情 回复 发表于 2017-5-8 20:17
回复

使用道具 举报

发表于 2017-5-8 19:56:13 | 显示全部楼层
langyo_v3 发表于 2017-5-8 03:46
凌晨3点,你起来就为了发这破玩意?= =

点我跳转,把这个附在帖子里,就足以让所有CB爱好者全体转移目标了

那个链接404了

点评

commandtutorials.neocities.org/tutorials/advancement/advancement.html?_e_pi_=7%2CPAGE_ID10%2C6888464040 @ruhuasiyu  详情 回复 发表于 2017-5-8 20:12
回复

使用道具 举报

发表于 2017-5-8 20:05:43 | 显示全部楼层
langyo_v3 发表于 2017-5-8 03:46
凌晨3点,你起来就为了发这破玩意?= =

点我跳转,把这个附在帖子里,就足以让所有CB爱好者全体转移目标了

too naive
链接都放错了……
回复

使用道具 举报

发表于 2017-5-8 20:12:55 | 显示全部楼层

commandtutorials.neocities.org/tutorials/advancement/advancement.html?_e_pi_=7%2CPAGE_ID10%2C6888464040
@ruhuasiyu

点评

只能说四个字:太,敬,业,了  详情 回复 发表于 2017-11-10 19:01
https://commandtutorials.neocities.org/tutorials/advancement/advancement.html  详情 回复 发表于 2017-5-8 20:58
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2017-12-18 16:47 , Processed in 0.110293 second(s), 8 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

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