开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

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

 发表于 2025-12-27 17:32:49 来自手机|显示全部楼层|阅读模式 IP:湖南省
52铁粒
做模组的时候,怎样让 动画 与 function(指令) 同步,或者说有什么办法让 function(指令) 延迟执行,因为我想让 伤害(指令) 和 动画的某一时刻 对应。
有大佬知道吗?qwq

最佳答案

查看完整内容

脚本可以直接做时间序列,但是用function的话我能想到的只能是计分板 functions/commands.mcfunction: functions/loop.mcfunction: functions/tick.json:
苦力怕论坛,感谢有您~
 发表于 2025-12-27 17:32:50|显示全部楼层 IP:北京
本帖最后由 冥王大大 于 2025-12-27 22:34 编辑

脚本可以直接做时间序列,但是用function的话我能想到的只能是计分板
functions/commands.mcfunction:

  1. scoreboard objectives add time dummy
  2. scoreboard players add @s time 1
  3. playanimation @s animation.attacking
  4. function loop
复制代码

functions/loop.mcfunction:

  1. damage @e 1 entity_attack entity @s[scores={time=21}]
  2. execute as @s[scores={time=21}] run scoreboard objectives remove time
  3. execute positioned as @s[scores={time=1..21}] run function loop
复制代码

functions/tick.json:

  1. scoreboard players add @e[scores={time=1..20}] time 1
复制代码



2#2025-12-27 17:32:50回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 发表于 2025-12-27 20:25:39 来自手机|显示全部楼层 IP:广西
无一人看得懂啊bro
3#2025-12-27 20:25:39回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

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

这个是在播放动画1秒后运行伤害,名称,数字什么的都可以改
4#2025-12-27 22:12:42回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 楼主|  发表于 2025-12-28 07:44:42 来自手机|显示全部楼层 IP:湖南省
@冥王大大
脚本的时间列序该怎么做,因为我觉得积分板指令太多了,主要是我要做的生物多,而且技能多,所以我想学一下脚本的时间列序,求教
5#2025-12-28 07:44:42回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 楼主|  发表于 2025-12-28 07:48:32 来自手机|显示全部楼层 IP:湖南省
@雹下冰
抱歉可能我的表述不准确,我的意思是 在 动画执行后 的 一个时间执行指令,不让 动画 刚执行,指令 也执行了
6#2025-12-28 07:48:32回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 楼主|  发表于 2025-12-28 07:49:09 来自手机|显示全部楼层 IP:湖南省
@雹冰下
抱歉可能我的表述不准确,我的意思是 在 动画执行后 的 一个时间执行指令,不让 动画 刚执行,指令 也执行了
7#2025-12-28 07:49:09回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 发表于 2025-12-28 12:16:08 来自手机|显示全部楼层 IP:北京
本帖最后由 冥王大大 于 2025-12-28 12:35 编辑
幻扬 发表于 2025-12-28 07:44
@冥王大大
脚本的时间列序该怎么做,因为我觉得积分板指令太多了,主要是我要做的生物多,而且技能多,所以 ...


时间序列也不是特别容易。首先需要一个new Map()储存生物的id和游戏刻值
然后在系统游戏刻循环建立一个递增结构:
  1. import system from "@minecraft/server"
  2. var ticking = new Map()
  3. function list(entity) {
  4. tick = ticking.get(entity.id)??0
  5. if (tick = 0) {
  6. entity.runCommand("playanimation @s animation.attack")
  7. }
  8. if (tick =20) {
  9. entity.runCommand("damage @e 1 entity_attack entity @s")
  10. }
  11. if (tick < 20) {
  12. tick += 1
  13. ticking.set(entity.id, tick)
  14. }
  15. }
  16. system.runInterval(() => {
  17. list(entity)//这里需要改获取实体以及触发条件
  18. }
复制代码

而且你需要将行为包设置为可使用脚本
要不然就用system.runJob(),前提是你会这个东西
8#2025-12-28 12:16:08回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 楼主|  发表于 2025-12-31 18:18:01 来自手机|显示全部楼层 IP:湖南省
算了,还是做 积分指令 吧
那个 时间序列 太难了qwq
9#2025-12-31 18:18:01回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-6-19 00:39

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4