黑茶RGO
1.13之前检测实体是否在水里很简单,只需要检测脚的位置或者头的位置是不是water就可以了,但1.13之后多了各种水下植物、含水方块以及气泡柱,这使得检测实体是否在水里变得很麻烦。
那么,除了穷举出所有水、水下植物、含水方块以外,还有什么更简单的办法可以检测实体是否在水里,包括只是脚在水里和头部没入水下(会显示气泡且会有水下音效)两种情况的检测。
检测Air值的办法已排除,因为实体有水下呼吸附魔/效果时会有影响,也无法检测气泡柱,对鱼类和亡灵生物也无效,再加上1.13+出水并不会马上回满氧气值导致实体出水后仍然会被检测到

⊙u⊙
本帖最后由 ⊙u⊙ 于 2019-10-24 00:25 编辑

怎么感觉你好像问过...


在检测水方块的基础上,添加方块标签
https://raw.githubusercontent.co ... locks/tech/_all.txt
https://raw.githubusercontent.co ... locks/tech/_all.txt
一个用于1.13,另一个用于1.14。用里面的内容创建一个方块标签并放入你的数据包内
游戏内使用如
/execute as @a at @s if block ~ ~ ~ #namespace:all[waterlogged=true] run tellraw @s "feet in waterlogged block"


如果不会弄的话,https://github.com/ououn/UIN/releases这里有一个什么也不做的垃圾数据包可供下载,下载后丢入你的存档内
#uin:tech/all[waterlogged=true]




穷举,弄个方块标签吧,才那几个方块而已
[waterlogged=true]
bubble_column
kelp
kelp_plant
seagrass
tall_seagrass
water


mao,差点被你骗到了...判断Air就是了
不直接检测目标的Air,而是判断生成的marker的Air
外加判断气泡柱就是了

黑茶RGO
⊙u⊙ 发表于 2019-10-24 14:47
怎么感觉你好像问过...


在检测水方块的基础上,添加方块标签

这个只对含水方块有用啊

Delamer
本帖最后由 Delamer 于 2019-10-24 17:32 编辑

十个块块,用air数据对比来实现了头部入水的检测.
不用air也不用穷举是真不知道咋检测了.触及知识盲区.




有呼吸判定的生物应该也许可能都适用?这个没测试过不太清楚不能下断言.反正检测不了鱼.
脚部入水检测我放弃了...不知道该怎么折腾...
加个注解和分行吧.


为什么我发代码格式老爆炸

mc能吃吗
噫。。都是大佬。。。
进度?
完美的水贴

第一页 上一页 下一页 最后一页