本帖最后由 sylqiuyifeng 于 2015-4-28 18:27 编辑 
废话不多说
说好的原理讲解来了
没看过核心的朋友请移步:http://www.mcbbs.net/thread-438695-1-1.html(PS 这次教程的图被压缩得惨不忍睹,我在网盘留了一份高清的,自己移步对着看吧……)
(http://pan.baidu.com/s/1o6xFduq)
知道你懒,效果视频在这里:
https://www.bilibili.com/html/player.html?aid=2260388&wmode=transparent&as_wide=1&page=1手机链接:http://www.bilibili.com/video/av2260388/
系统整体与初始化系统:
首先,整个核心的摆放方向如下,石块部分代表着fill高频的充能部分
要记住,fill的激活顺序是从同一个X坐标的CB开始(然而颜色弄错了不要在意)判断,小的优先(这个视角就是从左到右),然后是Y(下到上),最后是Z(前到后)
这样整个电路就很有顺序了
就是说目前的顺序为,最左下的,上面一个,到后面一行的下面那个,到上面……直到这一列都执行完了,就到下一列

然后这个是初始化部分(记住,以后这个视角的图的执行顺序全部是从下到上,从右到左,然后再到下一个切片)
复制代码这个是初始化隔壁的fill clock用的
复制代码这个呢,是用于激活整个初始化系统的,与其对应的是左上角的:
复制代码会在执行完毕后删除整个系统
复制代码这里是用于创建系统使用的变量了,作用分别是:
cook:监控食物烧烤的时间
done:监控食物的状态
sel:监控食物的种类
fire:监控玩家是否在火附近
slot:监控玩家选中的快捷栏
其后会详细讲解
复制代码而这个负责将命令方块输出结果取消,避免刷屏
(按下一页看下一个部分)
(PS 我做解说也不容易啊,又要做图又要码字)(PS2 你的评分与回复就是对我最好的支持)
说好的原理讲解来了
没看过核心的朋友请移步:http://www.mcbbs.net/thread-438695-1-1.html(PS 这次教程的图被压缩得惨不忍睹,我在网盘留了一份高清的,自己移步对着看吧……)
(http://pan.baidu.com/s/1o6xFduq)
知道你懒,效果视频在这里:
https://www.bilibili.com/html/player.html?aid=2260388&wmode=transparent&as_wide=1&page=1手机链接:http://www.bilibili.com/video/av2260388/
系统整体与初始化系统:
首先,整个核心的摆放方向如下,石块部分代表着fill高频的充能部分
要记住,fill的激活顺序是从同一个X坐标的CB开始(然而颜色弄错了不要在意)判断,小的优先(这个视角就是从左到右),然后是Y(下到上),最后是Z(前到后)
这样整个电路就很有顺序了
就是说目前的顺序为,最左下的,上面一个,到后面一行的下面那个,到上面……直到这一列都执行完了,就到下一列

然后这个是初始化部分(记住,以后这个视角的图的执行顺序全部是从下到上,从右到左,然后再到下一个切片)
这个是初始化隔壁的fill clock用的
这个呢,是用于激活整个初始化系统的,与其对应的是左上角的:
会在执行完毕后删除整个系统
这里是用于创建系统使用的变量了,作用分别是:
cook:监控食物烧烤的时间
done:监控食物的状态
sel:监控食物的种类
fire:监控玩家是否在火附近
slot:监控玩家选中的快捷栏
其后会详细讲解
而这个负责将命令方块输出结果取消,避免刷屏
(按下一页看下一个部分)
(PS 我做解说也不容易啊,又要做图又要码字)(PS2 你的评分与回复就是对我最好的支持)
sel系统

看着很复杂……其实只是一个枚举系统……
我们从右边开始
这两个是最经典的fill clock,没什么值得解释的了
这个命令最先执行,负责不断地重设玩家的sel分数
剩下左边的这堆命令其实功能都只有一个:枚举玩家手持的食物
例如土豆分数是1,生鱼是2之类的,生食从1~8
于是玩家手持相应物品的时候,sel分数就会被设定成为相应的数值
sel设置为9的命令呢,都是用于探测熟食的
例如这个,就是用来探测玩家手持熟鱼的
命令太多我就懒得逐一说了,反正就是枚举所有食物嘛……

顺带一提系统还有6个方块放到下一个切片里面了
fire系统

这个系统是用来探测玩家是否在火一格范围内,并且面对火的
我们从右下角开始
首先这个和sel系统部分有点类似,不断重设玩家的fire分数
这四个execute detect命令首先探测玩家的面向(rym和ry部分),再按照朝向的不同探测不同位置的火方块,如果有就把fire设为1
那么rym和ry究竟是什么回事?这是玩家水平的视角旋转
看图:

所以当玩家面向-135~-45的范围的话,我们就在他x+1的地方探测是否有火
135~45的话同理,探测x-1的地方,如此类推
这样就可以探测玩家是否在火附近并且面向火
最后呢,就是这个命令,他负责探测fire至少为1(在火附近面向火),和sel最少为一(手持生食或者熟食)
如果有的话,就以20Hz的速度给他的cook分数+1,就是说每秒加20个cook
cook系统

然后就是cook部分相关了
我设定的时候,希望不同的食物有不同的事件烤熟
肉类最久,鱼其次,最快是土豆
这时sel就有用了
不过在看这个之前,为了让玩家清楚知道是否在烹饪
我们让在烹饪状态的玩家(fire和sel都至少为1)身边显示粒子,提醒玩家
这四个命令负责监控玩家的烹饪状态
当sel为1(土豆),那么只要他的cook积分到了120(6秒),就把done分数设为1
2~3(鱼类),140(7秒)
3~8(肉类),160(8秒)
然后如果是熟食(sel_min=9)的话,那么100tick(5秒)后就把done设为2
done分1和2是为了区分是烤熟了还是烤焦了,后面有用
slot系统


然后还是无聊的枚举系统,这次用来探测玩家的选择快捷栏
探测玩家选中了第N个槽位
就这么简单……
声音提示系统

还记得done分1/2么
就是为了这个
这两个命令分别是:
如果done状态是1的话,播放获得经验球的那个悦耳叮叮声
如果是2的话,播放物品被岩浆烧毁的滋滋声
清除系统


更多的枚举系统袭来……
这次是负责在玩家烹饪好/烧焦完(done最少为1)的时候,清除选中物品栏的物品
就是通过slot分数得知玩家选中了哪个槽位,然后用replaceitem把空气放进去替换相关物品,达到清除的效果
give系统
 是的,依旧还是该死的枚举系统……
是的,依旧还是该死的枚举系统……
这次负责把成品给予玩家
基本格式就像上面那样
下面那个是例子
例如sel为1的话,证明我在烤土豆
于是系统探测到你done也为1(完成烹饪的状态)的话
就给你一个烤土豆
烤焦了原理也一样,如果sel是9,done是2的话,就给你一块碳……
状态重设系统
最后终于到完工的部分了……
首先,来到系统最后执行的部分,先将所以烤完/烤焦东西的玩家done分数设置为3
然后是将这些玩家的cook分数设置为0
先设3再设0是为了避免将正在烤东西的玩家的cook也重设了
这样就一辈子都不能烤东西了
最后再将玩家的done重设回0,准备下一轮烧烤
解说到此玩家,有问题的欢迎回复询问
废话不多说
说好的原理讲解来了
没看过核心的朋友请移步:http://www.mcbbs.net/thread-438695-1-1.html(PS 这次教程的图被压缩得惨不忍睹,我在网盘留了一份高清的,自己移步对着看吧……)
(http://pan.baidu.com/s/1o6xFduq)
知道你懒,效果视频在这里:
https://www.bilibili.com/html/player.html?aid=2260388&wmode=transparent&as_wide=1&page=1手机链接:http://www.bilibili.com/video/av2260388/
系统整体与初始化系统:

首先,整个核心的摆放方向如下,石块部分代表着fill高频的充能部分
要记住,fill的激活顺序是从同一个X坐标的CB开始(然而颜色弄错了不要在意)判断,小的优先(这个视角就是从左到右),然后是Y(下到上),最后是Z(前到后)
这样整个电路就很有顺序了
就是说目前的顺序为,最左下的,上面一个,到后面一行的下面那个,到上面……直到这一列都执行完了,就到下一列

然后这个是初始化部分(记住,以后这个视角的图的执行顺序全部是从下到上,从右到左,然后再到下一个切片)
- /setblock ~ ~ ~2 minecraft:redstone_block
- /fill ~1 ~1 ~ ~5 ~1 ~ minecraft:redstone_block
- /fill ~ ~ ~ ~-6 ~-2 ~ minecraft:air
- /scoreboard objectives add cook/done/sel/fire/slot dummy
cook:监控食物烧烤的时间
done:监控食物的状态
sel:监控食物的种类
fire:监控玩家是否在火附近
slot:监控玩家选中的快捷栏
其后会详细讲解
- /gamerule commandBlockOutput false
(按下一页看下一个部分)
(PS 我做解说也不容易啊,又要做图又要码字)(PS2 你的评分与回复就是对我最好的支持)
2021.12 数据,可能有更多内容
废话不多说说好的原理讲解来了
没看过核心的朋友请移步:http://www.mcbbs.net/thread-438695-1-1.html(PS 这次教程的图被压缩得惨不忍睹,我在网盘留了一份高清的,自己移步对着看吧……)
(http://pan.baidu.com/s/1o6xFduq)
知道你懒,效果视频在这里:
https://www.bilibili.com/html/player.html?aid=2260388&wmode=transparent&as_wide=1&page=1手机链接:http://www.bilibili.com/video/av2260388/
系统整体与初始化系统:

首先,整个核心的摆放方向如下,石块部分代表着fill高频的充能部分
要记住,fill的激活顺序是从同一个X坐标的CB开始(然而颜色弄错了不要在意)判断,小的优先(这个视角就是从左到右),然后是Y(下到上),最后是Z(前到后)
这样整个电路就很有顺序了
就是说目前的顺序为,最左下的,上面一个,到后面一行的下面那个,到上面……直到这一列都执行完了,就到下一列

然后这个是初始化部分(记住,以后这个视角的图的执行顺序全部是从下到上,从右到左,然后再到下一个切片)
代码:
- /setblock ~ ~ ~2 minecraft:redstone_block
代码:
- /fill ~1 ~1 ~ ~5 ~1 ~ minecraft:redstone_block
代码:
- /fill ~ ~ ~ ~-6 ~-2 ~ minecraft:air
代码:
- /scoreboard objectives add cook/done/sel/fire/slot dummy
cook:监控食物烧烤的时间
done:监控食物的状态
sel:监控食物的种类
fire:监控玩家是否在火附近
slot:监控玩家选中的快捷栏
其后会详细讲解
代码:
- /gamerule commandBlockOutput false
(按下一页看下一个部分)
(PS 我做解说也不容易啊,又要做图又要码字)(PS2 你的评分与回复就是对我最好的支持)
sel系统

看着很复杂……其实只是一个枚举系统……
我们从右边开始
代码:
- /fill ~ ~1 ~ ~5 ~1 ~4 minecraft:stone
 
- /fill ~ ~-1 ~ ~5 ~-1 ~4 minecraft:redstone_block
代码:
- /scoreboard players set @a sel 0
代码:
- /scoreboard players set @a sel X {SelectedItem:{[物品NBT]}}
例如土豆分数是1,生鱼是2之类的,生食从1~8
于是玩家手持相应物品的时候,sel分数就会被设定成为相应的数值
代码:
- /scoreboard players set @a sel 9 {SelectedItem:{[物品NBT]}}
代码:
- /scoreboard players set @a sel 9 {SelectedItem:{id:"minecraft:cooked_fish",Count:1b}}
命令太多我就懒得逐一说了,反正就是枚举所有食物嘛……

顺带一提系统还有6个方块放到下一个切片里面了
fire系统

这个系统是用来探测玩家是否在火一格范围内,并且面对火的
我们从右下角开始
代码:
- /scoreboard players set @a fire 0
代码:
- /execute @a[rym=-135,ry=-45] ~ ~ ~ detect ~1 ~ ~ minecraft:fire -1 /scoreboard players set @p fire 1
 
- /execute @a[rym=135,ry=-135] ~ ~ ~ detect ~ ~ ~-1 minecraft:fire -1 /scoreboard players set @p fire 1
 
- /execute @a[rym=45,ry=135] ~ ~ ~ detect ~-1 ~ ~ minecraft:fire -1 /scoreboard players set @p fire 1
 
- /execute @a[rym=-45,ry=45] ~ ~ ~ detect ~ ~ ~1 minecraft:fire -1 /scoreboard players set @p fire 1
那么rym和ry究竟是什么回事?这是玩家水平的视角旋转
看图:

所以当玩家面向-135~-45的范围的话,我们就在他x+1的地方探测是否有火
135~45的话同理,探测x-1的地方,如此类推
这样就可以探测玩家是否在火附近并且面向火
代码:
- /scoreboard players add @a[score_fire_min=1,score_sel_min=1] cook 1
如果有的话,就以20Hz的速度给他的cook分数+1,就是说每秒加20个cook
cook系统

然后就是cook部分相关了
我设定的时候,希望不同的食物有不同的事件烤熟
肉类最久,鱼其次,最快是土豆
这时sel就有用了
不过在看这个之前,为了让玩家清楚知道是否在烹饪
代码:
- /execute @a[score_fire_min=1,score_sel_min=1] ~ ~ ~ /particle fireworksSpark ~ ~ ~ 0.1 1 0.1 0.1 1
代码:
- /scoreboard players set @a[score_sel_min=1,score_sel=1,score_cook_min=120] done 1
 
- /scoreboard players set @a[score_sel_min=2,score_sel=3,score_cook_min=140] done 1
 
- /scoreboard players set @a[score_sel_min=3,score_sel=8,score_cook_min=160] done 1
 
- /scoreboard players set @a[score_sel_min=9,score_sel=9,score_cook_min=100] done 2
当sel为1(土豆),那么只要他的cook积分到了120(6秒),就把done分数设为1
2~3(鱼类),140(7秒)
3~8(肉类),160(8秒)
然后如果是熟食(sel_min=9)的话,那么100tick(5秒)后就把done设为2
done分1和2是为了区分是烤熟了还是烤焦了,后面有用
slot系统


然后还是无聊的枚举系统,这次用来探测玩家的选择快捷栏
代码:
- /scoreboard players set @a slot N {SelectedItemSlot:N-1}
就这么简单……
声音提示系统

还记得done分1/2么
就是为了这个
代码:
- /playsound random.orb @a[score_done_min=1,score_done=1] ~ ~ ~ 1 1 1
 
- /playsound random.fizz @a[score_done_min=2,score_done=2] ~ ~ ~ 1 1 1
如果done状态是1的话,播放获得经验球的那个悦耳叮叮声
如果是2的话,播放物品被岩浆烧毁的滋滋声
清除系统


更多的枚举系统袭来……
这次是负责在玩家烹饪好/烧焦完(done最少为1)的时候,清除选中物品栏的物品
代码:
- /replaceitem entity @a[score_slot_min=M,score_slot=M,score_done_min=1,score_done=2] slot.hotbar.M-1 minecraft:air
give系统

这次负责把成品给予玩家
代码:
- /give @a[score_done_min=1,score_sel_min=Y,score_sel=Y,score_done=1] [物品ID] 1
 
- /give @a[score_done_min=1,score_sel_min=1,score_sel=1,score_done=1] minecraft:baked_potato 1
下面那个是例子
例如sel为1的话,证明我在烤土豆
于是系统探测到你done也为1(完成烹饪的状态)的话
就给你一个烤土豆
代码:
- /give @a[score_done_min=2,score_sel_min=9,score_sel=9,score_done=2] minecraft:coal 1
状态重设系统

最后终于到完工的部分了……
代码:
- /scoreboard players set @a[score_done_min=1] done 3
代码:
- /scoreboard players set @a[score_done_min=3] cook 0
先设3再设0是为了避免将正在烤东西的玩家的cook也重设了
这样就一辈子都不能烤东西了
代码:
- /scoreboard players set @a[score_done_min=3] done 0
解说到此玩家,有问题的欢迎回复询问
你失误了
Assists+1
---------------
RP+2
XP+100
Coin+20
Glod+1
---------------
RP+2
XP+100
Coin+20
Glod+1
这东西用fill高频什么鬼!233333
漏斗级就够了那种0.5BpM的
漏斗级就够了那种0.5BpM的
C-青皮君 发表于 2015-4-27 19:25
这东西用fill高频什么鬼!233333
漏斗级就够了那种0.5BpM的
单人不用fill高频你对得起CB么!
你对得起那个被你烤的土豆么!
用漏斗就意味着土豆要被多烤那么一些时间
还有就是系统就不能压缩了233333
sylqiuyifeng 发表于 2015-4-27 19:27
单人不用fill高频你对得起CB么!
你对得起那个被你烤的土豆么!
用漏斗就意味着土豆要被多烤那么一些时间 ...
神回复= =
sylqiuyifeng 发表于 2015-4-27 19:27
单人不用fill高频你对得起CB么!
你对得起那个被你烤的土豆么!
用漏斗就意味着土豆要被多烤那么一些时间 ...
为了土豆的荣耀想想真是炫酷!
sylqiuyifeng 发表于 2015-4-27 19:27
单人不用fill高频你对得起CB么!
你对得起那个被你烤的土豆么!
用漏斗就意味着土豆要被多烤那么一些时间 ...
为了土豆的荣耀想想真是炫酷!
=。=红石大触已膜拜
SYL我来支持你了
能做到随地烧烤,这是极好的,可惜单人的话我们还缺个世界锚。{:10_514:}
教程图文做得很好
教程图文做得很好
 本帖最后由 sylqiuyifeng 于 2015-4-28 16:42 编辑 
世界锚还真不是问题
没记错以worldspawnpoint为中心的3x3区块是会持续加载的(更正,似乎是16x16?)
所以说只要把系统放在spawn chunks就能保证持续有效果了
然后图……这次已经是我懒没做半透明效果了233
(还有就是怎么传都被压缩得惨不忍睹)
jianghr 发表于 2015-4-28 14:54
能做到随地烧烤,这是极好的,可惜单人的话我们还缺个世界锚。
教程图文做得很好 ...
世界锚还真不是问题
没记错以worldspawnpoint为中心的3x3区块是会持续加载的(更正,似乎是16x16?)
The spawn chunks usually consist of an area of 16×16 chunks centered as close as possible to the world spawn point.
A Spawn Chunk is a chunk within the area surrounding the world spawn point.These chunks are special in that they will not be unloaded from memory, regardless of how far away a player moves, so long as there is at least one player in the Overworld.
所以说只要把系统放在spawn chunks就能保证持续有效果了
然后图……这次已经是我懒没做半透明效果了233
(还有就是怎么传都被压缩得惨不忍睹)
sylqiuyifeng 发表于 2015-4-28 16:36
世界锚还真不是问题
没记错以worldspawnpoint为中心的3x3区块是会持续加载的(更正,似乎是16x16?)
这段E文我还真没看到过,不过既然初始1Chunk是持续加载的话,那要么压缩,要么用漏斗强行加载邻近chunk了。
jianghr 发表于 2015-4-28 19:29
这段E文我还真没看到过,不过既然初始1Chunk是持续加载的话,那要么压缩,要么用漏斗强行加载邻近chunk了 ...
基本上chunckloader原理也是这个,把加载的区块扩散出去
不过充分利用spawnchunck的话可以往高度发展,弄成系统塔,最近很火的那个RPG地图似乎也这样做了
似乎明白了什么……支持多人对吧?
MsYqgzt 发表于 2015-4-28 22:46
似乎明白了什么……支持多人对吧?
没试验过,理论上应该支持
sylqiuyifeng 发表于 2015-4-28 19:39
基本上chunckloader原理也是这个,把加载的区块扩散出去
不过充分利用spawnchunck的话可以往高度发展,弄 ...
你们俩一个inf一个版主是真不知道假不知道
chyx 发表于 2015-4-29 02:18
你们俩一个inf一个版主是真不知道假不知道{:6 ...
然而研究游戏机制一向不是我会干的事情
C-青皮君 发表于 2015-4-27 19:25
这东西用fill高频什么鬼!233333
漏斗级就够了那种0.5BpM的
有没有不用命令方块的烧烤器啊
C-青皮君 发表于 2015-4-27 19:25
这东西用fill高频什么鬼!233333
漏斗级就够了那种0.5BpM的
有没有不用命令方块的烧烤器啊
建议直接在命令方块上面写1、2、3、4……
还有上面金粒加错…………
还有上面金粒加错…………
super东 发表于 2015-4-29 19:12
有没有不用命令方块的烧烤器啊
有没有不用方块的建筑啊