IceFox冰狐
比如钻石剑的原始攻击是7点...如何 itemstak里面找到 这个原始攻击然后修改掉,
一些rpg增加攻击的大部分是在触发伤害事件,然后叠加伤害.准备做个原始攻击强化的插件


602723113
本帖最后由 602723113 于 2017-7-29 10:54 编辑

反射NMS制作出武器的NBT


以下引用至:http://mcbbs.tvt.im/thread-697478-1-1.html

  1. ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
  2. net.minecraft.server.v1_10_R1.ItemStack nmsItem
  3. = CraftItemStack.asNMSCopy(item);
  4. NBTTagCompound compound = (nmsItem.hasTag()) ? nmsItem.getTag()
  5. : new NBTTagCompound();
  6. NBTTagList modifiers = new NBTTagList();
  7. NBTTagCompound damage = new NBTTagCompound();
  8. //AttributeName指该Attribute的名字,可以随意填写
  9. //Name指该Attribute所修改的位置也就是 属性名
  10. //Amount指该Attribute的属性所修改的的值
  11. //Operation值该Attribute的值是百分比还是数值来算
  12. //  数值为0 百分比为1(7-2号修订=w=)
  13. //UUID是用于区分这些Attribute的建议可以设置大一些
  14. //Slot值该Attribute在玩家的哪个 部位 才会生效,不填写则所有部位都会生效
  15. damage.set("AttributeName", new NBTTagString("Damage"));
  16. damage.set("Name", new NBTTagString("generic.attackDamage"));
  17. damage.set("Amount", new NBTTagInt(20)); //值
  18. damage.set("Operation", new NBTTagInt(0));
  19. damage.set("UUIDLeast", new NBTTagInt(20000));
  20. damage.set("UUIDMost", new NBTTagInt(1000));
  21. damage.set("Slot", new NBTTagString("mainhand"));
  22. modifiers.add(damage);
  23. compound.set("AttributeModifiers", modifiers);
  24. nmsItem.setTag(compound);
复制代码