本帖最后由 MZIMU 于 2020-4-22 13:22 编辑
我想让我的实体 [继承的是EntityZombie] 穿上装备 使用了
CraftItemStack.asNMSCopy
来转化为nms的item后
再通过
this.setEquipment来设置 但实际生成的却没有
装备的来源是通过 击杀的当前目标身上的装备
具体的代码如下复制代码是写错了什么吗 还是说不是这样的 亦或者有什么更新数据的方法...求教...
谢谢各位大佬了
我想让我的实体 [继承的是EntityZombie] 穿上装备 使用了
CraftItemStack.asNMSCopy
来转化为nms的item后
再通过
this.setEquipment来设置 但实际生成的却没有
装备的来源是通过 击杀的当前目标身上的装备
具体的代码如下
- EntityEquipment ee = entiry.getEquipment();
- ItemStack item = CraftItemStack.asNMSCopy(ee.getChestplate());
- this.setEquipment(EnumItemSlot.CHEST,item);
- item = CraftItemStack.asNMSCopy(ee.getHelmet());
- this.setEquipment(EnumItemSlot.HEAD,item);
- item = CraftItemStack.asNMSCopy(ee.getItemInOffHand());
- this.setEquipment(EnumItemSlot.OFFHAND,item);
- item = CraftItemStack.asNMSCopy(ee.getItemInMainHand());
- this.setEquipment(EnumItemSlot.MAINHAND,item);
- item = CraftItemStack.asNMSCopy(ee.getBoots());
- this.setEquipment(EnumItemSlot.FEET,item);
- item = CraftItemStack.asNMSCopy(ee.getLeggings());
- this.setEquipment(EnumItemSlot.LEGS,item);
谢谢各位大佬了
学过化学分析方法春风花草法国
好吧 已经解决了 发现在EntityZombie下面有一个
复制代码
看着像是。。。根据难度要不要给僵尸一把剑之类的把
然后把setEquipment改成setSlot就好了。。。
那setEquipment难道是设置。。装备掉落的???看到有个dropEquipment。。。。。。。。。。
- protected void a(DifficultyDamageScaler difficultydamagescaler) {
- super.a(difficultydamagescaler);
- if (this.random.nextFloat() < (this.world.getDifficulty() == EnumDifficulty.HARD ? 0.05F : 0.01F)) {
- int i = this.random.nextInt(3);
- if (i == 0) {
- this.setSlot(EnumItemSlot.MAINHAND, new ItemStack(Items.IRON_SWORD));
- } else {
- this.setSlot(EnumItemSlot.MAINHAND, new ItemStack(Items.IRON_SHOVEL));
- }
- }
- }
看着像是。。。根据难度要不要给僵尸一把剑之类的把
然后把setEquipment改成setSlot就好了。。。
那setEquipment难道是设置。。装备掉落的???看到有个dropEquipment。。。。。。。。。。