本帖最后由 tcfx711 于 2014-6-28 08:52 编辑

大家都知道MC一直很不科学
生存的时候连口水都不喝。。。{:10_493:}


所以我专门做了个装置

下面看一下效果


[attach]551111[/attach]
一个孤独的旅人在沙漠中行走
不过,,,,,他没有水了。。。
[attach]551113[/attach]

缺水了。。。。{:10_527:}



[attach]551114[/attach]

幸好,他发现了前人的水{:10_492:}

[attach]551116[/attach]


他狠狠的灌了口水,好多了{:10_512:}



下面讲下原理。。。。。(图第二天再补)
先用计分板创建名为Water的变量/scoreboard objectives add Water dummy
再不断给Water减1 /scoreboard players remove @a Water 1
这样就可以使玩家有饥渴值了


接下来是检查玩家是否喝水:
首先用 /testfor @p {SelectedItemSlot:0,Inventory:[{id:"minecraft:potion",Count:1b,Damage:0s,Slot:0b}]}  (将其中的0分别改成1-8)+高频脉冲
分别探测玩家物品栏中是否选中水瓶

如果探测到了,就输出粘性活塞,将红石块推到命令方块上,命令方块指令/summon FallingSand ~ ~1 ~ {Tile:152} 形成PM的超频脉冲

接下来用/testfor @p {SelectedItemSlot:0,Inventory:[{id:"minecraft:glass_bottle",Count:1b,Damage:0s,Slot:0b}]} (将其中的0分别改成1-8)+高频脉冲
分别探测玩家物品栏中是否选中空玻璃瓶
(注意,一定是对应的探测,例如探测到玩家1号位选中水瓶,那么对应输出后的脉冲只不断激活探测玩家1号位是否有空玻璃瓶)


探测到有空玻璃瓶后输出:/scoreboard players add @p Water 20(给玩家的Water变量加20)
/say 你感觉好一些了


然后是探测玩家Water值的不同,分别给予玩家不同效果(有testfor指令的用高频脉冲连接)/testfor @e[type=Player,score_Water=70,score_Water_min=70]+/effect @p 2 120 1+/say 你感觉到唇焦口燥
/testfor @e[type=Player,score_Water=40,score_Water_min=40]+/effect @p 18 120 1+/say 你感觉到头昏眼花
/testfor @e[type=Player,score_Water=0,score_Water_min=0]+/kill @e[type=Player,score_Water=0,score_Water_min=0](再见了。。。。。)
/testfor @e[type=Player,score_Water_min=101]+/scoreboard players set @p Water 100
/testfor @e[type=Player,score_Water=10,score_Water_min=10]+/effect @p 20 5 1+/say 你感觉命不久矣(。。。。。。。。。。。。)





好了,整个装置差不多就是这样。
如果有什么意见建议,希望大家回复{:10_492:}






我只不过先发了下效果就成水了。。。。。。