开启辅助访问     
收藏本站

站内搜索

搜索

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

[BE教程] 附加包教程:14.方块(三)

 发表于 2023-1-14 12:22:08 来自手机|显示全部楼层|阅读模式 IP:山西省
本帖最后由 Cat_Anchor 于 2024-8-4 19:33 编辑

注意:此页面所述功能已于1.21.20.23被移除,请使用脚本代替其功能。
然而,出于学习并理解旧版附加包的必要性,我保留了这个页面。


前言
上上上期,我们学习了所有我已知的方块组件。这一期,我们将继续学习方块相关知识。这次,我们要学习方块事件。事件存储在与组件同级的地方。下面是一个例子。
  1. {
  2.   "format_version": "1.19.40",
  3.   "minecraft:block": {
  4.     "description": {不要在意这些细节},
  5.     "components": {不要在意这些细节},
  6.     "events": { //在意这个就对了,这就是事件存放的地方。
  7.       "loot": { //“loot”是这个事件的名字。
  8.         "run_command": { //一个事件方法(意思是运行命令)
  9.           "command": [ //要运行的命令组
  10.             "loot spawn ~~~ loot "items/ancientcity_map" minecraft:air" //一个命令,注意命令里的引号前面的转义符\。
  11.           ]
  12.         },
  13.         "decrement_stack": {} //又一个事件方法(意思是将当前物品减少1个)
  14.       }
  15.     }
  16.   }
  17. }
复制代码
这其实和物品事件是大致相同的。
事件方法列表
add_mob_effect
增加状态效果。


damage
对指定的实体或对在指定的条件下的实体造成指定类型和程度的伤害。


decrement_stack
将物品减少1个。


die
摧毁指定的实体,或使指定方块直接消失而没有掉落物。


play_effect
播放粒子效果。


play_sound
播放声音。


remove_mob_effect
移除状态效果。


run_command
运行命令。


set_block
放置方块。


set_block_at_pos
在指定位置放置方块。


set_block_state
设置方块状态。


spawn_loot
根据战利品表生成掉落物。


swing
使实体摇晃。


teleport
在指定范围内传送实体。


transform_item
将物品转化为另一个物品。


trigger
触发另一个事件。




以上就是所有可用的方块事件方法了。还有两个特殊结构,这两个特殊结构可以算作特殊的事件方法,我在下面列出。
下面这个用于有序执行事件方法。
  1. "sequence": [
  2.   {
  3.     "condition": "表达式a", //Molang表达式。如果输出true,那么就会执行事件方法a。输出false则不会。
  4.     "target": "holder", //目标。
  5.     "事件方法a": ...
  6.   },
  7.   {
  8.     "condition": "表达式b", //又一个Molang表达式。如果输出true,那么就会执行事件方法b。输出false则不会。
  9.     "target": "holder", //目标。
  10.     "事件方法b": ...
  11.   }
  12. ] //这一大堆东西的效果是:游戏将先评估表达式a,如果输出true,那么执行事件方法a,执行完之后进行下一个。如果输出false,那么进行下一个。然后评估表达式b,如果输出true,那么执行事件方法b,执行完之后进行下一个。如果输出false,那么进行下一个。以此类推,直到执行完毕。
复制代码


下面这个用于随机执行事件方法。
  1. "randomize":[
  2.   {
  3.     "weight": 1, //执行这个事件的权重。
  4.     "事件方法c": ...
  5.   },
  6.   {
  7.     "weight": 3, //执行这个事件的权重。
  8.     "事件方法d": ...
  9.   }
  10. ] //这一大堆东西的效果是:游戏有1/(1+3)的概率(说人话就是四分之一)执行事件方法c,有3/(1+3)的概率(说人话就是四分之三)执行事件方法d。某个对象的概率的计算公式是这个对象的weight值除以所有对象的weight值之和。
复制代码


以上的两个事件可以互相套用,没什么限制,随便用。
  1. "sequence":[{
  2. "randomize":[
  3.   {
  4.     "weight": 2,
  5.     "事件方法a": ...
  6.   },
  7.   {
  8.     "weight": 3,
  9.     "事件方法b": ...
  10.   }
  11. ]
  12. }] //这一类用法没什么不行的。

  13. "sequence":[{
  14. "sequence":[{
  15.   "sequence":[{
  16.    "sequence":[{
  17.     "sequence":[{
  18.      "事件方法": ...
  19.     }]
  20.    }]
  21.   }]
  22. }]
  23. }] //这个也没什么不行的,你开心就好。
复制代码
这两个事件方法其实和我在物品那篇教程里的一样。
总结
这一期,我把所有方块事件方法罗列了一遍。下期我们学习方块状态和对应状态的赋值。


评分

参与人数 1铁粒 +100收起理由
 WZM*** + 100我要这铁粒有何用

查看全部评分

苦力怕论坛,感谢有您~
 发表于 2023-1-14 12:53:02 来自手机|显示全部楼层 IP:福建省
感谢分享
2#2023-1-14 12:53:02回复收起回复
苦力怕论坛,感谢有您~

本版积分规则

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

QQ群

访问手机版

访问手机版

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

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-11-28 16:35

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

Powered by Discuz! X3.4 粤ICP备2023071842号-3