Skip to content

Latest commit

 

History

History
444 lines (437 loc) · 11.4 KB

动作与事件.md

File metadata and controls

444 lines (437 loc) · 11.4 KB

事件

什么是事件?

事件就是玩家执行个动作(破坏方块、放置方块、攻击生物··· ···)

事件列表

  1. block_break <--- 破坏方块
  2. attack <--- 攻击
  3. kill <--- 击杀
  4. interact.entity <--- 点击生物
  5. interact.left <---左键物品
  6. interact.left_shift <--- Shift + 左键物品
  7. interact.right <--- 右键物品
  8. interact.right_shift <--- Shift + 右键物品
  9. interact_mainhand.left <--- 左键物品
  10. interact_mainhand.left_shift <--- Shift + 右手右键物品
  11. interact_mainhand.right <--- 右手右键物品
  12. interact_mainhand.right_shift <--- Shift + 右手左键物品
  13. interact_offhand.left <--- 左手左键物品
  14. interact_offhand.left_shift <--- Shift + 左手左键物品
  15. interact_offhand.right <--- 左手右键物品
  16. interact_offhand.right_shift <--- Shift + 左手右键物品
  17. drop <--- 丢弃
  18. pickup <--- 捡起
  19. eat <--- 吃
  20. drink <--- 喝
  21. bow_shot <--- 射箭
  22. gun_shot <--- 射击(枪)
  23. gun_no_ammo <--- 枪没有弹药
  24. gun_reload <--- 枪装填弹药
  25. book_write <--- 写书
  26. book_read <--- 读书
  27. fishing_start <--- 抛竿
  28. fishing_caught <--- 上鱼
  29. fishing_failed <--- 丢鱼
  30. fishing_cancel <--- 回杆
  31. fishing_bite <--- 鱼咬勾
  32. fishing_in_ground <---在地面上钓鱼
  33. wear <--- 穿戴
  34. unwear <--- 取消穿戴
  35. held <--- 手持
  36. held_offhand <---副手手持
  37. unheld <--- 取消手持
  38. unheld_offhand <--- 副手取消手持
  39. item_throw <--- 丢弃物品
  40. item_hit_ground <--- 手持物品点击地面
  41. item_hit_entity <--- 手持物品攻击生物
  42. placed_block.interact <--- 方块点击
  43. placed_block.break <--- 方块破坏
  44. placed_armorstand.interact <--- 盔甲架原理家具点击
  45. placed_armorstand.break <--- 盔甲架原理家具破坏
  46. placed_itemframe.interact <--- 展示框原理家具点击
  47. placed_itemframe.break <--- 展示框原理家具破坏
  48. holding_item.player_damaged_by_entity <--- 玩家被持有物品的生物攻击
  49. holding_item_offhand.player_damaged_by_entity <--- 玩家被副手持有物品的生物攻击
  50. equipped_armor_item.player_damaged_by_entity <--- 玩家被穿有盔甲的生物攻击
  51. bucket_empty <--- 倒桶
  52. bucket_fill <--- 填桶

动作

什么是动作?

动作是事件发生时将要执行的任务

动作列表

  1. play_sound
  2. stop_sound
  3. execute_commands
  4. play_particle
  5. shoot_particle
  6. play_effect
  7. increment_durability
  8. decrement_durability
  9. decrement_usages
  10. increment_amount
  11. decrement_amount
  12. drop_exp
  13. feed
  14. replace_properties
  15. give_item
  16. replace_near_blocks
  17. replace_block
  18. glow_near_blocks
  19. multiple_break
  20. potion_effect
  21. remove_potion_effect
  22. explosion
  23. damage_near_entities
  24. damage_entity_in_sight
  25. damage_entity
  26. increment_player_stat
  27. decrement_player_stat
  28. cancel
  29. target_potion_effect
  30. target_remove_potion_effect
  31. play_totem_animation
  32. set_block
  33. place_furniture
  34. drop_item

动作示例

  1. 播放音效
play_sound:
  name: itemsadder:ambient.creepy
  volume: 1
  pitch: 1
  1. 停止播放音效
