开启辅助访问     
收藏本站

站内搜索

搜索

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

[BE教程] 附加包教程:8.物品(三)

 发表于 2023-1-11 07:35:46 来自手机|显示全部楼层|阅读模式 IP:天津
本帖最后由 Cat_Anchor 于 2024-6-6 19:37 编辑

注意:此页面所述功能在现版本已被弃用,请使用脚本代替,此页面现仅作为旧版本参考。
此页面所述功能只能在1.20.30及以下的格式版本中使用。

然而,出于学习并理解旧版附加包的必要性,我保留了这个页面。


前言

上期,我们学习了所有我已知的物品组件。这一期,我们将继续学习物品相关知识。这次,我们要学习物品事件。事件存储在与组件同级的地方。下面是一个例子。
  1. {
  2.   "format_version": "1.16.100",
  3.   "minecraft:item": {
  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. }
复制代码

事件方法列表

swing
让玩家播放摇晃动画。


shoot
射出实体。


damage
伤害实体或磨损物品。


decrement_stack
减少1个物品。


transform_item
把物品转化为另一物品。


teleport
传送目标。


add_mob_effect
给目标增加状态效果。


remove_mob_effect
给目标移除状态效果。


run_command
运行命令。


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)的概率(说人话就是4分之1)执行事件方法c,有3/(1+3)的概率(说人话就是4分之3)执行事件方法d。某个对象的概率的计算公式是这个对象的weight值除以所有对象的weight值之和。
复制代码


以上的两个事件可以互相套用,没什么限制,随便用。
  1. "sequence":[{"randomize":[{"weight":2,"事件方法": ...},{"weight":3,"事件方法": ...}]}] //这一类用法没什么不行的。

  2. "sequence":[{"sequence":[{"sequence":[{"sequence":[{"sequence":[{"事件方法": ...}]}]}]}]}] //这个也没什么不行的,你开心就好。
复制代码
总结

这一期,我把所有物品事件方法罗列了一遍。下一期,我们就开始实战演练!如果你想要模板包告诉你这两期的知识到底怎么用,去下期就对了!


评分

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

查看全部评分

苦力怕论坛,感谢有您~
 发表于 2023-1-11 10:03:48 来自手机|显示全部楼层 IP:安徽省
感谢分享
2#2023-1-11 10:03:48回复收起回复
苦力怕论坛,感谢有您~

本版积分规则

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

QQ群

访问手机版

访问手机版

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

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-12-14 14:50

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

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