怎么让 动画 与 function(指令) 同步?(做模组)
做模组的时候,怎样让 动画 与 function(指令) 同步,或者说有什么办法让 function(指令) 延迟执行,因为我想让 伤害(指令) 和 动画的某一时刻 对应。有大佬知道吗?qwq 本帖最后由 冥王大大 于 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
无一人看得懂啊bro 冥王大大 发表于 2025-12-27 22:11
脚本可以直接做时间序列,但是用function的话我能想到的只能是计分板
functions/commands.mcfunction:
func ...
这个是在播放动画1秒后运行伤害,名称,数字什么的都可以改
@冥王大大
脚本的时间列序该怎么做,因为我觉得积分板指令太多了,主要是我要做的生物多,而且技能多,所以我想学一下脚本的时间列序,求教 @雹下冰
抱歉可能我的表述不准确,我的意思是 在 动画执行后 的 一个时间执行指令,不让 动画 刚执行,指令 也执行了 @雹冰下
抱歉可能我的表述不准确,我的意思是 在 动画执行后 的 一个时间执行指令,不让 动画 刚执行,指令 也执行了 本帖最后由 冥王大大 于 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(),前提是你会这个东西 算了,还是做 积分指令 吧
那个 时间序列 太难了qwq
页: [1]