开启辅助访问     
收藏本站

站内搜索

搜索

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

[BE教程] 【原创】实体全事件写法的精品教程

 发表于 2022-4-10 16:53:25|显示全部楼层|阅读模式 IP:湖北省
本帖最后由 送你的执念 于 2022-4-10 16:56 编辑

特别注意//之后为注释   /*之间为注释*/
更多精品教程可加QQ群:1014557374获取
a.png
  1. {/*由吃毛不吐毛球制作
  2. 事件名称可以使用":","_"等符号*/
  3.     "events": {//事件 通常写在组件后
  4.     //我们先来看一个简单的添加和移除组件组的事件
  5.         "event_1": {//事件名称
  6.             "add": {//添加
  7.                 "component_groups": [
  8.                     "cg_1"//组件组名称
  9.                 ]
  10.             },
  11.             "remove": {//移除
  12.                 "component_groups": [
  13.                     "cg_2"
  14.                 ]
  15.             }
  16.         },
  17.         //事件可以运行指令
  18.         "event_3": {
  19.             "run_command": {//运行指令
  20.                 "command": [//指令部分
  21.                     "give @s minecraft"//需要运行的指令
  22.                 ],
  23.                 "target": "player"//运行指令的目标 默认为self
  24.             }
  25.         },
  26.         //指令可以做到随机触发
  27.         "event_2": {
  28.             "randomize": [//随机化
  29.                 {
  30.                     "weight": 95,//权重 这里为95%的概率 95/5+95 权重大小可以大于或小于100
  31.                     "add": {
  32.                         "component_groups": [
  33.                             "cg_3"
  34.                         ]
  35.                     }
  36.                 },
  37.                 {
  38.                     "weight": 5,//这里为5%的概率
  39.                     "add": {
  40.                         "component_groups": [
  41.                             "cg_4"
  42.                         ]
  43.                     }
  44.                 }
  45.             ]
  46.         },
  47.         //随机触发空事件
  48.         "randomize": [
  49.                 {
  50.                     "weight": 60//60/65的概率触发一个空事件
  51.                 },
  52.                 {
  53.                     "weight": 5,//这里为5/65的概率
  54.                     "add": {
  55.                         "component_groups": [
  56.                             "cg_5"
  57.                         ]
  58.                     }
  59.                 }
  60.             ]
  61.         //下面是一个原版僵尸转化为溺尸带条件的序列化事件
  62.         "minecraft:convert_to_drowned": {
  63.             "sequence": [//序列
  64.                 {//第一个事件
  65.                     "filters": {//过滤器 每一个过滤器仅作用于它所属的那一部分
  66.                         "test": "has_component",
  67.                         "operator": "!=",
  68.                         "value": "minecraft:is_baby"
  69.                     },
  70.                     "add": {
  71.                         "component_groups": [
  72.                             "minecraft:convert_to_drowned"
  73.                         ]
  74.                     },
  75.                     "remove": {
  76.                         "component_groups": [
  77.                             "minecraft:start_drowned_transformation"
  78.                         ]
  79.                     }
  80.                 },//第一个事件结束 如果溺尸没有"minecraft:is_baby"组件,就添加"minecraft:convert_to_drowned"组件组并移除"minecraft:start_drowned_transformation"组件组
  81.                 {//第二个事件
  82.                     "filters": {
  83.                         "test": "has_component",
  84.                         //这里没有写"operator" 使用了默认值equals
  85.                         "value": "minecraft:is_baby"
  86.                     },
  87.                     "add": {
  88.                         "component_groups": [
  89.                             "minecraft:convert_to_baby_drowned"
  90.                         ]
  91.                     },
  92.                     "remove": {
  93.                         "component_groups": [
  94.                             "minecraft:start_drowned_transformation"
  95.                         ]
  96.                     }
  97.                 }//第二个事件结束   如果溺尸有"minecraft:is_baby"组件,就添加"minecraft:convert_to_baby_drowned"组件组并移除"minecraft:start_drowned_transformation"组件组
  98.             ]
  99.         },
  100.         "on_interact_es": {//触发器事件
  101.             "trigger": {//触发器
  102.                 "filters": {//过滤器
  103.                     "test": "has_tag",
  104.                     "subject": "other",
  105.                     "value": "test"
  106.                 },
  107.                 "event": "interacted",//触发的事件
  108.                 "target": "other"//目标              
  109.                 //此事件在实体与玩家交互时运行。如果玩家拥有test这个tag,那么interacted事件将以player为命令使用者运行事件
  110.             }
  111.         },
  112.         "on_interact": {//一个带序列化的触发器事件
  113.             "sequence": [
  114.                 {
  115.                     "trigger": {
  116.                         "filters": {
  117.                             "test": "has_tag",
  118.                             "subject": "other",
  119.                             "value": "test"
  120.                         },
  121.                         "event": "wiki:interacted",
  122.                         "target": "other"
  123.                     }
  124.                 },
  125.                 {
  126.                     "add": {
  127.                         "component_groups": [
  128.                             "wiki:interacted_with"
  129.                         ]
  130.                     }
  131.                 }
  132.             ]
  133.         },
  134.         //mojang在实体中也内置了事件
  135.         "minecraft:entity_born": {//例如一个"minecraft:entity_born"事件,它将在实体出生时触发,这意味着实体需要通过"minecraft:behavior.breed"来触发
  136.             "add": {
  137.                "component_groups": [
  138.                    "goat_baby"
  139.                ]
  140.             }
  141.         },
  142.         "minecraft:entity_transformed": {//实体转化时触发
  143.            "trigger": "spawn_baby"//触发"spawn_baby"事件
  144.         }.
  145.         
  146.         
  147.         /*目前已知的内置事件:
  148. "minecraft:entity_born"        minecraft:entity_born triggers an event calls on an entity when the entity is born via breeding.生物出生时触发
  149. "minecraft:entity_spawned"        minecraft:entity_spawned triggers an event calls on an entity when the entity is spawned in the world.生物生成时触发
  150. "minecraft:entity_transformed"        minecraft:entity_transformed triggers an event call on an entity that transforms into another entity.生物转化时触发
  151. "minecraft:on_prime"        minecraft:on_prime triggers an event calls on an entity when the entity is set to explode.生物爆炸时触发*/


  152.         //下面是一个复杂的随机化和序列化结合的事件,作者就不一一注解了
  153.         "wiki:on_hit": {
  154.             "randomize": [
  155.                 {
  156.                     "weight": 60
  157.                 },
  158.                 {
  159.                     "weight": 40,
  160.                     "sequence": [
  161.                         {
  162.                             "trigger": "attack_event"
  163.                         },
  164.                         {
  165.                             "filters": {
  166.                                 "test": "has_component",
  167.                                 "operator": "!=",
  168.                                 "value": "minecraft:is_sheared"
  169.                             },
  170.                             "sequence": [
  171.                                 {
  172.                                     "filters": {
  173.                                         "test": "distance_to_nearest_player",
  174.                                         "operator": "<=",
  175.                                         "value": 5.0
  176.                                     },
  177.                                     "randomize": [
  178.                                         {
  179.                                             "weight": 10,
  180.                                             "add": {
  181.                                                 "component_groups": [
  182.                                                     "explode"
  183.                                                 ]
  184.                                             }
  185.                                         },
  186.                                         {
  187.                                             "weight": 60,
  188.                                             "add": {
  189.                                                 "component_groups": [
  190.                                                     "attack"
  191.                                                 ]
  192.                                             }
  193.                                         },
  194.                                         {
  195.                                             "weight": 20,
  196.                                             "add": {
  197.                                                 "component_groups": [
  198.                                                     "range_attack"
  199.                                                 ]
  200.                                             }
  201.                                         },
  202.                                         {
  203.                                             "weight": 10
  204.                                         }
  205.                                     ]
  206.                                 },
  207.                                 {
  208.                                     "filters": {
  209.                                         "all_of": [
  210.                                             {
  211.                                                 "test": "distance_to_nearest_player",
  212.                                                 "operator": ">",
  213.                                                 "value": 5.0
  214.                                             },
  215.                                             {
  216.                                                 "test": "has_target",
  217.                                                 "operator": "equals",
  218.                                                 "value": true
  219.                                             }
  220.                                         ]
  221.                                     },
  222.                                     "randomize": [
  223.                                         {
  224.                                             "weight": 30,
  225.                                             "add": {
  226.                                                 "component_groups": [
  227.                                                     "attack"
  228.                                                 ]
  229.                                             }
  230.                                         },
  231.                                         {
  232.                                             "weight": 60,
  233.                                             "add": {
  234.                                                 "component_groups": [
  235.                                                     "range_attack"
  236.                                                 ]
  237.                                             }
  238.                                         },
  239.                                         {
  240.                                             "weight": 10
  241.                                         }
  242.                                     ]
  243.                                 }
  244.                             ]
  245.                         },
  246.                         {
  247.                             "filters": {
  248.                                 "test": "has_component",
  249.                                 "value": "minecraft:is_sheared"
  250.                             },
  251.                             "sequence": [
  252.                                 {
  253.                                     "filters": {
  254.                                         "test": "distance_to_nearest_player",
  255.                                         "operator": "<=",
  256.                                         "value": 5.0
  257.                                     },
  258.                                     "randomize": [
  259.                                         {
  260.                                             "weight": 20,
  261.                                             "add": {
  262.                                                 "component_groups": [
  263.                                                     "explode"
  264.                                                 ]
  265.                                             }
  266.                                         },
  267.                                         {
  268.                                             "weight": 60,
  269.                                             "add": {
  270.                                                 "component_groups": [
  271.                                                     "strong_attack"
  272.                                                 ]
  273.                                             }
  274.                                         },
  275.                                         {
  276.                                             "weight": 20,
  277.                                             "add": {
  278.                                                 "component_groups": [
  279.                                                     "strong_range_attack"
  280.                                                 ]
  281.                                             }
  282.                                         }
  283.                                     ]
  284.                                 },
  285.                                 {
  286.                                     "filters": {
  287.                                         "all_of": [
  288.                                             {
  289.                                                 "test": "distance_to_nearest_player",
  290.                                                 "operator": ">",
  291.                                                 "value": 5.0
  292.                                             },
  293.                                             {
  294.                                                 "test": "has_target",
  295.                                                 "operator": "equals",
  296.                                                 "value": true
  297.                                             }
  298.                                         ]
  299.                                     },
  300.                                     "randomize": [
  301.                                         {
  302.                                             "weight": 60,
  303.                                             "add": {
  304.                                                 "component_groups": [
  305.                                                     "strong_range_attack"
  306.                                                 ]
  307.                                             }
  308.                                         },
  309.                                         {
  310.                                             "weight": 40,
  311.                                             "randomize": [
  312.                                                 {
  313.                                                     "weight": 30,
  314.                                                     "trigger": "rapid_fire"
  315.                                                 },
  316.                                                 {
  317.                                                     "weight": 70,
  318.                                                     "add": {
  319.                                                         "component_groups": [
  320.                                                             "strong_blast"
  321.                                                         ]
  322.                                                     }
  323.                                                 }
  324.                                             ]
  325.                                         }
  326.                                     ]
  327.                                 }
  328.                             ]
  329.                         }
  330.                     ]
  331.                 }
  332.             ]
  333.         }
  334.     }
  335. }
