卡儿_
replyreload += ',' + 28987119; 本帖最后由 卡儿_ 于 2023-9-2 11:02 编辑








1
[Raycast] 视线追踪1

前言这是预置了一些功能的视线追踪,已写好一些实体抓取、方块过滤、自定义视距等计算逻辑,可直接套用。开启数据包:scoreboard players set #ray.open if 1
设置为其他值即为关闭。复制代码

一、判定玩家是否看到了目标方块:
模式1   每次看到方块只响应一次:tag @s add raycast_kaer.see_block
模式2   连续响应:tag @s add conti_ray.see_block
复制代码移除tag即为退出该模式。在模式1期间,玩家持续盯着某个方块时只触发一次"玩家看到了方块的提示语"优先触发模式2.

自定义玩家观察方块的视距:scoreboard players set @s ray.length 复制代码公式:判定格数=数值/1000必须是大于或等于1000的整数。玩家可以各自设置自己的判定视距,不会与其他玩家的设值冲突。默认值是20000,即"默认判定距离为视线前方20格"。若玩家没有设值,或者设置的值小于1000,则会恢复到默认值。玩家在使用望远期间判定范围会被拉长到玩家自定义视距的7.5倍。玩家拥有失明或黑暗效果时,自定义视距失效。判定距离被锁定为视线前方3.4格,且不会触发望远镜"增加判定距离"效果。判定成功的条件:玩家没有头戴雕刻南瓜,且视线前方有效判定距离内 (包括玩家的头所在的方块) 有以下方块之一:红色羊毛、红沙、石头、石英块、远古残骸、南瓜灯、基岩、熔炉、红石灯、红石灯(发光的)、命令方块(三种均可)、海晶石、蜂巢、橡木原木、镶金黑石、钻石块、信标复制代码旁观模式的玩家不会触发视线追踪,但玩家切出旁观仍然可以继续触发,并不会给旁观模式的玩家移除tag。本数据包使用了过滤器,诸如玻璃一类的方块会被视为空气,诸如marker、区域云一类的无模型的实体也会被视为空气。报出的信息尽仅自己可见,不会在公屏刷屏。

二、判定玩家是否看到了目标实体模式1   每次看到实体只响应一次:tag @s add raycast_kaer.see_entity
模式2   连续响应:tag @s add conti_ray.see_entity
复制代码移除tag即为退出该模式。在模式1期间,玩家持续盯着某个实体时只触发一次"玩家看到了实体的提示语"。优先触发模式2。自定义玩家观察实体的视距:scoreboard players set @s ray.length_ety 复制代码公式:判定格数=数值/1000必须是大于或等于1000的整数。玩家可以各自设置自己的判定视距,不会与其他玩家的设值冲突。默认值是20000,即"默认判定距离为视线前方20格"。若玩家没有设值,或者设置的值小于1000,则会恢复到默认值。玩家在使用望远镜期间判定范围会被拉长到玩家自定义视距的7.5倍.玩家拥有失明或黑暗效果时,自定义视距失效。且判定距离会被降低为视线前方3.4格,且不会触发望远镜"增加判定距离"效果。判定成功的条件:玩家没有头戴雕刻南瓜,且视线前方有效判定距离内(包括玩家的头所在的方块)有以下实体之一:凋灵、闪电束、附魔金苹果掉落物、美西螈、蝙蝠、苦力怕、蜜蜂、鸡、牛、熊猫、兔子、骷髅、村民、傻子村民、女巫、狐狸、幻翼、海豚、末影水晶,末影龙,蠹虫,猪,鹦鹉
旁观模式的玩家不会触发视线追踪,但玩家切出旁观仍然可以继续触发,并不会给旁观模式的玩家移除tag被玩家看到的实体会获得短暂的发光效果,在玩家移开视线后,该实体再次看到也会获得发光效果。末影龙、附魔金苹果掉落物、末影水晶也是可以发光的。本数据包已成功追踪闪电,闪电实体是可以被看到的。本数据包使用了过滤器,诸如玻璃一类的方块会被视为空气,诸如marker、区域云一类的无模型的实体也会被视为空气。报出的信息尽仅自己可见,不会在公屏刷屏。

三、相关解释判定玩家是否看到目标方块:function raycast_kaer:block/start
判定玩家是否看到目标实体:function raycast_kaer:entity/start
复制代码
定义了两种方块类型:玩家观察方块的时候不会挡视线的方块、玩家观察实体的时候不会挡视线的方块。分类标准是以玩家在玩游戏过程中主观上不会挡游戏视野的方块,这两种方块类型初始包含的方块ID都一样。可用以下命令测试:玩家观察方块的时候不会挡视线的方块:execute if block ~ ~-1 ~ #raycast_kaer:transparent
玩家观察实体的时候不会挡视线的方块:execute if block ~ ~-1 ~ #raycast_kaer:transparent_entity
复制代码方块目录(按JSON文件里的从上到下顺序):所有空气,玻璃,玻璃板,所有染色玻璃板,所有染色玻璃,所有羊毛地毯,#所有蜡烛,#所有栅栏,#所有栅栏门,#所有按钮,#所有压力板,铁栏杆,锁链,苔藓地毯,滴水石锥,大中小紫晶芽,紫水晶簇,#所有树苗,棕色蘑菇,红色蘑菇,几乎所有花卉(排除仙人掌、大型蕨、紫颂植株和紫颂花),青蛙卵,海龟蛋,小麦,可可豆,南瓜茎,西瓜茎,甜菜根,甜浆果,下界疣,水,幽匿脉络,蜘蛛网,火把,灵魂火把,末地烛,酿造台,钟,潮涌核心,梯子,脚手架,避雷针,红石线,拉杆,绊线钩,绊线,铁轨,动力铁轨,探测铁轨,激活铁轨,刷怪笼,结构空位,屏障,光源方块,#所有花盆,#所有活板门,#所有告示牌,#所有门,龙蛋,红石中继器,红石比较器,气泡柱,#所有珊瑚和珊瑚扇,所有失活的珊瑚扇,铁砧,信标,玩家的头,骷髅头颅,凋零骷髅头颅,僵尸的头,苦力怕的头,猪灵的头
定义了两种实体类型:玩家观察方块的时候不会挡视线的实体、玩家观察实体的时候不会挡视线的实体。分类标准是以玩家在玩游戏过程中主观上不会挡游戏视野的实体,这两种实体类型初始包含的实体ID都一样。可用以下指令测试:玩家观察方块的时候不会挡视线的实体:execute as if entity @s[type=#raycast_kaer:no_occlusion]
玩家观察实体的时候不会挡视线的实体:execute as if entity @s[type=#raycast_kaer:no_occlusion_entity]复制代码
实体名单(按JSON文件里的从上到下顺序):经验球,#所有箭,掷出的三叉戟,雪球,鸡蛋,羊驼唾沫,浮漂,唤魔者尖牙,标记,区域效果云,掷出的药水瓶,掷出的附魔之瓶,物品展示框,荧光物品展示框,光灵箭,蝌蚪,恼鬼,交互实体,烟花火箭,盔甲架



下载
游客,如果您要查看本帖隐藏内容请回复

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