如题,我想做出moba那种兵线机制,但是寻路好像挺复杂,我想到的是持续tp,但是好像不是太好的解决方案
是直线寻路还是像塔防那样
dh381 发表于 2022-11-18 11:53
是直线寻路还是像塔防那样
没有敌人沿着塔防路线,有敌人就追着敌人跑
塔防路线可以利用怪物躲开凋零玫瑰的寻路逻辑完成,下面是直线索敌的指令组:
execute as @e[type=minecraft:zombie] run tag @p[distance=..16] add enemy
循环执行,为僵尸周围16格的玩家带上enemy标签
execute as @e[type=minecraft:zombie] at @s run tp @s ~ ~ ~ facing entity @p[tag=enemy]
循环执行,让所有僵尸向带有enemy标签的玩家移动
execute as @e[type=minecraft:zombie] run tag @p[distance=..16] add enemy
循环执行,为僵尸周围16格的玩家带上enemy标签
execute as @e[type=minecraft:zombie] at @s run tp @s ~ ~ ~ facing entity @p[tag=enemy]
循环执行,让所有僵尸向带有enemy标签的玩家移动
dh381 发表于 2022-11-18 12:10
塔防路线可以利用怪物躲开凋零玫瑰的寻路逻辑完成,下面是直线索敌的指令组:
execute as @e[type=minecraf ...
锁敌我想到了,但是怎么保证怪物能按照设定好的路线走塔防呢.总不能满地凋灵玫瑰吧

dh381 发表于 2022-11-18 14:09
https://www.mcbbs.net/thread-1142961-1-1.html
参考一下这个帖子,我把绵羊发的帖子翻遍了才找到 ...
这个办法倒是也行,emm,跟我想的有点区别

本帖最后由 飞翔的亀Tt 于 2022-11-20 14:19 编辑
我觉得你说的持续tp就是个挺好的解决方案
可以给怪三种模式,常规、仇恨和回线
常规模式就是正常按照路线tp
当玩家靠近怪比如5格时,给怪添加仇恨标签并去掉常规标签和回线标签
有仇恨标签的怪不被按照路线tp
用怪自己的ui去追玩家
给周围5格没有玩家的有仇恨标签的怪,添加回线标签并去除仇恨标签
至于这个回线,我推荐的是在你规划好的路线上添加若干marker,然后将有回线标签的怪缓慢tp向最近的marker
tp过去之后,调整怪的朝向,去掉回线标签并添加常规标签
这样就可以往复循环了
我觉得你说的持续tp就是个挺好的解决方案
可以给怪三种模式,常规、仇恨和回线
常规模式就是正常按照路线tp
当玩家靠近怪比如5格时,给怪添加仇恨标签并去掉常规标签和回线标签
有仇恨标签的怪不被按照路线tp
用怪自己的ui去追玩家
给周围5格没有玩家的有仇恨标签的怪,添加回线标签并去除仇恨标签
至于这个回线,我推荐的是在你规划好的路线上添加若干marker,然后将有回线标签的怪缓慢tp向最近的marker
tp过去之后,调整怪的朝向,去掉回线标签并添加常规标签
这样就可以往复循环了
翔梦FD 发表于 2022-11-18 12:18
锁敌我想到了,但是怎么保证怪物能按照设定好的路线走塔防呢.总不能满地凋灵玫瑰吧 ...
控制怪物朝向,一直把怪往前tp就行了
遇到转弯就在弯角下面的土里埋个命令方块让他转一下向呗
飞翔的亀Tt 发表于 2022-11-20 14:15
我觉得你说的持续tp就是个挺好的解决方案
可以给怪三种模式,常规、仇恨和回线
仇恨标签是指tag还是AngryAt,AngryAt不是所有怪物都有的。如果用伤害源药水云的话好像没法移除怪物的仇恨
翔梦FD 发表于 2022-11-20 18:30
仇恨标签是指tag还是AngryAt,AngryAt不是所有怪物都有的。如果用伤害源药水云的话好像没法移除怪物的仇恨 ...
tag,都是tag,名字只是举例方便区分
本帖最后由 翔梦FD 于 2022-11-21 17:26 编辑
最后再问一下,当怪物已经有了仇恨玩家后怎么在回线时将仇恨目标改回敌方怪物(敌方玩家仍在怪物视线内,只不过超出了预设探测范围).原版怪物有了目标后好像无法通过新的伤害转移
飞翔的亀Tt 发表于 2022-11-21 16:49
tag,都是tag,名字只是举例方便区分
最后再问一下,当怪物已经有了仇恨玩家后怎么在回线时将仇恨目标改回敌方怪物(敌方玩家仍在怪物视线内,只不过超出了预设探测范围).原版怪物有了目标后好像无法通过新的伤害转移
翔梦FD 发表于 2022-11-21 17:24
最后再问一下,当怪物已经有了仇恨玩家后怎么在回线时将仇恨目标改回敌方怪物(敌方玩家仍在怪物视线内,只不 ...
修改属性
{Attributes:[{Name:"generic.follow_range",Base:5.0}]}
翔梦FD 发表于 2022-11-21 17:24
最后再问一下,当怪物已经有了仇恨玩家后怎么在回线时将仇恨目标改回敌方怪物(敌方玩家仍在怪物视线内,只不 ...
属性见
https://minecraft.fandom.com/zh/wiki/%E5%B1%9E%E6%80%A7