复制代码

离线教程下载:

临时显示

生物事件的栗子.json: https://url93.ctfile.com/f/34588793-564844643-e41b87 (访问密码:2160)


苦力怕论坛,感谢有您~
 楼主|  发表于 2022-4-10 22:08:08 来自手机|显示全部楼层 IP:湖北省
这么好的教程没人看,心凉了
来自 3# 2022-4-10 22:08:08回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-4-10 16:56:14|显示全部楼层 IP:广东省
顶一下

评分

参与人数 1铁粒 +6收起理由
 lxh*** + 6不错

查看全部评分

2#2022-4-10 16:56:14回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-7-29 07:56:12 来自手机|显示全部楼层 IP:安徽省
我来看看
4#2022-7-29 07:56:12回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-8-26 23:22:31 来自手机|显示全部楼层 IP:山东省
5#2022-8-26 23:22:31回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-10-19 06:27:22 来自手机|显示全部楼层 IP:辽宁省
谢谢分享
6#2022-10-19 06:27:22回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-11-2 10:38:52 来自手机|显示全部楼层 IP:山西省
欧欧欧nice!!!!!!!
7#2022-11-2 10:38:52回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-11-2 10:55:43|显示全部楼层 IP:河北省
666666666666666666666666666666
8#2022-11-2 10:55:43回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-11-18 20:34:42 来自手机|显示全部楼层 IP:四川省
9#2022-11-18 20:34:42回复收起回复
苦力怕论坛,感谢有您~
 发表于 2022-11-19 14:31:18 来自手机|显示全部楼层 IP:新疆
感谢苦力怕还有这样的作者
10#2022-11-19 14:31:18回复收起回复
苦力怕论坛,感谢有您~

本版积分规则

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

QQ群

访问手机版

访问手机版

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

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

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

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