本帖最后由 tcfx711 于 2014-7-10 18:01 编辑

http://www.mcbbs.net/thread-289653-1-1.html

我发过一个类似的装置,但BUG太多{:10_527:}
所以我又采取了回复中的意见,改进了一下装置。
——————————————————————————————————————————


首先用计分板创建一堆变量
/scoreboard objectives add d deathCount(d,统计玩家死亡次数)
/scoreboard objectives add s stat.swimOneCm(s,统计玩家游行距离)
/scoreboard objectives add Water dummy (Water,虚拟变量,作为饥渴值)
/scoreboard objectives add abc stat.walkOneCm (abc,统计玩家行走距离)
/scoreboard objectives add wb stat.useItem.minecraft.potion (wb,统计玩家使用药水或水瓶次数)[我之前居然没想到。。。{:10_494:}]




——————————————————————————————————————————


然后上方是有爱的时钟电路/scoreboard players remove @p Water 1(负责定时减玩家饥渴值)
中间一个超频脉冲激活四个命令方块
/testfor @p[score_abc_min=250](探测玩家行走距离)
满足后激活/scoreboard players set @p abc 0和/scoreboard players remove @p Water 1(作为玩家走路减少饥渴值的设定)


/testfor @p[score_s=50,score_s_min=50]对应/scoreboard players set @p s 0和/scoreboard players remove @p Water 1(作为玩家游泳减少饥渴值的设定)


重点:/testfor @p[score_wb=1,score_wb_min=1](探测玩家使用水瓶或药水次数)
满足后激活/scoreboard players add @p Water 20和/scoreboard players set @p wb 0(恢复玩家20点饥渴值并将玩家使用水瓶次数wb清零)


/testfor @p[score_Water_min=101]对应/scoreboard players set @p Water 100
(将玩家的饥渴值上限限定在100)
—————————————————————————————————————————


玩家饥渴值降低的负面效果
/testfor @p[score_Water=20,score_Water_min=20]对应/effect @p 9 12 1 true和/tellraw @p {text:"你感到头昏眼花",color:red,bold:true}当玩家饥渴值降到20后,给予玩家12秒的反胃效果)
/testfor @p[score_Water=0,score_Water_min=0]             这个嘛,{:10_497:}
对应/execute @p ~ ~ ~ say 神作了和/kill @p[score_Water=0,score_Water_min=0]
你懂的。。。。。。。。。。。


/testfor @p[score_d=1,score_d_min=1]对应/scoreboard players set @p d 0和/scoreboard players set @p Water 100(玩家死后将饥渴值恢复至100)




/testfor @p[score_Water=50,score_Water_min=50]对应/effect @p 2 10 1 true和/tellraw @p {text:"你感到唇焦口燥",color:red}(当玩家饥渴值降到50后,给予玩家10秒的缓慢效果)
——————————————————————————————————————————
虽然上次的装置BUG很多{:10_527:}
但希望大家如果有什么意见或发现BUG,一定要回复,谢谢


最后是伟大滴存档君 Water.zip (223.75 KB, 下载次数: 115)