stop_sound:
  name: "itemsadder:music_disc.cdk_sunday"
  1. 执行命令
execute_commands:
  first_example:
    command: 'tellraw {player} {"text":"wow you did something!","color":"gold"}'
    as_console: true
  second:
    command: 'help'
    as_console: false
  third:
    command: 'give {player} diamond'
    as_console: true
  • command:具体执行的命令。
  • as_console:是否以控制台身份执行。
  1. 粒子效果
play_particle:
  name: "ENCHANTMENT_TABLE"
  1. 发射粒子效果
shoot_particle:
  name: FLAME
  distance: 7
  • 是否武器、枪,其中 distance 代表距离
  1. 增加耐久
increment_durability:
  amount: 10
  1. 减少耐久
decrement_durability:
  amount: 10
  1. 增加使用次数
increment_usages:
  amount: 1
  1. 增加物品数量
increment_amount:
  amount: 1
  1. 减少物品数量
decrement_amount:
  amount: 1
  1. 掉落经验值
drop_exp:
  chance: 50
  min_amount: 1
  max_amount: 3
  • chance:触发几率。
  • min_amount、max_amount:分别为最小值和最大值。
  1. 食物
feed:
  amount: 6
  saturation: 2
  • 其中,amount 代表饱食度,saturation 代表饱和度。
  1. 给予物品
give_item:
  item: empty_cup
  amount: 1
  1. 掉落物品
drop_item:
  item: 2d_furniture
  chance: 99.9
  max_amount: 3
  min_amount: 1
  1. 播放不死图腾动画
play_totem_animation: animatedtitles:bruh
  1. 放置方块
set_block:
  block: rocks
  target: RELATIVE
  decrement_amount: true
  • block:放置的方块。
  • target:放置的对象。
  • decrement_amount:放置后是否减少本来的数量。
  1. 放置家具
place_furniture:
  furniture: furniture
  decrement_amount: true
  1. 给予自身药水
potion_effect:
  type: UNLUCK
  duration: 100
  amplifier: 0
  • type:药水的类型。
  • duration:药水的时长。
  • amplifier:药水的等级。
  1. 移除自身药水
remove_potion_effect:
  type: GLOWING
  1. 给予对象药水
target_potion_effect:
  type: GLOWING
  duration: 70
  amplifier: 15
  • ⚠️注意:对象指的是攻击或者解除的实体等
  • type:药水的类型。
  • duration:药水的时长。
  • amplifier:药水的等级。
  1. 移除对象药水
target_remove_potion_effect:
  type: GLOWING

22.增加玩家IA属性

increment_player_stat:
  name: "itemsadder:mana_bar"
  amount: 1
  1. 减少玩家IA属性
decrement_player_stat:
  name: "itemsadder:mana_bar"
  amount: 1
  1. 攻击实体
damage_entity:
  damage: 4
  • damage:攻击伤害值
  1. 攻击附近的实体
damage_entity_in_sight:
  damage: 4
  distance: 7
damage_near_entities:
  entity_groups:
   - HOSTILE
   - PLAYERS
   - PASSIVE
  damage: 4
  range: 7
  • entity_groups:实体类型,分布为主动(怪物)、玩家和被动(动物)。
  • range、distance:距离。
  1. 爆炸
multiple_break:
  keep_ores: true
  drop_all_blocks:
    enabled: true
    need_silk_touch: true
  size: 3
  depth: 3
  • power:爆炸威力。
  • fire:是否着火。
  • break_blocks:是否破坏方块。
  1. 大范围爆炸
multiple_break:
  keep_ores: true
  drop_all_blocks:
    enabled: true
    need_silk_touch: true
  size: 3
  depth: 3
  • keep_ores:是否保留矿石不破坏。
  • drop_all_blocks:是否掉落所有方块和是否需要精准采集附魔。
  • size:破坏的大小。
  • depth:破坏的深度。

物品动作事件编写

事件延迟

每个动作都有一个特殊的属性延迟。它是开始动作前的延迟时间(单位为Tick)

