Cog
  • 首页
  • 导论
    • 脚本
    • 指令
  • 配方
    • 物品
    • 标签
    • 原版配方修改
    • 模组配方修改
    • 通用配方修改
    • 配方材料替换
  • ZenCode
    • 数据类型
    • 运算符
    • if
    • switch
    • 循环
    • 数组
    • List
    • 映射
    • 数学函数
    • 函数
    • lambda 表达式
    • 预处理器
    • OOP
      • 自定义类
      • 拓展类
      • 空类型安全
      • 运算符重载
      • 泛型
    • 变量代理
  • 高级运用
    • Tooltip
    • 属性修改
    • 物品条件
    • 物品转换器
    • 配方函数
    • 事件
    • 全局战利品修饰器
      • 战利品修饰器
      • 方块掉落修改
      • 实体掉落修改
      • 战利品修饰器管理器
  • ContentTweaker
    • 前言
    • 资源文件
    • 物品
    • 方块
    • 流体
    • 创造标签
    • 高级运用
由 GitBook 提供支持
在本页
  • MCEntityType
  • 给实体战利品表添加修饰器
  • 实用方法

这有帮助吗?

  1. 高级运用
  2. 全局战利品修饰器

实体掉落修改

实体掉落是非常经典的战利品表的运用。

MCEntityType

MCEntityType 代表实体的类型(猪、羊、苦力怕...),可用 /ct dump entityTypes 来获取游戏内所有 EntityType。

如需导入,import crafttweaker.api.entity.MCEntityType;

给实体战利品表添加修饰器

import crafttweaker.api.loot.modifiers.CommonLootModifiers;
import crafttweaker.api.loot.modifiers.ILootModifier;

// entityType.addLootModifier(name as string, modifier as ILootModifier) // 给实体添加战利品表修饰器
// entityType.addPlayerOnlyLootModifier(name as string, modifier as ILootModifier) // 给实体添加只有玩家杀死后才会生效的修饰器

// 猪将改掉钻石
<entitytype:minecraft:pig>.addLootModifier("add_diamond", (loots, currentContext) => [<item:minecraft:diamond>]);

// 苦力怕在被玩家杀死后改掉金锭
<entitytype:minecraft:creeper>.addPlayerOnlyLootModifier("creeper_add_gold", (loots, currentContext) => [<item:minecraft:gold_ingot>]);

实用方法

CrT 还有更多实用方法来修改掉落物

// entityType.addDrop(uniqueId as string, stack as IItemStack)
// entityType.addDrops(uniqueId as string, stacks as IItemStack[])
// 额外添加掉落物
<entitytype:minecraft:sheep>.addDrop("add_apple", <item:minecraft:apple>);

// entityType.addPlayerOnlyDrop(uniqueId as string, stacks as IItemStack[])
// entityType.addPlayerOnlyDrops(uniqueId as string, stacks as IItemStack[])
// 只有玩家杀死后才额外添加掉落物
<entitytype:minecraft:sheep>.addPlayerOnlyDrops("add_items", [<item:minecraft:book>, <item:minecraft:stone>]);

// entityType.addWeaponAndPlayerOnlyLootModifier(name as string, weapon as IItemStack, modifier as ILootModifier)
// entityType.addWeaponAndPlayerOnlyLootModifier(name as string, weapon as IItemStack, matchDamage as boolean, modifier as ILootModifier)
// entityType.addWeaponAndPlayerOnlyLootModifier(name as string, weapon as IItemStack, matchDamage as boolean, matchNbt as boolean, modifier as ILootModifier)
// entityType.addWeaponOnlyLootModifier(name as string, weapon as IItemStack, modifier as ILootModifier)
// entityType.addWeaponOnlyLootModifier(name as string, weapon as IItemStack, matchDamage as boolean, modifier as ILootModifier)
// entityType.addWeaponOnlyLootModifier(name as string, weapon as IItemStack, matchDamage as boolean, matchNbt as boolean, modifier as ILootModifier)

// 只有(玩家)使用特定武器杀死后才会使用这个战利品表修饰器,第一个方法不匹配耐久、数量、NBT,你可以使用后面两个来设定匹配
<entitytype:minecraft:sheep>.addWeaponOnlyLootModifier("fu", <item:minecraft:diamond_axe>, true, (loots, currentContext) => [<item:minecraft:diamond>]);
上一页方块掉落修改下一页战利品修饰器管理器

最后更新于3年前

这有帮助吗?