幻扬 发表于 2025-12-27 17:32:49

怎么让 动画 与 function(指令) 同步?(做模组)

做模组的时候,怎样让 动画 与 function(指令) 同步,或者说有什么办法让 function(指令) 延迟执行,因为我想让 伤害(指令) 和 动画的某一时刻 对应。
有大佬知道吗?qwq

牢冥王 发表于 2025-12-27 17:32:50

本帖最后由 冥王大大 于 2025-12-27 22:34 编辑

脚本可以直接做时间序列,但是用function的话我能想到的只能是计分板
functions/commands.mcfunction:
scoreboard objectives add time dummy
scoreboard players add @s time 1
playanimation @s animation.attacking
function loop

functions/loop.mcfunction:
damage @e 1 entity_attack entity @s
execute as @s run scoreboard objectives remove time
execute positioned as @s run function loop

functions/tick.json:
scoreboard players add @e time 1



雹冰下 发表于 2025-12-27 20:25:39

无一人看得懂啊bro

牢冥王 发表于 2025-12-27 22:12:42

冥王大大 发表于 2025-12-27 22:11
脚本可以直接做时间序列,但是用function的话我能想到的只能是计分板
functions/commands.mcfunction:
func ...

这个是在播放动画1秒后运行伤害,名称,数字什么的都可以改

幻扬 发表于 2025-12-28 07:44:42

@冥王大大
脚本的时间列序该怎么做,因为我觉得积分板指令太多了,主要是我要做的生物多,而且技能多,所以我想学一下脚本的时间列序,求教

幻扬 发表于 2025-12-28 07:48:32

@雹下冰
抱歉可能我的表述不准确,我的意思是 在 动画执行后 的 一个时间执行指令,不让 动画 刚执行,指令 也执行了

幻扬 发表于 2025-12-28 07:49:09

@雹冰下
抱歉可能我的表述不准确,我的意思是 在 动画执行后 的 一个时间执行指令,不让 动画 刚执行,指令 也执行了

牢冥王 发表于 2025-12-28 12:16:08

本帖最后由 冥王大大 于 2025-12-28 12:35 编辑

幻扬 发表于 2025-12-28 07:44
@冥王大大
脚本的时间列序该怎么做,因为我觉得积分板指令太多了,主要是我要做的生物多,而且技能多,所以 ...

时间序列也不是特别容易。首先需要一个new Map()储存生物的id和游戏刻值
然后在系统游戏刻循环建立一个递增结构:import system from "@minecraft/server"
var ticking = new Map()
function list(entity) {
tick = ticking.get(entity.id)??0
if (tick = 0) {
entity.runCommand("playanimation @s animation.attack")
}
if (tick =20) {
entity.runCommand("damage @e 1 entity_attack entity @s")
}
if (tick < 20) {
tick += 1
ticking.set(entity.id, tick)
}
}
system.runInterval(() => {
list(entity)//这里需要改获取实体以及触发条件
}
而且你需要将行为包设置为可使用脚本
要不然就用system.runJob(),前提是你会这个东西

幻扬 发表于 2025-12-31 18:18:01

算了,还是做 积分指令 吧
那个 时间序列 太难了qwq
页: [1]
查看完整版本: 怎么让 动画 与 function(指令) 同步?(做模组)