2016-11-25 117 views
1

我正在製作一款增加裝甲的mod,讓你立於不敗之地。到目前爲止,我有這樣的代碼:取消傷害動畫

@SubscribeEvent 
public void onPlayerHurt(LivingHurtEvent event) { 
    if(event.getEntity() != null && event.getEntity() instanceof EntityPlayer){ 
     EntityPlayer player = (EntityPlayer) event.getEntity(); 
     for(ItemStack stack : player.getArmorInventoryList()) { 
      if(stack != null && stack.getItem() instanceof ItemUltimusArmor){ 
       event.setCanceled(true); 
      } 
     } 
    } 
} 

這確實取消了我使用我的裝甲時的傷害,但我仍然得到噪音和動畫。穿着這件盔甲時,我想不能擁有這些東西。有什麼辦法可以做到嗎?

+0

使用'LivingAttackEvent'工作嗎? (該事件發生在實體受到攻擊時)。如果沒有,另一種方法是以某種方式直接取消動畫 - 動畫在「EntityLivingBase.handleStatusUpdate」中觸發(參見[wiki.vg關於實體的文章](http://wiki.vg/Entities#Living)) - I不知道僞裝是否有鉤,但這是潛在的領先。 – Pokechu22

回答

1

我想通了。我用LivingAttackEvent聽一個事件,literaly使用相同的代碼作爲LivingHurtEvent,它的工作。感謝Pokechu22提出這個建議!