比如钻石剑的原始攻击是7点...如何 itemstak里面找到 这个原始攻击然后修改掉,
一些rpg增加攻击的大部分是在触发伤害事件,然后叠加伤害.准备做个原始攻击强化的插件
一些rpg增加攻击的大部分是在触发伤害事件,然后叠加伤害.准备做个原始攻击强化的插件
 本帖最后由 602723113 于 2017-7-29 10:54 编辑 
反射NMS制作出武器的NBT
以下引用至:http://mcbbs.tvt.im/thread-697478-1-1.html
复制代码
反射NMS制作出武器的NBT
以下引用至:http://mcbbs.tvt.im/thread-697478-1-1.html
 
- ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
 
- net.minecraft.server.v1_10_R1.ItemStack nmsItem 
 
- = CraftItemStack.asNMSCopy(item);
 
- NBTTagCompound compound = (nmsItem.hasTag()) ? nmsItem.getTag()
 
-  : new NBTTagCompound();
 
- NBTTagList modifiers = new NBTTagList();
 
- NBTTagCompound damage = new NBTTagCompound();
 
- //AttributeName指该Attribute的名字,可以随意填写
 
- //Name指该Attribute所修改的位置也就是 属性名
 
- //Amount指该Attribute的属性所修改的的值
 
- //Operation值该Attribute的值是百分比还是数值来算 
 
- //  数值为0 百分比为1(7-2号修订=w=)
 
- //UUID是用于区分这些Attribute的建议可以设置大一些
 
- //Slot值该Attribute在玩家的哪个 部位 才会生效,不填写则所有部位都会生效
 
- damage.set("AttributeName", new NBTTagString("Damage"));
 
- damage.set("Name", new NBTTagString("generic.attackDamage"));
 
- damage.set("Amount", new NBTTagInt(20)); //值
 
- damage.set("Operation", new NBTTagInt(0));
 
- damage.set("UUIDLeast", new NBTTagInt(20000));
 
- damage.set("UUIDMost", new NBTTagInt(1000));
 
- damage.set("Slot", new NBTTagString("mainhand"));
 
- modifiers.add(damage);
 
- compound.set("AttributeModifiers", modifiers);
 
- nmsItem.setTag(compound);