items:
  chain_events:
    display_name: "%#FE5A00%chain_events"
    permission: test.chain_events
    resource:
      material: COAL
      generate: true
      textures:
      - "minecraft:item/diamond.png"
    events:
      interact:
        right:
          execute_commands:
            cmd1:
              command: 'tellraw {player} {"text":"Action 1","color":"gold"}'
              as_console: true
              delay: 0
            cmd2:
              command: 'tellraw {player} {"text":"Action 2","color":"gold"}'
              as_console: true
              delay: 20
            cmd3:
              command: 'tellraw {player} {"text":"Action 3","color":"gold"}'
              as_console: true
              delay: 40
          play_sound_1:
            name: minecraft:block.note_block.banjo
            delay: 0
          play_sound_2:
            name: minecraft:block.note_block.banjo
            pitch: 1.2
            delay: 20
          play_sound_3:
            name: minecraft:block.note_block.banjo
            pitch: 1.5
            delay: 40

执行多一同一任务

play_sound_first:
  name: itemsadder:ambient.creepy
  volume: 1
  pitch: 1
play_sound_second:
  name: minecraft:ambient.cave
  volume: 1
  pitch: 1
play_sound_3:
  name: minecraft:ambient.cave
  volume: 1
  pitch: 1

动作权限

每个动作都有一个特殊的属性权限。这是玩家在开始行动前必须得到的许可。例如,玩家必须具有myitems.usage.secret_items_dispenser权限才能播放声音。在本例中,您会注意到一个问题。即使用户没有give事件的权限,声音也会播放。那是因为权限检查只针对give_item。

  test_block:
    display_name: display-name-test_block
    permission: test_block
    resource:
      material: PAPER
      generate: true
      textures:
      - block/test_block.png
    specific_properties:
      block:
        placed_model:
          type: REAL_NOTE
          break_particles_material: SMITHING_TABLE
    events:
      placed_block:
        interact:
          give_item:
            permission: "myitems.usage.secret_items_dispenser"
            item: DIAMOND
          play_sound:
            name: itemsadder:ambient.creepy
            volume: 1
            pitch: 1

为每个动作设置相同的权限如果你想为每个动作设置相同的权限,而不需要复制和粘贴,你可以!使用这个特殊属性all_actions_permission。例如:

test_block:
    display_name: display-name-test_block
    permission: test_block
    resource:
      material: PAPER
      generate: true
      textures:
      - block/test_block.png
    specific_properties:
      block:
        placed_model:
          type: REAL_NOTE
          break_particles_material: SMITHING_TABLE
    all_actions_permission: "myitems.usage.secret_items_dispenser"
    events:
      placed_block:
        interact:
          give_item:
            item: DIAMOND
      play_sound:
        name: itemsadder:ambient.creepy
        volume: 1
        pitch: 1

ItemsAdder允许您通过避免在下面几行中解释的某些特定情况下执行操作来进一步定制您的操作。这允许进一步定制您的项目逻辑。例如,你可以创建一个魔杖,它只在一个怪物被成功攻击时播放特定的声音,而在攻击失败时播放另一种声音。

  1. stop_if_last_success
  • 如果上一个操作成功,则不执行此操作和下一个操作。
  1. stop_if_last_fail
  • 如果上一个操作失败,不执行此操作和下一个操作。
  1. skip_if_last_success
  • 如果上一个操作成功,则不执行此操作。
  1. skip_if_last_fail
  • 如果上一个操作失败,则不执行此操作。
  1. stop_if_any_success
  • 如果前面的任何操作成功,则不执行此操作和后续操作。
  1. stop_if_any_fail
  • 如果之前的任何操作失败,则不执行此操作和后续操作。
  1. skip_if_any_success
  • 如果前面的任何操作成功,则不执行此操作。
  1. skip_if_any_fail
  • 如果之前的任何操作失败,则不执行此操作。
  1. stop_if_success
  • 如果特定的上一个操作成功,则不执行此操作和下一个操作。
  1. stop_if_fail
  • 如果特定的上一个操作失败,则不执行此操作和下一个操作。
  1. skip_if_success
  • 如果特定的前一个操作成功,则不执行此操作。
  1. skip_if_fail
  • 如果之前的特定操作失败,则不执行此操作。